開いたままのタブに、見慣れたサービスそっくりのログイン画面が 表示されています。アドレスバーは最初に開いたサイトのままですが、 ページの内容だけが変わっています。アドレスを確かめずに 認証情報を入力すると、そのサイトの運営者に渡してしまうかも しれません。これは、悪意あるページが通常のブラウザ機能を 悪用して画面を偽装する、タブナビングの一例です。
クリックジャッキングは別の手口です。攻撃者は自分のページに 正規のサイトを埋め込み、気づかないうちにそちらを操作させようと します。どちらもマルウェアなしで起こり得ますが、タブを何枚も 開いているだけで成立するわけではありません。開いたページと ブラウザやサイトの保護設定によって結果は変わります。 利用者によるアドレスの確認と、サイト側の対策の両方が必要です。
タブの見た目が変わる仕組み

ページは読み込み後も、自分の内容、タイトル、アイコンを 変更できます。また、ページ表示状態を知らせる仕組みを使えば、タブが前面にあるかどうか分かります。 本来は普通の機能に使われますが、悪意あるページは 信頼されているサービスを装うためにも使えます。
たとえば、攻撃者が管理するページや侵害されたページを開き、 別のタブに移ったとします。ページ内のスクリプトは 背景に移ったことを検知し、後から偽のログイン画面を 表示できます。自分の HTML やアイコンは変えられても、 ブラウザのアドレスバーに表示される本当の接続先は 変えられません。切り替わる時間や見た目は攻撃の 作り方次第で、決まった待ち時間はありません。
偽画面にパスワードやワンタイムコードを入力すると、 攻撃者に送られる可能性があります。その後、正規の サービスに転送して不審さを隠すこともできます。 予期せずログインを求められたら、入力前に アドレスを確認してください。正規のサイトに 結び付くパスキーなら、このような偽画面での 認証情報の窃取を防ぎやすくなります。
埋め込まれたページへのクリック誘導
クリックジャッキングでは、攻撃者が正規のサイトを iframe に埋め込み、おとりを配置して、埋め込まれた ページのボタンを押させようとします。成立するには、 対象サイトが埋め込みを許し、クリック先に現在の利用者が 操作できる項目がなければなりません。MDN に仕組みの説明があります。どのアカウントや取引でも自由に操作できるわけでは ありません。
典型例は、ゲームの部品の下に交流サイトのボタンを 隠し、意図しないクリックを誘うものです。影響は 埋め込まれたページが許す操作によります。重要な操作には 追加の確認が必要な場合があり、サイトをまたぐ Cookie の 制限によって、iframe 側ではログイン状態を使えない 場合もあります。許可画面や決済画面にボタンがある だけで、埋め込み可能とは限りません。

主な対策はサイト運営者が行います。CSP の frame-ancestorsは、そのページを埋め込めるサイトを制限します。X-Frame-Optionsは、古いブラウザ向けのより単純な制限です。 埋め込みが必要なら信頼できるサイトだけを許し、 重大な操作には確認を加えられます。制限がないと 攻撃の余地は生まれますが、実際に悪用できるかは ほかの対策やページの動作にも左右されます。
window.opener が問題になる条件
リバースタブナビングには、新しいページと、それを開いた ウィンドウとの関係が必要です。開いたページがwindow.opener を使える状態なら、 元のウィンドウを偽サイトに移動できる場合があります。 接続元が異なれば元ページの内容は読めませんが、 移動は許され得ます。MDN がこの制限を説明しています。
現在のブラウザでは、通常のtarget="_blank" リンクはrel="noopener" を指定した場合と 同じように扱われ、明示的に要求しない限りwindow.opener は使えません。MDN にもこの既定動作が記されています。一方、スクリプトで window.open()を使う場合は、必要に応じて noopenerを指定してください。信頼できないサイトへのリンクが すべてこの攻撃につながるわけではありません。
攻撃が成立する条件
これらは普通の Web 機能を、利用者を欺く目的で使う 攻撃です。ページは自分の見た目を変えられ、サイトに よっては埋め込みも認めています。危険の程度は、 ページの接続先、埋め込みの設定、ログイン状態、 次に利用者が取る操作によって変わります。 見慣れた外観だけでは、そのページが本物のサービスに 属すると判断できません。
ブラウザの既定動作は、普通の新規タブへのリンクなど、 古い攻撃経路の一部を閉じました。それでも運営者は 適切な埋め込み制限を選び、利用者はログインや承認の前に アドレスを確かめる必要があります。OWASP の対策ガイドは、SameSite Cookie や追加の確認も対策として 挙げています。一つの習慣や HTTP ヘッダーだけで、 画面を使った欺きすべては防げません。
認証情報を入れる前に本当のアドレスを確認
サイトは重要なページの埋め込み先を制限できる
target=_blank のリンクは通常 opener を渡さない
利用者とサイトの対策
ブラウザとサイトの保護を生かし、操作前にページの接続先を確認しましょう。
- 1
突然のログイン要求は確認する
タブが予期せずログインを求めたら、まずアドレスを 見てください。迷う場合は信頼できるブックマークや 手入力したアドレスから、別にサービスを開きましょう。 - 2
見た目より接続先を確かめる
アドレスバーには、そのタブで実際に開いている サイトが表示されます。似た名前のドメインは 目的のサービスとは別物です。利用できるなら、 正しい接続先に結び付くパスキーも、偽画面での 認証情報の窃取を減らします。 - 3
重要な操作は内容を確認する
アクセスの許可や支払いを承認する前に、どのサイトが 何を求めているか確かめましょう。サイト運営者は 重要なページの埋め込みを制限し、必要に応じて 追加の確認を設けるべきです。 - 4
隔離の効果と限界を理解する
Browser.lol のセッションは、Web コンテンツを手元の ブラウザ環境から分けられます。一方、遠隔ブラウザ内の 悪意あるページが自分の見た目を変えたり、許可された iframe を使ったりすることは防げません。遠隔でも 接続先と求められた操作を確認してください。



