Пример автоматического аудита: pscan

pscan — пакет, разработанный для аудита уязвимостей форматных строк в файлах с исходным кодом на C и C++.

Эта программа не является инструментом аудита общего назначения.

Запуск pscan

Запуск pscan представляет собой вызов pscan с именем файла или файлов, которые следует проверить. Например:

pscan test.c

Вывод будет отображён в консоли:


test.c:42 SECURITY: printf call should have "%s" as argument 0

Вывод

Вывод в этом случае легко понять. Было верно установлено, что вызов printf не заключает свои аргументы в кавычки.

Этот вывод также показывает, что мы должны (чтобы исправить исполнение) изменить этот код:

printf( buff );

На этот код:

printf( "%s", buff );

Если этого не сделать, атакующий, контролирующий вывод ls, сможет атаковать программу, создав файл с именем «%s» или схожим.

Атаки форматных строк обсуждаются в этом введении от Security Focus.

HOWTO по безопасному программированию для Linux и Unix содержит информацию о том, как защититься от атак, обычно используемых для атаки функций с переменным количеством параметров, таких как:


Назад на страницу Проекта по аудиту | Назад на страницу примеров аудита