📦 Обнаружение устаревших общих библиотек в памяти с помощью UChecker – Information Security Squad
📦 Обнаружение устаревших общих библиотек в памяти с помощью UChecker
В этом руководстве объясняется, что такое UChecker и как определять устаревшие разделяемые библиотеки в памяти с помощью UChecker в операционных системах Linux.

Введение

ИТ-организации, которые полагаются на бесплатное программное обеспечение с открытым исходным кодом (FOSS), сталкиваются с постоянной проблемой при обработке незащищенных общих библиотек.

Это нетривиальная проблема, так как общие библиотеки являются объектом атак.

Например, исследования показывают, что OpenSSL является наиболее целевым программным обеспечением в мире, на которое приходится 19% враждебной активности во всем мире – https://hello.global.ntt/en-us/insights/2020-global-threat-intelligence-report

Если вы используете библиотеки OpenSSL и GNU C (glibc) среди многих сопоставимых пакетов с открытым исходным кодом, вы обязаны своевременно обновлять и управлять исправлениями.
Традиционный подход к обновлению библиотек предполагает перезагрузку всего сервера или перезапуск всех процессов, если нет возможности определить, какие процессы все еще используют устаревшие библиотеки.
Однако перезагрузки системы сами по себе вызывают осложнения и риски.
Благодаря команде KernelCare мы можем легко решить эту проблему с помощью простого скрипта под названием UChecker.

Что такое UChecker

UChecker, сокращение от Userspace Checker, – это бесплатный сканер с открытым исходным кодом, который определяет, какие из ваших процессов все еще используют устаревшие библиотеки и требуют перезапуска.

Инструмент был создан KernelCare во время разработки live patching для общих библиотек.

С помощью Uchecker вы можете идентифицировать уязвимые библиотеки FOSS и исправлять их.

Вам придется перезагрузить затронутые процессы (если вы не используете службы обновления библиотеки без перезагрузки), но, просканировав уязвимости, вы можете определить, какие процессы требуют внимания, а какие нет.

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

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

Эта практика тоже может быть такой же разрушительной, как и перезагрузка.

Как работает UChecker

Uchecker работает со всеми современными дистрибутивами Linux, начиная с 6-й версии.

Это бесплатное программное обеспечение, созданное на основе JSON и открытое для распространения и/или модификации в соответствии с условиями Стандартной общественной лицензии GNU.

Uchecker обнаруживает процессы, которые используют старые (то есть не исправленные) общие библиотеки.

Он обнаруживает и сообщает об устаревших библиотеках, которые используются запущенными процессами.

Его возможности обнаружения основаны на сравнении BuildID.

В результате инструмент знает об удаленных или замененных файлах.

Инструмент Uchecker может определять идентификатор и имя процесса, а также имена общих библиотек, которые не исправлены, а также их идентификаторы сборки.

Uchecker получает последние BuildID из ресурсов KC.

Затем он запускает процесс путем итерации по /proc/ и получает связанную общую библиотеку из /proc/<pid>/maps.

В этот момент Uchecker спрашивает, не была ли общая библиотека заменена или удалена.

В зависимости от ответа программа будет либо анализировать ELF из файловой системы, либо анализировать ELF из отображаемой памяти.

Затем Uchecker собирает BuildID из .note.gnu.build-id.

Обнаружение устаревших библиотек в памяти с помощью UChecker

Установка не требуется!

Просто запустите скрипт Uchecker, чтобы найти непропатченные библиотеки на вашем сервере Linux:

# curl -s -L https://kernelcare.com/checker | python
Приведенная выше команда просканирует ваши серверные системы Linux на наличие устаревших разделяемых библиотек, связанных с процессами python, и выведет их на стандартный вывод.

Заключение

Uchecker позволяет обновлять библиотеки FOSS.

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

Это актуально, среди прочего, для библиотек OpenSSL и GNU C (glibc).

Благодаря таким технологиям, как KernelCare +, теперь даже возможно провести оперативное исправление уязвимостей в основных библиотеках пользовательского пространства в дополнение к библиотекам ядра Linux.

Вы можете обновлять приложения, не влияя на их рабочее состояние.

Никаких перезапусков и перезагрузок не требуется.

Скачать скрипт:

https://github.com/cloudlinux/kcare-uchecker

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *