Современные промышленные информационные системы опираются на широкий спектр компонентов открытого программного обеспечения (ОПО): системные библиотеки, демоны, утилиты мониторинга и т. д. Одним из таких ключевых компонентов является библиотека GNU C Library (glibc), обеспечивающая работу пользовательских и системных процессов в среде Linux.
Использование ОПО даёт организациям атомной отрасли гибкость и прозрачность кода, но одновременно повышает риск эксплуатации публично известных уязвимостей. Для объектов КИИ внедрение стандартных обновлений часто затруднено — любая замена версий требует повторной сертификации и проверки совместимости. Поэтому особую значимость приобретают методы точечного устранения уязвимостей без полной миграции версии, например — перенос исправлений из официальных репозиториев с помощью git cherry-pick.
Для идентификации и анализа уязвимостей используются открытые источники:
– Международная база CVE (Common Vulnerabilities and Exposures);
– NVD (National Vulnerability Database) — официальный каталог NIST США;
– отечественная база БДУ ФСТЭК России;
– advisories дистрибутивов (например, Ubuntu Security Notices, Debian Security Tracker, Red Hat Bugzilla);
– отчёты исследовательских компаний, таких как Qualys TRU, Sysdig и Tarlogic Security.
Для каждой уязвимости публикуется идентификатор CVE, описание, оценка CVSS и ссылки на исправления. Это позволяет выстраивать внутренний цикл Vulnerability Management, ориентированный на мониторинг, приоритизацию и устранение дефектов в ПО.
В библиотеке glibc версий до 2.39 включительно обнаружена уязвимость CVE-2023–6780, связанная с целочисленным переполнением при вычислении размера буфера в функции __vsyslog_internal. Ошибка возникает при формировании сообщения журнала системных логов, если длина строки превышает допустимые границы. Возможными последствиями являются отказ в обслуживании и потенциальное повреждение памяти.
Подробное описание уязвимости представлено в базе NVD, а также в advisories проектов Debian, Ubuntu и Red Hat. Исследование Qualys TRU подтверждает механизм ошибки и описывает возможные способы детектирования аномального поведения в процессе записи в syslog.
Официальное исправление внесено в репозиторий GNU C Library в виде коммита
Таблица 1
Исправление уязвимости
|
Commit |
ddf542da94caf97ff43cc2875c88749880b7259b |
|
Название |
syslog: Fix integer overflow in __vsyslog_internal (CVE-2023–6780) |
|
Автор |
Arjun Shankar |
|
Дата |
15 января 2024 г. |
|
URL |
https://sourceware.org/git/?p=glibc.git;a=commit;h=ddf542da94caf97ff43cc2875c88749880b7259b |
В этом коммите добавлена проверка границ при сложении значений, используемых для вычисления размера буфера, что предотвращает переполнение целого типа.
Методика устранения уязвимостей методом git cherry-pick включает в себя несколько этапов:
– Этап 1 — Выявление
Проводится анализ используемых версий glibc и их соответствия спискам уязвимых версий, указанным в NVD и security-advisories.
– Этап 2 — Получение исправления
Из официального репозитория извлекается нужный коммит и выполняется частичный перенос исправления с помощью команд git fetch origin и git cherry-pick
– Этап 3 — Сборка и тестирование
Библиотека пересобирается в локальном окружении, после чего проводится модульное и функциональное тестирование:
– Запуск тестов.
Большинство зрелых библиотек сопровождаются встроенными тестовыми наборами, которые позволяют проверить корректность реализации как отдельных компонентов, так и системы в целом. В зависимости от используемой системы сборки запуск тестов осуществляется стандартными командами — например, make check или make test (Autotools), ctest (CMake), meson test (Meson) и аналогичными. В случае glibc используется команда make check, охватывающая широкий спектр юнит- и интеграционных тестов.
– Статический анализ.
Для выявления скрытых дефектов, потенциальных уязвимостей и несоответствий стилю кода применяются инструменты статического анализа, такие как cppcheck, clang-tidy и другие. Это позволяет обнаружить проблемы, не проявляющиеся при обычном выполнении.
– Целевая верификация исправления.
Помимо штатных проверок, проводится специализированное тестирование, направленное на подтверждение устранения конкретной уязвимости. Например, для проверки корректности исправления переполнения буфера в функции выполняется её вызов с длинными сообщениями, включая граничные и нестандартные значения.
– Этап 4 — Документирование и контроль
Все результаты фиксируются в системе управления конфигурациями (GitLab, Nexus, или внутренние средства). Указывается идентификатор CVE, commit-hash, результаты тестов и дата интеграции патча. Формируется внутренний отчёт о повышении уровня защищённости ПО.
Метод git cherry-pick является эффективным инструментом для точечного устранения уязвимостей в открытом программном обеспечении без необходимости обновления версий. На примере CVE-2023–6780 в библиотеке glibc показано, что официальный патч может быть безопасно перенесён в эксплуатируемую версию при соблюдении требований по тестированию и контролю. Такой подход особенно актуален для организаций атомной отрасли и других объектов КИИ, где обеспечение непрерывности технологического процесса не позволяет проводить частые обновления ПО.
Литература:
- Dissanayake N., Jayatilaka A., Zahedi M., Babar M. A. Software Security Patch Management — A Systematic Literature Review of Challenges, Approaches, Tools and Practices. — Текст: электронный // arXiv: [сайт]. — URL: https://arxiv.org/abs/2012.00544 (дата обращения: 13.10.2025).
- Dissanayake N., Zahedi M., Jayatilaka A., Babar M. A. Why, How and Where of Delays in Software Security Patch Management: An Empirical Investigation in the Healthcare Sector. — Текст: электронный // arXiv: [сайт]. — URL: https://arxiv.org/abs/2202.09016 (дата обращения: 13.10.2025).
- Dissanayake N., Zahedi M., Jayatilaka A., Babar M. A. A Grounded Theory of the Role of Coordination in Software Security Patch Management. — Текст: электронный // arXiv: [сайт]. — URL: https://arxiv.org/abs/2106.03458 (дата обращения: 13.10.2025).
- Qualys Threat Research Unit. CVE-2023–4911: Local Privilege Escalation in glibc’s ld.so (“Looney Tunables”). — Текст: электронный // Qualys Blog: [сайт]. — URL: https://blog.qualys.com/vulnerabilities-threat-research/2023/10/03/cve-2023–4911-looney-tunables-local-privilege-escalation-in-the-glibcs-ld-so (дата обращения: 13.10.2025).
- NIST. CVE-2023–4911 Detail. — Текст: электронный // National Vulnerability Database (NVD): [сайт]. — URL: https://nvd.nist.gov/vuln/detail/CVE-2023–4911 (дата обращения: 13.10.2025).
- Sysdig. Detecting and Mitigating CVE-2023–4911. — Текст: электронный // Sysdig Blog: [сайт]. — URL: https://sysdig.com/blog/cve-2023–4911 (дата обращения: 13.10.2025).
- Tarlogic Security. CVE-2023–4911: Vulnerability Looney Tunables in glibc. — Текст: электронный // Tarlogic: [сайт]. — URL: https://www.tarlogic.com/blog/cve-2023–4911-vulnerability-looney-tunables-in-glibc (дата обращения: 13.10.2025).
- Cioffi J., Simplicio M. A. On the Risks and Security of Software Updates: A Systematic Literature Review. — Текст: электронный // SSRN: [сайт]. — URL: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4901397 (дата обращения: 13.10.2025).
- Dissanayake N., Jayatilaka A., Zahedi M., Babar M. A. An Empirical Study of Automation in Software Security Patch Management. — Текст: электронный // ResearchGate: [сайт]. — URL: https://www.researchgate.net/publication/363331994_An_Empirical_Study_of_Automation_in_Software_Security_Patch_Management (дата обращения: 13.10.2025).
- Dissanayake N., Jayatilaka A., Zahedi M., Babar M. A. Why, How and Where of Delays in Software Security Patch Management: An Empirical Investigation in the Healthcare Sector. — Текст: электронный // ACM Digital Library: [сайт]. — URL: https://dl.acm.org/doi/10.1145/3555087 (дата обращения: 13.10.2025).

