web-dev-qa-db-ja.com

私のウェブサイトはどのような状況でクリックジャッキングに対して脆弱ですか?

私が読んだ例のほとんどは、悪意のあるWebサイトから始まります。悪意のないWebサイトを作成しているとしましょう。 Webサイトはいつクリックジャッキングに対して脆弱になりますか?これは、XSSの脆弱性がなくても、サーバーが危険にさらされていなくても発生しますか?もしそうなら、どうですか?

デフォルトでは、ウェブサーバーのデフォルトによっては、新しいウェブサイトはおそらくクリックジャッキングに対して脆弱です。

それに対する防御のために、 OWASP Clickjacking Defense Cheat Sheet が推奨するように、HTTP-Response-Headersを設定する必要があります。別の貴重でより簡潔なリソースは Wikipedia

埋め込みを許可しない:すべてのiframeなどが空白になるか、ブラウザ固有のエラーページが含まれます。

Content-Security-Policy:frame-ancestors 'none'

X-Frame-Options:deny

自分のコンテンツの埋め込みのみを許可:

コンテンツセキュリティポリシー:フレーム祖先「自己」

X-Frame-Options:sameorigin

特定のオリジンにこのコンテンツの埋め込みを許可する:

Content-Security-Policy:frame-ancestors www.example.com www.wikipedia.org

X-Frame-Options:ALLOW-FROM www.example.com www.wikipedia.org

攻撃者は脆弱なWebサイトへの攻撃にこの悪意のあるWebサイトを要求するため、ほとんどの例は悪意のあるWebサイトで始まります。被害者.orgのiframeを含む独自のevil.com Webサイトを作成するだけです。

攻撃者がこれを阻止できない限り、victim.orgはクリックジャッキングに対して脆弱なままです。

私が読んだ例のほとんどは、悪意のあるWebサイトから始まります。

クリックジャッキング攻撃では、悪意のあるWebサイトがユーザーをだまして、ターゲットWebサイト上の何かをクリックします。ターゲットWebサイトは、クリックジャッキングに対して脆弱です。

悪意のないWebサイトを作成しているとしましょう。 Webサイトはいつクリックジャッキングに対して脆弱になりますか?

認証が必要です。クリックジャッキングは、誰かをだまして何かをクリックさせます。要点は、被害者が標的のウェブサイトにログインしていることです。クリックで実行されるアクションは、許可されたユーザーのみが使用できます。それ以外の場合、攻撃者はサイトにアクセスして自分でクリックする可能性があります。

効果的なアクションを一度に実行するクリックターゲットが必要です。被害者は1回または2回クリックするようにだまされる可能性がありますが、より複雑なユーザー操作は実行が困難です。

最も一般的なクリックジャッキングの形式は、ターゲットサイトをiframeにレンダリングすることで機能します。これは 一部のHTTPヘッダー で防ぐことができます。ただし、クリックジャッキングは、ウィンドウやサイトをすばやく切り替えることでも実行できます。したがって、サイトがiframeに読み込まれないようにしても、必ずしもすべてのクリックジャッキング攻撃がブロックされるわけではありません。

これは、XSSの脆弱性がなくても、サーバーが危険にさらされていなくても発生しますか?もしそうなら、どうですか?

はい。あなたのサイトは悪意のあるサイトの前の透明なiframeに読み込まれます。悪意のあるサイトはユーザーをだましてどこかにクリックし(「ここをクリックしてかわいい猫の写真を表示するには」)、ユーザーが知らないうちにターゲットサイトをクリックします。

実際のクリックジャッキング攻撃はまれですが、誰もが常にログインしている単純なクリックターゲットがある注目度の高いサイトを除きます。したがって、Facebookのいいね!やTwitterのリツイートは、クリックジャッキング攻撃の一般的なターゲットです。

1
Sjoerd