HOME情報セキュリティ情報セキュリティ対策脆弱性対策共通脆弱性タイプ一覧CWE概説

本文を印刷する

情報セキュリティ

共通脆弱性タイプ一覧CWE概説

CWE(Common Weakness Enumeration)
~脆弱性の種類を識別するための共通の脆弱性タイプの一覧~

最終更新日 2015年7月22日

独立行政法人 情報処理推進機構
セキュリティセンター
>> ENGLISH

 共通脆弱性タイプ一覧CWE(Common Weakness Enumeration)(*1)は、ソフトウェアにおけるセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準を目指しています。

 1999年頃から米国政府の支援を受けた非営利団体のMITRE(*2)が中心となり仕様策定が行われ、2006年3月に最初の原案が公開されました。その後、40を超えるベンダーや研究機関が協力して仕様改善や内容拡充が行われ、2008年9月9日にCWEバージョン1.0が公開されました。

 CWEでは、SQLインジェクション、クロスサイト・スクリプティング、バッファオーバーフローなど、多種多様にわたるソフトウェアの脆弱性を識別するための、脆弱性の種類(脆弱性タイプ)の一覧を体系化して提供しています。CWEを用いると、ソフトウェア開発者やセキュリティ専門家などに次のようなメリットがあります。

  1. ソフトウェアのアーキテクチャ、デザイン、コードに内在する脆弱性に関して、共通の言葉で議論できるようになる。
  2. 脆弱性検査ツールなど、ソフトウェアのセキュリティを向上させるための、ツールの標準の評価尺度として使用できる。
  3. 脆弱性の原因を認識し、脆弱性の低減を行い、再発を防止するための共通の基準として活用できる。

 現在、CWEは、NIST(*3)のNVD(*4)、OWASP(*5)のTop Ten Project(*6)や、いくつかのセキュリティベンダーなどで実際に活用されています。

 CWEにはCWE互換認定の制度があり、脆弱性検査ツールや脆弱性対策情報提供サービス等がCWE識別子の正確な表示、CWE識別子による情報の検索などの機能要件を満たし、MITRE社へ申請するとCWE互換認定が受けられます。CWE互換認定を受けると、MITRE社のウェブサイトで紹介される、CWEのロゴが使用できる等のメリットがあります。

 JVN iPedia(*7)、MyJVN(*8)もCWE互換認定に向けて、2008年10月にMITRE社へCWE互換を宣言しました。
http://cwe.mitre.org/news/archives/news2008.html#20081014c

 本資料はMITREから公開されたCWE Version 1.5の資料を基に作成しました。詳細は、MITREの「CWE List」 を参照下さい。

1. CWEの構造

 CWEでは多種多様な脆弱性の種類を脆弱性タイプとして分類し、それぞれにCWE識別子(CWE-ID)を付与して階層構造で体系化しています。上位層に近いほど抽象的な脆弱性タイプを表し、下位層にいくほど具体的な脆弱性タイプや個々の脆弱性を表しています。

 脆弱性タイプは、ビュー(View)、カテゴリー(Category)、脆弱性(Weakness)、複合要因(Compound Element)の4種類に分類されます。現在、ビュー(View)として22個、カテゴリー(Category)として105個、脆弱性(Weakness)として638個、複合要因(Compound Element)として12個、合計777個の脆弱性タイプが分類され一覧となっています。

(1) ビュー(View)

 ある観点からいくつかの脆弱性タイプを選択して集めたものです。
 例えば、NISTでは、実際に公表されている脆弱性を考慮し、CWEの中から19個の脆弱性タイプを選択してNVDに掲載しています(CWE Cross Section Mapped into by NVD)。この19個の脆弱性タイプを集めたビュー(View)にCWE-635のCWE識別子が割り当てられています。
 この他、開発者の観点から脆弱性タイプを集めたビュー(View)にCWE-699、研究者の観点のものにCWE-1000、C言語に起因するものにCWE-658、Java言語に起因するものにCWE-660などが割り当てられています。

(2) カテゴリー(Category)

 共通の特性を持つ脆弱性タイプをグループ化したものです。
 例えば、CWE-310の暗号の問題に関連する脆弱性、CWE-355のユーザインターフェースに関連する脆弱性が該当します。

(3) 脆弱性(Weakness)

 個々の脆弱性を表したもので、クラス(Class)、ベース(Base)、バリアント(Variant)の属性が付与されています。
 クラス(Class)は、最も抽象的な脆弱性の属性です。例えば、CWE-362の競合状態の脆弱性が該当します。
 ベース(Base)は、特定のリソースや技術に依存しない脆弱性の属性です。例えば、CWE-567の共有データへの非同期アクセスの脆弱性が該当します。
 バリアント(Variant)は、個々のリソースや技術、コンテキストなどが特定できるような脆弱性の属性です。例えば、CWE-488の異なるセッション間で適切にセッションを識別できないことによる情報漏えいの脆弱性が該当します。

(4) 複合要因(Compound Element)

 複数の要因が複合した脆弱性を表したもので、コンポジット(Composite)とチェイン(chain)の属性が付与されています。
 コンポジット(Composite)は、複数の脆弱性が混合して発生する脆弱性の属性です。例えば、CWE-352のクロスサイト・リクエスト・フォージェリ(CSRF)の脆弱性が該当します。
 チェイン(chain)は、ある問題が原因で別の問題が連鎖して発生する脆弱性の属性です。例えば、CWE-680の整数オーバーフローの発生によるバッファオーバーフローの脆弱性が該当します。

2. CWEが提供している脆弱性タイプ一覧の内容

 CWEが提供している脆弱性タイプ一覧のリスト(CWE List)には、CWE識別子(CWE-ID)ごとに様々な情報が記載されています。
 脆弱性の概要、攻撃の受けやすさ、一般的な脅威、脆弱性の軽減策、脆弱性の発生する具体的なコーディング例、当該脆弱性に起因する具体的な事例の紹介などの情報が整理されています。
 利用者は、脆弱性を識別し、脆弱性の低減を行い、再発を防止するための辞書として活用することができます。

3. IPAのCWEの適用について

 IPAでは、NVDが使用している脆弱性分類(CWE-635)を参考に、脆弱性対策情報データベース「JVN iPedia(*7)で公開するそれぞれの脆弱性対策情報の参考情報欄に、CWEの脆弱性タイプを掲載する試行を2008年9月10日から開始しました。

 その後、CWEの表示・検索などCWE互換を宣言するための要件を整備し、2008年10月3日よりCWEの適用を開始しました。次のMITREのページでも紹介されています。
http://cwe.mitre.org/compatible/organizations.html

 また、2008年10月23日に公開した脆弱性対策情報収集ツール「MyJVN(*8)でもCWEを適用しています。

 CWE互換を「宣言」する必須要件である「CWE検索」「CWE表示」「CWE文書整備」「対応付け」については、表1に示す機能で実現しています。

表1.JVN iPedia、MyJVNでの要件対応状況

要件

対応するサービス

実現方法

CWE
検索

JVN iPedia、
MyJVN共通
脆弱性対策情報データベースJVN iPediaの検索機能により、利用者はCWE識別子をキーワードとして対応する脆弱性対策情報が検索できます。

CWE
表示

JVN iPedia 各脆弱性対策情報の参考情報欄において、CWE識別子を表示しています。
MyJVN 各脆弱性対策情報 詳細情報のアドバイザリ情報、参考情報において、CWE識別子を表示しています。

CWE
文書整備

JVN iPedia、
MyJVN共通
本資料が、CWEおよびCWE互換、CWE関連機能の実現方法についての文書となります。

対応付け

JVN iPedia、
MyJVN共通
JVN iPediaのJVNRSS中のセキュリティ情報の識別番号を格納するsec:identifierにJVN iPediaのIDを記載し、関連するセキュリティ情報のURLなどを格納するsec:referenceにCWE識別子を記載することにより、JVN iPediaのIDとCWE識別子の対応付け結果を提示しています。

 

 図1は、CWEの階層構造図「PDFs with Graphical Depictions of CWE (1.5)」の中から開発者向けの階層構造図「Development View with Abstractions Highlighted」を参照し、JVN iPediaに掲載する脆弱性タイプに関連するものを抜き出して表した階層構造図です。黄色で表示したものがJVN iPediaが使用する脆弱性タイプです。

 今後、実際に公表される脆弱性を考慮し、脆弱性の事例の多いものは脆弱性の原因に着目して、より下位層の脆弱性タイプを選択して詳細化を図るなど、検討を行っていきます。

図1. NISTのNVDが使用しているCWEの脆弱性タイプ

図1. JVN iPediaに掲載するCWEの脆弱性タイプの階層構造図

4. JVN iPediaが使用する脆弱性タイプ

 表2にJVN iPediaが使用する脆弱性タイプの一覧を示します。概要・対策方法欄に、IPAの普及啓発資料「知っていますか?脆弱性」や「安全なウェブサイトの作り方」、「セキュア・プログラミング講座」の該当する箇所を示してありますのでご活用下さい。
 なお、表2の#20~#23はCWE-635で分類できないもので、#20はCWE-635以外のCWE分類に該当するもの、#21はCWEで分類できないもの、#22は分類するための情報が不足しているもの、#23はシステム設計上の問題です。

表2. JVN iPediaが使用する脆弱性タイプ

#

CWE識別子

脆弱性タイプ

概要・対策方法

1

CWE-16

環境設定

ソフトウェアの設定に関する脆弱性

2

CWE-20

不適切な入力確認

知っていますか?脆弱性:10章
安全なウェブサイトの作り方:1.8節
WebAP編:入力検査漏れ対策

3

CWE-22

パス・トラバーサル

知っていますか?脆弱性:4章
安全なウェブサイトの作り方:1.3節
C/C++編:ファイルの別名検査

4

CWE-59

リンク解釈の問題

C/C++編:シンボリックリンク攻撃対策

5

CWE-78

OSコマンド・インジェクション

知っていますか?脆弱性:5章
安全なウェブサイトの作り方:1.2節
WebAP編:コマンド注入攻撃対策
C/C++編:コマンド注入攻撃対策

6

CWE-79

クロスサイト・スクリプティング(XSS)

知っていますか?脆弱性:2章
安全なウェブサイトの作り方:1.5節
WebAP編:スクリプト注入

7

CWE-89

SQLインジェクション

知っていますか?脆弱性:1章
安全なウェブサイトの作り方:1.1節
WebAP編:SQL注入
C/C++編:SQL注入攻撃対策

8

CWE-94

コード・インジェクション

WebAP編:コマンド注入攻撃対策

9

CWE-119

バッファエラー

C/C++編:バッファオーバーフロー

10

CWE-134

書式文字列の問題

C/C++編:フォーマット文字列攻撃対策

11

CWE-189

数値処理の問題

C/C++編:整数オーバーフロー攻撃対策

12

CWE-200

情報漏えい

WebAP編:Webサーバからのファイル流出対策

13

CWE-255

証明書・パスワード管理

知っていますか?脆弱性:8章
WebAP編:真正性の主張
WebAP編:ユーザ認証
C/C++編:本人認証

14

CWE-264

認可・権限・アクセス制御

安全なウェブサイトの作り方:1.9節
WebAP編:アクセス認可
C/C++編:アクセス認可

15

CWE-287

不適切な認証

WebAP編:ユーザ認証
C/C++編:本人認証

16

CWE-310

暗号の問題

C/C++編:破られにくい暗号技術と擬似乱数の使用

17

CWE-352

クロスサイト・リクエスト・フォージェリ(CSRF)

知っていますか?脆弱性:3章
安全なウェブサイトの作り方:1.6節
WebAP編:リクエスト強要(CSRF)対策

18

CWE-362

競合状態

C/C++編:レースコンディションの一般的対策
C/C++編:ファイルレースコンディション対策

19

CWE-399

リソース管理の問題

知っていますか?脆弱性:9章
C/C++編:サービス不能状態対策
C/C++編:メモリリーク対策

20

CWE-Other

その他

CWE-635(#1~#19)以外のCWE分類

21

CWE-nocwe

CWE以外

CWEで分類できない脆弱性

22

CWE-noinfo

情報不足

分類するための情報が不足

23

CWE-
DesignError

設計上の問題

システム設計上の問題

注)知っていますか?脆弱性:「知っていますか?脆弱性(ぜいじゃくせい)
  安全なウェブサイトの作り方:「安全なウェブサイトの作り方
  WebAP編:「セキュア・プログラミング講座 Webアプリケーション編
  C/C++編:「セキュア・プログラミング講座 C/C++言語編

脚注

(*1)CWE:Common Weakness Enumeration。
http://cwe.mitre.org/index.html

(*2)MITRE Corporation:米国政府向けの技術支援や研究開発を行う非営利組織。
http://www.mitre.org/

(*3)NIST:National Institute of Standards and Technology。米国国立標準技術研究所。米国の科学技術分野における計測と標準に関する研究を行う機関。
http://www.nist.gov/

(*4)NVD:National Vulnerability Database。NISTが運営する脆弱性データベース。
http://nvd.nist.gov/

(*5)OWASP:Open Web Application Security Project。ウェブアプリケーションやウェブサービスを安全にするためのオープンソースソフトウェアの開発や、ソフトウェアのセキュリティを高めるための普及・啓発資料などを整備している非営利プロジェクト。
http://www.owasp.org/

(*6)OWASPのTop Ten Project:ウェブアプリケーションの脆弱性対策の重要性の啓蒙を目的に、OWASPがウェブアプリケーションにおける深刻な脆弱性に絞り、上位10個の脆弱性をまとめたもの。
http://www.owasp.org/index.php/OWASP_Top_Ten_Project

(*7)「脆弱性対策情報データベース JVN iPedia をバージョンアップ」を参照下さい。
http://www.ipa.go.jp/security/vuln/documents/2008/200809_JVN_iPedia.html

(*8)「脆弱性対策情報収集ツール MyJVN を公開」を参照下さい。
http://www.ipa.go.jp/security/vuln/documents/2008/200810_MyJVN.html

参考情報

本件に関するお問い合わせ先

IPA セキュリティセンター(IPA/ISEC) 寺田/斉藤
Tel:03-5978-7527 Fax:03-5978-7518
E-mail: 電話番号:03-5978-7527までお問い合わせください。

更新履歴

2015年7月22日 参考情報を追加
2014年3月20日 参考情報を追加
2010年6月24日 参考情報を追加
2010年2月25日
参考情報を追加しました。
2009年8月 5日
CWEの1.5版を適用しました。
2009年6月18日
4章のCWE識別子のリンク先を、JVN iPediaのCWE翻訳ページに変更しました。
2009年6月 3日
CWEの1.4版に合わせ更新しました。
2008年9月10日
掲載