Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
脆弱性の種類を分類するための「CWE(Common Weakness Enumeration)」~その脆弱性とこの脆弱性は本当に同じですか?~
1
独立行政法人 情報処理推進機構 (IPA)
セキュリティセンター
情報セキュリティ技術ラボラトリー
2010年8月6日 公開
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
アジェンダ
1. CWEを見たことありますか?
2. CWEとは
3. CWEの利用例
4. CWEの活用方法
2
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEを見たことありますか?
•JVN iPediaの参考情報で
3
CWEを用いた脆弱性の分類がをあることをご存知ですか?
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEを見たことありますか?
•リンクを辿ると脆弱性の種類に対する解説があります
4では、CWEとは一体何者でしょうか?
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとは
5
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはみんなで使う脆弱性の分類
•英名:Common Weakness Enumeration
•和名:共通脆弱性タイプ一覧
•CWEは「みんなで使う脆弱性の分類」– 脆弱性の分類にIDを付けて一意に識別する
• 「クロスサイト・スクリプティング」と言われるものの分類
どれが一緒で、どう対策が違う?– reflected型
– non-persistent型
– persistent型
– stored型
– DOM Based
– UTF-7型
– 文字コード型
– 脆弱性の原因や対策等が書かれている
– 米国の非営利組織であるMITRE社が中心となり仕様策定が行われている
6
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとは共通脆弱性分類の意義
•同じ意味の脆弱性の話をしてほしい– 例えば・・・
•クロスサイト・スクリプティング
•バッファオーバーフロー
– 同じ言葉でも色々な意味がある
– 全般の話か各論の話か
•これを解決するためにCWEでは– 脆弱性毎にID(CWE-ID)を振って、一意に識別している
– ツリー構造により、脆弱性毎の関連が分かるようになっている•「スタックベースのバッファオーバーフロー」はバッファオーバーフローの一種である
XSS全般の話?
アンダーフロー?
スタックベース?ヒープベース?
文字コード型?
non-persistent型?
クロスサイト・スクリプティングの場合
バッファオーバーフローの場合
7
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとは共通脆弱性分類の意義
•一意のIDが振られている
•脆弱性毎の関連性が分かる!
– ツリー構造を利用してそれぞれの脆弱性の関連性を分かるようにしている
•原因と対策が分かる!
– それぞれのCWE-IDで原因や対策等が書かれている
•みんなも使っている分類!
– 48の組織が関わって作成している(2010年7月現在)
– 28の組織がCWEの互換性を持つソフトウェアやサービスを使用、またはその予定があることを表明している(2010年7月現在)
8
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはCWEの概要(1)-1
•CWEの構造(ID)
– 一意のIDが振られている
– それぞれのIDにタイプがある• ビュー(View)
• カテゴリ(Category)
•脆弱性(Weakness)– クラス(Weakness Class)
– ベース(Weakness Base)
– バリアント(Weakness Variant)
•複合要因(Compound Element)– コンポジット(Composite)
– チェイン(Chain)
CWEの公式ページではそれぞれの脆弱性タイプのマークがある
9
例) 「ヒープベースのバッファオーバーフロー(CWE-122)」は「開発者向け(CWE-699)」のビューのツリーにおいて、「ソフトウェアの開発と配布・配置・設定(CWE-1)」のカテゴリ ⇒ 「コード(CWE-17)」のカテゴリ ⇒
「ソースコード(CWE-18)」のカテゴリ ⇒ 「データの取り扱い(CWE-19)」のカテゴリ ⇒「インデックス化が可能なリソースの不適切なアクセス(範囲エラー) (CWE-118)」の脆弱性・クラス ⇒
「メモリバッファの境界内の強制オペレーションの失敗 (CWE-119)」の脆弱性・クラス ⇒「バッファの終端後のメモリ配置に対するアクセス (CWE-788)」の脆弱性・ベースの下にある、脆弱性・バリアントである
同列に「スタックベースのバッファオーバーフロー(CWE-121)」と「バッファオーバーリード(CWE-126)」がある
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはCWEの概要(1)-2
•CWEの構造(ID)名称 概要 例
ビューある観点(対象の人や組織の観点等)からいくつかの脆弱性タイプを選択して集めたもの。観点における脆弱性がリストアップされている。「Graph」があるものはその脆弱性に関するツリーが存在する。
CWE-699:開発者向けCWE-1000:研究者向けCWE-629:OWASP Top10CWE-635:NVDで使用
カテゴリ 共通の特性を持つ脆弱性タイプのグループ化した親ID.CWE-16:環境設定CWE-189:数値処理の問題
脆弱性 個々の脆弱性を示したもの。次の三つの属性がある。 -
クラス 最も抽象的な脆弱性の属性。大まかな脆弱性の属性。CWE-20:不適切な入力確認CWE-200:情報漏えい
ベース 特定の環境や技術に依存しない脆弱性。CWE-79:XSSCWE-89:SQLインジェクション
バリアント 特定の環境や技術に依存する脆弱性。CWE-85:Doubled Character XSS Manipulations
複合要因 複数の要因が複合した脆弱性。次の二つの属性がある。 -
コンポジット 複数の脆弱性が混合して発生する脆弱性。CWE-384:Session Fixation (*1)
CWE-352:CSRF (*2)
チェインある問題が原因で別の問題が連鎖して発生する脆弱性。CWE-699にない分類
CWE-680:Integer Overflow to Buffer Overflow
(*1) CWE-472:External Control of Assumed-Immutable Web Parameter, CWE-346: Origin Validation Error, CWE-446: Unintended Proxy/Intermediaryの複合(*2) CWE-642: External Control of Critical State Data, CWE-613: Insufficient Session Expiration, CWE-346:Origin Validation Error, CWE-441: Unintended Proxy/Intermediaryの複合
10
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはCWEの概要(2)
•CWEの構造(ビュー )
– ビューでは、脆弱性の関連が分かるよう、IDをツリー構造にしている(一部はツリー構造とせず、リストのみを提供しているビューもある)
CWE-635におけるツリー構造(JVN iPediaが使用する脆弱性タイプに関連するツリー)
CWE-699 におけるツリー構造 (一部)http://cwe.mitre.org/data/graphs/699.html 11
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはCWEの概要(3)-1
•CWEの構造(ビュー以外 )
– それぞれのIDに書かれていること
12
解説 被害の緩和策
脆弱性の発生時期
脆弱なコード例
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEとはCWEの概要(3)-2
•CWEの構造(ビュー以外 )
– それぞれのIDに主に書かれていること
13
項目 記載内容
解説 脆弱性の要約・詳細な解説
別名 他の呼び方(例:クロスサイト・スクリプティングの場合、「XSS」等)
脆弱性の発生時期 設計の時に発生するか実装の時に発生するか、それとも両方か
該当するプラットフォーム 分類(例:ウェブサーバ)や言語等
一般的な影響 機密性・完全性・可溶性に対する影響について
攻撃を受ける可能性 高いか低いか
脆弱なコード例 どのようにすると脆弱なコードになってしまうか
被害の緩和策 どのようにすれば、当該脆弱性を回避できるか、対策ができるか
関係性 他のCWEとどのような関係があるか
影響を受けるシステムリソース メモリで発生するのか等
他組織での分類 他の組織ではどのような分類をしているか
関連する攻撃パターン CAPEC(Common Attack Pattern Enumeration and Classification)の分類
参照 参考資料
※全てのIDで、これら全部書かれているわけではない
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEのおさらい
14
•CWEのポイント
– 一意のIDが振られている
– IDにそれぞれタイプがある
•ビューのIDではツリー構造を作成し、脆弱性の関連が分かるようになっている
•ビュー以外では脆弱性の説明
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」15
CWEの利用例
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの利用例IPAの場合
•IPAでは、NVD*3で使っているCWE( CWE-635)と同じものを使用。
16(*3)NVD:National Vulnerability Database。NISTが運営する脆弱性データベース。(*4)米国政府向けの技術支援や研究開発を行う非営利組織。
•JVN iPediaとMyJVNで採用
– CWE互換を達成!•MITRE*4に必要な手続きをすれば、正式に互換性のあるものと認
定される。
– つまり、NVDとJVN iPediaのデータは比較可能
http://www.ipa.go.jp/security/vuln/CWE.html
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの利用例世界の場合
•CWE/SANS TOP25•概要:「最も危険なプログラミングエラー25項目」として公開され
ている文書。– ワシントンDCで米国をはじめとする各国のサイバーセキュリティ会社に所属す
る30名以上の専門家でまとめたもの。
•25項目にCWEを使用している。
17
<25項目の内訳>脆弱性クラス:12項目脆弱性ベース:11項目複合要因コンポジット:2項目
大まかな分類をして、開発者向けの要点をまとめている。
引用資料: The SANS™ Institute :CWE/SANS最も危険なプログラミングエラーTOP 25http://www.sans.org/top25-programming-errors/2009/top25_japanese.pdf
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの利用例世界の場合
•OWASP*5 Top 10
– ウェブアプリケーションにおける危険な脆弱性のトップ10を出している。
•トップ10の脆弱性に、それぞれCWEのIDが関連付けている。
•http://www.owasp.org/index.php/Top_10_2010
18(*5)OWASP(Open Web Application Security Project):世界中のボランティアによるプロジェクト。ウェブアプリケーションにおけるセキュリティの資料の公開等を行う
引用資料: OWASP Foundation Top 10 2010-A1-Injectionhttp://www.owasp.org/index.php/Top_10_2010-A1
OWASP Top 10 2010では、
CWEベースで、14個の脆弱性について記載。
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの利用例世界の場合
•その他の利用
– WASC(Web Application Security Consortium)の資料における脆弱性分類の基準として
•http://projects.webappsec.org/Threat-Classification
– 米国企業:ソースコード脆弱性検査ツール
•米国企業で、開発しているソースコード脆弱性検査ツールに使用されている。
19
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」20
CWEの活用方法
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの活用方法セキュリティ研究者・ベンダの場合
•セキュリティ検査ツールに
– セキュリティ検査ツールのサポート範囲の明確化•説得のポイントとなる!
•自社の検査が共通の仕様に基づいていることを示せる
•検査レポートやセキュリティ用レポートに
– CWEに準拠しているレポートとして
– 顧客への説明として•他の資料との対比のしやすさ。
•より活用される資料にするために。
21
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの活用方法セキュリティ研究者・ベンダの場合
•受注側の説明資料に
– 例えば・・・•「ウェブアプリケーションの脆弱性に関しては、この範囲のCWEの
対処が重要です。この範囲に関しては重点的にサポートするようにいたします。」
•というアピールに!
22
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
CWEの活用方法開発者の場合
•脆弱性の教育・理解に
– 脆弱性の教育や理解の際のCWEという体系に基づいた勉強ができる。
•脆弱性対策の指標に
– 自分のプロジェクトにおいて、コーディングする際に、知っている必要があるものを体系立てるための判断材料にすることができる。
23
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」24
まとめ
Copyright © 2010 独立行政法人 情報処理推進機構 情報セキュリティ対策を自動化する標準仕様「SCAP」
まとめ
•CWEは「みんなで使う脆弱性の分類」です。
•「レポートの比較」等ができるようになるなど、CWEをみんなで利用することは有用です。
•もし、脆弱性に関連するレポート等を作成される機会があればCWEを交えて説明してはいかがでしょう。
25