Google Cloud Armor WAF ルールのチューニング

事前構成されたルール

Google Cloud Armor の事前構成済みのルールは、オープンソースの業界標準から集められた多数のシグネチャを持つ複雑なウェブ アプリケーション ファイアウォール(WAF)ルールです。Google はこれらのルールをそのまま提供します。このルールにより、Google Cloud Armor では、各シグネチャを手動で定義する必要がなく、便利に命名されたルールを参照することで、数十の異なるトラフィック シグネチャを評価できます。

次の表は、Google Cloud Armor のセキュリティ ポリシーで使用できる事前構成済みの WAF ルールの包括的なリストを示しています。ルールのソースは ModSecurity Core Rule Set 3.0.2(CRS)です。

Google Cloud Armor ルール名 ModSecurity ルール名 現在のステータス
sqli-stable SQL インジェクション sqli-canary と同期
sqli-canary SQL インジェクション 最新
xss-stable クロスサイト スクリプティング xss-canary と同期
xss-canary クロスサイト スクリプティング 最新
lfi-stable ローカル ファイル インクルード lfi-canary と同期
lfi-canary ローカル ファイル インクルード 最新
rfi-stable リモート ファイル インクルード rfi-canary と同期
rfi-canary リモート ファイル インクルード 最新
rce-stable リモートコード実行 rce-canary と同期
rce-canary リモートコード実行 最新
methodenforcement-stable メソッドの適用(公開プレビュー) methodenforcement-canary と同期
methodenforcement-canary メソッドの適用(公開プレビュー) 最新
scannerdetection-stable スキャナ検出 scannerdetection-canary と同期
scannerdetection-canary スキャナ検出 最新
protocolattack-stable プロトコル攻撃 protocolattack-canary と同期
protocolattack-canary プロトコル攻撃 最新
php-stable PHP インジェクション攻撃 php-canary と同期
php-canary PHP インジェクション攻撃 最新
sessionfixation-stable セッション修正攻撃 sessionfixation-canary と同期
sessionfixation-canary セッション修正攻撃 最新

事前構成済みの各ルールは複数のシグネチャで構成されます。受信リクエストは、事前構成されたルールに対して評価されます。事前構成済みルールに関連付けられているシグネチャのいずれかとリクエストが一致する場合、そのリクエストは事前構成済みルールと一致します。evaluatePreconfiguredExpr() コマンドが値 true を返すと、マッチングが行われます。

事前構成済みのルールが必要以上のトラフィックと一致すると判断した場合、または許可する必要があるトラフィックをルールがブロックしている場合は、ルールを調整して、ノイズの多いまたは不要なシグネチャを無効にできます。特定の事前構成済みのルールでシグネチャを無効にするには、不要なシグネチャの ID のリストを evaluatePreconfiguredExpr() コマンドで指定します。

次の例では、事前構成された xss-stable WAF ルールから 2 つの CRS ルール ID を除外しています。

evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v020901-id981136-xss', 'owasp-crs-v020901-id981138-xss'])

上記の例は、カスタムルール言語の式です。一般的な構文は次のとおりです。

evaluatePreconfiguredExpr(RULE, ['SIGNATURE1', 'SIGNATURE2', 'SIGNATURE3'])

事前構成済みの ModSecurity ルール

事前構成ルールの感度レベルは、ModSecurity のパラノアレベルに対応します。感度レベルが低いほど、信頼度が高いシグネチャとなり、偽陽性が生じる可能性は低くなります。感度レベルが高いほど、セキュリティは強化されますが、誤検出が生じるリスクが高まります。

SQL インジェクション(SQLi)

シグネチャ ID(CRS ルール ID) 感度レベル 説明
owasp-crs-v030001-id942140-sqli 1 SQL インジェクション攻撃: 一般的な DB 名が検出されました
owasp-crs-v030001-id942160-sqli 1 sleep() または benchmark() を使用してブラインド SQLi テストを検出します
owasp-crs-v030001-id942170-sqli 1 条件付きクエリも含めて SQL ベンチマークとスリープ インジェクション試行を検出します
owasp-crs-v030001-id942190-sqli 1 MSSQL コード実行と情報収集の試行を検出します
owasp-crs-v030001-id942220-sqli 1 整数オーバーフロー攻撃を探します
owasp-crs-v030001-id942230-sqli 1 条件付き SQL インジェクション試行を検出します
owasp-crs-v030001-id942240-sqli 1 MySQL 文字セットスイッチと MSSQL DoS 試行を検出します
owasp-crs-v030001-id942250-sqli 1 一致を検出します
owasp-crs-v030001-id942270-sqli 1 基本的な SQL インジェクションと MySql への一般的な攻撃文字列を探します
owasp-crs-v030001-id942280-sqli 1 Postgres pg_sleep インジェクションを検出します
owasp-crs-v030001-id942290-sqli 1 基本的な MongoDB SQL インジェクション試行を探します
owasp-crs-v030001-id942320-sqli 1 MySQL および PostgreSQL ストアド プロシージャ / 関数インジェクションを検出します
owasp-crs-v030001-id942350-sqli 1 MySQL UDF インジェクションとその他のデータ / 構造操作試行を検出します
owasp-crs-v030001-id942360-sqli 1 連結された基本的な SQL インジェクションと SQLLFI 試行を検出します
owasp-crs-v030001-id942110-sqli 2 SQL インジェクション攻撃: 一般的なインジェクション テストが検出されました
owasp-crs-v030001-id942120-sqli 2 SQL インジェクション攻撃: SQL 演算子が検出されました
owasp-crs-v030001-id942150-sqli 2 SQL インジェクション攻撃
owasp-crs-v030001-id942180-sqli 2 基本的な SQL 認証のバイパスの試行 1/3 を検出します
owasp-crs-v030001-id942200-sqli 2 MySQL コメント / スペース難読化インジェクションとバッククォートの終了を検出します
owasp-crs-v030001-id942210-sqli 2 チェーンされた SQL インジェクション試行 1/2 を検出します
owasp-crs-v030001-id942260-sqli 2 基本的な SQL 認証のバイパスの試行 2/3 を検出します
owasp-crs-v030001-id942300-sqli 2 MySQL のコメントを検出します
owasp-crs-v030001-id942310-sqli 2 チェーンされた SQL インジェクション試行 2/2 を検出します
owasp-crs-v030001-id942330-sqli 2 従来の SQL インジェクション プローブ 1/2 を検出します
owasp-crs-v030001-id942340-sqli 2 基本的な SQL 認証のバイパス試行 3/3 を検出します
owasp-crs-v030001-id942380-sqli 2 SQL インジェクション攻撃
owasp-crs-v030001-id942390-sqli 2 SQL インジェクション攻撃
owasp-crs-v030001-id942400-sqli 2 SQL インジェクション攻撃
owasp-crs-v030001-id942410-sqli 2 SQL インジェクション攻撃
owasp-crs-v030001-id942430-sqli 2 制限された SQL 文字の異常検出(引数): 特殊文字数を超えました(12)
owasp-crs-v030001-id942440-sqli 2 SQL コメント シーケンスが検出されました
owasp-crs-v030001-id942450-sqli 2 SQL 16 進数エンコードが識別されました
owasp-crs-v030001-id942251-sqli 3 HAVING インジェクションを検出します
owasp-crs-v030001-id942420-sqli 3 制限された SQL 文字の異常検出(Cookie): 特殊文字数を超過しました(8)
owasp-crs-v030001-id942431-sqli 3 制限された SQL 文字の異常検出(引数): 特殊文字数を超過しました(6)
owasp-crs-v030001-id942460-sqli 3 メタ文字の異常検出アラート - 反復する非単語文字
owasp-crs-v030001-id942421-sqli 4 制限された SQL 文字の異常検出(Cookie): 特殊文字数を超過しました(3)
owasp-crs-v030001-id942432-sqli 4 制限された SQL 文字の異常検出(引数): 特殊文字数を超過しました(2)


特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

SQLi 感度レベル 1


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942110-sqli',
  'owasp-crs-v030001-id942120-sqli',
  'owasp-crs-v030001-id942150-sqli',
  'owasp-crs-v030001-id942180-sqli',
  'owasp-crs-v030001-id942200-sqli',
  'owasp-crs-v030001-id942210-sqli',
  'owasp-crs-v030001-id942260-sqli',
  'owasp-crs-v030001-id942300-sqli',
  'owasp-crs-v030001-id942310-sqli',
  'owasp-crs-v030001-id942330-sqli',
  'owasp-crs-v030001-id942340-sqli',
  'owasp-crs-v030001-id942380-sqli',
  'owasp-crs-v030001-id942390-sqli',
  'owasp-crs-v030001-id942400-sqli',
  'owasp-crs-v030001-id942410-sqli',
  'owasp-crs-v030001-id942430-sqli',
  'owasp-crs-v030001-id942440-sqli',
  'owasp-crs-v030001-id942450-sqli',
  'owasp-crs-v030001-id942251-sqli',
  'owasp-crs-v030001-id942420-sqli',
  'owasp-crs-v030001-id942431-sqli',
  'owasp-crs-v030001-id942460-sqli',
  'owasp-crs-v030001-id942421-sqli',
  'owasp-crs-v030001-id942432-sqli']
)
          
SQLi 感度レベル 2


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
SQLi 感度レベル 3


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942421-sqli',
         'owasp-crs-v030001-id942432-sqli']
         )
SQLi 感度レベル 4


evaluatePreconfiguredExpr('sqli-stable')

クロスサイト スクリプティング(XSS)

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id941110-xss 1 XSS フィルタ - カテゴリ 1: スクリプトタグ ベクター
owasp-crs-v030001-id941120-xss 1 XSS フィルタ - カテゴリ 2: イベント ハンドラー ベクター
owasp-crs-v030001-id941130-xss 1 XSS フィルタ - カテゴリ 3: 属性ベクター
owasp-crs-v030001-id941140-xss 1 XSS フィルタ - カテゴリ 4: JavaScript URI ベクター
owasp-crs-v030001-id941160-xss 1 NoScript XSS InjectionChecker: HTML インジェクション
owasp-crs-v030001-id941170-xss 1 NoScript XSS InjectionChecker: 属性インジェクション
owasp-crs-v030001-id941180-xss 1 ノード検証コントロールの拒否リスト キーワード
owasp-crs-v030001-id941190-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941200-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941210-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941220-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941230-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941240-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941250-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941260-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941270-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941280-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941290-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941300-xss 1 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941310-xss 1 US-ASCII 非整形式エンコード XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941350-xss 1 UTF-7 エンコード IE XSS - 攻撃が検出されました
owasp-crs-v030001-id941150-xss 2 XSS フィルタ - カテゴリ 5: 許可されていない HTML 属性
owasp-crs-v030001-id941320-xss 2 可能性のある XSS 攻撃が検出されました - HTML タグハンドラー
owasp-crs-v030001-id941330-xss 2 IE XSS フィルタ - 攻撃が検出されました
owasp-crs-v030001-id941340-xss 2 IE XSS フィルタ - 攻撃が検出されました


特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

XSS 感度レベル 1


evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v030001-id941150-xss',
  'owasp-crs-v030001-id941320-xss',
  'owasp-crs-v030001-id941330-xss',
  'owasp-crs-v030001-id941340-xss'])
          


XSS のシグネチャはすべて感度レベル 2 未満です。次の構成はその他の感度レベル用に機能します。

XSS 感度レベル 2 / 3 / 4


evaluatePreconfiguredExpr('xss-stable')

ローカル ファイル インクルード(LFI)

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id930100-lfi 1 パス トラバーサル攻撃(/../)
owasp-crs-v030001-id930110-lfi 1 パス トラバーサル攻撃(/../)
owasp-crs-v030001-id930120-lfi 1 OS ファイル アクセス試行
owasp-crs-v030001-id930130-lfi 1 制限付きファイルのアクセス試行


LFI のシグネチャはすべて感度レベル 1 です。次の構成は、すべての感度レベルで機能します。

LFI 感度レベル 1 / 2 / 3 / 4


evaluatePreconfiguredExpr('lfi-canary')

リモートコード実行(RCE)

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id932100-rce 1 UNIX コマンド インジェクション
owasp-crs-v030001-id932105-rce 1 UNIX コマンド インジェクション
owasp-crs-v030001-id932110-rce 1 Windows コマンド インジェクション
owasp-crs-v030001-id932115-rce 1 Windows コマンド インジェクション
owasp-crs-v030001-id932120-rce 1 Windows PowerShell コマンドが見つかりました
owasp-crs-v030001-id932130-rce 1 Unix シェル式が見つかりました
owasp-crs-v030001-id932140-rce 1 Windows の FOR/IF コマンドが見つかりました
owasp-crs-v030001-id932150-rce 1 UNIX コマンドの直接実行
owasp-crs-v030001-id932160-rce 1 UNIX シェルコードが見つかりました
owasp-crs-v030001-id932170-rce 1 Shellshock(CVE-2014-6271)
owasp-crs-v030001-id932171-rce 1 Shellshock(CVE-2014-6271)


RCE のシグネチャはすべて感度レベル 1 です。次の構成は、すべての感度レベルで機能します。

RCE 感度レベル 1 / 2 / 3 / 4


evaluatePreconfiguredExpr('rce-canary')

リモート ファイル インクルード(RFI)

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id931100-rfi 1 URL パラメータ(IP アドレスを使用する)
owasp-crs-v030001-id931110-rfi 1 一般的な RFI 脆弱性のあるパラメータ名(URL ペイロードとともに使用される)
owasp-crs-v030001-id931120-rfi 1 URL ペイロード(末尾につく疑問符文字(?)とともに使用される)
owasp-crs-v030001-id931130-rfi 2 オフドメインのリファレンス / リンク


特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

RFI 感度レベル 1


evaluatePreconfiguredExpr('rfi-canary', ['owasp-crs-v030001-id931130-rfi'])

RFI のシグネチャはすべて感度レベル 2 未満です。次の構成はその他の感度レベル用に機能します。

RFI 感度レベル 2 / 3 / 4


evaluatePreconfiguredExpr('rfi-canary')

メソッドの適用

このルールは公開プレビューです。

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id911100-methodenforcement 1 ポリシーによって許可されていないメソッド

メソッド適用のシグネチャはすべて感度レベル 2 未満です。次の構成はその他の感度レベル用に機能します。

メソッド適用の感度レベル 2 / 3 / 4


evaluatePreconfiguredExpr('methodenforcement-canary')

スキャナ検出

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id913100-scannerdetection 1 セキュリティ スキャナに関連付けられているユーザー エージェントが見つかりました
owasp-crs-v030001-id913110-scannerdetection 1 セキュリティ スキャナに関連付けられているリクエスト ヘッダーが見つかりました
owasp-crs-v030001-id913120-scannerdetection 1 セキュリティ スキャナに関連付けられているリクエスト ファイル名または引数が見つかりました
owasp-crs-v030001-id913101-scannerdetection 2 スクリプトまたは汎用の HTTP クライアントに関連付けられたユーザー エージェントが見つかりました
owasp-crs-v030001-id913102-scannerdetection 2 ウェブクローラまたはボットに関連付けられたユーザー エージェントが見つかりました

特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

スキャナ検出の感度レベル 1


evaluatePreconfiguredExpr('scannerdetection-stable',
  ['owasp-crs-v030001-id913101-scannerdetection',
  'owasp-crs-v030001-id913102-scannerdetection']
)
          
スキャナ検出の感度レベル 2


evaluatePreconfiguredExpr('scannerdetection-stable')
          

プロトコル攻撃

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id921100-protocolattack 1 HTTP リクエスト スマグリング攻撃
owasp-crs-v030001-id921110-protocolattack 1 HTTP リクエスト スマグリング攻撃
owasp-crs-v030001-id921120-protocolattack 1 HTTP レスポンス分割攻撃
owasp-crs-v030001-id921130-protocolattack 1 HTTP レスポンス分割攻撃
owasp-crs-v030001-id921140-protocolattack 1 ヘッダーを介した HTTP ヘッダー インジェクション攻撃
owasp-crs-v030001-id921150-protocolattack 1 ペイロードを介した HTTP ヘッダー インジェクション攻撃(CR/LF が検出されました)
owasp-crs-v030001-id921160-protocolattack 1 ペイロードを介した HTTP ヘッダー インジェクション攻撃(CR/LF とヘッダー名が検出されました)
owasp-crs-v030001-id921151-protocolattack 2 ペイロードを介した HTTP ヘッダー インジェクション攻撃(CR/LF が検出されました)
owasp-crs-v030001-id921170-protocolattack 3 HTTP パラメータのポリューション

特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

プロトコル攻撃の感度レベル 1


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921151-protocolattack',
  'owasp-crs-v030001-id921170-protocolattack']
)
          
プロトコル攻撃の感度レベル 2


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921170-protocolattack']
)
          
プロトコル攻撃の感度レベル 3


evaluatePreconfiguredExpr('protocolattack-stable')
          

PHP

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id933100-php 1 PHP インジェクション攻撃: PHP 開始タグが見つかりました
owasp-crs-v030001-id933110-php 1 PHP インジェクション攻撃: PHP スクリプト ファイルのアップロードが見つかりました
owasp-crs-v030001-id933120-php 1 PHP インジェクション攻撃: 構成ディレクティブが見つかりました
owasp-crs-v030001-id933130-php 1 PHP インジェクション攻撃: 変数が見つかりました
owasp-crs-v030001-id933140-php 1 PHP インジェクション攻撃: I/O ストリームが見つかりました
owasp-crs-v030001-id933150-php 1 PHP インジェクション攻撃: 高リスクの PHP 関数名が見つかりました
owasp-crs-v030001-id933160-php 1 PHP インジェクション攻撃: 高リスクの PHP 関数呼び出しが見つかりました
owasp-crs-v030001-id933170-php 1 PHP インジェクション攻撃: シリアル化されたオブジェクトのインジェクション
owasp-crs-v030001-id933180-php 1 PHP インジェクション攻撃: 変数関数の呼び出しが見つかりました
owasp-crs-v030001-id933151-php 2 PHP インジェクション攻撃: 中リスクの PHP 関数名が見つかりました
owasp-crs-v030001-id933131-php 3 PHP インジェクション攻撃: 変数が見つかりました
owasp-crs-v030001-id933161-php 3 PHP インジェクション攻撃: ローバリュー PHP 関数呼び出しが見つかりました
owasp-crs-v030001-id933111-php 3 PHP インジェクション攻撃: PHP スクリプト ファイルのアップロードが見つかりました

特定の感度レベルでルールを構成するには、より高い感度レベルのシグネチャを無効にします。

PHP インジェクション攻撃の感度レベル 1


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933151-php',
  'owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP インジェクション攻撃の感度レベル 2


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP インジェクション攻撃の感度レベル 3


evaluatePreconfiguredExpr('php-stable')
          

セッション修正

シグネチャ ID(ルール ID) 感度レベル 説明
owasp-crs-v030001-id943100-sessionfixation 1 セッション修正攻撃の可能性: HTML での Cookie 値の設定
owasp-crs-v030001-id943110-sessionfixation 1 セッション修正攻撃の可能性: ドメイン外のリファラーが割り当てられたセッション ID パラメータ名
owasp-crs-v030001-id943120-sessionfixation 1 セッション修正攻撃の可能性: リファラーのないセッション ID パラメータ名

セッション修正のシグネチャはすべて感度レベル 2 未満です。次の構成はその他の感度レベル用に機能します。

セッション修正の感度レベル 2 / 3 / 4


evaluatePreconfiguredExpr('sessionfixation-canary')

次のステップ