Ruby-Anwendungen akzeptieren beliebige SSL-Zertifikate

Anwendungen, die das Modul Net::HTTPS benutzen, sind anfällig für Man-in-the-Middle-Attacken, da der Servername in Zertifikaten nicht geprüft wird.

In Pocket speichern vorlesen Druckansicht 30 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Daniel Bachfeld

Der Sicherheitsdienstleister iSEC hat auf eine Schwachstelle im Net::HTTPS-Modul der Skriptsprache Ruby hingewiesen. Anwendungen, die dieses Modul benutzen, könnten anfällig für Man-in-the-Middle-Attacken sein. Laut Fehlerbericht prüft das Modul zwar, ob ein übermitteltes Zertfikat insgesamt gültig ist, leider ist es offenbar egal, welchen Common Name (CN), also welchen Servernamen das Zertifikat enthält, und ob er zu der aufgerufenen Seite passt. Ein Angreifer könnte so etwa ein beliebiges, gültiges, von einer öffentlichen CA ausgestelltes Zertifikat benutzen, um sich per MiTM-Angriff in eine Verbindung einzuschleichen.

Das Problem liegt laut Bericht in der Connect-Methode in Datei http.rb, die es versäumt, nach dem Aushandeln der SSL-Verbindung die Funktion post_connection_check aufzurufen. Daneben sollen auch die Module net::ftptls, net::telnets und net::imap sowie die CVS-Versionen von net::pop und net::smtp von dem Problem betroffen sein.

Die Fehler finden sich in allen Versionen 1.8.x sowie der Entwicklerversion 1.9 vor dem 23.9.2006. Ein Update auf die Version [:http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p111.tar.gz 1.8.6-p111] oder 1.8.5-p114 behebt das Problem. Der offizielle Fehlerbericht auf ruby-lang.org empfiehlt zudem, die Option http.enable_post_connection_check = true zu setzen, um den Post-Connection-Check zu aktivieren. Red Hat hat bereits eigene Pakete herausgegeben, die die Fehler nicht mehr enthalten, zusätzlich wurde dort noch eine DoS-Schwachstelle beseitigt. Andere Linux-Distributoren dürften in Kürze nachziehen.

Siehe dazu auch:

(dab)