セキュリティ脆弱性が発見された際、正規のパッチ(修正プログラム)を適用するには「動作検証」や「システム停止の調整」が必要となり、どうしてもタイムラグが発生してしまいます。その隙を狙う攻撃からシステムを守る防御手法が「バーチャルパッチ(仮想パッチ)」です。

今回は、バーチャルパッチの仕組みや導入する大きな利点、そしてWAFなどを活用した具体的設定例について分かりやすく解説します。
バーチャルパッチ(仮想パッチ)とは?
バーチャルパッチとは、WebアプリケーションやOS本体のソースコードに直接修正を加えるのではなく、前段に位置する WAF(Web Application Firewall) や IPS(侵入防止システム) などのネットワーク層・セキュリティ層で攻撃リクエストを検知・遮断し、擬似的に脆弱性を防護する技術のことです。
アプリ本体には一切手を加えずに、外部からの不正トラフィックだけをピンポイントでブロックするため「仮想のパッチ」と呼ばれます。
バーチャルパッチを導入する4つの大きな利点
-
1. システム無停止で即座に防御できる 正規パッチの適用にはサーバー再起動やサービスの停止が伴うことが多いですが、バーチャルパッチならWAFやIPSのルール更新のみで適用できるため、サービスを止める必要がありません。
-
2. 事前検証(テスト)の時間を確保できる 正規パッチを本番環境へ即座に適用すると、既存アプリアプリとの互換性問題(動作不具合)が起きるリスクがあります。バーチャルパッチで一時的に防いでおくことで、本番パッチのテスト時間をしっかり稼ぐことができます。
-
3. ゼロデイ攻撃の「タイムラグ」を埋められる 脆弱性が公開されてからベンダーが公式パッチを配布するまで、あるいは自社で適用を完了するまでの「セキュリティ空白期間」を即座に埋めることができます。
-
4. サポート終了(EOL)システムの保護 OSやミドルウェアのサポートが終了し、公式パッチが二度と提供されないレガシーシステムに対しても、ネットワークレベルで攻撃を防ぐ代替手段として有効です。
バーチャルパッチの具体例と設定例
バーチャルパッチは主に、クラウドWAF(AWS WAF、Cloudflare等)のカスタムルールや、ホスト型IPS(Trend Micro Cloud One Workload Security 等)の侵入防止モジュールで実装されます。
ここでは、WAFを用いたバーチャルパッチの具体的設定例を紹介します。
例:ディレクトリトラバーサル攻撃(../)を防ぐAWS WAF設定(JSON)
アプリケーションの改修が終わるまでの間、URIパスに親ディレクトリを辿るような文字列(../)が含まれているリクエストを即座にブロックするルール例です。
JSON
{
"Name": "VirtualPatch-PathTraversal-Block",
"Priority": 0,
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "VirtualPatchPathTraversal"
},
"Statement": {
"ByteMatchStatement": {
"FieldToMatch": {
"UriPath": {}
},
"PositionalConstraint": "CONTAINS",
"SearchString": "../",
"TextTransformations": [
{
"Priority": 0,
"Type": "URL_DECODE"
}
]
}
}
}
-
設定のポイント:
-
TextTransformationsでURL_DECODEを指定し、エンコードして潜り込もうとする攻撃パターン(%2e%2e%2fなど)を解読した上で判定します。 -
条件に合致したリクエストのみを
Blockし、アプリ側にリクエストが届く前に通信を遮断します。
-
また、Cloud One Workload Security などの製品では、サーバーをスキャンして自動的に必要なバーチャルパッチシグネチャを割り当て・適用してくれる「自動適用モード」も広く活用されています。
運用時の注意点
非常に便利なバーチャルパッチですが、運用時には以下の点に留意する必要があります。
-
あくまで「応急処置」である バーチャルパッチは入口で攻撃を止めているだけで、根本的な脆弱性が消えたわけではありません。最終的には正規パッチを適用することが推奨されます。
-
誤検知(フォルス・ポジティブ)のリスク ルールが厳しすぎると、正常なユーザーの通信までブロックしてしまう可能性があるため、最初は「ログ記録のみ(Countモード)」でテスト運用を行うのが安全です。
バーチャルパッチを有効活用することで、運用負荷やシステム停止リスクを最小限に抑えつつ、急な脆弱性発表にも迅速に対応できるようになります。「システムを簡単には止められない」現場にこそ、必須の防御アプローチです。

