パフォーマンスを考慮したプリミティブなTrusted TypesによるClient-Side XSS防御手法

山崎 勇二


現在, Webはインターネットの中でも最も重要なプラットフォームの一つとなっている.その一方で攻撃者が脆弱なWebアプリケーションに悪意のあるスクリプトを挿入し実行させるクロスサイトスクリプティング(XSS)の脆弱性が問題となっており,近年ではクライアント側の機能増加に伴い,XSSの一種であるClient-Side XSSが問題となっている.この問題に対処するために,テイントトラッキングによる検知・防御策が提案されているが,パフォーマンスに影響が発生し,実用的なものが無いのが現状である.本発表では,パフォーマンスと既存のWebアプリケーションへの影響を小さくしたClient-Side XSSの防御を目的とした,安全な文字列であるかを型で検証するTrusted Typesを,プリミティブな型として定義することによる防御手法を提案する.Trusted Typesを用いることにより,JavaScriptを生成する実行シンクは開発者が安全な文字列であると明示した文字列のみを許可するため,Client-Side XSSの脆弱性を塞ぐことが可能となり,このTrusted Typesをプリミティブな型として定義し,JavaScriptソースのパースの段階で割り当てることで,既存のWebアプリケーションに変更を加えずTrusted Typesを適用させる. 評価結果から,既存手法はパフォーマンスへの影響として7〜17%のオーバーヘッドが生じるが,提案手法では約1%に軽減することが出来た.