
クリックジャッキング(ユーザーインターフェイスリドレス攻撃またはUIリドレスとして分類される)は、ユーザーを騙して、ユーザーが認識しているものとは異なるものをクリックさせ、機密情報を漏洩させたり、 Webページなどの一見無害なオブジェクトをクリックしている間に他人がユーザーのコンピューターを制御できるようにしたりする悪意のある手法です。[1] [2] [3] [4] [5]
クリックジャッキングは混乱した代理人問題の一例であり、コンピュータが騙されて権限を悪用してしまう。[6]
歴史
2002年には、 Webページ上に透明なレイヤーを読み込み、ユーザーに気付かれずにユーザーの入力が透明なレイヤーに影響を与える可能性があることが指摘されていました。[7]しかし、修正は2004年頃から少しずつ行われ始め、[8] 2008年までこの問題は大きな問題としてほとんど無視されていました。[7]
2008年、ジェレミア・グロスマンとロバート・ハンセン(SecTheory)は、Adobe Flash Playerがクリックジャックされ、攻撃者がユーザーの知らないうちにユーザーのコンピュータにアクセスできる可能性があることを発見しました。[ 7]グロスマンとハンセンは、「クリック」と「ハイジャック」を組み合わせた造語として「クリックジャッキング」という用語を作り出しました。[9] [10]
同様の性質の攻撃がさらに発見されるにつれて、「UI再ドレスアップ」という用語の焦点は、クリックジャッキングそのものだけでなく、これらの攻撃のカテゴリを説明するために変更されました。[7]
説明
クリックジャッキングの 1 つの形態は、アプリケーションまたは Web ページに存在する脆弱性を悪用し、攻撃者がユーザーのコンピューターを操作して自分の利益を図ることを可能にします。
たとえば、クリックジャックされたページでは、ユーザーは隠されたリンクをクリックすることで、望ましくないアクションを実行するように誘導されます。クリックジャックされたページでは、攻撃者は元のページの上に別のページを透明なレイヤーで読み込み、ユーザーを騙してアクションを実行させますが、その結果はユーザーの予想とは異なるものになります。何も知らないユーザーは、表示されているボタンをクリックしていると思いますが、実際にはレイヤーの下のページのボタンをクリックして、見えないページでアクションを実行しています。隠されたページは認証ページである可能性があるため、攻撃者はユーザーを騙して、ユーザーが意図していないアクションを実行させることができます。ユーザーは隠されたページで実際に認証されているため、後でそのようなアクションを攻撃者にたどる方法はありません。
クリックジャッキングのカテゴリ
- クラシック:主にWebブラウザ経由で動作する[7]
- ライクジャッキング: Facebookのソーシャルメディア機能を利用する[11] [12]
- ネスト: Google+に影響を与えるようにカスタマイズされたクリックジャッキング[13]
- カーソルジャッキング:カーソルの外観と位置を操作する[7]
- マウスジャッキング:リモートRFリンクを介してキーボードやマウスの入力を挿入する[14]
- ブラウザレス:ブラウザを使用しない[7]
- クッキージャッキング:ブラウザからクッキーを取得する[7][15]
- ファイルジャッキング:影響を受けたデバイスをファイルサーバーとして設定する機能[7] [16] [17]
- パスワードマネージャー攻撃:ブラウザの自動入力機能の脆弱性を利用したクリックジャッキング[7]
クラシック
典型的なクリックジャッキングとは、攻撃者がウェブページ上の隠しレイヤーを利用してユーザーのカーソルの動作を操作し、実際に何がクリックされているのかについてユーザーを誤解させる状況を指します。[18]
ユーザーはニュース項目に関するビデオへのリンクが記載されたメールを受け取ることがありますが、別のウェブページ、たとえばAmazonの製品ページがニュース ビデオの [再生] ボタンの上または下に「隠されている」場合があります。ユーザーはビデオを「再生」しようとしますが、実際には Amazon から製品を「購入」します。ハッカーは 1 回のクリックしか送信できないため、訪問者がAmazonにログインしていて、1 クリック注文が有効になっているという事実に頼っています。
これらの攻撃の技術的な実装は、ブラウザ間の非互換性のために難しいかもしれませんが、BeEFやMetasploit Projectなどの多くのツールは、脆弱なウェブサイト上のクライアントをほぼ完全に自動的に攻撃する機能を提供しています。クリックジャッキングは、 XSSなどの他のウェブ攻撃によって促進されるか、促進される可能性があります。[19] [20]
いいねジャッキング
ライクジャッキングとは、ウェブサイトを閲覧しているユーザーを騙して、意図せず「いいね!」したFacebookページやその他のソーシャルメディアの投稿/アカウントに「いいね!」させる悪質な手法である。[ 21 ]「ライクジャッキング」という用語は、Corey Ballouが記事「Web上のあらゆるものに「いいね!」する方法(安全に)」に投稿したコメントに由来しており、[22]これはFacebookの「いいね!」ボタンに関する悪質な活動の可能性を説明した最初の文書化された投稿の1つである。[23]
IEEE Spectrumの記事によると、Facebookのハッカソンの1つで、いいねジャッキングの解決策が開発されたとのことです。[24] Facebookのいいねボタンに存在するいいねジャッキングの可能性を回避する「いいね」ブックマークレットが利用可能です。[25]
ネスト
ネストされたクリックジャッキングは、従来のクリックジャッキングとは異なり、元の無害なウェブページの 2 つのフレーム(フレーム化されたページと上部のウィンドウに表示されるフレーム) の間に悪意のあるウェブフレームを埋め込むことで機能します。これは、HTTP ヘッダーの脆弱性によって機能しますX-Frame-Options。この脆弱性では、この要素の値が の場合SAMEORIGIN、ウェブブラウザは前述の 2 つのレイヤーのみをチェックします。これら 2 つの間に検出されずに追加のフレームを追加できるという事実は、攻撃者がこれを自分の利益のために利用できること
を意味します。
過去には、Google+や の欠陥バージョンでX-Frame-Options、攻撃者はGoogle の画像検索エンジンに存在する脆弱性を利用して、任意のフレームを挿入することができました。Google+ にも存在する画像表示フレームの間に、攻撃者が制御するこれらのフレームを読み込むことができ、制限されることもなかったため、攻撃者は画像表示ページにアクセスした人を誤解させることができました。[13]
カーソルジャッキング
カーソルジャッキングは、ユーザーが認識している位置からカーソルを変更するUI再調整技術であり、2010年にvulnerability.frの研究者Eddy Bordiによって発見されました。[26] Marcus Niemietzはカスタムカーソルアイコンでこれを実証し、2012年にはMario Heiderichがカーソルを非表示にしてこれを実証しました。[27]
Alternativ-Testing.frの研究者であるJordi Chancel氏は、Mac OS Xシステム上のMozilla FirefoxでFlash、HTML、JavaScriptコードを使用したカーソルジャッキングの脆弱性を発見しました(Firefox 30.0で修正済み)。この脆弱性により、任意のコードの実行やウェブカメラの盗聴が発生する可能性があります。[28]
2つ目のカーソルジャッキング脆弱性は、Mac OS Xシステム上のMozilla Firefox(Firefox 37.0で修正済み)でJordi Chancelによって再び発見されました。この脆弱性は、再びFlash、HTML、JavaScriptコードを使用しており、これによりウェブカメラを介したスパイ行為や悪意のあるアドオンの実行につながり、影響を受けるユーザーのコンピュータ上でマルウェアの実行が可能になります。[29]
マウスジャック
UIを修正する他のクリックジャッキング技術とは異なり、マウスジャックは、2016年にBastille.netのMarc Newlinによって初めて報告されたワイヤレスハードウェアベースのUI脆弱性であり、外部キーボード入力を脆弱なドングルに挿入することができます。[30] Logitechはファームウェアパッチを提供しましたが、他のメーカーはこの脆弱性に対応できませんでした。[31]
ブラウザレス
ブラウザレス クリックジャッキングでは、攻撃者はプログラムの脆弱性を利用して、Web ブラウザを必要とせずに、プログラム内で従来のクリックジャッキングを再現します。
このクリックジャッキングの手法は、主にモバイルデバイス、特にAndroidデバイスで広く利用されています。これは、トースト通知の仕組みが原因です。トースト通知は、通知が要求された瞬間から実際に画面に表示される瞬間までの間にわずかな遅延があるため、攻撃者はそのギャップを利用して、通知の下に隠れてクリック可能なダミーボタンを作成することができます。[7]
クッキージャッキング
クッキージャッキングはクリックジャッキングの一種で、被害者のウェブブラウザからクッキーを盗むものです。これは、一見無害に見えるオブジェクトをドラッグするようにユーザーを騙して、実際には標的のクッキーのコンテンツ全体を選択させることで行われます。そこから、攻撃者はクッキーとそれが保持するすべてのデータを取得できます。[15] [説明が必要]
ファイルジャッキング
ファイルジャッキングでは、攻撃者はウェブブラウザの機能を利用してコンピュータ内を移動し、コンピュータファイルにアクセスして個人データを取得します。これは、ユーザーを騙してアクティブなファイルサーバーを確立させることによって行われます(ブラウザが使用するファイルとフォルダの選択ウィンドウを介して)。これにより、攻撃者は被害者のコンピュータにアクセスしてファイルを取得できるようになります。[16]
パスワードマネージャー攻撃
カーネギーメロン大学の研究者による2014年の論文によると、ブラウザは現在のログインページのプロトコルがパスワードを保存したときのプロトコルと異なる場合、自動入力を拒否しますが、一部のパスワードマネージャーはhttpsで保存されたパスワードのhttpバージョンのパスワードを安全でない方法で入力することがわかりました。ほとんどのマネージャーはiFrameやリダイレクトベースの攻撃から保護しておらず、複数のデバイス間でパスワード同期が使用されていた場合に追加のパスワードが公開されていました。 [17]
防止
クライアント側
ノースクリプト
クリックジャッキング(ライクジャッキングを含む)に対する保護は、Mozilla Firefoxのデスクトップ版とモバイル版[32]にNoScriptアドオンをインストールすることで追加できます。2008年10月8日にリリースされたClearClick機能は、埋め込まれたドキュメントやアプレットの見えない、または「再ドレスアップされた」ページ要素をユーザーがクリックするのを防ぎます。[33] Googleの2008年の「ブラウザセキュリティハンドブック」によると、NoScriptのClearClickはクリックジャッキングに対して「適度な保護を提供する無料で利用できる製品」です。[34]新しいカーソルジャッキング攻撃に対する保護はNoScript 2.2.8 RC1に追加されました。[27]
クリックジャックなし
「NoClickjack」ウェブブラウザアドオン(ブラウザ拡張機能)は、正当な iFrame の動作を妨げることなく、 Google Chrome、Mozilla Firefox、Opera、Microsoft Edgeのユーザーにクライアント側のクリックジャック保護を追加します。NoClickjack は、GuardedID 用に開発されたテクノロジーに基づいています。NoClickjack アドオンは無料です。
ガードID
GuardedID(商用製品)には、正当なiFrameの動作を妨げることなくInternet Explorerのユーザー向けにクライアント側のクリックジャック保護が含まれています。[35] GuardedIDのクリックジャック保護は、すべてのフレームを強制的に表示します。GuardedIDは、Google Chrome、Mozilla Firefox、Opera、Microsoft Edgeの保護機能を追加するために、アドオンNoClickjackと連携しています[説明が必要]。
ガゼル
GazelleはIEをベースにしたMicrosoft Researchプロジェクトの安全なウェブブラウザで、 OSのようなセキュリティモデルを使用し、クリックジャッキングに対する独自の限定的な防御機能を備えています。[36] Gazelleでは、異なるオリジンのウィンドウは、描画するコンテンツが不透明である場合にのみ、別のウィンドウの画面スペースに動的コンテンツを描画できます。
交差点オブザーバー v2
Intersection Observer v2 API [37]は、人間が定義するターゲット要素の実際の「可視性」を追跡するという概念を導入しています。[38]これにより、フレームウィジェットはカバーされているかどうかを検出できます。この機能は、2019年4月にリリースされたGoogle Chrome 74以降、デフォルトで有効になっています。 [39]このAPIは、Microsoft EdgeやOperaなどの他のChromiumベースのブラウザでも実装されています。
サーバー側
ウェブサイトの所有者は、異なるソースからのフレーム内に含めたくないページにフレームキラーJavaScriptスニペットを含めることで、サーバー側でのUIの再ドレスアップ(フレームベースのクリックジャッキング)からユーザーを保護することができます。[34]
このようなJavaScriptベースの保護は必ずしも信頼できるものではありません。これは特にInternet Explorerに当てはまります。[34] Internet Explorerでは、この種の対策は、要素内にターゲットページを含めることで「設計上」回避される可能性があります。[40]<IFRAME SECURITY=restricted>
X-フレームオプション
2009年にInternet Explorer 8で導入された新しいHTTPヘッダーはX-Frame-Options、クリックジャッキングに対する部分的な保護を提供し[41] [42] 、その後すぐに他のブラウザ(Safari、[43] Firefox、[44] Chrome、[45] Opera [46])にも採用されました。このヘッダーは、ウェブサイトの所有者によって設定され、優先するフレーミングポリシーを宣言します。、、またはの値はそれぞれDENY、すべてのフレーミングを防止、外部サイトによるフレーミング、または指定されたサイトによるフレーミングのみを許可します。さらに、一部の広告サイトは、どのページでもコンテンツのフレーミングを許可する目的で非標準の値を返します(X-Frame-Optionsをまったく設定しないのと同等)。
ALLOW-FROM originSAMEORIGINALLOWALL
2013年にX-Frame-OptionsヘッダーはRFC 7034として公式に公開されましたが[47] 、インターネット標準ではありません。この文書は情報提供のみを目的としています。W3Cのコンテンツセキュリティポリシーレベル2勧告では、X-Frame-Optionsヘッダーを廃止することを目的とした代替セキュリティディレクティブframe-ancestorsが提供されています。[48]
X-Frame-Optionsのようなセキュリティヘッダーは、フレームを使用しないクリックジャッキング攻撃からユーザーを保護することはできません。[49]
コンテンツセキュリティポリシー
コンテンツセキュリティポリシーframe-ancestorsのディレクティブ(バージョン1.1で導入)は、iframe、オブジェクトなどを使用して潜在的に悪意のあるページによるコンテンツの埋め込みを許可または禁止することができます。このディレクティブは、X-Frame-Optionsディレクティブを廃止します。ページが両方のヘッダーで提供される場合、ブラウザはframe-ancestorsポリシーを優先する必要があります。[50] —ただし、一部の一般的なブラウザはこの要件に従わない場合があります。[51]
フレーム祖先ポリシーの例:
# 埋め込みを許可しません。すべての iframe などは空白になるか、ブラウザ固有のエラー ページが含まれます。 コンテンツ セキュリティ ポリシー: フレーム祖先 'none'
#独自のコンテンツの埋め込みのみを許可します。 コンテンツ セキュリティ ポリシー: フレーム祖先 'self'
# 特定のオリジンがこのコンテンツを埋め込むことを許可する コンテンツセキュリティポリシー: フレームアンセスター www.example.com www.wikipedia.org
参照
参考文献
- ^ Robert McMillan (2008年9月17日). 「Adobeの要請により、ハッカーは「クリックジャッキング」の話を取り下げる」. PC World. 2015年7月17日時点のオリジナルよりアーカイブ。 2008年10月8日閲覧。
- ^ Megha Dhawan (2008年9月29日). 「クリックジャッカーに注意」The Times of India。2009年7月24日時点のオリジナルよりアーカイブ。 2008年10月8日閲覧。
- ^ Dan Goodin (2008 年 10 月 7 日)。「ネット ゲームが PC を秘密の監視ゾンビに変える」The Register。2008年10 月 8 日閲覧。
- ^ Fredrick Lane (2008 年 10 月 8 日)。「Web Surfers Face Dangerous New Threat: 'Clickjacking'」。newsfactor.com。2008 年 10 月 13 日時点のオリジナルよりアーカイブ。2008 年10 月 8 日閲覧。
- ^ Shahriar, Hossain; Devendran, Vamshee Krishna (2014 年 7 月 4 日)。「クリックジャッキング攻撃の分類と検出手法」。情報セキュリティジャーナル: グローバルな視点。23 (4–6): 137–147。doi : 10.1080 /19393555.2014.931489。ISSN 1939-3555。S2CID 43912852 。
- ^ 混乱した副保安官が再び登場!、タイラー・クローズ、2008年10月
- ^ abcdefghijkl Niemietz, Marcus (2012). 「Android デバイスに対する UI 再ドレスアップ攻撃」(PDF) . Black Hat .
- ^ 「162020 - ユーザーがクリックしようとすると XPInstall/security ダイアログがポップアップする (コメント 44)」。Mozilla/Firefox バグ トラッカー。
- ^ あなたは(クリック)ジャックを知らない ロバート・レモス、2008年10月
- ^ JAstine, Berry. 「Facebook ヘルプ番号 1-888-996-3777」 。 2016年6月7日閲覧。
- ^ 「ウイルス性のクリックジャック「いいね!」ワームがFacebookユーザーを襲う」Naked Security。2010年5月31日。 2018年10月23日閲覧。
- ^ 「Facebookワーム - 「Likejacking」」。Naked Security。2010年5月31日。 2018年10月23日閲覧。
- ^ ab Lekies, Sebastian (2012). 「現在のブラウザ が提供するクリックジャッキング保護スキームの脆弱性と限界について」(PDF) USENIX。
- ^ 「ワイヤレスマウスのハッキングとネットワークセキュリティ保護」。MOUSEJACK 。 2020年1月3日閲覧。
- ^ ab Valotta, Rosario (2011). 「Cookiejacking」. tentacoloViola – sites.google.com . 2019年8月7日時点のオリジナルよりアーカイブ。2018年10月23日閲覧。
- ^ ab 「Filejacking: ブラウザからファイルサーバーを作成する方法 (もちろん HTML5 を使用)」。blog.kotowicz.net 。2018 年10 月 23 日閲覧。
- ^ ab 「パスワードマネージャー: 攻撃と防御」(PDF) 。2015年7 月 26 日閲覧。
- ^ Sahani, Rishabh; Randhawa, Sukhchandan (2021年12月1日). 「クリックジャッキング:クリックにご注意」. Wireless Personal Communications . 121 (4): 2845–2855. doi :10.1007/s11277-021-08852-y. ISSN 0929-6212. S2CID 239691334.
- ^ 「クリックジャッキングとXSSの融合:最新技術」。Exploit DB。2008年12月26日。 2015年3月31日閲覧。
- ^ Krzysztof Kotowicz. 「クリックジャッキングによる悪用不可能な XSS の悪用」 。2015年3 月 31 日閲覧。
- ^ Cohen, Richard (2010年5月31日). 「Facebook Work – 「Likejacking」」. Sophos . 2010年6月4日時点のオリジナルよりアーカイブ。2010年6月5日閲覧。
- ^ Ballou, Corey (2010 年 6 月 2 日). 「「Likejacking」という用語が流行る」. jqueryin.com. 2010 年 6 月 5 日時点のオリジナルよりアーカイブ。2010年6 月 8 日閲覧。
- ^ Perez, Sarah (2010 年 6 月 2 日). 「Facebook で「Likejacking」が急増」. ReadWriteWeb. 2011 年 8 月 16 日時点のオリジナルよりアーカイブ。2010年6 月 5 日閲覧。
- ^ Kushner, David (2011 年 6 月). 「Facebook Philosophy: Move Fast and Break Things」. IEEE . 2011 年 6 月 7 日時点のオリジナルよりアーカイブ。2011年7 月 15 日閲覧。
- ^ Perez, Sarah (2010 年 4 月 23 日)。「Web 上のあらゆるものに「いいね」をする方法 (安全に)」。ReadWriteWeb。2011年8 月 24 日閲覧。
- ^ Podlipensky, Paul. 「カーソルスプーフィングとカーソルジャッキング」。Podlipensky.com。Paul Podlipensky。2017年11月22日時点のオリジナルよりアーカイブ。 2017年11月22日閲覧。
- ^ Krzysztof Kotowicz (2012年1月18日). 「Cursorjacking Again」 . 2012年1月31日閲覧。
- ^ 「Mozilla Foundation セキュリティアドバイザリ 2014-50」。Mozilla 。 2014年8月17日閲覧。
- ^ 「Mozilla Foundation セキュリティアドバイザリ 2015-35」。Mozilla 。 2015年10月25日閲覧。
- ^ 「MouseJackとは何か?」Bastille . 2020年1月3日閲覧。
- ^ 「CERT VU#981271 複数のワイヤレスキーボード/マウスデバイスが安全でない独自のワイヤレスプロトコルを使用しています」kb.cert.org 。2020年1月3日閲覧。
- ^ Giorgio Maone (2011 年 6 月 24 日). 「NoScript Anywhere」. hackademix.net . 2011 年6 月 30 日閲覧。
- ^ Giorgio Maone (2008 年 10 月 8 日)。「Hello ClearClick, Goodbye Clickjacking」hackademix.net。2008年10 月 27 日閲覧。
- ^ abc Michal Zalevski (2008 年 12 月 10 日)。「ブラウザ セキュリティ ハンドブック、パート 2、UI の修正」。Google Inc. 2008 年10 月 27 日閲覧。
- ^ Robert Hansen (2009 年 2 月 4 日). 「Clickjacking and GuardedID ha.ckers.org web application security lab」。2012 年 7 月 11 日時点のオリジナルよりアーカイブ。2011年11 月 30 日閲覧。
- ^ Wang, Helen J.; Grier, Chris; Moschchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman (2009 年 8 月)。「Gazelle Web ブラウザのマルチプリンシパル OS 構築」(PDF)。第 18 回 Usenix セキュリティ シンポジウム、カナダ、モントリオール。2010年1 月 26 日閲覧。
- ^ 「Intersection Observer – W3C 編集者草案」。
- ^ 「信頼は良いことだが、観察はさらに良いことだ」。
- ^ 「2019 年のクリックジャッキングによる匿名化解除」。
- ^ Giorgio Maone (2008 年 10 月 27 日)。「Hey IE8, I Can Has Some Clickjacking Protection」hackademix.net。2008年10 月 27 日閲覧。
- ^ Eric Lawrence (2009 年 1 月 27 日)。「IE8 セキュリティ パート VII: クリックジャッキング防御」 。2010年12 月 30 日閲覧。
- ^ Eric Lawrence (2010 年 3 月 30 日)。「X-Frame-Options によるクリックジャッキング対策」 。2010年12 月 30 日閲覧。
- ^ Ryan Naraine (2009 年 6 月 8 日). 「Apple Safari ジャンボパッチ: 50 以上の脆弱性が修正されました」。2009 年 6 月 12 日時点のオリジナルよりアーカイブ。2009年6 月 10 日閲覧。
- ^ https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header Archived 7 October 2010 at the Wayback Machine X-Frame-Options レスポンス ヘッダー — MDC
- ^ Adam Barth (2010 年 1 月 26 日)。「Security in Depth: New Security Features」。2010 年1 月 26 日閲覧。
- ^ 「Opera Presto 2.6 での Web 仕様のサポート」。2010 年 10 月 12 日。2012 年 1 月 14 日時点のオリジナルよりアーカイブ。2012年1 月 22 日閲覧。
- ^ 「HTTP ヘッダー フィールド X-Frame-Options」。IETF。2013 年。
- ^ 「コンテンツセキュリティポリシーレベル2」。W3C。2016年。
- ^ 「lcamtuf のブログ: X-Frame-Options、または間違った問題の解決」 2011 年 12 月 10 日。
- ^ 「コンテンツセキュリティポリシーレベル2」w3.org 2014年7月2日。 2015年1月29日閲覧。
- ^ 「クリックジャッキング防御チートシート」 。 2016年1月15日閲覧。
