クリックジャグリングというサイバー攻撃を聞いてパッと説明できないなと思ったので調べた
クリックジャグリング攻撃とは、ユーザーを視覚的にだまして正常に見えるウェブページ上のコンテンツをクリックさせ、別のウェブページのコンテンツをクリックさせる攻撃
具体的にはボタンやリンクなどを透明で見えない状態にして、通常のWebページの上にかぶせてしまうというもの
X-Frame-Optionsによる対策
X-Frame-Options は HTTP のレスポンスヘッダーで、ブラウザーがページを <frame>, <iframe>, <embed>, <object>
の中に表示することを許可するかどうかを示すために使用する
X-Frame-Options - HTTP | MDNより
これによりクリックジャグリング攻撃を防ぐ
Content Security Policyによる対策
Content Security Policy(CSP)を利用すると、自身のサイトで動作しても良いスクリプトを指定することができる
これにより指定されたURL以外からのスクリプトは実行されないため、外部サイト上にあるスクリプトは実行されない
例
X-Content-Security-Policy: allow 'self'; frame-ancestors *.ipa.go.jp *.meti.go.jp
上記の例は、スクリプトや画像ファイルの表示等は自身のサイトで用意しているもののみに限定し、frame要やiframe要素で読み込んで良いサイトを自身のサイト以外にipa.go.jpドメインのサイトおよびmeti.co.jpドメインのサイトに限定する設定
CSPに関してはいろいろありそうなので、今度もう少し掘り下げたい
Content Security Policy Level 3におけるXSS対策 - pixiv inside
対策すべきウェブサイト
IPAによると
- 登録制のサイトであること
- サイト上でユーザーの情報を追加・編集・投稿・削除できるであること
特に以下のページはX-Frame-Optionsヘッダを出すべき
- ユーザ情報の編集を行うページ
- ユーザが投稿を行うページ
- ユーザが退会等を行うページ