
Lehrlabor zur Untersuchung von CVE-2014-0160 (Heartbleed) und Framing-Inkonsistenzen in der TLS-Heartbeat-Verarbeitung.
Bildungslabor zum Studium der Heartbleed-Sicherheitslücke
(CVE-2014-0160) unter Verwendung einer echten anfälligen OpenSSL-Umgebung in Docker.
Dieses Projekt reproduziert einen anfälligen TLS-Server mit OpenSSL 1.0.1f und implementiert einen benutzerdefinierten, rohen TLS-Heartbeat-Client, um zu demonstrieren, wie fehlerhafte Heartbeat-Pakete eine Speicheroffenlegung auslösen können.
Das Labor wurde zu Bildungs- und Forschungszwecken erstellt, insbesondere zum Studium von:
heartbleed-lab/
├── client/
│ ├── attacker.py
│ └── Dockerfile
│
├── vulnerable/
│ ├── Dockerfile
│ └── server/
│
├── fixed/
│ ├── Dockerfile
│ └── server/
│
├── docs/
│ └── diagrams/
│
├── notes/
│
├── docker-compose.yml
├── .gitignore
└── README.md
heartbleed-client
↓
Docker internal network
↓
vulnerable-heartbleed
Wobei:
heartbleed-client sendet rohe TLS-Datensätzevulnerable-heartbleed führt OpenSSL 1.0.1f ausDer anfällige Server verwendet:
openssl s_serverDie Umgebung ist absichtlich so konfiguriert, dass sie das ursprüngliche Heartbleed-Verhalten reproduziert.
Die Client-Implementierung:
Die aktuelle Implementierung reproduziert das ursprüngliche Heartbleed-Verhalten, indem sie ein fehlerhaftes Heartbeat-Paket sendet, bei dem:
payload_length > real payload size
Beispiel:
Declared payload length: 0x4000
Real payload: 1 byte ("A")
Der anfällige Server vertraut fälschlicherweise der deklarierten Länge und antwortet mit Speicherinhalten, die über die tatsächlichen Nutzlastgrenzen hinausgehen.
sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build
sudo docker exec -it heartbleed-client bash
python attacker.py
[+] Sending malformed heartbeat
[+] Got TLS record: type=24 version=(3, 2) length=16384
[!!!] Heartbeat response received
Dies zeigt, dass der anfällige Server Speicherinhalte jenseits der legitimen Heartbeat-Nutzlast zurückgegeben hat.
Dieses Projekt untersucht die Beziehung zwischen:
Eines der Hauptforschungsinteressen dieses Labors ist der Vergleich:
HTTP Request Smuggling
vs
TLS Heartbeat Parsing Failures
aus der Perspektive von:
Geplante nächste Schritte umfassen:
Dieses Repository dient ausschließlich: