クリックジャッキング
TRANSCRIPT
クリックジャッキング~ 1クリックの後悔~
※本稿の内容を管理下ではない環境に対して 実施しないでください。
自己紹介
Twitter: abend
Web セキュリティをメインでやってます。
本が出てます。
クリックジャッキングって見た目上、無害に見せかけてた罠サイトに利用者を誘導し、利用者が意図しない操作を正規サイトに対して実行させる攻撃手法。
Robert Hansen & Jeremiah Grossman に 2008 年に OWASP で発表された。
IPA
http://www.ipa.go.jp/about/technicalwatch/20130326.html
StyleSheet を用いて正規サイトを透過させるため、見た目では無害な罠サイトであると誤認識させて、利用者が正規サイトで意図せず処理を実行してしまう。
罠サイト
クリックジャッキングって
罠ボタン正規サイト
ボタン正規サイトは全く見えない状態にする。
じゃあ、やってみる<クリックジャッキングに必要なもの>・攻撃対象サイト・罠サイト・攻撃者・被害者・被害者が利用するブラウザ
攻撃対象サイトの用意脆弱性検証用に作成したショッピングサイトをターゲット。
会員制のショッピングサイトで、認証済みの利用者が商品を購入可能なサイト。
罠サイトの用意ネタを仕込み済みの罠サイトを使用。
罠サイトの中身罠サイトでは2つのことをしています。
・ 埋め込まれたサイトの style 属性を変更し、見えないようにする。
・ iframe を用いて、攻撃対象サイトを罠サイトに埋め込む。
罠サイトの中身変更している style 属性は、以下の通り。
filter:alpha(opacity=0);opacity: 0.0;-moz-opacity: 0.0;
→IE6→ ほとんどのブラウザ→ 古い Firefox や Netscape
とりあえず、いろいろ仕込んでおけば、多くのブラウザで有効化 ( 見えなくなる ) される。
罠サイトの中身スケスケ度30 % に設定
ああっ。
2クリックが紡ぐ新たなストーリー通常の退会処理手順
ログイン済みのユーザを誘導して・・・。
2クリックが紡ぐ新たなストーリー
2クリックが紡ぐ新たなストーリー
2クリックが紡ぐ新たなストーリー
たとえば、「いいね」ボタンを押させるなど・・・
1クリックの後悔
アダルトサイトで「いいね」を連呼させられるなど・・・
攻撃対象サイト 罠サイト(スケスケ度30 % )
どう守る?サーバ側とユーザ側で対策を行う必要がある。
サーバ側
ユーザ側
守りたいサイトが iframe で表示できないように X-FRAME-OPTIONS ヘッダを埋め込む。
X-FRAME-OPTIONS ヘッダを認識するブラウザを使用する。
どう守る?攻撃対象サイトの対策実施前HTTP/1.1 200 OKDate: Sat, 06 Jul 2013 07:51:54 GMTSet-Cookie: JSESSIONID=01081CAB2A51C5D0B2317A80B400E79E; Path=/WithUS/; HttpOnlySet-Cookie: cart=""; Path=/Content-Type: text/html;charset=utf-8Connection: closeContent-Length: 12802
どう守る?攻撃対象サイトの対策実施後HTTP/1.1 200 OKDate: Sat, 06 Jul 2013 08:27:45 GMTX-FRAME-OPTIONS: DENYSet-Cookie: JSESSIONID=7C1504026774FBB9AB462F66D060251B; Path=/; HttpOnlyContent-Type: text/html;charset=utf-8Connection: closeContent-Length: 12802
DENYサイト側の意図に関わらず、ページをフレーム内に表示することはできません。
SAMEORIGIN自身と生成元が同じフレーム内に限り、ページを表示することができます。 ALLOW-
FROM uri指定された生成元に限り、ページをフレーム内に表示できます。
オプション内容
ユーザ側は、古いブラウザを使わないってのが一番の対策。以下、記載よりも新しければ OK 。(リリース時期)
どう守る?
IE 8.0(2009年3月)Safari 4.0(2009年6月)Chrome 4.1.249.1042(2010年4月)Firefox 3.6.9(2010年9月)Opera 10.5(2010年10月)
ちゃんとアップデートしましょう。
ブラウザでも動作の止め方が異なります。以下は、スケスケ度30 % でのブラウザごとの挙動。
どう守る?
IE Chrome 、 Firefox 、 Opera
IE の場合、エラーメッセージ表示される。それ以外のブラウザは、特に何もなし。この点においては、 IE の方が親切。
Chrome 、 Firefox 、 Opera も IE 同様エラーメッセージを表示するようにしてほしい。クリックジャッキングのリスクはないにしても、被害者にアクセスしているサイトが罠サイトであると気づいてもらえるようにした方がいいと思う。
いろいろと。
<ブラウザに関して>
サーバアプリは、デフォルトで X-FRAME-OPTIONS (値:DENY )をセットするようにしてほしい。クライアントが最新ブラウザ使ってもサーバで何もしていなければ意味がないので。
<サーバに関して>
追加情報だよ。
http://www.sophos.com/ja-jp/press-office/press-releases/2013/06/ns-anatomy-of-a-browser-trick.aspx
SOPHOS から新手のクリックジャッキングの手法に関してのレポートが2013年6月29日に出てました。
不正なファイルを実行させるための方法で、 EXE をダウンロードさせ、CHAPCHA などを用いて「 E 」を入力させることで実行させるというものです。
ブラウザの種類によって挙動が異なるため、有効性は不明。対策は前述のとおり。