F5 GLOSSARY

クロスサイトスクリプティング(XSS , CSS)

クロスサイト スクリプティングとは、Webアプリケーションの脆弱性を利用した攻撃手法の1つです。CSSまたはXSSと略記されますが、CSSは「Cascading Style Sheets」の略語として使用されることが多いため、XSSと表記されるのが一般的です。

XSSで利用されるのは、ユーザーからの入力を元に、動的にHTMLページを生成するタイプのWebアプリケーションです。入力された文字列にJavaScriptの記述が含まれていた場合、入力文字列をそのままの状態で組み込んでHTMLページを生成すると、Webブラウザ上でそのスクリプトが実行されることになります。このようなWebアプリケーションの脆弱性を利用し、攻撃を行います。

XSSを行う場合には、まず攻撃者が攻撃用のWebページを作成し、それを自分のサイトに掲載します。このページには、脆弱性を持つサイトにアクセスしてJavaScriptを実行させる、不正なスクリプトを仕組んでおきます。その上で、インターネット上のユーザーをこのページに誘導します。例えば利用対象となる脆弱サイトのふりをして、メールやSNSで誘導するといった手法が考えられます。ユーザーが攻撃者のページにアクセスすると、ユーザーは脆弱サイトへと飛ばされ、そこで攻撃者が仕組んだJavaScriptが実行されます。

この攻撃の要は「スクリプトからアクセスできる情報の範囲はそのスクリプトを含むページ内に限られる」という、Webブラウザの「クロスドメイン制限」を回避している点にあります。クロスドメイン制限は「悪意のあるスクリプトが他サイトの認証クッキー等を不正に取得する」ことを防止するためのセキュリティ上の制約ですが、脆弱性を持つサイトでスクリプトを実行できれば、この制約は意味がなくなります。これによって攻撃者は、脆弱サイトのクッキー情報等を不正に入手し、正規ユーザーのセッションを乗っ取れるようになります。

XSSは、入力文字列の適切なサニタイズ(攻撃に使用される文字列を無効化すること)で回避できますが、全てのWebページでこの対応を行うのは大変です。この問題の解決手段として有効なのが、アプリケーション ファイアウォールの活用です。アプリケーション ファイアウォールはアプリケーションレベルの通信を監視し、攻撃とみなされる通信を遮断することが可能です。この種の機能を提供する製品としては「F5 BIG-IP」が挙げられます。


< Return to the glossary