Вопрос

Я пытаюсь использовать анализатор исходного кода Fortify для исследовательского проекта в моей школе по проверке безопасности веб-приложений 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

Я получил:

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

Я посмотрел на Build.sh файл и заметил, что он просто сбрасывает текущие переменные ant home, classpath и ant options, запускает команду 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 делает что-то неправильно.Любое понимание будет отличным.

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

Используемая вами команда на самом деле может работать со сборками 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 для трех типов интеграции ant:

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

    ant -lib sourceanalyzer.jar {Усилить параметры ant} {Параметры ant}

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

    sourceanalyzer -b {Параметры усиления} ant {Параметры ant}

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

    ant -lib sourceanalyzer.jar {опции ant}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top