IISでクロスサイトスクリプティング セキュリティ対策 HSTS CSP XCTO XSS Filter

Windows

IISでクロスサイトスクリプティング セキュリティ対策についてまとめてみました。

スポンサーリンク

クロスサイトスクリプティング (XSS) とは

クロスサイトスクリプティングとは、Webアプリケーションの脆弱性もしくはそれを利用した攻撃のことです。

 

クロスサイトスクリプティング(XSS)とは、掲示板サイトやTwitterのような、ユーザからの入力内容をWebページに表示するWebアプリケーションにおいて、ウェブサイト(標的サイト)の脆弱性(XSS脆弱性)を利用した攻撃手法を指します。 攻撃者は、入力内容に、スクリプト付のリンクを貼る等の罠を仕掛けます。

クロスサイトスクリプティング(XSS)のセキュリティ対策とは? | セキュリティ対策 | CyberSecurityTIMES
Webアプリケーションへのサイバー攻撃手法として、代表的な攻撃であるクロスサイトスクリプティングですが、対策を行うことで危険を回避することができます。今回はクロスサイトスクリプティングの対策方法について解説していきます。

 

 

クロスサイトスクリプティングを防ぐには、WEBサーバー側でセキュリティヘッダーを付けて対策を行います。

サーバからクライアントのブラウザへ送信されるHTTP レスポンスヘッダには、ブラウザ側のセキュリティ対策のふるまいを指定するヘッダが存在します。

ブラウザの種類により対応状況は異なるため、全てのブラウザに対し、有効ではありませんが、クロスサイトスクリプティングなどの脆弱性が存在した場合に、攻撃を回避または軽減できる可能性があります。

具体的には、次のヘッダが設定するとよいでしょう。

Strict-Transport-Security (HSTS) とは

HTTP の Strict-Transport-Security レスポンスヘッダー (しばしば HSTS と略されます) は、ウェブサイトがブラウザーに HTTP の代わりに HTTPS を用いて通信を行うよう指示するためのものです。

 

IIS で HSTS (HTTP Strict Transport Security) を有効にする方法は、以下の通りです。

web.configに以下を追加します。

 

IISマネージャーのHTTPレスポンスヘッダーGUIを使う方法は、以下の通りです。

IIS で HSTS (HTTP Strict Transport Security) を有効にする

 

Content-Security-Policy (CSP) とは

Content Security Policyは、スクリプト実行に関するセキュリティポリシーです。

 

サーバー管理者が CSP を利用する場合、実行を許可するスクリプトの正しいドメインをブラウザーに向けて指定することにより、 XSS の発生する箇所を削減・根絶することができます。 CSP をサポートするブラウザーは、サーバーから指定された許可リストに載っているドメインのスクリプトのみ実行し、他のスクリプトはすべて無視します (インラインスクリプトや HTML 属性値のイベントハンドラも無視する対象に含まれます)。

コンテンツセキュリティポリシー (CSP)
コンテンツセキュリティポリシー (CSP) は、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などのような、特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤーです。これらの攻撃はデータの窃取からサイトの改ざん、マルウェアの拡散に至るまで、様々な目的に用いられます。

 

 

IIS で Content-Security-Policy (CSP) を設定する方法は、以下の通りです。

サイト管理者が、すべてのコンテンツをサイト自身のドメイン (サブドメインを除く) から取得させたい場合

web.configに以下を追加します。

https://content-security-policy.com/

 

X-Content-Type-Options:nosniff (XCTO) とは

コンテンツ内容を詐称し、XSSなどの攻撃が行われるリスクを防止します。

ブラウザはHTTP のレスポンスの Content-Type ヘッダに応じて、コンテンツをどのように処理するか決めますが、IE7のような古いブラウザではこのヘッダを無視するときがあります。

 

サーバから Content-Type: text/plain (ただのテキストファイル) として送られてきているにも関わらず、IE7 からアクセスすると、HTML として解釈されてしまいます。

text/plain に限らず、 image/jpeg などの画像の Content-Type が指定されているときにも起きます。

この挙動のことは、Content-Type sniffing と呼ばれています。

この挙動は Content-Type が間違っていてもコンテンツを正しく表示したい、という意図のもとに実装されているのですが、ウェブアプリケーションの脆弱性につながる恐れがある挙動としても知られており、対策が必要です。

 

 

この自動判別の挙動は IE8以降のブラウザでは

X-Content-Type-Options: nosniff

というヘッダを HTTP のレスポンスに入れることで無効にできます。

web.configに以下を追加します。

 

X-XSS-Protection (XSS Filter) とは

HTTP の X-XSS-Protection レスポンスヘッダーは Internet Explorer, Chrome, Safari の機能で、反射したクロスサイトスクリプティング (XSS) 攻撃を検出したときに、ページの読み込みを停止するためのものです。

X-XSS-Protection
HTTP の X-XSS-Protection レスポンスヘッダーは Internet Explorer, Chrome, Safari の機能で、反射したクロスサイトスクリプティング (XSS) 攻撃を検出したときに、ページの読み込みを停止するためのものです。強い Content-Security-Policy をサ...

 

 

IIS で X-XSS-Protection (XSS Filter) を設定する方法は、以下の通りです。

web.configに以下を追加します。

 

 

Windows
スポンサーリンク
スポンサーリンク
うらしたをフォローする
スポンサーリンク
urashita.com 浦下.com (ウラシタドットコム)

コメント

タイトルとURLをコピーしました