У меня есть вопрос относительно имен и синтаксиса для использования аннотаций кода Fortify.
Короткая, короткая, очень короткая версия: Я ищу руководство/руководство, в котором будут перечислены доступные аннотации в коде и приведен пример их предполагаемого использования. Специально для использования при наличии набора SQL-инъекций и SQL-инъекций: проблемы с сохранением не учитывались в результатах сканирования Fortify.
TL;DR; Подробности:
- Укрепить Версия: 19.1.0
- Платформа: Java 8; Веб-приложение (Weblogic 12.2.1.4.0 (12c)); RedHat Unix
- Проблема с укреплением: SQL-инъекция (WASC-19)
- Дополнительная информация: код существует как часть веб-приложения.
Подозрительная входная строка поступает от клиента и затем становится частью оператора DDL (ALTER SESSION...). Это нельзя изменить, и операторы DDL нельзя параметризовать .
Дезинфекция входной строки до смешного проста. Строка (7 символов) передается через синтаксический анализатор регулярных выражений: Pattern.compile(HARDCODED_REGEX_CONSTANT).matcher(suspectString);
Использование объявления аннотированного метода, которое отправляет входные данные через синтаксический анализатор регулярных выражений, также было частью проверки, например. @Pattern(regexp=HARDCODED_REGEX_CONSTANT)
Ни один из этих двух подходов не является достаточным для Fortify.
Кроме того, подозрительная входная строка также проверяется на соответствие известным и допустимым значениям (значения извлекаются из базы данных, поэтому Fortify также обнаруживает, что эти значения также являются подозрительными).
Конечно, ни один из них не подходит для Fortify Scan.
Создание и сохранение пользовательского правила, которое является внешним по отношению к коду и применяется к результатам сканирования, не будет работать по причинам. [Я не могу адекватно или кратко объяснить, почему это простое решение было отклонено.] Достаточно сказать, создание набора ложных срабатываний для импорта перед сканированием Fortify; не является вариантом и не помечает известные проблемы как не являющиеся проблемой.
Размещение в коде параметра «Игнорировать этот комментарий» также не соответствует целевому состоянию. Конечная оценка заключается в том, что проблема остается в результатах сканирования, она критична и, следовательно, ДОЛЖНА быть решена.
Повторяя запрос: я хотел бы разместить аннотацию (или другую конструкцию в коде) (например, @FortifyValidate, @Fortify?????
и т. д.) в точках, в которых проблема отмечена сканированием Fortify.
Я не могу найти адекватное руководство/руководство в Интернете, в котором будут перечислены доступные аннотации в коде и приведен пример их предполагаемого использования. Специально для использования при наличии набора проблем SQL Injection и SQL Injection: Persistence, исключенных из результатов сканирования Fortify.
Спасибо