Чтение онлайн

на главную

Жанры

Защита от хакеров корпоративных сетей

авторов Коллектив

Шрифт:

Если из результатов исследования и доступной информации непонятно, что это за чип, то вскройте его! Вскрыть чип? Именно так. Исследователям защитного корпуса таких устройств, как смарт-карты (smart card – кредитная карточка с микропроцессором), известно много способов их изучения, включая выжигание корпуса чипа кислотой и исследование его структуры под микроскопом. Подробнее эти вопросы освещены в главе 14.

Итак, если исследователь с помощью метода «черного ящика» не может разобраться с устройством чипа, то он должен вскрыть его. Опыт посещения автором копий обсидиана (вулканического стекла) в Аризоне наглядно демонстрирует это. Если держать обсидиан на расстоянии вытянутой руки, то он выглядит как черный камень.

Но при ярком свете обсидиан становится немного прозрачнее. Таким образом, он не вполне «черный ящик», а скорее в той или иной степени прозрачный «ящик из обсидиана». Другими словами, у исследователя всегда есть возможность получить информацию о решаемой задаче.

Резюме

Методологии поиска уязвимости часто используют принципы аудита безопасности систем. Изучение исходного текста программ начинается с выявления потенциально небезопасных функций, например strcpy и sprintf. Другой способ заключается в тщательной построчной экспертизе исходного текста программы в соответствии с логикой ее работы. Анализ различий – еще один способ поиска уязвимостей, при котором широко применяется утилита diff. Утилита diff, сравнивая две версии программы, позволяет найти внесенные в программу исправления. При исследовании выполнимого кода программы применяются различные средства: программы трассировки, отладчики, анализаторы, а также аудит документации.

Аудит исходного текста программы предполагает поиск потенциально опасных функций и применение методологии построчного аудита. В этой главе были рассмотрены примеры, демонстрирующие переполнение буфера при использовании функций strcpy, sprintf, strcat и gets. Были рассмотрены такие ошибки проверки входных данных, как уязвимость форматирующей строки функции printf и функции open в программе, написанной на языке Perl. Также был рассмотрен пример конкуренции программ за ресурсы и сопутствующая ей ошибка условия гонок на примере функции mktemp.

Реинжиниринг – один из наиболее часто используемых методов поиска уязвимостей в программе, исходный текст которой недоступен. Этот тип исследования проводится по методике «сверху вниз». Средства аудита в Windows можно найти на сайте sysinternals.com, а список Rosetta Stone поможет выбрать средства трассировки на различных платформах. В этой главе был рассмотрен пример трассировки команды cat сначала в среде Red Hat Linux и в Solaris 7.

Дизассемблер и отладчики позволяют исследовать выполнимый код. Дизассемблер (также известный как декомпилятор) – это программа, которая преобразует двоичный код в исходный текст программы на языке высокого уровня, но чаще всего на языке ассемблера. Отладчик – программа, которая может управлять выполнением другой программы. В этой главе был приведен пример дизассемблирования программы на платформе Windows с использованием отладчика IDA Pro, а также пример сессии отладки под управлением отладчика GDB в Linux. Также были обсуждены возможности программ objdump и nm. Программа objdump позволяет управлять объектными файлами программ, а nm — отображает содержащуюся в них символьную информацию.

«Черный ящик» – концептуальный компонент, чьи внутренние функции скрыты от пользователя. Тестирование «черного ящика» похоже на бинарный аудит. На практике к методам тестирования «черного

ящика» прибегают при реинжиниринге интегральных схем. Определить предназначение чипа можно, изучив выходные сигналы чипа, а если это не поможет – вскрыв его корпус. «Черные ящики» могут различаться по степени своей прозрачности для исследователя, в зависимости от его знаний об устройстве анализируемой системы.

Конспект

Суть методологии исследования уязвимости

· Анализ и экспертиза исходного текста программы – идеальная методология поиска ее уязвимостей.

· Исследование исходного текста программ предполагает поиск подверженных ошибкам директив, построчную экспертизу исходного текста программы и изучение различий в нем.

· Изучение выполнимого кода программы осуществляется при помощи программ трассировки, отладчиков, модулей проверки текущего состояния программы (анализаторов) и аудита документации проектирования программы.

Значение экспертизы исходного текста программы

· Экспертиза исходного текста программы – необходимая часть обеспечения ее безопасности.

· Поиск подверженных ошибкам конструкций языка программирования в исходном тексте программ позволяет найти ошибки переполнения буфера, проверки входных данных и ошибки, сопутствующие конкуренции программ за ресурсы.

· Утилита grep может использоваться для повышения эффективности поиска подверженным ошибкам директив.

Технологии реинжиниринга

· На сайте www.sysinternals.com можно найти свободно распространяемые инструментальные средства аудита для Windows.

· Список Rosetta Stone (по адресу позволяет найти программы трассировки для заданной платформы.

· Отладчики используются для управления выполнением исследуемой программы и поиска ошибок в ней или исследования логики ее работы.

Тестирование методом «черного ящика»

· Тестирование методом «черного ящика» позволяет обнаружить внутренние компоненты, скрытые от невооруженного взгляда исследователя.

· Вскрытие корпуса «черногоящика» – самый легкий способ для определения его внутреннего строения.

· Абсолютно «черныхящиков» нет. Одни из них – более «черные», а другие – менее.

Часто задаваемые вопросы

Приведенные вопросы и ответы авторов позволяют оценить степень уяснения читателем изложенного в главе материала и получить представление о возможности применения полученных знаний на практике. Если читатель захочет задать автору вопрос, то ему следует посетить сайт www.syngress.com/solutions, заполнить и отослать форму «Вопрос автору» («Ask the author»).

Вопрос: Какой наилучший метод исследования уязвимостей? Ответ: На этот вопрос можно дать только субъективный ответ. Наилучший метод исследования уязвимостей – это тот, который исследователю наиболее знаком, наиболее удобен и позволит быстрее провести исследование. Рекомендуется поэкспериментировать с различными методами и схемами их применения.

Вопрос: Законны ли с юридической точки зрения декомпиляция и другие методы реинжиниринга? Ответ: В Соединенных Штатах реинжиниринг скоро может стать противозаконным. В Акте авторского права цифрового тысячелетия (Dig^l Millennium Copyright Act) содержатся меры по предотвращению обхода обманным путем технологических мер управления доступом к работам, защищенным авторским правом. Исходный текст программы может быть защищен авторским правом, поэтому в этом случае реинжиниринг текста, защищенного авторским правом, противозаконен.

Поделиться:
Популярные книги

Сердце Дракона. Том 19. Часть 1

Клеванский Кирилл Сергеевич
19. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.52
рейтинг книги
Сердце Дракона. Том 19. Часть 1

Последняя Арена 10

Греков Сергей
10. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 10

Идеальный мир для Лекаря 21

Сапфир Олег
21. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 21

Звезда сомнительного счастья

Шах Ольга
Фантастика:
фэнтези
6.00
рейтинг книги
Звезда сомнительного счастья

Live-rpg. эволюция-4

Кронос Александр
4. Эволюция. Live-RPG
Фантастика:
боевая фантастика
7.92
рейтинг книги
Live-rpg. эволюция-4

Девятое правило дворянина

Герда Александр
9. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Девятое правило дворянина

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Para bellum

Ланцов Михаил Алексеевич
4. Фрунзе
Фантастика:
попаданцы
альтернативная история
6.60
рейтинг книги
Para bellum

Егерь

Астахов Евгений Евгеньевич
1. Сопряжение
Фантастика:
боевая фантастика
попаданцы
рпг
7.00
рейтинг книги
Егерь

Вечная Война. Книга VII

Винокуров Юрий
7. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
5.75
рейтинг книги
Вечная Война. Книга VII

Я снова не князь! Книга XVII

Дрейк Сириус
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII

Ваантан

Кораблев Родион
10. Другая сторона
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Ваантан

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник