програмний код
Вразливі місця Microsoft SQL Server
Submitted by Andriy Andrukhiv on Thu, 19/07/2007 - 09:20При аналізі та пошуку вразливих місць у програмах використовується кілька підходів. В даному випадку я наведу найпростіший. Схема роботи буде проста як двері. Компанія Rational створила програму Purify для динамічного дослідження програмного забезпечення. Ось її і будемо використовувати. За допомогою програми Hailstorm запускаємо процес внесення помилок у SQL Server 7 і за допомогою Purify будемо відслідковувати стан програми. Враховуючи, що у даному СУБД більше помилок, ніж стрічок з програмним кодом, використаємо хоча б одну з них. Наприклад, при внесенні некоректних даних в пакет протоколу SQL Server виникає проблема затирання даних в пам’яті. Збій проходить в результаті неправильної обробки даних. SQL сервер приймає запити по 1443 порту. Для цього порту жодних специфікацій не існує. Направимо на цей порт випадкові дані( нехай це будуть згенеровані цифри) з інтенсивністю 20 пакетів в секунду. SQL Server буде сприймати ці пакети без жодних проблем. Вхідні дані обробляються різними фрагментами коду. Фактично ці фрагменти виконують читання заголовків протоколу. Через деякий час Purify вкаже на виникнення помилки і на зміну даних у пам’яті. Такого роду помилка призводить до відмови в роботі сервера. І як результат нашої роботи ми отримаємо звіт програми Heilstorm, а програма Purify вкаже на точне місце в програмному коді, де міститься помилка. Як використовувати цю помилку вже залежить не від мене. Якби мені довелось б піти іншим шляхом ( наприклад, вводяться в програму дані і досліджується фрагмент коду, що відповідає за обробку цих даних) напевне це зайняло б у мене кілька днів. Наведений метод є ефективний хіба для продуктів мікрософту, де помилка помилку поганяє. Для нормального програмного забезпечення існують складніші методи та підходи до взламування.
Recent comments
13 years 5 weeks ago
13 years 7 weeks ago
13 years 41 weeks ago
13 years 48 weeks ago
14 years 34 weeks ago
15 years 5 weeks ago
15 years 11 weeks ago
15 years 16 weeks ago
15 years 19 weeks ago
15 years 33 weeks ago