
grep rough audit - инструмент для аудита исходного кода
graudit — это простой скрипт и наборы сигнатур, которые позволяют находить потенциальные уязвимости безопасности в исходном коде с помощью утилиты GNU grep. Он сопоставим с другими инструментами статического анализа, такими как RATS, SWAAT и flaw-finder, при этом предъявляя минимальные технические требования и обладая высокой гибкостью.
Установку можно выполнить от имени пользователя или глобально от root, просто запустив make с аргументом userinstall или install. Однако рекомендуется использовать graudit напрямую, клонируя репозиторий Git, так как он включает дополнительные правила баз данных, не входящие в дистрибутивные файлы. Это также позволяет получать обновления между релизами. Для этого выполните следующую команду:
git clone https://github.com/wireghoul/graudit
Затем вы можете добавить graudit в свой PATH, используя соответствующие значения для вашей предпочитаемой оболочки:
echo 'PATH="$HOME/graudit:${PATH:+:${PATH}}"; export PATH;' >> ~/.bashrc
Если graudit находится не в вашей домашней директории, вы можете установить переменную окружения GRDIR, указав каталог с сигнатурами, в файле .bashrc.
export GRDIR=/path/to/graudit/signatures
graudit поддерживает несколько опций и старается следовать хорошим практикам работы с оболочкой. Список опций можно получить, запустив graudit -h, или посмотреть ниже. Простейший способ использования graudit:
graudit [opts] /path/to/scan
OPTIONS
-d <dbname> база данных для использования или /path/to/file.db (используется база по умолчанию, если не указана)
-A сканировать нежелательные и сложные (ALL) файлы
-x исключить эти файлы (список через запятую: -x *.js,*.sql)
-i регистронезависимое сканирование
-c <num> количество строк контекста до и после совпадения, по умолчанию 1
-B убрать баннер
-L строки, удобные для vim
-b шаблон для дальтоников
-z отключить цвета
-Z цвета с высоким контрастом
-l список доступных баз данных
-v версия программы
-h вывод этой справки
Вы можете задать параметры командной строки по умолчанию через переменную окружения GRARGS. Это может повлиять на использование graudit в скриптах, поэтому для этой цели рекомендуется использовать только опции B, L, b, z и Z.
echo 'GRARGS="-b -L"; export GRARGS' >> ~/.bashrc
graudit использует расширенные регулярные выражения (POSIX) в качестве сигнатур и поставляется с несколькими готовыми базами данных. Вы можете расширять существующие базы данных или создавать свои собственные, если вам нужны дополнительные сигнатуры.
Базы данных могут загружаться из нескольких мест; порядок приоритета следующий:
Список файлов баз данных в порядке приоритета выводится с помощью ключа -l:
graudit -l
Включены следующие базы данных:
Обучающее/вводное видео можно посмотреть по адресу: https://youtu.be/b8Xbzer1n94
Если вы хотите внести свой вклад в graudit, пожалуйста, сделайте форк репозитория по адресу https://github.com/wireghoul/graudit и используйте его. В частности, приветствуются языковые правила, дополнительные скрипты и документация. Если graudit вам нравится, скажите спасибо и поделитесь им.
Если вы хотите связаться со мной, напишите мне на GitHub или в Twitter: @wireghoul