Как работает программное обеспечение Fortify? [закрытый]
укрепляйте является SCA используется для поиска уязвимостей безопасности в программном коде. Мне просто было любопытно, как это программное обеспечение работает внутри. Я знаю, что вам нужно настроить набор правил, по которым будет выполняться код. Но как именно он способен найти уязвимости в коде.
У кого-нибудь есть мысли по этому поводу?
спасибо заранее.
4 ответа:
HP Fortify SCA имеет 6 анализаторов: поток данных, поток управления, семантический, структурный, конфигурация и буфер. Каждый анализатор находит различные типы уязвимостей.
Поток Данных Этот анализатор обнаруживает потенциальные уязвимости, которые включают испорченные данные (контролируемый пользователем ввод), которые могут быть использованы в потенциально опасных целях. Анализатор потока данных использует глобальный, межпроцедурный анализ распространения заражения для обнаружения потока данных между источником (местом ввода данных пользователем) и объектом раковина (опасный вызов функции или операция). Например, анализатор потока данных определяет, копируется ли управляемая пользователем входная строка неограниченной длины в буфер статического размера, и определяет, используется ли управляемая пользователем строка для построения текста SQL-запроса.
Поток Управления Этот анализатор обнаруживает потенциально опасные последовательности операций. Анализируя пути потока управления в программе, анализатор потока управления определяет, является ли набор операции выполняются в определенном порядке. Например, анализатор потока управления определяет время проверки / время использования проблем и неинициализированных переменных, а также проверяет, правильно ли настроены служебные программы, такие как средства чтения XML, перед использованием.
структурная Это обнаруживает потенциально опасные недостатки в структуре или определения программы. Например, структурный анализатор обнаруживает назначение переменных-членов в сервлетах Java, определяет использование регистраторы, которые не объявлены статическими конечными, и флаги экземпляров мертвого кода, которые никогда не будут выполняться из-за предиката, который всегда является ложным.
семантический Этот анализатор выявляет потенциально опасные использует функций и API на интра-процессуальном уровне. В основном умный GREP.
конфигурация Этот анализатор выполняет поиск ошибок, слабых мест и нарушений политики в конфигурации развертывания приложения файлы.
буфер Этот анализатор обнаруживает уязвимости переполнения буфера, которые включают запись или чтение большего количества данных, чем может вместить буфер.
@LaJmOn есть очень хороший ответ, но на совершенно другом уровне абстракции я могу ответить на вопрос по-другому:
ваш исходный код переводится в промежуточную модель, которая оптимизирована для анализа SCA.
некоторые типы кода требуют нескольких этапов перевода. Например, файл C# сначала должен быть скомпилирован в отладку .DLL или .EXE, а затем этот двоичный файл .NET разбирается в Microsoft Промежуточный язык (MSIL) с помощью утилиты .NET SDK ildasm.исполняемый. В то время как другие файлы, такие как файл Java или файл ASP, переводятся за один проход соответствующим переводчиком Fortify SCA для этого языка.
SCA загружает модель в память и загружает анализаторы. Каждый анализатор загружает правила и применяет эти роли к функциям в вашей программной модели скоординированным образом.
совпадения записываются в файл FPR, с уязвимостью сопоставьте информацию, рекомендации по безопасности, исходный код, исходную перекрестную ссылку и информацию о навигации по коду, спецификацию фильтрации пользователей, любые пользовательские правила и цифровые подписи, которые были заархивированы в пакет.
также добавление к @Doug провел комментарий выше ... Начиная с версии Fortify 16.20, SCA теперь поддерживает сканирование исходного кода .Net C#/ASP/VB напрямую - больше не требуется предварительная компиляция.
да-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