仮想パッチ¶
アプリケーションのコード内の重大な脆弱性を修正したり、必要な更新を迅速にインストールしたりすることが不可能な場合には、これらの脆弱性を悪用され得るエンドポイントへの全リクエストまたは特定のリクエストをブロックする仮想パッチを作成できます。仮想パッチは、allowlisted IPからのものを除き、monitoringおよびsafe blockingモードでもリクエストをブロックします。
仮想パッチを作成するために、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 と Selected)。
-
In this part of requestで、ルールを設定したいリクエストのポイントを指定します。Wallarmは、選択したリクエストパラメータに同じ値を持つリクエストを制限します。
利用可能なポイントはこちらに記載されています。ユースケースに合致するものを選択できます。
ルール例¶
指定エンドポイントに対する特定リクエストのブロック¶
例えば、example.com/purchase
エンドポイントでアクセスできるアプリケーションのオンライン購入セクションが、クエリ文字列パラメータrefresh
の処理時にクラッシュするとします。不具合が修正されるまで、クラッシュにつながるリクエストをブロックする必要があります。
そのためには、スクリーンショットのとおりにCreate a virtual patchルールを設定します。
検出済みだが未修正の脆弱性に対する悪用試行のブロック¶
例えば、example.com
ドメインで公開されているアプリケーションに未修正の脆弱性が検出されたとします。アプリケーションのid
パラメータがSQLインジェクション攻撃に脆弱です。一方で、Wallarmフィルタリングノードはmonitoringモードに設定されていますが、脆弱性の悪用試行を直ちにブロックする必要があります。
そのためには、スクリーンショットのとおりに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を直接呼び出すことができます。以下の例をご参照ください。