コース概要
A01:2025 – Broken Access Control(アクセス制御の欠陥)
アクセス制御とは、ユーザーが意図された権限の範囲外で操作を行えないようにポリシーを強制するものです。失敗すると、通常は不正な情報の開示、すべてのデータの修正または破壊、あるいはユーザーの制限を超えた業務機能の実行を引き起こします。
実践的な側面
-
アクセス制御の欠陥に関する実践的な例
-
セキュアなアクセス制御とベストプラクティス
A02:2025 – Security Misconfiguration(セキュリティ設定の誤り)
セキュリティ設定の誤りとは、システム、アプリケーション、またはクラウドサービスがセキュリティの観点から正しく設定されていないために脆弱性が生じる状態です。
実践的な側面
-
設定の誤りに関する実世界の例
-
設定管理および自動化ツールを含む、設定の誤りを防止するための手順
A03:2025 – Software Supply Chain Failures(ソフトウェアサプライチェーンの失敗)
ソフトウェアサプライチェーンの失敗とは、ソフトウェアの構築、配布、または更新のプロセスにおける中断や侵害を指します。これらは、システムが依存しているサードパーティのコード、ツール、その他の依存関係における脆弱性または悪意のある変更によって引き起こされることがよくあります。
A04:2025 – Cryptographic Failures(暗号化の失敗)
一般的に、転送中のすべてのデータは、トランスポートレイヤー(OSIレイヤ4)で暗号化されるべきです。かつてのCPU性能や秘密鍵/証明書管理などの障壁は、現在では暗号化を高速化するために設計された命令(例:AESサポート)を備えたCPU、およびLetsEncrypt.orgなどのサービスによる秘密鍵および証明書管理の簡素化によって処理されており、主要なクラウドベンダーは特定のプラットフォームのためにさらに密接に統合された証明書管理服务を提供しています。
トランスポートレイヤーの保護に加え、保存時に暗号化が必要なデータや、転送中に(アプリケーションレイヤー、OSIレイヤ7)追加の暗号化が必要なデータを特定することが重要です。
例えば、パスワード、クレジットカード番号、医療記録、個人情報、商業機密などのデータは、特にEUの一般データ保護規則(GDPR)やPCIデータセキュリティ標準(PCI DSS)などのプライバシー法や規制の対象になる場合、特別な保護を必要とします。
実践的な側面
-
弱い暗号化アルゴリズムや不適切な鍵管理などの暗号化の失敗の詳細な分析
-
Webセキュリティにおける強力な暗号化メカニズム、セキュアなプロトコル(SSL/TLS)、および現代の暗号技術の例の重要性
A05:2025 – Injection(インジェクション)
インジェクション脆弱性とは、攻撃者がプログラムの入力フィールドに悪意のあるコードやコマンド(SQLやシェルコードなど)を挿入し、システムにそれらをシステムの一部であるかのように実行させることを可能にするシステムの欠陥です。これは非常に深刻な結果を招く可能性があります。
実践的な側面
-
SQL、NoSQL、OS、LDAPインジェクションの詳細な分解
-
プリペアドステートメント、パラメータ化クエリ、入力のエスケープを用いた緩和技術
A06:2025 – Insecure Design(設計の不備)
設計の不備とは、「不足または無効な制御設計」として表現される、さまざまな弱点を表す幅広いカテゴリです。
設計の不備は、他のTop Tenリスクカテゴリすべての原因ではありません。設計の不備と実装の不備には違いがあることに注意してください。設計の欠陥と実装の欠陥を区別するのには理由があり、それらは異なる根本原因を持ち、開発プロセスの異なる段階で発生し、異なる修復が必要だからです。
セキュアな設計であっても、脆弱性につながる実装の欠陥が存在する可能性があります。これらは悪用される可能性があります。一方、セキュアでない設計は、必要なセキュリティ制御が特定のアタックに対して防御するために作成されなかったため、完璧な実装によって修正することはできません。
設計の不備に貢献する要因の一つは、開発されているソフトウェアまたはシステムに固有のビジネスリスクのプロファイリングが欠如していることであり、その結果、必要なセキュリティ設計のレベルを決定できないことです。
実践的な側面
-
不適切な入力検証など、脆弱性につながる設計の欠陥を探ります
-
セキュアなアーキテクチャおよびセキュアな設計原則の戦略を研究します
A07:2025 – Authentication Failures(認証の失敗)
攻撃者がシステムを欺き、無効または誤ったユーザーを合法的なユーザーとして認識させることができる場合、この脆弱性が存在します。
実践的な側面
-
一般的な認証の問題
-
多要素認証や適切なセッション処理などのセキュアな認証戦略
A08:2025 – Software or Data Integrity Failures(ソフトウェアまたはデータの整合性の欠如)
ソフトウェアおよびデータの整合性の欠如とは、無効または信頼されていないコードやデータが信頼できて有効なものとして扱われることを防止していないコードやインフラストラクチャに関連します。
例えば、アプリケーションが信頼されていないソース、リポジトリ、コンテンツデリバリーネットワーク(CDN)からのプラグイン、ライブラリ、またはモジュールに依存している場合などが挙げられます。
ソフトウェア整合性チェックを消費または提供していない不安全なCI/CDパイプラインは、不正なアクセス、不安全または悪意のあるコード、またはシステムの侵害の可能性を導入する可能性があります。
もう一つの例として、CI/CDが信頼されていない場所からコードまたは成果物を取得し、または使用 전에(署名などのメカニズムによる確認なしに)それらを検証しない場合などが挙げられます。
実践的な側面
-
信頼されていないソフトウェアの更新やデータの改ざんなどの問題に焦点を当てます
-
安全な更新メカニズムとデータ整合性チェック
A09:2025 – Security Logging and Alerting Failures(セキュリティログおよびアラートの失敗)
ログ記録と監視がない場合、アタックや侵害は検出できません。また、アラートがない場合、セキュリティインシデントが発生した際に迅速かつ効果的に対応することは非常に困難です。
アクティブな応答を開始するための十分なログ記録、継続的な監視、検出、およびアラートが常に不足しています。
実践的な側面
-
セキュリティに関連する情報のログ記録と怪しいアクティビティの監視の重要性
-
侵害を早期に検出するための適切なログ記録とリアルタイム監視のためのツールおよびプラクティス
A10:2025 – Mishandling of Exceptional Conditions(例外状態の不適切な処理)
ソフトウェアにおける例外状態の不適切な処理とは、プログラムが異常かつ予測できない状況を防止、検出、および応答することを失敗した場合に発生し、クラッシュ、予期しない動作、そして場合によっては脆弱性につながります。
これには、以下の3つの失敗の一つまたは複数を含む場合があります。
-
アプリケーションが異常な状況の発生を防止できない場合
-
状況が発生している間にそれを識別できない場合
-
その後の状況に対して不適切に応答するか、全く応答しない場合
SAST – 静的アプリケーションセキュリティテスト
-
静的分析とは何か、そしてSDLCにおいていつ実行すべきか(シフトレフト)
-
SASTを通じて検出可能な脆弱性の種類、脆弱なコードとセキュアなコード
-
SASTツールの概要(例:Semgrep、SonarQube、Checkmarx、クライアントスタックに応じて)
-
実践演習:意図的に脆弱性を導入したリポジトリでSASTスキャンを実行し、結果を解釈し、偽陽性と実際の脆弱性を分類する
DAST – 動的アプリケーションセキュリティテスト
-
SASTとDASTの違い、実行中のアプリケーションに対するブラックボックステスト
-
DASTスキャンの流れ、クローリング、ファジング、応答の分析
-
DASTツールの概要(例:OWASP ZAP、Burp Suite)
-
実践演習:脆弱なテストアプリケーション(例:OWASP Juice Shop)でDASTスキャンを実行し、調査結果を特定して検証する
SCA – ソフトウェア構成分析
-
サードパーティの依存関係とライブラリのリスク、継承される脆弱性
-
SBOM(ソフトウェア材料明細書)、それは何か、なぜ重要なのか
-
SCAツールの概要(例:Dependency Check、Snyk、GitHub Dependabot)
-
実践演習:実際のプロジェクトでSCAスキャンを実行し、脆弱な依存関係を特定して修復計画(更新、パッチ、緩和)を策定する
要求
参加者は以下の要件を満たしている必要があります。
- ソフトウェア開発の基本的な知識
- Webアプリケーションおよび一般的なWeb技術に対する基本的な理解
- ソフトウェア開発ライフサイクル(SDLC)への慣れ
- ソースコードおよびソフトウェアの依存関係に対する基本的な理解
- セキュリティの基本概念に関する知識があると望ましいですが、必須ではありません
対象読者
- ソフトウェア開発者
- ソフトウェアエンジニア
- QAおよびソフトウェアテストエンジニア
- DevOpsおよびDevSecOpsエンジニア
- アプリケーションセキュリティ専門家
- セキュリティエンジニア
- ソフトウェアアーキテクト
- テクニカルリード
- セキュアソフトウェア開発およびアプリケーションセキュリティテストに関わる専門家
お客様の声 (3)
Experience sharing, it's teacher's know-how and valuable.
Carey Fan - Logitech
コース - C/C++ Secure Coding
製品についてさらに理解を深め、RHDSとオープンソースのOpenLDAPとの主な違いを学びます。
Jackie Xie - Westpac Banking Corporation
コース - 389 Directory Server for Administrators
機械翻訳
講師の知識は非常に高かったです。彼は自分が話している内容をよく理解しており、私たちの質問にも的確に答えることができました。
Adam - Fireup.PRO
コース - Advanced Java Security
機械翻訳