SSH-Hack – Enterprise SSH Security Auditor
Ein professionelles SSH-Infrastruktur-Sicherheitsaudit-Tool für Unternehmen und Security-Teams. Systematische Erkennung, Analyse und Härtung von SSH-Infrastrukturen mit automatischer Schwachstellenerkennung und Compliance-Prüfung.
Ein Enterprise-Grade SSH-Sicherheitsaudit-Tool, das SSH-Infrastrukturen systematisch entdeckt, analysiert und härtet. Es bietet automatische CVE-Erkennung, Kryptografie-Analyse, Policy-Auditing und umfassende Reporting-Funktionen für Sicherheitsteams und Systemadministratoren.
Projektziele
Das SSH-Hack Tool wurde entwickelt, um Sicherheitsteams bei der systematischen Überprüfung ihrer SSH-Infrastruktur zu unterstützen. Die Kernziele umfassen:
- Discovery: Nicht-invasive TCP-Connect-Scans zur Erkennung von SSH-Diensten ohne erhöhte Rechte.
- Kryptografie-Analyse: Detailliertes Parsen des KEXINIT-Handshakes zur Validierung von Ciphers, MACs und Schlüsselaustauschverfahren.
- Policy-Auditing: Überprüfung von Server-Konfigurationen (
sshd -Tundsshd_config) auf Compliance. - CVE-Mapping: Korrelation von Software-Versionen mit bekannten Schwachstellen aus einer Offline-Datenbank.
- Risikobewertung: Erkennung von Abweichungen von einer Sicherheits-Baseline mit einem quantitativen Risiko-Score (0-100).
- Reporting: Erstellung von Berichten in Formaten wie JSON, Markdown, SARIF und interaktiven HTML-Dashboards.
- Remediation: Automatische Generierung von Skripten zur Behebung identifizierter Schwachstellen.
- Anomalie-Erkennung: Identifikation statistischer Ausreißer, die auf Honeypots oder Rate Limiting hindeuten könnten.
Technologiestack
- Go 1.24+: Hochperformante Entwicklung mit Goroutinen für nebenläufige Operationen.
- x/crypto/ssh: Implementierung des SSH-Protokolls für die Handshake-Analyse.
- Docker: Containerisierung der Anwendung für einfache Bereitstellung und Portabilität.
- AWS SDK: Ermöglicht die automatische Erkennung von EC2-Instanzen in Cloud-Infrastrukturen.
- Nmap Integration: Import von Scan-Ergebnissen aus Nmap zur Erweiterung der Ziel-Listen.
- Shodan API: Anbindung zur Abfrage externer Scandaten.
- SQLite: Lokale Speicherung von Scan-Ergebnissen zur Trendanalyse.
- D3.js: Wird zur Erstellung interaktiver HTML-Dashboards verwendet.
Hauptmerkmale
Discovery & Scanning
- Unterstützung für IPv4/IPv6 CIDR-Notation.
- Nebenläufiges TCP-Connect-Scanning ohne Root-Rechte.
- Banner-Grabbing und Normalisierung zur Versionserkennung.
- Optionaler DNS-Reverse-Lookup.
- Konfigurierbares Rate Limiting mit Jitter zur Vermeidung von Netzwerküberlastung.
- Import von Ziellisten aus Shodan und Nmap.
SSH-Analyse
- Handshake-Analyse: Parsen von KEXINIT-Nachrichten (Kex, Ciphers, MACs, Kompression).
- Host Keys: Erstellung von SHA256/MD5-Fingerprints und Analyse der Schlüsselgrößen.
- Policy-Checks: Remote-Abfrage mittels
sshd -Toder direktes Parsen von Konfigurationsdateien. - Timing-Analyse: Messung von Round-Trip-Time (RTT) und Handshake-Dauer.
- Fingerprinting: Erkennung verschiedener SSH-Implementierungen (OpenSSH, Dropbear etc.).
Security & Compliance
- Abgleich der Konfigurationen mit einer definierten Baseline (erlaubt, veraltet, verboten).
- CVE-Mapping auf Basis einer integrierten Offline-Datenbank.
- Generierung von Risiko-Scores (0-100) mit zugehörigen Schweregraden.
- Kategorisierung der Befunde (kex, cipher, mac, policy, version).
- Implementierung eines Consent-Gates (
--i-am-authorized) zur Sicherstellung einer autorisierten Nutzung.
Reporting & Integration
- JSON: Maschinenlesbares Format mit allen Details für die Weiterverarbeitung.
- Markdown: Menschenlesbare Zusammenfassungen für Management-Reports.
- SARIF: Standardisiertes Format für statische Analyseergebnisse zur Integration in GitHub Security, GitLab etc.
- HTML: Interaktive Dashboards mit D3.js-Visualisierungen.
- CI/CD: Integration in GitHub Actions und GitLab CI für automatisierte Security-Scans.
- Alerting: Benachrichtigungen via Slack-Webhooks bei Verschlechterung des Sicherheits-Scores.
Cloud & Automation
- AWS EC2 Discovery: Automatische Erfassung von EC2-Instanzen als Scan-Ziele.
- Geplante Scans: Periodische Ausführung von Audits mittels Cron-Syntax.
- Trendanalyse: SQLite-basierte Speicherung von Verlaufsdaten.
- Remediation Scripts: Automatische Erstellung von Anleitungen zur Problembehebung.
Systemarchitektur
ssh-hack/
├── cmd/ssh-audit/ # CLI Entrypoint
├── internal/
│ ├── models/ # Datenstrukturen
│ ├── net/scan/ # TCP Discovery
│ ├── ssh/
│ │ ├── handshake/ # KEXINIT-Analyse
│ │ └── policy/ # sshd Config Parsing
│ ├── analyze/ # Scoring Engine
│ ├── report/ # JSON/Markdown/SARIF
│ ├── storage/ # Baseline/Vuln DB
│ └── util/ # Logging, Sanitization
├── configs/
│ ├── baseline.yml # Security Baseline
│ └── vulns.yml # CVE-Datenbank
└── Dockerfile
Technische Herausforderungen und Erkenntnisse
- Nebenläufigkeit und Performance: Effiziente Verwaltung von Goroutinen für das parallele Scannen von Tausenden von Hosts sowie die Implementierung von Rate Limiting und Jitter zur Vermeidung von Netzwerküberlastung.
- Protokolltiefe: Implementierung des KEXINIT-Parsings ohne vollständigen SSH-Handshake sowie die Analyse von SSH-Bannern zur genauen Versionserkennung.
- Sicherheit und Ethik: Strikte Implementierung von Sicherheitsgattern (
--i-am-authorized) zur Verhinderung von Missbrauch und die automatische Bereinigung sensibler Daten in Logs. - Cloud-Integration: Integration des AWS SDK für die dynamische Erkennung von EC2-Instanzen über mehrere Regionen hinweg, inklusive Handhabung von API-Rate-Limits.
Bereitstellungsoptionen
Standalone Binary
go build -tags "sched,nmap,cloud" -o ssh-audit ./cmd/ssh-audit
Docker Container
docker build -t ssh-audit .
docker run --rm -v $(pwd)/configs:/configs \
ssh-audit --allowlist 10.0.0.0/24 --i-am-authorized
CI/CD Pipeline
Die Integration in GitHub Actions ermöglicht automatische Security-Scans bei Deployments, wobei die Ergebnisse im SARIF-Format hochgeladen werden, um Security Alerts zu generieren.
Anwendungsfälle
- Compliance Auditing: Regelmäßige Überprüfung von SSH-Konfigurationen anhand von Standards wie CIS oder NIST.
- Schwachstellenmanagement: Automatische Erkennung von CVEs in den eingesetzten SSH-Versionen.
- Security Hardening: Identifikation und Behebung von schwachen Cipher-Suiten, MACs und Kex-Algorithmen.
- Infrastructure Discovery: Aufspüren unbekannter oder nicht dokumentierter SSH-Dienste im Netzwerk.
- Kontinuierliches Monitoring: Geplante Scans mit Benachrichtigungen bei einer Verschlechterung des Sicherheits-Scores.
Beispiel-Ausgabeformate
Das Werkzeug generiert umfassende Berichte, die folgende Informationen enthalten:
- Detaillierte Risiko-Scores pro Host (0-100).
- CVE-Zuordnungen mit Schweregraden.
- Analyse von Abweichungen gegenüber der definierten Baseline.
- Konkrete Empfehlungen zur Härtung der Systeme.
- Interaktive HTML-Dashboards mit grafischen Auswertungen.
Sicherheitsaspekte
- Autorisierte Nutzung: Das Tool erfordert die explizite Bestätigung der Nutzungsberechtigung (
--i-am-authorized). - Passives Vorgehen: Es werden ausschließlich passive Erkundungstechniken ohne versuchte Exploits verwendet.
- Sanitized Logging: Sensible Daten in Log-Ausgaben werden automatisch redigiert.
- Auditierbarkeit: Strukturierte JSON-Logs ermöglichen eine lückenlose Nachvollziehbarkeit.
- Keine Speicherung von Zugangsdaten: Das Tool speichert zu keinem Zeitpunkt persistente Zugangsdaten.