Rokad
すべてのドキュメント
dhalドキュメント

ルールとルートプロファイル

ルールパック、ルート別適用、抑制、誤検知対策を設定します。

リポジトリを見る
dhalドキュメント
9ページ中4ページ

Dhal は決定論的な制御とルート固有のポリシーを組み合わせます。まず監視し、アプリケーションの動作を把握したルートからブロックを有効にします。

主な制御

  • IP 許可・拒否リスト
  • SQLi、XSS、パストラバーサル、SSRF、RCE、SSTI、GraphQL、一般的な探索シグネチャ
  • リクエストサイズ
  • ヘッダーおよび Content-Type の異常
  • JSON API のポジティブセキュリティ
  • ボットと自動化
  • ハニーポット
  • credential stuffing
  • レート制限と IP レピュテーション

ルールパック

generic-webapiauthwordpressstrict-api を利用できます。

json
{
  "rules": {
    "packs": ["generic-web", "api"],
    "sqli": true,
    "xss": true,
    "pathTraversal": true
  }
}

npx dhal rules でカタログを確認できます。

ルートプロファイル

json
{
  "mode": "monitor",
  "routes": {
    "/api/login": {
      "mode": "block",
      "tags": ["authentication"],
      "rateLimit": {
        "enabled": true,
        "windowSeconds": 60,
        "max": 20,
        "keyBy": ["ip", "route"]
      },
      "rules": {
        "credentialStuffing": {
          "enabled": true,
          "windowSeconds": 300,
          "maxFailures": 4,
          "keyBy": ["ip", "route", "userAgent"]
        }
      }
    }
  }
}

パターンは完全一致と * ワイルドカードをサポートします。複数一致する場合は、ワイルドカードを除いた長さが最も長いパターンが選ばれます。

json
{
  "routes": {
    "/api/admin/*": { "mode": "strict" },
    "/api/public/*": { "mode": "monitor" }
  }
}

誤検知対策

ボット制御を全体で無効にする前に、scoreThresholdminSignalsallowUserAgentsskipStaticAssetsignorePaths を調整してください。

rules.api は JSON 専用サービスでのみグローバルに有効化し、混在アプリケーションではルートプロファイルに限定します。

抑制

json
{
  "policy": {
    "suppressions": [
      {
        "id": "approved-internal-scanner",
        "enabled": true,
        "ruleId": "honeypot.triggered",
        "path": "/.well-known/security-canary",
        "reason": "承認済みの内部スキャナー",
        "expiresAt": "2027-01-01T00:00:00.000Z"
      }
    ]
  }
}

抑制は監査メタデータに残ります。対象を狭くし、理由と有効期限を設定してください。