Підготовка даних на основі графіків для виявлення вразливостей переповнення буфера в коді в рамках CI/CD-процесів

Вантажиться...
Ескіз
Дата
2026
Назва журналу
Номер ISSN
Назва тому
Видавець
Хмельницький національний університет
Анотація
У роботі представлено відтворюваний підхід до керування ризиками переповнення буфера у 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/коміту та підвищує надійність релізів. Отримані результати демонструють, що формалізація критичності в зв’язці з «вимикачами» та гейтами якості утворює замкнений цикл «виявлення — виправлення — верифікація», придатний до масштабування на різні репозиторії, мови та конфігурації збірки.
We offer a clear method for managing buffer-overflow risks in C/C++ within CI/CD pipelines. This method combines a formal criticality assessment with clear and manageable engineering actions. Our metric includes local and path-level risk indicators and considers class-specific behavior such as Stack, Heap, and Off-by-one errors. It also includes a four-level severity scale: Low, Medium, High, and Critical. For operational integration, we define fix triggers. Missing boundary checks and indexing violations directly translate into pipeline decisions, such as pass, warn with ticket, or block. They also influence time-to-fix policies with specific deadlines. We ensure reproducibility by fixing preprocessor profiles and toolchain versions, recording run manifests, and keeping audit artifacts like SARIF or HTML reports, environment parameters, and decision logs.Our experimental study looks at six open-source C/C++ projects using two build profiles: Debug and Release. We compare our method with cppcheck, flawfinder, and a vision-based baseline called YOLO. We evaluate performance based on Precision, Recall, F1, specificity, run-to-run stability, and per-file analysis time. Our approach achieves higher F1 and specificity, along with the best reproducibility across repeated runs while maintaining feasible latency for CI/CD. Also, our SLA-integrated workflow improves the timely resolution of High and Critical cases, which reduces operational risk during the PR or commit stage and boosts release reliability. In conclusion, formalizing criticality and linking it with fix triggers and quality gates creates a complete detection, fix, and verification loop. The research presents migration guidelines for current codebases while demonstrating that organizations achieve better developer resistance management through a staged adoption approach which begins with high-risk modules and uses codified templates for expansion, while preserving safety guarantees and governance outcomes. This method can scale across different repositories, languages, and build configurations.
Опис
Ключові слова
переповнення буфера, статичний аналіз, уніфікований граф програми, індикатори ризику, CI/CD, відтворюваність, off-by-one, buffer overflow, static analysis, unified program graph, risk indicators, reproducibility
Бібліографічний опис
Сєргєєв Є. Підготовка даних на основі графіків для виявлення вразливостей переповнення буфера в коді в рамках CI/CD-процесів // Herald of Khmelnytskyi National University. Technical Sciences. 2026. Vol. 363, No. 2. P. 316-322.