Web 担 当 者 が 知 っておく べきPHPとセキュリティ Electronic Service Initiative, Ltd. 1
自 己 紹 介 大 垣 靖 男 (Yasuo Ohgaki) Twitter/Facebook/LinkedIn/Google: yohgaki エレクトロニック サービス イニシアチブ 岡 山 大 学 大 学 院 非 常 勤 講 師 PHP 技 術 者 認 定 機 構 顧 問 BOSS-CON JAPAN PHP SA CTO Electronic Service Initiative, Ltd. 2
2012 年 を 振 り 返 る 注 目 すべき 攻 撃 手 法 TOP10 1. CRIME (SSL 暗 号 解 読 ) 2. SSRF 攻 撃 3. Chromeアドオンハック 4. PHPSESSIDブルートフォース 5. 脅 威 とJavaScriptのブレンド 6. クロスサイトポート 攻 撃 7. HTML5クライアントアプリの 恒 久 的 バックドア 8. CAPTCHAリライディング 攻 撃 9. XSS: httponlyクッキーの 取 得 2012 年 版 10.HTTP VerbトンネリングなどによりOData 攻 撃 攻 撃 手 法 は 年 々 複 雑 化 & 高 度 化 TOP TEN WEB HACKING TECHNIQUES OF 2012 WhiteHat Security Electronic Service Initiative, Ltd. 3
セキュリティ 研 究 者 の 傾 向 Webクライアントの 攻 撃 から 攻 撃 対 象 のWebクライアントのネットワークへ 企 業 ネットワーク 内 部 のファイアーウォール 回 避 複 数 の 脆 弱 性 を 組 み 合 わせた 複 合 型 攻 撃 Electronic Service Initiative, Ltd. 4
SSRF 攻 撃 SSRFにXXE SQL OSコマンド スクリプトインジェク ションなどを 利 用 し 企 業 内 ネットワークの 奥 深 くまで 攻 撃 XXE XML External Entityを 利 用 した 攻 撃 SSRFは 内 部 ネットワークから 攻 撃 する クラシックな 攻 撃 パターンだが 研 究 者 は インターネットから 攻 撃 する 手 法 を 考 案 Electronic Service Initiative, Ltd. 5
SSRF 攻 撃 とは SSRF = Server Side Request Forgery リクエストAをサービスAに 送 信 サービスAはリクエストBをサービスBに 送 信 リクエストBの 幾 つかフィールドをリクエストAで 操 作 可 能 リクエストA サービスA リクエストB サービスB A1 A2 A3 B1 A1 A3 B2 攻 撃 Electronic Service Initiative, Ltd. 6
SSRF 攻 撃 の 手 法 単 純 なリクエスト XXE SQLインジェクション OSコマンド /ui/bufferoverview?server=172.16.1.1&port=31337&dispatcher=&target= <!ENTITY xxe SYSTEM http://172.16.1.1:80/someservice > SELECT * FROM OPENQUERY(HostB, SELECT * FROM @@version ) (MS SQL) SELECT * FROM mytable@hostb (Oracle) SELECT dblink_send_query('host=127.0.0.1 dbname=hostb user= 'attacker ' ','select version();') (PostgreSQL) system( wget http://172.16.1.1/someservie ) 攻 撃 Electronic Service Initiative, Ltd. 7
SSRF 攻 撃 XXEで 可 能 と 紹 介 されている 例 ファイルとディレクトリへのアクセス リモートポートスキャン 他 のシステムをHTTPで 攻 撃 HTTP 以 外 のプロトコルで 他 のシステムを 攻 撃 PHPのXXE 修 正 SOAP - Disabled external entities loading (CVE- 2013-1643, CVE-2013-1824) 2013 年 3 月 PHP5.4.13/5.3.23 Electronic Service Initiative, Ltd. 8
SSRF 攻 撃 SSRFはコマンドやリクエストを 実 行 できる 脆 弱 性 が ある 場 合 実 行 可 能 XXE SQLインジェクション OSコマンドインジェク ション スクリプト 実 行 PHPは 埋 め 込 み 型 言 語 であるため スクリプト 実 行 に 脆 弱 になりやすい PHP5.3.4 以 降 Paths with NULL in them (foo 0bar.txt) are now considered as invalid Electronic Service Initiative, Ltd. 9
脅 威 とJavaScriptのブレンド SSRFと 同 類 の 攻 撃 手 法 JavaScriptによる 内 部 ネットワークスキャン JSScan JS-Recon jslanscanner HTML5 Cross Origin Resource Sharing, File API, XHR2, Blobs リモートからルータなどの 乗 っ 取 りが 可 能 不 正 ログインからファームウェア 書 き 換 えまで Electronic Service Initiative, Ltd. 10
クロスサイトポートスキャン SSRFを 補 助 する 攻 撃 として 利 用 可 能 他 のサイトにリクエストを 送 信 するアプリ ネットワークスキャナー フィンガープリンティングに 利 用 http://172.16.1.1:5432/path/file 攻 撃 スキャン 攻 撃 Electronic Service Initiative, Ltd. 11
内 部 ネットワーク 攻 撃 の 脅 威 企 業 内 部 ネットワークのアプリ システムが 攻 撃 対 象 となる 脅 威 が 増 加 中 企 業 内 のWebアプリにも 公 開 アプリ 同 様 に 十 分 な セキュリティ 対 策 が 必 要 Electronic Service Initiative, Ltd. 12
PHPSESSIDブルートフォース PHPのセッション 管 理 機 構 がデフォルトでは 擬 似 乱 数 発 生 器 によってセッションIDを 生 成 する 古 いPHPセッションの 乱 数 はメルセンヌ ツイスター 擬 似 乱 数 発 生 器 の 脆 弱 性 を 利 用 してセッションID の 推 測 元 々ベストプラクティスは session.entropy_file = /dev/urandom PHP5.4 以 降 は UNIX:/dev/{urandom,arandom}がデフォルト Windows: session.entropy_lengthを 設 定 CryptAPI Electronic Service Initiative, Ltd. 13
Next PHP 新 しいパスワードハッシュ 関 数 password_hash() crypt 関 数 のラッパー 関 数 自 動 的 に 最 新 最 強 のパスワードハッシュを 生 成 ラッパー 関 数 で 古 いPHPでも 可 能 PBKDF2 - hash_pbkdf2()も 追 加 Electronic Service Initiative, Ltd. 14
Next PHP finallyサポート 異 常 終 了 時 のリソースクリーンナップ PCRE e 修 飾 子 廃 止 preg_replace_callback() ロゴ 表 示 の 廃 止 フィンガープリンティング 対 策 PgSQL リテラル 識 別 子 エスケープAPI pg_escape_literal() pg_escape_identifier() セッションアダプション 脆 弱 性 修 正 (?) session.strict_mode=true Electronic Service Initiative, Ltd. 15
Future PHP 未 サポートのHTTPメソッドサポート? GET,POST + DELETE PUT $_SERVER[ REQUEST_METHOD ]と parse_str(file_get_contents( php://input ),$var)で 現 在 も 対 応 可 能 入 力 バリデーションの 強 化? 単 機 能 からフレームワーク スクリプトオンリー 読 み 込 み? 埋 め 込 み 言 語 特 有 の 脆 弱 性 除 去 他 の 言 語 から 見 ると 最 大 の 弱 点 Electronic Service Initiative, Ltd. 16
セキュリティ 維 持 に 何 をすべきか? セキュリティ 維 持 には 全 てのフェーズでの セキュリティ 対 策 が 必 要 不 可 欠 企 画 運 用 全 フェーズに セキュリティ 対 策 が 必 要 テスト 実 装 設 計 全 フェーズにセキュリティ 対 策 の レビューが 効 果 的 Electronic Service Initiative, Ltd. 17
セキュリティ 維 持 に 何 をすべきか? セキュリティ 対 策 に 最 も 重 要 な 事 とは? セキュリティ 対 策 の 本 質 を 知 る セキュリティ 対 策 = 学 習 トレーニング 実 践 レビュー 知 る 企 画 確 認 訓 練 運 用 設 計 実 践 全 てのフェーズへ 適 用 テスト 実 装 Electronic Service Initiative, Ltd. 18
What We Planned? 知 る 企 画 確 認 訓 練 運 用 設 計 実 践 テスト 実 装 意 識 改 革 実 践 セキュリティ 確 立 Electronic Service Initiative, Ltd. 19
ご 清 聴 ありがとうございました お 問 い 合 わせ BOSS CON JAPAN http://www.boss-con.jp/contact/ または エレクトロニック サービス イニシアチブ info@es-i.jp Electronic Service Initiative, Ltd. 20