Отключение NTP в OS X Lion или старше

Из-за новой уязвимости системы безопасности в пакете программного обеспечения Network Time Protocol компания Apple предоставила обновление программного обеспечения для Mountain Lion и более новых версий OS X.

Как обычно, более старые версии OS X, с которыми можно застрять (поскольку аппаратное обеспечение не поддерживает более новые версии, потому что нужна Rosetta и т. д.), не покрываются обновлением для системы безопасности.

Мои вопросы:

  • Достаточно ли отключить «установить дату и время автоматически» в настройках программного обеспечения, чтобы убедиться, что ntpd не запущен?

  • что может сломаться, если двоичный файл ntdp будет просто удален в целях безопасности в OS X Snow Leopard или Lion?

Сомневаюсь, что я мог бы использовать эти инструкции для ограничения области действия ntpd без его полного отключения/удаления, но в этом случае остается риск ошибиться и оставить ntpd незащищенным.

Сообщите в Apple об отсутствии исправлений безопасности в версиях, которые все еще используют клиенты. → apple.com/feedback/macosx.html . У них пока нет securityобратной связи :(.
@danielAzuelos Я дошел до того, что написал сообщение в блоге: blog.frama-c.com/index.php?post/2013/01/01/…
@PascalCuoq оффтоп: Вы могли бы оживить этот iMac, переделав его в хакинтош с помощью NUC) — google.com.ua/… Подумал, что не знаю, стоит ли 17 дюймов заморачиваться. Но 20 дюймов определенно стоит

Ответы (3)

Достаточно ли отключить «установить дату и время автоматически» в настройках программного обеспечения, чтобы убедиться, что ntpd не запущен?

Да .

Вот способ застраховать себя от этого. Откройте Terminalили xtermокно.

Выполните следующую команду:

ps ax | grep ntp

и обратите внимание, что у вас ntpdзапущен процесс.

Открыть System Preferencesи выключитьSet date and time automatically:

Проверьте с помощью psприведенной выше команды, что у вас нет ntpdзапущенного процесса.


Не удаляйте ntpdбинарник, это не обязательно и лишит вас возможности воспользоваться исправлением от Apple :).


Сомневаюсь, что я мог бы использовать эти инструкции для ограничения объема

нет .

Этот рецепт оставит вас в бегах ntpdи, следовательно, подвергнет атаке.

По какой-то причине снятие флажка «установить дату и время автоматически» не убило процесс ntpd для меня. Мне пришлось бежать:sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
Команда, которую вы использовали, - это именно то, что System Preferencesделает графический интерфейс. При его использовании вы должны проверить, tail -f /var/log/system.logчто может пойти не так в вашем файле System Preferences. Для исследования этой проблемы советую запустить еще один вопрос.

Вместо того, чтобы отключать ntpd, вы должны загрузить исходный код для версии 4.2.8 ntp и скомпилировать его самостоятельно. Все, что вам нужно, это Xcode для Lion/SnowLeo. Он должен нормально работать на 10.6.x и 10.7.x.

Я обновил свою установку 10.10 сразу после публикации CVE и выпуска исходного кода, и я не стал ждать, пока Apple выпустит обновление.

Чтобы скомпилировать ntpd, загрузите исходный код с ntp.org и примените патч для OS X/FreeBSD. После применения этого патча вы сможете просто запустить «./configure && make». Затем вы можете скопировать двоичные файлы в соответствующие каталоги (/usr/sbin/ и /usr/bin/).

Для Mac OS X 10.7 (лев):

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

Вот список файлов и папок, которым они принадлежат, которые будут построены из исходного кода выше. После компиляции все эти файлы будут находиться в различных подпапках.

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

Переименуйте старые, используя что-то вроде:

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

а затем переместите новый. Обязательно разделите файлы после их перемещения на место:

sudo chown root:wheel /usr/sbin/ntpd

Примечание . Я не использовал, sudo make installпотому что не доверял Makefile (я не был уверен, что он поместит файлы в те же папки, в которые их изначально поместила Apple, и хотел убедиться, что они все еще находятся в том же месте, что и старые те). Перемещение 6 файлов вручную не представляет большой проблемы. Остальные файлы (man-страницы, html-страницы и т. д.) одинаковы, поэтому вам не нужно беспокоиться о их перемещении.

пожалуйста, добавьте, какие файлы должны быть скопированы и куда
@klanomath Я только что отредактировал свой комментарий, добавив больше информации. Дайте мне знать, если у вас возникнут какие-либо проблемы.
я добавил остальные и 10 баллов ;-)
а как же нтпснмпд?
@klanomath Я не верю, что Apple поставляет ntpsnmpd. Это даже не часть 10.10 и не часть их обновления безопасности. Если вам это нужно (вероятно, вам это не нужно), поместите его в /usr/bin/. Но чем меньше у вас исполняемых файлов, тем безопаснее.
Для тех, кто не хочет выполнять замену вручную, достаточно запустить ./configure --prefix='/usr'в качестве начального шага, а затем выполнить make ; sudo make install.
@TraneFrancks, спасибо, я проверю это на виртуальной машине и добавлю, если оно работает правильно.
@MelB Надеюсь, вы не возражаете, если я переработаю ваш вопрос, например, добавлю совет TraneFrancks (после его надлежащего тестирования)?
@klanomath После того, как вы перепроверите это, вперед! У меня не было под рукой виртуальной машины, чтобы увидеть, где именно оказались все исполняемые файлы.
Просто заметка, которая make installвставляет ntpsnmpd, /usr/sbinа не /usr/bin.
NTP v4.2.8p2 только что был выпущен. Его можно скачать здесь: archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p2.tar.gz
  1. Я не вникал в документацию по взлому подробно. Обычно ntp делает периодические запросы к серверам, чтобы получить исправление. После того, как дрейф местных часов установлен, эти запросы не являются частыми.

  2. Большинство брандмауэров настроены на игнорирование пакетов запросов извне. Я думаю, что NTP использует UDP, который номинально не имеет гражданства. Обычно брандмауэр пропускает пакет UDP обратно в течение небольшого промежутка времени после того, как пакет UDP вышел. Обратный пакет должен быть с правильного IP и иметь правильный порт. Черная шляпа должна либо подорвать ваш DNS-сервер, либо подорвать ваш NTP-сервер.

Так может ли кто-нибудь объяснить, как эта угроза на самом деле приводится в действие, если предположить, что человек не указывает pool.ntp.org в качестве своего ntp-сервера?


Способы обойти это:

  1. Сборка из исходников -- выше.
  2. Используйте порты Mac. Это делает установку довольно безболезненной, хотя первоначальная сборка займет значительное время и изрядное количество места. Дополнительная информация https://www.macports.org/

Вы также можете использовать Fink или Homebrew таким образом, но MacPorts, похоже, меньше зависит от Apple OS, поэтому в долгосрочной перспективе для более старой системы, я подозреваю, будет меньше проблем.

  1. Настройте неуязвимую машину в качестве локального сервера ntp. Направьте уязвимые машины на сервер ntp. В вашем брандмауэре заблокируйте как исходящий, так и входящий трафик для ntp для всех компьютеров, кроме ntpserver. Когда я запускал локальную школьную сеть, у меня была одна машина (freebsd), на которой работала куча сетевых служб, включая ntp. Затем он будет транслировать один пакет ntp каждые 64 секунды.