公開:2022.05.23 10:00 | 更新: 2022.08.09 07:27
当ブログでは、これまでもWebアプリケーションのセキュリティ対策についていくつか記事を作成していましたが、今回は、セキュリティヘッダをいくつか紹介させていただきます。
HTTPレスポンスヘッダに出力することでクロスサイトスクリプティングやクリックジャッキングなどの攻撃を軽減するものとなりますが、これまでの対策と合わせて、ぜひ自社サイトのセキュリティを強化しましょう。
関連ブログ(過去記事案内):
セキュアなWebブラウジングを実現するには
Webアプリケーションへの攻撃手法について
Content Security Policyは、悪意のあるコンテンツを読み込むことで実行される攻撃(クロスサイトスクリプティング、クリックジャッキング攻撃など)を受けるリスクを軽減する仕組みとなります。
Webサイト上で動作してもよいスクリプトを指定することができ、これによりクロスサイトスクリプティングなどの脆弱性があったとしても指定されたURL以外からのスクリプトは実行されないため、攻撃範囲を限定的にすることが可能となります。
Strict-Transport-Security(HSTS)は、WebサイトにHSTSが設定されていることをWebブラウザが検知した場合アクセス先として指定されたURLがhttp://で始まるURIだとしても HTTPSでアクセスが行われます。
HTTPSでアクセスした後にHTTPが使われないようにすることで、中間者攻撃と呼ばれる攻撃手法を使って悪意のあるサイトに誘導されるリスクを軽減することが可能となります。
X-Frame-Optionsは、フレーム(<frame>または<iframe>要素) 内でのコンテンツの読み込みを制限することができる仕組みとなります。
フレーム内でコンテンツが表示されないようにすることで、クリックジャッキングと呼ばれる攻撃手法を使って機密情報を盗みとられるリスクを防ぐことができますが、Internet Explorer7では対応していないブラウザとなるため、対策実施する際はブラウザの確認が必要となります。
X-XSS-Protectionヘッダは、ブラウザのXSSフィルター機能を使ってクロスサイト・スクリプティング攻撃のブロックを試みる機能を有効にするヘッダとなります。
また、前述したContent Security Policyでも「Content-Security-Policy: reflected-xss block」のように設定することで、クロスサイト・スクリプティング攻撃のブロックを試みる機能を有効にすることができます。
X-Content-Type-Optionsヘッダは、Content-Typeを指定することにより送信するデータの種類や形式を適用するヘッダとなります。
例えばContent-Typeヘッダにtext/html以外が指定されている場合でも、攻撃者が用意したHTMLとして解釈できるファイルを開くとHTMLとして処理され、JavaScriptが実行されクロスサイトスクリプティング攻撃につながる可能性があります。
「Content-Type-Options: nosniff」を指定することで攻撃を軽減することが可能となります。
簡単にではありますが、セキュリティヘッダをご紹介いたしました。
脆弱性に対する対策として、ご紹介したものが全てではございませんが、自社でWebアプリケーションのセキュリティ対策を行う際の参考になれば幸いです。
注意点としまして、紹介した内容で対策される際は、事前にブラウザとの互換性を確認を行ってください。
また、Webページの動作に影響を与える可能性がありますので十分に動作確認を行ってください。
脆弱性は、日々新たに発見されています。
サイバー攻撃の被害者・加害者にならないためにも、定期的なセキュリティ診断を実施することをお勧めします。
サービス紹介:セキュリティ脆弱性診断
参考サイト
IPA:「クリックジャッキング」に関するレポート
JPCERT:用語辞典
IPA:安全なウェブサイトの作り方 - 1.9 クリックジャッキング
IPA:安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング
LOADING...