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.

Foi útil?

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:

  1. (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.
  2. (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:

  1. Substituir a propriedade build.compiler:

    ant -LIB sourceanalyzer.jar {opções formiga Fortify} {opções formiga}

  2. Atalho para o acima:

    sourceanalyzer -b {opções Fortify} formiga {opções formiga}

  3. Ou, se você fizer um build.xml personalizado como mostrado no apêndice:

    ant -LIB sourceanalyzer.jar {opções formiga}

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top