Zeitserver: Sicherheitslücken in NTP

22.12.2014 - In der Referenzimplementierung des Network Time Protocol (NTP) wurden mehrere Buffer Overflows gefunden, die die Ausführung von Code auf NTP-Servern erlauben.

Die Entwickler der NTP-Software haben eine Sicherheitswarnung herausgegeben. Demnach wurden mehrere Buffer Overflows gefunden, die es einem Angreifer erlauben, Code auf betroffenen Servern auszuführen. Nutzer des NTP-Daemons sollten schnellstmöglich updaten. Zur Zeit ist die Webseite des NTP-Projekts überlastet, sie lässt sich aber über den Google-Cache abrufen.

Zeit setzen über das Internet

Das Network Time Protocol (NTP) dient dazu, die Uhrzeit eines Systems über das Internet zu stellen. Meistens kommt dabei die Referenzimplementierung von NTP zum Einsatz, die sowohl einen Client als auch einen Server bereitstellt. Der NTP-Daemon ist dabei auf vielen Unix-Systemen in der Standardkonfiguration installiert. Der Daemon sorgt zum einen dafür, dass die Uhrzeit in regelmäßigen Abständen geprüft und bei Bedarf neu gesetzt wird, zum anderen kann er auch gleich für weitere Systeme die Uhrzeit bereitstellen.

Entdeckt wurden die Sicherheitslücken von Neel Mehta und Stephen Roettger vom Google-Sicherheitsteam. Neel Mehta hatte bereits den Heartbleed-Bug entdeckt. Neben drei Buffer Overflows an verschiedenen Stellen im NTP-Code wurden noch drei weitere Sicherheitslücken gefunden und behoben. Das NTP-Projekt hat die Version 4.2.8 seiner Software veröffentlicht, die alle Lücken behebt. Wer den NTP-Daemon (ntpd) betreibt, sollte die Software umgehend aktualisieren. Anschließend muss auch sichergestellt werden, dass ntpd neu gestartet wurde. Laut der Webseite Threatpost gibt es bereits öffentlich verfügbare Exploits, die die Lücken ausnutzen.

Die Buffer Overflows haben die CVE-IDs CVE-2014-2014-9295 erhalten. Weiterhin wurden an verschiedenen Stellen im Code schwache Zufallszahlen genutzt (CVE-2014-9293, CVE-2014-9294) und in einer Funktion wurde beim Auftreten von Fehlern der Programmablauf nicht abgebrochen (CVE-2014-9296).

NTP-Protokoll generell problematisch

Das NTP-Protokoll stammt aus den 80er-Jahren und hat in der heutigen Zeit mit einigen Problemen zu kämpfen. NTP-Abfragen sind unverschlüsselt und üblicherweise nicht kryptographisch authentifiziert. Damit sind Man-in-the-Middle-Angriffe auf eine NTP-Verbindung problemlos möglich. Zwar gibt es ein Authentifizierungsprotokoll für NTP, aber es wird selten genutzt und ist auch nicht sicher.

Im Oktober zeigte ein Sicherheitsforscher auf der Black Hat Europe, wie man mit Hilfe gefälschter NTP-Antworten den Schutz des HTTP-Strict-Transport-Security-Protokolls (HSTS) aushebeln kann.

NTP-Server werden auch häufig für sogenannte Reflection-Angriffe genutzt. Dabei wird ausgenutzt, dass das von NTP verwendete UDP-Protokoll ein verbindungsloses Protokoll ist. Ein Angreifer kann ein Paket mit einer gefälschten Absenderadresse an einen NTP-Server schicken, die Antwort landet dann beim Opfer. Wenn die Antwort größer als die Anfrage ist kann man damit Denial-of-Service-Angriffe verstärken. Auch DNS wird gerne für Reflection-Angriffe eingesetzt.

TLS als Alternative zu NTP

Eine Alternative zu NTP ist die Möglichkeit, die Uhrzeit über TLS zu setzen. Denn ein TLS-Paket enthält immer auch einen Zeitstempel (je nach Server muss diese allerdings nicht immer korrekt sein). Das von Jacob Appelbaum entwickelte Tool tlsdate kann hierfür genutzt werden.