Funktionsweise von NTP
Das Gesetz von Segal
Ein Mann mit einer Uhr weiß, wie spät es ist Ein Mann mit zwei Uhren ist sich nie sicher.
Der Informatiker David L. Mills schuf NTP in den frühen 1980er Jahren, um Computeruhren mit einer Standardzeitreferenz zu synchronisieren. Seit der Gründung von NTP hat eine Gruppe von Freiwilligen mit Das NTP-Pool-Projekt hat einen großen, öffentlich verfügbaren „virtuellen Cluster von Zeitservern“ unterhalten, der für viele Linux-Distributionen und Netzwerk-Appliances weltweit einen zuverlässigen, benutzerfreundlichen NTP-Dienst für Millionen von Clients bietet.
Wie bei NTP beschrieben .org, NTP arbeitet hierarchisch, indem die Zeit von einer Schicht zur anderen übertragen wird. Beispielsweise dient Stratum 0 als Referenzuhr und ist der genaueste und präziseste Zeitserver (z. B. Atomuhren, GPS-Uhren und Funkuhren) .) Stratum 1-Server nehmen sich Zeit von Stratum 0-Servern usw. bis zu Stratum 15; Stratum 16 cl Ocks werden nicht mit einer Quelle synchronisiert. Die Zeit auf einem Client wird durch einen Paketaustausch mit einem oder mehreren Stratum-Servern festgelegt. Diese Pakete setzen Zeitstempel auf jede Nachricht und die Zeit, die zum Übertragen der Nachrichten benötigt wird, sind Faktoren im Algorithmus zum Herstellen des Konsenses für die Zeit, die auf dem Client liegen sollte.
NTP kann durch Konsens mit eine genaue Zeitquelle bereitstellen mehrere Eingabeserver. Es kann auch feststellen, welche verfügbaren Zeitserver ungenau sind. Eine Herausforderung besteht darin, dass NTP in einer Zeit erstellt wurde, in der die Internet-Community freundlicher war. Während des Starts von NTP waren NTP-Server nicht mit der Benutzerüberprüfung befasst. In den frühen 1980er Jahren war es üblich, dass NTP-Server öffentlich verfügbar waren, da Entwickler Ressourcen zur Fehlerbehebung und Bestätigung ihrer eigenen NTP-Lösung verwenden konnten.
Das Standardprotokoll für NTP ist User Datagram Protocol (UDP). Diese Entwurfsentscheidung schuf Missbrauchsmöglichkeiten. UDP, das verbindungslos ist, ist ein Best-Effort-Protokoll und daher anfälliger für Spoofing und Verlust von Paketen als Transmission Control Protocol (TCP). Während Freiwillige des NTP-Pool-Projekts NTP weiterentwickelt haben, ist die Motivation für viele Netzwerkadministratoren und Geschäftsinhaber, ihre eigenen Geräte zu patchen, nicht so stark. Seit seiner Einführung wurde das NTP-Netzwerkprotokoll in unzählige Systeme integriert, von denen viele nicht gepatcht wurden und möglicherweise Code ausführen, der 20 oder mehr Versionen älter ist.
Angriffe im Zusammenhang mit NTP-Sicherheitslücken
Cory Doctorow schrieb kürzlich über die möglichen Folgen von veraltetem NTP für Boing / Boing:
NTP ist, wie praktisch jeder Computer, mit dem Sie interagieren, seine Uhr genau hält, was eine Funktion ist, die für die Das Funktionieren des Internets kann nicht überbewertet werden … Darüber hinaus hatten Schwachstellen in NTP die vielen Zeitserver des Internets zu Force-Multiplikatoren für Denial-of-Service-Angriffe gemacht, sodass Angriffe nur zu nahezu unaufhaltsamen Angriffen wurden
Die Methode, die für die letzten DDoS-Angriffe verwendet wird, beruht nicht auf Sicherheitslücken, sondern auf einer schlechten Konfiguration. NTP-Dienste antworten auf eine Abfrageanforderung für eine Liste der überwachten Server. Eine einzelne kleine Anfrage mit einer gefälschten Quelle kann eine Liste von 600 Servern erstellen und an ein Ziel gesendet werden. Obwohl es keine Sicherheitsanfälligkeit gibt, kümmern sich die Opfer nicht um die Semantik des Problems, das ihnen Schmerzen verursacht, wenn Hunderte oder Tausende dieser Server auf ein unwissendes Ziel umgeleitet werden. Sie wollen nur Erleichterung.
Die Zeitsynchronisation auf Systemen oder deren Fehlen kann ein wesentlicher Faktor für Schwachstellen sein, die die Grundfunktionen eines Systems beeinträchtigen können. Zusätzlich zum NTP-Missbrauch, der zu DDoS-Angriffen beiträgt, fehlt Die Zeitsynchronisation in einem Netzwerk bietet die Möglichkeit für Wiederholungsangriffe (dh Wiedergabeangriffe), bei denen eine authentische Datenübertragung gefälscht oder böswillig wiederholt verzögert wird.
Beispielsweise kann ein Wiederholungsangriff auftreten, wenn ein Benutzer dies versucht Ein böswilliger Akteur in der Mitte würde die Nachricht abfangen und verhindern, dass sie das beabsichtigte Ziel erreicht. Der böswillige Benutzer sendet dann eine Anforderung zur Identitätsbestätigung und schließt den gestohlenen Nachweis als Validierung ein Wenn die Zeit nicht synchronisiert ist, kann das Fenster, in dem der Austausch zulässig ist, über das hinaus erhöht werden, was als sicher angesehen wird, und ermöglicht die List. Infolgedessen können gültige Benutzer dazu verleitet werden, zu glauben, dass sie erfolgreich sind bestätigte die Identität eines Betrügers, der sich als legitimer Benutzer ausgibt. Um ehrlich zu sein, ist diese Art von Wiederholungsangriff ungewöhnlich und äußerst schwierig, ohne Zugriff auf das Netzwerk, den Kommunikationspfad und einen kompromittierten Computer in diesem Pfad erfolgreich auszuführen.
Viele Sicherheitsexperten wie Shaun Kelly haben festgestellt, dass NTP verwendet wurde, um Protokolle zu bearbeiten und die Zeit auf einem Computersystem zu ändern, wobei die Reihenfolge der Ereignisse geändert wurde.Wenn die Uhren nicht synchronisiert sind, fällt es Netzwerkanalysten viel schwerer, eine Protokollkorrelation zwischen verschiedenen Systemen durchzuführen. Die Manipulation von NTP kann die Identifizierung von Netzwerkaktivitäten und die Abfolge von Ereignissen, die zu einem Angriff führen, erheblich erschweren.
Andere Anwendungen, die gefährdet wären, weil die Zeit nicht richtig funktioniert, sind Hochgeschwindigkeits-Handels- und Sicherheitskameras. Viele zeitkritische Verschlüsselungsalgorithmen mit Schlüsselaustausch und Token sind ebenfalls aufgrund von NTP-Schwachstellen gefährdet.
Best Practices für NTP
Im weiteren Verlauf dieses Beitrags werden Best Practices für die Konfiguration Ihres eigenen NTP-Servers und die Anforderung eines öffentlichen NTP-Servers beschrieben.
Verwenden Sie Public NTP für externe Hosts. Wenn ein Unternehmen Wenn Netzwerkfunktionen, Dienste oder andere eingebettete Plattformen erstellt werden sollen, die außerhalb des Unternehmens bereitgestellt werden sollen, sollten Netzwerkadministratoren in Betracht ziehen, einen öffentlichen NTP-Server aus dem zuvor erwähnten Pool verfügbarer Server anzufordern.
Es ist wichtig zu beachten, dass die meisten öffentlichen NTP-Server Einsatzregeln festlegen. Wenn ein Unternehmen über mehrere Geräte innerhalb des Unternehmens verfügt, die NTP verwenden, ist es sinnvoll, eine eigene Hierarchie für die Synchronisierung einzurichten, anstatt um den Zugriff auf die öffentlich verfügbaren Server zu konkurrieren.
Konfigurieren Sie Ihre eigenen internen Hierarchischer NTP-Dienst für Ihr Netzwerk. Es ist möglich, Stratum 1- oder Stratum 0-NTP-Appliances zu erwerben, um sie intern für weniger als die Kosten eines typischen Servers zu verwenden. Es ist auch möglich, einen privaten NTP-Server zu sehr geringen Kosten einzurichten. Die Machbarkeit der Einrichtung eines kommerziellen NTP-Servers (COTS) von der Stange zeigt sich in den jüngsten Bemühungen, einen Raspberry Pi-Computer als Stratum-1-Server zu konfigurieren. Wenn Sie sich dazu entschließen, Ihre eigenen zu konfigurieren, beachten Sie bitte die folgenden Best Practices:
- Auf UTC-Zeit standardisieren. Standardisieren Sie innerhalb eines Unternehmens alle Systeme auf koordinierte Weltzeit (UTC). Die Standardisierung auf UTC vereinfacht die Protokollkorrelation innerhalb des Unternehmens und mit externen Parteien, unabhängig davon, in welcher Zeitzone sich das zu synchronisierende Gerät befindet.
- Sichern des Netzwerkzeitdienstes. Beschränken Sie die Befehle, die auf den Stratum-Servern verwendet werden können. Erlauben Sie keine öffentlichen Abfragen der Stratum-Server. Erlauben Sie nur bekannten Netzwerken / Hosts, mit ihren jeweiligen Stratum-Servern zu kommunizieren.
- Berücksichtigen Sie den geschäftlichen Bedarf an Kryptografie. Viele Administratoren versuchen, ihre Netzwerke mit verschlüsselter Kommunikation und verschlüsselter Authentifizierung zu sichern. Ich möchte hier einen Hinweis zur Vorsicht geben, da mit NTP zwar kryptografische Dienste zur Sicherung der NTP-Kommunikation verbunden sind, die Verwendung der Verschlüsselung jedoch mehr Ursachen für Probleme wie das Erfordernis der Schlüsselverwaltung und einen höheren Rechenaufwand mit sich bringt.
- Erinnern Sie sich an das Gesetz von Segal. Idealerweise würde es funktionieren, drei oder mehr Stratum 0- oder Stratum 1-Server zu haben und diese Server als primäre Master zu verwenden. Denken Sie an Segals Gesetz: zwei NTP Server machen es schwer zu wissen, welche genau ist. Zwei Stratum 0-Server würden einen genaueren Zeitstempel liefern, da sie eine Zeitquelle verwenden, die als endgültig angesehen wird.
Das Vorhandensein von drei oder mehr Zeitquellen würde es dem Netzwerk ermöglichen, zu warten genaue Zeit, auch wenn einer der primären Master ausfällt. Im Idealfall befinden sich NTP-Server an drei geografisch unterschiedlichen Standorten. Diese Gruppe von primären Mastern wäre die Zeitquelle für das Unternehmen. Sie würden als versteckte Master betrachtet, da sie nur Dienste für die sekundären Schichtserver bereitstellen würden. Diese Konfiguration würde es diesen Servern ermöglichen, Zeit für zusammengestellte sekundäre Master bereitzustellen, die tatsächlich Dienste für eine Organisation bereitstellen. Die primären Master bleiben verborgen und werden nur von der NTP-Infrastruktur aufgerufen, die Dienste an anderer Stelle bereitstellt. Diese Lieferkette sollte es Ihnen ermöglichen, genaue Zeit in Ihrem Unternehmen bereitzustellen und mehrere Quellen zu haben, die eine genaue Zeitquelle bestätigen.
Standorte, an denen mehr Geräte ihre Zeit synchronisieren müssen, können zusätzliche Stratum 2- oder Stratum 3-Server hinzufügen Lassen Sie sie sich sowohl auf die sekundären Master als auch aufeinander verlassen, um die Last auf einem System weiter zu verteilen und Dienste für eine größere Gruppe von NTP-Clients bereitzustellen.
Durch Einrichten eines internen NTP-Dienstes bei der letzten Version Aufgrund des stabilen Codes und der Standardisierung seiner Verwendung ist es schwieriger, zeitbasierte Netzwerkangriffe oder zeitabhängige Prozesse zu kooptieren. Die Identifizierung der Reihenfolge von Ereignissen in einem Kompromiss wird einfacher, da die Zeiten in den Protokollen jetzt Aufzeichnungssysteme sein können. Für Strafverfolgungsbehörden und andere Ermittlungsbehörden können genaue NTP-Dienste sehr konstruktiv sein, um Beweise zu bewerten und eine Kette von Ereignissen zu sequenzieren.
Zusammenfassung und Vorausschau
Da Angriffe immer ausgefeilter werden, findet unser Team von Netzwerkanalysten bei CERT zunehmend internetbezogene Dienste, die in einem Netzwerk nicht gut bereitgestellt werden Langston schrieb in seinem kürzlich veröffentlichten Beitrag zu DNS Best Practices, dass viele dieser Dienste die Grundlage für die Sicherheit und den Betrieb interner und externer Netzwerkanwendungen bilden.
Dies ist das Neueste aus einer Reihe von Blog-Beiträgen, die das Beste bieten Praktiken in diesen grundlegenden Strukturen, um Regierungsbehörden und anderen Unternehmen dabei zu helfen, verborgene Schwachstellenquellen in ihren Netzwerken zu beseitigen. Unsere Teamleiterin Rachel Kartch veröffentlichte den ersten Beitrag in dieser Reihe, Verteilte Denial-of-Service-Angriffe: Vier Best Practices für Prävention und Reaktion.