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.
architecture
Drei Stufen: Scanner (Go · net) probiert Ziele an und sammelt Service-Fingerprints; Analyzer (Regel-Engine) mappt Findings gegen Härtungs-Rules + CVE-Daten; Report-Layer erzeugt severity-gerankte, actionable Reports. Kein State zwischen Scans — Read-only, idempotent.
select a node to inspect responsibility, I/O, failure modes & security
- ▸Automatische CVE-Erkennung anhand von Banner/Version
- ▸Krypto-Analyse: Ciphers, MACs, KEX-Algorithmen bewerten
- ▸Policy-Auditing gegen konfigurierbare Compliance-Baselines
- ▸Priorisiertes Reporting mit konkreten Remediation-Schritten
- ▸Bereitstellung als Single-Binary (Go)
- ▸Nur passive/read-only Checks — keine Credential-Brute-Force erlaubt
- ▸Regelwerk muss aktualisierbar sein ohne Binary-Neubau
- ▸Unternehmensnetz: Scan muss parallel und performant laufen
- ▸Scan-Geschwindigkeit vs. Netzlast: parallele Scans brauchen Throttling
- ▸Banner-basierte CVE-Erkennung ist schnell, aber weniger präzise als Versions-Pinning
- ▸Keine Credentials, keine Persistenz von Ziel-Daten
- ▸Findings enthalten keine Key-Materialien
- ▸Regelwerk frei von Exploit-Code — nur Detection + Remediation
- ▸Idempotente Scans; Retries auf Verbindungs-Timeouts
- ▸Parallelität mit konfigurierbarem Concurrency-Limit gegen Ziel-Überlastung
- ▸Fixtures: bekannte SSH-Banner → erwartete Findings (Goldene Testfälle)
- ▸Regelwerk-Updates als Regressionstests
- ▸Single-Binary für Linux/macOS; Ausführung lokal oder in CI-Pipelines
- ▸Scan-Protokolle mit Dauer, Zielzahl, Finding-Verteilung
- ▸Enterprise-taugliches SSH-Audit-Tool mit CVE-Detection und Compliance
- ▸Wiederverwendbares Muster für Security-Scanner-Architekturen
- ▸Detection ohne Exploit-Pfad hält das Tool in Enterprise-Policy-Grenzen
- ▸Regelwerk-Datenhaltung zahlt sich bei jeder neuen CVE aus
problem
SSH-Infrastrukturen verwildern: alte Ciphers, veraltete Algorithmen, offene Default-Ports. Security-Teams brauchen ein Tool, das Hosts automatisiert scannt, gegen Härtungs-Policies bewertet und nachvollziehbare Remediation liefert.
context
Für Unternehmen und Security-Teams entstand ein Audit-Tool, das drei Phasen abdeckt: Discovery (Hosts + Banner erfassen), Analyse (gegen Regelwerk + CVE-Basis bewerten), Reporting (priorisierte Härtungsempfehlungen). Geschrieben in Go für eine einzelne, statische Binary.