Предотвращение критических проблем безопасности сервера с помощью Linux Live Patching

Пользователи корпоративных Linux сталкиваются с растущими рисками, связанными с уязвимостями программного обеспечения, особенно учитывая широкое использование открытого кода в Linux-приложениях и коммерческом ПО.

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

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

Согласно отчету Endor Labs Dependency Management Report, опубликованному в сентябре, вероятность того, что исправления безопасности сломают приложение, составляет 75%. В нем раскрывается опасность новых тенденций в области безопасности открытого кода и зависимостей от сторонних программных компонентов. Linux используется во всех отраслях промышленности для запуска внутренних серверов и приложений организаций.

Эти операции требуют более совершенных стратегий безопасности жизненного цикла разработки программного обеспечения, отмечают исследователи. Они обнаружили, что управление зависимостями открытого ПО невозможно только с помощью публичных баз данных рекомендаций. Исправление известных проблем в коде либо игнорируется, либо откладывается на неопределенный срок. Исследования показывают, что для 69% уязвимостей средняя задержка между выходом публичного патча и его публикацией составляет 25 дней.

Процесс установки патчей сильно нарушает работу системы. Когда нужно что-то обновить, приходится отключать службу или весь сервер. Если что-то видно конечному пользователю, это проблема. Это требует планирования, одобрения всеми заинтересованными сторонами, и все должны подписать, что это происходит в нужное время», – сказал LinuxInsider Жоао Коррейя, эксперт по кибербезопасности в TuxCare.

TuxCare предлагает автоматическое обновление безопасности корпоративной Linux-системы, нейтральное по отношению к производителю, с нулевым временем простоя и без необходимости перезагрузки. Ее решение KernelCare поддерживает множество дистрибутивов Linux, обычно используемых в организациях, обеспечивая гибкость в различных средах.

Сопротивление изменениям сохраняет программное обеспечение небезопасным

По словам Коррейи, стратегии живого исправления были впервые разработаны в 2006 году. Различные коммерческие серверные дистрибутивы Linux, такие как Oracle, Red Hat и Canonicals, имеют свои собственные службы живого исправления.

Организациям хорошо удается внедрять новые технологии, но не так хорошо удается изменить подход к исправлению программного обеспечения, отметил он. ИТ-индустрия по-прежнему занимается традиционным исправлением, как будто за последние 30 лет в компьютерной сфере ничего не изменилось.

Это неправильный подход, предупредил он. Ничто в нашем технологическом стеке и архитектуре используемых нами устройств не осталось прежним. Мы настаиваем на том, чтобы впихнуть традиционные исправления во все. Настоящая проблема заключается не в живом исправлении. Настоящая проблема заключается в том, чтобы изменить отношение людей к живым патчам. Уже более чем доказано, что это работает
- сказал Коррейя

Результаты исследования поддерживают более широкое внедрение живых патчей

Отчет Endor Labs подтверждает его убежденность в необходимости более широкого внедрения живых патчей. Например, в шести экосистемах 47% рекомендаций в публичных базах данных уязвимостей не содержат никакой информации об уязвимостях на уровне кода. Без этого организации не могут определить, могут ли известные уязвимые функции эксплуатироваться в их приложениях.

Например, обновление 20 лучших компонентов с открытым исходным кодом до неуязвимых версий в экосистеме Python позволило бы устранить более 75% всех обнаруженных уязвимостей. Для Java это устранило бы 60% уязвимостей.

Менеджер пакетов Node или NPM, открытый репозиторий инструментов, используемых инженерами для разработки приложений и веб-сайтов, устранит 44% уязвимостей. На фантомные зависимости, невидимые для инструментов безопасности, приходится 56% обнаруженных уязвимостей библиотек.

Исследователи Endor Lab также обнаружили, что 95% обновлений версий зависимостей с открытым исходным кодом могут привести к поломке приложений.

Срочная необходимость внедрения живых патчей

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

Оно не вызывает сбоев в работе, и все еще существует нежелание менять свою методологию, потому что это повлияет на вашу методологию. Но это повлияет на нее в хорошем смысле. Вам больше не нужны окна обслуживания

В некоторых кругах даже ИТ-специалисты не решаются – или не хотят – переходить на «живое» исправление. Новый процесс отличается от того, что они делали все эти годы, и от того, чему их, скорее всего, учили, когда они начинали работать.

Коррейю раздражают ненужные нарушения безопасности, которые происходят из-за того, что «живые» исправления применяются не повсеместно. Когда непропатченная уязвимость затрагивает миллионы серверов по всему миру, проблему можно было бы предотвратить или устранить в течение трех-четырех минут после того, как о ней стало известно.

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

Эта срочность касается всех компьютерных уровней с оговоркой, что академические и правительственные учреждения в большей степени подвержены этой проблеме. Правительственные постановления США теперь налагают более строгие требования к безопасности на государственные учреждения.

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

Процесс живого исправления TuxCares

TuxCare достигает живого исправления с помощью четырехэтапного процесса, который начинается с мониторинга объявлений о новых уязвимостях, затрагивающих ядро Linux:

  1. Создается патч, заменяющий небезопасный код ядра.
  2. Код замены компилируется и подготавливается к развертыванию через серверы распространения TuxCares.
  3. Процесс KernelCare, запущенный на сервере-клиенте, проверяет наличие обновлений каждые четыре часа, если они не инициированы вручную.
  4. Заплатка применяется. Процесс обнаружения и установки может быть настроен автоматически. Модуль ядра KCE приостанавливает все процессы, загружает обновленный двоичный файл в безопасное пространство ядра, перенаправляет все функции на обновленный код и возобновляет работу ядра.

Обычно исправления просты. Либо это ошибка, либо пропущенная проверка баланса, либо переменная, используемая, когда она была освобождена. Базовые проблемы, которые можно легко исправить одной или парой строк кода, объяснил Коррейя.

Кодовые инженеры TuxCares ищут различия до и после развертывания исправления. Они применяют эти различия к другим серверным дистрибутивам Linux с теми же конфигурациями.

Живые исправления для серверов и настольных компьютеров

Коррейя отметил, что живое исправление ядра на серверах Linux значительно отличается от живого исправления на потребительской стороне для настольного дистрибутива Linux. Это большое отличие – необходимость живого исправления для серверов.

Настольные компьютеры Linux регулярно получают исправления безопасности и системные обновления, либо на скользящей основе, либо по повторяющемуся графику, в зависимости от дистрибутива. Некоторые системы, например Ubuntu и Linux Mint, даже предоставляют обновления и исправления ядра, не дожидаясь выхода нового дистрибутива.

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

Существует разница между патчем и обновлением. Обновление – это новая, более незначительная версия пакета. Оно может содержать исправления ошибок, улучшения производительности, новые функции, правки в командной строке и другие улучшения, объяснил Коррейя.

Заплатка – это фрагмент кода, который устраняет уязвимость в существующей версии. Эти исправления устраняют уязвимости без задержек, поэтому существующая реализация может работать более безопасно, а системные администраторы могут повременить с перезагрузкой до следующего окна регулярного обслуживания, добавил он.

Сударев Александр Эксперт по безопасности, криптовалютам и умным домам

Люблю технологии и криптовалюты. Создаю свой умный дом и делюсь этим с Вами. Знаю как предотвратить хакерскую атаку, так как немного смыслю в безопасности

Похожие статьи

Комментарии (0)