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,highCI/CD Integration
Wenn Sicherheitslücken gefunden werden, bricht der Build mit Exit Code 1 ab. Ideal für GitHub Actions, GitLab CI oder Jenkins.
Erkannte Sicherheitslücken
Hardcodierte Secrets
AWS Keys, Datenbank-Passwörter, API-Tokens im Code
SQL Injection
Manuelle String-Verkettung in db.execute-Aufrufen
Unsichere Regex (ReDoS)
Reguläre Ausdrücke die CPU blockieren können
Fehlende Auth
Sensible Routen ohne @Auth Decorator
Veraltete Dependencies
Pakete mit bekannten CVEs in velin.lock
Path Traversal
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.sarifBest 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