HTML5とか勉強会に参加して来ました

  1. テーマはHTML5とセキュリティ
  2. できることが増えてきたことで、セキュリティも大事になってきた

今から始めるHTML5セキュリティ(JPCERT 松本さん)

  1. JPCERTコンピューターセキュリティ早期警戒体制の構築運用
  2. HTML5のセキュリティの概要
  3. HTML5は開発者にとっても攻撃者にとっても便利
    1. 攻撃の幅も広がる
  4. ブラウザの実装によって脆弱性になってしまうケースも
  5. 今日はXMLHttpRequeestを中心に紹介
  6. 従来のXHRは同じオリジンしか通信不能
    1. XHR2ではクロスオリジン通信ができる
    2. オリジンで制限しても通信自体は送られる
    3. 例:URLハッシュをそのまま使う
      1. ホワイトリスト推奨
    4. アクセス制限はCookieを使うのが大事
    5. formactionやvideoタグのonerror
    6. ローカルのチェックだけでなく、サーバーサイドのチェックも
  7. iframe snaboxはiframeを直接開けられたら無意
  8. Content Security Policyを使う
    1. 違反レポートの送信先を指定できる
    2. 実装の差があるので注意
    3. XHRに対しても見てくれる
    4. オフラインアプリケーションについては不明

「本当は怖いクライアントサイドキャッシュポイズニング」(吾郷さん)

  1. キャッシャが重要になってきた
  2. デバイスの貸し借り時のリスク
  3. キャッシュシステムも進化してきた
  4. Application Cacheの危険性
    1. ユーザーが信頼できないネットワークを使っている場合に被害が広くなる
      1. 継続的な監視も可能になってしまう
  5. SSLを使っていればOK?
    1. 攻撃者側からすれば、最低でも通常の攻撃が可能で、より広い範囲の攻撃もできる
    2. コンテンツ提供者側から見れば危険が増えたわけではない
  6. 基本的には中間者攻撃が成立していれば危険なので、キャッシュそのものが危険ではないのでは?
  7. 公衆無線LANが増加して危険性が上がっている?
    1. キャリアの提供するAPは外から攻撃できないのか?
      1. 店によっては普通に触れるところにある
      2. 店舗の悪意にたいする耐タンパー性は?
      3. 汚染APをばら撒いたら?
  8. モバイルサイトは常にhttpsにすべき?
    1. HTTP2.0では暗号化はオプションに
    2. ブラウザは暗号化必須の方向性
  9. ここの無線APは安全?

Bypass SOP(はせがわようすけさん)

  1. HTML5の高機能化に伴って(ry
  2. オリジン
    1. スキーム + ホスト + ポート
  3. Same Origin Polycy
    1. オリジンが異なるものにはアクセスできない
    2. Cookieなどのオリジンベースでないセキュリティ機構もある
  4. その逆のCross Origine Sharingもある
    1. Cookie情報も含めることができる
  5. Access-Controll-Allow-Originにアステリスクを指定すると機密情報が漏れる可能性がある
    1. アステリスクにしているばあいはCookieを含めることができない(ブラウザによって挙動が違う)
  6. ブラウザを狙う攻撃は受動者攻撃
  7. サーバーに来るのはブラウザベースとは限らないので、オリジンを認証として使わないようにしましょう
  8. IEではHTMLでないものがHTML扱いされるので注意
  9. IEではJSONVBスクリプトとして解釈させるとエラーメッセージ経由で機密情報が取得可能
  10. X-Content-Type-Options:nosnifをつけておくとIE以外でも結構広い範囲で守れる
    1. JSONPの時にはContent-Typeに気をつけましょう
  11. 他にも便利なヘッダあり
    1. ブラウザのXSS防御機能をオフにするように求めるのはやめよう
  12. HTTPSを強制するヘッダや、ダウンロードダイアログに「開く」ボタンを表示させないようにするものも
  13. 質問
    1. ユーザーの教育は?
      1. 信頼できるサイトを偽装するのは簡単。それだけでは難しい