ПІДГОТОВКА ДАНИХ НА ОСНОВІ ГРАФІКІВ ДЛЯ ВИЯВЛЕННЯ ВРАЗЛИВОСТЕЙ ПЕРЕПОВНЕННЯ БУФЕРА В КОДІ В РАМКАХ CI/CD-ПРОЦЕСІВ
DOI:
https://doi.org/10.31891/2307-5732-2026-361-45Ключові слова:
переповнення буфера, статичний аналіз, уніфікований граф програми, індикатори ризику, CI/CD, відтворюваність, off-by-oneАнотація
У роботі представлено відтворюваний підхід до керування ризиками переповнення буфера у C/C++ в умовах CI/CD, що поєднує формалізовану оцінку критичності з прозорими інженерними діями в конвеєрі збірки. Запропонована композитна метрика інтегрує локальні та шляхові індикатори ризику й ураховує класову специфіку (Stack/Heap/Off-by-one), після чого застосовується стратифікація на рівні Low/Medium/High/Critical. Для практичної інтеграції введено «вимикачі» виправлень: відсутність перевірок меж і індексаційні порушення ініціюють автоматичні дії (пропуск, попередження з постановкою задачі, блокування) та політику строків усунення (SLA) із фіксованими дедлайнами. Відтворюваність забезпечується закріпленням профілів препроцесора, версій інструментів і маніфестів прогонів, а також збереженням артефактів (SARIF/HTML-звіти, параметри середовища, журнали рішень) для аудиту. Експериментальну оцінку виконано на шести проєктах відкритого коду для двох профілів збірки (Debug/Release) з порівнянням проти cppcheck, flawfinder і візуального базового підходу (YOLO). Оцінювання за Precision, Recall, F1, специфічністю, стабільністю повторних прогонів і часом аналізу на файл засвідчило перевагу запропонованого методу: підвищення F1 і специфічності, найвищу відтворюваність між повторними прогонами за збереження прийнятного часу аналізу для CI/CD. Крім того, інтеграція з політикою SLA збільшує частку своєчасно закритих випадків High/Critical, що безпосередньо знижує операційні ризики на етапі PR/коміту та підвищує надійність релізів. Отримані результати демонструють, що формалізація критичності в зв’язці з «вимикачами» та гейтами якості утворює замкнений цикл «виявлення — виправлення — верифікація», придатний до масштабування на різні репозиторії, мови та конфігурації збірки.
Завантаження
Опубліковано
Номер
Розділ
Ліцензія
Авторське право (c) 2026 ЄВГЕНІЙ СЄРГЄЄВ (Автор)

Ця робота ліцензується відповідно до ліцензії Creative Commons Attribution 4.0 International License.