Das neueste OpenSSL Update, welches am 1. März veröffentlicht wurde, behob, neben verschiedenen anderen Problemen, auch die Verwundbarkeit gegen eine Sicherheitslücke namens DROWN.
Die Kurzfassung zu DROWN ist, dass diese Attacke es ermöglicht den Privaten Schlüssel eines entfernten Servers auszulesen, wenn SSLv2 auf diesem Server aktiviert ist.
Eine detailierte Beschreibung der Attacke kann auf der „offiziellen“ DROWN Website, https://drownattack.com/, gefunden werden.
Aktuelle Betriebssysteme hatten SSLv2 schon vor einiger Zeit deaktiviert, wie beispielsweise Debian im Jahr 2010: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589706
Viele Betriebe betreiben jedoch aus verschiedensten Gründen noch immer Server mit alten Betriebssystem-Versionen, welche keine Sicherheits-Updates mehr erhalten.
Dies betraf uns ebenfalls, da es in unseren Umgebungen nach wie vor das eine oder andere Debian Squeeze und Debian Lenny System gibt.
Debian Pakete für Squeeze und Lenny
Nachdem das OpenSSL Update veröffentlicht wurde, begann unser Team sofort mit dem Vorbereiten von neuen OpenSSL Paketen für Debian Squeeze und Debian Lenny. Diese Pakete deaktivieren, mit den selben Änderungen, welche auch in CentOS eingeflossen sind, SSLv2 komplett.
Wir haben diese Pakete in Binär- und Sourcecode-Form auf https://github.com/anexia-it/debian-packages der Öffentlichkeit zur Verfügung gestellt.
DROWN Check Script
Da die Daten auf der DROWN Webseite veraltet sind und wir einen Weg benötigt haben selbst die Verwundbarkeit von Systemen und Diensten zu überprüfen, wurde durch unser Team ein Script für diese Aufgabe umgesetzt.
Das Script ähnelt unserem winshock test script, setzt jedoch eine alte OpenSSL Version voraus, welche SSLv2 noch unterstützt.
Aus diesem Grund haben wir für eine vereinfachte Nutzung dieses Scripts ein Docker Image, welches auf Debian Squeeze basiert, zur Verfügung gestellt.
Das Script selbst und die Dockerfile, aus welcher das Docker Image generiert wurde, sind auf GitHub verfügbar.
Die Verwendung des Check Scripts gestaltet sich durch die Verwendung des Docker Containers sehr einfach:
docker pull anexia/drowncheck:latest
docker run –rm=true -t -i anexia/drowncheck:latest 10.0.0.2 443
10.0.0.2 sollte mit der IP Adresse des Zielsystems und 443 mit der jeweiligen Port-Nummer ersetzt werden.