Пошук прихованих помилок програмного використання пам’яті програмним кодом С++ за допомогою статичного аналізу Deep Learning
Анотація
Використання пам’яті програмним кодом в наш час є однією з важливих проблем як зі сторони написання коду, так і зі сторони захисту застосунків. Економія ресурсів та безпечний код сьогодні відіграють важливу роль, коли ще перед промисловим впровадженням програм не можна виявити традиційними засобами помилок використання пам’яті. Невиявлені помилки використання пам’яті можуть спричинити як непотрібні затрати ресурсів, так і стати причиною вторгнень чи несанкціонованого заволодіння інформацією. В даній статті викладено основні переваги, налаштування, моделювання, спеціальні особливості вивчення коду та інші аспекти застосування статичного аналізу Deep learning на базі нейронних мереж для виявлення помилок використання пам’яті програмним кодом С++. Важливу роль у його використанні займає практичне вивчення проаналізованих кодових зразків з відомими проблемами розподілу пам’яті, які вже були виконані, збережені в базі і застосовуються як базові шаблони. На основі дослідження великої кількості коду з кількох програмних проєктів засобами Deep learning здійснено виявлення помилок, які не виявлялися іншими традиційними методами, а також проведено обговорення його продуктивності, візуалізації отриманих результатів та зменшення хибно-позитивних проявів
Посилання
2. G. Fan, R. Wu, Q. Shi, X. Xiao, J. Zhou, C. Zhang, "SMOKE: Scalable Path-Sensitive Memory Leak Detection for Millions of Lines of Code", International Conference on Software Engineering (ICSE), 2019.
3. Openssl.
4. OSS-Fuzz: Continuous Fuzzing for Open Source Software.
5. Heinrichs F., Heim M., Weber C. Functional Neural Networks: Shift invariant models for functional data with applications to EEG classification. 2023.


