Synit WAF

Schnellstart

Erster Setup-Pfad für Synit WAF: Domain auswählen, YAML-Konfiguration anlegen, Container starten, Traffic prüfen und Blocking kontrolliert vorbereiten.

Schnellstart

Dieser Schnellstart zeigt ein erstes Container-Muster für eine geschützte Testdomain im Audit Mode. Die freie Container-Variante ist für Evaluation, Laborumgebungen und kleine Piloten gedacht. Die konkrete Registry-URL und Lizenzgrenzen werden in den Zugangshinweisen ergänzt, sobald der öffentliche Lieferweg final ist.

Für Produktion gelten immer das abgestimmte Betriebsmodell, die konkrete Edition, die Produktzugangsdaten und die Werte aus Ihrem synit.io Handoff oder Managed-Service-Setup.

Committen Sie keine Secrets, Tokens, Produktzugangsdaten oder realen Kundendomains in öffentliche Repositories.

1. Erste Domain auswählen

Starten Sie mit einer Domain oder API, bei der ein kontrollierter Test möglich ist:

  • app.example.test für eine Website oder ein Portal
  • api.example.test für eine API
  • ai.example.test für einen LLM- oder AI-Endpunkt

2. Minimale Konfiguration erstellen

Erstellen Sie config.yml:

global_settings:
  log_level: "INFO"
  read_timeout: "15s"
  write_timeout: "15s"
  idle_timeout: "60s"

license:
  # Produktzugangsdaten privat aus dem synit.io Handoff-Paket übernehmen.

waf_rule_sets:
  "base-protection": |
    SecRule REQUEST_METHOD "@rx (?i:^(trace|track)$)" "id:110001,phase:1,deny,status:403,log,msg:'Blocked unsafe HTTP method'"

tenants:
  "app.example.test":
    upstreams:
      - url: "http://application:8080"
    security:
      waf_enabled: true
      audit_mode: true
      paranoia_level: 1
      include_rule_sets:
        - "base-protection"

Wichtig:

  • audit_mode: true zuerst aktiv lassen.
  • app.example.test durch Ihre Domain ersetzen.
  • http://application:8080 durch den internen Zielservice ersetzen.

3. Container starten

Nutzen Sie das veröffentlichte freie Image oder das bereitgestellte Image aus Ihrem Handoff-Paket:

docker run --rm \
  -p 80:80 \
  -v "$(pwd)/config.yml:/etc/waf/config.yml:ro" \
  --name synit-waf \
  <container-image>

Für Produktion sollte der Container über Ihre Plattform, Ihren Orchestrator oder den abgestimmten Managed-Service-Pfad laufen.

4. Traffic testen

Senden Sie eine Anfrage mit dem geschützten Hostnamen:

curl -H "Host: app.example.test" http://127.0.0.1/

Wenn der Upstream erreichbar ist, erhalten Sie die erwartete Antwort der Anwendung.

5. Audit Mode prüfen

Im Beobachtungsmodus protokolliert Synit WAF auffällige Anfragen, blockiert sie aber noch nicht. Prüfen Sie:

  • normaler Traffic erreicht die Anwendung
  • auffällige Anfragen erscheinen in Logs
  • False Positives sind erkennbar und bewertbar
  • Health Checks und Monitoring sind angebunden

Laufzeit prüfen:

curl -sS http://127.0.0.1/healthz
curl -sS http://127.0.0.1/readyz

6. Blocking erst nach Prüfung aktivieren

Synit WAF blockiert im Schnellstart bewusst noch nicht. Ohne Testlauf, Traffic-Prüfung und Tuning gibt synit.io keine Zusicherung, dass Regeln oder Blocking-Entscheidungen für konkrete Produktionspfade geeignet sind.

Erst nach Prüfung:

  • Auffällige Ereignisse nach Domain, Pfad und Regel gruppieren.
  • Legitime Nutzer-Workflows testen.
  • Enge Ausnahmen ergänzen, falls nötig.
  • audit_mode: false setzen.
  • Änderung über Ihren normalen Prozess neu laden oder neu deployen.
  • Erste Produktionsstunden eng überwachen.

Beispiel: API mit Token-Prüfung und Rate Limit

tenants:
  "api.example.test":
    upstreams:
      - url: "http://api-service:8080"
    security:
      waf_enabled: true
      audit_mode: true
      jwt_validation:
        enabled: true
        jwks_endpoint: "https://auth.example.test/.well-known/jwks.json"
      rate_limit:
        requests_per_minute: 1000
        burst: 200

Beispiel: GraphQL-Endpunkt

tenants:
  "graphql.example.test":
    upstreams:
      - url: "http://graphql-service:8080"
    security:
      waf_enabled: true
      audit_mode: true
      graphql:
        enabled: true
        block_introspection: true
        max_query_depth: 8
        max_batched_queries: 10

Beispiel: LLM-Endpunkt im Audit Mode

tenants:
  "ai.example.test":
    upstreams:
      - url: "http://llm-gateway:8080"
    security:
      waf_enabled: true
      audit_mode: true
      include_rule_sets:
        - "base-protection"
        - "llm-protection"
      llm_protection:
        enabled: true
        mode: "rules"
        action: "audit"
        inspect_paths:
          - "/v1/chat"
        inspect_json_fields:
          - "messages[].content"

Checkliste vor dem Produktionsbetrieb

  • Eine Domain zuerst.
  • Audit Mode vor Blocking.
  • Basisprofil vor strengeren Profilen.
  • Logs und Metriken vor Go-live prüfen.
  • Rollback-Pfad vorab klären.
  • Verantwortliche für Security und Anwendung einbinden.
  • Betriebsmodell, Lizenzgrenzen und Supportumfang klären.
  • Image-Tag, Regelprofile und Konfigurationsversion dokumentieren.

Weitere Startpunkte stehen unter Beispielkonfigurationen.

United in Diversity