Переповнення буфера: причини, ефективні методи вирішення проблеми і необхідний захист

Методи безпечної розробки

Методи безпечної розробки включають регулярне тестування для виявлення та усунення переповнення. Найнадійніший спосіб уникнути або запобігти його використовувати автоматичну захист на рівні мови. Інше виправлення – перевірка кордонів під час виконання, яка запобігає переповнення, автоматично перевіряючи, що дані, записані в буфер, знаходяться в допустимих межах.

Служба Veracode виявляє уразливості коду, такі як переповнення buffer, тому розробники усувають їх до того, як вони будуть використані. Унікальна в галузі запатентована технологія тестування безпеки бінарних статичних додатків (SAST) Veracode аналізує його, включаючи компоненти з відкритим вихідним кодом і сторонні, без необхідності доступу до нього.

SAST доповнює моделювання загроз та огляди коду, що виконуються розробниками, швидше і з меншими витратами виявляючи помилки і упущення в коді за рахунок автоматизації. Як правило, він запускається на ранніх етапах життєвого циклу розробки ПЗ, оскільки простіше і дешевше усувати проблеми, перш ніж приступати до виробничого розгортання.

SAST виявляє критичні уразливості, такі як впровадження SQL, міжсайтовий скриптінг (XSS), помилку переповнення буфера, необроблені стану помилок і потенційні закутки. Крім того, двійкова технологія SAST надає корисну інформацію, яка визначає пріоритети в залежності від серйозності і надає докладну інструкцію по виправленню.

Вразливість переповнення buffer існує вже майже 3 десятиліття, але вона як і раніше обтяжлива. Хакери з усього світу продовжують вважати її своєю тактикою за замовчуванням з-за величезної кількості сприйнятливих веб-додатків. Розробники і програмісти витрачають величезні зусилля для боротьби з цим злом IT-технологій, придумуючи все нові і нові способи.

Основна ідея останнього підходу полягає в реалізації інструменту виправлення, який робить кілька копій адрес повернення в стеку, а потім рандомизирует розташування всіх копій на додаток до кількості. Всі дублікати оновлюються і перевіряються паралельно, так що будь-яка невідповідність між ними вказує на можливу спробу атаки і викликає виключення.