セキュリティ

透明なボタンを配置してユーザーをだます「クリックジャッキング」の現状と対処方法とは?

By Dave Dugdale

数あるウェブにおける攻撃手法のひとつに、ページ上に透明なボタンや見えないレイヤーを配置することでユーザーを視覚的にだまして悪意のあるアイコンやリンク先をクリックさせる「クリックジャッキング」があります。ウェブページでは一般的な「iframe」タグを用いて埋め込まれる攻撃の現状と、それに対する対処の考え方について、@filedescriptor氏が情報をまとめています。

Google YOLO
https://blog.innerht.ml/google-yolo/

クリックジャッキングの代表例といえるのが、以下のようなページの構造です。このページは、「iframe」タグを使ってオンライン銀行取引のページを再現したもので、紫色の「Harmless Button(無害なボタン)」と書かれたボタンの下に、「Transfer everything to my Nigerian account!(全額をナイジェリアの口座に送金する!)」という隠しボタンが仕込まれています。


このようなクリックジャッキングを仕込む際には、CSSの「position」プロパティを使ってエレメント(=ボタン)をページの前面に表示させ、さらに「pointer-events」プロパティを指定することでクリック時に前面に配置したエレメントをスルーさせ、背面に見えないように配置された悪意のあるボタンをクリックしてしまうようにする仕組みが用いられます。今回のダミーページの場合、「無害なボタン」だと思ってクリックしたユーザーはいつの間にかナイジェリアの不正口座にお金を丸ごと送金してしまうという事態につながります。


この問題を回避するためにはiframeを全面的に禁止することが最も有効ですが、この方法はとても現実的なものとはいえません。そこで、JavaScriptを用いた「フレームバスティング」スクリプトが使用されることがあります。これは、攻撃者が埋め込んだiframeにウェブサイトを読み込めないようにする方法で、以下のようなスクリプトを用いてページが読み込まれるかどうか検出を試みます。検出された場合にはページの読み込みが阻止されるため、クリックジャッキングの問題を回避することが可能になります。


しかし、この「フレームバスティング」を無効化する「バスティング・フレームバスティング」という対抗策が存在します。これは、ブラウザに搭載されているXSS Filter機能を悪用することでフレームバスティングを行うためのJavaScriptを無力化させるというもの。ここでは「onBeforeUnload」や「sandbox」が悪用されるケースが多くあり、JavaScriptを用いた対処法にも一定の限界が存在します。

この問題を回避できるように提供されているのが、Googleのウィジェット「One tap sign-up」と「automatic sign-in」の仕組み「YOLO(You Only Login Once)」です。ウェブサイト内にGoogleが生成したiframeタグを埋め込んでおくことで、ユーザーはGoogleアカウントを使ってワンクリックでログインを行うことができます。

One-tap sign-up and auto sign-in on websites  |  Google Developers
https://developers.google.com/identity/one-tap/web/


しかし、YOLOを使ってGoogleアカウントでログインを試みる際には、以下のようにメールアドレスや訪問者の名前、プロフィール画像などの情報が送信されます。この件に関してGoogleは「ウィジェット提供のためには必要」として「仕様通り」との判断をしています。


このように、クリックジャッキングに対する対処法はいずれも一長一短があり、確実な方法はないといえる状況にあります。リスクを下げる方法としては、以下のようなものが挙げられています。

・ページのヘッダ部分に「X-Frame-Options」または「Content-Security-Policy」を含めるようにする
・ウェブウィジェットのプロバイダーは十分なユーザーインタラクションが求められるようにする
・ユーザー側でサードパーティーのCookieを無効化することを検討する
・ブラウザのプロファイルを使用する

・関連記事
GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE

Googleがニセのダウンロードボタンに偽装した広告などに警告表示 - GIGAZINE

あなたの情報をブラウザがどれぐらい収集できてしまうのかを見せてくれる「webkay」 - GIGAZINE

人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE

Gmailの添付ファイルに偽装して偽Googleへ誘導しログインさせようとする攻撃が登場 - GIGAZINE

in ソフトウェア,   セキュリティ, Posted by logx_tm