Fortify Source Analyzer и Apache Lenya - PullRequest
4 голосов
/ 21 июля 2009

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

Внутри корневого каталога находится файл с именем 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 и заметил, что он просто сбрасывает текущие переменные ant home, classpath и ant, запускает команду ant build и сбрасывает значения до значений по умолчанию. , Поэтому я сбросил все переменные вручную (без скрипта) вместо запуска скрипта и запустил:

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 22 июля 2009

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

Для краткости можно получить файл FPR двумя способами:

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

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

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

1 голос
/ 16 декабря 2009

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

sourceanalyzer -b lenya -Xmx1200M -source 1.5 -cp "**/*.jar" "**/*"
0 голосов
/ 22 ноября 2010

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

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

инструкции user233276 являются наиболее полезными. Если вы хотите поэкспериментировать с интеграцией сборки 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 $@

до:

sourceanalyzer -b Lenya "$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@

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

  1. Переопределить свойство build.compiler:

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

  2. Ярлык к вышеуказанному:

    sourceanalyzer -b {Опции фортификации} ant {опции муравья}

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

    ant -lib sourceanalyzer.jar {ant options}

...