Использование fortify sca в jenkins с помощью инструмента сборки (maven и gradle)

Недавно наша команда выбрала fortify sca для сканирования наших проектов. Наши проекты имеют два типа JavaEE(без EJB) и Android.

И мы хотим добавить шаг сканирования в шаги CI. Поэтому я добавляю такие сценарии для сканирования после того, как jenkins создаст проект.

sourceanalyzer -b manage_dev -clean
sourceanalyzer -b manage_dev -jdk 1.6 -encoding UTF-8 "src/."
sourceanalyzer -b manage_dev -Xmx4000M -scan -f manage_dev_report.fpr  
ReportGenerator -format pdf -f manage_dev_report.pdf -source manage_dev_report.fpr

Однако я не знаю, как установить параметр -cp(classpath) из-за того, что мы используем инструмент сборки, библиотеки зависимостей не находятся внутри нашего исходного кода.

Я знаю, что есть какой-то плагин maven и gradle для укрепления. Но мы не хотим менять наши скрипты сборки.

Спасибо за вашу помощь.

Пс. Мы используем HP_Fortify_SCA_and_Apps_4.20 и новейшую версию jenkins.


person JackSie    schedule 14.12.2014    source источник
comment
Вы нашли способ сделать это?   -  person Nikson Kanti Paul    schedule 11.07.2016


Ответы (2)


Вот конфигурация, которая сработала для меня, в моем файле pom.xml:

<build>
    <plugins> 
        <plugin>
            <groupId>com.fortify.ps.maven.plugin</groupId>
            <artifactId>sca-maven-plugin</artifactId>
            <version>4.30</version>
            <configuration>
                <findbugs>true</findbugs>
                <htmlReport>true</htmlReport>
                <maxHeap>800M</maxHeap>
                <source>myJavaVersion</source>
                <buildId>myBuildId</buildId>
                <verbose>true</verbose>
                <skipTests>true</skipTests>
                <toplevelArtifactId>myTopLevelId</toplevelArtifactId>
            </configuration>
        </plugin>
    </plugins>
</build>

Используя одно задание Jenkins, вы можете написать в качестве предварительного шага сценарий оболочки:

mvn clean sca:clean -DskipTests
mvn sca:translate -DskipTests

А затем определите фактические «Цели и варианты» как:

install sca:scan -DskipTests

Наличие их в виде отдельных командных строк — единственный способ выполнить очистку, перевод и сканирование (и отправку файла отчета в Fortify) в одном задании Jenkins.

Надеюсь, это сработает и для вас!

person Prokis    schedule 26.08.2016

Первый:

Командная строка задокументирована в файле HP_Fortify_SCA_User_Guide_4.20.pdf. Тем не менее, следующий пример является распространенным вариантом использования и очень хорошим местом для начала:

Команда будет выглядеть так:

sourceanalyzer -verbose -logfile {{location where you want the log}} -XX:MaxPermSize={{perm memory size}} –Xmx{{memory to allocate}} -64 -scan -f {{file to save the result to}}  -cp {{root folder or JAR file to start crawling from}} -source {{Java version}} {{folder where source can be found}}

Например, это сканирование, которое я запустил на своем ПК:

sourceanalyzer -verbose -logfile "d:\TestSites\JavaVulns\mylog.txt" -XX:MaxPermSize=512M -Xmx4G -64 -scan -f MyTest.fpr  -cp "d:\TestSites\JavaVulns\*.jar" -source 1.5 d:\TestSites\JavaVulns

Хорошего дня, Денис

person user3411669    schedule 19.12.2014