Как работает программное обеспечение Fortify? [закрытый]


укрепляйте является SCA используется для поиска уязвимостей безопасности в программном коде. Мне просто было любопытно, как это программное обеспечение работает внутри. Я знаю, что вам нужно настроить набор правил, по которым будет выполняться код. Но как именно он способен найти уязвимости в коде.

У кого-нибудь есть мысли по этому поводу?

спасибо заранее.

4   51  

4 ответа:

HP Fortify SCA имеет 6 анализаторов: поток данных, поток управления, семантический, структурный, конфигурация и буфер. Каждый анализатор находит различные типы уязвимостей.

Поток Данных Этот анализатор обнаруживает потенциальные уязвимости, которые включают испорченные данные (контролируемый пользователем ввод), которые могут быть использованы в потенциально опасных целях. Анализатор потока данных использует глобальный, межпроцедурный анализ распространения заражения для обнаружения потока данных между источником (местом ввода данных пользователем) и объектом раковина (опасный вызов функции или операция). Например, анализатор потока данных определяет, копируется ли управляемая пользователем входная строка неограниченной длины в буфер статического размера, и определяет, используется ли управляемая пользователем строка для построения текста SQL-запроса.

Поток Управления Этот анализатор обнаруживает потенциально опасные последовательности операций. Анализируя пути потока управления в программе, анализатор потока управления определяет, является ли набор операции выполняются в определенном порядке. Например, анализатор потока управления определяет время проверки / время использования проблем и неинициализированных переменных, а также проверяет, правильно ли настроены служебные программы, такие как средства чтения XML, перед использованием.

структурная Это обнаруживает потенциально опасные недостатки в структуре или определения программы. Например, структурный анализатор обнаруживает назначение переменных-членов в сервлетах Java, определяет использование регистраторы, которые не объявлены статическими конечными, и флаги экземпляров мертвого кода, которые никогда не будут выполняться из-за предиката, который всегда является ложным.

семантический Этот анализатор выявляет потенциально опасные использует функций и API на интра-процессуальном уровне. В основном умный GREP.

конфигурация Этот анализатор выполняет поиск ошибок, слабых мест и нарушений политики в конфигурации развертывания приложения файлы.

буфер Этот анализатор обнаруживает уязвимости переполнения буфера, которые включают запись или чтение большего количества данных, чем может вместить буфер.

@LaJmOn есть очень хороший ответ, но на совершенно другом уровне абстракции я могу ответить на вопрос по-другому:

  1. ваш исходный код переводится в промежуточную модель, которая оптимизирована для анализа SCA.

  2. некоторые типы кода требуют нескольких этапов перевода. Например, файл C# сначала должен быть скомпилирован в отладку .DLL или .EXE, а затем этот двоичный файл .NET разбирается в Microsoft Промежуточный язык (MSIL) с помощью утилиты .NET SDK ildasm.исполняемый. В то время как другие файлы, такие как файл Java или файл ASP, переводятся за один проход соответствующим переводчиком Fortify SCA для этого языка.

  3. SCA загружает модель в память и загружает анализаторы. Каждый анализатор загружает правила и применяет эти роли к функциям в вашей программной модели скоординированным образом.

  4. совпадения записываются в файл 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