Sicherheitsstatus

Dieser Commit ist enthalten in:
2025-06-07 21:01:45 +02:00
Ursprung 25b8a9a33d
Commit df5e0e0365
7 geänderte Dateien mit 771 neuen und 11 gelöschten Zeilen

Datei anzeigen

@@ -567,4 +567,124 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
- ✅ "Nicht sicher" Warnung in Chrome behoben
- ✅ Saubere SSL-Konfiguration ohne Mixed Content
- ✅ Verbesserte Sicherheits-Header implementiert
- ✅ Admin Panel zeigt jetzt grünes Schloss-Symbol
- ✅ Admin Panel zeigt jetzt grünes Schloss-Symbol
### 2025-06-07 - Sicherheitslücke geschlossen: License Server Port
- Direkter Zugriff auf License Server Port 8443 entfernt
- Sicherheitsanalyse der exponierten Ports durchgeführt
**Identifiziertes Problem:**
- License Server war direkt auf Port 8443 von außen erreichbar
- Umging damit die Nginx-Sicherheitsschicht und Security Headers
- Besonders kritisch, da nur Platzhalter ohne echte Sicherheit
**Durchgeführte Änderung:**
- Port-Mapping für License Server in docker-compose.yaml entfernt
- Service ist jetzt nur noch über Nginx Reverse Proxy erreichbar
- Gleiche Sicherheitskonfiguration wie Admin Panel
**Aktuelle Port-Exposition:**
- ✅ Nginx: Port 80/443 (benötigt für externen Zugriff)
- ✅ PostgreSQL: Keine Ports exponiert (gut)
- ✅ Admin Panel: Nur über Nginx erreichbar
- ✅ License Server: Nur über Nginx erreichbar (vorher direkt auf 8443)
**Weitere identifizierte Sicherheitsthemen:**
1. Credentials im Klartext in .env Datei
2. SSL-Zertifikate im Repository gespeichert
3. License Server noch nicht implementiert
**Empfehlung:** Docker-Container neu starten für Änderungsübernahme
### 2025-06-07 - License Server Port 8443 wieder aktiviert
- Port 8443 für direkten Zugriff auf License Server wieder geöffnet
- Notwendig für Client-Software Lizenzprüfung
**Begründung:**
- Client-Software benötigt direkten Zugriff für Lizenzprüfung
- Umgehung von möglichen Firewall-Blockaden auf Port 443
- Weniger Latenz ohne Nginx-Proxy
- Flexibilität für verschiedene Client-Implementierungen
**Konfiguration:**
- License Server erreichbar über:
- Direkt: Port 8443 (für Client-Software)
- Via Nginx: https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com (für Browser/Tests)
**Sicherheitshinweis:**
- Port 8443 ist wieder direkt exponiert
- License Server muss vor Produktivbetrieb implementiert werden mit:
- Eigener SSL-Konfiguration
- API-Key Authentifizierung
- Rate Limiting
- Input-Validierung
**Status:**
- Port-Mapping in docker-compose.yaml wiederhergestellt
- Änderung erfordert Docker-Neustart
### 2025-06-07 - Rate-Limiting und Brute-Force-Schutz implementiert
- Umfassender Schutz vor Login-Angriffen mit IP-Sperre
- Dashboard-Integration für Sicherheitsüberwachung
**Implementierte Features:**
1. **Rate-Limiting System:**
- 5 Login-Versuche erlaubt, danach 24h IP-Sperre
- Progressive Fehlermeldungen (zufällig aus 5 lustigen Varianten)
- CAPTCHA nach 2 Fehlversuchen (Google reCAPTCHA v2 vorbereitet)
- E-Mail-Benachrichtigung bei Sperrung (vorbereitet, deaktiviert für PoC)
2. **Timing-Attack Schutz:**
- Mindestens 1 Sekunde Antwortzeit bei allen Login-Versuchen
- Gleiche Antwortzeit bei richtigem/falschem Username
- Verhindert Username-Enumeration
3. **Lustige Fehlermeldungen (zufällig):**
- "NOPE!"
- "ACCESS DENIED, TRY HARDER"
- "WRONG! 🚫"
- "COMPUTER SAYS NO"
- "YOU FAILED"
4. **Dashboard-Sicherheitswidget:**
- Sicherheitslevel-Anzeige (NORMAL/ERHÖHT/KRITISCH)
- Anzahl gesperrter IPs
- Fehlversuche heute
- Letzte 5 Sicherheitsereignisse mit Details
5. **IP-Verwaltung:**
- Übersicht aller gesperrten IPs
- Manuelles Entsperren möglich
- Login-Versuche zurücksetzen
- Detaillierte Informationen pro IP
6. **Audit-Log Erweiterungen:**
- LOGIN_SUCCESS - Erfolgreiche Anmeldung
- LOGIN_FAILED - Fehlgeschlagener Versuch
- LOGIN_BLOCKED - IP wurde gesperrt
- UNBLOCK_IP - IP manuell entsperrt
- CLEAR_ATTEMPTS - Versuche zurückgesetzt
**Neue/Geänderte Dateien:**
- v2_adminpanel/init.sql (login_attempts Tabelle)
- v2_adminpanel/app.py (Rate-Limiting Logik, neue Routen)
- v2_adminpanel/templates/login.html (Fehlermeldungs-Styling, CAPTCHA)
- v2_adminpanel/templates/dashboard.html (Sicherheitswidget)
- v2_adminpanel/templates/blocked_ips.html (neu - IP-Verwaltung)
**Technische Details:**
- IP-Ermittlung berücksichtigt Proxy-Header (X-Forwarded-For)
- Fehlermeldungen mit Animation (shake-effect)
- Farbcodierung: Rot für Fehler, Lila für Sperre, Orange für CAPTCHA
- Automatische Bereinigung alter Einträge möglich
**Sicherheitsverbesserungen:**
- Schutz vor Brute-Force-Angriffen
- Timing-Attack-Schutz implementiert
- IP-basierte Sperrung für 24 Stunden
- Audit-Trail für alle Sicherheitsereignisse
**Hinweis für Produktion:**
- CAPTCHA-Keys müssen in .env konfiguriert werden
- E-Mail-Server für Benachrichtigungen einrichten
- Rate-Limits können über Konstanten angepasst werden