情 報 処 理 推 進 機 構 ウェブアプリケーション 開 発 者 向 けセキュリティ 実 装 講 座 2006 年 2 月 28 日, 4 月 4 日 後 日 配 布 資 料 CSRF と Session Fixation の 諸 問 題 について 独 立 行 政 法 人 産 業 技 術 総 合 研 究 所 情 報 セキュリティ 研 究 センター 高 木 浩 光 http://staff.aist.go.jp/takagi.hiromitsu/ 目 次 前 提 知 識 の 確 認 Webアプリにおけるセッション 追 跡 と 認 証 の 実 装 手 段 セッションハイジャック 攻 撃 の 原 理 と 脅 威 CSRF (Cross-Site Request Forgeries) 別 名 : Session Riding 歴 史 的 経 緯 原 因 脅 威 技 術 的 対 策 適 法 な 存 在 推 定 手 段 Session Fixation 歴 史 的 経 緯 原 因 脅 威 技 術 的 対 策 適 法 な 存 在 推 定 手 段 1 2 セッション 追 跡 と 認 証 の 実 装 手 段 セッションIDによる 方 法 (フォーム 認 証 ) セッションIDに 紐 付 けた 値 で 認 証 済 みであることを 確 認 する (セッション 追 跡 用 途 と 認 証 済 み 確 認 用 途 を 兼 ねる) セッションID 格 納 場 所 : cookie POSTのhiddenパラメタ URL ログイン 認 証 前 にセッションIDを 発 行 する 方 法 同 じブラウザからの 一 連 のアクセスを セッション とするもの ログイン 認 証 後 にセッションIDを 発 行 する 方 法 あるユーザのログインからログアウトまでを セッション とするもの HTTP 認 証 による 方 法 (Basic 認 証 ダイジェスト 認 証 ) 認 証 後 CGIのAPIによりユーザ 名 を 取 得 できる 取 得 できないときはログインしていないアクセス SSLクライアント 認 証 による 方 法 認 証 後 SSLのAPIによりユーザ 名 を 取 得 できる 取 得 できないときはログインしていないアクセス 3 4 (1) サーバ User=takagi Password=xxxxxxxx Set-Cookie: sid=7j3xdwwjiks ブラウザ (3) (2) (4) セッション 管 理 表... 7J3xdwWjIKs takagi (5) GET / HTTP/1.1 Cookie: sid=7j3xdwwjiks いらっしゃいませtakagi 様 Cookie 記 憶 表 sid=7j3xdwwjiks... (6) GET /card.cgi HTTP/1.1 Cookie: sid=7j3xdwwjiks VISA:4980-XXXX-XXXX-XXXX
セッションIDの 格 納 場 所 セッションハイジャック 攻 撃 Cookie URLパラメタ POSTのhiddenパラメタ <input type= hidden name= sessionid value= 2ac477812585b2dd > 5 ログイン 状 態 の 乗 っ 取 り セッションID 窃 用 によるセッションハイジャック セッションIDの 値 だけでどのユーザからのアクセスなのかを 識 別 しているため 同 じ 値 のセッションIDを 第 三 者 が 送 ってくると 本 人 なのか 成 り すましアクセスなのか 区 別 できない 参 考 : IPアドレスの 一 致 確 認 による 対 策? 完 全 な 対 策 にはならない 企 業 など 組 織 用 プロキシ 経 由 や プライベートアドレスを 割 り 当 てる ISPからのアクセスは 中 の 人 をIPアドレスで 区 別 できない 一 致 に 幅 を 持 たせざるを 得 ない 同 じ 人 からのアクセスが 異 なるIPアドレスからとなる 場 合 がある 6 その 原 因 その 脅 威 セッションIDを 盗 まれる Referer: によるURLの 流 出 Cookieの 盗 み 出 し Webアプリ 側 のクロスサイトスクリプティング(XSS) 脆 弱 性 を 突 いた 攻 撃 によるもの ブラウザの 脆 弱 性 を 突 いた 攻 撃 によるもの (JavaScriptのsame origin ruleの 破 れ XSS 脆 弱 性 ) パケット 盗 聴 SSLでの 保 護 を 前 提 としているのにcookieにsecure 属 性 を 指 定 せず セッションIDを 窃 用 される ブラウザからサーバへの 送 信 を 模 倣 する 自 分 のブラウザにcookieを 自 力 でセットする 自 分 のブラウザにパラメタをセットしたHTMLを 表 示 させてアクセスを 継 続 (POSTのhiddenパラメタ) ログイン 中 のユーザと 同 じことができる ただし 一 回 だけ ユーザがログアウトした 時 点 で 乗 っ 取 りの 継 続 は 不 能 となる(ように Webアプリを 作 ることができる) ただし 二 重 の 認 証 がある 場 合 には たとえば 銀 行 の 乱 数 表 のように ログインした 後 で 第 二 の 秘 密 情 報 に よる 認 証 を 設 けている 場 合 外 側 のセッションハイジャックでは 第 二 の 認 証 の 内 側 までは 入 れない ただし 第 二 の 認 証 の 確 認 方 法 が 外 側 のセッションの 状 態 変 数 で 調 べ る 方 式 の 場 合 は ユーザが 第 二 の 認 証 の 内 側 に 入 っている 時 点 でセッ ションハイジャックされると 第 二 認 証 の 中 にも 入 られてしまう ただし パスワード 変 更 機 能 ( 不 適 切 な)がある 場 合 一 回 のセッションハイジャックでパスワードを 変 更 され 継 続 して 不 正 ロ グインされる 危 険 性 がある 場 合 もある telnetなどで 直 接 TCPでHTTPを 送 信 7 8
その 具 体 的 被 害 画 面 を 閲 覧 するアクセスによるもの 情 報 漏 洩 登 録 されている 個 人 情 報 を 盗 まれる ユーザの 利 用 履 歴 を 盗 まれる 状 態 を 変 更 するアクセスによるもの 登 録 情 報 の 改 竄 登 録 している 個 人 情 報 などを 書 き 換 えられる 設 定 の 変 更 パスワード 変 更 プライベートモード 取 り 消 し 振 り 込 み 上 限 額 の 変 更 注 文 の 実 行 なりすまし 注 文 オークションの 不 正 出 品 および 取 り 消 し 不 正 送 金 その 現 実 性 いわゆる 受 動 的 攻 撃 攻 撃 者 の 仕 掛 けた 罠 サイトに 被 害 者 がアクセスした 時 点 で 攻 撃 が 成 功 する 目 標 サイトに 被 害 者 がログイン 中 のタイミングで 緩 和 される 要 素 ログイン 中 でなければ 攻 撃 は 成 功 しない Webサイト 運 営 者 の 責 任 の 重 大 性 原 状 回 復 不 能 な 被 害 9 10 他 の 認 証 方 式 では HTTP 認 証 による 方 法 (Basic 認 証 ダイジェスト 認 証 ) JavaScriptから 認 証 情 報 へアクセスできないため 脆 弱 性 の 影 響 を 受 けにくい( 影 響 を 受 ける 脆 弱 性 の 発 覚 頻 度 が 低 め) 過 去 に 指 摘 された 該 当 する 脆 弱 性 HTTPサーバがTRACEメソッドの 利 用 を 許 している 場 合 サイト 側 のXSS 脆 弱 性 により リクエストヘッダの Authorization: フィールドが 漏 洩 Proxyサーバ 等 のHTTP Request Smuggling 脆 弱 性 による 漏 洩 実 装 はHTTPサーバ 開 発 者 の 責 任 であり 個 々のWebアプリ 開 発 者 の 実 装 ミスの 影 響 を 受 けない SSL 使 用 時 はhttpsでログインした 認 証 情 報 はhttpsページにしか 送 信 されない SSLクライアント 認 証 による 方 法 SSLのプロトコル 上 ハイジャックができない セッションの 有 効 期 限 ブラウザ 側 の 挙 動 セッション 限 り のcookie ブラウザを 終 了 させるまで 有 効 HTTP 認 証 ブラウザを 終 了 させるまで 有 効 SSLクライアント 認 証 ブラウザを 終 了 させるまで 有 効 近 年 のブラウザの 利 用 形 態 の 変 化 Windows XPの 普 及 により OSが 再 起 動 される 機 会 が 激 減 タブブラウザの 普 及 で ブラウザが 終 了 される 機 会 が 減 少 中 ブラウザ 側 操 作 での 認 証 状 態 のクリア cookie 簡 単 にはできない( 当 該 cookieだけ 消 すのは 面 倒 ) HTTP 認 証 IEでは 無 理 Firefoxでは プライバシー 情 報 の 消 去 の 認 証 済 みのセッション の 操 作 SSLクライアント 認 証 IEでは SSL 状 態 のクリア http://support.microsoft.com/?scid=kb;ja;820695&spid=2073&sid=283 Firefoxでは プライバシー 情 報 の 消 去 の 認 証 済 みのセッション http://lxr.mozilla.org/mozilla1.8.0/source/browser/base/content/sanitize.js#246 11 12
Session Riding 別 名 CSRF: クロスサイトリクエストフォージェリ 歴 史 的 経 緯 国 内 での 初 出 (?) セキュリティホールmemo メーリングリスト, 2001 年 7 月 Subject: [memo:846] セッション 管 理 の 脆 弱 性 Date: Tue, 17 Jul 2001 18:40:51 +0900 (JST) From: HIRATA Yasuyuki <yasu@asuka.net> http://www.japu.org/cgi/security/session_vulnerability.html CSRF の 初 出 : Bugtraqへの 投 稿 Subject: Cross-Site Request Forgeries (Re: The Dangers of Allowing Users to Post Images), Date: Fri, 15 Jun 2001 01:15:42-0400 From: Peter W <peterw@usa.net> http://cert.uni-stuttgart.de/archive/bugtraq/2001/06/msg00216.html 別 名 の 提 案 : Thomas Schreiber, Session Riding A Widespread Vulnerability in Today s Web Applications, 2004 年 12 月 http://www.securenet.de/papers/session_riding.pdf 13 Thomas Schreiber, Session Riding A Widespread Vulnerability in Today s Web Applications, 2004 年 12 月 http://www.securenet.de/papers/session_riding.pdf In this paper we describe an issue that was raised in 2001 under the name of Cross-Site Request Forgeries (CSRF) [1]. It seems, though, that it has been neglected by the software development and Web Application Security community, as it is not part of recent Web Application Security discussions, nor is it mentioned in OWASP's Top Ten [2] or the like.... We prefer to call this issue Session Riding which more figuratively illustrates what is going on. 脅 威 シナリオとして 以 下 を 挙 げている 管 理 者 アプリへの 操 作 ルータの 設 定 変 更 Webメールによる 偽 造 メールのなりすまし 送 信 (Sender-IDが 導 入 されても 本 物 と 区 別 つか ない) パスワードの 変 更 以 下 について 考 察 している カスタムWebアプリ イントラネット シングルサインオン WebDAV ワンタイムトークン/TAN 使 用 時 14 最 近 の 状 況 原 因 IPAの 定 例 発 表 で 話 題 に ソフトウエア 等 の 脆 弱 性 関 連 情 報 に 関 する 届 出 状 況 [2005 年 第 1 四 半 期 (1 月 ~3 月 )], 2005 年 4 月 19 日 http://www.ipa.go.jp/security/vuln/report/vuln2005q1.html また 新 たに SSIインジェクション クロスサイト リクエスト フォージェリ(Cross-Site Request Forgeries) の 問 題 を 指 摘 する 届 出 がありました 英 語 圏 での 状 況 BUGTRAQでの CSRF の 出 現 頻 度 2006/01: 1 2005/05: 2 2003/01: 1 2005/11: 2 2005/02: 1 2001/06: 5 2005/10: 1 2004/12: 1 2005/09: 3 2004/09: 1 2005/06: 1 2004/03: 2 15 攻 撃 サイトから 目 標 サイトへのリンク GETによるリンク POSTによるリンク(そのJavaScriptによる 自 動 submitを 含 む) 被 害 者 が 目 標 サイトにログイン 中 に 罠 のサイトを 訪 れたとき セッション 追 跡 を 以 下 の 方 法 で 行 っている 場 合 cookieのセッションid cookieが 自 動 的 にサーバへ 送 信 される HTTP 認 証 認 証 済 み 状 態 が 自 動 的 に 継 続 する SSLクライアント 認 証 認 証 済 み 状 態 が 自 動 的 に 継 続 する ログイン 中 の 状 態 でGETやPOSTのアクセス 16
サーバ User=takagi Password=xxxxxxxx Set-Cookie: sid=7j3xdwwjiks ブラウザ セッション 管 理 表... 7J3xdwWjIKs takagi Cookie 記 憶 表 sid=7j3xdwwjiks... POST /chgpass HTTP/1.1 Cookie: sid=7j3xdwwjiks newpass=flower パスワードを 変 更 しました 外 部 サ イ ト か ら の リ ン ク で 17 掲 示 板 荒 らしとの 対 比 掲 示 板 に 自 動 書 き 込 みするリンク(POSTの 自 動 submit) 古 くから 存 在 対 策 していないところも 多 い 2ちゃんねる 掲 示 板 では Referer: が 2ch.net であることを 確 認 slashdot ではワンタイムトークンとIPアドレスで 確 認 返 事 を 書 く リンクをクリックした 時 点 で ランダム(かどうかは 未 確 認 )なワンタイ ムトークンをhiddenパラメタに 埋 め 込 み 投 稿 ボタン 押 下 時 にキーが 有 効 な ものかを 確 認 非 ログインユーザに 対 しても IPアドレスが 変 化 していないことも 確 認 している IPアドレスによる 荒 らし 行 為 の 制 限 を 潜 り 抜 ける 手 段 DDoSに 類 似 する 動 機 これら ログインしていない 場 合 の CSRF CSRF 命 名 者 はこれをCSRFに 分 類 していないが ただし 管 理 者 画 面 へのアクセスをIPアドレスで 制 限 している 場 合 な どは 該 当 18 荒 らし 対 策 脅 威 究 極 的 には CAPTCHA に 到 達 する ユーザ 登 録 制 にして 荒 らし 行 為 を 防 止 しても 自 動 運 転 ロボッ トによるユーザ 登 録 が 出 現 し 得 る CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) コンピュータには 自 動 解 析 が 困 難 かつ 人 間 には 容 易 に 読 み 取 りでき る 情 報 を 提 示 して ユーザに 入 力 させる 自 動 運 転 によるユーザ 登 録 を 防 止 していないサイトは 多 い 必 要 な 段 階 がきたら 導 入 すればよい 執 拗 な 攻 撃 者 に 対 して 業 務 妨 害 で 警 察 に 突 き 出 せばよい いわゆる サイバーノーガード 戦 法 との 違 い 被 害 が 利 用 者 に 及 ばず 運 営 者 だけが 困 る 場 合 被 害 が 原 状 回 復 可 能 なものに 限 られる 場 合 19 画 面 の 閲 覧 はできない セッションハイジャックの 脅 威 と 異 なる 点 情 報 漏 洩 の 被 害 は( 直 接 的 には) 起 きない 状 態 を 変 更 するアクセスによるもの 登 録 情 報 の 改 竄 設 定 の 変 更 注 文 の 実 行 被 害 の 重 大 さ 原 状 回 復 可 能 な 被 害 原 状 回 復 不 可 能 な 被 害 特 に 重 大 な 被 害 パスワードを 変 更 される 非 公 開 の 設 定 を 公 開 の 設 定 に 変 更 される 登 録 された 個 人 情 報 を 書 き 換 えられる その 上 でさらなる 悪 用 の 可 能 性 20
Webサイト 運 営 者 の 責 任 責 任 の 所 在 原 状 回 復 可 能 な 被 害 しか 生 じない 場 合 や ユーザに 被 害 が 及 ばない 場 合 荒 らし 対 策 と 同 じ 立 場 をとることは 許 されると 考 えられる 製 品 開 発 者 の 責 任 Webアプリ 型 のソフトウェア 製 品 にCSRF 脆 弱 性 がある 場 合 製 品 のユーザ = 当 該 Webアプリの 管 理 者 ( 運 営 者 ) 管 理 者 のみに 被 害 が 生 じる 場 合 であっても 製 品 開 発 者 には 脆 弱 性 に 対 応 する 責 任 がある( 場 合 がある)と 考 えられる 原 状 回 復 可 能 な 被 害 しか 生 じない 場 合 は? 21 CSRF 対 策 が 遅 れる 理 由 キーワードでひとくくりにできない CSRF 対 策 しなさい とは 言 えない どんな 被 害 が 出 るかを 示 さない 限 り 修 正 の 必 要 性 を 主 張 で きない 荒 らし 行 為 にすぎない 場 合 と 区 別 しなくてはならない 荒 らし 対 策 をするしないは 運 営 者 の 自 由 もとより 荒 らし 対 策 にはきりがないのであって 対 策 は 簡 単 でない と 思 われている ワンタイムトークンによる サブセッション の 実 装 が 必 須 と 誤 解 されている 問 題 提 起 がはばかられる 不 正 アクセス 禁 止 法 では 攻 撃 者 を 処 罰 できないと 思 われる 少 数 だけを 狙 った 攻 撃 では 業 務 妨 害 とするのは 難 しい? 22 対 策 ( 以 下 のいずれか) 秘 密 情 報 自 動 埋 め 込 み 方 式 処 理 を 実 行 するページをPOSTメソッドでアクセスするようにし その hiddenパラメタに 秘 密 情 報 ( 攻 撃 者 が 知 り 得 ない 情 報 )が 挿 入 される よう 前 のページを 自 動 生 成 して 実 行 ページではその 値 が 正 しい 場 合 のみ 処 理 を 実 行 するようにする パスワードユーザ 入 力 要 求 方 式 処 理 を 実 行 する 直 前 のページで 再 度 パスワードの 入 力 を 求 め 実 行 ページでは 入 力 されたパスワードが 正 しい 場 合 のみ 処 理 を 実 行 す るようにする 2 要 素 認 証 が 用 意 されている 場 合 は 第 2 要 素 をパスワードの 代 わりに 用 いる Referer 確 認 方 式 Refererが 正 しいリンク 元 かを 確 認 し 正 しい 場 合 のみ 処 理 を 実 行 す るようにする(Refererが 空 の 場 合 は 実 行 しない) 制 限 事 項 : Refererを 送 信 しない 設 定 のブラウザでサイトが 利 用 できなくなる 2ちゃんねる 掲 示 板 でこの 手 法 が 採 用 できるのは 強 い 立 場 によるもの 23 サーバ User=takagi Password=xxxxxxxx Set-Cookie: sid=7j3xdwwjiks ブラウザ セッション 管 理 表... 7J3xdwWjIKs takagi Cookie 記 憶 表 sid=7j3xdwwjiks... POST /chgpass HTTP/1.1 Cookie: sid=7j3xdwwjiks newpass=flower key=xxxxxx 外 部 サ イ ト か ら の リ ン ク で 24
秘 密 情 報 として 使 えるもの 安 全 性 の 比 較 セッションIDでセッション 追 跡 している 場 合 に 限 り 使 えるもの セッションIDが 秘 密 情 報 であるので それをそのまま 使 う それを 何 らかの 加 工 を 施 して(ハッシュ 値 を 求 める 等 ) 使 う その 他 (HTTP 認 証 SSLクライアント 認 証 でセッション 追 跡 ) の 場 合 を 含 めて 使 えるもの ( 第 2)セッションIDを 用 意 してそのまま 使 う Webアプリケーションサーバ 製 品 のセッション 管 理 機 構 を 使 う 乱 数 で 自 力 でIDを 生 成 し セッションに 紐 付 けて 記 憶 して 使 う パスワードを 使 う 自 動 生 成 したユーザ 固 有 キーを 使 う ユーザに 設 定 させたユーザ 固 有 キーを 使 う 25 秘 密 情 報 の 強 度 セッションIDを 基 にしている 場 合 セッションIDの 強 度 と 同 じになる 万 が 一 セッションIDの 強 度 が 低 い 場 合 セッションIDを 生 成 している ソフトウェア 部 品 の 開 発 者 に 責 任 がある 第 2セッションIDを 自 力 で 作 成 する 場 合 暗 号 学 的 に 安 全 な 擬 似 乱 数 生 成 系 を 用 いて 生 成 (セッションIDの 生 成 と 同 様 に)すれば セッションIDと 同 じ 強 度 駄 目 な 例 : 時 刻 から 生 成 し 生 成 方 法 が 推 測 可 能 なもの 等 パスワードの 場 合 ユーザの 責 任 自 動 生 成 したユーザ 固 有 キーの 場 合 長 時 間 変 更 されない 秘 密 情 報 となるため 強 度 が 低 い ユーザに 設 定 させたユーザ 固 有 キーの 場 合 ユーザの 責 任 でキーを 設 定 することを 明 示 し ユーザの 責 任 とする 26 hiddenパラメタ 値 が 漏 洩 する 可 能 性? 漏 洩 するとしたら 端 末 を 離 れたときに 読 まれる 可 能 性 cookieが 読 まれる 可 能 性 と 同 等 (というか 端 末 自 体 がのっとられる) 通 信 路 上 (プロキシサーバ 経 由 を 含 む)で 読 まれる 可 能 性 cookieが 読 まれる 可 能 性 と 同 等 必 要 ならばSSLを 用 いて 防 止 するのが 普 通 他 の 脆 弱 性 の 存 在 により 漏 洩 する 可 能 性 1. cookieもhiddenパラメタも 漏 れる 脆 弱 性 2. cookieは 漏 れるが hiddenパラメタおよびhtmlテキストは 漏 れない 脆 弱 性 3. cookieは 漏 れないが hiddenパラメタおよびhtmlテキストは 漏 れる 脆 弱 性 4. cookieは 漏 れないが hiddenパラメタは 漏 れ しかしHTMLテキストは 漏 れない 脆 弱 性 1.~3.を 想 定 した 場 合 の 安 全 性 CSRF 攻 撃 だけでなくセッションハイジャックも 許 すことになる どの 秘 密 情 報 を 用 いた 場 合 でも 3.の 想 定 では 直 接 のセッションハイジャックではなく 個 々のアクセスの 応 答 のHTMLテキストを 盗 み 読 む 間 接 ハイジャックの 繰 り 返 しにより 画 面 を 閲 覧 するアクセス と 同 じ 被 害 が 出 る 4.を 想 定 した 場 合 の 安 全 性 CSRF 攻 撃 は 許 すがセッションハイジャックにはつながらないケース 第 2セッションID セッションIDのハッシュ 値 ユーザ 固 有 キーを 用 いた 場 合 CSRF 攻 撃 だけでなくセッションハイジャックも 許 すことになるケース セッションIDをそのまま 用 いた 場 合 パスワードを 用 いた 場 合 1., 3., 4.の 想 定 で CSRFとセッションハイジャックに 加 え 不 正 ログインを 許 す 27 hidden 漏 洩 に 配 慮 は 必 要? 配 慮 が 必 要 となる 想 定 秘 密 情 報 としてパスワードを 用 いた 場 合 に 端 末 を 離 れたときに 読 まれる 可 能 性 を 想 定 したとき CSRFとセッションハイジャックに 加 え 不 正 ログインを 許 す» この 方 法 は 採 用 すべきでない 場 合 がある cookieは 漏 れないが hiddenパラメタは 漏 れ しかしHTMLテキストは 漏 れない 脆 弱 性 (A)の 存 在 を 想 定 した 場 合 CSRF 攻 撃 だけでなくセッションハイジャックも 許 すことになる» セッションIDをそのまま 用 いた 場 合 他 の 脆 弱 性 が 発 覚 する 頻 度 による? cookie hiddenパラメタ 漏 れる ブラウザに 頻 繁 に 発 覚 (JavaScriptのsame origin ruleの 破 れ XSS 任 意 コード 実 行 など) cookie 漏 れる hiddenパラメタ HTMLテキスト 漏 れない 多 くのブラウザに 複 数 回 発 覚 している(URLの 一 部 を% 表 記 したもの) cookie 漏 れない hiddenパラメタ HTMLテキスト 漏 れる IEの CSSXSS 脆 弱 性 (ただしGETアクセスの 場 合 ) cookie 漏 れない hiddenパラメタ 漏 れる HTMLテキスト 漏 れない これまでに 聞 いたことがない やらないよりはやったほうがいいにきまっている? やらないよりやったほうがよいという 考 えを 始 めると 他 にもやることは 際 限 なくある セッションIDはページ 毎 に 変 更 したほうがよい セッションIDは 乱 数 値 を 直 接 使 わずハッシュしたほうがいい(なんとなく) ( 理 由 はわからないが)ハッシュするなら 鍵 付 きハッシュにしたほうがいい 実 装 者 が 選 択 するのは 自 由 だが 必 要 と 解 説 するには 科 学 的 根 拠 を 示 さなくては 28
ワンタイムトークンを 推 奨 しない 理 由 簡 易 実 装 は 画 面 操 作 の 仕 様 を 制 限 してしまう 簡 易 実 装 : ページごとに 乱 数 を 生 成 してhiddenパラメタに 埋 め 込 むと 同 時 に セッション 変 数 に 記 憶 して 実 行 ページで 一 致 を 確 認 する 複 数 ウィンドウによる 同 時 編 集 ができなくなる 同 時 編 集 を 可 能 にするには セッション 変 数 に 複 数 のトークンを 格 納 し 一 致 確 認 を 含 まれるかの 確 認 とする 方 法 があるが それならばはじめから セッ ションで 共 通 の1 個 の 値 を 使 えばよい 正 統 な 実 装 は 一 般 には 簡 単 でない 正 統 な 実 装 : ウィンドウ(あるいは 操 作 )ごとに サブセッション オブ ジェクトをサーバ 側 で 生 成 しサブセッションの 管 理 を 実 現 する 画 面 遷 移 を 完 全 にコントロールしたい 場 合 などに 採 用 される 手 法 ( 結 果 として CSRF 対 策 にもなる) これを 必 須 としてしまうと 対 策 が 進 まないと 思 われる CSRF 対 策 の 目 的 ではワンタイムである 必 然 性 がない 別 の 目 的 での ワンタイムトークン 利 用 の 話 と 混 同? 29 対 策 の 事 例 tdiaryにおける 対 策 JVN#60776919: tdiaryにおけるクロスサイト リクエスト フォージェリの 脆 弱 性 http://jvn.jp/jp/jvn%2360776919/index.html tdiaryの 脆 弱 性 に 関 する 報 告 (2005-07-20) http://www.tdiary.org/20050720.html 設 定 により 次 のいずれかを 選 択 する Referer:チェックによる 対 策 (デフォルト 設 定 ) ユーザに 設 定 させるユーザ 固 有 キーによる 対 策 Basic 認 証 を 前 提 としているため セッションIDが 存 在 せず パ スワードも 取 得 できないため 第 2セッションIDを 用 意 しなかった 理 由 : セッション 管 理 機 構 および 安 全 な 乱 数 を 生 成 する 方 法 が どのプラットフォームでも 用 意 可 能 では なかったため ( 一 般 的 なCGI + Rubyでの 動 作 を 保 証 しているため) 30 画 面 設 計 時 から 考 慮 する よくある 誤 った 解 説 画 面 (アクセス)ごとに 以 下 を 検 討 特 定 副 作 用 を 有 するアクセス それは 状 態 変 更 するアクセスか セッションで 破 棄 されない 状 態 変 更 その 状 態 変 更 は 重 大 か? 重 大 でない 例 : ショッピングカートに 商 品 番 号 と 数 量 を 入 れる 重 大 な 状 態 変 更 画 面 について アクセスはすべてPOSTにする 前 のページのhiddenパラメタに 秘 密 情 報 を 自 動 挿 入 する 31 GETを 使 わずPOSTを 使 え JavaScriptで 自 動 POSTさせられる 実 行 の 前 に 確 認 画 面 を 挟 め 確 認 画 面 の 次 の 実 行 画 面 に 直 接 ジャ ンプさせられる Referer:は 偽 装 できるので 対 策 にならない 採 用 できない 場 合 の 理 由 はReferer:を 送 信 しない 設 定 のユーザがいるため Referer: 偽 装 が 問 題 となるのは セッションハイジャック 防 止 や なりすましア クセス 防 止 のためにReferer:チェックをする 話 の 場 合 攻 撃 者 が 被 害 者 の 送 信 するReferer: を 書 き 換 えることはできないのだから CSRFにReferer: 偽 装 は 関 係 ない ワンタイムトークンを 使 わなくてはならない ワンタイムにする 必 要 がない 実 行 アクセスに 必 要 な 情 報 をパラメタに 持 たせず 前 ページまでにそれら 必 要 な 情 報 をセッション 変 数 に 格 納 しておき 実 行 アクセスの 処 理 でそれを 利 用 す ればよい 最 初 のページに 対 してCSRF 攻 撃 され 続 いて 実 行 アクセスのページにCSRF 攻 撃 されるので 対 策 にならない 32
参 考 ブラウザ 側 に 脆 弱 性 がある 場 合 例 : XMLHTTPが 任 意 サイトにアクセスできてしまう 例 : Javaアプレットが 任 意 サイトにアクセスできてしまう 例 : JavaScriptの same origin rule が 破 れている CSRF 対 策 を 回 避 できてしまう という 主 張 がしばしば 見 られ るが いずれにせよ これらの 脆 弱 性 がある 場 合 は 対 策 不 可 能 ブラウザの 自 動 操 作 が 可 能 なのと 同 等 であるため ユーザ 端 末 が スパイウェア に 感 染 している 可 能 性 を 想 定 す る 場 合 も 同 様 現 実 性 被 害 者 の 視 点 セッションハイジャックと 同 じ 以 下 再 掲 いわゆる 受 動 的 攻 撃 攻 撃 者 の 仕 掛 けた 罠 サイトに 被 害 者 がアクセスした 時 点 で 攻 撃 が 成 功 する 目 標 サイトに 被 害 者 がログイン 中 のタイミングで 緩 和 される 要 素 ログイン 中 でなければ 攻 撃 は 成 功 しない 攻 撃 者 の 視 点 罠 の 作 成 が セッションハイジャックよりも 容 易 目 標 サイトがIPアドレスチェックをしている 場 合 にも (セッショ ンハイジャックと 異 なり) 攻 撃 が 成 功 する 33 34 適 法 な 脆 弱 性 存 在 推 定 手 段 関 係 法 令 不 正 アクセス 禁 止 法 刑 法 電 子 計 算 機 損 壊 等 業 務 妨 害 罪 刑 法 改 正 案 不 正 指 令 電 磁 的 記 録 作 成 および 供 用 ( 未 成 立 ) 確 認 手 段 自 分 のアカウントで 正 規 の 手 順 でログインする Referer:の 送 出 を 止 めても 動 作 するかを 確 認 する 重 大 な 状 態 変 更 画 面 の 最 終 ページのHTMLを 読 み hiddenパ ラメタに 秘 密 情 報 ( 予 測 困 難 な 値 )が 含 まれているかを 調 べる 注 意 点 自 分 のアカウントだけを 使 用 する 罠 のリンクを 他 人 に 踏 ませない 35 不 正 アクセス 行 為 の 禁 止 等 に 関 する 法 律 ( 平 成 11 年 8 月 13 日 公 布 平 成 12 年 2 月 13 日 施 行 ) 第 三 条 ( 不 正 アクセス 行 為 の 禁 止 ) 一 アクセス 制 御 機 能 を 有 する 特 定 電 子 計 算 機 に 電 気 通 信 回 線 を 通 じて 当 該 アクセス 制 御 機 能 に 係 る 他 人 の 識 別 符 号 を 入 力 して 当 該 特 定 電 子 計 算 機 を 作 動 させ 当 該 アクセス 制 御 機 能 により 制 限 されて いる 特 定 利 用 をし 得 る 状 態 にさせる 行 為 ( 当 該 アクセス 制 御 機 能 を 付 加 したアクセス 管 理 者 がするもの 及 び 当 該 アクセス 管 理 者 又 は 当 該 識 別 符 号 に 係 る 利 用 権 者 の 承 諾 を 得 てするものを 除 く ) 二 アクセス 制 御 機 能 を 有 する 特 定 電 子 計 算 機 に 電 気 通 信 回 線 を 通 じて 当 該 アクセス 制 御 機 能 による 特 定 利 用 の 制 限 を 免 れることがで きる 情 報 ( 識 別 符 号 であるものを 除 く ) 又 は 指 令 を 入 力 して 当 該 特 定 電 子 計 算 機 を 作 動 させ その 制 限 されている 特 定 利 用 をし 得 る 状 態 にさせる 行 為 ( 当 該 アクセス 制 御 機 能 を 付 加 したアクセス 管 理 者 が するもの 及 び 当 該 アクセス 管 理 者 の 承 諾 を 得 てするものを 除 く 次 号 において 同 じ ) 三 電 気 通 信 回 線 を 介 して 接 続 された 他 の 特 定 電 子 計 算 機 が 有 す るアクセス 制 御 機 能 によりその 特 定 利 用 を 制 限 されている 特 定 電 子 計 算 機 に 電 気 通 信 回 線 を 通 じてその 制 限 を 免 れることができる 情 報 又 は 指 令 を 入 力 して 当 該 特 定 電 子 計 算 機 を 作 動 させ その 制 限 され ている 特 定 利 用 をし 得 る 状 態 にさせる 行 為 36
電 子 計 算 機 損 壊 等 業 務 妨 害 罪 刑 法 第 二 百 三 十 四 条 の 二 人 の 業 務 に 使 用 する 電 子 計 算 機 若 しくはその 用 に 供 する 電 磁 的 記 録 を 損 壊 し 若 しくは 人 の 業 務 に 使 用 する 電 子 計 算 機 に 虚 偽 の 情 報 若 しくは 不 正 な 指 令 を 与 え 又 はその 他 の 方 法 に より 電 子 計 算 機 に 使 用 目 的 に 沿 うべき 動 作 をさせず 又 は 使 用 目 的 に 反 する 動 作 をさせて 人 の 業 務 を 妨 害 した 者 は 五 年 以 下 の 懲 役 又 は 百 万 円 以 下 の 罰 金 に 処 する 脆 弱 性 の 指 摘 と 業 務 妨 害 との 関 係 37 不 正 指 令 電 磁 的 記 録 に 関 する 罪 ( 改 正 案 ) 第 十 九 章 の 二 不 正 指 令 電 磁 的 記 録 に 関 する 罪 ( 不 正 指 令 電 磁 的 記 録 作 成 等 ) 第 百 六 十 八 条 の 二 人 の 電 子 計 算 機 における 実 行 の 用 に 供 する 目 的 で 次 に 掲 げる 電 磁 的 記 録 その 他 の 記 録 を 作 成 し 又 は 提 供 した 者 は 三 年 以 下 の 懲 役 又 は 五 十 万 円 以 下 の 罰 金 に 処 する 一 人 が 電 子 計 算 機 を 使 用 するに 際 してその 意 図 に 沿 うべき 動 作 をさせず 又 はその 意 図 に 反 する 動 作 をさせるべき 不 正 な 指 令 を 与 える 電 磁 的 記 録 二 前 号 に 掲 げるもののほか 同 号 の 不 正 な 指 令 を 記 述 した 電 磁 的 記 録 その 他 の 記 録 2 前 項 第 一 号 に 掲 げる 電 磁 的 記 録 を 人 の 電 子 計 算 機 における 実 行 の 用 に 供 した 者 も 同 項 と 同 様 とする 3 前 項 の 罪 の 未 遂 は 罰 する ( 不 正 指 令 電 磁 的 記 録 取 得 等 ) 第 百 六 十 八 条 の 三 前 条 第 一 項 の 目 的 で 同 項 各 号 に 掲 げる 電 磁 的 記 録 その 他 の 記 録 を 取 得 し 又 は 保 管 した 者 は 二 年 以 下 の 懲 役 又 は 三 十 万 円 以 下 の 罰 金 に 処 する 38 抵 触 しないと 推 察 される 行 為 の 例 情 報 セキュリティ 早 期 警 戒 パートナーシップガイドライン p.21 (2) 不 正 アクセス 禁 止 法 に 抵 触 しないと 推 察 される 行 為 の 例 1) ウェブアプリケーションの 利 用 権 者 が 正 規 の 手 順 でログインするなど して 通 常 のアクセスをした 際 に ブラウザとサーバとの 通 信 の 内 容 を 観 察 したところ それだけで 脆 弱 性 の 存 在 を 推 定 できた 場 合 2) ウェブページのデータ 入 力 欄 にHTML のタグを 含 む 文 字 列 を 入 力 した ところ 入 力 した 文 字 列 がそのまま 表 示 された この 段 階 ではアクセス 制 御 機 能 の 制 限 を 回 避 するに 至 らなかったが 悪 意 ある 者 に 別 の 文 字 列 を 入 力 されれば このサイトにセキュリティ 上 の 問 題 が 引 き 起 こされかねない と 予 想 できた 場 合 3) アクセス 制 御 による 制 限 を 免 れる 目 的 ではなく 通 常 の 自 由 なページ 閲 覧 を 目 的 として 日 付 やページ 番 号 等 を 表 すと 推 察 されるURL 中 の 数 字 列 を 別 の 数 字 に 差 し 替 えてアクセスしてみたところ 社 会 通 念 上 本 来 は 利 用 できてはならないはずと 推 定 される 結 果 が 偶 発 的 に 起 きてしまった 場 合 (ただし 積 極 的 に 多 数 の 数 字 列 を 変 えて 試 す 行 為 等 は 制 限 を 免 れ る 目 的 とみなされる 可 能 性 があります ) 39 パブリックコメントより ソフトウエア 等 脆 弱 性 関 連 情 報 取 扱 基 準 ( 案 ) 等 に 関 するパブリック コメント( 意 見 募 集 ) の 結 果 について http://www.meti.go.jp/feedback/data/i40706aj.html より 善 意 の 脆 弱 性 発 見 者 を 保 護 する 旨 を 主 旨 に 明 記 すべき 発 見 者 については 本 制 度 が 経 済 産 業 省 告 示 を 前 提 として 検 討 されていることから 勘 案 すると 当 省 としては 既 存 法 令 に 抵 触 しない 範 囲 内 で 行 動 することを 要 請 する 以 外 にな いと 考 える ただし 届 出 後 の 発 見 者 の 個 人 情 報 の 適 切 な 管 理 取 扱 いや 届 出 内 容 に 関 する 受 付 機 関 からの 照 会 等 の 発 見 者 負 担 の 軽 減 等 に 取 り 組 んでまいりたい ウェブアプリケーションの 脆 弱 性 における 発 見 者 基 準 について 違 法 な 方 法 によ り 脆 弱 性 関 連 情 報 を 発 見 又 は 取 得 しない というだけでは 基 準 として 不 十 分 である ように 思 われる ウェブアプリケーションの 場 合 その 脆 弱 性 を 偶 然 発 見 する 事 は 少 なく 意 図 的 にそのホームページを 調 べることで 脆 弱 性 が 明 らかとなることが 多 いことから 発 見 者 の 遵 守 すべき 事 項 を 明 確 に 規 定 する 必 要 がある さらに 発 見 された 脆 弱 性 については 厳 格 に 管 理 するため 原 則 開 示 しないこと 開 示 する 場 合 は 受 付 機 関 の 許 可 を 得 るようにする 等 の 発 見 者 の 責 務 を 明 確 に 規 定 する 必 要 がある 本 取 扱 基 準 ( 案 )は 主 旨 のところで 述 べているとおり 関 係 者 とその 役 割 について 国 が 推 奨 する 行 為 を 示 したものという 位 置 付 けであるため 強 制 力 はなく 関 係 者 の 自 主 的 な 運 用 に 拠 るところが 大 きい また 本 取 扱 基 準 ( 案 )は 関 係 者 が 行 うべき 必 要 最 低 限 の 行 動 基 準 をとりまとめたものであり 関 係 者 に 対 しては 各 種 関 係 の 法 律 に 抵 触 しないよう に 行 動 することを 求 めている なお 本 取 扱 基 準 ( 案 )の 前 提 としては 偶 然 発 見 してしまっ た 脆 弱 性 についての 対 処 を 想 定 しており ウェブアプリケーションの 脆 弱 性 を 積 極 的 に 発 見 することを 奨 励 するものでない 脆 弱 性 情 報 の 取 扱 いは 一 義 的 には 発 見 者 に 委 ねられており 表 現 の 自 由 との 兼 ね 合 いもあるため 本 取 扱 基 準 ( 案 )で 一 律 に 発 見 者 の 言 動 を 規 制 することは 難 しく 届 出 を 行 った 発 見 者 に 対 して 一 定 期 間 特 定 の 言 動 を 差 し 控 えるよう 協 力 を 要 請 する 旨 を 規 定 した 40
Session Fixation セッション 固 定 ( 据 付?) 攻 撃 歴 史 的 経 緯 Mitja Kolšek, Session Fixation Vulnerability in Web-based Applications, 2002 年 12 月 http://www.acros.si/papers/session_fixation.pdf Paul Johnston, Multiple Browser Cookie Injection Vulnerabilities, 2004 年 9 月 http://www.securityfocus.com/archive/1/375407 ブラウザの Cookie Monster バグとの 組 み 合 わせでcookieでも 可 能 という 新 たな 指 摘 Michal Zalewski, Cross Site Cooking, 2006 年 1 月 http://www.securityfocus.com/archive/107/423375 原 因 ログイン 前 にセッションID 発 行 をしてはいけない ログイン 前 に 発 行 したセッションIDをログイン 後 にも 使 用 するシステムには 次 の 危 険 性 がある 攻 撃 者 のサイトの 罠 のページに 被 害 者 がアクセスしたとき 攻 撃 者 は 自 ら 目 的 のショップにアクセスしてセッションIDを 取 得 し そのIDを 含 め たログイン 画 面 へ 被 害 者 のブラウザをリダイレクトする そうとは 知 らず 被 害 者 がログインすると ログイン 後 の 画 面 を 攻 撃 者 が セッションハイジャックできてしまう (セッション 追 跡 用 途 と 認 証 済 み 確 認 用 途 を 兼 ねている 場 合 ) そうでない 場 合 : 後 述 41 42 ログインサイト Uhfw7eTt = takagi User=takagi passwd=flower sid=uhfw7ett (8) (7) (6) ブラウザ( 被 害 者 ) (9) sid=uhfw7ett visa:4980-xxxx (10) (2) sid=uhfw7ett sid=uhfw7ett (3) リダイレクト (5) (4) sid=uhfw7ett (1) 罠 サイト( 攻 撃 者 ) 43 脅 威 と 現 実 性 脅 威 セッションハイジャック 攻 撃 と 同 じ 現 実 性 ( 被 害 者 視 点 ) XSS 等 によるセッションハイジャックよりは 現 実 性 が 低 い 罠 サイトに 誘 導 したうえ その 後 にセッション 期 限 有 効 期 間 中 に 本 物 サイト 上 で 被 害 者 がログインする 必 要 がある 罠 サイト 経 由 で 表 示 した 本 物 サイト 上 でログインするか? Phishing 詐 欺 が 横 行 している 現 実 からすると 無 視 できない 罠 サイトを 訪 れた 後 しばらく 後 に 本 物 サイトを 自 力 で 訪 れる 可 能 性 現 実 性 ( 攻 撃 者 視 点 ) 全 自 動 の 罠 を 作 る 面 倒 さは XSSによるセッションハイジャック よりは 若 干 大 きい 44
POST 方 式 とCookie 方 式 POSTでセッションID 送 信 の 場 合 影 響 を 受 ける ログイン 前 の 画 面 からセッションIDを 発 行 してはならない cookieにセッションidの 場 合 XSS 脆 弱 性 がない 限 り 他 から 注 入 されることはない(はず であった) ところが ブラウザの Cookie Monster バグとの 組 み 合 わせ で 可 能 という 指 摘 Multiple Browser Cookie Injection Vulnerabilities, 2004 年 9 月 http://www.securityfocus.com/archive/1/375407 日 経 IT Pro: IEやMozillaなどにセキュリティ ホール,なりすましを 許 す 可 能 性 あり (この 解 説 は 問 題 の 所 在 を 間 違 えている) http://itpro.nikkeibp.co.jp/free/itpro/news/20040921/150222/ これはまずい 45 Cookie Monster バグ 1998 年 に 指 摘 された 古 い 問 題 Oliver Lineham, Arun Stephens, Cookie Monster: HTTP Cookie Bug Affecting Servers On Most Non-Generic Domains, 1998 年 12 月 http://homepages.paradise.net.nz/~glineham/cookiemonster.html http://help.netscape.com/kb/consumer/19981231-1.html Set-Cookieで 指 定 するdomain=オプションの 問 題 www.foo.co.jp のサーバから 以 下 のcookie 発 行 はできる Set-Cookie: a=b; domain=.foo.co.jp 本 来 ならば www.foo.co.jp のサーバから 以 下 のcookie 発 行 はできて はいけない Set-Cookie: a=b; domain=.bar.co.jp Set-Cookie: a=b; domain=.co.jp Netscape/Mozillaでは 現 在 でも 以 下 のcookie 発 行 ができてしまう Set-Cookie: a=b; domain=.co.jp Netscapeは 脆 弱 性 ではないとして 修 正 しなかった 置 き 得 る 被 害 は 無 用 なcookieが 出 回 ることがあるというだけで プライ バシー 漏 洩 にはつながらないと 判 断 した 46 問 題 点 ブラウザの 対 応 状 況 POSTでログイン 前 からセッションIDというサイトは 稀 したがって Session Fixationが 問 題 となるケースは 稀 Cookieでログイン 前 からセッションIDというサイトは 多 い 一 部 のブラウザでSession Fixationが 問 題 となる 閲 覧 者 がそのサイトを 最 初 に 訪 れた 時 点 でcookieを 発 行 Webアプリケーションサーバ がセッション 管 理 機 能 を 自 動 的 に 提 供 し ているため 日 本 固 有 の 問 題 地 域 ドメインの 存 在 個 人 が takagi.chiyoda.tokyo.jp のドメインを 取 得 できる このドメインの 保 有 者 は 以 下 のcookieを 発 行 できる Set-Cookie: foo=bar; domain=.chiyoda.tokyo.jp Set-Cookie: foo=bar; domain=.tokyo.jp city.chiyoda.tokyo.jp metro.tokyo.jp などは 地 方 公 共 団 体 のドメイン 47 Internet Explorerの 場 合 co.jp go.jp など 第 2レベルが2 文 字 の 場 合 は 第 3レベルを 管 理 ドメインとみなす 地 域 ドメインの 問 題 を 除 けば.jpドメインでは 脆 弱 でない ltd.ukなどのように 第 2レベルが3 文 字 の 場 合 が 存 在 するccTLDがある Mozillaの 場 合 対 策 する 気 はないと 公 言 している Bugzilla Bug 252342, fix cookie domain checks to not allow.co.uk https://bugzilla.mozilla.org/show_bug.cgi?id=252342 ------- Comment #61 From Darin Fisher 2005-07-25 17:14 PST This is low on my priority list. If someone wants to fix this bug, then please feel free to take ownership of it. Operaの 場 合 DNSを 使 って 完 全 な 対 策 をしているという 未 確 認 情 報 あり 48
対 策 ログイン 後 にセッションIDを 発 行 している 場 合 対 策 不 要 ログイン 前 からセッションIDを 発 行 する 場 合 次 のいずれか パスワード 認 証 でログインが 成 功 した 時 点 で 新 しいセッションを 発 行 し てそちらを 用 いる( 古 いほうのセッションをログイン 状 態 にしない) ログイン 成 功 時 に セッションIDとは 別 に 認 証 済 みを 示 す 秘 密 情 報 ( 乱 数 や 暗 号 化 した 何 か)をcookieにセットし その 値 を 全 ページで 確 認 注 意!! ログイン 後 とは パスワード 認 証 成 功 後 のこと パスワード 入 力 直 後 画 面 で 無 条 件 にcookie 発 行 はダメ 攻 撃 者 が 本 物 サイトに 適 当 なパスワードでアクセスし 認 証 に 失 敗 す るが そのとき 発 行 されるセッションIDを 取 得 し それを 被 害 者 に 与 えて 被 害 者 がログインしたとき そのセッションIDが 有 効 であってはならない 49 別 の 問 題 Session Adoption Session Fixationの 一 種 として 命 名 されている Mitja Kolšek, Session Fixation Vulnerability in Web-based Applications, 2002 年 12 月 http://www.acros.si/papers/session_fixation.pdf (PHP 界 隈 ではこの 問 題 ばかりが 注 目 されているが ) URL rewritingによるセッション 追 跡 機 能 を 持 つWebアプリ サーバ 製 品 の 問 題 URLにセッションIDを 載 せてジャンプさせると 次 のページで cookieとして 値 を 発 行 してしまう PHP Java Servletコンテナの 一 部 (?)など どんな 文 字 列 でもセッションIDとして 解 釈 してしまうWebアプ リサーバ 製 品 の 問 題 PHP Java Servletコンテナの 一 部 (?)など 設 定 で 回 避? 脆 弱 性 として 修 正 させるべき? 50 適 法 な 脆 弱 性 存 在 推 定 手 段 対 策 が 遅 れる 理 由 方 法 自 分 のアカウントで 正 規 の 手 順 でログインする セッション 追 跡 用 パラメタがどれなのかを 推 定 する そのパラメタの 発 行 タイミングがいつなのかを 調 べる ログイン 成 功 前 に 発 行 されている 場 合 は ログイン 成 功 時 にそ の 値 が 変 化 しているかどうかを 調 べる 51 修 正 が 必 須 と 言 える 脆 弱 性 か? 現 実 性 が XSSによるセッションハイジャックより 低 い POSTの 場 合 罠 サイト 経 由 で 本 物 サイトが 表 示 されたとき 被 害 者 がそのままログインする 必 要 あり Cookieの 場 合 罠 サイトを 訪 れた 後 サーバ 側 の 有 効 期 限 内 以 内 に 本 物 サイトに 訪 れて 被 害 者 がログインする 必 要 あり ブラウザ 側 の 欠 陥 ではないのか? (cookieの 場 合 ) 責 任 分 界 点 の 明 確 化 の 重 要 性 しかし Mozillaは 直 さないと 公 言 している サポートするブラウザを 限 定 している 場 合 は 修 正 が 不 要 (?) 最 初 の 論 文 は 他 の 脆 弱 性 とのあわせた 場 合 だけに 成 功 す るかのように 書 かれていた Session AdoptionもWebアプリサーバの 脆 弱 性 では? しかし 修 正 は 比 較 的 簡 単 なのでやったほうがよい 52
Cross Site Cooking Michal Zalewski, Cross Site Cooking, 2006 年 1 月 http://www.securityfocus.com/archive/107/423375 Cookie Monster 問 題 を 改 めて 指 摘 している Session Fixationの 問 題 も 指 摘 しつつ 別 の 問 題 も 指 摘 正 規 サイトで 使 用 するのと 同 名 のcookieを 攻 撃 者 の 罠 サイト で 発 行 する 攻 撃 問 題 の 所 在 Set-Cookie: の domain 指 定 の 制 限 範 囲 の 問 題 同 じ 名 前 (で 異 なるdomain 指 定 (pathも)の)cookieが 複 数 存 在 し 得 る サーバ 側 でcookieの 値 を 取 得 するAPIの 実 装 方 法 よる 問 題 複 数 の 同 名 cookieのうち 最 初 の1 個 しか 返 さないAPIの 場 合 無 効 なセッションIDしか 読 めなくなり ユーザへのDoS 攻 撃 になる 53