Common Weakness Enumeration(CWE:共通脆弱性タイプ一覧)

掲載:2024年09月06日

用語集

「Common Weakness Enumeration(以下、CWE)」とは、ソフトウェアやハードウェアの脆弱性や設計上の欠陥を分類・整理したリストのことです。日本では一般的に、「共通脆弱性タイプ一覧」と訳されます。CWEは、世界中のソフトウェア開発者やセキュリティ専門家が、脆弱性を共通の言葉で認識するための辞書のような役割を果たしています。

         

脆弱性とはコンピュータのOSやソフトウェアにおける情報セキュリティ上の欠陥を意味し、放置すると不正アクセスやウイルス感染などを引き起こす危険性があります。このため、事前対策の導入やリスクが顕在化した際の原因調査、再発防止等を実施する上で、多岐にわたる脆弱性が、CWEのように共通標準として整理、管理されていることは非常に有効であるといえます。

CWEの概要

CWEは、米国政府の支援を受けた非営利組織のMITRE Corporationによって策定され、2008年にバージョン1.0が公開されました。現在も、MITRE Corporationが管理・運営しています。CWEは、年に3~4回の頻度で追加・更新されており、2024年7月末現在の最新バージョンは4.15です。

CWEでは、脆弱性に「CWE-123」のような識別IDを付与して管理しています。各脆弱性には、概要・影響・開発フェーズごとの対策・コーディング例・関連する脆弱性・参考文献などの幅広い情報が登録されており、脆弱性に関する世界共通の辞書として活用可能です。

CWEの体系と具体例

2024年7月末現在で、CWEに登録されている脆弱性の数は900以上です。CWEでは、この膨大な脆弱性を以下のような階層構造で、体系的に管理しています。

各階層の概要と具体例を解説します。

◆View(ビュー)
階層構造の最上位に位置するのが、特定の視点やドメイン・ユースケースに基づいた「View」です。Viewにも識別IDが割り当てられています。Viewの具体例は、以下のとおりです。
CWE-660 Weaknesses in Software Written in Java Java言語で書かれたソフトウェア脆弱性のビュー
CWE-699 Software Development ソフトウェア開発者視点のビュー
CWE-1194 Hardware Design ハードウェアデザイン視点のビュー
◆Category(カテゴリ)
階層構造の中間に位置するのは、脆弱性を特性や分野ごとに分類する「Category」です。Categoryにも識別IDが割り当てられています。Categoryの具体例は、以下のとおりです。
CWE-137 Data Neutralization Issues データ無害化の問題
CWE-1202 Memory and Storage Issues メモリとストレージの問題
◆Weakness(脆弱性)とCompound Element(複合要因)
階層構造の一番下に位置するのは、実際の脆弱性にあたる「Weakness」と「Compound Element」です。
Weaknessは個別の脆弱性で、抽象度が高い順に「Pillar」「Class」「Base」「Variant」という4つの属性に分類されています。Weaknessの具体例は、以下のとおりです。
Pillar CWE-707 Improper Neutralization 誤った無害化
Class CWE-74 Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') インジェクション
Base CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') クロスサイトスクリプティング
Variant CWE-81 Improper Neutralization of Script in an Error Message Web Page エラーメセージのWebページにおけるスクリプトの誤った無害化
Compound Elementは複数の脆弱性が組み合わされたものです。複数の脆弱性が混在する「Composite」と、別の問題が連鎖的に発生する「Chain」の2つの属性に分類されています。Compound Elementの具体例は、以下のとおりです。
Composite CWE-352 Cross-Site Request Forgery (CSRF) クロスサイトリクエストフォージェリ
Chain CWE-680 Integer Overflow to Buffer Overflow 整数オーバーフローによるバッファオーバーフロー

このように、CWEでは脆弱性が階層構造で体系化されており、利用者が目的の脆弱性や関連する情報に辿り着きやすいように整理されています。