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

Статичний аналіз покриття

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

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

Завдяки використанню безпечних функцій обробки буфера і відповідних функцій безпеки компілятора і операційної системи можна створити надійний захист від переповнення buffer. З урахуванням цих кроків послідовна ідентифікація недоліків є вирішальним кроком для запобігання експлойта.

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

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