目次
言語系
ミドルウェア系
開発支援ツール
- 「Docker関連のノート」のまとめ
- 「JMeter関連のノート」のまとめ
- 「Jenkins関連のノート」のまとめ
- 「git関連のノート」のまとめ
- 「swagger関連のノート」のまとめ
- 「ESLint関連のノート」のまとめ
- 「Jest関連のノート」のまとめ
- 「bash関連のノート」のまとめ
- 「セキュリティ関連のノート」のまとめ
OS系
- 「Linux関連のノート」のまとめ
- 何をやるにもお世話になる技術です
OWASP Top 10
とはWebアプリケーションのセキュリティのための啓発文書です。このTop10とは別にAPIに関するTop10もOWASPからリリースされています。
ココはOWASP Top 10
を勉強した際の内容を記載します。
アクセス制御とは、ユーザーが意図された権限を超えて行動できないようにポリシーを適用することをいう。障害はすべてのデータの不正な情報開示、変更、破壊、またはユーザーの制限を超えたビジネス機能の実行につながります。
詳細
詳細
送信あるいは保存するデータが保護を必要とするか見極める。
例えば、パスワード、クレジットカード番号、健康記録、個人データやビジネス上の機密は特別な保護が必要になる。
また以下のような場合、データに対して特に注意が必要です
詳細
最低限実施すべきことを以下に挙る。詳細
一般的なインジェクションとしては、SQL、NoSQL、OS コマンド、オブジェクト・リレーショナル・マッピング(ORM)、LDAP、およびEL式(Expression Language)またはOGNL式(Object Graph Navigation Library)のインジェクションがあります。 コンセプトはすべてのインタープリタで同じです。ソースコードをレビューすれば、インジェクションに対してアプリケーションが脆弱であるか最も効果的に検出できます。すべてのパラメータ、ヘッダー、URL、Cookie、JSON、SOAP、およびXMLデータ入力の完全な自動テストが推奨されます。 また、組織は静的 (SAST)、動的 (DAST)、そしてインタラクティブ (IAST) アプリケーションセキュリティテストツールをCI/CDパイプラインに導入できます。 これにより、新たに作られてしまったインジェクション欠陥を稼働環境に展開する前に検出できます。
インジェクションを防止するためにはコマンドとクエリからデータを常に分けておくことが必要 推奨される選択肢は安全なAPIを使用すること。 ポジティブな、言い換えると「ホワイトリスト」によるサーバーサイドの入力検証を用いる。 クエリ内でLIMIT句やその他のSQL制御を使用することで、SQLインジェクション攻撃が発生した場合のレコードの大量漏洩を防ぐ。詳細
安全が確認されない不安な設計とは、様々な脆弱性を表す広範なカテゴリーであり、「欠落した、あるいは不十分な制御設計」とも表される。 安全でない設計と安全でない実装は異なる。設計上の欠陥と実装上の欠陥を区別するのには理由は、根本的な原因と改善方法が異なるから。 安全な設計であっても、実装上の欠陥があると、それが悪用される可能性のある脆弱性につながる。 安全でない設計は、完璧な実装によって修正することができない。というのも、定義上、特定の攻撃を防御するために必要なセキュリティ制御が作成されたことはない。 安全でない設計の要因の一つとして、開発するソフトウェアやシステムに内在するビジネスリスクのプロファイリングが行われていないために、どのレベルのセキュリティ設計が必要なのかを判断できないことが挙げられる。
要件とリソースマネジメント 安全が確認された安心な設計 Secure Development Lifecycle詳細
詳細
アプリケーションのセキュリティを設定するプロセスを協調して繰り返すことができなければ、システムはより高いリスクにさらされる。
アプリケーションが下記のようなら、恐らく脆弱です:詳細
詳細
以下に該当する場合、脆弱と言えます。詳細
以下に示すパッチ管理プロセスが必要です。 いかなる組織も、アプリケーションまたはポートフォリオの存続期間は、モニタリングとトリアージを行い更新または設定変更を行う継続的な計画があることを確認する必要があります。
詳細
ユーザーのアイデンティ確認、認証そしてセッション管理は、認証関連の攻撃対策として極めて重要です。
詳細
詳細
ソフトウェアとデータの整合性の不具合は、コードやインフラストラクチャが整合性違反から保護されていないことに関連しています。
例として、詳細
詳細
アクティブな違反の検出、エスカレーション、および対応を支援するものです。 ロギングとモニタリングがなければ、侵害を検知することはできない。
詳細
アプリケーションによって保存または処理されるデータのリスクに応じて対応する: OWASP AppSensor、OWASP ModSecurity Core Rule Setを使用したModSecurityなどのWebアプリケーションファイアウォール、 カスタムダッシュボードとアラートを使用したログ相関分析ソフトウェア(Elasticsearch, Logstash, Kibana (ELK) )など、商用およびオープンソースのアプリケーション保護フレームワークがある。詳細
SSRFの欠陥は、Webアプリケーション上からリモートのリソースを取得する際に、ユーザーから提供されたURLを検証せずに使用することで発生します。 ファイアウォールやVPNあるいはその他の種類のネットワークアクセス制御リスト(ACL)によってアプリケーションが保護されている場合であっても、SSRFによりアプリケーションに対して意図しない宛先へ細工されたリクエストを強制的に発行させることができる。 モダンなアプリケーションではエンドユーザーに便利な機能を提供するようになり、アプリケーション側でURLを取得することは珍しい状況ではなくなった。 そのためSSRFの発生が増加している。 またSSRFの深刻度も、クラウドサービスやアーキテクチャの複雑性を背景として、段々と大きくなりつつある。
詳細
ネットワーク層から アプリケーション層から: 検討すべき追加の対策:詳細
markdownの記法で自分がよく使う、モノを自分用のチートとして集めました。
--- [:contents] ---
見え方
ここをクリック
(空行) 折りたたまれる内容が記述されるエリア
記述方法
<details><summary>ここをクリック</summary> (空行) 折りたたまれる内容が記述されるエリア </details>
<span style="color:#ff0000;font-weight:bold;">色がついているほうが、読みやすいことが多い</span>
```html <span style="color:#ff0000;font-weight:bold;">色がついているほうが、読みやすいことが多い</span> ```
:::message ここにメッセージを記入する :::
:::message alert ここに警告メッセージを記入する :::
:::message ここにメッセージを記入する ::: :::message alert ここに警告メッセージを記入する :::
見え方
記述方法
<span style="color:#ff0000;font-weight:bold;">赤い太字</span>
見え方
記述方法
[ブログのTopページ](https://overworker.hatenablog.jp/)

縦幅50を指定:
縦幅100を指定:
縦幅50を指定:<br> <div align="center"> [f:id:~省略~:plain:h50]<br> </div> 縦幅100を指定:<br> <div align="center"> [f:id:~省略~:plain:h100]<br> </div>
The OWASP Top 10 is the reference standard for the most critical web application security risks. Adopting the OWASP Top 10 is perhaps the most effective first step towards changing your software development culture focused on producing secure code.(Projects | OWASP Foundation)
『最も重大な Web アプリケーションのセキュリティ リスクの参照標準』とあるので、各システムに対するセキュリティリスク面のチェック項目と考えてよいと思います。
OWASP Top Ten
とOWASP Top 10 API Security Risks
の違いWebアプリケーションの主要なセキュリティリスクに焦点を当てています。これには、SQLインジェクション、認証の問題、感覚データの漏洩などが含まれます。
API(Application Programming Interface)セキュリティの主要なリスクに焦点を当てています。APIは、異なるソフトウェアコンポーネント間でデータや機能を共有するための手段です。このプロジェクトでは、APIに関連する脆弱性と攻撃手法に焦点を当てています。
Webアプリケーションセキュリティの観点から、主にWebアプリケーションに特有の攻撃や脆弱性を取り上げています。
近年、APIの普及が進んでおり、そのセキュリティも重要な問題となっています。このプロジェクトは、APIに関連する新たな脅威や対策に焦点を当てています。
具体的な脆弱性や攻撃手法に焦点を当てており、例えばSQLインジェクションやクロスサイトスクリプティングなどのリスクが挙げられます。
APIセキュリティの特定の課題に焦点を当て、例えば不適切な認証、不十分なアクセス制御、データの不適切な処理などが挙げられます。
二つのリリースサイクルは同期していないようです。
Webアプリケーションのセキュリティリスクのアップデートは、一定のサイクルで行われます。
APIセキュリティのプロジェクトも定期的にアップデートされ、API関連の新しい脆弱性や対策が反映されます。
多分、現時点(2023/11/22)での最新版は以下になります。
自分がセキュリティに関して学んだ内容の一覧です。
皆さんはOWASP
と言う組織を聞いたことがありますでしょうか?
私は仕事でWeb開発を行っているので、『なんとなく』知っていたですが、
なんとなくより『一歩深めよう』と思い少し調べてみました。
Open Worldwide Application Security Project( OWASP )
は、Webアプリケーションセキュリティに関するオンラインコミュニティ。
OWASP Projects are a collection of related tasks that have a defined roadmap and team members. Our projects are open source and are built by our community of volunteers - people just like you! OWASP project leaders are responsible for defining the vision, roadmap, and tasks for the project. The project leader also promotes the project and builds the team. OWASP currently has over 100 active projects, and new project applications are submitted every week.
セキュリティを向上させたいと思うボランティアのコミュニティです。
その中で実施されている活動のことをプロジェクト
と呼んでいて、プロジェクトはロードマップとチームメンバーを持ちます。
「プロジェクトリーダーがビジョン、ロードマップ、タスクを定義する。」とあるので、オンラインコミュニティを推進するための強いリーダーシップが求められるのではないかと思います。
主な参加者
OWASP内のプロジェクトは以下のいずれかに分類されます。
種類 | 説明 | 補足 |
---|---|---|
Flagship Projects | フラッグシップ プロジェクト OWASP およびアプリケーション セキュリティ全体にとって戦略的価値を実証したプロジェクト |
TopTen を含む |
Production Projects | 実稼働プロジェクト 実稼働準備が整ったプロジェクト |
|
Other Projects | その他のプロジェクト Lab プロジェクトと Incubator プロジェクト |
フラッグシップ プロジェクト
の一覧を知ることがOWASPの活動内容の概要を把握するのに役立ちそうなので一覧化してみました。
情報セキュリティの専門家が、オープンソースのインテリジェンス収集および偵察技術を使用して、攻撃対象領域のネットワークマッピングと外部資産の検出を実行できるようにするオープンソースフレームワーク。
最新のWebアプリケーションとWebサービスを設計、開発、テストする際に必要なセキュリティ制御の定義に焦点を当てたセキュリティ要件のフレームワーク
アプリケーション開発者と防御者が従うべき一連の簡潔なグッドプラクティスガイドを提供
サイバーリスク削減のための高度なサプライチェーン機能を提供するフルスタックの部品表(BOM)標準
DevOpsと継続的なセキュリティ統合のために構築された、最先端のオープンソースアプリケーション脆弱性管理ツール
プロジェクトの依存関係を特定し、既知の公開された脆弱性が存在するかどうかをチェックするソフトウェア構成分析(SCA)ツールスイート
組織がソフトウェアサプライチェーンのリスクを特定して軽減できるようにするインテリジェントコンポーネント分析プラットフォーム
セキュリティトレーニング、意識向上デモ、CTF用の最も最新かつ洗練された安全でないWebアプリケーション。セキュリティツールやDevSecOpsパイプラインの自主的なモルモットとしても最適
MAS(MobileApplicationSecurity)はモバイルアプリのセキュリティ標準を確立する一連の文書と、モバイルアプリケーションのセキュリティ評価中に使用されるプロセス、技術、ツールをカバーする包括的なテストガイドで構成されています。テスト担当者が一貫した完全な結果を提供できるようにする一連のテストケース。
ModSecurityCoreRuleSet(CRS)は、ModSecurityまたは互換性のあるWebアプリケーションファイアウォールで使用するための一連の汎用攻撃検出ルールです。CRSは、誤った警告を最小限に抑えながら、OWASPトップ10を含む幅広い攻撃からWebアプリケーションを保護することを目的としている。
OWTF(OffensiveWebTestingFramework)は、優れたツールを統合してペネトレーションテストをより効率的にすることを目的としたOWASP+PTESに焦点を当てたもので、主にPythonで書かれている。
SAMM(ソフトウェアアシュアランス成熟度モデル)は、あらゆる種類の組織がソフトウェアセキュリティ体制を分析および改善するための効果的かつ測定可能な方法を提供する。
Webおよびモバイルアプリケーションのセキュリティトレーニングプラットフォームです。SecurityShepherdは、さまざまなスキルセットを持つ層の間でセキュリティ意識を促進し、向上させるように設計されています。このプロジェクトの目的は、AppSecの初心者または経験豊富なエンジニアを受け入れ、侵入テストのスキルセットを強化してセキュリティの専門家の地位を確立することです。
最も重大なWebアプリケーションのセキュリティリスクの参照標準です。OWASP Top10を採用することは、おそらく、安全なコードの作成に重点を置いたソフトウェア開発文化を変えるための最も効果的な第一歩です。
Webセキュリティテストガイド(WSTG)プロジェクトは、Webアプリケーション開発者およびセキュリティ専門家向けの最高のサイバーセキュリティテストリソースを作成します。
今まではOWASP Top Ten
くらいしか意識していませんでしたが、そのほかにもセキュリティを軸に様々な活動が実施されていることを知りました。別の機会に以下の深堀をしていければと考えています。
Linux上で開発をしているときに「コマンド実行時間が前より長くなってないか?」と思うことがあったので、常日頃からコマンド実行時間を認知できるように表示を残すようにしてみました。
bashスクリプト
経由で実行するようにスクリプト化開始時刻
と処理時間
をログファイルに出力time.sh
というファイル名でスクリプトを作成します#!/bin/bash ### StartTime echo echo StartTime `date` # ターミナル表示 startTime=`date +%s` # 計算用(%s:日時表示のフォーマット/UNIX時刻 (1970年1月1日0時UTCからのうるう秒を考慮しない秒数)) startTimeFile=`date "+%Y/%m/%d %H:%M:%S"` # ファイル出力用 echo ### 時間計測したい処理 sleep 3 ### EndTime echo echo EndTime `date` # ターミナル表示 endTime=`date +%s` # 計算用(%s:日時表示のフォーマット/UNIX時刻 (1970年1月1日0時UTCからのうるう秒を考慮しない秒数)) echo ### 差分 time=$((endTime - startTime)) # 処理時間 echo $time s # ターミナル表示 ### 結果をファイルに出力する echo "$startTimeFile,$time" >> CommandExecutionTimeLog.csv
bash time.sh