クリックジャッキング
書籍を読んで
こちらの書籍を読んでWebアプリケーションを作る際に重要な要点を自分用としてアウトプットします。
クリックジャッキング
対策はX-Frame-Optionsという仕様に対応すること
概要
- iframe要素やCSSを巧妙に利用することで、透明にした攻撃対象ページと罠サイトを重ね合わせることで利用者が気付かないうちに攻撃対象サイトでのクリックを誘導する攻撃手法
- Webアプリケーションの画面上で罠ボタンを設置し、利用者にクリックさせる事が出来れば、利用者の意図しない投稿やサイトの設定変更が出来る場合がある
- サイトに影響を与えるという点でCSRFに似ている
攻撃手法と影響
Twitterのウェブインテント機能
ウェブインテント機能を悪用し、犯行予告などの文字列を含んだURLを利用者に「Tweetボタン」を押させる事が出来ればそれが攻撃となる
※Twitterはクリックジャッキング対策がされている
脆弱性な掲示板を狙った攻撃
- ログイン機能を持つ掲示板
- 掲示板にはウェブインテント機能を持つ
- クエリー文字列intentを指定すると、犯行予告文を入力欄に設定することが出来る
- iframe要素とCSSを用いて上記の攻撃対象フォームを透明にする
- 罠画像(クリックして〜を当てよう)を4に重ねる(ボタンが設置してある)
- 罠のボタンをクリックすると3で設定された投稿ボタンが押され、犯行予告文が投稿されてしまう
脆弱性が生まれる原因
アプリケーションのバグが原因ではなく、HTMLでの使用を巧妙に悪用した攻撃である
このため、バグを修正したら防げるというタイプの脆弱性でなく、この点もCSRFとにた脆弱性と言える
対策
アプリケーション単体での対策は困難なため、ブラウザ側の支援が必要となる
このため、frameおよびiframeでの参照を制限するX-Frame-Optionsという仕様がMicrosoftから提唱され、現在では主要ブラウザの最新版で採用されている
よって、この仕様に対応することによりクリックジャッキング対策が容易に出来るようになっている
保険的対策
CSRFと同じく、「重要な処理」の実行後に、登録済みメールアドレスに通知メールを送信する