NTP unter OS X Lion oder älter deaktivieren

Nach einer neuen Sicherheitslücke im Softwarepaket Network Time Protocol hat Apple ein Software-Update für Mountain Lion und neuere Versionen von OS X bereitgestellt .

Wie üblich sind die älteren Versionen von OS X, an denen man hängen bleiben könnte (weil die Hardware neuere Versionen nicht unterstützt, weil man Rosetta braucht, …), nicht vom Sicherheitsupdate erfasst.

Meine Fragen sind:

  • reicht das Deaktivieren von „Datum und Uhrzeit automatisch einstellen“ in den Softwareeinstellungen aus, um sicherzustellen, dass ntpd nicht ausgeführt wird?

  • Was könnte kaputt gehen, wenn die ntdp-Binärdatei einfach aus Sicherheitsgründen unter OS X Snow Leopard oder Lion gelöscht würde?

Im Zweifelsfall könnte ich diese Anweisungen verwenden , um den Umfang von ntpd einzuschränken, ohne ihn vollständig zu deaktivieren/zu löschen, aber in diesem Fall bleibt das Risiko bestehen, es falsch zu machen und ntpd ungeschützt zu lassen.

Bitte melden Sie diesen Mangel an Sicherheitsupdates für Versionen, die Kunden noch verwenden, an Apple. → apple.com/feedback/macosx.html . Sie haben noch keinen securityFeedback-Eintrag :(.
@danielAzuelos Ich bin sogar so weit gegangen, einen Blogbeitrag zu schreiben: blog.frama-c.com/index.php?post/2013/01/01/…
@PascalCuoq offtopic: Sie könnten diesen iMac wiederbeleben, indem Sie ihn mit NUC in Hackintosh konvertieren) – google.com.ua/… Dachte, ich weiß nicht, ob 17 Zoll die Mühe wert sind. Aber 20 Zoll tun es definitiv

Antworten (3)

reicht das Deaktivieren von „Datum und Uhrzeit automatisch einstellen“ in den Softwareeinstellungen aus, um sicherzustellen, dass ntpd nicht ausgeführt wird?

Ja .

Hier ist der Weg, sich davon zu versichern. Öffnen Sie ein Terminaloder xterm-Fenster.

Führen Sie den folgenden Befehl aus:

ps ax | grep ntp

und stellen Sie fest, dass ein ntpdProzess ausgeführt wird.

Öffnen System Preferencesund ausschaltenSet date and time automatically:

Überprüfen Sie mit dem psobigen Befehl, dass kein ntpdProzess ausgeführt wird.


Entfernen Sie die ntpdBinärdatei nicht, dies ist nicht erforderlich und würde Ihnen die Chance nehmen, einen Fix von Apple zu nutzen :).


Im Zweifel könnte ich diese Anleitung verwenden, um den Umfang einzuschränken

Nein .

Dieses Rezept wird Sie mit einem Rennen zurücklassen ntpdund somit einem Angriff ausgesetzt sein.

Aus irgendeinem Grund hat das Deaktivieren von "Datum und Uhrzeit automatisch festlegen" den ntpd-Prozess für mich nicht beendet. Ich musste laufen:sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
Der von Ihnen verwendete Befehl ist genau das, was die GUI von System Preferencestut. Wenn Sie es verwenden, sollten Sie mit einem überprüfen tail -f /var/log/system.log, was in Ihrer System Preferences. Um dieses Problem zu untersuchen, empfehle ich Ihnen, eine weitere Frage zu stellen.

Anstatt ntpd zu deaktivieren, sollten Sie den Quellcode für Version 4.2.8 von ntp herunterladen und selbst kompilieren. Alles, was Sie brauchen, ist Xcode für Lion/SnowLeo. Es sollte auf 10.6.x und 10.7.x problemlos funktionieren.

Ich habe meine 10.10-Installation unmittelbar nach der Veröffentlichung des CVE und der Veröffentlichung des Quellcodes aktualisiert und ich habe nicht darauf gewartet, dass Apple das Update veröffentlicht.

Um ntpd zu kompilieren, laden Sie den Quellcode von ntp.org herunter und wenden Sie den Patch für OS X/FreeBSD an. Nachdem Sie diesen Patch angewendet haben, können Sie einfach "./configure && make" ausführen. Dann können Sie die Binärdateien in die entsprechenden Verzeichnisse (/usr/sbin/ und /usr/bin/) kopieren.

Für Mac OS X 10.7 (Löwe):

mkdir ntpd-fix
cd ntpd-fix
curl http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8.tar.gz | tar zxf -
cd ntp-4.2.8/ntpd
curl http://bugs.ntp.org/attachment.cgi?id=1165 | patch -p1
cd ..
./configure && make

Hier ist die Liste der Dateien und Ordner, zu denen sie gehören, die aus der obigen Quelle erstellt werden. Nach der Kompilierung befinden sich alle diese Dateien in verschiedenen Unterordnern.

/usr/bin/sntp  
/usr/bin/ntp-keygen  
/usr/bin/ntpq  
/usr/sbin/ntpdc  
/usr/sbin/ntpdate  
/usr/sbin/ntpd

Benennen Sie alte um, indem Sie Folgendes verwenden:

sudo mv /usr/sbin/ntpd /usr/sbin/ntpd.old

und verschieben Sie dann die neue. Stellen Sie sicher, dass Sie die Dateien nach dem Verschieben an Ort und Stelle ändern:

sudo chown root:wheel /usr/sbin/ntpd

Hinweis : Ich habe es nicht verwendet, sudo make installweil ich dem Makefile nicht vertraut habe (ich war mir nicht sicher, ob es Dateien in denselben Ordnern ablegen würde, in denen Apple sie ursprünglich abgelegt hat, und wollte sicher sein, dass sie sich immer noch an derselben Stelle wie alt befinden Einsen). Das manuelle Verschieben von 6 Dateien ist kein großes Problem. Der Rest der Dateien (Manpages, HTML-Seiten usw. sind gleich, sodass Sie sich nicht die Mühe machen müssen, diese zu verschieben.)

Bitte fügen Sie hinzu, welche Dateien wohin kopiert werden sollen
@klanomath Ich habe gerade meinen Kommentar mit weiteren Informationen bearbeitet. Lassen Sie mich wissen, wenn Sie auf Probleme stoßen.
Ich habe den Rest und 10 Punkte hinzugefügt ;-)
Was ist mit ntpsnmpd?
@klanomath Ich glaube nicht, dass Apple versendet ntpsnmpd. Es ist nicht einmal Teil von 10.10 und auch nicht Teil ihres Sicherheitsupdates. Wenn Sie es brauchen (wahrscheinlich nicht), geben Sie es ein /usr/bin/. Aber weniger Zeug, das Sie als ausführbare Dateien haben, ist sicherer.
Für diejenigen, die keine manuellen Ersetzungen vornehmen möchten, sollte es ausreichen, ./configure --prefix='/usr'als ersten Schritt auszuführen und dann mit fortzufahren make ; sudo make install.
@TraneFrancks danke, ich werde dies in einer VM testen und hinzufügen, wenn es richtig funktioniert
@MelB Ich hoffe, es macht Ihnen nichts aus, wenn ich Ihre Frage überarbeite, z. B. den Rat von TraneFrancks hinzufüge (nachdem Sie ihn gründlich getestet haben)?
@klanomath Nachdem Sie es noch einmal überprüft haben, fahren Sie fort! Ich hatte keine VM zur Hand, um zu sehen, wo genau alle ausführbaren Dateien gelandet sind.
Nur eine Notiz, die make installeinfügt ntpsnmpd, /usr/sbinnicht /usr/bin.
NTP v4.2.8p2 wurde gerade veröffentlicht. Es kann hier heruntergeladen werden: archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
  1. Ich habe mich nicht im Detail mit der Dokumentation des Verstoßes befasst. Normalerweise fragt ntp regelmäßig Server ab, um eine Korrektur zu erhalten. Sobald die Drift der lokalen Uhr festgestellt wurde, sind diese Abfragen nicht mehr häufig.

  2. Die meisten Firewalls sind so konfiguriert, dass sie Anforderungspakete von außen ignorieren. Ntp verwendet meiner Meinung nach UDP, das nominell zustandslos ist. Typischerweise lässt eine Firewall ein UDP-Paket für ein kurzes Zeitfenster wieder herein, nachdem ein UDP-Paket ausgesendet wurde. Das Rückpaket muss von der richtigen IP kommen und den richtigen Port haben. Ein schwarzer Hut müsste entweder Ihren DNS-Server oder Ihren NTP-Server untergraben.

Würde also jemand erklären, wie diese Bedrohung tatsächlich ins Spiel gebracht wird, vorausgesetzt, dass die Person nicht pool.ntp.org als seinen NTP-Server angibt?


Möglichkeiten, dies zu umgehen:

  1. Aus Quelle erstellen – oben.
  2. Verwenden Sie Mac-Ports. Dies macht die Installation ziemlich schmerzlos, obwohl der anfängliche Build viel Zeit und viel Platz in Anspruch nehmen wird. Weitere Informationen https://www.macports.org/

Sie können auch Fink oder Homebrew auf diese Weise verwenden, aber MacPorts scheint weniger abhängig von Apple OS zu sein, daher vermute ich, dass es auf lange Sicht für ein älteres System weniger Probleme geben wird.

  1. Konfigurieren Sie einen nicht anfälligen Computer als lokalen NTP-Server. Verweisen Sie anfällige Computer auf den NTP-Server. Blockieren Sie an Ihrer Firewall sowohl den ausgehenden als auch den eingehenden Datenverkehr für ntp für alle außer dem ntpserver-Computer. Als ich ein lokales Schulnetzwerk betrieb, hatte ich eine Maschine (freebsd), auf der eine Reihe von Netzwerkdiensten ausgeführt wurden, einschließlich ntp. Es würde dann alle 64 Sekunden ein einzelnes NTP-Paket übertragen.