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

Молодой учёный

Анализ и устранение уязвимостей открытого программного обеспечения в промышленной инфраструктуре (на примере библиотеки glibc)

Информационные технологии
15.10.2025
6
Поделиться
Аннотация
В статье рассматривается процесс анализа и устранения уязвимостей открытого программного обеспечения, используемого в промышленных системах (АСУ ТП). На примере уязвимости CVE-2023–6780 в библиотеке GNU C Library (glibc) показан алгоритм выявления и устранения дефектов с использованием частичного переноса исправлений из официального репозитория методом git cherry-pick. Приведены этапы анализа, поиска патча, его интеграции, тестирования и документирования результатов. Рассмотренный подход актуален для объектов критической информационной инфраструктуры (КИИ), где полное обновление программных компонентов ограничено требованиями сертификации и стабильности.
Библиографическое описание
Моряков, А. В. Анализ и устранение уязвимостей открытого программного обеспечения в промышленной инфраструктуре (на примере библиотеки glibc) / А. В. Моряков. — Текст : непосредственный // Молодой ученый. — 2025. — № 42 (593). — С. 11-13. — URL: https://moluch.ru/archive/593/129198.


Современные промышленные информационные системы опираются на широкий спектр компонентов открытого программного обеспечения (ОПО): системные библиотеки, демоны, утилиты мониторинга и т. д. Одним из таких ключевых компонентов является библиотека 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 показано, что официальный патч может быть безопасно перенесён в эксплуатируемую версию при соблюдении требований по тестированию и контролю. Такой подход особенно актуален для организаций атомной отрасли и других объектов КИИ, где обеспечение непрерывности технологического процесса не позволяет проводить частые обновления ПО.

Литература:

  1. 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).
  2. 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).
  3. 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).
  4. 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).
  5. NIST. CVE-2023–4911 Detail. — Текст: электронный // National Vulnerability Database (NVD): [сайт]. — URL: https://nvd.nist.gov/vuln/detail/CVE-2023–4911 (дата обращения: 13.10.2025).
  6. Sysdig. Detecting and Mitigating CVE-2023–4911. — Текст: электронный // Sysdig Blog: [сайт]. — URL: https://sysdig.com/blog/cve-2023–4911 (дата обращения: 13.10.2025).
  7. 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).
  8. 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).
  9. 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).
  10. 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).
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №42 (593) октябрь 2025 г.
Скачать часть журнала с этой статьей(стр. 11-13):
Часть 1 (стр. 1-65)
Расположение в файле:
стр. 1стр. 11-13стр. 65

Молодой учёный