Этот патч представлен в унифицированном формате различий. Хотя предоставленная службой компьютерной безопасности FreeBSD информация о патче содержит все необходимые сведения, включая детальное описание уязвимости, анализ отчета результата сравнения двух файлов позволяет понять ее суть. Из первой строки протокола патча ясно, что он применяется к программе pwupd.c из директории usr.sbin/pw/.
Утилита pw операционной системы FreeBSD предназначена для добавления, удаления или модификации пользователей системы либо их групп. Выявленная уязвимость состояла в том, что при работе утилиты pw создавался временный файл с разрешениями, которые позволяли всем пользователям читать его. Разрешения временного файла в отчете выделены знаком минус (-). В результате пользователь мог получить доступ к зашифрованным паролям системы.
Автор самостоятельно проанализировал исходный текст утилиты pw. После получения двух версий исходных текстов (файл pwupd.c) утилиты (до и после внесения изменений) и их сравнения при помощи команды
Из сравнения двух версий программы видны различия, аналогичные изменениям, показанным на рис. 5.4.
Приоткрывая завесу
Рекурсивный просмотр директорий
Что делать, если неизвестен файл, в который были внесены изменения? Что делать, если вместо подробной информации об уязвимости доступна только новая версия программы, содержащая многочисленные директории исходных текстов программ? Это именно тот случай, когда наиболее удобно воспользоваться командой
Используя флаг рекурсии – г, содержимое директории может быть исследовано при помощи команды
Например, возможность рекурсивного сравнения отсутствует в команде
/usr/bin/find. | /usr/bin/xargs /usr/bin/grep PATTERN
Список IAOQ находится по адресу http://shells.devunix.org/~argoth/iaoq.
В поисках золота. Игровой пример