-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Security Scanner
Der VelinScript Security Scanner analysiert Code auf Security-Vulnerabilities und Sicherheitsprobleme.
Der Security Scanner ist ideal für:
- ✅ Security-Audits - Findet Security-Vulnerabilities vor Releases
- ✅ CI/CD-Integration - Automatische Security-Checks in Pipelines
- ✅ Dependency-Audits - Prüft Dependencies auf bekannte Vulnerabilities
- ✅ Compliance - Unterstützt Security-Compliance-Anforderungen
- ✅ SQL Injection/XSS - Erkennt häufige Web-Security-Probleme
- ✅ Hardcoded Secrets - Findet versehentlich committete Secrets
Der Security Scanner ist NICHT gedacht für:
- ❌ Code-Qualität - Für Code-Qualitätsprüfung nutzen Sie den Linter
- ❌ Performance-Analyse - Für Performance-Optimierung nutzen Sie den Profiler
- ❌ Unit-Tests - Für Tests nutzen Sie den Test Runner
- ❌ Runtime-Debugging - Für Live-Debugging nutzen Sie den Debugger
- ❌ Code-Formatierung - Für Formatierung nutzen Sie den Formatter
Der Security Scanner ist Teil des VelinScript Toolchains. Baue ihn mit:
cd tools/security-scanner
cargo build --releasevelin-security scanScannt das aktuelle Verzeichnis auf Security-Vulnerabilities.
velin-security scan src/velin-security scan --format json > security-report.jsonvelin-security scan --format htmlGeneriert security-report.html mit detailliertem Report.
velin-security auditPrüft Dependencies in velin.toml auf bekannte Vulnerabilities.
velin-security audit --config custom-velin.toml- SQL Injection - Ungeprüfte SQL-Queries
- Command Injection - Ungeprüfte System-Commands
- Path Traversal - Ungeprüfte Dateipfade
- Hardcoded Secrets - Passwörter, API-Keys im Code
- XSS (Cross-Site Scripting) - Ungeprüfte User-Input in HTML
- CSRF (Cross-Site Request Forgery) - Fehlende CSRF-Token
- Insecure Random - Unsichere Zufallszahlen-Generierung
- Unsafe Deserialization - Unsichere Deserialisierung
- Weak Cryptography - Schwache Verschlüsselungsalgorithmen
- Missing Authentication - Fehlende Authentifizierung
- Insecure Direct Object Reference - Ungeprüfte Objekt-Referenzen
- Information Disclosure - Zu detaillierte Error-Messages
- Weak Password Policy - Schwache Passwort-Anforderungen
🔍 VelinScript Security Scanner
===============================
[CRITICAL] SQL Injection
Location: src/api/users.velin:42
Message: Ungeprüfte SQL-Query mit User-Input
Recommendation: Verwende Prepared Statements oder ORM
[HIGH] XSS Vulnerability
Location: src/templates/render.velin:15
Message: User-Input wird ohne Escaping ausgegeben
Recommendation: Verwende html::escape() oder Template-Engine mit Auto-Escaping
[MEDIUM] Hardcoded Secret
Location: src/config.velin:8
Message: API-Key ist im Code hardcodiert
Recommendation: Verwende Environment-Variablen oder Secrets-Management
⚠ 3 Vulnerabilities gefunden
┌─────────────────────────────────────────────────────────┐
│ VelinScript Security Scanner │
├─────────────────────────────────────────────────────────┤
│ │
│ $ velin-security scan │
│ │
│ 🔍 VelinScript Security Scanner │
│ =============================== │
│ │
│ [CRITICAL] SQL Injection │
│ Location: src/api/users.velin:42 │
│ Message: Ungeprüfte SQL-Query mit User-Input │
│ Recommendation: Verwende Prepared Statements │
│ │
│ [HIGH] XSS Vulnerability │
│ Location: src/templates/render.velin:15 │
│ Message: User-Input ohne Escaping │
│ Recommendation: Verwende html::escape() │
│ │
│ [MEDIUM] Hardcoded Secret │
│ Location: src/config.velin:8 │
│ Message: API-Key ist im Code hardcodiert │
│ │
│ ⚠ 3 Vulnerabilities gefunden │
│ │
└─────────────────────────────────────────────────────────┘
[
{
"rule": "SQL Injection",
"severity": "Critical",
"location": "src/api/users.velin:42",
"message": "Ungeprüfte SQL-Query mit User-Input",
"recommendation": "Verwende Prepared Statements oder ORM"
},
{
"rule": "XSS Vulnerability",
"severity": "High",
"location": "src/templates/render.velin:15",
"message": "User-Input wird ohne Escaping ausgegeben",
"recommendation": "Verwende html::escape() oder Template-Engine mit Auto-Escaping"
}
]Erkennt ungeprüfte SQL-Queries:
// ❌ VULNERABLE
fn getUser(id: string): User {
let query = "SELECT * FROM users WHERE id = " + id;
return db.query(query);
}
// ✅ SAFE
fn getUser(id: string): User {
return db.find(User, id);
}
Erkennt ungeprüfte User-Input in HTML:
// ❌ VULNERABLE
fn renderUser(name: string): string {
return "<div>" + name + "</div>";
}
// ✅ SAFE
fn renderUser(name: string): string {
return "<div>" + html::escape(name) + "</div>";
}
Erkennt Passwörter, API-Keys, etc. im Code:
// ❌ VULNERABLE
let api_key = "sk-1234567890abcdef";
// ✅ SAFE
let api_key = config::get_env("API_KEY");
Erkennt ungeprüfte System-Commands:
// ❌ VULNERABLE
fn executeCommand(cmd: string): string {
return process::spawn("sh", ["-c", cmd]);
}
// ✅ SAFE
fn executeCommand(cmd: string): string {
let allowed_commands = ["ls", "pwd", "date"];
if !allowed_commands.contains(cmd) {
return "Command not allowed";
}
return process::spawn("sh", ["-c", cmd]);
}
# .github/workflows/security.yml
- name: Security Scan
run: |
cd tools/security-scanner
cargo build --release
./target/release/velin-security scan --format json > security-report.json
if [ -s security-report.json ]; then
echo "Security Vulnerabilities gefunden!"
cat security-report.json
exit 1
fi
- name: Dependency Audit
run: |
./target/release/velin-security audit- Regelmäßig scannen - Integriere Security Scanning in CI/CD
- Vor Releases prüfen - Führe Security Scan vor jedem Release aus
- Dependencies auditieren - Prüfe regelmäßig Dependencies auf Vulnerabilities
- Fix Critical Issues sofort - Behebe Critical Vulnerabilities sofort
- Security Reviews - Führe regelmäßige Security Reviews durch
- Training - Bilde Team in Security Best Practices aus
Erstelle eine .velinsecurityrc.json Datei:
{
"rules": {
"sql-injection": "error",
"xss": "error",
"hardcoded-secret": "warning",
"weak-cryptography": "warning"
},
"ignore": [
"test/**",
"examples/**"
],
"severity-threshold": "medium"
}Der Security Scanner ist in der VS Code Extension integriert. Vulnerabilities werden direkt im Editor angezeigt.
Der Scanner unterstützt Dependency-Auditing:
velin-security auditPrüft velin.toml auf bekannte Vulnerabilities in Dependencies.
Unterstützte Quellen:
- CVE Database
- GitHub Security Advisories
- RustSec Advisory Database
Bei False Positives kannst du Regeln deaktivieren:
// velin-security-disable-next-line sql-injection
let query = "SELECT * FROM users WHERE id = " + sanitized_id;
Oder für ganze Dateien:
// velin-security-disable-file
velin-security scan --format htmlGeneriert einen detaillierten HTML-Report mit:
- Übersicht aller Vulnerabilities
- Schweregrad-Verteilung
- Empfehlungen pro Vulnerability
- Code-Snippets
velin-security scan --format json > report.jsonFür Integration in andere Tools.
- Passe die Konfiguration an (
.velinsecurityrc.json) - Deaktiviere bestimmte Regeln
- Verwende
// velin-security-disableKommentare
- Scanne nur relevante Verzeichnisse
- Ignoriere große Verzeichnisse (z.B.
vendor/) - Verwende Caching für wiederholte Scans
- Prüfe, ob
velin.tomlkorrekt ist - Prüfe, ob Dependencies installiert sind
- Prüfe Internet-Verbindung für Audit-Datenbanken
- Compiler Architecture
- Pass-Verlauf
- Type Inference
- Code Ordering
- IR Representation
- Borrow Checker
- Code Generation
- Multi-Target Compilation
- Module Resolution
- Framework Integration
- Parallelization
- AI Compiler Passes
- Prompt Optimizer
- System Generation
- Basics
- APIs
- Security
- Database
- Validation
- Authentication
- ML/LLM
- Intelligence Features
- Type Inference
- ML Training
- Pattern Matching
- Closures
- Collections
- HTTP Client
- String Interpolation
- Debugger
- Vektor-Datenbanken
- CLI Reference
- API Keys Setup
- Advanced
- Backend
- Security Best Practices
- AI/ML
- Auto Imports
- Plugin Development