Bin ich gegenüber den Heartbleed-Bug verwundbar?

Zur Zeit wird viel über den Heartbleed-Bug (CVE-2014-0160) in OpenSSL diskutiert. Betroffen sind die Versionen 1.0.1 bis 1.0.1f.  Scheinbar ist dieser Bug einer der gravierendsten seit langem. Ein Angreifer kann über das Internet 64KB des Arbeitsspeichers eines entfernten Systems auslesen, dessen Verbindung mit der betroffenen OpenSSL Version abgesichert ist.

So kann zunächst der private Key des Systems ausgelesen werden, womit es möglich wird, jeglichen Datenverkehr zu entschlüsseln. So können laufende Verbindungen ausgelesen werden, aber auch Datenverkehr, der in der Vergangenheit abgefangen wurde. Passwörter oder weitere sensible Daten können so ohne Probleme erspäht werden.

Ich habe hier eine kurze Anleitung zusammengeschrieben, mit dessen Hilfe ein Server auf diese Verwundbarkeit überprüft werden kann. Basis ist hierbei das Script von Filippo Valsorda.

Auf Debian sind die Go-Pakete zu alt, darum werden aktuellere benötigt:

wget http://go.googlecode.com/files/go1.2.1.linux-amd64.tar.gz
cd /usr/local/src
tar xvzf $PATH_TO_TAR_GZ/go1.2.1.linux-amd64.tar.gz
mkdir /usr/local/src/go

Anschließend müssen die Umgebungs-Variablen angepasst werden:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/usr/local/src/go

Nun kann das Script heruntergeladen und kompiliert werden:

go get github.com/FiloSottile/Heartbleed
go install github.com/FiloSottile/Heartbleed

Danach liegt das Binary im oben definierten GOPATH, in diesem Beispiel unter /usr/local/src/go/bin.

cd /usr/local/src/go/bin
root@exodus:/usr/local/src/go/bin# ./Heartbleed
This is a tool for detecting OpenSSL Heartbleed vulnerability (CVE-2014-0160).

Usage:

./Heartbleed server_name(:port)

The default port is 443 (HTTPS).

Und hier im Selbstversuch, wenn der Server verwundbar ist:

root@exodus:/usr/local/src/go/bin# ./Heartbleed netzdeponie.de
2014/04/09 02:08:17 ([]uint8) {
 00000000  02 00 79 68 65 61 72 74  62 6c 65 65 64 2e 66 69  |..yheartbleed.fi|
 00000010  6c 69 70 70 6f 2e 69 6f  59 45 4c 4c 4f 57 20 53  |lippo.ioYELLOW S|
 00000020  55 42 4d 41 52 49 4e 45  3a 68 38 50 f1 9a f9 a3  |UBMARINE:h8P....|
 00000030  43 44 14 3a 12 26 10 6b  3f b0 4e 2e 03 03 03 03  |CD.|.&.k!.Z.....|
 00000040  81 d9 8a c0 a7 bf 2e b5  9e 26 df 62 8a 12 e4 92  |.........&.b....|
 00000050  ff d3 6b 61 80 8c 39 34  69 77 33 e1 f1 de a3 d6  |..ka..f4ae3.....|
 00000060  df e6 61 fd f2 c4 28 51  c0 56 3a 77 07 c0 c4 cd  |..a<..(D.V:w....|
 00000070  24 2d 3a 5c 34 e2 53 54  c4 7f 41 63 50 82 bf c9  |$.:\4.FP..fAc...|
 00000080  21 a9 f6 f6 e2 65 03 17  16 4a 68 72              |!....e...Jhr|

2014/04/09 02:08:17 netzdeponie.de - VULNERABLE

Und so sieht es aus, wenn der Server nicht mehr verwundbar ist:

root@exodus:/usr/local/src/go/bin# ./Heartbleed netzdeponie.de
2014/04/09 02:15:12 netzdeponie.de - SAFE

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert