PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Allgemein] Informationen zu Heartbleed-Vulnerability auf HDMU-Images (CVE-2014-0160)



SpaceRat
11.04.2014, 12:09
OpenSSL an sich
Die HDMU-sh4-Images verwenden eine Version von OpenSSL, die nicht vom Heartbleed-Bug betroffen ist (0.9.8)
OpenSSH
OpenSSH ist generell nicht betroffen
Web-Interface
Ich habe das OpenWebif negativ auf den heartbleed-Bug geprüft, d.h. es ist ebenfalls nicht betroffen. Ich gehe für das alte Webinterface ebenfalls davon aus, daß es nicht betroffen ist, da schlußendlich Punkt 1 greift.
OpenVPN
OpenVPN ist ebenfalls gegen eine nicht betroffene Version von OpenSSL gebaut.
Auf dem Feed befindet sich über dies inzwischen eine aktualisierte Version 2.3.3 von OpenVPN.
oscam mit SSL-webif
Das oscam SSL-Webinterface ist ebenfalls sicher, weil es die nicht betroffene OpenSSL-Version 0.9.8 nutzt.

Seitens der HDMU-sh4-Images ist also m.E. nichts zu befüchten.

Vollständige Entwarnung kann aber trotzdem nicht gegeben werden:
Die Gegenstellen eventueller OpenVPN-Netze können natürlich trotzdem betroffen sein und die privaten Zertifikate/Keys verraten haben. Dies gilt insbesondere für gefreezte Fritz!Boxen, da auf diesen OpenSSL 1.0.1-1.0.1f verwendet werden konnte.
Besonders heimtückisch sind aber auch alle anderen unixoiden Gegenstellen, da praktisch kaum eine Distribution saubere Programm-Versionen benutzt, sondern einen unsäglichen Mix aus Uralt-Versionen plus Backports (Auf die Uraltversion zurückportierte Fixes). Dort kann man dann nicht einmal sicher sein, daß OpenSSL != 1.0.1-1.0.1f sicher ist, da die fehlerhafte Heartbeat-Funktion auch auf ältere Versionen zurückportiert worden sein könnte.

An allen Einfallstoren hochgradig gefährdet sind derzeit hingegen alle Images "Based on OpenPLi 4.0", sofern diese - wie das originale OpenPLi 4.0 - OpenSSL 1.0.1e verwenden.
Auf allen diesen Images wären damit die Sicherheit von OpenVPN und den WebInterfaces (incl. oscam) keinen Pfifferling mehr wert!

- - - Aktualisiert - - -

Geeignete Sicherheitsmaßnahmen, wenn Eure OpenVPN-Gegenstelle(n) vom Heartbleed-Bug betroffen waren/sind:

Solange nicht sicher ist, daß eine Gegenstelle gefixt ist, sollte keine Verbindung mehr zu ihr aufgebaut werden.
Sobald eine Gegenstelle gefixt ist, müssen die Zertifikate und Keys erneuert werden, da die alten kompromittiert worden sein könnten. Ein Nachweis darüber ist nicht möglich.

Sicher betroffen sind Gegenstellen dann, wenn sie
OpenVPN 2.3-rc2-I001 bis OpenVPN 2.3.2-I003 für Windows verwendet haben (Enthalten OpenSSL 1.0.1 bis 1.0.1f)
Auf Fritz!Boxen mit OpenSSL 1.0.1 liefen
Ob OpenSSL 1.0.1 verwendet wird, läßt sich wie folgt ermitteln:

cat /etc/.config | grep FREETZ_OPENSSL_SHLIB_VERSION
Die Ausgabe sollte dann in etwa so aussehen:

root@fritz:/etc$ cat /etc/.config | grep FREETZ_OPENSSL_SHLIB_VERSION
FREETZ_OPENSSL_SHLIB_VERSION="0.9.8"
Steht dort statt 0.9.8 eine 1.0.1, dann ist die Fritz!Box definitiv betroffen, sofern sie nicht bereits mit trunk 11932 oder neuer neu gebaut wurde. In diesem Fall ist sie es aber trotzdem möglicher Weise vorher gewesen!
Auf sonstigen Systemen mit OpenSSL 1.0.1 laufen oder liefen
Die Version von OpenSSL kann mittels

openssl version
geprüft werden.
Die Ausgabe sollte lauten:

OpenSSL 1.0.1g 7 Apr 2014
oder eben eine deutlich ältere Version aus der Reihe 0.9.7, 0.9.8 oder 1.0.0, wobei in diesem Fall trotzdem noch Backports des Bugs enthalten sein könnten.

Allerdings gilt auch hier:
Das System könnte in den letzten Tagen bereits gefixt worden sein.

Im Zweifelsfall sollte immer
1. Erst überprüft werden, ob das System jetzt sicher ist.
2. Wenn 1. erfüllt ist, sollten neue Zertifikate erstellt werden

Macbest
11.04.2014, 13:03
Wichtiges Thema...danke für die Infos. Einiges war mir dann auch neu...klasse.

bonkel
11.04.2014, 16:13
willst/kannst du das im oe anpassen? also pli4?

SpaceRat
11.04.2014, 16:45
willst/kannst du das im oe anpassen? also pli4?
Ich könnte, habe allerdings nicht die Rechte dazu, das an der Quelle zu tun.
Lokal habe ich schon etwas damit gespielt.

Allerdings könnte ich auch sehr gut damit leben, wenn der Kelch an mir vorüber zöge ...

bonkel
11.04.2014, 16:50
meistens reichts wenn man pli nen diff schickt...
kannst du aber auch mir geben :D

SpaceRat
11.04.2014, 17:15
Eigentlich sind's übrigens nur zwei bitbake-Rezepte, die angepaßt werden müssen:

In openpli40\openpli-oe-core\openembedded-core\meta\recipes-connectivity\openssl

1. Das Verzeichnis openssl-1.0.1e kopieren/verschieben nach openssl-1.0.1g
2. Die Datei openssl_1.0.1e.bb kopieren/verschieben nach openssl_1.0.1g.bb
3. Die neue Datei openssl_1.0.1g.bb wie folgt anpassen:

--- openssl_1.0.1e.bb 2014-03-16 00:43:53.589299400 +0100
+++ openssl_1.0.1g.bb 2014-04-10 10:59:05.144922300 +0200
@@ -37,8 +37,8 @@
file://find.pl \
"

-SRC_URI[md5sum] = "66bf6f10f060d561929de96f9dfe5b8c"
-SRC_URI[sha256sum] = "f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76 054199c69c1ae3"
+SRC_URI[md5sum] = "de62b43dfcd858e66a74bee1c834e959"
+SRC_URI[sha256sum] = "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7 263cc670c3e028"

PACKAGES =+ " \
${PN}-engines \
4. "Mal eben" alle Patches in ./openssl-1.0.1g überprüfen, ob sie noch benötigt werden und wenn ja, ggf. auf openssl-1.0.1g anpassen (Sie sind ja noch für openssl-1.0.1e).

Achtung:
Danach baut fast alles neu, weil praktisch alles irgendwie (direkt oder indirekt) von OpenSSL abhängt

- - - Aktualisiert - - -

Zweites Rezept:

Entweder in openpli40\openpli-oe-core\meta-openpli\recipes-support\openvpn oder in openpli40\openpli-oe-core\meta-openembedded\meta-networking\recipes-support\openvpn
(Welches richtig ist weiß ich nicht, weil ich schon die 2.3.2 in eines davon manuell gepackt habe ...)

1. openvpn_2.3.2.bb nach openvpn_2.3.3.bb kopieren/verschieben
2. Die neue openvpn_2.3.3.bb so anpassen:

--- openvpn_2.3.2.bb 2014-04-10 10:21:33.952676200 +0200
+++ openvpn_2.3.3.bb 2014-04-10 11:18:24.468938800 +0200
@@ -10,8 +10,8 @@
SRC_URI = "http://swupdate.openvpn.org/community/releases/openvpn-${PV}.tar.gz \
file://openvpn"

-SRC_URI[md5sum] = "06e5f93dbf13f2c19647ca15ffc23ac1"
-SRC_URI[sha256sum] = "20bda3f9debb9a52db262aecddfa4e814050a9404a9106136b 7e3b6f7ef36ffc"
+SRC_URI[md5sum] = "5c66ea3143ac884a3075521bd74ede06"
+SRC_URI[sha256sum] = "f025d14631105a66e501ca897830cd4d26a1438530cd9174dc 6169536ae4b113"

CFLAGS += "-fno-inline"


Dieses zweite Rezept darf aber erst nach dem ersten geändert werden, es nutzt nichts, den neuen OpenVPN 2.3.3 zu bauen, aber gegen das alte OpenSSL 1.0.1e zu linken ...

SpaceRat
12.04.2014, 18:40
Quick fix:

http://openpli.org/forums/topic/33256-openpli-4-and-openssl-cve-2014-0160-heartbleed-security-alert/?view=findpost&p=416885

Dondo
12.04.2014, 19:35
Wichtiges Thema...danke für die Infos. Einiges war mir dann auch neu...klasse.

Ja! Sehr guter Mann, die "Weltraumratte" :D -- Thumbs up!

bonkel
13.04.2014, 12:07
Quick fix:

http://openpli.org/forums/topic/33256-openpli-4-and-openssl-cve-2014-0160-heartbleed-security-alert/?view=findpost&p=416885
so einfach is das nicht....

openembedded-core...ist kein git von pli......

http://git.openembedded.org/openembedded-core/tree/meta/recipes-connectivity/openssl

bonkel
13.04.2014, 12:11
wie du siehst, gibt's da schon openssl als g Version

pli muss die submodules updaten,ich habs schon

SpaceRat
13.04.2014, 13:54
OpenPLi hat jetzt einen nochmals anderen Fix verwendet, nämlich einen zusätzlichen Patch für 1.0.1e (Waren ja noch nicht genug ...).

Das ist genau das, was ich mit

Besonders heimtückisch sind aber auch alle anderen unixoiden Gegenstellen, da praktisch kaum eine Distribution saubere Programm-Versionen benutzt, sondern einen unsäglichen Mix aus Uralt-Versionen plus Backports (Auf die Uraltversion zurückportierte Fixes). Dort kann man dann nicht einmal sicher sein, daß OpenSSL != 1.0.1-1.0.1f sicher ist, da die fehlerhafte Heartbeat-Funktion auch auf ältere Versionen zurückportiert worden sein könnte.
meinte, nur daß es jetzt genau umgekehrt ist:
Eine von der Versionsnummer her an sich betroffene Version enthält in Wirklichkeit einen Patch, um den Bug zu entfernen.

Man kann jetzt also auch nicht mehr sicher sein, daß ein OpenSSL 1.0.1e zumindest immer dann betroffen ist, wenn Heartbeat an ist, da ja jetzt Debian einen Patch dazu gebastelt hat ...

Diese "Du kriegst nur die Fixes, die ich als Dein Distro-Meister für wichtig erachte"-Mentalität ist einer der Gründe, wieso Wiinux auf dem Desktop niemals eine Rolle spielen wird.

Wer auf den "Geschmack" dieser schiefen Versionen gekommen ist, kann sich z.B. auch von vlc eins in die Fresse hauen lassen:
Das Transcoding der Vu+ Solo² und Duo² scheitert bei Linux-Clients mit vlc gerne an einer antiquierten libav/ffmpeg.

bonkel
13.04.2014, 14:46
jo gesehen


Just upgrading OE-core was causing too much trouble for now, so
instead, patch the vulnerability that really matters. Also bump
the PR.


verstehe nicht, welche Probleme da sein sollen, hier geht's ohne probs

hast du ne mips box??
wenn ja vielleicht eine die ich baue? dann kannst ja mal auf sicherheit testen


vpn ebenfalls auf 2.3.3

SpaceRat
13.04.2014, 15:25
Just upgrading OE-core was causing too much trouble for now, so
instead, patch the vulnerability that really matters. Also bump the PR.

verstehe nicht, welche Probleme da sein sollen, hier geht's ohne probs
Natürlich geht's ohne Probleme, was soll da groß anders sein?

Ich habe bei mir übrigens die millionenfach bewährte Google-Variante aus Android aufgespielt:
Mit -DOPENSSL_NO_HEARTBEATS neu kompiliert, fertig.
Das erspart mir die Beschäftigung damit, ob diese ganzen Patches in 1.0.1e einen Sinn machen oder ob man auch einfach ein sauberes 1.0.1g bauen könnte (Das weiß anscheinend inzwischen auch schon niemand mehr, wofür die Patches mal gut waren, also lieber noch einen dazu ... *kotz*)

Da aber im openembedded-core inzwischen auch 1.0.1g drin ist und das ganz ohne Patches, gehe ich davon aus, daß man auch 1.0.1g verwenden und damit dann auch gleich mal tabula rasa mit den Kotzpatches machen kann.


hast du ne mips box??
Natürlich oder meinst Du ich habe eine sh4-Gurke als Haupt-Receiver?
Die sh4-Billigdinger in gebraucht geben halt gute Zweit-/Drittreceiver ab.


wenn ja vielleicht eine die ich baue? dann kannst ja mal auf sicherheit testen
Das ließe sich einrichten, Du brauchst es nur für die Vu+ Ultimo bauen ;>

Der Test ist aber ganz banal:
1. Du brauchst eine Kiste, auf der openssl 1.0.1 läuft:

C:\>openssl version
OpenSSL 1.0.1g 7 Apr 2014
Das kann übrigens auch die Box selber sein.
2. Auf der dann einfach eingeben:

openssl s_client -connect localhost:443 -tlsextdebug
443 ggf. durch den https-Server-Port ersetzen und den Test evtl. auch mit dem oscam-Web-Server-Port wiederholen, wenn dort SSL genutzt wird.
3. Ausgabe prüfen:

root@vuduo2:~# openssl s_client -connect localhost:443 -tlsextdebug
WARNING: can't open config file: /usr/lib/ssl/openssl.cnf
CONNECTED(00000003)
TLS server extension "renegotiation info" (id=65281), len=1
0001 - <SPACES/NULS>
TLS server extension "session ticket" (id=35), len=0
TLS server extension "heartbeat" (id=15), len=1
0000 - 01 .
depth=0 C = DE, ST = North Rhine-Westphalia, L = Cologne, O = The Company, OU = Special Ops, CN = vuduo2.<dyndns>, emailAddress = <email@foo.bar>
verify error:num=18:self signed certificate
verify return:1
depth=0 C = DE, ST = North Rhine-Westphalia, L = Cologne, O = The Company, OU = Special Ops, CN = vuduo2.<dyndns>, emailAddress = <email@foo.bar>
verify return:1
---
Certificate chain
0 s:/C=DE/ST=North Rhine-Westphalia/L=Cologne/O=The Company/OU=Special Ops/CN=vuduo2.<dyndns>/emailAddress=<foo@bar.org>
i:/C=DE/ST=North Rhine-Westphalia/L=Cologne/O=The Company/OU=Special Ops/CN=vuduo2.<dyndns>/emailAddress=<foo@bar.org>
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIC3zCCAkgCCQC/QxL4/aYLxzANBgkqhkiG9w0BAQUFADCBszELMAkGA1UEBhMC
...
dj9hL/u4OexwLBhoaSoeK5mgHg==
-----END CERTIFICATE-----
subject=/C=DE/ST=North Rhine-Westphalia/L=Cologne/O=The Company/OU=Special Ops/CN=vuduo2.<dyndns>/emailAddress=<foo@bar.org>
issuer=/C=DE/ST=North Rhine-Westphalia/L=Cologne/O=The Company/OU=Special Ops/CN=vuduo2.<dyndns>/emailAddress=<foo@bar.org>
---
No client certificate CA names sent
---
SSL handshake has read 1052 bytes and written 511 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-GCM-SHA384
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
...
Verify return code: 18 (self signed certificate)

Entscheidend ist die Ausgabe
"TLS server extension "heartbeat" (id=15), len=1"
Die o.g. Box ist also verwundbar, da heartbeats enthalten sind und OpenSSL 1.0.1e in Verwendung ist:

root@vuduo2:~# openssl version
WARNING: can't open config file: /usr/lib/ssl/openssl.cnf
OpenSSL 1.0.1e 11 Feb 2013

Dieser Test ist natürlich nutzlos, wenn jetzt OpenSSL 1.0.1e mit backport-Patch dazu kommen, die haben dann nämlich heartbeats und eine betroffene Version, aber auch einen Patch ...

Eine Version 1.0.1e mit Patch kann man nur testen, indem man versucht, sie zu exploiten ...
Online geht das hier: Heartbleed test (http://filippo.io/Heartbleed/)
Wenn es mal geht ... ich bin mit diesem Test ums Verrecken nicht an den Topfield gekommen.


vpn ebenfalls auf 2.3.3
Bist 'n Guter, kommst in die Wurst ;)