クリックジャッキングの定義、防御と防止
クリックジャッキングとは、ハッカーがユーザーに表示されているコンテンツの後ろにハイパーリンクを隠して、ユーザーが意図せず騙してクリックをさせることです。
クリックジャッキング攻撃は、まず、だますことから始まります。ユーザーがフォームやボタン、または操作可能なその他のアイテムに遭遇します。そのアイテムをクリックすると、意図しないアクションが実行されます。
例えば、Webサイトでポップアップ画面が表示され、「クリックしてこのウィンドウを閉じます」という大きなボタンがあるとします。そのボタンをタップすると、ユーザーが意図していないにもかかわらず、その企業のFacebookページに「いいね!」が付きます。
クリックジャッキング攻撃は、以下の原因となる可能性があります。
- マルウェアのダウンロード
- 保護された情報の持ち出し
- 送金
- 製品の購入
- 望まないソーシャルプルーフ(社会的証明)の提供
消費者としては、これらの攻撃がどのように行われ、どのように自分の身を守るのかを理解することが重要です。IT専門家としては、一般的なクリックジャッキングのアプローチに耐性のあるサイトを構築することが重要です。
クリックジャッキングとは?
ハッカーは、一見何の変哲もないウェブページやボタン、フォームを作成します。そのようなアイテムは、複数のレイヤーで構成されています。ユーザーが目にしているバージョンは、一見無害のように見えますが、その下のレイヤーには、危害を与えるコードが隠されているのです。
Facebookを活用したクリックジャッキングの一例を考察しましょう。
- おとり:開発者は、面白い写真を満載したWebページを作成し、クリックして写真を見るように促します。
- フック:訪問者がページにアクセスすると、16歳以上であることを確認する画面が表示されます。
- スイッチ:「はい」をクリックすると、サイトに入ることができますが、同時にユーザー自身のFacebookのウォールにコンテンツへのリンクを投稿します。
この場合、ユーザーは、Facebookで投稿を共有する意図はありませんでしたが、クリックジャッキング攻撃は、「はい」のクリックを乗っ取ったのです。
以下の説明図は、このコンセプトの仕組みを表しています:https://www.imperva.com/learn/wp-content/uploads/sites/13/2019/01/Clickjacking.png.webp
クリックジャッキングの仕組み
レイヤー、デセプション、プログラミングによって、クリックジャッキング攻撃が可能になります。残念ながら、この手口は一般的です。アナリストによると、上位20行の銀行サイトの3分の2がこの種のハッキング被害を受けやすいとされています。
一般的なクリックジャッキングには以下のテクニックがあります。
- ブラウザレス:ハッカーはモバイルデバイスを使って攻撃を実行します。ユーザーのアクションとサーバーのレスポンスとの間におけるわずかな遅延により、操作が可能になります。
- クラシック:Webページに隠されたレイヤーがユーザーのアクションを乗っ取ります。
- クッキージャッキング:ユーザーが一見無害なオブジェクトを操作すると、ハッカーは該当するすべてのWebブラウザからユーザーのCookieにアクセスします。Cookieは大量のデータを保持しているため、壊滅的な攻撃となる可能性があります。
- カーソルジャッキング:ハッカーがカーソルの操作方法を変更し、それによる混乱した状況下でユーザーのカメラにアクセスする可能性があります。
- ファイルジャッキング:ハッカーがデバイスの深い権限制御を奪い取り、ファイルサーバーに変更します。
- ライクジャッキング:ハッカーはユーザーを騙して、Facebookや他のソーシャルメディアのアカウントに「いいね!」を付けるように仕向けます。
クリックジャッキングの背後にあるコードは精巧です。これらの攻撃は、素人が作成したり実行したりするものではありません。
最も巧妙なクリックジャッキング攻撃はユーザーにも見えないため、手遅れになるまで、他者によって、デバイス、データ、またはその両方が乗っ取られていることに気づかないかもしれません。
6つのクリックジャッキング防止テクニック
Webサイト上で行うすべてのアクションが、有意義で有用であることが必要です。また、デザイナーとしては、自身とその作品を信頼してもらいたいと考えるでしょう。防止ツールを使えば、その両方の目標を達成することができます。
クリックジャッキング攻撃を防止するには、以下を使用します。
- 安全なブラウザ:一部の企業は、一般的なクリックジャッキングのリスクを排除する、緊密でカスタマイズされたプログラムを構築しています。この脅威に対処済みのブラウザを調べてみましょう。デザイナーや開発者として、自社サイトがこれらのブラウザで動作することを確認します。
- Framekiller: このJavaScriptツールをWebページで使用し、第三者がクリックを盗めないようにしましょう。
- GuardedID:「キーストローク暗号化ソフトウェア」と称されるGuardedIDは、クリックジャッキングを排除することを目的としています。このソフトウェアは、PCとMacの両方で動作します。
- Intersection Observer:このAPIは、クリックアクションを可視化し、オンライン上で賢明な判断を下すために必要な情報を提供します。
- ブラウザ拡張機能:ChromeではNoClickjackを、FirefoxではNoScriptを使用することで、Web閲覧中の攻撃を排除することができます。
- X-Frame Options:Webサイトをデザインする際に、このHTTPヘッダーを使用します。ページをフレーム、iframe、埋め込み、オブジェクトとしてレンダリングするかどうかをブラウザに指示します。
開発者と消費者では、どのアプローチが最も効果的であるかについて意見が分かれています。例えば、X-Frameを支持する人々は、防止策は開発者側で講じるべきであり、消費者側で講じるべきではないと考えています。しかし、X-Frameには効果を発揮するには制限が多すぎると主張する人もいます。経験豊富なコーダーであれば、ほとんどの障害を回避することができます。
結局は、手持ちのツールを組み合わせ、消費者が訪問するサイトやオンラインの操作について注意を促すことが、乗っ取られる前にハッカーを阻止する最善の方法です。
参考文献
The Clickjacking Bug That Facebook Won't Fix(2018 年12月、Bleeping Computer)
Clickjacking Threatens Two-Thirds of Top 20 Banking Sites(2020年11月、Infosecurity)
Framekiller(PC)
GuardedID(Strikeforce)
Trust is Good, Observation Is Better: Intersection Observer v2(2021年2月、Web.Dev)
NoClickJack(Chrome Web Store)
No Script(Inform Action Open Source Software)
X-Frame Options(Mozilla)
Clickjacking Attack on Facebook: How a Tiny Attribute Can Save the Corporation(2019年1月、Security Boulevard)