2013年11月14日夜、日本ヒューレット・パッカード(以下、日本HP)本社で「OWASP Night 8th」が開催された。
OWASP NightはWebアプリケーションのセキュリティ改善に向けた啓発、研究活動を行う非営利団体「OWASP(Open Web Application Security Project)」の日本支部が主宰する定期セミナーだ。第8回目となる今回は、日本HPが協賛しての開催となり、某TVドラマのロケ地にもなったという本社カフェテリアで濃厚なセッションが行われた。
当日は、こちらも日本HPが協賛する情報セキュリティカンファレンス「PacSec2013」、および「Mobile Pwn2Own」に参加した講師も登場し、大きな盛り上がりを見せていた。
本記事では、OWASP Night 8thで注目を集めた幾つかの講演をレポートする。
第8回OWASP Nightでは、スペシャルスピーカーとして、セキュリティ業界歴14年、シンガポール警察などの政府機関などでも経験を積んだスペシャリスト、米ヒューレット・パッカードのリッチー・タン氏が登壇し、「PCI DSS - Road To Compliance」と題する講演が行われた。
PCI DSSとはVisaやMaster、JCBなどペイメントカード業界が団結し、定められたセキュリティ基準だ。クレジットカード/デビットカードを使った場合、そのお店(加盟店)から情報が銀行に伝えられ、そしてクレジットカードを発行した会社にデータがやりとりされる。この間のデータの動きを安全に、確実に行うための指針だ。PCI DSSはペイメントカード業界以外でも使えるコンプライアンス基準として注目を集めている。
タン氏は、セッションでPCI DSSが必要とされた理由やコンプライアンス、2013年11月13日にリリースされたPCI DSS V3.0の変更点、PCI DSSについて、いまだに勘違いされている7つの「あるある」を紹介した。
詳細なレポートは、以下から参照してほしい。
第8回OWASP Nightレポート完全版 ダウンロードはこちらから
※ダウンロードの際に、アンケートのご協力をお願いしております。ご回答いただいた方の中から、抽選で5名様に「HP Slate7」のプレゼントもございます。
このアンケートは終了しました。ご協力ありがとうございました。
次に登壇したのは、ネットエージェントのはせがわようすけ氏だ。はせがわ氏は精力的にHTML5+JavaScriptにおけるセキュリティの現状を追いかけており、JPCERTコーディネーションセンター(JPCERT/CC)から公開された「HTML5を利用したWebアプリケーションのセキュリティ問題に関する調査報告書」の執筆作業にも尽力したスペシャリストだ。今回のテーマは「オープンリダイレクト」と「CSRF」で、今後のOWASP関連セッションでも小出しに、なるべく回数を増やして紹介していくとのことだ。
オープンリダイレクトとは、Webサイトに設置された、特定のURLにアクセスがあった際に別のURLへ自動的にジャンプさせる仕組みのバグで、悪意のあるものがサイト運営者の意図とは異なるWebサイトへとジャンプさせることができてしまう。これ自体の脅威は小さいが、自社のドメインのURLであるにもかかわらず、クリックするとアダルトサイトへ飛ばすことできてしまうため、対策は必須だ。
はせがわ氏はまず、従来よく使われるHTTPリクエスト301/302による実装やmetaダグによる実装、JavaScriptを利用した実装を紹介した。実装の方法によってさまざまな脆弱性を作り込めてしまうリダイレクターだが、特にJavaScriptによる実装において実装ミスが目立つようになっており、適切でない実装ではクロスサイトスクリプティング脆弱性も同時に作り込まれる例も多いという。メタリフレッシュによる実装についてもブラウザーにより挙動が変わってくることがあり、一目で脆弱性が残っているかどうか判別しにくいというのも問題である。
はせがわ氏はオープンリダイレクトの対策について、「与えられた文字列がURLかどうかを判断するのは、とても難しい。根本的な対策は、リダイレクト先のページが限られている場合、事前に転送先URLをリストとして保持すべき」と述べる。
次に、はせがわ氏はCSRFについて「CSRFは地味で面白くない攻撃だが、XMLHttpRequest Lv.2(以下、XHR Lv.2)によって幅が広がった」と指摘する。
XHR Lv.2においては、クロスオリジンでのリクエストが発行可能という特徴がある。また、Content-Typeや送信内容をJavaScriptで組み立てて発行可能であるため、従来はできなかった「ファイルのアップロード」をCSRFで実行できてしまう。はせがわ氏は、より具体的な事例として「SNSのプロフィール画像を、攻撃者があらかじめ用意したポルノ画像をアップするような攻撃が可能となった」と述べる。
対策は、かんたんだ。従来の手法通り、副作用を持つようなすべての個所にトークンを設定することで防ぐことが有効である。また、XMLHtttpRequestを明示するリクエストヘッダーを付与することも重要だ。
はせがわ氏の講演資料は、以下からダウンロードできる。
続いて登壇したのは、OWASP Nightでは初めて登場する谷口隼祐氏だ。谷口氏が発表した内容は、スマートフォンアプリにおけるSSLサーバ証明書の取り扱いについてで、SSLとは何かを再度考え直すきっかけとなる内容だ。
今回、谷口氏がOWASP Nightで話すきっかけとなったのは、とあるスマートフォンアプリの脆弱性レポートに対するコメントだったいう。レポートは「SSLサーバー証明書の検証不備」を脆弱性としてとらえたものだが、これは脆弱性といえるのか?という指摘があったそうだ。谷口氏は「特にスマートフォンアプリにおいては」と前置きをし、見解を説明した。
まず大前提として、各種Webサービスはセキュリティポリシーが公開されているべきであり、ポリシーとして暗号化すべきとしているにもかかわらず、SSLが使われていないことは脆弱性として判断できるであろう。
谷口氏が指摘する問題とは、「SSL通信が暗号化されているという目的だけに使われており、接続先のサーバーの正当性が判断できないなど、SSLが適切に使われていないのは脆弱性として判断できるのでは」ということだ。より具体的には、テスト用に作った自己署名証明書を入れたままリリースしてしまっている事例が当てはまるだろう。
このような状況では、不正なSSLサーバー証明書を持つサーバーであってもエラーを出すことなく接続できてしまう。また、中間者攻撃による盗聴、改ざんが行われた場合でも利用者が気付くことなく通信ができてしまう。
谷口氏は独自に30のスマートフォンアプリについて調査したところ、2つのアプリで同様の検証不備があったという。また、検証を行っているアプリについても、エラーが発生したときに証明書に問題があるという旨のエラーメッセージが表示されるアプリは少なく、「電波が悪い」「サーバーメンテナンス中」など、一見しただけでは判断しにくいものになっていたという。
谷口氏は「従来、常にSSL通信を行うことは“おもてなし”だった。しかしスマートフォンアプリにおいては常時SSL通信が必須になっていくのかもしれない。今後はSSL通信を前提とした実装、エラーメッセージの表示が必要」と述べた。
谷口氏の講演資料は、以下から確認できる。
「ログイン前セッションフィクセイションの脅威と対策」と題するセッションでは、ハッシュコンサルティングの徳丸浩氏による「ログイン画面に至るまでの」脅威が解説された。
ログイン処理としてメールアドレスを入力するようなよくある画面において、修正のための「戻る」ボタンを持つような実装を行ったとしよう。メールアドレスをセッション変数として保持するような場合、このセッションIDを強制的に設定できると「セッションフィクセイション攻撃」が可能となる。
特にログイン時にSSLを使っている場合、必ず考えなくてはならないのがログイン前セッションフィクセイションだ(注:SSLに限定している理由は、SSLを使わない場合は平文で盗聴が可能であるため、別の問題になるためだ)。
ログイン前セッションフィクセイションの対象となるサイトとして、徳丸氏は以下の2つを条件とした。
1.未ログインの状態でセッション変数に秘密情報を保持
かつ
2.セッションIDを外部から強制できる
2.はURLにセッションIDを埋め込んでいる(地域型JPドメイン名などクッキーが容易に設定可能なドメインである)SSLを使用している、など多数の例があるため、1.が該当すれば「ログイン前セッションフィクセイション脆弱性対策を行うべきである」と徳丸氏は指摘する。
徳丸氏はデモとして、ワナを持つサイトとしてkawaguchi.tokyo.jp、正規のサイトとして「urayasu.tokyo.jp」を用意し、ワナを持つサイトを閲覧することでクッキーとドメインをセットされた被害者が、正規サイトで個人情報を入力することで、攻撃者はセッションIDを取得し、被害者の個人情報を取得できてしまうというものを紹介した。
ログイン前セッションフィクセイション対策として、徳丸氏はリクエストごとに毎回セッションIDを振り直すというアイデアを提唱したが「モバイル端末ではレスポンスの取りこぼしが多く、結果として使いにくいアプリになってしまう」と指摘。過去のセッションを有効なまま残すことも考えられるが、この妥当性については議論が必要であるとした。
「実際はリクエストごとにセッションIDを振り直す必要はなく、セッション変数に秘密情報をセットする場合のみ、セッションIDを振り直せばいい。また、そもそもログイン前にはセッションを開始せず、hiddenパラメータでデータを引き回すことで実装することがいいのではないか」と徳丸氏は指摘し、この方法を推奨した。
徳丸氏は「本来であればログイン前からセッションを開始しない方がいいのだが、ショッピングサイトではそうもいかないだろう。リスクとの兼ね合いではあるが、ログイン前セッションフィクセイション対策を判断していただきたい」と述べた。
徳丸氏の講演資料は、以下から確認できる。
最後に登壇したスペシャルスピーカーは、米ヒューレット・パッカードの脆弱性リサーチ部門であるZero Day Initiative(ZDI)、ブライアン・ゴーンズ氏だ。ゴーンズ氏はPacSec2013で開催された、モバイルデバイス脆弱性発見コンテスト「Mobile Pwn2Own」の主宰でもある。
セッション「Predicting Java Vulnerability」でゴーンズ氏は、これまでのJavaの脆弱性のトレンドを見て、今後どのように発見、修正が行われていくかを予測した。
詳細なレポートは、以下から参照してほしい。
第8回OWASP Nightレポート完全版 ダウンロードはこちらから
※ダウンロードの際に、アンケートのご協力をお願いしております。ご回答いただいた方の中から、抽選で5名様に「HP Slate7」のプレゼントもございます。
このアンケートは終了しました。ご協力ありがとうございました。
OWASP Nightはこのような“身近な専門家”が登場する、大変濃いイベントだ。OWASP Japanでは2014年3月17日より「AppSec Apac2014」を開催する。東京で開催される初めてのAppSec Apacでも、このような専門的なセッションが数多く登場する。セキュリティに関連する全てのエンジニアにぜひ注目してもらいたい。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本ヒューレット・パッカード株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2014年2月14日