仮想パッチ¶
アプリケーションのコード内に存在する重大な脆弱性を修正することや必要なアップデートを迅速に適用することが不可能な場合、これらの脆弱性を悪用する可能性があるエンドポイントへのすべてまたは特定のリクエストをブロックするために仮想パッチを作成することができます。仮想パッチは、許可リストに登録されたIPから発信されたリクエストを除き、モニタリングおよびSafe modeのmodesにおいてもリクエストをブロックします。
Wallarmでは、以下のルールを提供して仮想パッチを作成できます:
-
Create a virtual patchルール ― SQLi、SSTi、RCEなどの既知の攻撃サインのいずれかを選択した部分に含むリクエストをブロックする仮想パッチを作成できます。また、攻撃サインを含まない特定のリクエストをブロックするためにAny requestを選択することも可能です。
-
Create regexp-based attack indicatorルールにおいてVirtual patchオプションを選択 ― 正規表現で記述された独自の攻撃サインやブロック理由(例を参照)を含むリクエストをブロックする仮想パッチを作成できます。正規表現に基づくルールの詳細な操作方法はこちらに記載されています。
ルールの作成と適用¶
-
Proceed to Wallarm Console:
- Rules → Add rule or your branch → Add rule.
- Attacks / Incidents → attack/incident → hit → Rule.
- API Discovery (if enabled) → your endpoint → Create rule.
-
Mitigation controls を選択します →
- Virtual patch または
- Custom attack detector (Virtual patchオプション付き ― 詳細を参照)
-
If request is で、ルールを適用する対象の範囲を設定します。
-
一般的なCreate a virtual patchルールの場合、特定の攻撃サインを含むリクエストのみをブロックするか、すべてのリクエストをブロックするか(Any request vs. Selected)を設定します。
-
In this part of request で、ルールを設定したいリクエスト項目を指定します。Wallarmは、選択したリクエストパラメータの値が同一であるリクエストを制限します。
利用可能なすべての項目はこちらに記載されており、用途に合わせて選択できます。
-
ルールのコンパイルとフィルタリングノードへのアップロードが完了するまでお待ちください。
ルールの例¶
特定のエンドポイントに対する特定のリクエストのブロック¶
例えば、example.com/purchase
エンドポイントでアクセス可能なアプリケーションのオンライン購入セクションが、refresh
クエリ文字列パラメータの処理時にクラッシュするとします。バグが修正される前に、クラッシュを引き起こすリクエストをブロックする必要があります。
そのため、以下のスクリーンショットに示すようにCreate a virtual patchルールを設定します:
発見済みだがまだ修正されていない脆弱性に対する悪用試行のブロック¶
例えば、example.com
ドメインでアクセス可能なアプリケーションに、発見済みだがまだ修正されていない脆弱性があり、アプリケーションのid
パラメータがSQLインジェクション攻撃に対して脆弱であるとします。その間、Wallarmフィルタリングノードがモニタリングモードに設定されているにも関わらず、脆弱性の悪用試行を即座にブロックする必要があります。
そのため、以下のスクリーンショットに示すようにCreate a virtual patchルールを設定します:
不正な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
仮想パッチのためのAPIコール¶
仮想パッチを作成するために、Wallarm APIを直接呼び出すことができます。以下の例を参照してください: