金利0無利息キャッシング – キャッシングできます

 | 

2012-04-05

Shibuya.XSSで発表してきました

19:12 | Shibuya.XSSで発表してきました  - 金利0無利息キャッシング – キャッシングできます を含むブックマーク はてなブックマーク - Shibuya.XSSで発表してきました  - 金利0無利息キャッシング – キャッシングできます

http://atnd.org/events/25689

以下資料、適当に口頭で補足しながらしゃべりました。オフレコ部分は抜いてあります + 参考URL等を少し足しました。

----

DOM Based XSSの傾向と対策

DOM Based XSS

  • 基礎的な説明は省略
  • 機械的なスキャンで見つからない
  • 人間が読んでも見つけにくい

ログに残らないことがある

  • location.hash経由で発火が多い
  • サーバー側のアクセスログに残らず
  • ビーコン等でlocation.hash記録するものも有り
    • XSS発動が先なら妨害できる

location.hash経由

どうやると見つけられるか?

どんなときに見つけにくい?

  • パラメータパースして利用しているとソース読まないと無理
  • どこに起因する入力かわかりにくい
  • 難読化されてると異常に見つけにくい

どう直すのが良いのだろう?

  • バリデーションせよ?
  • バリデーションが必要な状況になったら疑え!!

バリデーションが必要な状況

  • openにファイル名渡す → パイプでコマンド実行可能
  • ファイル開く関数とコマンド実行と分けろ!!
  • 役割に応じて「それしかできない」ようにする

バリデーションが必要なライブラリ

そもそも安全にすることを考える

  • 外部リソース読み込めないように → XHR無理・・・
  • jQuery本体で対応 → 一部未対応のまま

コーディング規則での対応

  • jQueryの場合
  • HTML使う必要ないなら.text()で出力
  • $("#id").find でセレクタとしてしか機能しない
  • $()関数は汎用的すぎ → どの機能が発動するか分からない

コーディング規則での対応 2

問題点

  • 攻撃手法を知らないと問題のないコードに見えてしまう
  • XHR level2で今まで平和だったコードが突如危険に
  • HTML5API設計そのものに問題が・・・

DOM XSS撲滅装置

  • location.hashにタグ含まれていたら消す etc
  • その文字列を使わないことが保証できてるなら割と効果ある
  • 広告やブログパーツ等、自分で直せない場合の応急処置に。

パスワードを盗めるか?

パスワードの盗み方

  • 自動フィルインされた値を読み取る → 自動的に発動
  • 自動フィルイン + クリックジャッキング → 半自動
  • フォームの宛先を変える + 気付かずに入力

事例

そもそもの対策

そもそもの対策 2

パスワード盗める事例

XSSパスワード盗めてしまうと

  • 脆弱性があった場合のリスクが増加する
  • 公表、周知が難しくなる → 悪循環
  • 影響が限定的になるようなデザインを

フェイルセーフ設計

必要なセキュリティレベルに応じたポリシーを

ブラウザ側でのリスク軽減

攻撃者視点で考える

  • ユーザーに気付かれないようにするに悪用したい場合
  • 1. iframeで埋め込む → サードパーティCookie有効なら発動
  • 2. 短縮URL + history.replaceStateでURLを偽装して通常通りに見せる
  • 3. ポップアップWindowで攻撃URLを開いてすぐ閉じる → サードパーティCookie無効でも死ぬ

ログに残さないテクニック

  • eval(location.hash.substring(1)) されると何されたか分かんない
  • eval(name) も

ユーザー側で出来ることは何なのか?

  • NoScript?
  • 複雑なルールを設定しなければ安全に利用できない
  • 攻撃者が嫌う設定を使う
  • 初見のURLは全部シークレットモードで開くとか

まとめ

  • DOM Based XSSはたくさんあります
  • XSSがあっても安全にすることを考える

christopherchristopher2012/06/14 20:46It's much esaeir to understand when you put it that way!

wjxlyacekabwjxlyacekab2012/06/16 08:45RR69p8 , [url=http://jasbxpmpcgxl.com/]jasbxpmpcgxl[/url], [link=http://qxoucsfflcuo.com/]qxoucsfflcuo[/link], http://eglrhpdeqeol.com/

rruysznagsirruysznagsi2012/06/16 23:09vhqD5Q <a href="http://jctudksfbevk.com/">jctudksfbevk</a>

nqrgjxjyqanqrgjxjyqa2012/06/17 11:55lajcx2 , [url=http://gxwtxjkenmam.com/]gxwtxjkenmam[/url], [link=http://ojbayvybjnqn.com/]ojbayvybjnqn[/link], http://ylgycisskjeg.com/

トラックバック - http://subtech.g.hatena.ne.jp/mala/20120405
 |