
VisualCodeGrepper - инструмент для сканирования безопасности кода.
VCG (VisualCodeGrepper)
Текущая версия: 2.3.2
====================================================================================
Содержание:
VCG — это автоматизированный инструмент проверки безопасности кода, который поддерживает C/C++, Java, C#, VB, PL/SQL, PHP и COBOL. У него есть несколько функций, которые, будем надеяться, окажутся полезными всем, кто проводит проверки безопасности кода, особенно когда время ограничено:
Я старался создать что-то, что не возвращает большое количество ложных срабатываний, которые возвращают некоторые инструменты, и что также интеллектуально ищет, чтобы выявлять переполнения буфера и сравнения знаковых/беззнаковых значений.
Новые функции: 1) Изменение GUI означает, что выбор целевого языка осуществляется через выпадающий список вместо меню (как в V2.3.1). 2) Бета-функциональность теперь включает сканирование R Script (как в V2.3.1). 3) Незначительные исправления ошибок для решения различных проблем и восстановления возможности запуска нескольких экземпляров приложения.
Входные файлы/кодовая база:
Перед сканированием кода убедитесь, что выбран правильный язык, так как VCG будет проверять только проблемы, связанные с выбранным языком, и сканировать только соответствующие типы файлов. Язык можно выбрать в меню настроек или в диалоговом окне параметров. Выберите каталог, содержащий код для сканирования, с помощью File=>New Target... Затем VCG загрузит все файлы с указанными окончаниями.
Значения по умолчанию приведены ниже, но их можно изменить с помощью диалогового окна Options: C/C++: .c .h .cpp .hpp Java: .java .jsp web.xml config.xml (файлы xml включены для проверки валидации ввода с помощью Struts и т. д.) PL/SQL: .pls .sql .pkb .pks C#: .cs .asp .aspx web.config (файл web.config включён для проверки валидации ввода, настроек отладки и т. д.) VB: .vb .asp .aspx web.config (файл web.config включён для проверки валидации ввода, настроек отладки и т. д.) PHP: .php php.ini (файл php.ini включён для проверки плохих конфигураций, таких как register_globals) COBOL: .cob .cbl .clt .cl2 .cics R: .r
Опции и настройки:
Типы файлов — используйте этот параметр, чтобы изменить типы файлов, которые VCG будет сканировать для каждого типа кода. Чтобы сканировать все файлы в каталоге, добавьте .* в список или удалите все типы и отправьте пустую строку.
Файлы конфигурации — укажите файл конфигурации для каждого языка. Он содержит перечень функций или фрагментов кода, которые могут считаться рискованными и требуют отчёта. По сути, эта функция добавляет дополнительный уровень проверок поверх более сложных операций, выполняемых в рамках сканирования кода.
Уровень серьёзности — VCG можно настроить так, чтобы он сообщал только об ошибках выше определённого уровня серьёзности. Например, выберите «Medium», чтобы в отчёт попадали только Medium, High и Critical.
Настройки COBOL — необходимо указать начальную колонку, то есть первую колонку после номеров строк. Обычно это 1 для листинга без номеров строк или 7 для листинга с номерами строк. Может потребоваться другая настройка, если строки кода/комментариев в листинге начинаются в другой колонке. Настройка z/OS может использоваться для включения проверок безопасного использования CICS API и т. д.
Настройки OWASP (только Java) — если выбраны, они выявляют два нарушения лучших практик OWASP для программирования на Java, перечисленных на страницах OWASP по безопасному кодированию. Будут отмечены вложенные классы и незакрытые (non-final) публичные классы — поскольку таких нарушений, вероятно, будет много без существенного риска, предусмотрена возможность отключить любую из этих проверок.
Выходной файл — если выбран, в этот файл будет записан вывод в формате ASCII.
Бета-функциональность — выберите, использовать ли какую-либо бета-функциональность, установив соответствующий флажок в разделе Options -> Beta Functionality. В настоящее время доступна следующая бета-функциональность: определение местоположения знаковых/беззнаковых сравнений в C (очень ненадёжно) и сканирование R (протестировано, работает достаточно хорошо — близко к включению в следующий выпуск).
Сканирование:
Сканирование может выполняться тремя способами:
Файлы конфигурации:
Файлы конфигурации существуют для каждого из шести языков, которые сканирует VCG. Они обеспечивают дополнительный уровень сканирования, дополняющий встроенные сложные проверки для каждого языка. Содержимое файлов конфигурации состоит из списка функций/фрагментов кода для поиска вместе со связанным описанием, которое отображается в результатах. Описание включает необязательную настройку уровня серьёзности в квадратных скобках и отделяется от функции символом '=>' в следующем формате: имя функции[=>][[N]][описание] (где N — рейтинг серьёзности от 1 (Critical) до 3 (Medium) (или, опционально, 0 для «normal»))
Например: strcat=>[3]String concatenation function which facilitates buffer overflow conditions. Appears in Microsoft's banned function list.
Вывод:
Visual Code Breakdown будет показан после завершения сканирования.
Результаты записываются в панель результатов в порядке их обнаружения. Результаты имеют следующий формат: SEVERITY: Code issue Line number - File name Description [code fragment]
Заголовок проблемы имеет следующие цветовые коды для наглядности: Critical — пурпурный High — красный Medium — оранжевый Standard/Normal — жёлтый/сепия Low — серо-голубой Potential Issue/Best Practice — зелёный Suspicious comment indicating broken code — тёмно-синий