Skip to main content
QUICK REVIEW

[論文レビュー] Automatic Web Security Unit Testing: XSS Vulnerability Detection

Mahmoud Mohammadi, Bill Chu|arXiv (Cornell University)|Apr 2, 2018
Web Application Security VulnerabilitiesComputer Science参考文献 11被引用数 17
ひとこと要約

この論文では、Webアプリケーションにおける入力エンコード関数を分析し、悪意あるペイロードを生成してその有効性をテストすることで、クロスサイトスクリプティング(XSS)脆弱性を自動的に検出する手法を提示している。この手法は、静的解析ツールが見逃す0日目のXSS脆弱性を特定し、入力のセキュリティチェックルーチンの動的ユニットテストを通じて、一般的なXSS脆弱性の一つのクラスを効率的にカバーする。

ABSTRACT

Integrating security testing into the workflow of software developers not only can save resources for separate security testing but also reduce the cost of fixing security vulnerabilities by detecting them early in the development cycle. We present an automatic testing approach to detect a common type of Cross Site Scripting (XSS) vulnerability caused by improper encoding of untrusted data. We automatically extract encoding functions used in a web application to sanitize untrusted inputs and then evaluate their effectiveness by automatically generating XSS attack strings. Our evaluations show that this technique can detect 0-day XSS vulnerabilities that cannot be found by static analysis tools. We will also show that our approach can efficiently cover a common type of XSS vulnerability. This approach can be generalized to test for input validation against other types injections such as command line injection.

研究の動機と目的

  • ソフトウェア開発ライフサイクルにセキュリティテストを統合し、コストを削減するとともに脆弱性の検出タイミングを改善すること。
  • Webアプリケーションにおける不適切な入力エンコードによって引き起こされる0日目のXSS脆弱性の検出の課題に対処すること。
  • 不正な入力をセキュリティで洗浄するために使用されるエンコード関数の有効性を評価する自動手法を開発すること。
  • XSS保護のための入力セキュリティチェックロジックに対する効率的で的を射たユニットテストを可能にすること。
  • このアプローチを、コマンドインジェクションなどの他のインジェクション脆弱性の検出へ一般化すること。

提案手法

  • Webアプリケーション内で不正な入力をセキュリティで洗浄するために使用されるエンコード関数を自動的に抽出する。
  • 入力処理の構造と文脈に基づいて、悪意あるXSS攻撃文字列を生成する。
  • 生成されたペイロードがセキュリティチェックを回避できるかどうかをチェックすることで、エンコード関数の有効性を評価する。
  • 自動的で繰り返し可能なセキュリティ検証が可能になるよう、テストプロセスをユニットテストワークフローに統合する。
  • 仕掛けられた入力に対してエンコード関数の実際の動作を評価する動的解析を用いる。
  • ペイロード生成を異なる文脈に適応させることで、この技術を他のインジェクション脆弱性へ一般化する。

実験結果

リサーチクエスチョン

  • RQ1自動ユニットテストは、静的解析ツールが見逃す0日目のXSS脆弱性を検出できるか?
  • RQ2このアプローチは、XSSを防止するために使用される入力エンコード関数の弱みをどれだけ効果的に特定できるか?
  • RQ3この手法は、一般的なXSS脆弱性パターンのための高いコードカバレッジをどの程度達成できるか?
  • RQ4この技術は、XSSを超えた他のインジェクション脆弱性の検出へ拡張可能か?
  • RQ5この手法は、既存のソフトウェア開発ワークフローにどの程度効率的に統合できるか?

主な発見

  • 提案手法は、静的解析ツールが検出できなかった0日目のXSS脆弱性を正常に検出できた。
  • エンコード関数の的を射たユニットテストを通じて、一般的なXSS脆弱性の一つのクラスを高いカバレッジでカバーできた。
  • 攻撃文字列の自動生成が、入力セキュリティチェックロジックの欠陥を効果的に暴露した。
  • この技術は、開発の初期段階で実世界のXSS脆弱性を特定する可能性を示した。
  • ペイロード構築の適応により、この手法はコマンドラインインジェクションなどの他のインジェクション脆弱性へ一般化可能であることが実証された。
  • セキュリティテストをユニットテストワークフローに統合することで、リリース後の脆弱性修正にかかるコストと作業負荷が削減された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。