v2.5SAST

Sicherheitsscanner (SAST)

Velisch bringt einen eigenen Static Application Security Testing (SAST) Scanner mit, der deinen Code auf bekannte Sicherheitsmuster analysiert.

Verwendung

Der Scanner ist in die CLI integriert und kann als Teil deiner CI/CD-Pipeline laufen:

# Gesamtes Projekt scannen
velin scan

# Spezifisches Verzeichnis scannen
velin scan ./src/controllers

# Mit JSON-Output für CI/CD
velin scan --format json

# Nur kritische Findings
velin scan --severity critical,high

Erkannte Sicherheitslücken

Hardcodierte Secrets

CRITICAL

AWS Keys, Datenbank-Passwörter, API-Tokens im Code

SQL Injection

HIGH

Manuelle String-Verkettung in db.execute-Aufrufen

Unsichere Regex (ReDoS)

HIGH

Reguläre Ausdrücke die CPU blockieren können

Fehlende Auth

MEDIUM

Sensible Routen ohne @Auth Decorator

Veraltete Dependencies

VARIES

Pakete mit bekannten CVEs in velin.lock

Path Traversal

HIGH

Unsichere Dateipfad-Konstruktion

Beispiel-Ausgabe

[CRITICAL] Hardcoded Secret found in src/config.velin:12
let apiKey = "sk-1234567890abcdef";
→ Use config.get("API_KEY") instead.
[HIGH] Potential SQL Injection in src/reports.velin:45
db.execute("SELECT * FROM orders WHERE id = " + id);
→ Use parameterized queries: db.execute("...", [id])
[MEDIUM] Missing @Auth on sensitive route in src/admin.velin:8
@GET("/admin/users")
→ Add @Auth decorator for protected routes

Konfiguration

Du kannst den Scanner in der velin.toml konfigurieren:

[security]
# Welche Prüfungen aktiviert sind
checks = ["secrets", "sql-injection", "redos", "auth", "dependencies"]

# Dateien/Ordner ignorieren
ignore = ["tests/**", "migrations/**"]

# Minimale Schwere für Fehler (build bricht ab)
fail-on = "high"  # critical, high, medium, low

# Bekannte False Positives ignorieren
allow = [
    { file = "src/test-data.velin", rule = "hardcoded-secret" }
]

GitHub Actions Integration

name: Security Scan

on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install Velisch
        run: curl -sSL https://velisch.dev/install.sh | sh
      
      - name: Run Security Scanner
        run: velin scan --format sarif > results.sarif
      
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Best Practices

CI/CD Integration

Scanner in jede Pipeline einbauen

Pre-Commit Hooks

Lokale Scans vor dem Commit

Regelmäßige Scans

Auch bestehenden Code scannen

Dependencies prüfen

CVE-Checks für alle Pakete