2009-07-21 1 views
4

Я пытаюсь использовать анализатор исходного кода Fortify для исследовательского проекта в моей школе, чтобы проверить безопасность веб-приложений с открытым кодом Java. В настоящее время я работаю над Apache Lenya. Я работаю с последним стабильным выпуском (Lenya v2.0.2).Fortify Source Analyzer и Apache Lenya

В корневом каталоге находится файл с именем build.sh. Этот файл вызывается для создания Lenya с использованием версии Ant, которая поставляется с релизом (в папке tools/bin). Я могу построить Леню просто отлично, когда я запускаю ./build.sh. Таким образом, было бы предположить, что, выполнив следующую команду в Fortify будет работать:

sourceanalyzer -b lenya -Xmx1200M touchless ./build.sh 

Однако, когда я пытаюсь запустить:

sourceanayzer -b lenya -Xmx1200M -scan -f lenya.fpr 

я получаю:

Идентификатор сборки Леня не найдено.

Я смотрел на buid.sh файл и заметил, что это было просто сбросить текущий муравей домой, и путь к классам муравой опции переменных, выполнив команду муравой сборки и сброс значения обратно в их значение по умолчанию. Поэтому я сбросить все переменные вручную (без сценария) вместо запуска сценария и побежал:

sourceanalyzer -b lenya -Xmx1200M touchless tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger 

Тогда я побежал:

sourceanalyzer -b lenya -Xmx1200M -scan -f lenya.fpr 

, но я получил ту же ошибку. Я не уверен, что это потому, что я делаю что-то неправильно или это что-то, что Fortify не делает правильно. Любое понимание будет замечательным.

ответ

2

Я не уверен, имеете ли вы доступ к документации Fortify, но это определенно поможет. Вы должны обратиться к Руководству пользователя SCA, чтобы понять, как использовать исполняемый файл sourceanalyzer.

Чтобы вырезать вещи Короче говоря, есть два способа получения файла FPR:

  1. (длинный путь) Написать скрипт для перевода и анализа исходного кода, обеспечивая путь к исходному коду и тому classpath для исполняемого файла sourceanalyzer.
  2. (Короткий путь) Используйте SCACompiler вместо javac в качестве компилятора. Для этого вам потребуется изменить сценарий сборки.

Я предпочитаю первое из-за его настраиваемости при работе с большими кодовыми базами.

PS: Какая версия Fortify это?

1

Не используйте бесконтактную команду, то есть для интеграции C/C++. Поскольку Lenya написана на Java, вам лучше с другими командами. Попробуйте это для вашего первого шага перевода (запустить от базовой Леня директории):

sourceanalyzer -b lenya -Xmx1200M -source 1.5 -cp "**/*.jar" "**/*" 
0

Команда, которую вы использовали на самом деле может работать с Java сборки, за исключением того, что она имеет некоторые ограничения. Использование бесконтактной оболочки сборки создает несколько оболочек компилятора, например.для javac и помещает обертки в переднюю часть переменной среды PATH.

Если ваш скрипт build.sh содержит полностью квалифицированные ссылки на javac, например/usr/java/bin/javac, то интеграция без проблем не будет работать.

Инструкции пользователя233276 являются наиболее полезными. Если вы хотите поэкспериментировать с интеграцией построить Fortify SCA, я хотел бы предложить метод будет изменить build.sh (см http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414) и изменения линии 43 от:

"$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs [email protected] 

к:

sourceanalyzer -b Lenya "$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs [email protected] 

Престола Руководство пользователя Fortify SCA для трех типов муравьев интеграции:

  1. Override свойство build.compiler:

    муравей -lib sourceanalyzer.jar {Укрепите муравей опции} {муравей опции}

  2. Сочетания к вышесказанному:

    sourceanalyzer -b {Укрепите опции} муравей {муравей опции}

  3. Или, если вы сделаете собственный build.xml, как показано в приложении:

    муравей -lib sourceanalyzer.jar {муравей опции}

Смежные вопросы