Fortify Analyzer Fonte e Apache Lenya
-
18-09-2019 - |
Pergunta
Eu estou tentando usar Fortify Source Code Analyzer para um projeto de pesquisa na minha escola para testar a segurança para aplicações Java web de código aberto. Eu estou trabalhando atualmente em Apache Lenya. Eu estou trabalhando com a liberação última estável (Lenya v2.0.2).
Dentro do diretório raiz existe um arquivo chamado build.sh
. Este arquivo é chamado a construir Lenya usando a versão do Ant que vem com o lançamento (na pasta tools/bin
). Eu posso construir Lenya muito bem quando eu corro ./build.sh
. Assim, seria assumido que executando o seguinte comando em Fortify iria funcionar:
sourceanalyzer -b lenya -Xmx1200M touchless ./build.sh
No entanto, quando tento executar:
sourceanayzer -b lenya -Xmx1200M -scan -f lenya.fpr
eu recebo:
construção id Lenya não foi encontrado.
Eu olhei para o buid.sh e notei que ele estava apenas redefinir o atual formiga casa, classpath, e variáveis ??Opções de formigas, executando o comando ant construção, e redefinir os valores de volta ao seu defaults. Então eu redefinir todas as variáveis ??manualmente (sem o script) em vez de executar o script e correu:
sourceanalyzer -b lenya -Xmx1200M touchless tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger
Então eu corri:
sourceanalyzer -b lenya -Xmx1200M -scan -f lenya.fpr
mas eu tenho o mesmo erro. Eu não tenho certeza se isso é porque eu estou fazendo algo errado ou se é algo que Fortify não está fazendo corretamente. Qualquer visão será grande.
Solução
Eu não tenho certeza se você tem acesso à documentação Fortify, mas isso vai certamente ajudar. Você deve consultar o Manual do Utilizador SCA para entender como usar o executável sourceanalyzer.
Para cortar as coisas curto, há duas maneiras de obter o arquivo FPR:
- (O longo caminho) Escrever um script para traduzir e analisar o código-fonte, fornecendo o caminho do código fonte eo classpath para o executável sourceanalyzer.
- (O caminho curto) Use o SCACompiler vez de javac como o compilador. Você precisará modificar o script de construção para isso.
Eu prefiro a primeira devido à sua capacidade de personalização ao manusear grandes bases de código.
PS:? Qual versão do Fortify é este
Outras dicas
Não use o comando sem toque, que é de Integração C / C ++. Desde Lenya é escrito em Java, você é melhor fora com outros comandos. Tente isto para o primeiro passo de tradução (executado a partir de sua base Lenya dir):
sourceanalyzer -b lenya -Xmx1200M -source 1.5 -cp "**/*.jar" "**/*"
O comando utilizado realmente poderia trabalhar com Java constrói, exceto que ele tem algumas limitações. Usando a configuração sem toque invólucro cria um número de invólucros do compilador, v.g. para javac, e coloca os invólucros na frente da variável de ambiente PATH.
Se o seu script build.sh contém referências totalmente qualificados para javac, por exemplo, / usr / java / bin / javac, então a integração touchless construção não vai funcionar.
instruções do user233276 são os mais amplamente útil. Se você quiser experimentar com a integração de construção Fortify SCA, gostaria de sugerir a técnica seria modificar build.sh (veja http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414 ) e mudança de linha nofollow 43 de:
"$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@
para:
sourceanalyzer -b Lenya "$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@
Consulte o Guia do Usuário do Fortify SCA para os três tipos de integração ant:
-
Substituir a propriedade build.compiler:
ant -LIB sourceanalyzer.jar {opções formiga Fortify} {opções formiga}
-
Atalho para o acima:
sourceanalyzer -b {opções Fortify} formiga {opções formiga}
-
Ou, se você fizer um build.xml personalizado como mostrado no apêndice:
ant -LIB sourceanalyzer.jar {opções formiga}