Question

Je suis en train d'utiliser Fortify Source Code Analyzer pour un projet de recherche à mon école pour tester la sécurité des applications Web Java open source. Je travaille actuellement sur Apache Lenya. Je travaille avec la dernière version stable (Lenya de v2.0.2).

A l'intérieur du répertoire racine il y a un fichier nommé build.sh . Ce fichier est appelé à construire Lenya en utilisant la version de Ant qui est livré avec la sortie (dans le dossier tools/bin). Je peux construire Lenya très bien quand je lance ./build.sh. Ainsi, on pourrait supposer que l'exécution de la commande suivante dans Fortify fonctionnerait:

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

Cependant, quand je tente de courir:

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

Je reçois:

  

id build Lenya not found.

Je regardais buid.sh fichier et a remarqué qu'il était juste réinitialiser la maison ant courant, classpath, et les variables d'options de fourmis, exécutant la commande de construction de fourmi, et la réinitialisation des valeurs à leur par défaut. Donc réinitialiser toutes les variables manuellement (sans le script) au lieu de l'exécution du script et couru:

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

Alors je courais:

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

mais je suis la même erreur. Je ne suis pas sûr que ce soit parce que je fais quelque chose de mal ou si elle est quelque chose que Fortify ne fait pas correctement. Toute idée sera grande.

Était-ce utile?

La solution

Je ne sais pas si vous avez accès à la documentation Fortify, mais qui va certainement aider. Vous devriez consulter le Guide du SCA utilisateur de comprendre comment utiliser l'exécutable sourceanalyzer.

Pour couper court, il y a deux façons d'obtenir le fichier fpr:

  1. (Le chemin) écrire un script pour traduire et analyser le code source en indiquant le chemin du code source et le chemin de classe à l'exécutable sourceanalyzer.
  2. (La courte distance) Utilisez le SCACompiler au lieu de javac comme le compilateur. Vous devrez modifier le script de compilation pour cela.

Je préfère l'ancien en raison de son lors de la manipulation de grandes customizability bases de code.

PS: Quelle version de Fortify est-ce

Autres conseils

Ne pas utiliser la commande Touchless, qui est pour l'intégration C / C ++. Depuis Lenya est écrit en Java, vous êtes mieux avec d'autres commandes. Essayez ceci pour votre première étape de traduction (exécuter à partir de votre répertoire de base Lenya):

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

La commande utilisée pourrait effectivement travailler avec Java construit, sauf qu'il a des limites. Utilisation de l'emballage de construction crée un certain nombre Touchless d'enveloppes de compilateur, par exemple pour javac, et met les emballages à l'avant de la variable d'environnement PATH.

Si votre script contient des références build.sh qualifiés à javac, par exemple / usr / java / bin / javac, puis l'intégration de la construction Touchless ne fonctionnera pas.

Les instructions de user233276 sont les plus largement utiles. Si vous voulez expérimenter avec Fortify SCA construire l'intégration, je suggère la technique serait de modifier build.sh (voir http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414 ) et la ligne 43 de changement:

"$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 $@

Voir le Guide de l'utilisateur Fortify SCA pour les trois types d'intégration ant:

  1. Remplacer la propriété build.compiler:

    ant -Lib sourceanalyzer.jar {Fortifier les options de fourmis} {} options de fourmi

  2. Raccourci à ce qui précède:

    {sourceanalyzer -b Fortifier les options} {ant des options de fourmis}

  3. Ou, si vous faites un build.xml personnalisé comme indiqué dans l'annexe:

    ant -Lib sourceanalyzer.jar {ant les options}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top