Domanda

Sto cercando di utilizzare Fortify Source Code Analyzer per un progetto di ricerca della mia scuola per verificare la sicurezza per le applicazioni Java open source. Attualmente sto lavorando su Apache Lenya. Sto lavorando con l'ultima versione stabile (Lenya v2.0.2).

All'interno della directory principale c'è un file chiamato build.sh . Questo file è chiamato a costruire Lenya utilizzando la versione di Ant fornito con il rilascio (nella cartella tools/bin). Posso costruire Lenya bene quando corro ./build.sh. Quindi, sarebbe supporre che eseguendo il comando seguente in Fortify funzionerebbe:

sourceanalyzer -b lenya -Xmx1200M touchless ./build.sh

Tuttavia, quando provo e faccio funzionare:

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

ottengo:

  

accumulo id Lenya non trovato.

Ho guardato il file buid.sh e ho notato che era solo ripristinando la corrente di casa formica, classpath, e le variabili opzioni formica, l'esecuzione del comando formica costruire, e il ripristino dei valori di nuovo al loro impostazioni predefinite. Così ho resettato tutte le variabili manualmente (senza la sceneggiatura) invece di eseguire lo script e corsi:

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

Poi mi sono imbattuto:

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

ma ho ottenuto lo stesso errore. Non sono sicuro se questo è perché sto facendo qualcosa di sbagliato o se si tratta di qualcosa che Fortify non sta facendo correttamente. Tutta la comprensione sarà grande.

È stato utile?

Soluzione

Non sono sicuro se si ha accesso alla documentazione Fortify, ma che sicuramente aiutare. Si dovrebbe fare riferimento alla Guida per l'utente SCA per capire come utilizzare l'eseguibile sourceanalyzer.

Per tagliar corto, ci sono due modi di ottenere il file FPR:

  1. (La lunga strada) Scrivi uno script per tradurre e analizzare il codice sorgente, fornendo il percorso del codice sorgente e il classpath all'eseguibile sourceanalyzer.
  2. (La strada più breve) Utilizzare la SCACompiler anziché javac come il compilatore. Sarà necessario modificare lo script di build per questo.

Io preferisco il primo per la sua personalizzazione durante la manipolazione di basi di codice di grandi dimensioni.

PS:? Quale versione di Fortify è questo

Altri suggerimenti

Non utilizzare il comando touchless, cioè per C / C ++ integrazione. Dal momento che Lenya è scritto in Java, si sta meglio con altri comandi. Prova questo per il primo passo di traduzione (gestito dalla vostra base Lenya dir):

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

Il comando è stato utilizzato in realtà potrebbe lavorare con Java costruisce, tranne che ha alcune limitazioni. Utilizzando l'involucro accumulo touchless crea una serie di involucri compilatore, per esempio per javac, e mette gli involucri nella parte anteriore della variabile d'ambiente PATH.

Se lo script build.sh contiene riferimenti pienamente qualificato per javac, per esempio / usr / java / bin / javac, quindi l'integrazione di build touchless non funzionerà.

istruzioni del user233276 sono più ampiamente utile. Se si vuole sperimentare con Fortify SCA costruire l'integrazione, vorrei suggerire la tecnica sarebbe quella di modificare build.sh (vedi http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414 ) e cambio linea 43 da:

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

a:

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

Vedere la Guida per l'utente Fortify SCA per i tre tipi di integrazione ant:

  1. sostituire la proprietà build.compiler:

    ant -LIB sourceanalyzer.jar {Fortificare opzioni formica} {opzioni formica}

  2. Collegamento a quanto sopra:

    sourceanalyzer -b {Fortificare opzioni} {formica opzioni formica}

  3. In alternativa, se si effettua una build.xml personalizzato, come illustrato in appendice:

    ant -LIB sourceanalyzer.jar {opzioni formica}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top