Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Web担当者が知っておくべきPHPとセキュリティ

3,445 views

Published on

BOSS CONのWebノウハウシェア2013の講演資料です。SSRFやPHP5.5の新機能などを紹介しています。

Published in: Technology

Web担当者が知っておくべきPHPとセキュリティ

  1. 1. Web担当者が知っておく べきPHPとセキュリティ Electronic Service Initiative, Ltd. 1
  2. 2. 自己紹介 • 大垣 靖男 (Yasuo Ohgaki) • Twitter/Facebook/LinkedIn/Google: yohgaki • エレクトロニック・サービス・イニシアチブ • 岡山大学 大学院 非常勤講師 • PHP技術者認定機構 顧問 • BOSS-CON JAPAN PHP SA CTO Electronic Service Initiative, Ltd. 2
  3. 3. 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
  4. 4. セキュリティ研究者の傾向 • Webクライアントの攻撃から、 攻撃対象のWebクライアントのネットワークへ • 企業ネットワーク内部のファイアーウォール回避 • 複数の脆弱性を組み合わせた複合型攻撃 Electronic Service Initiative, Ltd. 4
  5. 5. SSRF攻撃 • SSRFにXXE、SQL・OSコマンド・スクリプトインジェク ションなどを利用し企業内ネットワークの奥深くまで 攻撃 ※XXE – XML External Entityを利用した攻撃 SSRFは内部ネットワークから攻撃する クラシックな攻撃パターンだが研究者は インターネットから攻撃する手法を考案 Electronic Service Initiative, Ltd. 5
  6. 6. SSRF攻撃とは • SSRF = Server Side Request Forgery • リクエストAをサービスAに送信 • サービスAはリクエストBをサービスBに送信 • リクエストBの幾つかフィールドをリクエストAで操作可能 リクエストA サービスA リクエストB B1 A1 A3 A1 A2 A3 サービスB 攻撃 B2 Electronic Service Initiative, Ltd. 6
  7. 7. SSRF攻撃の手法 単純なリクエスト /ui/BufferOverview?server=172.16.1.1&port=31337&dispatcher=&target= XXE <!ENTITY xxe SYSTEM “http://172.16.1.1:80/someservice”> SQLインジェクション 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) OSコマンド system(‘wget http://172.16.1.1/someservie’) 攻撃 Electronic Service Initiative, Ltd. 7
  8. 8. SSRF攻撃 • XXEで可能と紹介されている例 • • • • ファイルとディレクトリへのアクセス リモートポートスキャン 他のシステムをHTTPで攻撃 HTTP以外のプロトコルで他のシステムを攻撃 • PHPのXXE修正 • SOAP - Disabled external entities loading (CVE2013-1643, CVE-2013-1824) 2013年3月 PHP5.4.13/5.3.23 Electronic Service Initiative, Ltd. 8
  9. 9. 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
  10. 10. 脅威とJavaScriptのブレンド • SSRFと同類の攻撃手法 JavaScriptによる内部ネットワークスキャン JSScan、JS-Recon、jslanscanner HTML5 Cross Origin Resource Sharing, File API, XHR2, Blobs リモートからルータなどの乗っ取りが可能 不正ログインからファームウェア書き換えまで Electronic Service Initiative, Ltd. 10
  11. 11. クロスサイトポートスキャン • SSRFを補助する攻撃として利用可能 • 他のサイトにリクエストを送信するアプリ • ネットワークスキャナー、フィンガープリンティングに利用 • http://172.16.1.1:5432/path/file 攻 撃 スキャン 攻 撃 Electronic Service Initiative, Ltd. 11
  12. 12. 内部ネットワーク攻撃の脅威 • 企業内部ネットワークのアプリ・システムが攻撃対 象となる脅威が増加中 • 企業内のWebアプリにも公開アプリ同様に十分な セキュリティ対策が必要 Electronic Service Initiative, Ltd. 12
  13. 13. 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
  14. 14. Next PHP • 新しいパスワードハッシュ関数 • password_hash() • crypt関数のラッパー関数 • 自動的に最新・最強のパスワードハッシュを生成 • ラッパー関数で古いPHPでも可能 • PBKDF2 - hash_pbkdf2()も追加 Electronic Service Initiative, Ltd. 14
  15. 15. 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
  16. 16. Future PHP • 未サポートのHTTPメソッドサポート? • GET,POST + DELETE、PUT • $_SERVER[‘REQUEST_METHOD’]と parse_str(file_get_contents(‘php://input’),$var)で 現在も対応可能 • 入力バリデーションの強化? • 単機能からフレームワーク • スクリプトオンリー読み込み? • 埋め込み言語特有の脆弱性除去 • 他の言語から見ると最大の弱点 Electronic Service Initiative, Ltd. 16
  17. 17. セキュリティ維持に何をすべきか? セキュリティ維持には全てのフェーズでの セキュリティ対策が必要不可欠 企画 運用 設計 全フェーズに セキュリティ対策 が必要 テスト 実装 全フェーズにセキュリティ対策の レビューが効果的 Electronic Service Initiative, Ltd. 17
  18. 18. セキュリティ維持に何をすべきか? • セキュリティ対策に最も重要な事とは? • セキュリティ対策の本質を知る • セキュリティ対策=学習・トレーニング・実践・レビュー 知る 確認 企画 運用 訓練 実践 全てのフェーズへ 適用 テスト Electronic Service Initiative, Ltd. 設計 実装 18
  19. 19. What We Planned? 知る 確認 企画 訓練 実践 意識改革 運用 設計 テスト 実装 実践 Electronic Service Initiative, Ltd. セキュリティ確立 19
  20. 20. • ご清聴ありがとうございました。 お問い合わせ BOSS CON JAPAN http://www.boss-con.jp/contact/ または エレクトロニック・サービス・イニシアチブ info@es-i.jp Electronic Service Initiative, Ltd. 20

×