Читаем Защита от хакеров корпоративных сетей полностью

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

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

Команда 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

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже