Как работает программное обеспечение Fortify?
Fortify - это SCA, используемый для обнаружения уязвимостей безопасности в программном коде. Мне было просто интересно, как это программное обеспечение работает внутри. Я знаю, что вам нужно настроить набор правил, по которым будет выполняться код. Но как именно он может найти уязвимости в коде.
Есть ли у кого-нибудь мысли об этом?
Спасибо заранее.
Ответы
Ответ 1
HP Fortify SCA имеет 6 анализаторов: поток данных, поток управления, семантический, структурный, конфигурационный и буферный. Каждый анализатор обнаруживает различные типы уязвимостей.
Поток данных
Этот анализатор обнаруживает потенциальные уязвимости, которые связаны с испорченными данными (управляемый пользователем вход), потенциально опасным использованием. Анализатор потока данных использует глобальный, межпроцедурный анализ распространения пятен для обнаружения потока данных между источником (сайт пользовательского ввода) и приемником (вызов или операция опасной функции). Например, анализатор потока данных определяет, скопирована ли управляемая пользователем входная строка неограниченной длины в буфер статического размера и определяет, используется ли пользовательская строка для построения текста запроса SQL.
Управляющий поток
Этот анализатор обнаруживает потенциально опасные последовательности операций. Анализируя пути управления потоком в программе, анализатор потока управления определяет, выполняется ли набор операций в определенном порядке. Например, анализатор потока управления обнаруживает время проверки/времени использования и неинициализированные переменные и проверяет правильность настройки утилит, таких как считыватели XML, перед использованием.
Структурный
Это обнаруживает потенциально опасные недостатки в структуре или определении программы. Например, структурный анализатор обнаруживает назначение переменных-членов в сервлетах Java, идентифицирует использование журналов, которые не объявлены статическими окончательными, и указывает экземпляры мертвого кода, которые никогда не будут выполняться из-за предиката, который всегда является ложным.
Семантический
Этот анализатор обнаруживает потенциально опасное использование функций и API на внутрипроцедурном уровне. В основном умный GREP.
Конфигурация
Этот анализатор ищет ошибки, недостатки и нарушения правил в файлах конфигурации развертывания приложений.
Буфер
Этот анализатор обнаруживает уязвимости переполнения буфера, которые связаны с записью или чтением большего количества данных, чем может содержать буфер.
Ответ 2
@LaJmOn имеет очень хороший ответ, но на совершенно другом уровне абстракции я могу ответить на вопрос по-другому:
-
Исходный код переведен в промежуточную модель, которая оптимизирована для анализа SCA.
-
Некоторые типы кода требуют нескольких этапов перевода. Например, сначала необходимо скомпилировать файл С# для отладки .DLL или .EXE, а затем этот двоичный файл .NET, дизассемблированный в Microsoft Intermediate Language (MSIL) с помощью утилиты .NET SDK ildasm.exe. В то время как другие файлы, такие как файл Java или файл ASP, переводятся за один проход соответствующим Fortify SCA-транслятором для этого языка.
-
SCA загружает модель в память и загружает анализаторы. Каждый анализатор загружает правила и применяет эти роли к функциям в вашей программной модели скоординированным образом.
-
Матчи записываются в файл FPR с информацией об использовании уязвимостей, советами по безопасности, исходным кодом, перекрестной ссылкой источника и информацией о навигации по коду, спецификацией фильтрации пользователей, любыми пользовательскими правилами и цифровыми сигнатурами, пакет.
Ответ 3
Также добавление к комментарию @Doug Held выше... Начиная с Fortify 16.20, SCA теперь поддерживает непосредственно исходный код .Net С#/ASP/VB - больше не требуется предварительная компиляция.
Ответ 4
Да - Fortify SCA поддерживает сканирование Objective-C и Swift для iOS и около 20 других языков и множество фреймворков. См. Больше в Техническом паспорте Fortify SCA:
https://www.hpe.com/h20195/V2/GetPDF.aspx/4AA5-6055ENW.pdf
Вы также можете использовать Fortify SCA через SaaS по требованию Fortify on Demand и попросите экспертов запустить сканирование и проверить результаты для вас:
http://www8.hp.com/us/en/software-solutions/application-security-testing/index.html