Geplante Code-Audits

Repositories und Server automatisch nach Zeitplan analysieren — täglich, wöchentlich oder monatlich. Mit Benachrichtigung bei neuen Schwachstellen.

Geplante Code-Audits erfordern ein aktives Code-Audit-Kontingent (Abo oder Credits). Zugangsdaten werden AES-256-GCM verschlüsselt gespeichert — sie sind nach dem Speichern nicht mehr lesbar.

Schedule anlegen (Dashboard)

1
Geplante Code-Audits öffnen

Navigieren Sie zu Code-Audit → Geplante Audits in der Seitenleiste.

2
Verbindungsmethode wählen

Wählen Sie wie der Code bezogen werden soll:

  • Git — Repository-URL + Branch + Personal Access Token (für private Repos)
  • SFTP — Host, Port, Benutzername, Passwort oder SSH-Key + Pfad
  • FTP — Host, Port, Benutzername, Passwort + Pfad
3
Zeitplan festlegen

Cron-Ausdruck eingeben oder aus den Vorlagen wählen:

  • 0 3 * * * — Täglich um 3:00 Uhr
  • 0 3 * * 1 — Jeden Montag um 3:00 Uhr
  • 0 3 1 * * — Am 1. jeden Monats
4
Benachrichtigung konfigurieren

Wählen Sie wann Sie benachrichtigt werden möchten:

  • Immer — nach jedem Scan
  • Neue High-Findings (Standard) — nur wenn seit dem letzten Scan neue kritische Schwachstellen aufgetaucht sind
  • Neue Findings (alle) — bei jedem neuen Finding unabhängig vom Schweregrad
  • Nie — kein Alert, nur Historie

Schedule anlegen (API)

POST /api/code/schedules
Authorization: Bearer <token>
Content-Type: application/json

{
  "label": "Nightly Git Audit",
  "method": "git",
  "repo_url": "https://github.com/org/repo.git",
  "branch": "main",
  "token": "ghp_personalAccessToken",
  "cron": "0 3 * * *",
  "use_ai": true,
  "system_hint": "laravel",
  "notify_on": "new_high"
}

Für SFTP:

POST /api/code/schedules
{
  "label": "Prod Server — Weekly",
  "method": "sftp",
  "host": "server.example.com",
  "port": 22,
  "username": "deploy",
  "password": "geheim",
  "remote_path": "/var/www/html",
  "cron": "0 4 * * 1",
  "notify_on": "always"
}

Schedules verwalten

GET    /api/code/schedules           # Alle Schedules auflisten
GET    /api/code/schedules/:id       # Detail (Zugangsdaten werden NICHT zurückgegeben)
PATCH  /api/code/schedules/:id       # Aktualisieren (enabled, cron, notify_on, ...)
DELETE /api/code/schedules/:id       # Löschen
POST   /api/code/schedules/:id/run   # Sofort ausführen (manueller Run)

Cron-Syntax

Format: Minute Stunde Tag Monat Wochentag

  • 0 3 * * * — Täglich um 3:00 Uhr
  • 0 3 * * 1 — Jeden Montag um 3:00 Uhr
  • 0 3 1 * * — Am 1. jeden Monats um 3:00 Uhr
  • 0 8 * * 1-5 — Werktags um 8:00 Uhr
  • 0 */6 * * * — Alle 6 Stunden

Ablauf eines geplanten Audits

  1. Scheduler prüft jede Minute fällige Schedules (next_run_at <= NOW())
  2. Code wird bezogen (Git clone / SFTP pull / FTP download)
  3. Vollständige Analyse: SAST, Secrets, Dependencies, Malware, WordPress-Check
  4. KI-Analyse (falls use_ai: true und Kontingent vorhanden)
  5. Ergebnis wird in der Code-Audit-Historie gespeichert
  6. Diff gegen den vorherigen Scan: neue Findings werden identifiziert
  7. Benachrichtigung gemäß notify_on-Regel
  8. next_run_at wird für den nächsten Lauf aktualisiert

Ergebnisse einsehen

Alle Ergebnisse erscheinen in der Code-Audit-Historie. Von dort können Sie:

  • Findings nach Schweregrad filtern
  • PDF-Report herunterladen (DE oder EN)
  • Vergleich mit vorherigem Scan einsehen (neue/behobene Findings)

Sicherheit der Zugangsdaten

Alle Zugangsdaten (Git-Token, SSH-Passwörter, SSH-Keys, FTP-Passwörter) werden AES-256-GCM verschlüsselt in der Datenbank gespeichert. Nach dem Speichern:

  • Die API gibt Zugangsdaten niemals zurück (nur has_credentials: true/false)
  • Zum Ändern: neue Zugangsdaten per PATCH übergeben (überschreiben den verschlüsselten Wert)
  • Zum Entfernen: null übergeben
Tipp: Verwenden Sie für Git einen Personal Access Token mit Read-Only-Scope — so hat der Token minimale Berechtigungen falls er kompromittiert werden sollte.

Limits

  • Max. 20 Schedules pro Organisation
  • Jeder Schedule-Lauf verbraucht einen Code-Audit-Credit
  • KI-Dateien-Limit gilt auch für geplante Audits (plan-abhängig: 30 / 50 / 100 Dateien)

→ Zurück zum Code-Audit-Guide