четверг, 31 июля 2014 г.

Дневник охотника за ошибками. Тобиас Клейн.


Ссылка на OZON.

Любопытная книжка!

В ней описывается биография 7 настоящих уязвимостей. обнаруженных автором за последний несколько лет.

Как он сам пишет, для кого эта книга:

Чтобы получить максимум от этой книги, читатель должен хорошо знать язык С и быть знаком с языком ассемблера для процессоров семейства x86. Начинающих исследователей уязвимостей эта книга познакомит с разными аспектами их выявления, эксплуатации и составления отчетов для производителей ПО.

Рекомендуемые автором книги:
  • The Art of Software Security Assesment: Identifying and Preventing Software Vulnerabilities (Amazon).
  • Fuzzing. Исследование уязвимостей методом грубой силы (Ozon)
А фаззинг у меня, кстати, есть! Надо уже добраться до него, поизучать, интересно жеж! Smile :)

Так вот, возвращаясь к охоте за багами. Автор описывает ошибки, найденные в самых разных местах:

  1. Проигрыватель VLC.
  2. Ядро операционной системы Sun Solaris.
  3. Мультимедийная библиотека FFmpeg.
  4. Элемент управления ActiveX.
  5. Антивирус avast!
  6. Ядро XNU в Apple MacBook.
  7. Аудиобиблиотеки iPhone. 
Каждая запись начинается с задела Обнаружение уязвимости, где прямо по шагам рассказывается "сначала буду делать то, потом то и вот я уже захватываю контроль над EIP!". Далее каждый шаг расписывается подробно. А потом автор показывает график "уязвимость обнаружения - уязвимость исправлена". Эти результаты, кстати, удивляют, кто-то исправляет очень шустро, а кто-то, наоборот, чуть ли не год и то только после публикации другим охотником за багами.

Ну и в конце автор всегда пишет о том, что полный исходный код эксплойта привести нельзя, потому что живет он в Германии, где очень строгие законы по этому поводу, но "вы можете посмотреть короткий ролик эксплуатации уязвимости на сайте книги". А в конце каждой главы идет список примечаний, где можно почитать подробнее о том, что было написано в главе. Список ссылок внушительный, так что доп материала хватает!

Все, что не имеет прямого отношения к записи в дневничке, вынесено в одно из приложений в конце книги. Автор заботливо разбил их на 3 части:
  1. Подсказки для охотника (что такое "переполнение буфера на стеке", "разименование нулевого указателя" и т.д.).
  2. Отладка (описание отладчиков для разных ОС и их основных команд).
  3. Методы защиты (приемы защиты, RELRO, Solaris Zones).
Я, судя по описанию в начале книги, тот самый ламер, который не получит от книги максимальной пользы, но зато узнает много нового. Так и есть! Было очень интересно прочитать о том, как Клейн искал уязвимости. А еще было очень приятно понимать, что я уже предугадываю шаги, какие нужны для обнаружения уязвимости!

Не понимаю, "как", но понимаю, "что"! Прикольно Smile :)

Я думаю, эту книгу стоит почитать всем тестировщикам. Она будет интересна опытным и познавательна для новичков. Вообще было бы классно, если бы таких книг с подробным разбором найденных интересных и/или сложных ошибок, было бы больше. Это ж сколько идей можно было бы почерпнуть из таких вот "дневничков"! Ну а пока... Пока довольствуемся блогами!

PS - книга добавлена в общий список книг.

Комментариев нет:

Отправить комментарий