Fortify, как запустить анализ через команду

Как мы можем сгенерировать отчет FortiFy с помощью команды ??? на линукс.

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

Пожалуйста помоги....

Спасибо, Картик


person Karthik Raju    schedule 03.03.2016    source источник


Ответы (1)


<сильный>1. Шаг 1 (очистить кеш)

  • вам необходимо спланировать структуру сканирования перед началом:

scanid = 9999 (может быть что угодно)

ProjectRoot = /local/proj/9999/

Рабочий каталог = /local/proj/9999/рабочий

  • (этот каталог огромен, вам нужно rm -rf ./working && mkdir ./working перед каждым сканированием, иначе байт-код накапливается под этим каталогом и быстро занимает ваш жесткий диск)

журнал = /local/proj/9999/working/sca.log

источник='/local/proj/9999/источник/источник/**.*'

classpath='local/proj/9999/source/WEB-INF/lib/*.jar; /local/proj/9999/source/jars/**.*; /local/proj/9999/источник/классы/**.*'

./sourceanalyzer -b 9999 -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile  /local/proj/working/9999/working/sca.log  -clean
  • Важно указать ProjectRoot, если не перезаписать этот системный дефолт, он положит под ваш /home/user.fortify
  • Расположение sca.log очень важно, если fortify не найдет этот файл, он не сможет найти байт-код для сканирования.
  • Вы можете изменить ProjectRoot и рабочий каталог раз и навсегда, если вы единственный пользователь: FORTIFY_HOME/Core/config/fortify_sca.properties).
  • В таком случае ваша командная строка будет выглядеть так: ./sourceanalyzer -b 9999 -clean.

<сильный>2. Шаг 2 (преобразование исходного кода в байтовый код)

nohup ./sourceanalyzer -b 9999 -verbose -64 -Xmx8000M -Xss24M -XX:MaxPermSize=128M -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC  -XX:+UseParallelGC -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working  -logfile /local/proj/9999/sca.log -source 1.5 -classpath '/local/proj/9999/source/WEB-INF/lib/*.jar:/local/proj/9999/source/jars/**/*.jar:/local/proj/9999/source/classes/**/*.class'  -extdirs '/local/proj/9999/source/wars/*.war'  '/local/proj/9999/source/src/**/*'  &
  • всегда фоновое задание unix (&), если время сеанса на сервере истекло, оно будет продолжать работать.

  • cp : поместите сюда весь свой известный путь к классам, чтобы fortify разрешил вызовы functiodfn. Если функция не найдена, fortify пропустит перевод исходного кода, поэтому эта часть не будет сканироваться позже. Вы получите плохое качество сканирования, но FPR выглядит хорошо (сообщается о низкой проблеме). Важно, чтобы все банки зависимостей были на месте.

  • -extdir: поместите сюда все каталоги/файлы, которые вы не хотите сканировать.

  • последний раздел, файлы между ' ' являются вашим источником.

  • -64 должен использовать 64-битную Java, если не указано, будет использоваться 32-битная, а максимальная куча должна быть ‹1,3 ГБ (-Xmx1200M безопасен).

  • -XX: то же значение, что и при запуске сервера приложений. используйте их только для управления кучей классов и сборкой мусора. Это для настройки производительности.

  • -source — версия Java (от 1,5 до 1,8)

<сильный>3. Шаг 3 (сканирование с помощью пакета правил, пользовательских правил, фильтров и т. д.)

nohup ./sourceanalyzer -b 9999  -64 -Xmx8000M -Dcom.fortify.sca.ProjectRoot=/local/proj/9999 -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/ssap/proj/9999/working/sca.log **-scan** -filter '/local/other/filter.txt' -rules '/local/other/custom/*.xml -f '/local/proj/9999.fpr' & 
  • -filter: имя файла должно быть filter.txt, никакие правила в этом файле не сообщаются.

  • правила: это пользовательское правило, которое вы написали. пакет правил HP находится в каталоге FORTIFY_HOME/Core/config/rules

  • -scan : ключевое слово, указывающее Fortify Engine сканировать существующий scanid. Вы можете пропустить шаг № 2 и выполнить шаг № 3, только если вы не меняли код, просто хотите поиграть с другими фильтрами / пользовательскими правилами.

<сильный>4. Шаг 4. Создайте PDF-файл из файла FPR (при необходимости)

./ReportGenerator -format pdf -f '/local/proj/9999.pdf' -source '/local/proj/9999.fpr'
person user1836982    schedule 05.03.2016
comment
Спасибо за ваш ответ, и большое спасибо за ваше терпение, чтобы объяснить это. я проверю и обновлю как можно скорее. - person Karthik Raju; 08.03.2016