コンテンツにスキップ

仮想パッチ

アプリケーションのコード内に存在する重大な脆弱性を修正することや必要なアップデートを迅速に適用することが不可能な場合、これらの脆弱性を悪用する可能性があるエンドポイントへのすべてまたは特定のリクエストをブロックするために仮想パッチを作成することができます。仮想パッチは、許可リストに登録されたIPから発信されたリクエストを除き、モニタリングおよびSafe modeのmodesにおいてもリクエストをブロックします。

Wallarmでは、以下のルールを提供して仮想パッチを作成できます:

  • Create a virtual patchルール ― SQLi、SSTi、RCEなどの既知の攻撃サインのいずれかを選択した部分に含むリクエストをブロックする仮想パッチを作成できます。また、攻撃サインを含まない特定のリクエストをブロックするためにAny requestを選択することも可能です。

  • Create regexp-based attack indicatorルールにおいてVirtual patchオプションを選択 ― 正規表現で記述された独自の攻撃サインやブロック理由(を参照)を含むリクエストをブロックする仮想パッチを作成できます。正規表現に基づくルールの詳細な操作方法はこちらに記載されています。

ルールの作成と適用

  1. Proceed to Wallarm Console:

    • RulesAdd rule or your branch → Add rule.
    • Attacks / Incidents → attack/incident → hit → Rule.
    • API Discovery (if enabled) → your endpoint → Create rule.
  2. Mitigation controls を選択します →

    • Virtual patch または
    • Custom attack detectorVirtual patchオプション付き ― 詳細を参照)
  3. If request is で、ルールを適用する対象の範囲を設定します。

  4. 一般的なCreate a virtual patchルールの場合、特定の攻撃サインを含むリクエストのみをブロックするか、すべてのリクエストをブロックするか(Any request vs. Selected)を設定します。

  5. In this part of request で、ルールを設定したいリクエスト項目を指定します。Wallarmは、選択したリクエストパラメータの値が同一であるリクエストを制限します。

    利用可能なすべての項目はこちらに記載されており、用途に合わせて選択できます。

  6. ルールのコンパイルとフィルタリングノードへのアップロードが完了するまでお待ちください。

ルールの例

特定のエンドポイントに対する特定のリクエストのブロック

例えば、example.com/purchaseエンドポイントでアクセス可能なアプリケーションのオンライン購入セクションが、refreshクエリ文字列パラメータの処理時にクラッシュするとします。バグが修正される前に、クラッシュを引き起こすリクエストをブロックする必要があります。

そのため、以下のスクリーンショットに示すようにCreate a virtual patchルールを設定します:

Virtual patch for any request type

発見済みだがまだ修正されていない脆弱性に対する悪用試行のブロック

例えば、example.comドメインでアクセス可能なアプリケーションに、発見済みだがまだ修正されていない脆弱性があり、アプリケーションのidパラメータがSQLインジェクション攻撃に対して脆弱であるとします。その間、Wallarmフィルタリングノードがモニタリングモードに設定されているにも関わらず、脆弱性の悪用試行を即座にブロックする必要があります。

そのため、以下のスクリーンショットに示すようにCreate a virtual patchルールを設定します:

Virtual patch for a certain request type

不正なX-AUTHENTICATIONヘッダーを含むすべてのリクエストのブロック

Let us say your application accessible at the example.com domain uses the X-AUTHENTICATION header in 32 hex symbols format for user authentication and you want to reject incorrect format tokens.

To do so, set the Create regexp-based attack indicator rule and set it to Virtual patch as displayed on the screenshot, including:

  • Regular expression: ^(.{0,31}|.{33,}|[^0-9a-fA-F]+)$

  • Request part: header - X-AUTHENTICATION

Regex rule first example

仮想パッチのためのAPIコール

仮想パッチを作成するために、Wallarm APIを直接呼び出すことができます。以下の例を参照してください: