Первый стабильный релиз NTPsec, защищённого форка NTPD
10 октября 2017 года
Эрик Реймонд (Eric S. Raymond), один из основателей организации OSI (Open Source Initiative), представил первый стабильный выпуск NTPsec 1.0, форка эталонной реализации протокола NTPv4 (NTP Classic 4.3.34), сфокусированного на переработке кодовой базы с целью повышения безопасности. В развитии NTPsec участвуют некоторые разработчики оригинального NTP Classic, инженеры из компаний Hewlett Packard и Akamai Technologies, а также участники проектов GPSD и RTEMS. Исходные тексты NTPsec размещены в репозитории на GitLab.
NTPsec 1.0 подвёл итог двух с половиной лет работы над проектом и позиционируется как первый выпуск, пригодный для промышленного внедрения. В ходе работы кодовая база была сокращена на 76% от состояния в момент форка - число строк кода уменьшилось со 178 тысяч до 55 тысяч, в основном за счёт чистки устаревших возможностей, неактуальных платформ и необязательных инструментов. Уменьшение кодовой базы позволило избавиться от кода, связанного с 75% из уязвимостей, выявленных в классическом NTPD. При этом проект остался полностью совместим с классическим пакетом NTP и использует те же алгоритмы.
Кроме чистки также проведена переработка внутренностей и внедрены передовые техники предотвращения атак. Совместно с организацией IETF ведётся работа по разработке нового стандарта NTS (Network Time Security) для безопасной синхронизации времени. Из улучшений отмечается работа по увеличению точности учёта времени, расширение средств мониторинга и статистики, модернизация синтаксиса файла конфигурации, сокращение времени запуска.
В выпуске NTPsec 1.0 также представлен режим автономной работы, при котором используются только локальные источники времени без обращения к внешним серверам и GPS. Новый режим позволяет создавать самодостаточные серверы для окружений повышенной защищённости, которые никак не контактируют в внешним миром и исключают проведение атаки в момент синхронизации с другими NTP-серверами.
Среди других особенностей проекта:
- Все функции работы с памятью и строками заменены на защищённые аналоги, не допускающие переполнения буфера.
- Поставляемые в комплекте экземпляры libevent2 заменены на внешние зависимости.
- Удалены неиспользуемые компоненты библиотек ISC.
- Осуществлён переход к манипуляции наносекундными отрезками времени вместо микросекунд.
- Исправлены ошибки, выявленные при использовании статических анализаторов.
- C целью унификации их имён изменены названия утилит: sntp переименован в ntpdig, ntp-keygen в ntpkeygen, ntp-wait в ntpwait, update-leap в ntpleapfetch;
- Из состава исключён демон ntpsnmpd, который не соответствует RFC 5907;
- Удалены утилиты ntpdc, вместо которых следует использовать ntpq;
- Прекращена поддержка устаревших типов эталонных часов;
- Добавлена новая утилита ntpfrob, предоставляющая средства для диагностики и тонкой настройки локального хронометра.
- Вместо программы ntpdate предложена shell-обвязка над утилитой ntpdig.
- Вывод часов приведён в соответствие с форматом ISO8601.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.