В рамках проекта NTPsec создан защищённый форк NTPD

19 ноября 2015 года

Эрик Реймонд (Eric S. Raymond), один из основателей организации OSI (Open Source Initiative), стоявший у истоков движения открытого ПО и написавший в свое время известное эссе "Собор и Базар", представил бета-выпуск проекта NTPsec, в рамках которого предпринята попытка проведения рефакторинга эталонной реализации протокола NTPv4. Исходные тексты NTPsec размещены в репозитории на GitLab. NTPsec развивается как форк NTP Classic 4.3.34. Кроме Реймонда к работе над NTPsec привлечены разработчики оригинального NTP Classic, инженеры из компаний Hewlett Packard и Akamai Technologies, а также участники проектов GPSD и RTEMS.

Первый бета-выпуск NTPsec пока содержит не все задуманные возможности, а поддерживаемые платформы ограничены Linux и FreeBSD, но базовая функциональность по синхронизации времени работает вполне стабильно, проект полностью совместим с классическим пакетом NTP и использует те же алгоритмы. Изменения в NTPsec в основном касаются переработки внутренностей с внедрением передовых техник предотвращения проведения атак. Например, все функции работы с памятью и строками заменены на защищённые аналоги, не допускающие переполнения буфера. Поставляемые в комплекте экземпляры libevent2 заменены на внешние зависимости. Удалены неиспользуемые компоненты библиотек ISC. Осуществлён переход к манипуляции наносекундными отрезками времени вместо микросекунд. Исправлены ошибки, выявленные при тестировании в системе Coverity.

Из изменений, заметных пользователю, отмечается переименование утилит с целью унификации их имён (sntp переименован в ntpdig, ntp-keygen в ntpkeygen, ntp-wait в ntpwait, update-leap в ntpleapfetch), удаление демона ntpsnmpd (не соответствует RFC 5907) и утилиты ntpdc (следует использовать ntpq), прекращение поддержки устаревших типов эталонных часов. Добавлена новая утилита ntpfrob, предоставляющая средства для диагностики и тонкой настройки локального хронометра. Вместо программы ntpdate предложена shell-обвязка над утилитой ntpdig. Вывод часов приведён в соответствие с форматом ISO8601.

Из планов на будущее отмечается подготовка полнофункционального тестового набора, чистка кодовой базы от устаревших возможностей, полная поддержка IPv6, переход к модульной системе с выделением подсистемы управления часами в компонент refclockd, который будет отделён от алгоритмов синхронизации времени.

Напомним, что для разрешения ситуации с плачевным уровнем безопасности эталонного NTPD уже предпринято несколько инициатив - OpenNTPD от проекта OpenBSD и Ntimed от организации Network Time Foundation, так же курирующей основной проект NTPD. В обоих проектах переработка NTPD с целью повышения безопасности была признана затруднительной из-за большой раздутости кодовой базы (более 300 тысяч строк), что затрудняет проведение полного аудита и переработку (проще оказалось написать новый NTP-сервер с нуля).

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В рамках проекта NTPsec создан защищённый форк NTPD», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.