Будинки Аудіо Що таке розбиття стека? - визначення з техопедії

Що таке розбиття стека? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає Stack Smashing?

Розбиття стека - це форма вразливості, коли стек комп'ютерної програми або ОС змушений переповнюватися. Це може призвести до підриву програми / системи та її збоїв.


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

Техопедія пояснює Stack Smashing

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


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


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

Що таке розбиття стека? - визначення з техопедії