Einführung
Am 14. Oktober 2014 wurde eine Sicherheitslücke in Version 3 des SSL-Verschlüsselungsprotokolls gemeldet. Diese Sicherheitsanfälligkeit, die als POODLE (Padding Oracle On Downgraded Legacy Encryption) bezeichnet wird, ermöglicht es einem Angreifer, mit dieser Version des Protokolls verschlüsselte Informationen im Klartext mithilfe eines Man-in-the-Middle-Angriffs zu lesen.
Obwohl SSLv3 eine ältere Version des Protokolls ist, die hauptsächlich veraltet ist, greifenmanyder Software immer noch auf SSLv3 zurück, wenn keine besseren Verschlüsselungsoptionen verfügbar sind. Noch wichtiger ist, dass ein Angreifer SSLv3-Verbindungen erzwingen kann, wenn dies eine verfügbare Alternative für beide Teilnehmer ist, die eine Verbindung herstellen möchten.
Die POODLE-Sicherheitsanfälligkeit betrifft alle Dienste oder Clients, die die Kommunikation über SSLv3 ermöglichen. Da dies ein Fehler im Protokolldesign und kein Implementierungsproblem ist, isteveryoftware, die SSLv3 verwendet, anfällig.
Weitere Informationen zur Sicherheitsanfälligkeit finden Sie in den CVE-Informationen unterCVE-2014-3566.
Was ist die POODLE-Sicherheitsanfälligkeit?
Die POODLE-Sicherheitsanfälligkeit ist eine Schwachstelle in Version 3 des SSL-Protokolls, die es einem Angreifer in einem Man-in-the-Middle-Kontext ermöglicht, den Nur-Text-Inhalt einer SSLv3-verschlüsselten Nachricht zu entschlüsseln.
Wer ist von dieser Sicherheitsanfälligkeit betroffen?
Diese Sicherheitsanfälligkeit betrifft jede Software, die zur Kommunikation mit SSLv3 gezwungen werden kann. Dies bedeutet, dass jede Software, die einen Fallback-Mechanismus mit SSLv3-Unterstützung implementiert, anfällig ist und ausgenutzt werden kann.
Einige gängige Softwareteile, die möglicherweise betroffen sind, sind Webbrowser, Webserver, VPN-Server, Mailserver usw.
Wie funktioniert es?
Kurz gesagt, die POODLE-Sicherheitsanfälligkeit liegt vor, weil das SSLv3-Protokoll die Füllbytes, die mit verschlüsselten Nachrichten gesendet werden, nicht ausreichend überprüft.
Da diese von der empfangenden Partei nicht verifiziert werden können, kann ein Angreifer diese ersetzen und an das vorgesehene Ziel weiterleiten. Wenn dies auf eine bestimmte Weise erfolgt, wird die geänderte Nutzlast möglicherweise vom Empfänger ohne Beanstandung akzeptiert.
Durchschnittlich einmal von 256 Anforderungen wird am Ziel akzeptiert, sodass der Angreifer ein einzelnes Byte entschlüsseln kann. Dies kann leicht wiederholt werden, um weitere Bytes schrittweise zu entschlüsseln. Jeder Angreifer, der einen Teilnehmer wiederholt zum erneuten Senden von Daten mithilfe dieses Protokolls zwingen kann, kann die Verschlüsselung innerhalb kürzester Zeit aufheben.
Wie kann ich mich schützen?
Es sollten Maßnahmen ergriffen werden, um sicherzustellen, dass Sie in Ihren Rollen als Client und Server nicht anfällig sind. Da die Verschlüsselung normalerweise zwischen Clients und Servern ausgehandelt wird, sind beide Parteien betroffen.
Server und Clients sollten Schritte unternehmen, um die SSLv3-Unterstützung vollständig zu deaktivieren. Viele Anwendungen verwenden standardmäßig eine bessere Verschlüsselung, implementieren jedoch die SSLv3-Unterstützung als Ersatzoption. Dies sollte deaktiviert werden, da ein böswilliger Benutzer die SSLv3-Kommunikation erzwingen kann, wenn beide Teilnehmer dies als akzeptable Methode zulassen.
So schützen Sie gängige Anwendungen
Im Folgenden wird erläutert, wie Sie SSLv3 für einige gängige Serveranwendungen deaktivieren. Bewerten Sie Ihre Server sorgfältig, um alle zusätzlichen Dienste zu schützen, die möglicherweise auf SSL / TCP-Verschlüsselung beruhen.
Da die POODLE-Sicherheitsanfälligkeit kein Implementierungsproblem darstellt und ein inhärentes Problem mit dem gesamten Protokoll darstellt, gibt es keine Problemumgehung und die einzige zuverlässige Lösung besteht darin, sie nicht zu verwenden.
Nginx Web Server
Um SSLv3 auf dem Nginx-Webserver zu deaktivieren, können Sie die Direktivessl_protocols
verwenden. Dies befindet sich in den Blöckenserver
oderhttp
in Ihrer Konfiguration.
Unter Ubuntu können Sie dies beispielsweise entweder global zu/etc/nginx/nginx.conf
innerhalb deshttp
-Blocks oder zu jedemserver
-Block im/etc/nginx/sites-enabled
-Verzeichnis hinzufügen.
sudo nano /etc/nginx/nginx.conf
Um SSLv3 zu deaktivieren, sollte die Anweisungssl_protocols
wie folgt festgelegt werden:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Sie sollten den Server neu starten, nachdem Sie die obigen Änderungen vorgenommen haben:
sudo service nginx restart
Apache Web Server
Um SSLv3 auf dem Apache-Webserver zu deaktivieren, müssen Sie die vom Modulmod_ssl
bereitgestellte AnweisungSSLProtocol
anpassen.
Diese Anweisung kann entweder auf Serverebene oder in einer virtuellen Hostkonfiguration festgelegt werden. Abhängig von der Apache-Konfiguration Ihrer Distribution befindet sich die SSL-Konfiguration möglicherweise in einer separaten Datei, die als Quelle dient.
Unter Ubuntu kann die serverweite Spezifikation für Server durch Bearbeiten der/etc/apache2/mods-available/ssl.conf
-Datei angepasst werden. Wennmod_ssl
aktiviert ist, verbindet ein symbolischer Link diese Datei mit dem Unterverzeichnismods-enabled
:
sudo nano /etc/apache2/mods-available/ssl.conf
Unter CentOS können Sie dies in der SSL-Konfigurationsdatei anpassen, die sich hier befindet (wenn SSL aktiviert ist):
sudo nano /etc/httpd/conf.d/ssl.conf
Im Inneren finden Sie die DirektiveSSLProtocol
. Wenn dies nicht verfügbar ist, erstellen Sie es. Ändern Sie dies, um die Unterstützung für SSLv3 explizit zu entfernen:
SSLProtocol all -SSLv3 -SSLv2
Speichern und schließen Sie die Datei. Starten Sie den Dienst neu, um Ihre Änderungen zu aktivieren.
Unter Ubuntu können Sie Folgendes eingeben:
sudo service apache2 restart
Auf CentOS wäre dies:
sudo service httpd restart
HAProxy Load Balancer
Um SSLv3 in einem HAProxy-Load-Balancer zu deaktivieren, müssen Sie die Dateihaproxy.cfg
öffnen.
Dies befindet sich bei/etc/haproxy/haproxy.cfg
:
sudo nano /etc/haproxy/haproxy.cfg
Wenn Sie in Ihrer Front-End-Konfiguration SSL aktiviert haben, gibt die Anweisungbind
die öffentliche IP-Adresse und den Port an. Wenn Sie SSL verwenden, möchten Sieno-sslv3
am Ende dieser Zeile hinzufügen:
frontend name
bind public_ip:443 ssl crt /path/to/certs no-sslv3
Speichern und schließen Sie die Datei.
Sie müssen den Dienst neu starten, um die Änderungen zu implementieren:
sudo service haproxy restart
OpenVPN VPN Server
Aktuelle Versionen von OpenVPN erlauben kein SSLv3. Der Dienst ist für dieses spezielle Problem nicht anfällig, sodass Sie Ihre Konfiguration nicht anpassen müssen.
Postfix SMTP Server
Wenn Ihre Postfix-Konfiguration so eingerichtet ist, dass eine Verschlüsselung erforderlich ist, wird eine Direktive namenssmtpd_tls_mandatory_protocols
verwendet.
Sie finden dies in der Hauptkonfigurationsdatei von Postfix:
sudo nano /etc/postfix/main.cf
Wenn ein Postfix-Server so eingerichtet ist, dass er zu jeder Zeit Verschlüsselung verwendet, können Sie sicherstellen, dass SSLv3 und SSLv2 nicht akzeptiert werden, indem Sie diesen Parameter festlegen. Wenn Sie die Verschlüsselung nicht erzwingen, müssen Sie nichts tun:
smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3
Speichern Sie Ihre Konfiguration. Starten Sie den Dienst neu, um Ihre Änderungen zu implementieren:
sudo service postfix restart
Dovecot IMAP und POP3 Server
Um SSLv3 auf einem Dovecot-Server zu deaktivieren, müssen Sie eine Direktive namensssl_protocols
anpassen. Abhängig von den Paketierungsmethoden Ihrer Distributionen werden SSL-Konfigurationen möglicherweise in einer alternativen Konfigurationsdatei gespeichert.
Für die meisten Distributionen können Sie diese Direktive anpassen, indem Sie diese Datei öffnen:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Wenn Sie Dovecot 2.1 oder höher verwenden, legen Sie die Anweisungssl_protocols
fest, um SSLv2 und SSLv3 zu deaktivieren:
ssl_protocols = !SSLv3 !SSLv2
Wenn Sie eine Version von Dovecot verwenden, die niedriger als 2.1 ist, können Siessl_cipher_list
o einstellen, dass SSLv3 wie folgt nicht zugelassen wird:
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!SSLv3
Speichern und schließen Sie die Datei.
Starten Sie den Dienst neu, um Ihre Änderungen zu implementieren:
sudo service dovecot restart
Weitere Schritte
Neben Ihren serverseitigen Anwendungen sollten Sie auch alle Clientanwendungen aktualisieren.
Insbesondere Webbrowser sind aufgrund ihrer Protokollverhandlung möglicherweise für dieses Problem anfällig. Stellen Sie sicher, dass Ihre Browser SSLv3 nicht als akzeptable Verschlüsselungsmethode zulassen. Dies kann in den Einstellungen oder durch die Installation eines zusätzlichen Plugins oder einer Erweiterung angepasst werden.
Fazit
Aufgrund der weit verbreiteten Unterstützung von SSLv3 ist diese Sicherheitsanfälligkeit weitreichend und gefährlich, auch wenn eine stärkere Verschlüsselung aktiviert ist. Sie müssen Maßnahmen ergreifen, um sich als Verbraucher und Anbieter von Ressourcen zu schützen, die SSL-Verschlüsselung verwenden.
Informieren Sie sich unbedingt über alle netzwerkzugänglichen Dienste, die SSL / TLS in beliebiger Form nutzen können. Häufig erfordern diese Anwendungen explizite Anweisungen, um schwächere Verschlüsselungsformen wie SSLv3 vollständig zu deaktivieren.