So schützen Sie Ihren Server vor der POODLE SSLv3-Sicherheitsanfälligkeit

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_protocolsverwenden. 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_protocolswie 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_sslbereitgestellte 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 Anweisungbinddie ö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_listo 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.