Rokad
Gesamte Dokumentation
dhal-Dokumentation

Regeln und Routenprofile

Konfigurieren Sie Regelpakete, routenbezogenes Enforcement, Suppressions und Fehlalarmkontrollen.

Repository ansehen
dhal-Dokumentation
Seite 4 von 9

Dhal kombiniert deterministische Kontrollen mit routenspezifischer Policy. Beginnen Sie mit Monitoring und aktivieren Sie Blockierung dort, wo das Anwendungsverhalten bekannt ist.

Enthaltene Kontrollen

  • IP-Allow- und Blocklisten;
  • SQLi-, XSS-, Path-Traversal-, SSRF-, RCE-, SSTI-, GraphQL- und Probe-Signaturen;
  • Request-Größe;
  • Header- und Content-Type-Anomalien;
  • positive JSON-API-Sicherheit;
  • Bots und Automatisierung;
  • Honeypots;
  • Credential Stuffing;
  • Rate Limits und IP-Reputation.

Regelpakete

generic-web, api, auth, wordpress und strict-api.

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

Prüfen Sie den Katalog mit npx dhal rules.

Routenprofile

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"]
        }
      }
    }
  }
}

Muster unterstützen exakte Pfade und *-Wildcards. Bei mehreren Treffern gewinnt das spezifischste Muster anhand seiner Länge ohne Wildcards.

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

Fehlalarme

Passen Sie für Bots zuerst scoreThreshold, minSignals, allowUserAgents, skipStaticAssets und ignorePaths an, bevor Sie die Kontrolle global deaktivieren.

Aktivieren Sie rules.api global nur für reine JSON-Dienste, sonst pro Route.

Suppressions

json
{
  "policy": {
    "suppressions": [
      {
        "id": "interner-scanner",
        "enabled": true,
        "ruleId": "honeypot.triggered",
        "path": "/.well-known/security-canary",
        "reason": "genehmigter interner Scanner",
        "expiresAt": "2027-01-01T00:00:00.000Z"
      }
    ]
  }
}

Suppressions bleiben in Audit-Metadaten sichtbar. Halten Sie sie eng, begründet und befristet.