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