Shikata Ga Nai

Private? There is no such things.

第18回 クリックジャッキング:目に見えないボタンをチェックする

Hello there, ('ω')ノ

クリックジャッキングが起こる仕組み

基本的な手口は:

  • 自社システムの画面をiframeで別のサイト内に表示させ
  • その上に透明なボタンを重ねる

これにより「本物を見せつつ、操作は偽物」という状態を作ります。


実際のチェック手順① X-Frame-Optionsを確認する

まず一番基本的な確認方法です。

① 対象システムをブラウザで開く

② F12キー → Networkタブ → 任意のリクエストを選択

③ Response Headers を確認

✅ チェック項目:

  • X-Frame-Options: SAMEORIGIN
  • Content-Security-Policy: frame-ancestors 'self'

これらが設定されていない場合、クリックジャッキングが成立するリスクがあります。


実際のチェック手順② テスト用HTMLを作って試す

以下のようなテストページをローカルで用意します。

<iframe src="https://intra.example.co.jp/" width="800" height="600"></iframe>

このHTMLを開いたときに社内システムがそのままiframe内で表示されるかどうか確認します。

✅ 表示される場合 → クリックジャッキングのリスクあり ✅ 表示されずエラーになる場合 → 対策済み


チェックポイントまとめ

  • X-Frame-Options ヘッダーが設定されているか
  • Content-Security-Policy (CSP) ヘッダーでframe-ancestors指定があるか
  • 実際にiframe内表示テストをしてみたか

社内向けよくある対象例

  • 勤怠システム管理画面
  • 経費申請の承認画面
  • 社内ポータルの設定画面

こうした重要操作を伴う画面ほど、クリックジャッキング対策が必要です。


チェックリストまとめ

  • [ ] X-Frame-Optionsが設定されているか確認したか?
  • [ ] CSPのframe-ancestors設定を確認したか?
  • [ ] テスト用HTMLでiframe表示確認を行ったか?
  • [ ] 管理者や開発担当に結果を報告したか?

注意事項

  • 本番環境を使う場合は必ず事前許可を取ること
  • iframeテストは自己管理できるPC内のみで行うこと

Best regards, (^^ゞ