Frage

Ich versuche, Fortify Source Code Analyzer für ein Forschungsprojekt an meiner Schule zu verwenden, um die Sicherheit für die Open-Source-Java-Web-Anwendungen zu testen. Ich arbeite derzeit an Apache Lenya. Ich arbeite mit der letzten stabilen Version (Lenya v2.0.2).

Innerhalb des Root-Verzeichnisses gibt es eine Datei mit dem Namen build.sh . Diese Datei wird als Lenya mit der Version von Ant, dass Schiffen mit der Veröffentlichung (im tools/bin Ordner) zu bauen. Ich kann Lenya bauen nur gut, wenn ich ./build.sh laufen. So würde man davon ausgehen, dass Sie den folgenden Befehl in Fortify läuft funktionieren würde:

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

Allerdings, wenn ich versuchen und laufen:

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

ich:

  

Build-ID Lenya nicht gefunden.

schaute ich auf die buid.sh Datei und bemerkte, dass es nur wurde die aktuelle Ameise nach Hause, Classpath Zurücksetzen und ant Optionen Variablen, die Ant-Build-Befehl ausgeführt wird, und die Werte Zurücksetzen zurück in ihre Standardwerte. So setze ich alle Variablen manuell (ohne das Skript), statt das Skript laufen und lief:

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

Dann lief ich:

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

, aber ich habe den gleichen Fehler. Ich bin mir nicht sicher, ob dies ist, weil ich tue etwas falsch oder wenn es etwas, das Fortify ist nicht richtig tun. Einsicht wird groß sein.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob Sie Zugriff auf die Fortify Dokumentation haben, aber das wird auf jeden Fall helfen. Sie sollten an die SCA-Benutzerhandbuch finden Sie zu verstehen, wie die sourceanalyzer ausführbare Datei verwenden.

Um die Dinge kurz zu machen, gibt es zwei Möglichkeiten, die FPR-Datei bekommen:

  1. (Der lange Weg) ein Skript schreiben, um den Quellcode zu übersetzen und zu analysieren, indem Sie den Pfad des Quellcodes und die Classpath der sourceanalyzer ausführbare bereitstellt.
  2. (Der kurze Weg) Verwenden Sie die SCACompiler statt javac als Compiler. Sie müssen den Build-Skript für diese ändern.

Ich ziehe die ehemaligen aufgrund seiner Anpassbarkeit bei großen Codebasen Handhabung.

PS: Welche Version von Fortify ist dies

Andere Tipps

Sie nicht den berührungslosen Befehl verwenden, das ist für C / C ++ Integration. Da Lenya in Java geschrieben ist, sind Sie mit anderen Befehlen besser dran. Versuchen Sie dies für Ihren ersten Übersetzungsschritt (lief aus Ihrer Basis lenya dir):

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

Der Befehl, den Sie tatsächlich verwendet wird, könnte mit Java arbeiten baut, mit der Ausnahme, dass es einige Einschränkungen. Berührungslos build Wrapper erzeugt eine Anzahl von Compiler-Wrapper, z.B. für javac, und legt den Wrapper auf der Vorderseite der Umgebungsvariable PATH.

Wenn Ihr build.sh Skript vollständig qualifizierte Verweise auf Javac enthält, zum Beispiel / usr / java / bin / javac, dann ist die berührungslose Build-Integration wird nicht funktionieren.

user233276 Anweisungen sind die am weitesten verbreitete. Wenn Sie mit Fortify SCA bauen Integration experimentieren wollen, würde ich die Technik vorschlagen würde build.sh zu ändern (siehe http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414 ) und Änderungslinie 43 aus:

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

zu:

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

Sehen Sie die Fortify SCA Benutzerhandbuch für die drei Arten von Ameisen Integration:

  1. Überschreiben Sie die build.compiler Eigenschaft:

    ant -lib sourceanalyzer.jar {Fortify ant Optionen} {ant Optionen}

  2. Verknüpfung zu oben:

    sourceanalyzer -b {Optionen Fortify} ant {ant Optionen}

  3. Oder, wenn Sie eine benutzerdefinierte build.xml machen, wie im Anhang dargestellt:

    ant -lib sourceanalyzer.jar {ant Optionen}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top