Защита от хакеров корпоративных сетей. Коллектив авторов. Читать онлайн. Newlib. NEWLIB.NET

Автор: Коллектив авторов
Издательство:
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 2005
isbn: 5-98453-015-5
Скачать книгу
align="center">

      Глава 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равнения больших файлов более очевидна. Далее будут обсуждены причины поиска различий.

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

      Какая необходимость искать различия в файле или памяти до и после каких-либо действий? Причин может быть