Knigi-for.me

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

Тут можно читать бесплатно Коллектив авторов - Защита от хакеров корпоративных сетей. Жанр: Прочая околокомпьтерная литература издательство неизвестно, год неизвестен. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте knigi-for.me (knigi for me) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Ознакомительная версия. Доступно 38 из 188 стр.

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

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

Конспект

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

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

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

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

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

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

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

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

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

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

· Список Rosetta Stone (по адресу http://bhami.com/rosetta.html) позволяет найти программы трассировки для заданной платформы.

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

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

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

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

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

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

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

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

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

Вопрос: Какие инструментальные средства могут быть полезны при экспертизе сложных исходных текстов программ? Ответ: Такие инструментальные средства, как SCCS и CVS, могут облегчить экспертизу исходного текста программы. Кроме того, применение интегрированных сред разработки (IDEs – Integrated Development Environmen) может облегчить экспертизу исходного текста.

Вопрос: Где можно узнать правила разработки защищенного программного обеспечения? Ответ: Для этой цели подойдут ресурс Интернета «Часто задаваемые вопросы по разработке защищенного программного обеспечения в среде UNIX (Secure UNIX Programming FAQ)» по адресу www.whitefang.com/sup/secure-faq.html или список адресатов secprog, поддерживаемый Оливером Фридричсом (OliverFriedrichs).

Вопрос: Где можно достать утилиту strace для моей платформы? Ответ: Утилита strace – инструментальное средство Linux. Наилучший выбор для платформы Windows, обладающий аналогичными функциональными возможностями, – IDO Pro. Truss реализует ту же самую функцию на платформе Solaris. Дополнительную информацию можно найти в документации производителя.

Вопрос: Откуда можно загрузить исходные тексты приведенных в главе примеров? Ответ: Исходные тексты доступны по адресу www.syngress.com/solutions.

Глава 5 Поиск различий

В этой главе обсуждаются следующие темы:

Суть поиска различий

Исследование инсрументария поиска различий

Поиск неисправностей

· Резюме

· Конспект

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

Введение

Одно из самых простых средств, состоящих на вооружении хакера, – поиск различий (диффинг). Поиск различий заключается в сравнении программ, библиотек или любых других файлов до и после некоторых действий. Зачастую поиск различий, как одно из самых простых средств обнаружения уязвимостей, используется совместно с другими средствами и методами. Сравнивать можно файлы, базы данных, накопители информации. Сравнивая диски, определяют несовпадающие файлы. Сравнивая файлы – отличающиеся байты, а сравнивая базы данных – различающиеся записи. Поступая таким образом, можно найти способ целенаправленного изменения данных исследуемого приложения.

Суть поиска различий

Команда diff присутствует во многих современных операционных системах семейства UNIX и им подобных. Впервые она появилась в дистрибутиве UNIX компании AT&T, и в настоящее время эксплуатируются различные ее версии. Слово diff – сокращение от английского слова difference (различие) – означает составление списка различий двух файлов.

Таким образом, слово диффинг может быть определено как применение команды diff (или подобной программы) для сравнения двух файлов. Сравнивая файлы, можно выявить внесенные изменения в новую версию программы по сравнению с предыдущей, определить различия двоичных файлов, претендующих на эквивалентность, или отследить влияние изменений файла данных на работу программы.

Изучите исходный текст программы, приведенный на рис. 5.1.

Рис. 5.1. Исходный текст scpybufo.c

Уже говорилось о сопутствующей этой программе ошибке переполнения буфера. (Эта программа была рассмотрена в главе 4 в секции, посвященной переполнению буфера.) Просмотрите исходный текст программы, представленный на рис. 5.2.

Рис. 5.2. Исходный текст sncpyfix.c

Применяя команду diff операционной системы UNIX, можно точно определить место и суть различий между двумя программами (см. рис. 5.3).

Рис. 5.3. Результаты сравнения файлов scpybufo.c и sncpyfix.c командой diff

Из протокола работы команды видно, что относящиеся к файлу scpybufo.c данные отмечены символом <, а к файлу sncpyfix.c – символом >. Команда нашла первое отличие в заголовке этих файлов.

Со строки номер 25a24 начинаются различия в исходных текстах программ. Переменная Size_t есть в файле sncpyfix.c, но отсутствует в scpybufo.c. А в строке под номером 27c26 видна замена функции strcpy на strncpy. Хотя сравнить столь небольшие файлы можно и вручную, целесообразность применения команды diff для cравнения больших файлов более очевидна. Далее будут обсуждены причины поиска различий.

Почему нужно знать о различиях файлов?

Ознакомительная версия. Доступно 38 из 188 стр.

Коллектив авторов читать все книги автора по порядку

Коллектив авторов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-for.me.