Помилки програмування
Помилки
програмування (programming flaw) полягають в нездатності додатку, операційної системи або логічної мікросхеми обробляти виняткові ситуації. Зазвичай ці ситуації виникають при передачі уразливому елементу несанкціонованих даних. Зломщики багато раз передаватимуть пакети, в яких не враховуються рекомендації документів RFC, щоб визначити, чи здатний мережевий стек справитися з цими виключеннями або це приведе до паніки ядра (kernel panic) або краху всієї системи. Для певних застосувань, яким потрібні призначені для користувача вхідні дані, зломщики передаватимуть строкові дані завдовжки в тисячі рядків. Якщо програмою використовується буфер фіксованої довжини, скажімо, 128 байт, то зловмисники спробують згенерувати умову переповнювання буфера і викликати крах додатку. Що ще гірше, зломщики можуть також виконати привілейовані команди, як описувалося в розділах 5 і 7. Помилки програмування часто зустрічаються і в логічних мікросхемах. Сумнозвісна атака під назвою Pentium f00f грунтується
на тому, що призначений для користувача процес, виконавши некоректну інструкцію
0xf 00f c7c8, приведе до краху будь-якої операційної системи.
Не важко здогадатися, що програми, операційної системи або навіть центрального процесора, в яких відсутні будь-які дефекти, не існує. Зломщикам чудово відома ця аксіома. Будьте упевнені, що вони повністю скористаються перевагами краху важливих застосувань. На жаль, в більшості випадків всі атаки відбуваються в абсолютно невідповідний час.
|