コンテンツにスキップ

脅威リプレイテストの概要

実際の攻撃を無害なセキュリティテストとして再現することで、Wallarmの脅威リプレイテストは従来のセキュリティテストツールで見逃されがちなアプリケーションやAPIの脆弱性を発見する課題に対応します。

脅威リプレイテストの機能:

  • リアルタイム分析: 実際の攻撃データを使用して、現在積極的に悪用されている、または将来的に悪用される可能性がある脆弱性を識別します。

  • 包括的なテスト: 実際の攻撃の変種生成によって異なる攻撃手法を探り、元の攻撃者が見逃した可能性のある弱点を露呈します。

  • 安全なシミュレーション: 有害なコードとテストリクエストに含まれる機微な認証情報を除去し、テストプロセスがシステムに損害や脅威を与えないようにします。

  • 非本番環境でのテスト: テストアプリケーションやAPIを安全な環境(通常はステージング)でテストし、本番データやシステムの安定性をリスクにさらすことなく行えます。

TRT - Tests tab

動作の仕組み

脅威リプレイテストモジュールはWallarm Cloud上で動作します。初めに、モジュールはWallarmフィルタリングノードが検出しCloudにアップロードした悪意のあるリクエストに関する詳細な情報を収集します。この取得したデータを活用して、モジュールは動的に約100〜150件のテストリクエストを生成します。これらのテストリクエストは悪意のあるリクエストと同じ脆弱性の種類を対象としながらも、異なるペイロードを用いています。

生成された攻撃シミュレーションは元の悪意あるリクエストと同じアドレスに送られます。しかしながら、モジュールはテストリクエストを代替先にリダイレクトする柔軟性を提供し、ステージング環境や開発環境、またはその両方に対応できます。

テストリクエストの応答を解析することで、モジュールは特定の攻撃タイプに対する脆弱性を判定します。発見された脆弱性はWallarm Console UIのVulnerabilitiesセクションに記録されます。さらに、これらの検出結果について通知を受け取るオプションもあります。

以下の図は、モジュールの動作方法を示しています:

ATV scheme

生成されたリクエストにはUser-Agent: Wallarm Threat-Verification (v1.x)ヘッダーが付与され、他のリクエストと区別されます。

テストリクエストのセキュリティ

脅威リプレイテストモジュールは、可能な限り安全な方法でテストリクエストを生成するよう設計されており、以下の主要な特徴が備えられています:

  • 生成されたリクエストの悪意のあるペイロードには実際の悪意ある構文は含まれておらず、攻撃の原理を模倣するためのものです。その結果、リソースに損害を与えません。

  • 再現されたリクエストには、CookieAuthorization: BasicViewstate等の認証ヘッダーが含まれていません。さらに、カスタム認証ヘッダーおよびマスキングルールに従い、必要に応じてその他のヘッダーが調整または削除されます。

以下はWallarmフィルタリングノードにより最初に検出されCloudにアップロードされた実際のようなGETリクエストの例です:

https://example.com/login?user=UNION SELECT username, password

このリクエストから、モジュールは以下の詳細を把握します:

  • 攻撃されたURLはhttps://example.com/loginです

  • 使用された攻撃の種類はSQLiです(UNION SELECT username, passwordペイロードに基づきます)

  • 攻撃されたクエリ文字列パラメータはuserです

  • リクエストに付加された情報として、リクエスト文字列パラメータtoken=IyEvYmluL3NoCgが含まれています(これは、アプリケーションがユーザーを認証するために使用する可能性があります)

このデータを活用して、モジュールは一連のテストリクエストを作成します。これらのリクエストは、様々なペイロードを用いた潜在的なSQLインジェクションの脆弱性に焦点を合わせます。例えば:

https://example.com/login&user=1')+WAITFOR+DELAY+'0 indexpt'+AND+('wlrm'='wlrm
https://example.com/login&user=1+AND+SLEEP(10)--+wlrm
https://example.com/login&user=1);SELECT+PG_SLEEP(10)--
https://example.com/login&user=1'+OR+SLEEP(10)+AND+'wlrm'='wlrm
https://example.com/login&user=1+AND+1=(SELECT+1+FROM+PG_SLEEP(10))
https://example.com/login&user=%23'%23\x22%0a-sleep(10)%23
https://example.com/login&user=1';+WAITFOR+DELAY+'0code:10'--
https://example.com/login&user=1%27%29+OR+SLEEP%280%29+AND+%28%27wlrm%27%3D%27wlrm
https://example.com/login&user=SLEEP(10)/*'XOR(SLEEP(10))OR'|\x22XOR(SLEEP(10))OR\x22*/

制限事項

脅威リプレイテストは以下の場合には利用できません:

  • ブルートフォース

  • 強制ブラウジング

  • BOLA

  • リクエスト処理制限がある攻撃

  • 既に脆弱性が修正された攻撃

  • 検証に十分なデータが含まれていない攻撃

  • 発信元IPでグループ化されたHitsで構成される攻撃

サポートされる攻撃タイプの一覧はsetupドキュメントを参照してください。