CWE(Common Weakness Enumeration)とは
CWE(Common Weakness Enumeration)とは、ソフトウェアやシステムに存在する一般的なセキュリティの脆弱性をカテゴライズし、整理した一覧です。各CWEレコードには、以下のような項目が含まれています。
- CWE ID - 脆弱性に固有の識別番号。
- 名称 - 脆弱性を簡潔に説明する名称。
- 説明 - 脆弱性の詳細な説明とその影響。
- 関連する攻撃パターン - その脆弱性を利用する可能性のある一般的な攻撃方法。
- 脆弱性の発生要因 - 脆弱性が生じる原因や状況。
- 影響の範囲 - 脆弱性がシステムに与える可能性のある影響の種類。
- 対策 - 脆弱性を防ぐための推奨措置や対策。
- 例 - 実際のコードや状況を用いた脆弱性の例。
- 関連するCWE - 類似または関連する他のCWE項目。
これらの情報は、開発者やセキュリティ専門家がソフトウェアやシステムを設計、評価、改善する際の参考になることを目的としています。CWEは、セキュリティ上のリスクを認識し、適切な防御策を講じるための重要なリソースです。
具体的な例:クロスサイトスクリプティング(XSS)
有名なCWEの一つとして、CWE-79: 不適切な出力中和によるクロスサイトスクリプティング (XSS) を例に挙げます。以下はこのCWEレコードの具体的な項目です。
- CWE ID: CWE-79
- 名称: 不適切な出力中和によるクロスサイトスクリプティング (XSS)
- 説明: ウェブアプリケーションがユーザーからの入力を適切にサニタイズ(無害化)せずに出力することで、悪意のあるスクリプトが実行される可能性があります。これにより、攻撃者はユーザーのセッションを乗っ取る、機密情報を盗む、ユーザーに見せかけた行動を強制するなどの攻撃が可能になります。
- 関連する攻撃パターン: 攻撃者がフォーム入力やURLパラメータなどに悪意のあるスクリプトを注入し、他のユーザーがそれを読み込むことにより実行される。
- 脆弱性の発生要因: 入力バリデーションの欠如、エスケープ処理の不備、安全でないデータ処理方法など。
- 影響の範囲: 被害者のブラウザ内でスクリプトが実行されることにより、セッションハイジャック、リダイレクト、個人情報の漏洩などが発生する可能性があります。
- 対策: ユーザー入力を正しくサニタイズし、適切なエスケープ処理を行う。安全なライブラリやフレームワークの利用を検討する。
- 例: HTMLフォームにおいて、ユーザーからの入力をそのまま反映させると、
<script>alert('XSS');</script>
のような入力がそのままページに出力され、スクリプトが実行される。 - 関連するCWE: CWE-94(不適切なコード生成)、CWE-116(不適切なエンコーディングまたはエスケープ)
この例を通して、XSSのリスクとそれに対する防御方法が具体的に理解できます。CWE-79は多くのウェブアプリケーションにとって重要なセキュリティ上の考慮事項の一つです。