IBM Security AppScan Source Utilities: Benutzerhandbuch

Werbung
IBM Security AppScan Source
Utilities
Version 9.0.2
Benutzerhandbuch
IBM Security AppScan Source
Utilities
Version 9.0.2
Benutzerhandbuch
(C) Copyright IBM Corp. and its licensors 2003, 2015. Alle Rechte vorbehalten.
IBM, das IBM Logo, ibm.com, Rational, AppScan, Rational Team Concert, WebSphere und ClearQuest sind Marken oder eingetragene Marken der International Business Machines Corp. Weitere Produkt- und Servicenamen können Marken von IBM oder anderen Herstellern sein. Eine aktuelle Liste der IBM Marken finden Sie auf der Webseite "Copyright and trademark information" unter
http://www.ibm.com/legal/copytrade.shtml. Linux ist eine eingetragene Marke von Linus Torvalds in den USA und/oder anderen Ländern. Microsoft, Windows, Windows NT und das Windows-Logo sind Marken der Microsoft Corporation in den USA
und/oder anderen Ländern. Unix ist eine eingetragene Marke von The Open Group in den USA und anderen Ländern. Java und
alle auf Java basierenden Marken und Logos sind Marken oder eingetragene Marken der Oracle Corporation und/oder ihrer verbundenen Unternehmen.
Dieses Programm enthält Jacorb 2.3.0, Copyright 1997-2006 The JacORB project; sowie and XOM1.0d22, Copyright 2003 Elliotte
Rusty Harold, die jeweils unter der GNU Library General Public License (LGPL) zur Verfügung gestellt werden. Eine Kopie ist in
der Notices-Datei verfügbar, die im Lieferumfang dieses Programms enthalten ist.
Inhaltsverzeichnis
Kapitel 1. Builddienstprogramm Ounce/
Make . . . . . . . . . . . . . . . . 1
Voraussetzungen . . . . . . . . . . . . . 1
Was Ounce/Make unterstützt. . . . . . . . . 2
Betrieb . . . . . . . . . . . . . . . . 3
Ounce/Make ausführen . . . . . . . . . 3
Projektdateien benennen . . . . . . . . . 3
Ounce/Make-Ausgabe . . . . . . . . . . 5
Ounce/Make-Befehlssyntax und Make-Optionen . . 5
Ounce/Make-Eigenschaftendatei. . . . . . . . 8
Ouncemake - Elemente der Eigenschaftendatei . . 9
Beispieleigenschaftendateien . . . . . . . . 15
Beispiele . . . . . . . . . . . . . . . 15
Beispiel 1: Ounce/Make ohne Optionen . . . . 16
Beispiel 2: Ounce/Make mit rekursiver Option
16
Beispiel 3: Ounce/Make im Einprojektmodus mit
rekursiver Option . . . . . . . . . . . 17
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI) . . . . . . . . . 19
Objekte und Kontext . . . . . . . . . . .
Berechtigungen für die AppScan Source-Befehlzeilenschnittstelle (CLI) . . . . . . . . . . .
AppScan Source-Befehlzeilenschnittstelle (CLI) starten . . . . . . . . . . . . . . . . .
AppScan Source-Befehlzeilenschnittstelle (CLI) in
Landessprachen anzeigen. . . . . . . . .
Befehlssyntax . . . . . . . . . . . . . .
Befehle für die AppScan Source-Befehlzeilenschnittstelle (CLI) . . . . . . . . . . . . . .
Zusammenfassung der Befehle der AppScan
Source-Befehlzeilenschnittstelle (CLI) . . . . .
about (a) . . . . . . . . . . . . . .
delete (del) . . . . . . . . . . . . .
deleteassess (da) . . . . . . . . . . .
deleteuser (du). . . . . . . . . . . .
delvar (dv) . . . . . . . . . . . . .
details (det) . . . . . . . . . . . .
echo . . . . . . . . . . . . . . . .
getaseinfo (gase) . . . . . . . . . . .
help (?) . . . . . . . . . . . . . .
import (im) . . . . . . . . . . . . .
info (i) . . . . . . . . . . . . . .
list (ls, dir) . . . . . . . . . . . .
listassess (la). . . . . . . . . . . .
listgroups (lgrp) . . . . . . . . . . .
listusers (lu) . . . . . . . . . . . .
log . . . . . . . . . . . . . . . .
login (in) . . . . . . . . . . . . .
Anmeldedatei . . . . . . . . . . . . .
login_local (local) . . . . . . . . . .
logout (out) . . . . . . . . . . . . .
moduser (mu) . . . . . . . . . . . . .
newuser (nu) . . . . . . . . . . . . .
openapplication (oa) . . . . . . . . . .
© Copyright IBM Corp. 2003, 2015
19
20
20
20
21
22
22
27
27
28
28
28
29
30
30
30
31
32
32
33
33
34
34
35
36
37
37
37
39
41
openassessmentfile (oaf) . . . .
password (passwd) . . . . . . .
printuser (pu) . . . . . . . .
publishassess (pa) . . . . . .
publishassessase (pase). . . . .
quit . . . . . . . . . . . .
record (rc) . . . . . . . . .
refresh (rf) . . . . . . . . .
register (reg) . . . . . . . .
removeassess (da) . . . . . . .
report (rpt) . . . . . . . . .
scan (sc) . . . . . . . . . .
script (scr) . . . . . . . . .
setaseinfo (sase) . . . . . . .
setcurrentobject (set, cd) . . .
setvar (sv) . . . . . . . . .
unregister (unreg) . . . . . .
Automatisierte Beurteilungen durchführen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Kapitel 3. Das Ounce/Ant-Buildtool
Integration von Ounce/Ant und Apache/Ant
Ounce/Ant-Eigenschaften . . . . .
Eigenschaften festlegen . . . . . .
Projekte erstellen . . . . . . . . .
ounceCreateProject . . . . . . .
ounceSourceRoot. . . . . . . . .
ounceWeb . . . . . . . . . . .
ounceExclude . . . . . . . . . .
Projekte benennen . . . . . . . .
Anwendungen erstellen und benennen . .
Integration eines Builds . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
43
43
45
45
46
46
46
47
47
49
50
51
53
53
54
54
. . 57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
59
59
60
60
61
61
61
62
62
Kapitel 4. AppScan Source-Data Access-API . . . . . . . . . . . . . . 63
Data Access-API-Objektmodell . . . . . .
Data Access-API verwenden . . . . . . .
Beurteilung aus einer Datei öffnen. . . .
Liste der Ergebnisse ausgeben . . . . .
Liste veröffentlichter Beurteilungen abrufen
Trace ausgeben . . . . . . . . . .
Klassen und Methoden der Data Access-API .
AssessedFile . . . . . . . . . . .
Beurteilung . . . . . . . . . . .
AssessmentDiff . . . . . . . . . .
AssessmentFilter . . . . . . . . .
AssessmentResults . . . . . . . . .
Call . . . . . . . . . . . . . .
ClassificationType . . . . . . . .
DateProximityUnit . . . . . . . . .
Factory. . . . . . . . . . . . .
Finding. . . . . . . . . . . . .
Trace . . . . . . . . . . . . .
SeverityType . . . . . . . . . . .
OunceException . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
66
66
66
67
67
68
68
69
71
71
72
75
77
78
78
81
87
87
88
iii
Kapitel 5. Ounce/Maven-Plug-in . . . . 89
Ounce/Maven installieren . . . . . . .
Ounce/Maven verwenden . . . . . . .
Ounce/Maven-Szenarios . . . . . . . .
Anwendungs- und Projektdateien erstellen .
Anwendungen überprüfen . . . . . .
Berichterstellung. . . . . . . . . .
Berichte mit dem Siteziel integrieren . . .
Ounce/Maven-Zielanfragen . . . . . . .
ounce:application . . . . . . . . .
ounce:project . . . . . . . . . .
ounce:project-only . . . . . . . .
ounce:scan . . . . . . . . . . .
ounce:report . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
90
90
90
91
91
91
91
92
92
93
93
93
Kapitel 6. AppScan Source for Automation . . . . . . . . . . . . . . . . 95
Berechtigungsnachweise für Automatisierungsserver
über Befehlszeile angeben . . . . . . . . . 95
Konfigurationsdatei für den Automatisierungsserver 96
Automatisierungsserver-Protokollierung . . . . . 97
ounceauto über die Befehlszeile verwenden . . . . 98
GenerateReport . . . . . . . . . . . . 98
PublishAssessment . . . . . . . . . . 100
PublishAssessmentASE . . . . . . . . . 100
ScanApplication . . . . . . . . . . . 101
Wait . . . . . . . . . . . . . . . 102
Kapitel 7. Framework for FrameworksAPIs handhaben . . . . . . . . . . 103
Framework for Frameworks-API - Hauptkomponenten. . . . . . . . . . . . . . .
Framework for Frameworks-APIs verwenden .
iv
. 104
. 104
IBM Security AppScan Source Utilities: Benutzerhandbuch
Informationen zu diesem Beispiel . . . . .
Beispielprojekt in Eclipse oder Rational Application Developer for WebSphere Software (RAD)
importieren . . . . . . . . . . . . .
Klasse erstellen, die F4FHandler implementiert
Manifestdatei für Ihren Handler erstellen . . .
JAR für Ihren Handler erstellen . . . . . .
JAR in waflgens exportieren . . . . . . .
Vom Handler ausgeführte allgemeine Aktionen . .
Framework for Frameworks API classes and methods . . . . . . . . . . . . . . . .
F4FActions . . . . . . . . . . . . .
F4FApp . . . . . . . . . . . . . .
F4FHandler . . . . . . . . . . . . .
TaintedParam . . . . . . . . . . . .
Übergeordnete synthetische Methoden . . . . .
VDB-Format . . . . . . . . . . . . .
Verwendung von übergeordneten synthetischen
Methoden . . . . . . . . . . . . .
Beispiel: Synthetische Methoden erstellen . . .
Neues Web-Service-Framework for FrameworksHandler mit dem vorhandenen angepassten Web
Service Description Language-Scanner integrieren .
Den Web-Service-F4F-Handler mit dem angepassten WSDL-Scanner verbinden . . . . .
Signaturzuordnung . . . . . . . . . .
105
105
108
109
109
112
112
113
114
118
120
121
122
123
124
126
129
129
131
Kapitel 8. Fehlernachrichten in
AppScan Source-Clientkomponenten . 133
Bemerkungen . . . . . . . . . . . 147
Index . . . . . . . . . . . . . . . 151
Kapitel 1. Builddienstprogramm Ounce/Make
Bei Ounce/Make handelt es sich um ein Tool, das den Import von Konfigurationsdaten, die aus Buildumgebungen stammen, die mit makefile arbeiten, in AppScan
Source automatisiert. Mit Ounce/Make muss der Import von Konfigurationsdaten
aus Makefiles (makefile) nicht mehr manuell durchgeführt werden.
Das Dienstprogramm Ounce/Make stellt eine Befehlszeilenschnittstelle zum Erstellen von AppScan Source-Projektdateien (.ppf) aus Makedateien (makefiles) bereit.
(Eine Makedatei (makefile) stellt dabei eine Möglichkeit zum Erstellen einer ausführbaren Anwendung oder Bibliothek über die Quellendateien bereit.) Die erstellten ppf-Dateien enthalten alle Angaben, die AppScan Source benötigt, um den
Quellcode zu analysieren, für dessen Kompilierung die entsprechende Makefile
verantwortlich ist. Nachdem Ounce/Make die .ppf-Dateien erstellt hat, können Sie
die Projektdateien in AppScan Source importieren oder hinzufügen.
So starten Sie das Dienstprogramm:
v Führen Sie auf Windows-Systemen die Datei <installationsverzeichnis>\bin\
ouncemake.exe aus (wobei <installationsverzeichnis> die Position Ihrer
AppScan Source-Installation ist). Beispiel für Windows (32-Bit):
C:\Programme\IBM\AppScan Source\bin\ouncemake.exe
v Führen Sie auf Linux-Systemen die Datei <installationsverzeichnis>/bin/
ouncemake aus. Beispiel:
/opt/ibm/appscansource/bin/ouncemake
Make ist das Tool, das die Kompilierung und Verbindung von Programmen automatisiert und hierbei die gegenseitigen Abhängigkeiten von Modulen sowie deren
Änderungszeitpunkte berücksichtigt. Make liest Anweisungen aus einer Makefile
(makefile), die einen Satz zu erstellender Ziele, die hierfür erforderlichen Dateien
und die Befehle angibt, die zu ihrer Erstellung ausgeführt werden müssen.
Voraussetzungen
Um AppScan Source-Projektdateien erfolgreich erstellen zu können, müssen Sie
Ounce/Make in einer geeigneten Umgebung ausführen. Die folgende Liste führt
die Voraussetzungen für eine erfolgreiche Ausführung von Ounce/Make auf. Wenn
nicht alle diese Voraussetzungen erfüllt sind, schlägt Ounce/Make fehl.
v Das Verzeichnis, aus dem Ounce/Make ausgeführt wird, muss eine gültige Makefile enthalten.
v Die Buildumgebung muss einen Make-Befehl absetzen können, der auch erfolgreich sein muss.
v Führen Sie den Befehl 'make clean' vor der Ausführung von Ounce/Make aus.
Sie können 'make clean' explizit vor der Ausführung von Ounce/Make ausführen oder den Befehl mit Ounce/Make einschließen, indem Sie die Option clean angeben.
v Makefiles, die Ounce/Make vorfindet, dürfen unter den folgenden Umständen
keine fest codierten absoluten Pfade enthalten:
– Zur ausführbaren Make-Datei, wenn eine andere Makefile aufgerufen wird:
Beispielsweise dürfen Sie den Pfad /usr/bin/make -f makefile.mk nicht referenzieren. In der Makefile referenzieren Sie 'make' über die ausführbare make© Copyright IBM Corp. 2003, 2015
1
Datei oder eine Variable. Die Variable kann das Make-Makro ${MAKE} oder eine
andere Variable sein, die Sie in der Eigenschaftendatei angeben.
– Zur ausführbaren Compilerdatei bei der Kompilierung des Quellcodes:
Beispiel: /usr/bin/gcc -I.. -DFOO -o myfile.o myfile.cpp
– Zur ausführbaren Linkerdatei beim Verknüpfen von Objektdateien
Beispiel: /usr/bin/ld file1.o file2.o
v In #include-Anweisungen.
Um eine #include-Anweisung zu verwenden, fügen Sie die folgende Markierung
zur Projektdatei als Option der Konfiguration hinzu:
--remote_root <fernes_Verzeichnis>
Hierbei definiert <fernes_Verzeichnis> den Mountpunkt des fernen Verzeichnisses.
Anmerkung: Sie können nur ein einzelnes fernes_Stammverzeichnis angeben.
Alle fest codierten Pfade zu #include-Anweisungen müssen auf einen einzelnen
Mountpunkt aufgelöst werden.
v Geben Sie keine Makros für die ausführbaren Make-, Compiler- und Linkerdateien in der Befehlszeile an, wenn Sie 'make' aufrufen (z. B. make CC=gcc LD=ld).
Was Ounce/Make unterstützt
Ounce/Make unterstützt mehrere Computerplattformen, Compiler und make-Versionen.
Plattformen
Sie können Ounce/Make auf allen von AppScan Source unterstützten Plattformen
ausführen.
Make-Versionen
Ounce/Make unterstützt die folgenden make-Versionen:
v make: Das UNIX-Hilfsprogramm make ist ein Software-Engineering-Tool zur
Verwaltung und Wartung von Computerprogrammen.
v gmake: GNU Make ist ein Tool, das die Erzeugung ausführbarer Dateien und
anderer Nicht-Quellendateien eines Programms aus den Quellendateien dieses
Programms steuert.
v nmake: NMAKE.exe (Microsoft Program Maintenance Utility) ist ein 32-Bit-Tool,
das Projekte auf der Basis von Befehlen in einer Beschreibungsdatei erstellt.
Compiler
Ounce/Make unterstützt die folgenden Compiler:
v GCC: GNU Compiler Collection. AppScan Source unterstützt die C- und C++Front-Ends.
v cl: cl.exe ist der Compiler zu Microsoft Visual C++.
2
IBM Security AppScan Source Utilities: Benutzerhandbuch
Betrieb
Ounce/Make extrahiert mithilfe Ihrer Make-Datei die erforderlichen Konfigurationsdaten aus Ihren Makefiles und erstellt geeignete AppScan Source-Projektdateien
(ppf). Zu diesem Zweck macht es Ounce/Make erforderlich, dass Sie bestimmte
Angaben zur Buildumgebung machen, z. B. die verwendete Version von 'make'.
Beschreiben Sie mit der Eigenschaftendatei die Buildumgebung (siehe
„Ounce/Make-Eigenschaftendatei” auf Seite 8).
Ounce/Make ausführen
Sie können Ounce/Make aus jedem beliebigen Verzeichnis heraus ausführen, in
dem ein Make-Befehl erfolgreich ausgeführt werden kann. In den meisten Fällen
befindet sich die ausführbare Datei ouncemake nicht in dem Verzeichnis, in dem Sie
sie aufrufen. Aus diesem Grund wird empfohlen, das Verzeichnis, das ouncemake
enthält, zur Umgebungsvariablen PATH hinzuzufügen, um ouncemake ohne großen
Aufwand aufrufen zu können.
Wenn Ihr Quellcode und/oder Ihre Makefile im Verzeichnis \development\srcdir
abgelegt sind, müssen Sie, um ouncemake auszuführen, zunächst in dieses Verzeichnis wechseln:
%cd \development\srcdir
Danach führen Sie ouncemake aus:
%ouncemake <Optionen>
Anmerkung: Aus Gründen der Abwärtskompatibilität wird der Befehl pmake noch
akzeptiert. Allerdings wird pmake in einem zukünftigen Release möglicherweise
entfernt.
Projektdateien benennen
Ounce/Make verwendet die in diesem Abschnitt beschriebenen Konventionen zur
Benennung von AppScan Source-Projektdateien.
v Beim Erstellen von AppScan Source-Projektdateien verwendet Ounce/Make den
relativen Verzeichnispfad aus dem Verzeichnis, in dem Sie ouncemake aufgerufen
haben, zu dem Verzeichnis, in dem ouncemake die Projektdatei erstellt.
v Das Verzeichnis, in dem Sie ouncemake aufrufen, wird zur ersten Komponente
des Pfadnamens.
v Unterstriche ersetzen alle Pfadtrennzeichen wie z. B. Backslashs (\) unter Windows oder den Schrägstrich (/) unter Linux.
v Wenn die Länge des Dateinamens die Begrenzungen des Betriebssystems überschreitet, streicht Ounce/Make links beginnend Komponenten des Pfades, bis
die Dateinamenslänge den Benennungskonventionen des Systems entspricht.
v Wenn Sie ouncemake im Stammverzeichnis eines Dateisystems ausführen (z. B. /
oder c:\), erstellt ouncemake eine AppScan Source-Projektdatei namens root.ppf.
AppScan Source speichert die erstellte .ppf-Datei an der Speicherposition neben
der Makefile, die die ppf-Datei darstellt. Wenn Sie beispielsweise Ounce/Make
ausführen und dabei eine einzelne Projektdatei erstellen, speichert AppScan Source
die ppf-Datei in dem Verzeichnis, aus dem Sie Ounce/Make aufgerufen haben. Die
ppf-Dateien, die im Mehrprojektmodus erstellt werden, sehen Sie in „Beispiel 2:
Ounce/Make mit rekursiver Option” auf Seite 16.
Kapitel 1. Builddienstprogramm Ounce/Make
3
Anmerkung: Wenn mehrere Makefiles in einem Verzeichnis vorhanden sind, erstellt Ounce/Make nur eine .ppf-Datei im Verzeichnis.
Beispiel 1
Dieses Beispiel veranschaulicht eine ppf-Datei, die mit durch Unterstriche ersetzten
Pfadtrennzeichen erstellt wurde.
Rufen Sie ouncemake aus dem folgenden Verzeichnis auf:
C:\development\source
Im Verlauf der Ausführung erstellt Ounce/Make eine AppScan Source-Projektdatei
in:
C:\development\source\components\server
Der Name der ppf-Datei lautet source_components_server.ppf:
Path separator replacements
source_components_server.ppf
Directory that
invoked
ouncemake
Subdirectories
containing
project file
AppScan source
project file extension
Beispiel 2
Microsoft Windows und Linux begrenzen Pfad- und Dateinamen. Diese Betriebssysteme begrenzen die Anzahl der Zeichen auf 255. Beispiel 2 zeigt den Fall eines
Dateinamens, der die Längenbegrenzung für Pfade überschreitet.
Der Benutzer ruft Ounce/Make aus dem folgenden Verzeichnis auf:
C:\path1\path2\path3\path4\path5\development\source
Im Verlauf der Ausführung erstellt Ounce/Make ein AppScan Source-Projekt im
folgenden Verzeichnis:
C:\path1\path2\path3\path4\path5\development\source\components\server
Wenn der Dateiname aufgrund von Pfadbegrenzungen maximal 25 Zeichen lang
sein kann, lautet der resultierende Dateiname:
components_server.ppf
Projekt explizit benennen
Sie können optional die Umgebungsvariable OUNCE_PROJ_NAME verwenden, um explizit einen Namen für ein neu erstelltes Projekt anzugeben. Definieren Sie die Umgebungsvariable OUNCE_PROJ_NAME=value wie jede andere Umgebungsvariable auch.
Wenn der Name nicht festgelegt ist, wird er entsprechend der vorhandenen Projektnamenskonvention generiert.
4
IBM Security AppScan Source Utilities: Benutzerhandbuch
So geben Sie beispielsweise den Projektnamen MyMakeProject über die Befehlszeile
an:
$(MAKE) $(MAKE_ARGS) all OUNCE_PROJ_NAME=MyMakeProject
Ounce/Make-Ausgabe
Bei der Ausführung generiert Ounce/Make eine Ausgabe, die Sie über bestimmte
Ereignisse informiert.
Die folgenden Ereignisse lösen Ausgabenachrichten aus:
v Projekterstellung
v Aufruf von Make
v Fehler
Projekterstellung
Wenn Ounce/Make eine AppScan Source-Projektdatei erstellt, gibt es eine Nachricht aus, die den ppf-Namen einschließt. Das folgende Beispiel ist eine Ounce/
Make-Ausgabenachricht zur Projekterstellung:
AppScan Source-Projekt ’<Projektname>.ppf’ wurde erstellt in Verzeichnis <Verzeichnis>.
Aufruf von Make
Wenn Ounce/Make die ausführbare Make-Datei aufruft, werden der Name der
ausführbaren Datei und die Optionen ausgegeben. Das folgende Beispiel zeigt die
Ausgabe, die generiert wird, wenn Ounce/Make Ihre Make-Datei aufruft.
/usr/bin/gmake -f makefile.mk release
Fehler
Wenn bei der Ausführung ein Fehler auftritt, gibt Ounce/Make eine Fehlernachricht aus, die den Fehler beschreibt. Wenn der Fehler auftrat, während die ausführbare Make-Datei ausgeführt wurde, ist die angezeigte Fehlernachricht der Fehler
der ausführbaren Make-Datei. Wenn der Fehler für Ounce/Make spezifisch war,
wird eine passende Fehlernachricht angezeigt, die die Ounce/Make-Fehlerbedingung beschreibt.
Ounce/Make-Befehlssyntax und Make-Optionen
Ounce/Make unterstützt zahlreiche Optionen, die das Verhalten bei der Ausführung ändern können.
Sie können diese Optionen in der Eigenschaftendatei festlegen (weitere Informationen in „Ounce/Make-Eigenschaftendatei” auf Seite 8) oder sie in die Befehlszeile
einschließen. Wenn Sie die Optionen in der Eigenschaftendatei festlegen, ist es
nicht erforderlich, sie bei jeder Ausführung von Ounce/Make erneut in der Befehlszeile anzugeben.
Übersicht
Ounce/Make unterstützt die folgende Syntax:
ouncemake [options] [-- make_options]
Kapitel 1. Builddienstprogramm Ounce/Make
5
Optionen
Ein Bindestrich (-) muss allen Optionen vorangestellt werden. Sie müssen Optionen gesondert angeben, d. h., Sie dürfen sie nicht nach einem einzelnen Bindestrich
in verketteter Form angeben. Beispielsweise wird die folgende Syntax des Befehls
ouncemake -sr
nicht unterstützt; Sie können aber Folgendes ausführen:
ouncemake -s -r
Anmerkung: Jede Option muss durch ein Leerzeichen getrennt sein.
Wenn Sie Ounce/Make ausführen, können Sie die abgekürzte Option oder das
vollständige Wort verwenden.
Die folgende Tabelle enthält Spalten, die die einzelnen Optionen beschreiben.
v Option: Gibt die Option an, die Ounce/Make beim Aufruf versteht.
v Standard: Erläutert, sofern anwendbar, wie Ounce/Make standardmäßig vorgeht, wenn Sie die Option nicht angeben.
v Beschreibung: Ounce/Make-Verhalten bei Verwendung dieser Option.
Option
Standard, wenn keine Option angegeben wird.
-a <Anwendungsname>
Inaktiv
Wenn angegeben, erstellt
Ounce/Make eine
Anwendungsdatei namens
<Anwendungsname>.paf, die
alle von Ounce/Make erstellten Projekte enthält. Die Datei wird in dem Verzeichnis
erstellt, in dem ouncemake
ausgeführt wurde.
Inaktiv
Führt den Build bei der Zusammenstellung der MakeOptionen aus.
-application
<Anwendungsname>
-b
-build
Beschreibung
Diese Option ist nicht kompatibel mit Cygwin.
-r
Nicht rekursiv
Ounce/Make folgt rekursiv
allen Aufrufen anderer
Makefiles. Wenn eine
Makefile beispielsweise im
Stammverzeichnis eines
Quellcodebaums vorhanden
ist, um alle Makefiles in den
Unterverzeichnissen aufzurufen, dann bewirkt der Aufruf
ouncemake -r in dem Verzeichnis, das die StammMakefile enthält, dass
Ounce/Make den Aufrufen
der Makefiles in den
Unterverzeichnissen folgt.
Nicht rekursiv
Ounce/Make folgt den Aufrufen anderer Makefiles
nicht.
-recursive
-nr
-non_recursive
6
IBM Security AppScan Source Utilities: Benutzerhandbuch
Option
Standard, wenn keine Option angegeben wird.
-s
Mehrprojektmodus
-single_project
Beschreibung
Einprojektmodus. Im
Einprojektmodus generiert
Ounce/Make nur eine einzelne Projektdatei in dem Verzeichnis, aus dem heraus es
aufgerufen wurde.
Sofern nicht anders angegeben, läuft Ounce/Make im
Mehrprojektmodus.
-ns
Mehrprojektmodus
Mehrprojektmodus. In diesem Modus generiert
Ounce/Make eine AppScan
Source-Projektdatei in jedem
Verzeichnis, in dem es eine
Makefile vorfindet.
Nicht ausführlicher Modus
Nicht ausführlicher Modus.
Ounce/Make gibt nur seine
eigenen Ausgabenachrichten
aus. Make-Ausgaben werden
unterdrückt.
Ausführlicher Modus
Ausführlicher Modus.
Ounce/Make gibt die MakeAusgaben sowie seine eigene
an die Standardausgabe aus.
1 (inaktiv)
1 bis 10. 10 bietet die ausführlichste Protokollierung.
Inaktiv
Falls angegeben, interpretiert
Ounce/Make
<Bereinigungsbefehl> als
Befehl und führt ihn aus.
<Bereinigungsbefehl> sollte
der Befehl sein, den der Benutzer normalerweise zur
Bereinigung ausführt. 'make
clean' beispielsweise ist ein
Befehl, der häufig zur Bereinigung ausgeführt wird. Beachten Sie, dass Sie den
Befehl in Anführungszeichen
setzen müssen.
-non_single_project
-m
-multiple_project
-nv
-non_verbose
-q
-quiet
-v
-verbose
-l
log_level
-c <Bereinigungsbefehl>
-clean <Bereinigungsbefehl>
Da Ounce/Make vor der
Ausführung eine Bereinigung
benötigt, wird, wenn Sie diese Option nicht angeben,
eine Eingabeaufforderung
angezeigt, die anfragt, ob Sie
fortfahren möchten.
-nc
-no_clean
Inaktiv
Weist Ounce/Make an,
'clean' nicht auszuführen und
keine Eingabeaufforderung
anzuzeigen, die daran erinnert, dass keine Bereinigung
ausgeführt werden wird.
Kapitel 1. Builddienstprogramm Ounce/Make
7
Option
Standard, wenn keine Option angegeben wird.
-p <Eigenschaftendatei>
nicht zutreffend
Gestattet Benutzern die Angabe einer
Eigenschaftendatei zur Verwendung durch Ounce/
Make. <Eigenschaftendatei>
muss ein absoluter Pfad zu
der Eigenschaftendatei sein,
die Ounce/Make verwenden
soll.
-?
nicht zutreffend
Hilfe zu den Ounce/MakeOptionen.
-h
Beschreibung
-help
Ounce/Make-Eigenschaftendatei
Die Ounce/Make-Eigenschaftendatei (ouncemake_properties.xml) ist eine XMLDatei, die Details zu Ihrer Buildumgebung enthält. Wenn Ounce/Make ausgeführt
wird, sucht es die Eigenschaftendatei basierend auf dem Suchpfad oder der Option
-p. In der Eigenschaftendatei müssen der in Ihrer Buildumgebung verwendete
Compiler, der Linker und Make-Elemente angegeben sein.
Informationen zu den erforderlichen und optionalen Elementen, die in der Eigenschaftendatei angegeben sind, finden Sie in „Ouncemake - Elemente der
Eigenschaftendatei” auf Seite 9.
Wenn Sie Ounce/Make ausführen und dabei die Option -p nicht in der Befehlszeile angeben, durchsucht Ounce/Make seinen Suchpfad nach der Datei
ouncemake_properties.xml (Informationen zum Angeben von Optionen für die Befehlszeile finden Sie in „Ounce/Make-Befehlssyntax und Make-Optionen” auf Seite
5). Der Ounce/Make-Suchpfad ist plattformabhängig.
Der Microsoft Windows-Suchpfad ist:
v Aktuelles Arbeitsverzeichnis
v <datenverzeichnis>\config (wobei <datenverzeichnis> die Position Ihrer
AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben wird)
Der Linux-Suchpfad ist:
v Aktuelles Arbeitsverzeichnis
v <datenverzeichnis>/config (wobei <datenverzeichnis> die Position Ihrer
AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben wird)
v Ausgangsverzeichnis des Benutzers
v /etc
Anmerkung:
v Wenn Sie unter Linux nicht die Option -p angeben und die Eigenschaftendatei
im Suchpfad nicht vorhanden ist, erstellt AppScan Source automatisch eine im
aktuellen Arbeitsverzeichnis.
8
IBM Security AppScan Source Utilities: Benutzerhandbuch
v Aus Gründen der Abwärtskompatibilität erkennt Ounce/Make auch pmake_properties.xml. Wenn sowohl pmake_properties.xml als auch
ouncemake_properties.xml im selben Verzeichnis vorhanden sind, hat
ouncemake_properties.xml Vorrang.
Ouncemake - Elemente der Eigenschaftendatei
OuncemakeProperties, das Stammelement der Eigenschaftendatei, enthält die Elemente, die in diesem Abschnitt aufgelistet sind.
Erforderliche Elemente:
v Compiler
v Linker
v Make
Optionale Elemente:
v MakeOptions
v Options
v GlobalProjectOptions
v FileOptions
v Executable
v MountRoot
Compiler
Das Element Compiler gibt eine ausführbare Compilerdatei in Ihrer Buildumgebung an. Der Wert dieses Elements muss ein absoluter Pfad zu einer ausführbaren
Datei sein. Dieses Element umfasst genau ein optionales Attribut macro, das den
Namen der Variablen, die die ausführbare Compilerdatei bei der Erstellung speichert, und einen Wert angibt, der für den Pfad zum Compiler spezifisch ist. Wenn
Sie das Attribut macro nicht angeben, setzt Ounce/Make das Attribut macro standardmäßig auf CC. Die Eigenschaftendatei kann mehrere Compiler-Elemente enthalten, doch ist mindestens eines erforderlich.
Der Wert des Attributs macro muss für alle Compiler-Elemente eindeutig sein. Sie
können beispielsweise CC nicht mehrmals als macro-Attribut auflisten.
Beispiel
<Compiler macro=CXX>/usr/bin/gcc</Compiler>
Beschreibung
CXX: Ihre Makefiles referenzieren diesen Compiler mit dem Makro CXX.
/usr/bin/gcc: Informiert Ounce/Make darüber, dass Sie den Compiler
/usr/bin/gcc verwenden.
Linker
Das Element Linker gibt eine ausführbare Linker-Datei an, die in der Buildumgebung verwendet wird. Der Wert dieses Elements muss ein absoluter Pfad zu einer
ausführbaren Datei sein. Die Eigenschaftendatei kann mehrere Linker-Elemente
enthalten, doch ist mindestens eines erforderlich.
Kapitel 1. Builddienstprogramm Ounce/Make
9
Dieses Element umfasst genau ein Attribut macro, das den Namen der Variablen
angibt, die die ausführbare Linker-Datei bei der Erstellung speichert. Wenn Sie das
Attribut macro nicht angeben, wird LD zum Standardwert für macro von Linker.
Der Wert des Attributs macro muss für alle Linker-Elemente eindeutig sein. Sie
können beispielsweise LD nicht mehrmals als Linker-Attribut auflisten.
Beispiel
<Linker macro=LD>/usr/bin/ld</Linker>
Beschreibung
LD: Informiert Ounce/Make darüber, dass Sie das Makro LD verwenden.
/usr/bin/ld: Informiert Ounce/Make darüber, dass Sie den Linker /usr/bin/ld
verwenden.
Make
Das Element Make gibt eine ausführbare Make-Datei in Ihrer Buildumgebung an.
Der Wert dieses Elements muss ein absoluter Pfad zu der ausführbaren Datei sein.
Die Eigenschaftendatei kann mehrere Make-Elemente enthalten, doch ist mindestens
eines erforderlich.
Dieses Element umfasst genau ein Attribut macro, das den Namen der Variablen
angibt, die die ausführbare Make-Datei bei der Erstellung speichert. Wenn Sie das
Attribut macro nicht angeben, setzt Ounce/Make das Attribut standardmäßig auf
MAKE.
Der Wert des Make-Attributs macro muss für alle Make-Elemente eindeutig sein.
Beispiel
<Make macro=MAKE>/usr/bin/make</Make>
Beschreibung
v MAKE: Informiert Ounce/Make darüber, dass Sie das Makro MAKE verwenden.
v /usr/bin/make: Informiert Ounce/Make darüber, dass Sie die Make-Datei in
/usr/bin/make verwenden.
MakeOptions
Das Element MakeOptions gibt die Optionen an, die an die ausführbare Make-Datei
übergeben werden müssen. Dieses Element ist optional und darf nicht mehrmals in
der Eigenschaftendatei erscheinen.
Beispiel
<MakeOptions>-f makefile.mk release</MakeOptions>
Beschreibung
Die Optionen
-f makefile.mk release
werden an die ausführbare Make-Datei übergeben.
10
IBM Security AppScan Source Utilities: Benutzerhandbuch
Options
Das Element Options gibt Optionen an, die beim Aufruf an Ounce/Make übergeben werden.
Dieses Element stellt eine Alternative zur Verwendung bestimmter Ounce/MakeBefehlszeilenoptionen dar, wie sie in „Ounce/Make-Befehlssyntax und
Make-Optionen” auf Seite 5 beschrieben sind.
Attribute verwenden folgende Syntax:
<Option> = <true | false>
Das Element Options und seine Attribute sind nicht erforderlich.
Das Element Options kann die folgenden Attribute einschließen:
Attribut
Beschreibung
recursive
Boolescher Wert. Ist 'true' oder 'false'.
Entspricht im Falle von 'true' der
Befehlszeilenoption -r.
single_project
Boolescher Wert. Ist 'true' oder 'false'.
Entspricht im Falle von 'true' der
Befehlszeilenoption -s.
verbose
Boolescher Wert. Ist 'true' oder 'false'.
Entspricht im Falle von 'true' der
Befehlszeilenoption -v.
clean
Zeichenfolgewert in Anführungszeichen("),
wie beispielsweise "make clean".
Entspricht, sofern festgelegt, der
Befehlszeilenoption -c. Der Wert sollte der
Befehl sein, der auszuführen ist, um die Bereinigung auszuführen. Beispiel: gmake
clean.
build
Boolescher Wert. Ist 'true' oder 'false'.
Führt den Build bei der Zusammenstellung
der Make-Optionen aus.
Anmerkung: Nicht kompatibel mit Cygwin.
application
Zeichenfolgewert. Entspricht, sofern festgelegt, der Option -a. Der angegebene Wert
sollte der gewünschte Anwendungsname
sein.
no_clean
Boolescher Wert. Ist 'true' oder 'false'.
Weist Ounce/Make an, 'clean' nicht auszuführen und zeigt keine Eingabeaufforderung
an, die daran erinnert, dass keine Bereinigung ausgeführt werden wird.
Anmerkung: Ounce/Make verwendet die Optionen, die in der Eigenschaftendatei
festgelegt sind. Wenn Sie Ounce/Make jedoch mit in der Befehlszeile eingeschlossenen Optionen ausführen, haben diese Optionen Vorrang vor jenen, die in der Ei-
Kapitel 1. Builddienstprogramm Ounce/Make
11
genschaftendatei festgelegt sind. Wenn Sie Ounce/Make ohne Optionen in der Befehlszeile ausführen, wendet Ounce/Make die Optionen in der Eigenschaftendatei
an.
Beispiel
Nachfolgend eine Beispielzeile aus der Eigenschaftendatei, bei der alle Attribute
verwendet werden:
<Options recursive="true" single_project="false" verbose="false"
clean="nmake.exe clean" no_clean="false"></Options>
Beschreibung
v recursive="true"
v single_project="false" weist Ounce/Make an, im Mehrprojektmodus zu laufen. Beim Betrieb im Mehrprojektmodus sollte das Attribut 'recursive' ebenfalls
auf true gesetzt werden.
v verbose="false" inaktiviert die Ausführlichkeit.
v clean="nmake.exe clean" bereinigt die Buildumgebung.
v no_clean= "false" weist Ounce/Make an, einen 'clean'-Befehl auszuführen, wobei die Nachricht, die besagt, dass die Bereinigung ausgeführt wird, unterdrückt
wird.
GlobalProjectOptions
Das Element GlobalProjectOptions gibt Optionen auf Projektebene für alle Dateien
an, die im Projekt enthalten sind. Das Element GlobalProjectOptions und seine Attribute sind nicht erforderlich.
Die folgende Liste beschreibt die Attribute für das Element GlobalProjectOptions:
v include_paths: Zeichenfolgewert. Eine durch Semikola getrennte Liste von Include-Pfaden, die auf alle Dateien im Projekt angewendet werden können.
v macros: Zeichenfolgewert. Eine durch Semikola getrennte Liste von Makros, die
auf alle Dateien im Projekt angewendet werden können.
v compiler_options: Zeichenfolgewert. Eine Liste der Compileroptionen, die auf
alle Dateien im Projekt angewendet werden können. Geben Sie hier keine include-Pfade und Makros an.
Beispiel
Nachfolgend eine Beispielzeile aus der Eigenschaftendatei, bei der alle Attribute
verwendet werden:
<GlobalProjectOptions include_paths="/usr/include;/usr/local/include"
macros="DEBUG;WIN32" compiler_options="-f non-const-strings"/>
Beschreibung
v include_paths="/usr/include;/usr/local/include" fügt den Pfad zum Abschnitt 'Includes' der Projektkonfiguration hinzu.
v macros= "DEBUG;WIN32" fügt die Makros DEBUG und WIN32 zum Abschnitt 'Macros' der Projektkonfiguration hinzu.
v compiler_options= fügt die Compileroptionen zum Abschnitt 'Options/
Command Line' der Projektkonfiguration hinzu.
12
IBM Security AppScan Source Utilities: Benutzerhandbuch
FileOptions
Das Element FileOptions ermöglicht die Angabe von Include-Pfaden, Makros und
anderen Compileroptionen für Dateien mit einer bestimmten Erweiterung. Sie können FileOptions mehrfach verwenden, um verschiedene Optionen für Dateien mit
unterschiedlichen Erweiterungen anzugeben. Wenn Sie beispielsweise wie nachfolgend gezeigt ein Projekt haben, das sowohl C- als auch C++-Dateien enthält, erstellen Sie zwei FileOptions-Elemente, nämlich je eines für jeden Dateityp.
Die folgende Liste beschreibt die Attribute für das Element FileOptions:
v extensions: Zeichenfolgewert. Eine durch Semikola getrennte Liste mit Dateierweiterungen. Jede Datei mit einer Erweiterung, die mit einer Erweiterung in dieser Liste übereinstimmt, übernimmt die von dieser Eigenschaft angegebenen Optionen. Wenn eine Dateierweiterung für mehrere Vorkommen der Eigenschaft
FileOptions gilt, dann hat das erste Vorkommen in der Ounce/Make-Eigenschaftendatei Vorrang.
v compiler_options: Zeichenfolgewert. Eine Liste der Compileroptionen, die auf
alle Dateien mit der angegebenen Erweiterung angewendet werden können. Geben Sie hier keine include-Pfade und Makros an.
v include_paths: Zeichenfolgewert. Eine durch Semikola getrennte Liste von include-Pfaden, die auf alle Dateien mit der angegebenen Erweiterung angewendet werden können.
v macros: Zeichenfolgewert. Eine durch Semikola getrennte Liste von Makros, die
auf alle Dateien mit der angegebenen Erweiterung angewendet werden können.
Beispiele
Die folgenden Beispiele für FileOptions zeigen, wie die Ounce/Make-Eigenschaftendatei konfiguriert werden muss, um die korrekten Optionen auf die C- und die
C++-Dateien anzuwenden.
Das Element FileOptions mit extensions="c" wendet seine anderen Attributwerte
nur auf Dateien mit der Erweiterung c an (<Dateiname.c>). Das Element
FileOptions mit extensions="cpp;cxx" wendet seine anderen Attributwerte nur
auf Dateien mit den Erweiterungen cpp (<Dateiname.cpp>) oder cxx (<Dateiname.cxx>) an.
<!-- g++-Optionen für C-Dateien -->
<FileOptions
extensions="c"
compiler_options="-gcc_linux_i386"
include_paths="/usr/local/include;
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include;
/usr/include"
macros=""/>
<!-- g++-Optionen für C++-Dateien -->
<FileOptions
extensions="cpp;cxx"
compiler_options="-g++_linux_i386"
include_paths="/usr/include/c++/3.2.3;
/usr/include/c++/3.2.3/i386-redhat-linux;
/usr/include/c++/3.2.3/backward;/usr/local/include;
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include;
/usr/include"
macros="__GNUG__=3" />
Kapitel 1. Builddienstprogramm Ounce/Make
13
Beschreibung
extensions="c" und extensions="cpp;cxx"
gibt die Dateierweiterungen an, für die diese Dateioptionen gelten.
Executable
Das Element Executable ermöglicht die Verwendung beliebiger ausführbarer Dateien (außer compiler, linker, oder make) in der Buildumgebung. Der Wert dieses Elements muss ein absoluter Pfad zu einer ausführbaren Datei sein. Das Element
Executable umfasst genau ein Attribut macro, das den Namen der Variablen angibt,
die den Namen der ausführbaren Datei bei der Erstellung speichert. Der Wert des
Attributs 'macro' muss für alle Executable-Elemente eindeutig sein.
Die Eigenschaftendatei kann eine beliebige Anzahl Executable-Elemente enthalten.
Das Element Executable ist optional und nur dann erforderlich, wenn Sie andere
ausführbare Dateien in Ihrer Buildumgebung verwenden, die ein Fehlschlagen von
Ounce/Make verursachen könnten. Durch Angeben dieser ausführbaren Dateien
kann Ounce/Make einen Ausfall verhindern.
Beispiel
Nachfolgend eine Beispielzeile aus der Eigenschaftendatei:
<Executable macro=ARCHIVE>/usr/bin/ar<Executable>
Beschreibung
Dieses Beispiel teilt Ounce/Make mit, dass der Build die ausführbare Datei
/usr/bin/ar verwendet und dass die Makefiles diese ausführbare Datei mit dem
Makro ARCHIVE referenzieren.
MountRoot
Das Element MountRoot ist erforderlich, wenn Sie Quellcode von einem fernen System aus beurteilen. MountRoot weist Ounce/Make an, den angegebenen Mountpunkt allen gefundenen absoluten include-Pfaden voranzustellen.
Durch Angabe eines MountRoot-Elements fügt Ounce/Make die Option
--remote_root implizit zur Liste der Compileroptionen in der resultierenden ppfDatei hinzu.
MountRoot ist nur unter Linux gültig.
Beispiel
Nachfolgend eine Beispielzeile aus der Eigenschaftendatei:
<MountRoot>/mnt/mount_point/usr/include</MountRoot>
Beschreibung
Wenn einer der angegebenen Include-Pfade /usr/include ist (z. B. gcc
-I/usr/include ...stellt Ounce/Make /usr/include den Mountpunkt voran, sodass die resultierende ppf-Datei den korrekten Pfad enthält, z. B. /mnt/
mount_point/usr/include.
14
IBM Security AppScan Source Utilities: Benutzerhandbuch
Beispieleigenschaftendateien
Die AppScan Source-Installation umfasst die folgenden Beispiele für Eigenschaftendateien, die im Verzeichnis <datenverzeichnis>\config gespeichert sind (wobei
<datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in
Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143
beschrieben wird):
v SampleOuncemakeProperties-Windows.xml
v SampleOuncemakeProperties-Linux.xml
Sie können diese Dateien ändern, um eine benutzerdefinierte Eigenschaftendatei zu
erstellen. Wenn Sie mit XML nicht vertraut sind, verwenden Sie diese Beispiele als
Schablonen, um Ihre Datei zu erstellen.
Beispiele
Dieser Abschnitt beschreibt drei Möglichkeiten zur Verwendung von Ounce/Make.
„Beispiel 1: Ounce/Make ohne Optionen” auf Seite 16 veranschaulicht Ounce/
Make ohne Optionen. Hierbei wird eine einzige AppScan Source-Projektdatei erstellt, die nur auf der Makefile in dem Verzeichnis basiert, in dem Sie Ounce/Make
aufrufen.
„Beispiel 2: Ounce/Make mit rekursiver Option” auf Seite 16 verwendet Ounce/
Make mit der Option -r (rekursiv). Diese weist Ounce/Make an, rekursiv zu arbeiten und allen Aufrufen zu anderen Makefiles zu folgen.
In „Beispiel 3: Ounce/Make im Einprojektmodus mit rekursiver Option” auf Seite
17 verwendet Ounce/Make sowohl die Option -r (rekursiv) als auch -s (Einprojektmodus). Hierbei wird eine einzelne AppScan Source-Projektdatei auf der Basis
der rekursiven Verarbeitung aller Makefiles erstellt, die Ounce/Make vorfindet.
Verzeichnisstruktur und Dateien
Alle drei Beispiele verwenden dieselbe Verzeichnisstruktur und dieselben Dateien:
Directory: /usr/source
Contents: makefile, *.c, *.h
Directory: /usr/source/database
Contents: makefile, *.sql
Directory: /usr/source/server
Contents: makefile, *.c,
. *.h
Dieses Diagramm zeigt ein Stammverzeichnis (/usr/source), das eine Makefile und
Quellendateien enthält. Das Verzeichnis /usr/source enthält die beiden Unterverzeichnisse /usr/source/database und /usr/source/server. Das Verzeichnis
/usr/source/database enthält eine Makefile und SQL-Dateien. Das Verzeichnis
/usr/source/server enthält eine Makefile und Quellendateien.
Bei diesem Beispiel gelten die folgenden Voraussetzungen für die drei Makefiles:
Kapitel 1. Builddienstprogramm Ounce/Make
15
v Die Makefile in /usr/source erstellt die Quellendateien in /usr/source und ruft
die Makefiles in /usr/source/database und /usr/source/server auf.
v Die Makefile in /usr/source/database importiert die SQL-Dateien in eine Datenbank.
v Die Makefile in /usr/source/server erstellt die Quellendateien in /usr/source/
server.
Beispiel 1: Ounce/Make ohne Optionen
Dieses Beispiel veranschaulicht die nichtrekursive Verwendung von Ounce/Make.
Im nichtrekursiven Modus berücksichtigt Ounce/Make nur die Makefile in dem
Verzeichnis, aus dem es aufgerufen wurde. Wenn die Original-Makefile Aufrufe anderer Makefiles enthält, ignoriert Ounce/Make diese.
In diesem Beispiel wird Ounce/Make aus /usr/source ausgeführt.
In „Verzeichnisstruktur und Dateien” auf Seite 15 finden Sie eine grafische Erläuterung der Verzeichnisstruktur und der Dateien, die im vorliegenden Beispiel vorausgesetzt werden.
Befehl
ouncemake
Das folgende Diagramm zeigt den Inhalt der Verzeichnisse nach der Ausführung
von Ounce/Make:
Directory: /usr/source
Contents: source.ppf, makefile, *.c, *.h
Directory: /usr/source/database
Contents: makefile, *.sql
Directory: /usr/source/server
Contents: makefile, *.c, *.h
Nach der Ausführung von Ounce/Make enthält /usr/source nun eine AppScan
Source-Projektdatei namens source.ppf. Diese Projektdatei enthält alle notwendigen Angaben zur Beurteilung aller Quellendateien in /usr/source. Ounce/Make
im nichtrekursiven Modus ignoriert die Aufrufe in der Makefile in /usr/source,
das die Makefiles in /usr/source/database und /usr/source/server aufruft.
Beispiel 2: Ounce/Make mit rekursiver Option
Mit der Option -r arbeitet Ounce/Make rekursiv (d. h. Aufrufen anderer Makefiles, die in einer Makefile enthalten sind, wird gefolgt). Da der Mehrprojektmodus
bei Verwendung der Option -r der Standardmodus ist, erstellt Ounce/Make eine
AppScan Source-Projektdatei für jede vorgefundene Makefile, die Quellcode kompiliert.
In „Verzeichnisstruktur und Dateien” auf Seite 15 finden Sie eine grafische Erläuterung der Verzeichnisstruktur und der Dateien, die im vorliegenden Beispiel vorausgesetzt werden.
16
IBM Security AppScan Source Utilities: Benutzerhandbuch
Befehl
ouncemake -r
Die Option -r (rekursiv) weist Ounce/Make an, den Makefile-Aufrufen zu anderen
Makefiles zu folgen. Eine ausführlichere Beschreibung der Rekursivoption entnehmen Sie der Tabelle in „Ounce/Make-Befehlssyntax und Make-Optionen” auf Seite
5.
Das folgende Diagramm zeigt den Inhalt der Verzeichnisse nach der Ausführung
von Ounce/Make:
Directory: /usr/source
Contents: source.ppf, makefile, *.c, *.h
Directory: /usr/source/database
Contents: makefile, *.sql
Directory: /usr/source/server
Contents: source_server.ppf,
makefile, *.c, *.h
In diesem Beispiel erstellt Ounce/Make eine AppScan Source-Projektdatei in
/usr/source und /usr/source/server. Da die Makefile in /usr/source die Makefiles in /usr/source/database und /usr/source/server aufgerufen hat, hat Ounce/
Make geprüft, ob diese Makefiles Quellcode kompiliert haben.
Im Fall der Makefile in /usr/source/database hat Ounce/Make festgestellt, dass
diese Makefile keinen Quellcode kompiliert; aus diesem Grund wurde keine
AppScan Source-Projektdatei erstellt. Allerdings wurde von Ounce/Make festgestellt, dass die Makefile in /usr/source/server die Quellendateien in diesem Verzeichnis kompiliert hat, und Ounce/Make erstellte daraufhin eine AppScan SourceProjektdatei für die Quellendateien in /usr/source/server.
Beispiel 3: Ounce/Make im Einprojektmodus mit rekursiver
Option
Beispiel 3 veranschaulicht die rekursive Verwendung von Ounce/Make im Einprojektmodus. Ounce/Make generiert eine einzelne AppScan Source-Projektdatei für
eine Kombination des Quellcodes, der von allen vorgefundenen Makefiles kompiliert wurde.
In „Verzeichnisstruktur und Dateien” auf Seite 15 finden Sie eine grafische Erläuterung der Verzeichnisstruktur und der Dateien, die im vorliegenden Beispiel vorausgesetzt werden.
Führen Sie den folgenden Befehl aus dem Verzeichnis /usr/source heraus aus:
Befehl
ouncemake -r -s
Die Option -r (rekursiv) weist Ounce/Make an, den Makefile-Aufrufen zu anderen
Makefiles zu folgen. Eine ausführlichere Beschreibung der Rekursivoption entnehmen Sie der Tabelle in „Ounce/Make-Befehlssyntax und Make-Optionen” auf Seite
5.
Kapitel 1. Builddienstprogramm Ounce/Make
17
Die Option -s weist Ounce/Make an, nur eine einzelne AppScan Source-Projektdatei in dem Verzeichnis zu erstellen, aus dem heraus es aufgerufen wurde, statt für
jede vorgefundene Makefile ein neues Projekt zu erstellen.
Das folgende Diagramm zeigt den Inhalt der Verzeichnisse nach der Ausführung
von Ounce/Make.
Directory: /usr/source
Contents: source.ppf, makefile, *.c, *.h
Directory: /usr/source/database
Contents: makefile, *.sql
Directory: /usr/source/server
Contents: makefile, *.c, *.h
Eine einzelne AppScan Source-Projektdatei ist in /usr/source vorhanden. Diese
AppScan Source-Projektdatei enthält die Konfigurationsdaten für den gesamten
Quellcode in /usr/source und /usr/source/server.
18
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
Die CLI bildet die Schnittstelle zur Kernfunktionalität von AppScan Source.
Die CLI unterstützt die Ausführung der Funktionen von AppScan Source über die
Befehlszeile oder die Ausführung von Scriptdateien, die bei einer interaktiven Sitzung ausgegebene Befehle aufzeichnen. Die CLI gibt während der Ausführung
Rückmeldungen für den Benutzer, die an der Konsole oder optional in eine Protokolldatei ausgegeben werden.
Objekte und Kontext
Die AppScan Source-Objektbaumstruktur
Die Objektbaumstruktur zeigt die grundlegende Struktur der Objekte in AppScan
Source an. Sie können alle Objekte (Anwendungen, Projekte oder Quellendateien)
in der Baumstruktur überprüfen.
AppScan Source root
AllApplications>>
Application
(*.paf)
Project
(*.ppf, *.vbproj,
*.jsproj, etc.)
Source
Source
...
Project
Source
Source
Project
Application
(*.paf)
© Copyright IBM Corp. 2003, 2015
Project
19
Aktive Objekte und aktueller Kontext
Viele Befehle der AppScan Source-Befehlzeilenschnittstelle (CLI) sind nur im aktuellen Kontext anwendbar, also im Arbeitsverzeichnis oder auf eine angegebene Datei. Verwenden Sie den Befehl SetCurrentObject (SET, CD), um zu dem Objekt zu
gelangen, bevor Sie Befehle aufrufen, die nur im aktuellen Kontext gültig sind.
Außerdem sind einige Befehle der CLI nur auf aktive Objekte anwendbar. Das
kann die aktuell ausgewählte Quellendatei, ein Projekt oder eine Anwendung mit
einer Beurteilung sein.
Berechtigungen für die AppScan Source-Befehlzeilenschnittstelle (CLI)
Für viele CLI-Befehle ist es erforderlich, dass Sie über die entsprechenden AppScan
Source-Berechtigungen verfügen.
Wenn Sie keine Berechtigung für eine bestimmte Aktion haben, erscheint eine Fehlernachricht. Dabei ist zu beachten, dass die CLI-Befehle Scan (SC), Publish und
Report (RPT) eine Lizenz für AppScan Source for Automation erfordern.
Wenden Sie sich an Ihren Administrator, wenn Sie weitere Informationen benötigen.
AppScan Source-Befehlzeilenschnittstelle (CLI) starten
v Führen Sie auf Windows-Systemen die Datei <installationsverzeichnis>\bin\
AppScanSrcCli.exe aus (wobei <installationsverzeichnis> die Position Ihrer
AppScan Source-Installation ist). Beispiel für Windows (32-Bit):
C:\Programme\IBM\AppScanSource\bin\AppScanSrcCli.exe
v Führen Sie auf Linux-Systemen <installationsverzeichnis>/bin/appscansrccli
aus. Beispiel:
/opt/ibm/appscansource/bin/appscansrccli
Die CLI ermöglicht beim Anwendungsstart die Übergabe eines einzigen gültigen
Befehls in der Befehlszeile.
Beispiel:
Die CLI übergibt den Befehl script zur automatischen Ausführung einer vollständigen CLI-Sitzung.
<installationsverzeichnis>\bin\AppScanSrcCli script myscript.txt
AppScan Source-Befehlzeilenschnittstelle (CLI) in Landessprachen anzeigen
In diesem Abschnitt werden die Schritte beschrieben, die erforderlich sind, um die
CLI in verschiedenen Landessprachen anzuzeigen.
Vorgehensweise
v Öffnen Sie die Datei <datenverzeichnis>\config\cli.cp in einem Texteditor
(wobei <datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten
ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf
Seite 143 beschrieben wird). Fügen Sie die folgende Zeile der Datei hinzu:
-Duser.language=<sprache>
20
IBM Security AppScan Source Utilities: Benutzerhandbuch
Hierbei ist <sprache> die Sprache, die Sie anzeigen wollen. Folgende Werte werden unterstützt:
– de für Deutsch
– es für Spanisch
– fr für Französisch
– it für Italienisch
– ja für Japanisch
– ko für Koreanisch
– ru für Russisch
– pt_BR oder pt-BR für brasilianisches Portugiesisch
– zh_CN oder zh-CN für vereinfachtes Chinesisch
– zh_TW oder zh-TW für traditionelles Chinesisch
Speichern Sie die Datei, nachdem Sie diese Zeile hinzugefügt haben.
v Öffnen Sie die Datei <datenverzeichnis>\config\ounce.ozsettings in einem
Texteditor. Suchen Sie die Einstellung locale in der Datei. Diese Einstellung ist
der folgenden ähnlich:
<Setting
name="locale"
value=""
default_value=""
description="The language (and optionally the Country/Region)
in which UI and messages should be displayed. E.g. fr for
French, or pt-BR for Portuguese (Brazil)"
display_name="Locale"
type="text"
available_values=""
read_only="false"
hidden="false"
force_upgrade="false"
/>
Ändern Sie in dieser Einstellung das Attribut value, so dass dafür die gleiche
Spracheinstellung festgelegt ist, die im obigen Schritt angegeben wurde. Beispiel:
wenn Sie im obigen Schritt -Duser.language=de, hinzugefügt haben, ändern Sie
das Attribut value in value="de".
Speichern Sie die Datei, nachdem Sie diese Einstellung geändert haben.
v Starten Sie die CLI (wenn diese Änderungen vorgenommen wurden, während
die CLI bereits ausgeführt wurde, müssen Sie die CLI neu starten).
Befehlssyntax
Die Befehle der AppScan Source-Befehlzeilenschnittstelle (CLI) entsprechen einer
Syntaxvorlage, die erforderliche und optionale Argumente enthält und einer Befehlsshell gleicht. Bei Befehlen der CLI muss die Groß-/Kleinschreibung nicht beachtet werden und sie erfordern keine Schalter zwischen verschiedenen Argumenten.
Die Syntax für alle CLI-Befehle lautet wie folgt:
Befehl erforderliche_Argumente [optionale_Argumente]
Die Beschreibungen der Befehle und deren Verwendung halten an den folgenden
Konventionen fest:
v Befehl: Der eigentliche Befehl, an der Schriftart Courier fett erkenntlich.
v Erforderliche Argumente: erkenntlich an der Schriftart Courier.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
21
Literale: erkenntlich an der Kursivschrift.
Optionale Argumente: in eckigen Klammern [ ].
Erforderliche Argumente mit Optionen: in geschweiften Klammern {}.
Einige Argumente benötigen zugeordnete Werte (erkennbar an den spitzen
Klammern < >). Wenn diese Argumente ohne Werte verwendet werden, wird
eine Fehlernachricht angezeigt.
v Alle Befehle bestehen aus einem ausgeschriebenen Namen und einer Kurzform.
Die Kurzform können Sie in runden Klammern in der Befehlsüberschrift finden.
v Alle Befehlsnamen bestehen aus einem Wort ohne Leerzeichen oder Tabulatoren.
v Argumente benötigen zwar keine Befehlsschalter, sind aber abhängig von der
Reihenfolge.
v
v
v
v
Wichtig: Diese Abhängigkeit von der Reihenfolge ist wichtig.
Argumente können Leerzeichen und Tabulatoren enthalten. Schließen Sie Argumente, die Leerzeichen oder Tabulatoren enthalten, in einfache Anführungszeichen
ein (’ ’), da sie sonst syntaktisch als multiple Argumente analysiert werden.
Befehle für die AppScan Source-Befehlzeilenschnittstelle (CLI)
Dieser Abschnitt beschreibt alle verfügbaren Befehle der CLI, erforderliche und optionale Argumente sowie Beispiele. Jeder Befehl entspricht einer bestimmten Befehlskategorie, wie in „Zusammenfassung der Befehle der AppScan Source-Befehlzeilenschnittstelle (CLI)” beschrieben.
Alle Befehle bestehen aus einem ausgeschriebenen Namen und einer Kurzform.
Der Befehl zum Überprüfen einer Anwendung, eines Projekts oder einer Datei und
zur Erstellung einer Beurteilung lautet beispielsweise scan mit der Kurzform sc.
Zusammenfassung der Befehle der AppScan Source-Befehlzeilenschnittstelle (CLI)
Die folgende Tabelle enthält Befehle für die CLI, eine Beschreibung jedes Befehls
und die Angabe, ob eine Anmeldung erforderlich ist.
Tabelle 1. Befehle für die CLI
22
Befehl und Kurzform
Beschreibung
about (a)
Zeigt die
Befehlszeilenversion und
Copyrightvermerke für
AppScan Source an.
delete (del)
Löscht ein untergeordnetes
Ja
Objekt des aktuellen Objekts.
deleteassess (da)
Dieser Befehl wurde umbenannt. Weitere Informationen
hierzu finden Sie in
removeassess (da).
deleteuser (du)
Löscht einen Benutzer aus
der AppScan Source-Datenbank.
delvar (dv)
Löscht eine einzelne Variable. Ja
IBM Security AppScan Source Utilities: Benutzerhandbuch
Anmeldung erforderlich
Ja
Tabelle 1. Befehle für die CLI (Forts.)
Befehl und Kurzform
Beschreibung
Anmeldung erforderlich
details (det)
Zeigt Details der Beurteilung Ja
des aktuellen Objekts an.
echo
Meldet alle Ein- und Ausgaben an den Bildschirm zurück.
getaseinfo (gase)
Zeigt die Einstellungen für
den AppScan Enterprise Server an.
help (?)
Zeigt Hilfetexte für alle Befehle oder einen einzelnen
Befehl an.
import (im)
Verwenden Sie den Befehl
import, um Projekte (wie
.ppf) einer bestehenden Anwendung hinzuzufügen.
Ja
info (i)
Zeigt Informationen zu den
Eigenschaften und Werten
des aktuellen Objekts an.
Ja
list (ls, dir)
Ja
Zeigt alle untergeordneten
Objekte des aktuellen Objekts in der
Objektbaumstruktur an. Die
Baumstruktur wird als grafische Darstellung von ObjektID, name und Typ angezeigt.
listassess (la)
Zeigt die Objekt-ID und
Datum/Uhrzeit der Beurteilung für das aktuelle Objekt
in der Objektbaumstruktur
an. Verwenden Sie
listassess, um eine ID für
die Verwendung mit dem
Befehl details zu erhalten.
Ja
listgroups (lgrp)
Zeigt alle Gruppen, deren
Berechtigungen und eine Beschreibung jeder Gruppe an.
Ja
listusers (lu)
Listet alle AppScan SourceBenutzer auf.
Ja
log
Schaltet die
Nachrichtenprotokollierung
ein oder aus.
login (in)
Meldet den Benutzer bei
AppScan Enterprise Server
an (ersetzt login_local
(local)).
Ja
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
23
Tabelle 1. Befehle für die CLI (Forts.)
24
Befehl und Kurzform
Beschreibung
Anmeldedatei
Melden Sie sich bei AppScan
Enterprise Server unter Verwendung einer Tokendatei
an (Tokendateien werden mit
der Option -persist des CLI
„login (in)” auf Seite 35Befehls oder beim Erstellen
des AppScan Source for Automation-Benutzers generiert).
logout (out)
Meldet den Benutzer von
AppScan Source ab und beendet die AppScan SourceBefehlzeilenschnittstelle
(CLI)-Sitzung der
Befehlszeilenschnittstelle.
Ja
moduser (mu)
Modifiziert
Benutzerinformationen wie
Berechtigungen, Benutzer-ID
und namen für einen Benutzer von AppScan Source.
Ja
newuser (nu)
Erstellt einen neuen AppScan Ja
Source-Benutzer (ein gültiger
Benutzername, Kennwort,
vollständiger Name und EMail-Adresse sind erforderlich). AppScan SourceBenutzer können im
Benutzerrepository von
AppScan Enterprise Server
sowie in der AppScan
Source-Date nbank enthalten
sein. Wenn es Benutzer gibt,
die nicht auf den Server zugreifen sollen, können diese
lokal als AppScan SourceBenutzer erstellt werden. Sie
haben auch die Möglichkeit,
einen neuen AppScan
Source-Benutzer zu erstellen,
der bereits auf dem AppScan
Enterprise Server eingerichtet
ist.
openapplication (oa)
Dieser Befehl kann verwenJa
det werden, um eine vorhandene Anwendung zu öffnen,
oder um eine neue AppScan
Source-Anwendungsdatei zu
erstellen.
openassessmentfile (oaf)
Öffnet eine Beurteilungsdatei Ja
für AppScan Source
(file_name.ozasmt).
IBM Security AppScan Source Utilities: Benutzerhandbuch
Anmeldung erforderlich
Tabelle 1. Befehle für die CLI (Forts.)
Befehl und Kurzform
Beschreibung
Anmeldung erforderlich
password (passwd)
Ja
Sie können den Befehl
password dazu verwenden,
Ihr Kennwort oder, mit entsprechenden
Administratorberechtigungen,
das Kennwort eines anderen
Benutzers zu ändern.
printuser (pu)
Der Befehl printuser (pu)
Ja
zeigt Informationen zu einem
einzelnen Benutzer auf dem
Bildschirm an.
publishassess (pa)
Ja
Veröffentlicht die aktuelle
Beurteilung oder eine ausgewählte Beurteilung in
AppScan Source-Datenbank.
Bei Verwendung dieses Befehls wird die Beurteilung
einem AppScan Source-Client
wie z.B. AppScan Source for
Analysis zugänglich gemacht, jedoch nicht der
AppScan Enterprise Console
(verwenden Sie den Befehl
„publishassessase (pase)”
auf Seite 45, um sie in der
AppScan Enterprise Console
zu veröffentlichen).
publishassessase (pase)
Ja
Veröffentlicht die aktuelle
Beurteilung oder eine ausgewählte Beurteilung in
AppScan Enterprise Console.
Bei Verwendung dieses Befehls wird die Beurteilung
AppScan Source-Clients wie
z.B. AppScan Source for Analysis nicht zugänglich gemacht (verwenden Sie den
Befehl „publishassess (pa)”
auf Seite 43 für die Veröffentlichung in AppScan SourceClients).
quit
Beendet und schließt die aktuelle Sitzung der
Befehlszeilenschnittstelle von
AppScan Source. Ein Abmeldung erfolgt, wenn Sie angemeldet waren.
record (rc)
Schaltet die
Befehlsaufzeichnung ein oder
aus.
refresh (rf)
Refresh stellt das aktuelle
Ja
Projekt oder die aktuelle Anwendung von einem Datenträger wieder her.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
25
Tabelle 1. Befehle für die CLI (Forts.)
Befehl und Kurzform
Beschreibung
Anmeldung erforderlich
register (reg)
Registriert Projekte und Anwendungen in der AppScan
Source-Datenbank.
Ja
removeassess (da)
Löscht die ausgewählte oder
aktuelle Beurteilung im
Hauptspeicher.
Ja
report (rpt)
Ja
Der Befehl Report erstellt
einen Bericht des angegebenen Typs für AppScan
Source, der Berichte über
Untersuchungsergebnisse
und AppScan Source-Berichte
enthält. Zur Verwendung
dieses Befehls ist eine gültige
AppScan Source for Automation-Lizenz erforderlich.
scan (sc)
Durchsucht eine Anwendung Ja
(oder alle Anwendungen),
ein Projekt oder eine Datei,
Zur Verwendung dieses Befehls ist eine gültige
AppScan Source for Automation-Lizenz erforderlich.
script (scr)
Führt ein Befehlsscript aus.
setaseinfo (sase)
Legt die Einstellungen für
Enterprise Console fest.
setcurrentobject (set, cd)
Ja
Verwenden Sie
setcurrentobject zum Navigieren in der
Objektbaumstruktur.
setvar (sv)
Erstellt eine neue Variable
oder ändert eine bestehende
Variable.
Ja
unregister (unreg)
Nimmt die Registrierung einer zuvor registrierten Anwendung oder eines
registrierten Projekts des aktuellen Knotens zurück.
Ja
Ja
Die folgenden Befehle wurden aus der CLI entfernt oder werden nicht weiter unterstützt:
v add: Wird nicht weiter unterstützt. Bitte nicht verwenden.
v listproducts (lprod): Wird nicht weiter unterstützt. Bitte nicht verwenden.
v liststopobject (lstop): Wird nicht weiter unterstützt. Bitte nicht verwenden.
v
v
v
v
v
26
login_admin: Wurde entfernt. Bitte nicht verwenden.
login_local (local): Wird nicht weiter unterstützt. Verwenden Sie login (in).
new: Wird nicht weiter unterstützt. Verwenden Sie openapplication (oa).
reset (r): Wurde entfernt. Bitte nicht verwenden.
runassess (ra): Wird nicht weiter unterstützt. Verwenden Sie scan (sc).
IBM Security AppScan Source Utilities: Benutzerhandbuch
about (a)
Beschreibung
Zeigt die Befehlszeilenversion und Copyrightvermerke für AppScan Source an.
Syntax
about
Beispiel
AllApplications>> About
-------------------------------------------------------------------------------|
Security AppScan Source 8.5.0.0 Build 175.
|
|
Lizenziertes Material - Eigentum der IBM Corp. (C) Copyright IBM
|
Corp. und ihre Lizenzgeber 2003, 2011. Alle Rechte vorbehalten. IBM,
|
das IBM Logo, ibm.com, Rational, AppScan und ClearQuest sind
|
Marken oder eingetragene Marken der International Business
|
Machines Corp.
|
Weitere Produkt- und Servicenamen können Marken von IBM oder
|
anderen Herstellern sein. Eine aktuelle Liste der IBM Marken finden Sie
|
auf der Webseite ’Copyright and trademark information’ unter
|
www.ibm.com/legal/copytrade.shtml. Linux ist eine eingetragene
|
Marke von Linus Torvalds in den USA und/oder
|
anderen Ländern. Microsoft, Windows, Windows NT und das
|
Windows Logo sind Marken der Microsoft Corporation in den
|
USA und/oder anderen Ländern. UNIX ist eine eingetragene
|
Marke von The Open Group in den USA und anderen
|
Ländern. Java und alle auf Java basierenden Marken und Logos sind
|
Marken von Sun Microsystems, Inc. in den USA
|
und/oder anderen Ländern.
|
|
Dieses Programm beinhaltet: Jacorb 2.3.0, Copyright 1997-2006 Das
|
Projekt JacORB; Jericho HTML Parser 2.1, Copyright 2005 Martin
|
Jericho; und XOM 1.0d22, Copyright 2003 Elliotte Rusty Harold,
|
die alle unter der Gnu Library General Public License
|
(LGPL) verfügbar sind, wovon eine Kopie in der Notices-Datei,
|
die diesem Programm beigefügt wurde, enthalten ist.
--------------------------------------------------------------------------------
delete (del)
Beschreibung
Löscht ein untergeordnetes Objekt des aktuellen Objekts.
Verwenden Sie den Befehl list (ls, dir), um die untergeordneten Elemente des
aktuellen Objekts anzuzeigen.
Geben Sie den Namen oder die ID des untergeordneten Objekts an, das Sie löschen
möchten.
Syntax
del {Name|ID Objekt-ID}
v Name: Name des untergeordneten Objekts. Verwenden Sie den Befehl list, um
alle untergeordneten Elemente des aktuellen Objekts anzuzeigen.
v ID: Literal. Zeigt an, dass eine Löschung nach Objekt-ID stattfindet.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
27
v Objekt-ID: Erforderliches Argument bei Löschung nach ID. Die Objekt-ID ist die
numerische ID des untergeordneten Elements, das gelöscht werden soll.
Beispiele
v Gehen Sie wie folgt vor, um eine Anwendung mit dem Namen App1 zu löschen:
AllApplications>> Delete App1
v Gehen Sie wie folgt vor, um ein Projekt mit der ID 40 zu löschen:
AllApplications\App1>> Delete id 40
deleteassess (da)
Dieser Befehl wurde umbenannt. Weitere Informationen hierzu finden Sie in
removeassess (da).
deleteuser (du)
Beschreibung
Löscht einen Benutzer aus der AppScan Source-Datenbank.
Syntax
du Benutzername
Benutzername: Der zu löschende AppScan Source-Benutzer.
Beispiel
Gehen Sie wie folgt vor, um den Benutzer agraham zu löschen:
AllApplications>> deleteuser agraham
AllApplications>> Benutzer ’agraham’ wurde gelöscht.
delvar (dv)
Beschreibung
Löscht eine einzelne Variable.
Syntax
delvar <Variablenname>
Variablenname: Der Name der Variablen, die gelöscht werden soll. Wenn eine Variable mit diesem Namen existiert, wird sie unverzüglich gelöscht und es wird eine
Nachricht über die erfolgreiche Ausführung angezeigt.
Beispiel
Gehen Sie wie folgt vor, um die Variable myvar zu löschen:
AllApplications>> delvar myvar
Variable ’%myvar%’ wurde gelöscht.
28
IBM Security AppScan Source Utilities: Benutzerhandbuch
details (det)
Beschreibung
Zeigt Details der Beurteilung des aktuellen Objekts an.
Ruft Details einer laufenden oder nach der Beurteilungs-ID ausgewählten Beurteilung ab. Verwenden Sie listassess (la), um eine Liste von Beurteilungen mit den
zugehörigen IDs abzurufen.
Tipp: Verwenden Sie den Befehl log, um die Protokollierung zu aktivieren, bevor
Sie den Befehl details ausführen. Sie können eine Protokolldatei in durch Kommas getrenntem Text (Format .csv) erstellen, die in Microsoft Excel oder einem anderen Programm, das CSV-Daten akzeptiert, geöffnet werden kann.
Syntax
details [ID]
ID: Die Objekt-ID einer Beurteilung der aktuellen Sitzung. Wenn keine ID angegeben wird, werden Details der letzten Beurteilung angezeigt (oder an eine Protokolldatei gesendet).
Beispiel
Gehen Sie wie folgt vor, um Details der letzten Beurteilung anzuzeigen:
AllApplications\Myapps>> details
Datei, Zeile, Spalte, Name, Typ, Schweregrad, Zuverlässigkeit
C:\MyApps\WebGoat\webgoat\src\lessons\CommandInjection.java
, 119
, 0
, java.lang.Throwable.printStackTrace
, Vulnerability.Info
, 3-SeverityType_info
, 3-ConfidenceType_low
.
.
.
C:\MyApps\WebGoat\webgoat\src\session\ECSFactory.java
, 625
, 0
, java.lang.String.equalsIgnoreCase
, Vulnerability.Info
, 3-SeverityType_info
, 3-ConfidenceType_low
------------------Gesamtzahl der Aufrufseiten: 1283
Gesamtzahl der definitiven Security-Ergebnisse mit hohem Schweregrad: 10
Gesamtzahl der definitiven Security-Ergebnisse mit mittlerem Schweregrad: 15
Gesamtzahl der definitiven Security-Ergebnisse mit niedrigem Schweregrad: 53
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit hohem Schweregrad: 24
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit mittlerem Schweregrad: 25
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit niedrigem Schweregrad: 6
Gesamtzahl der Scan-Abdeckungsergebnisse mit hohem Schweregrad: 123
Gesamtzahl der Scan-Abdeckungsergebnisse mit mittlerem Schweregrad: 69
Gesamtzahl der Scan-Abdeckungsergebnisse mit niedrigem Schweregrad: 56
Gesamtzahl der Zeilen: 17197
Max. S-Dichte: 929.8482293423273
Max. V/KLoC: 22.155027039599933
S-Dichte: 929.8482293423273
V/KLoC: 22.155027039599933
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
29
echo
Beschreibung
Meldet alle Ein- und Ausgaben an den Bildschirm zurück.
Wird normalerweise in Scripts verwendet.
Syntax
echo
Beispiel
Gehen Sie wie folgt vor, um Kommentare auszugeben:
3/11/08 2:15 PM
3/11/08 2:16 PM
3/11/08 2:16 PM
AllApplications>>
echo "Dies ist ein Test"
Dies ist ein Test
getaseinfo (gase)
Beschreibung
Zeigt die Einstellungen für den AppScan Enterprise Server an.
Dieser Befehl zeigt die Konfiguration von AppScan Enterprise Server an, die mit
dem Befehl setaseinfo (sase) festgelegt wurde.
Syntax
getaseinfo
Anmerkung:
v Sie müssen bei der AppScan Source-Befehlzeilenschnittstelle (CLI) mit der Berechtigung AppScan Enterprise-Einstellungen verwalten angemeldet sein, um
einen Wert für url festlegen zu können. Informationen zu Benutzeraccounts und
Berechtigungen finden Sie im Abschnitt AppScan Source verwalten im IBM Security AppScan Source Installations- und Administrationshandbuch.
v Der benutzername und das kennwort werden auf der Maschine gespeichert, auf
der der AppScan Source-Client (z. B. AppScan Source for Analysis) ausgeführt
wird, während url auf dem Enterprise Server gespeichert wird (der sich auf einer fernen Maschine befinden kann). Sie können auf die Informationen
benutzername und kennwort von der fernen Maschine aus zugreifen (beispielsweise, indem Sie den Befehl getaseinfo von dieser Maschine aus absetzen).
Beispiel
AllApplications>> getaseinfo
Benutzername:
meine_Domäne\mein_Benutzername
URL:
http://my_aseserver/ase
help (?)
Beschreibung
Zeigt Hilfetexte für alle Befehle oder einen einzelnen Befehl an.
30
IBM Security AppScan Source Utilities: Benutzerhandbuch
Die Hilfetexte der AppScan Source-Befehlzeilenschnittstelle (CLI) zeigen für die
einzelnen Befehle die Befehlssyntax, Aliasnamen und Anwendungsbeispiele an.
Hilfe ist bei einzelnen Befehlen verfügbar. Sie können aber auch eine Liste aller Befehle mit einer kurzen Übersicht über jeden Befehl anfordern.
Syntax
help [Befehl]
Befehl: Der Befehl der CLI, zu dem Sie die Onlinehilfe anzeigen möchten. Sie müssen sich auf einer entsprechenden Ebene der Baumstruktur befinden, damit Hilfetext für ein bestimmtes Objekt verfügbar ist.
Beispiele
v Gehen Sie wie folgt vor, um Hilfetext für alle gültigen Befehle anzuzeigen:
AllApplications>> ?
v Gehen Sie wie folgt vor, um Hilfetext für den Befehl register (reg) anzuzeigen:
AllApplications>> Help register
import (im)
Beschreibung
Verwenden Sie den Befehl import, um Projekte (wie .ppf) einer bestehenden Anwendung hinzuzufügen.
Wenn dieser Befehl zum Hinzufügen eines Projekts verwendet wird, werden folgende Projektdateien unterstützt:
v AppScan Source-Projektdateien (.ppf).
v Microsoft Visual Studio C/C++ (.vcproj)
v Microsoft Visual Studio C# (.csproj)
v Microsoft Visual Studio Visual Basic (.vbproj)
Sie können beim Projektimport anstatt der vollständigen Dateinamen und/oder
Dateierweiterungen Platzhalterzeichen verwenden. Sie können auch ein zusätzliches Argument angeben, um alle Projekte im angegebenen Verzeichnis zu importieren (rekursiver Bericht).
Syntax
import Pfad [true|false]
v Die Anzahl der Argumente hängt von der Art der importierten Objekte ab.
v Pfad: Vollständiger Pfad des importierten Objekts.
v true oder false: Optional. Schließt Unterverzeichnisse ein oder aus. Die Standardeinstellung lautet false (Unterverzeichnisse ausschließen).
Beispiel
AllApplications\testit>> import c:\testapps\java\webgoat\*.ppf
AllApplications\testit>> ls
23942: webgoat (Project [local])
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
31
info (i)
Beschreibung
Zeigt Informationen zu den Eigenschaften und Werten des aktuellen Objekts an.
Syntax
Information
Beispiel
Gehen Sie wie folgt vor, um die ID und den Namen der aktuellen Anwendung anzuzeigen:
AllApplications\Myapp>> Info
Die Ausgabe ist der folgenden ähnlich:
Objekt: Myapp(Anwendung)
ID: 1
...
list (ls, dir)
Beschreibung
Zeigt alle untergeordneten Objekte des aktuellen Objekts in der Objektbaumstruktur an. Die Baumstruktur wird als grafische Darstellung von Objekt-ID, name und
Typ angezeigt.
Syntax
list [all]
v all: Optional. Zeigt alle Objekte in der Objektbaumstruktur an.
v Ohne Angabe weiterer Argumente werden nur die unmittelbar untergeordneten
Elemente des aktuellen Objekts angezeigt.
Beispiele
v Gehen Sie wie folgt vor, um die Objekte in der aktuellen Objektbaumstruktur
anzuzeigen:
AllApplications>> List
1: WebGoat_4_0 (Application [local] [registered])
2: test_application (Application [local] [registered])
v Gehen Sie wie folgt vor, um alle Objekte in der Objektbaumstruktur anzuzeigen:
AllApplications>> LS all
1: WebGoat_4_0 (Application [local] [registered])
|----198: compile (Project [local] [registered])
|----|----470: WebContent\lp\JavaScriptValidation.html (Source)
|----|----475: WebContent\lp\RemoteAdminFlaw.html (Source)
|----|----483: WebContent\lp\WelcomeScreeen.html (Source)
|----|----474: WebContent\lp\ReflectedXSS.html (Source)
|----|----477: WebContent\lp\SqlInjection.html (Source)
. . .
32
IBM Security AppScan Source Utilities: Benutzerhandbuch
listassess (la)
Beschreibung
Zeigt die Objekt-ID und Datum/Uhrzeit der Beurteilung für das aktuelle Objekt in
der Objektbaumstruktur an. Verwenden Sie listassess, um eine ID für die Verwendung mit dem Befehl details zu erhalten.
Syntax
listassess [all]
all: Optional. Zeigt alle im Speicher vorhandenen Beurteilungen an.
Beispiele
v Gehen Sie wie folgt vor, um Objektinformationen zur aktuellen Beurteilung anzuzeigen:
AllApplications\WebGoat_4_0>> listassess
AllApplications\WebGoat_4_0>> 4762: WebGoat_4_0 (Application, Tue Mar 11 14:20:23
EDT 2008)
AllApplications\WebGoat_4_0>> 9033: WebGoat_4_0 (Application, Tue Mar 11 14:43:31
EDT 2008)
v Gehen Sie wie folgt vor, um alle Objektinformationen zur Beurteilung anzuzeigen:
AllApplications\Applications>> ListAssess all
542: putty (Application, Fri Aug 04 08:38:18 EDT 2008)
1804: JavaAny (Application, Tue Apr 01 13:17:33 EDT 2008)
2971: snare (Application, Tue Apr 01 08:42:53 EDT 2008)
4773: SimpleIOT (Project, Tue Apr 01 07:31:11 EDT 2008)
4874: JSPWiki (Application, Tue Apr 01 13:22:08 EDT 2008)
listgroups (lgrp)
Beschreibung
Zeigt alle Gruppen, deren Berechtigungen und eine Beschreibung jeder Gruppe an.
Syntax
listgroups
Beispiel
AllApplications>> ListGroups
----------------------------------------| Gruppe: APPS
| Beschreibung: Anwendungs- und Projektmanagement
| Berechtigungen:
| REGISTER (Register)
| ATTRAPPLY (Attribute anwenden)
| ATTRMODIFY (Attribute verwalten)
| SCAN (Überprüfung)
| VIEWREGISTER (Registeransicht)
| Gruppe: ASSESSMENTS
| Beschreibung: Beurteilungsverwaltung
| Berechtigungen:
| ASMNTDELETE (Veröffentlichte Beurteilungen löschen)
| ASMNTPUBLISH (Beurteilungen veröffentlichen)
| ASMNTSAVE (Beurteilungen speichern)
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
33
| ASMNTVIEWPUBLISH (Veröffentlichte Beurteilungen anzeigen)
| Gruppe: KB
| Beschreibung: Wissensbasisverwaltung
| Berechtigungen:
| CUSTOM (Angepasste Regeln verwalten)
| PATTERN (Muster verwalten)
| Gruppe: ADMIN
| Beschreibung: Verwaltung
| Berechtigungen:
| ASE (AppScan Enterprise-Einstellungen verwalten)
| LDAP (LDAP-Einstellungen verwalten)
| USER (Benutzer verwalten)
-----------------------------------------
listusers (lu)
Beschreibung
Listet alle AppScan Source-Benutzer auf.
Falls verfügbar, enthält die Ausgabe die Benutzer-ID, den Namen und das Benutzerrepository.
Syntax
listusers
Beispiel
Gehen Sie wie folgt vor, um alle AppScan Source-Benutzer aufzulisten:
AllApplications>> Listusers
Alle Benutzer
admin
(myASEServer\admin)
jsmith
(John Smith) local
joandarcy (Joan Darcy) local
AllApplications>>
log
Beschreibung
Schaltet die Nachrichtenprotokollierung ein oder aus.
Protokolliert eine Sitzung in eine angegebene Datei oder zeigt den aktuellen Protokollierungsstatus an. Protokolliert die ganze Sitzung, einschließlich der Ausgabe, in
die angegebene Datei.
Tipp: Verwenden Sie den Befehl record (rc), um nur die Befehlseingabe zu protokollieren.
Syntax
log {on Datei|off}
v Das Argument on oder off ist erforderlich, um die Protokollierung ein- oder auszuschalten. Log ohne Argument zeigt den aktuellen Status an.
v on: Erforderlich, um die Protokollierung einzuschalten. On erfordert den Namen
einer Datei.
v Datei: Name der Protokolldatei. Sie können den Dateityp angeben, der erstellt
werden soll, also .txt oder .csv.
34
IBM Security AppScan Source Utilities: Benutzerhandbuch
v off: Schaltet die laufende Protokollierung aus.
Beispiele
v Gehen Sie wie folgt vor, um in eine Datei mit dem Namen MyLogFile.txt zu
protokollieren:
AllApplications>> Log on c:\MyLogFile.txt
v Gehen Sie wie folgt vor, um die Protokollierung abzuschalten:
AllApplications>> Log off
login (in)
Beschreibung
Meldet den Benutzer bei AppScan Enterprise Server an (ersetzt login_local (local)).
Bei erfolgreicher Anmeldung wechselt die Eingabeaufforderung zu
AllApplications>> und zeigt damit an, dass Sie angemeldet sind.
Syntax
login server benutzer-id kennwort [-persist] [-acceptssl]
v server: Erforderlich. Geben Sie die URL für Ihre Enterprise Server-Instanz an.
v benutzer-id: Erforderlich. Geben Sie Ihre Enterprise Server-Benutzer-ID an.
v kennwort: Erforderlich. Geben Sie das Kennwort für Ihre Enterprise Server-Benutzer-ID an.
v -persist: Optional. Speichert die Berechtigungsnachweise für die Anmeldung
auf Platte in einer Schlüsseldatei. Bei Verwendung des Arguments 'persist' speichert der Befehl login den Benutzernamen und das Kennwort in einer verschlüsselten Schlüsseldatei mit dem Namen cli.token. Die Datei cli.token wird
im Ordner .ounce im Ausgangsverzeichnis des Benutzers gespeichert.
v -acceptssl: Optional. Akzeptiert SSL-Zertifikate automatisch. Weitere Informationen finden Sie in „SSL-Zertifikate von AppScan Enterprise Server”.
Wichtig: Wenn dieses Argument nicht eingeschlossen ist. schlägt die Anmeldung
bzw. die Veröffentlichung in AppScan Enterprise Console mit einem Fehler fehl,
wenn ein ungültiges Zertifikat gefunden wird (wenn Sie nicht bereits permanent
das Zertifikat akzeptiert haben, während Sie sich über ein anderes AppScan
Source-Clientprodukt angemeldet haben).
Beispiel
Benutzer John Smith meldet sich am AppScan Enterprise Server an, der durch seinen Administrator eingerichtet wurde:
>> Login https://myserver:9443/ase/ johnsmith mypassword
Anmeldung erfolgreich.
AllApplications>>
SSL-Zertifikate von AppScan Enterprise Server
Bei der Installation von AppScan Enterprise Server muss die Konfiguration so vorgenommen werden, dass der Server ein gültiges SSL-Zertifikat verwendet. Falls
dies nicht vorgenommen wird, erhalten Sie eine nicht gesicherte Verbindungsnachricht, wenn Sie sich von AppScan Source for Analysis oder der AppScan SourceBefehlzeilenschnittstelle (CLI) - oder AppScan Source for Development unter Windows und Linux aus beim Server anmelden.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
35
Speicherposition des SSL-Zertifikats
Zertifikate, die permanent akzeptiert wurden, werden an den Positionen
<datenverzeichnis>\config\cacertspersonal und <datenverzeichnis>\config\
cacertspersonal.pem gespeichert (wobei <datenverzeichnis> die Position Ihrer
AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installationsund Benutzerdatendateien”, auf Seite 143 beschrieben wird). Entfernen Sie diese
beiden Dateien, wenn Sie die Zertifikate nicht länger als permanent speichern wollen.
AppScan Source for Automation und Gültigkeitsprüfung des SSL-Zertifikats
Zertifikate werden bei Verwendung von AppScan Source for Automation standardmäßig akzeptiert. Dieses Verhalten wird durch die Einstellung für
ounceautod_accept_ssl in der Konfigurationsdatei des Automatisierungsservers
festgelegt (<datenverzeichnis>\config\ounceautod.ozsettings (wobei
<datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in
Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143
beschrieben wird)). Wenn diese Einstellung bearbeitet wird, sodass statt
value="true" die Einstellung value="false" festgelegt wird, wird die SSL-Gültigkeitsprüfung ausgeführt und die Anmeldung bei bzw. die Veröffentlichung in
AppScan Enterprise Console schlägt mit einem Fehler fehl, wenn ein ungültiges
Zertifikat gefunden wird.
AppScan Source-Befehlzeilenschnittstelle (CLI) und Gültigkeitsprüfung
des SSL-Zertifikats
Wenn Sie den CLI login verwenden, wird standardmäßig versucht, die SSL-Gültigkeitsprüfung durchzuführen und die Anmeldung bei bzw. die Veröffentlichung in
AppScan Enterprise Console schlägt mit einem Fehler fehl, wenn ein ungültiges
Zertifikat gefunden wird (wenn Sie nicht bereits permanent das Zertifikat akzeptiert haben, während Sie sich über ein anderes AppScan Source-Clientprodukt angemeldet haben). Dieses Verhalten kann mithilfe des Optionsparameters
-acceptssl bei Eingabe des Befehls login geändert werden. Wenn dieser Parameter
verwendet wird, dann werden SSL-Zertifikate automatisch akzeptiert.
Anmeldedatei
Beschreibung
Melden Sie sich bei AppScan Enterprise Server unter Verwendung einer Tokendatei
an (Tokendateien werden mit der Option -persist des CLI „login (in)” auf Seite
35-Befehls oder beim Erstellen des AppScan Source for Automation-Benutzers generiert).
Bei erfolgreicher Anmeldung wechselt die Eingabeaufforderung zu
AllApplications>> und zeigt damit an, dass Sie angemeldet sind.
Syntax
anmeldedatei server tokendatei [-acceptssl]
v server: Erforderlich. Geben Sie die URL für Ihre Enterprise Server-Instanz an.
v tokendatei: Erforderlich. Geben Sie den Pfad und Dateinamen der Tokendatei
an. Wenn die Tokendatei mit dem CLI „login (in)” auf Seite 35-Befehl erstellt
wurde, heisst die Datei ouncecli.token und befindet sich die Datei im Ordner
36
IBM Security AppScan Source Utilities: Benutzerhandbuch
.ounce des Verzeichnisses home des Benutzers. befindet sich die Datei für
AppScan Source for Automation erstellt wurde, heisst die Datei
<datenverzeichnis>/config/ounceautod.token (wobei <datenverzeichnis> die
Position Ihrer AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen
für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben wird).
v -acceptssl: Optional. Akzeptiert SSL-Zertifikate automatisch. Weitere Informationen finden Sie in „SSL-Zertifikate von AppScan Enterprise Server” auf Seite 35.
Wichtig: Wenn dieses Argument nicht eingeschlossen ist. schlägt die Anmeldung
bzw. die Veröffentlichung in AppScan Enterprise Console mit einem Fehler fehl,
wenn ein ungültiges Zertifikat gefunden wird (wenn Sie nicht bereits permanent
das Zertifikat akzeptiert haben, während Sie sich über ein anderes AppScan
Source-Clientprodukt angemeldet haben).
Beispiel
Benutzer John Smith meldet sich bei AppScan Enterprise Server unter Verwendung
einer Tokendatei an, die unter Windows von der CLI aus erstellt wurde:
>> anmeldedatei https://myserver:9443/ase/
C:\Users\Administrator\.ounce\ouncecli.token
Anmeldung erfolgreich.
AllApplications>>
login_local (local)
Beschreibung
Wird in AppScan Source Version 6 nicht weiter unterstützt. Verwenden Sie login
(in).
logout (out)
Beschreibung
Meldet den Benutzer von AppScan Source ab und beendet die AppScan SourceBefehlzeilenschnittstelle (CLI)-Sitzung der Befehlszeilenschnittstelle.
Wenn kein Benutzer angemeldet ist, ist der Befehl logout ungültig.
Syntax
logout
Beispiel
Gehen Sie wie folgt vor, um sich abzumelden:
AllApplications>> Logout
>> Abgemeldet.
>> Die Befehlszeilenschnittstelle von Security AppScan Source wird beendet...
moduser (mu)
Beschreibung
Modifiziert Benutzerinformationen wie Berechtigungen, Benutzer-ID und namen
für einen Benutzer von AppScan Source.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
37
Syntax
moduser --userid|-u <benutzer-id>
[--fullname|-f <vorname_und_nachname_des_benutzers>]
[--group [Gruppe[:Berechtigung[;Berechtigung...]
[--group...]]
[--removegroup [Gruppe[:Berechtigung
[;permission...] [--removegroup...]]
Benutzername und Name
v --username|-u: Erforderlich. Ein gültiger Benutzername für AppScan Source.
v --fullname|-f: Optional. Der vollständige Name des Benutzers. Wenn der Eintrag Leerzeichen enthält, setzen Sie diese in Anführungszeichen (") - beispielsweise: -f "Joe Smith".
Gruppen und Berechtigungen
Optional.
Gruppen und Berechtigungen geben die zulässigen AppScan Source-Tasks für diesen Benutzer an. Aufgaben, die nicht ausdrücklich als Teil einer Berechtigung angegeben wurden, stehen allen Benutzern zur Verfügung.
--group: Die Gruppen und Gruppenberechtigungen, die diesem Benutzer hinzugefügt werden sollen. Die Angabe einer Gruppe ohne Berechtigungen erteilt dem Benutzer alle Berechtigungen dieser Gruppe.
oder
--removegroup: Die Gruppen und Berechtigungen, die von diesem Benutzer gelöscht werden sollen. Die Angabe einer Gruppe ohne Berechtigungen entfernt alle
Berechtigungen dieser Gruppe.
Die Gruppen und Berechtigungen lauten wie folgt:
v ASSESSMENTS: Berechtigungen auf Beurteilungsebene
– ASMNTDELETE: Veröffentlichte Beurteilungen löschen.
– ASMNTPUBLISH: Beurteilungen veröffentlichen.
– ASMNTSAVE: Beurteilungen speichern.
– ASMNTVIEWPUBLISH: Veröffentlichte Beurteilungen anzeigen.
v ADMIN: Verwaltungsberechtigungen
– ASE: Einstellungen von AppScan Enterprise verwalten
– USER: Benutzereinstellungen verwalten einschließlich Hinzufügen und Löschen
von Benutzern sowie Ändern von Berechtigungen.
v APPS: Berechtigungen auf Anwendungs- und Projektebene
– ATTRAPPLY: Attribute auf Anwendungen anwenden.
– ATTRMODIFY: Attribute erstellen, löschen und modifizieren.
– VIEWREGISTER: Registrierte Anwendungen und Projekte anzeigen.
– REGISTER: Registrierung von Anwendungen und Projekten eintragen/
aufheben. Schließt die Berechtigung VIEWREGISTER ein.
– SCAN: Anwendungen und Projekte überprüfen
v KB: Berechtigungen für Verwaltung der Wissensbasis
– CUSTOM: Angepasste Regeln verwalten.
– PATTERN: Muster erstellen, bearbeiten oder löschen.
38
IBM Security AppScan Source Utilities: Benutzerhandbuch
v FILTER: Filter-Management
– SHAREDFILTERS: Gemeinsam genutzte Filter verwalten.
v SCANCONFIG: Scankonfigurationsverwaltung
– SHAREDCONFIGS: Gemeinsam genutzte Scankonfigurationen verwalten.
Beispiel
Nachdem Joan Darcys Benutzerberechtigungen erstellt wurden (mit dem Befehl
newuser (nu), entschied der Systemadministrator, dass sie nur Berechtigungen zum
Speichern, Veröffentlichen und Anzeigen, aber nicht zum Löschen benötigt. Joan
benötigt zusätzlich Berechtigungen für Wissensbasis-Muster:
moduser --userid joandarcy --removegroup
ASSESSMENTS:ASMNTDELETE --group KB:PATTERN
newuser (nu)
Beschreibung
Erstellt einen neuen AppScan Source-Benutzer (ein gültiger Benutzername, Kennwort, vollständiger Name und E-Mail-Adresse sind erforderlich). AppScan SourceBenutzer können im Benutzerrepository von AppScan Enterprise Server sowie in
der AppScan Source-Date nbank enthalten sein. Wenn es Benutzer gibt, die nicht
auf den Server zugreifen sollen, können diese lokal als AppScan Source-Benutzer
erstellt werden. Sie haben auch die Möglichkeit, einen neuen AppScan Source-Benutzer zu erstellen, der bereits auf dem AppScan Enterprise Server eingerichtet ist.
Syntax
newuser --userid|-u <benutzer-id>
--password|-p <kennwort>
--fullname|-f <vorname_und_nachname_des_benutzers>
--email|-e <e-mail-adresse>
[--local {true|false}]
[--group [Gruppe[:Berechtigung[;Berechtigung...]
[--group...]]
Identifizierung von Informationen
v --userid|-u: Erforderlich. Benutzer-ID. Leerzeichen sind unzulässig.
v --password|-p: Benutzerkennwort. Dieser Parameter ist erforderlich, wenn
-local auf true gesetzt ist; der Parameter wird ignoriert, wenn -local auf false
gesetzt ist.
v --fullname|-f: Der vollständiger Name des Benutzers. Wenn der Eintrag Leerzeichen enthält, setzen Sie diese in Anführungszeichen (") - beispielsweise: -f
"Joe Smith". Dieser Parameter ist erforderlich, wenn -local auf false gesetzt
ist; der Parameter ist optional, wenn -local auf true gesetzt ist.
v --email|-e: E-Mail-Adresse des Benutzers. Dieser Parameter ist erforderlich,
wenn -local auf false gesetzt ist; der Parameter ist optional, wenn -local auf
true gesetzt ist.
AppScan Enterprise Server-Benutzer und AppScan Source-Benutzer erstellen
Optional. Mit dem Befehl newuser wird immer ein Benutzer in der AppScan Source-Datenbank erstellt; standardmäßig erstellt der Befehl den Benutzer ebenfalls auf
dem AppScan Enterprise Server. Um die Position des Benutzers festzulegen, verwenden Sie das Argument --local. Standardmäßig lautet der Wert für dieses ArKapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
39
gument false; dies bedeutet, dass die Benutzer sowohl auf dem AppScan Enterprise Server als auch in den AppScan Source-Benutzerrepositorys erstellt werden.
Wenn das Argument auf true gesetzt ist, wird der Benutzer nur lokal als AppScan
Source-Benutzer erstellt.
Lokale Benutzer können Überprüfungsergebnisse nicht in der AppScan Enterprise
Console veröffentlichen. Sie können die Ergebnisse jedoch in der AppScan SourceDatenbank veröffentlichen. Beim Anmelden bei AppScan Source müssen lokale Benutzer zusammen mit ihren AppScan Source-Benutzerberechtigungen einen gültigen AppScan Enterprise Server angeben (ein Server muss für den Zugriff auf die
AppScan Source-Datenbank bereitgestellt werden).
Gruppen und Berechtigungen
Optional. Gruppen und Berechtigungen geben die zulässigen AppScan SourceTasks für diesen Benutzer an. Aufgaben, die nicht ausdrücklich als Teil einer Berechtigung angegeben wurden, stehen allen Benutzern zur Verfügung.
--group: Die Gruppen und Gruppenberechtigungen dieses Benutzers. Die Angabe
einer Gruppe ohne Berechtigungen erteilt dem Benutzer alle Berechtigungen dieser
Gruppe. Die Gruppen und deren Berechtigungen lauten wie folgt:
v ASSESSMENTS: Berechtigungen auf Beurteilungsebene
– ASMNTDELETE: Veröffentlichte Beurteilungen löschen.
– ASMNTPUBLISH: Beurteilungen veröffentlichen.
– ASMNTSAVE: Beurteilungen speichern.
– ASMNTVIEWPUBLISH: Veröffentlichte Beurteilungen anzeigen.
v ADMIN: Verwaltungsberechtigungen
– ASE: Einstellungen von AppScan Enterprise verwalten
– USER: Benutzereinstellungen verwalten einschließlich Hinzufügen und Löschen
von Benutzern sowie Ändern von Berechtigungen.
v APPS: Berechtigungen auf Anwendungs- und Projektebene
– ATTRAPPLY: Attribute auf Anwendungen anwenden.
– ATTRMODIFY: Attribute erstellen, löschen und modifizieren.
– VIEWREGISTER: Registrierte Anwendungen und Projekte anzeigen.
– REGISTER: Registrierung von Anwendungen und Projekten eintragen/
aufheben. Schließt die Berechtigung VIEWREGISTER ein.
– SCAN: Anwendungen und Projekte überprüfen
v KB: Berechtigungen für Verwaltung der Wissensbasis
– CUSTOM: Angepasste Regeln verwalten.
– PATTERN: Muster erstellen, bearbeiten oder löschen.
v FILTER: Filter-Management
– SHAREDFILTERS: Gemeinsam genutzte Filter verwalten.
v SCANCONFIG: Scankonfigurationsverwaltung
– SHAREDCONFIGS: Gemeinsam genutzte Scankonfigurationen verwalten.
LDAP-Authentifizierung
Sie können LDAP-Benutzer nicht zum AppScan Source-Benutzerrepository hinzufügen, wenn sie nicht bereits im AppScan Enterprise Server-Benutzerrepository
vorhanden sind. Zum Hinzufügen eines AppScan Source-Benutzers, der über
LDAP authentifiziert wird, muss das AppScan Enterprise Server-Benutzerreposito-
40
IBM Security AppScan Source Utilities: Benutzerhandbuch
ry für die Verwendung eines LDAP-Repositorys konfiguriert sein. Informationen
hierzu finden Sie in der Veröffentlichung AppScan Enterprise Server Planning & Installation Guide.
Wenn Sie die LDAP-Authentifizierung verwenden und einen AppScan Source-Benutzer hinzufügen wollen, der nicht zu einer LDAP-Benutzergruppe gehört, setzen
Sie den Befehl newuser mit der Option -local true ab, um den Benutzer lokal im
AppScan Source-Benutzerrepository zu erstellen.
Beispiel
Erstellen Sie einen Benutzer mit dem Namen Joan Darcy auf dem AppScan Enterprise Server. Die E-Mail-Adresse von Joan lautet [email protected]. Ihr Benutzername lautet joandarcy und ihr Kennwort ist 123456. Joan kann AppScan Source in
den Gruppen APPS und ASSESSMENTS mit allen Berechtigungen sowie innerhalb
der Gruppe KB mit der Berechtigung für angepasste Regeln verwenden:
AllApplications>> newuser --userid joandarcy --password 123456
--fullname "Joan Darcy" --email [email protected]
--group APPS --group ASSESSMENTS --group KB:CUSTOM
AllApplications>> Created user ’joandarcy’. User ID: 888
openapplication (oa)
Beschreibung
Dieser Befehl kann verwendet werden, um eine vorhandene Anwendung zu öffnen, oder um eine neue AppScan Source-Anwendungsdatei zu erstellen.
Wenn dieser Befehl zum Öffnen einer Anwendung verwendet wird, werden folgende Anwendungsdateien unterstützt:
v Anwendungsdateien für AppScan Source (.paf).
v Arbeitsbereichsdateien für Microsoft Visual C++ (.dsw)
v Lösungsdateien für Microsoft Visual Studio.NET (.sln)
v Arbeitsbereiche von Eclipse oder Rational Application Developer for WebSphere
Software (RAD) (.ewf) und projekten (.epf)
Anmerkung: Diese Dateien werden geneirert, wenn Sie openapplication zum
Öffnen eines Arbeitsbereichsverzeichnisses verwenden (durch Angabe des
Pfads).
Syntax
openapplication Pfad_Datei
Pfad_Datei
v Wenn Sie den Befehl zum Öffnen einer Anwendung verwenden, geben Sie den
Pfad und den Dateinamen der vorhandenen Anwendung an.
v Wenn Sie den Befehl zum Erstellen einer Anwendung verwenden, geben Sie einen gültigen Pfad und einen neuen Dateinamen an (stellen Sie dabei sicher, dass
der neue Dateiname nicht bereits vorhanden ist).
v Wenn Sie den Befehl zum Öffnen eines Eclipse oder Rational Application Developer for WebSphere Software (RAD)-Arbeitsbereichs verwenden, können Sie lediglich nur den Arbeitsbereichspfad angeben.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
41
Beispiele
v Gehen Sie wie folgt vor, um eine Lösungsdatei für Microsoft Visual Studio .NET
zu öffnen:
AllApplications>> openapplication c:\mysln.sln
v Gehen Sie wie folgt vor, um einen Eclipse-Arbeitsbereich zu öffnen:
AllApplications>> oa "C:\Users\myname\My Documents\myworkspace"
oder
AllApplications>> oa "C:\Users\myname\My Documents\myworkspace\myworkspace.ewf"
openassessmentfile (oaf)
Beschreibung
Öffnet eine Beurteilungsdatei für AppScan Source (file_name.ozasmt).
Eine geöffnete Beurteilungsdatei wird zur aktuellen Beurteilung.
Syntax
openassessmentfile pfad_datei
pfad_datei: Pfad und Dateiname der vorhandenen Beurteilungsdatei.
Beispiel
Gehen Sie wie folgt vor, um eine zuvor gespeicherte Beurteilung zu öffnen:
AllApplications>> OpenAssessmentFile c:\priority.ozasmt
password (passwd)
Beschreibung
Sie können den Befehl password dazu verwenden, Ihr Kennwort oder, mit entsprechenden Administratorberechtigungen, das Kennwort eines anderen Benutzers zu
ändern.
Geben Sie das neue Kennwort zweimal ein, um ein Kennwort zu ändern. Beide
Eingaben des neuen Kennworts müssen identisch sein, damit die Änderung wirksam wird. Wenn Sie Ihr eigenes Kennwort ändern, müssen Sie das aktuelle Kennwort zuerst eingeben.
Syntax
password [Benutzername]
Benutzername: Name des Benutzers, dessen Kennwort geändert wird. Wenn kein
Benutzername angegeben wird, ändern Sie Ihr eigenes Kennwort.
Beispiele
v Gehen Sie wie folgt vor, um Ihr Kennwort zu ändern:
AllApplications>> Password
Aktuelles Kennwort eingeben: ******
Neues Kennwort eingeben: *******
Neues Kennwort bestätigen: *******
Kennwort geändert.
AllApplications>>
42
IBM Security AppScan Source Utilities: Benutzerhandbuch
v Gehen Sie wie folgt vor, um das Kennwort eines anderen Benutzers zu ändern
(wenn Sie über Administratorberechtigungen verfügen):
AllApplications>> passwd johnsmith
Kennwort für Benutzer johnsmith wird geändert
Neues Kennwort eingeben: *******
Neues Kennwort bestätigen: *******
Kennwort geändert.
AllApplications>>
printuser (pu)
Beschreibung
Der Befehl printuser (pu) zeigt Informationen zu einem einzelnen Benutzer auf
dem Bildschirm an.
Syntax
printuser benutzername
benutzername: AppScan Source-Benutzername
Beispiel
Zeigen Sie die ursprünglichen Benutzerdaten des Benutzers Joan Darcy an.
printuser joandarcy
Benutzer: joandarcy
Vorname: Joan
Nachname: Darcy
E-Mail-Adresse: [email protected]
Gruppen:
- APPS
(Anwendungs- und Projektmanagement)
REGISTER
(Register)
ATTRAPPLY (Attribute anwenden)
ATTRMODIFY (Attribute verwalten)
SCAN
(Überprüfung)
VIEWREGISTER (Registeransicht)
-(ASSESSMENTS) (Beurteilungsverwaltung)
ASMTDELETE
(Veröffentlichte Beurteilungen löschen)
ASMNTPUBLISH
(Beurteilungen veröffentlichen)
ASMNTSAVE
(Beurteilungen speichern)
ASMNTVIEWPUBLISH (Veröffentlichte Beurteilungen anzeigen)
-[KB]
(Wissensbasisverwaltung)
CUSTOM
(Angepasste Regeln verwalten)
-[ADMIN]
(Verwaltung)
Anmerkung: Eckige Klammern [ ] bedeuten, dass der Benutzer nicht über alle
Berechtigungen in dieser Gruppe verfügt.
publishassess (pa)
Beschreibung
Veröffentlicht die aktuelle Beurteilung oder eine ausgewählte Beurteilung in
AppScan Source-Datenbank. Bei Verwendung dieses Befehls wird die Beurteilung
einem AppScan Source-Client wie z.B. AppScan Source for Analysis zugänglich gemacht, jedoch nicht der AppScan Enterprise Console (verwenden Sie den Befehl
„publishassessase (pase)” auf Seite 45, um sie in der AppScan Enterprise Console zu veröffentlichen).
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
43
Zur Verwendung dieses Befehls ist eine gültige AppScan Source for AutomationLizenz erforderlich.
Bei der Veröffentlichung einer Beurteilung mithilfe dieses Befehls wird die Beurteilung automatisch bei AppScan Enterprise Server registriert. Sie müssen die Beurteilung bei Verwendung dieses Befehls nicht manuell registrieren.
Syntax
pa [ID]
ID: Optionales Literal. Identifiziert die Beurteilungs-ID. Wenn keine ID angegeben
wird, findet der Befehl Anwendung auf die letzte Überprüfung. Verwenden Sie
den Befehl listassess (la), um die Beurteilungs-ID zu suchen.
Beispiel
Im folgenden Beispiel legen wir die Anwendung 'pebble' als aktuelles Objekt fest,
überprüfen das Projekt 'pebble' und veröffentlichen anschließend die Beurteilung
(die gleichzeitig automatisch registriert wird).
AllApplications>> cd pebble
AllApplications\pebble>> scan pebble
Neue Überprüfung gestartet
Überprüfung von Projekt pebble (1 von 1)
Projekt wird für Überprüfung vorbereitet...
.
.
Sicherheitslückenanalyse vorbereiten...
Sicherheitslückenanalyse durchführen...
Ergebnisse generieren...
Projekt wird für Überprüfung vorbereitet...
.
.
Überprüftes Projekt ’pebble’:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Überprüfte Anwendung ’pebble’:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Überprüfung beendet:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Ablaufzeit - 18 Sekunden
AllApplications\pebble>> publishassess
Beurteilung wurde erfolgreich veröffentlicht.
44
IBM Security AppScan Source Utilities: Benutzerhandbuch
publishassessase (pase)
Beschreibung
Veröffentlicht die aktuelle Beurteilung oder eine ausgewählte Beurteilung in
AppScan Enterprise Console. Bei Verwendung dieses Befehls wird die Beurteilung
AppScan Source-Clients wie z.B. AppScan Source for Analysis nicht zugänglich gemacht (verwenden Sie den Befehl „publishassess (pa)” auf Seite 43 für die Veröffentlichung in AppScan Source-Clients).
Syntax
publishassessase [ID] [Pfad]
[-folder <Speicherposition>] [-name <Name der veröffentlichten Beurteilung>]
[-aseapplication <ASE-Anwendung>]
v ID: Optionales Literal. Identifiziert die Beurteilungs-ID. Verwenden Sie den Befehl listassess (la), um die Beurteilungs-ID zu suchen.
v Pfad: Optionales Literal. Pfad und Dateiname der Beurteilungsdatei.
v -folder <Speicherposition>: Optional. Der Enterprise Console-Ordner, in den
veröffentlicht wird. Wenn dieses Argument nicht verwendet wird, wird die Beurteilung in Ihrem Enterprise Console-Standardordner veröffentlicht.
v -name <Name der veröffentlichten Beurteilung>: Optional. Der Name, mit dem
die Beurteilung in Enterprise Console gespeichert wird. Wenn dieses Argument
nicht verwendet wird, wird ein Name anhand der überprüften AppScan SourceAnwendung generiert, um die Beurteilung zu erstellen. (Dieser Name wird als
Präfix zu AppScan Source: hinzugefügt.)
v -aseapplication <ASE-Anwendung>: Optional. Enterprise Console-Anwendung,
der die Beurteilung zugeordnet wird.
Wenn das optionale Argument eine Ganzzahl ist, geht der Befehl davon aus, dass
es sich um die Beurteilungs-ID handelt. Wenn das optionale Argument keine Ganzzahl ist, geht der Befehl davon aus, dass es sich um den Pfad zu einer gespeicherten Beurteilungsdatei handelt.
Wenn eine Beurteilung nicht mit dem Befehl id oder path angegeben wird, wird
die Beurteilung vorausgesetzt, die durch die aktuelle Überprüfung generiert wurde.
quit
Beschreibung
Beendet und schließt die aktuelle Sitzung der Befehlszeilenschnittstelle von
AppScan Source. Ein Abmeldung erfolgt, wenn Sie angemeldet waren.
Syntax
quit
Beispiel
AllApplications>> Quit
>> Abgemeldet.
>> Die Befehlszeilenschnittstelle von Security AppScan Source wird beendet...
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
45
record (rc)
Beschreibung
Schaltet die Befehlsaufzeichnung ein oder aus.
Record erfasst nur Befehle und Argumente, aber nicht die Ausgabe.
Tipp: Verwenden Sie den Befehl log, um die Ausgabe zu erfassen.
Syntax
record {on Datei|off}
v on oder off: Erforderlich, um die Aufzeichnung ein- oder auszuschalten.
v Datei: Name der aufgezeichneten Datei. Record On erfordert das Argument Datei, das den gültigen Dateipfad enthält. Falls diese Datei noch nicht existiert,
wird sie von der AppScan Source-Befehlzeilenschnittstelle (CLI) erstellt. Falls
diese Datei schon existiert, werden die Protokolldaten an das Dateiende angehängt.
v Record ohne Argument zeigt an, ob die Aufzeichnung ein- oder ausgeschaltet ist.
Beispiel
v Gehen Sie wie folgt vor, um in eine Datei mit dem Namen MyCommands.txt zu
protokollieren:
AllApplications>> Record on C:\MyCommands.txt
v Gehen Sie wie folgt vor, um die Aufzeichnung abzuschalten:
AllApplications>> RC off
refresh (rf)
Beschreibung
Refresh stellt das aktuelle Projekt oder die aktuelle Anwendung von einem Datenträger wieder her.
Verwenden Sie refresh, wenn Sie ein Projekt oder eine Anwendung erneut laden
möchten, das möglicherweise geändert wurde.
Syntax
refresh
Beispiel
Gehen Sie wie folgt vor, um MeinProjekt zu aktualisieren:
AllApplications\MyApplication\MyProject>> Refresh
register (reg)
Beschreibung
Registriert Projekte und Anwendungen in der AppScan Source-Datenbank.
register ermöglicht es, die Anwendung oder das Projekt auf dem aktuellen Knoten bei AppScan Source zu registrieren. Die Registrierung weist AppScan Source
46
IBM Security AppScan Source Utilities: Benutzerhandbuch
auf Anwendungen und Projekte hin. Registrierte Anwendungen und Projekte können (mit dem Befehl publishassess (pa)) veröffentlicht werden.
Die Registrierung bereits registrierter Anwendungen oder Projekte kann mit dem
Befehl unregister (unreg) aufgehoben werden.
Syntax
register
Beispiel
AllApplications>> cd pebble
AllApplications\pebble>> register
AllApplications\pebble>> ’pebble’ erfolgreich registriert.
removeassess (da)
Beschreibung
Löscht die ausgewählte oder aktuelle Beurteilung im Hauptspeicher.
Syntax
removeassess [id]
ID: Optionales Literal. Identifiziert die Beurteilungs-ID. Wenn keine ID angegeben
wird, findet der Befehl Anwendung auf die letzte Beurteilung. Verwenden Sie
listassess (la), um eine Beurteilungs-ID zu suchen.
Beispiel
Rufen Sie vor dem Löschen einer Beurteilung zuerst deren ID ab:
AllApplications\Applications>> ListAssess
542: putty (Application, Tue Apr 01 08:38:18 EDT 2008)
180: JavaAny (Application, Tue Apr 01 13:17:33 EDT 2008)
Löschen Sie danach die Beurteilung mit der ID 180:
AllApplications\Applications>> RemoveAssess 180
report (rpt)
Beschreibung
Der Befehl Report erstellt einen Bericht des angegebenen Typs für AppScan Source,
der Berichte über Untersuchungsergebnisse und AppScan Source-Berichte enthält.
Zur Verwendung dieses Befehls ist eine gültige AppScan Source for Automation-Lizenz erforderlich.
Die verfügbaren Berichtsausgabeformate sind HTML, PDF und Zip-Dateien.
Syntax
report "<Berichtstyp>" <Aufgabeformat> <Speicherposition der Ausgabe>
[<Beurteilungs-ID>] [-includeSrcBefore:<n>] [-includeSrcAfter:<n>]
v Berichtstyp: Der Name des Berichts in Anführungszeichen, der erstellt werden
soll. Geben Sie einen der folgenden Berichtstypen an:
– Untersuchungsergebnisbericht:
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
47
-
Ergebnisse nach Bundle
Ergebnisse nach API
Ergebnisse nach Klassifizierung
Ergebnisse
DTS-Aktivität
- Ergebnisse nach Typ
- Ergebnisse nach CWE
- Ergebnisse nach Datei
– AppScan Source-Bericht:
- CWE SANS Top 25 2011
- DISA Application Security and Development STIG V3R9
- OWASP Mobile Top 10
- OWASP Top 10 2013
- PCI Data Security Standard V3.0
- Softwaresicherheitsprofil
– Falls verfügbar, ein angepasster Bericht.
Geben Sie den Berichtstyp in Anführungszeichen exakt genauso ein wie in der
Liste oben. Beispiel:Findings by Classification oder Software Security Profile.
v Ausgabeformat: Geben Sie eines der folgenden Formate für diesen Bericht an:
– HTML: Erstellt den Bericht als HTML-Datei und zeigt ihn online an.
– ZIP: Erstellt eine ZIP-Datei, die alle HTML-Berichtskomponenten enthält.
– Bei Berichten im PDF-Format können Sie den Detaillierungsgrad angeben:
- pdf-summary: Enthält Zählungen für jede angepasste Berichtsgruppe.
- pdf-detailed: Enthält Zählungen für jedes API und für jede Sicherheitslückeneigenschaft.
- pdf-comprehensive: Enthält Tabellen mit allen Ergebnissen für jedes API.
- pdf-annotated: Enthält alle Ergebnisse, alle Anmerkungen zu den Ergebnissen und bestimmte Codefragmente.
- Speicherposition der Ausgabe: Der Pfad, in dem der Bericht geschrieben
wird.
v Speicherposition der Ausgabe: Geben Sie absoluten Pfad- und Dateinnamen für
die Speicherung des Berichts an.
v Beurteilungs-ID: Optional. Die Beurteilungs-ID, die Sie mit dem Befehl
listassess (la) erhalten. Wenn Sie die Beurteilungs-ID übergehen, wird ein Bericht der letzten Überprüfung erstellt.
v -includeSrcBefore:<n>: Optional. Die Anzahl der Quellcodezeilen, die vor jedem Ergebnis in den Bericht eingefügt werden.
v -includeSrcAfter:<n>: Optional. Die Anzahl der Quellcodezeilen, die nach jedem Ergebnis in den Bericht eingefügt werden.
Beispiele
v Fordern Sie einen Bericht Ergebnisse nach API, der in HTML geschrieben ist, an:
AllApplications>> report "Findings by API" html C:\reports\findings.html
v Fordern Sie einen OWASP Top 10 für AppScan Source an, der als PDF mit umfassenden Details geschrieben wird und die bestehende Beurteilung 542 verwendet:
AllApplications>> report "OWASP Top 10 2013" pdf-comprehensive
/reports/webgoat_OWASP_13_comp.pdf 542
48
IBM Security AppScan Source Utilities: Benutzerhandbuch
scan (sc)
Beschreibung
Durchsucht eine Anwendung (oder alle Anwendungen), ein Projekt oder eine Datei, Zur Verwendung dieses Befehls ist eine gültige AppScan Source for Automation-Lizenz erforderlich.
Wichtig: Wenn Sie mit einem AppScan Source-Projekt arbeiten, das über Abhängigkeiten in einer Entwicklungsumgebung verfügt (beispielsweise ein IBM® MobileFirst-Projekt), stellen Sie sicher, dass Sie das Projekt in der Entwicklungsumgebung builden, bevor Sie es importieren. Wenn Sie nach dem Import des Projekts
Dateien in diesem Projekt ändern, stellen Sie sicher, dass Sie das Projekt in der Entwicklungsumgebung erneut builden, bevor Sie das Scanning dafür in AppScan
Source durchfuhren (wenn Sie dies nicht tun, werden Änderungen an Dateien von
AppScan Source ignoriert).
Syntax
scan [path][config <projektkonfiguration>][-name <beurteilungsname>]
[-scanconfig <name_der_scankonfiguration>]
v path: Optional. Vollständiger Pfad und Dateiname (.ozasmt), unter dem die exportierte Beurteilung gespeichert wird.
Anmerkung:
– Wenn Sie ein gültiges Verzeichnis ohne einen Dateinamen angeben, wird eine
Beurteilungsdatei (.ozasmt) auf der Basis des Anwendungsnamens, des Projektnames und der Scankonfiguration erstellt, die beim Erstellen der Beurteilung verwendet wurde.
– Wenn Sie ein gültiges Verzeichnis mit einem Dateinamen angeben, der nicht
vorhanden ist, wird eine Beurteilungsdatei in dieser Position erstellt und es
wird der angegebene Dateiname verwendet.
– Wenn Sie eine Datei angeben, die bereits vorhanden ist, wird die vorhandene
Datei überschrieben.
– Wenn Sie einen Dateinamen (.ozasmt) in einem Verzeichnis angeben, das
nicht vorhandenist, wird die Beurteilung gesüeichert.
v config <projektkonfiguration>: Optional. Dieses Argument gilt nur für Beurteilungen auf Projektebene. Wenn Ihr Projekt eine Konfigurationsdatei aufweist, geben Sie sie mithilfe dieses Arguments an.
v -name <beurteilungsname>: Optional. Ein Name für die Beurteilung. Diese Name
wird im AppScan Source-Clientprodukten zur Unterscheidung von Beurteilungen untereinander verwendet (beispielsweise erscheint in AppScan Source for
Analysis der Name in der Spalte Name der Ansicht 'Meine Beurteilungen').
v -scanconfig <name_der_scankonfiguration>: Optional. Geben Sie den Namen einer Scankonfiguration an, die für die Überprüfung verwendet werden soll. Wenn
keine Scankonfiguration angegeben wird, verwendet das System für die Überprüfung die Standardscankonfiguration.
Beispiele
v Gehen Sie wie folgt vor, um die Standardkonfiguration der Projekte in allen Anwendungen zu überprüfen:
AllApplications>> Scan
Die Ergebnisse werden wie folgt angezeigt:
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
49
Neue Überprüfung gestartet
.
.
Sicherheitslückenanalyse vorbereiten...
Sicherheitslückenanalyse durchführen...
Ergebnisse generieren...
Projekt wird für Überprüfung vorbereitet...
.
.
Überprüftes Projekt:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Überprüfte Anwendung:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Überprüfung beendet:
Gesamtzahl der Dateien: 15
Gesamtzahl der Ergebnisse: 167
Gesamtzahl der Zeilen: 385
vkloc: 0.44448395412925595
S-Dichte: 22.446439683527426
Ablaufzeit - 18 Sekunden
Neue Überprüfung gestartet Bitte warten...
Beurteilung beendet
------------------Gesamtzahl der Aufrufseiten: 75
Gesamtzahl der definitiven Security-Ergebnisse mit hohem Schweregrad: 25
Gesamtzahl der definitiven Security-Ergebnisse mit mittlerem Schweregrad: 37
Gesamtzahl der definitiven Security-Ergebnisse mit niedrigem Schweregrad: 9
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit hohem Schweregrad: 20
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit mittlerem Schweregrad: 80
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit niedrigem Schweregrad: 60
Gesamtzahl der Scan-Abdeckungsergebnisse mit hohem Schweregrad: 50
Gesamtzahl der Scan-Abdeckungsergebnisse mit mittlerem Schweregrad: 33
Gesamtzahl der Scan-Abdeckungsergebnisse mit niedrigem Schweregrad: 17
Gesamtzahl der Zeilen: 3000
...
v Gehen Sie wie folgt vor, um die Debugkonfiguration von Prj1 zu überprüfen:
AllApplications\Prj1>> SC config debug
script (scr)
Beschreibung
Führt ein Befehlsscript aus.
Das Script kann alle gültigen Befehle der AppScan Source-Befehlzeilenschnittstelle
(CLI) mit Argumenten enthalten. Der Befehl record (rc) kann zum Erstellen der
Scriptdatei verwendet werden.
Scripts können bei Verwendung der Notation ${VAR} auf Umgebungsvariablen verweisen (wobei VAR der Name einer Umgebungsvariablen ist).
Wenn der Befehl script von der Befehlszeile an AppScanSrcCli übergeben wird,
beendet er AppScanSrcCli automatisch am Ende des Scripts.
50
IBM Security AppScan Source Utilities: Benutzerhandbuch
Syntax
script Scriptdatei
Scriptdatei: Vollständiger Pfad-und Dateiname der Scriptdatei, die Sie ausführen
wollen.
Kommentare in Scripts
Eine Zeile, der ein Nummernzeichen (#) vorausgeht, ist ein Kommentar. Die CLI
überspringt Kommentare, wenn sie im Dialogbetrieb oder über eine Scriptdatei
ausgeführt wird.
Das folgende Beispielscript enthält Kommentare:
login localhost User 123456
#zu meinem Arbeitsbereich navigieren
cd MeineAnwendung
#meine Anwendung überprüfen
Überprüfung
logout
Beispiele
Ein Benutzer, der sich normal anmeldet und die CLI im Dialogbetrieb verwendet,
möchte möglicherweise ein Script aufzeichnen, um es bei Bedarf über die Konsole
erneut ausführen zu können. Mit dem Befehl record (rc) können Sie eine vollständige Sitzung aufzeichnen und das Script beliebig oft oder zu einem geplanten
Zeitpunkt ausführen. Ein Script kann eine ganze Sitzung automatisieren, indem
einzelne Stapeldateien oder Scripts zum Anmeldung, zum Erstellen von Projekten,
zum Überprüfen, zum Kopieren von Dateien und so weiter verwendet werden.
v Gehen Sie wie folgt vor, um ein Script mit dem Namen myscript.txt auszuführen:
AllApplications>> Script c:\myscript.txt
v Das folgende Beispielscript meldet den Benutzer an, aktiviert die Protokollierung, erstellt eine Anwendung, importiert alle ppf-Projekte in einem angegebenen Verzeichnis, führt eine Beurteilung aus und beendet das Script:
log on C:\mylogfile.log
new MeineAnwendung C:\MeineAnwendung
cd MeineAnwendung
im C:\Projekte\*.ppf
Überprüfung
logout
Dabei ist zu beachten, dass logout nicht notwendig ist, wenn das Script immer
von der Befehlszeile AppScanSrcCli ausgeführt wird.
setaseinfo (sase)
Wenn Ihr AppScan Enterprise Server mit der Option 'AppScan Enterprise Console'
installiert wurde, können Sie Beurteilungen auf dem Server publizieren. Die Enterprise Console stellt zahlreiche Tools für das Arbeiten mit Beurteilungen zur Verfügung, z. B. Berichtsfunktionen, Problemmanagement, Trendanalyse und Dashboards.
Beschreibung
Legt die Einstellungen für Enterprise Console fest.
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
51
Wenn Sie Beurteilungen von AppScan Source in Enterprise Console publizieren
wollen, verwenden Sie den Befehl setaseinfo, um die Verbindungseinstellungen
von Enterprise Console anzugeben.
Syntax
setaseinfo --userid|-u <benutzername>
--password|-p <kennwort>
--url|-l <url>
v userid:
– Wenn AppScan Enterprise Server zur Verwendung der Windows-Authentifizierung konfiguriert ist, geben Sie die Domäne und den Benutzernamen ein,
den Sie zum Herstellen der Verbindung zu Enterprise Console verwenden
(trennen Sie die Domäne und den Benutzernamen mit einem \ - beispielsweise meine_domäne\mein_benutzername).
– Wenn AppScan Enterprise Server mit LDAP konfiguriert ist, geben Sie den
Benutzernamen ein, den Sie zum Herstellen der Verbindung zu Enterprise
Console verwenden.
Sie müssen mindestens ein QuickScan-Benutzer sein und auf dem Enterprise
Server über einen eigenen Benutzerordner verfügen.
v kennwort: Das Kennwort, das zum Anmelden bei AppScan Enterprise verwendet
wird (das Kennwort für den eingegebenen Benutzernamen).
v url: Die URL, die für den Zugriff auf die Enterprise Console-Webanwendung
verwendet wird.
Das Format dieser URL ist:
http(s)://<hostname>:<port>/ase/
Hierbei ist <hostname> der Name der Maschine, auf der die Enterprise Console
installiert ist, und <port> ist der Port, an dem die Konsole ausgeführt wird. Eine
Beispiel-URL wäre https://myhost.mydomain.ibm.com/ase.
Anmerkung: Dieses Argument ist optional, wenn die Enterprise Console-URL
bereits festgelegt wurde.
Anmerkung:
v Sie müssen bei der AppScan Source-Befehlzeilenschnittstelle (CLI) mit der Berechtigung AppScan Enterprise-Einstellungen verwalten angemeldet sein, um
einen Wert für url festlegen zu können. Informationen zu Benutzeraccounts und
Berechtigungen finden Sie im Abschnitt AppScan Source verwalten im IBM Security AppScan Source Installations- und Administrationshandbuch.
v Der benutzername und das kennwort werden auf der Maschine gespeichert, auf
der der AppScan Source-Client (z. B. AppScan Source for Analysis) ausgeführt
wird, während url auf dem Enterprise Server gespeichert wird (der sich auf einer fernen Maschine befinden kann). Sie können auf die Informationen
benutzername und kennwort von der fernen Maschine aus zugreifen (beispielsweise, indem Sie den Befehl getaseinfo von dieser Maschine aus absetzen).
Beispiel
AllApplications>> setaseinfo --userid MeinBenutzername --password MeinKennwort
--url https://my_aseserver/ase
Informationen zur AppScan Enterprise Integration wurden konfiguriert.
AllApplications>>
52
IBM Security AppScan Source Utilities: Benutzerhandbuch
setcurrentobject (set, cd)
Beschreibung
Verwenden Sie setcurrentobject zum Navigieren in der Objektbaumstruktur.
Legt das aktuell ausgewählte Objekt in der Objektbaumstruktur fest. Das Objekt
muss ein gültiges untergeordnetes Element des aktuellen Objekts sein. Verwenden
Sie den Befehl list (ls, dir), um alle untergeordneten Elemente des aktuellen
Objekts anzuzeigen. Wählen Sie das Objekt nach Namen oder ID aus.
Syntax
setcurrentobject {Name|ID Objekt-ID}
v Name: Der Name des festzulegenden untergeordneten Elements. Dieser ist erforderlich, wenn durch die Baumstruktur nach dem Objektnamen navigiert wird.
v ID: Literal. Wählen Sie die ID nach der Objekt-ID aus.
v Objekt-ID: Die numerische ID des untergeordneten Elements. Dies ist erforderlich, wenn nach der ID ausgewählt wird.
Beispiele
v Gehen Sie wie folgt vor, um vom Stammverzeichnis zu der Anwendung, deren
ID gleich 1 ist, zu navigieren:
AllApplications>> SetCurrentObject applications
AllApplications>> CD id 1
AllApplications\Applications>>
v Gehen Sie wie folgt vor, um eine Ebene zurück zu navigieren:
AllApplications\Applications>> CD ..
v Gehen Sie wie folgt vor, um zum Anfang (Stammverzeichnis) der Objektbaumstruktur zurückzukehren:
AllApplications\Applications>> Set /
oder
AllApplications\Applications>> Set \
setvar (sv)
Beschreibung
Erstellt eine neue Variable oder ändert eine bestehende Variable.
Syntax
setvar <Name> <Pfad>
v Name: Der Name der Variablen. Wenn die Variable bereits vorhanden ist, aktualisiert die AppScan Source-Befehlzeilenschnittstelle (CLI) den Pfad. Falls die Variable noch nicht existiert, wird sie von der CLI mit dem Wert des genannten Pfads
erstellt.
v Pfad: Eine bestehender Pfad für die Variable. Wenn dieser Pfad nicht besteht,
wird die Variable nicht erstellt.
Beispiele
v Gehen Sie wie folgt vor, um die AppScan Source-Variable Myvar mit dem Pfad
C:\Myapps zu erstellen:
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
53
AllApplications>> SetVar Myvar C:\Myapp
AllApplications>> Neue Variable ’%Myvar%’ wurde erstellt.
v Gehen Sie wie folgt vor, um eine AppScan Source-Variable mit dem Namen
SRC_ROOT basierend auf dem Wert der Systemumgebungsvariablen SRC_ROOT zu
erstellen:
# Anmeldung
login localhost admin
# Erstellen der Variablen SRC_ROOT mit dem Wert
# der Umgebungsvariablen SRC_ROOT
setvar SRC_ROOT ${SRC_ROOT}
unregister (unreg)
Beschreibung
Nimmt die Registrierung einer zuvor registrierten Anwendung oder eines registrierten Projekts des aktuellen Knotens zurück.
Nachdem die Registrierung aufgehoben wurde, kann die Anwendung oder das
Projekt nicht veröffentlicht werden. Weitere Informationen hierzu finden Sie unter
dem Befehl register (reg).
Syntax
unregister
Beispiel
AllApplications\Myapp>> Unregister
AllApplications\Myapp>> Die Registrierung von ’Myapp’ wurde erfolgreich aufgehoben.
Automatisierte Beurteilungen durchführen
Die AppScan Source-Befehlzeilenschnittstelle (CLI) ermöglicht das automatische
Importieren einer AppScan Source-Projektdatei (.ppf) sowie die Überprüfung des
Quellcodes. Sie können von der Befehlszeile zum Beispiel ein Script wie das folgende Run_Assessments.txt ausführen.
AppScanSrcCli scr c:\<Installationsverzeichnis>\bin\Run_Assessments.txt
Beispielscript Run_Assessments.txt
# Melden Sie sich an.
Login <hostname> <benutzername> <kennwort>
# Aktivieren Sie die Protokollierung
log on c:\myLogFile.log
# Erstellen Sie eine neue Anwendung mit dem Namen ’testit’.
new testit c:\AppTest
# Navigieren Sie zu der neu erstellten Anwendung.
cd testit
# Importieren Sie die Projektdateien (.ppfs) unter c:\projects\joans.
im c:\projects\joans\*.ppf
# Aktualisieren Sie das Projekt.
refresh
# Führen Sie eine Beurteilung durch.
Überprüfung
# Registrieren Sie die Beurteilung.
register
# Veröffentlichen Sie die Beurteilung.
publishassess
# Melden Sie sich ab und beenden Sie die Sitzung der Befehlszeilenschnittstelle.
quit
54
IBM Security AppScan Source Utilities: Benutzerhandbuch
Ausgabe
Protokollierung in ’c:\mylogfile.log’...
AllApplications>> new testit c:\AppTest
AllApplications>> cd testit
AllApplications\testit>> import c:\TestApps\testproj\*.ppf
AllApplications\testit>> refresh
AllApplications\testit>> ls
214: testproj (Project [local])
AllApplications\testit>> la
testit hat keine aktuellen Beurteilungen.
Überprüfung
Neue Überprüfung gestartet um 15:41:55
Überprüfung von Projekt ’testproj’ (1 von 1)
Projekt wird für Überprüfung vorbereitet...
.
.
.
Datei C:\TestApps\\testproj\src\se\bluefish\blueblog\metarepository\Meta wird durchsucht
Category.java (21 von 33)
Datei C:\TestApps\testproj\src\se\bluefish\blueblog\metarepository\Meta wird durchsucht
Repository.java (22 von 33)
------------------Gesamtzahl der Aufrufseiten: 348
Gesamtzahl der definitiven Security-Ergebnisse mit hohem Schweregrad: 5
Gesamtzahl der definitiven Security-Ergebnisse mit mittlerem Schweregrad: 1
Gesamtzahl der definitiven Security-Ergebnisse mit niedrigem Schweregrad: 4
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit hohem Schweregrad: 0
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit mittlerem Schweregrad: 8
Gesamtzahl der fehlerverdächtigen Security-Ergebnisse mit niedrigem Schweregrad: 0
Gesamtzahl der Scan-Abdeckungsergebnisse mit hohem Schweregrad: 16
Gesamtzahl der Scan-Abdeckungsergebnisse mit mittlerem Schweregrad: 27
Gesamtzahl der Scan-Abdeckungsergebnisse mit niedrigem Schweregrad: 16
Gesamtzahl der Zeilen: 7386
Max S-Dichte: 732.2772813430815
Max V/KLoC: 10.42512862171676
S-Dichte: 732.2772813430815
V/KLoC: 10.42512862171676
AllApplications\testit>> register
AllApplications\testit>> ’testit’ wurde erfolgreich registriert.
AllApplications\testit>> pa
Beurteilung erfolgreich veröffentlicht.
AllApplications\testit>> la
AllApplications\testit>> 27001: testit (Application, Fri Mar 14 15:41:55 EDT 2008)
AllApplications\testit>>
Kapitel 2. AppScan Source-Befehlzeilenschnittstelle (CLI)
55
56
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 3. Das Ounce/Ant-Buildtool
Dieser Abschnitt beschreibt, wie Ounce/Ant, ein AppScan Source-Builddienstprogramm, das AppScan Source und Apache Ant integriert, verwendet wird. Die Integration von Ounce/Ant mit Ihrer Ant-Umgebung hilft Ihnen bei der Automatisierung von Builds und Codebeurteilungen.
Ounce/Ant ist ein AppScan Source-Buildtool, das sich in Ihre Apache Ant-Buildumgebung integriert. Statt AppScan Source-Projekt- und -Anwendungsdateien in
AppScan Source for Analysis manuell zu erstellen und zu konfigurieren, erstellt
Ounce/Ant automatisch AppScan Source-Projekte und -Anwendungen, die alle erforderlichen Angaben enthalten, wie z. B. Quellendateien und den Klassenpfad.
AppScan Source kann die Projekt- und Anwendungsdateien dann überprüfen.
Die folgenden Versionen von Apache Ant und dem Java™ JDK sind für die Verwendung mit Ounce/Ant erforderlich:
v Apache Ant Version 1.7 oder höher
v Java JDK Version 1.3.1 oder höher
v Java JDK Version 1.4 für die Verwendung mit der Task var erforderlich
Integration von Ounce/Ant und Apache/Ant
Die in diesem Taskabschnitt beschriebenen Schritte sind erforderlich, um Ounce/
Ant in die Apache/Ant-Buildumgebung zu integrieren.
Vorgehensweise
1. Kopieren Sie die Datei ounceant.jar und optional auch ant-contrib-1.0b3.jar
in das Verzeichnis ant lib.
Die AppScan Source-Installation platziert ounceant.jar und
ant-contrib-1.0b3.jar in <installationsverzeichnis>\lib (wobei
<installationsverzeichnis> die Position Ihrer AppScan Source-Installation ist).
2. Optional: Überschreiben Sie die Eigenschaft build.compiler.
(Unter „Projekte erstellen” auf Seite 59 finden Sie weitere Informationen zum
Überschreiben von build.compiler.)
Überschreiben Sie diese Eigenschaft mithilfe einer der folgenden Methoden:
v Verwenden Sie ein Eigenschaftstag in der Datei build.xml.
<property name="build.compiler"
value="com.ouncelabs.ounceant.OunceCompilerAdapter"/>
v Geben Sie den Wert für build.compiler in der Befehlszeile ein, wenn Sie Ant
mit der Option -D aufrufen.
ant -Dbuild.compiler=
com.ouncelabs.ounceant.OunceCompilerAdapter
v Nehmen Sie den Wert für build.compiler in eine Textdatei auf und weisen
Sie Ant wie in der Ant-Dokumentation beschrieben an, die Eigenschaften in
dieser Datei mit der Option properties zu laden.
3. Erstellen Sie taskdef-Tasks.
Um Ounce/Ant-Tasks verwenden zu können, müssen Sie ounceant.jar in einer
taskdef-Task definieren. Beispiel:
© Copyright IBM Corp. 2003, 2015
57
<taskdef resource="com/ouncelabs/ounceant/task/ounce.xml"
classpath="ounceant.jar"/>
Damit Sie die Task var verwenden können, muss ant-contrib-1.0b3.jar die
Task taskdef wie folgt referenzieren:
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
Ounce/Ant-Eigenschaften
Die Tabelle in diesem Abschnitt beschreibt die optionalen Ounce/Ant-Eigenschaften.
Eigenschaft
ounce.default.
configuration_name
Gültige Werte/
Standardwerte
<Konfigurationsname>
Beschreibung
Im AppScan Source-Projekt
erstellter
Konfigurationsname.
Sofern nicht festgelegt, wird
'Configuration 1' verwendet.
ounce.build.compiler
Compilername
Name der ausführbaren
Compilerdatei, die verwendet wird, wenn die Ant-Eigenschaft build.compiler für
die Verwendung von
OunceCompilerAdapter konfiguriert ist.
Sofern nicht festgelegt, wird
javac verwendet.
ounce.project_name
name
Projektname.
Sofern nicht festgelegt, generiert Ounce/Ant einen Namen. Weitere Informationen
finden Sie in „Projekte
benennen” auf Seite 61.
ounce.project_dir
<Projektverzeichnis>
(Erforderlich zur Festlegung
von ounce.project_name)
Sofern nicht festgelegt, wird
das Verzeichnis der aktuellen
Builddatei verwendet.
ounce.application_name
<Anwendungsname>
Anwendungsname. Weitere
Informationen hierzu finden
Sie in „Anwendungen erstellen und benennen” auf Seite
62.
ounce.application_dir
<Anwendungsverzeichnis>
Arbeitsverzeichnis der Anwendung.
(Erforderlich zur Festlegung
von ounce.application_name)
58
Arbeitsverzeichnis des Projekts.
IBM Security AppScan Source Utilities: Benutzerhandbuch
Sie müssen
ounce.application_name und
ounce.application_dir festlegen, um ein Projekt zu einer Anwendung hinzufügen
zu können.
Eigenschaft
ounce.projects.
store_full_paths
Gültige Werte/
Standardwerte
Beschreibung
true oder false
Speichert absolute Pfade, die
in Anwendungen und Projekten erstellt werden.
(optional)
Sofern nicht festgelegt, werden relative Pfade verwendet.
Eigenschaften festlegen
Sie können mithilfe der Task var Eigenschaften beliebig oft festlegen. Beim expliziten oder impliziten Aufruf verwendet ounceCreateProject die aktuellen Eigenschaftswerte. Sie können Eigenschaften mithilfe eines der Verfahren festlegen, die
im Abschnitt zu dieser Task skizziert sind.
Vorgehensweise
v Verwenden Sie ein Attribut für eine Ounce/Ant-Task, wenn das Attribut vorhanden ist.
v Verwenden Sie vor der entsprechenden AppScan Source-Task eine var-Task. Eigenschaften, die mit var festgelegt werden, verbleiben im Geltungsbereich nur
derjenigen Datei, in der sie festgelegt werden. Um die Task var zu benutzen,
muss die Ant-Beitragsbibliothek im Ant-Verzeichnis lib vorhanden sein und die
Task taskdef muss sie referenzieren.
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
v Verwenden Sie -D auf der Ant-Befehlszeile.
v Legen Sie die Eigenschaft in einer Buildeigenschaftsdatei (normalerweise mit
dem Namen build.properties) fest.
Projekte erstellen
Die Task ounceCreateProject generiert AppScan Source-Projekte.
Verwenden Sie ounceCreateProject explizit oder implizit:
v Rufen Sie ounceCreateProject explizit in einer Ant-Builddatei auf.
v Rufen Sie ounceCreateProject implizit jedes Mal auf, wenn die Task javac aufgerufen wird, indem Sie die Eigenschaft build.compiler überschreiben.
Projekte können zu Anwendungen gruppiert werden. Sie können das optionale
Anwendungsattribut oder die passenden Ounce/Ant-Eigenschaften verwenden,
um das erstellte Projekt in einer Anwendung zu platzieren.
Projekte können mit Ounce/Ant auch erweitert werden. Projektattribute aus mehreren Projekten können in einem AppScan Source-Projekt zusammengeführt werden. Wenn mehrere javac- oder ounceCreateProject-Tasks dasselbe Projekt erweitern sollen, behalten Sie denselben Namen und das Verzeichnis bei.
Anmerkung: Wenn Sie build.compiler zum Erstellen von Projekten überschreiben,
führen Sie zuerst ant clean aus.
Informationen zur Verwendung von Eigenschaften und ihren verschachtelten Attributen finden Sie in „ounceCreateProject-Taskbeispiel” auf Seite 60.
Kapitel 3. Das Ounce/Ant-Buildtool
59
ounceCreateProject
ounceCreateProject akzeptiert die folgenden Parameter und verschachtelten Elemente:
Als Attribute angegebene Parameter
Beschreibung
name
Name für das Projekt.
workingDir
Arbeitsverzeichnis für das Projekt.
classpath
Klassenpfad für das Projekt.
sourcepath
Quellenpfad für die
Projektquellenabhängigkeiten. Diese Dateien
werden nicht auf Sicherheitslücken überprüft.
jdkName
AppScan Source-JDK-Name, der beim Scannen des Projekts verwendet werden muss.
(Muss in AppScan Source for Analysis erstellt werden.)
appName
Anwendung, die dieses Projekt enthält (optional).
appDir
Anwendungsverzeichnis (optional)
Als verschachtelte Elemente angegebene
Parameter
Beschreibung
ounceSourceRoot
Gibt die Projektquellenstammverzeichnisse
an
ounceWeb
Gibt die Projektwebinhalte an
ounceExclude
Ermöglicht den Ausschluss bestimmter Dateien aus der im übergeordneten Element
angegebenen Dateigruppe.
ounceCreateProject-Taskbeispiel
<ounceCreateProject
name="myProjectName"
workingDir="${sandbox}/myProject"
classpath="${my.class.path}"
sourcepath="${my.source.path}"
jdkName="jdk15"
appName="myApp"
appDir="${sandbox}>
<ounceSourceRoot dir="src"/>
<ounceExclude dir="src/test"/>
<ounceExclude file="src/mydir/Bad.java"/>
<ounceSourceRoot dir="src2"/>
<ounceSourceRoot file="src3/mydir.java"/>
<ounceWeb webContextRoot="web/myProject.war"/>
<ounceExclude dir="web/test"/>
<ounceExclude file="web/partial.jsp"/>
</ounceCreateProject>
ounceSourceRoot
ounceSourceRoot akzeptiert die folgenden Parameter, die als Attribute angegeben
werden:
60
IBM Security AppScan Source Utilities: Benutzerhandbuch
Als Attribute angegebene Parameter
Beschreibung
dir
Pfad zu einem gültigen JavaQuellenstammverzeichnis
file
Pfad zu einer einzelnen Datei
ounceWeb
ounceWeb akzeptiert die folgenden Parameter, die als Attribute angegeben werden.
Als Attribute angegebene Parameter
Beschreibung
webContextRoot
Pfad zu einem gültigen
Webkontextstammverzeichnis oder einer
war-Datei.
ounceExclude
ounceExclude akzeptiert die folgenden Parameter, die als Attribute angegeben werden:
Als Attribute angegebene Parameter
Beschreibung
dir
Pfad zum auszuschließenden Verzeichnis
file
Pfad zu einer einzelnen auszuschließenden
Datei
Projekte benennen
Sie können ein Projekt unter Verwendung der Standardbenennungskonvention
oder durch manuelle Erstellung eines Projektnamens benennen.
Standardbenennung von Projekten
Das Standardbenennungsschema in Ounce/Ant gestattet die Erstellung eindeutiger
Projektnamen.
<Verzeichnis>_<Zielname>[_<Zahl>]
v <Verzeichnis>: Name des Projektverzeichnisses (schließt nicht den gesamten
Pfad ein)
v <Zielname>: Name des aktuellen Ziels
v <Zahl>: Eine ganze Zahl beginnend bei 1, die nach Bedarf erhöht wird, um zu
garantieren, dass sie eindeutig ist. Beachten Sie, dass <Zahl> nur bei Vorliegen eines Konflikts auftritt.
Beispiel
Mit den folgenden Parametern wird der Name zu test_compile. Wenn zwei Projekte am Kompilierungsziel erstellt werden, wird der zweite Name zu test_compile_1.
<Arbeitsverzeichnis> = C:\mydir\test
<Verzeichnis> = test
<Zielname> = compile
Kapitel 3. Das Ounce/Ant-Buildtool
61
Projekte manuell benennen
Wenn Sie ein Projekt mit ounceCreateProject erstellen, können Sie das Attribut
name zur Angabe eines Projektnamens verwenden. Wenn das Attribut name nicht
angegeben ist oder Sie Projekte mithilfe von javac erstellen, fragt die AppScan
Source-Task die Eigenschaft ounce.project_name ab. Ist diese festgelegt, dann wird
dieser Wert als Projektname verwendet. Deswegen kann die Eigenschaft
ounce.project_name mithilfe von var vor jedem Aufruf der Task javac festgelegt
werden, wodurch für jedes erstellte Projekt ein eindeutiger Name bereitgestellt
wird.
Anwendungen erstellen und benennen
Ounce/Ant kann im laufenden Betrieb AppScan Source-Anwendungen erstellen
und die erstellten AppScan Source-Projekte in den Anwendungen gruppieren.
Sie können diese Anwendungen mit zwei Ant-Eigenschaften erstellen:
v ounce.application_name
v ounce.application_dir
Wichtig: Um die Anwendung zu erstellen, müssen Sie entweder beide Eigenschaften festlegen oder die Attribute appName und AppDir der Task ounceCreateProject
festlegen.
Wenn diese Eigenschaften während der Projekterstellung festgelegt werden, wird
das Projekt zu einer Anwendung mit dem Namen hinzugefügt, deren Name durch
ounce.application_name und deren Arbeitsverzeichnis durch
ounce.application_dir angegeben ist.
Sie können diese Eigenschaften auch mehrfach mithilfe der Task var festlegen, um
Projekte in den gewünschten Anwendungen zu gruppieren. Ein Anwendungsname
ist geeignet, wenn aus ihm die Kombination der Projekte in einer einzelnen Anwendung hervorgeht.
Tipp: Wenn Sie ounceCreateProject verwenden, sollten Sie auch mithilfe der Attribute appName und appDir die Anwendung angeben, in die das Projekt eingeschlossen werden soll.
Integration eines Builds
Die Task ounceCli ermöglicht den Zugriff auf die AppScan Source-Befehlzeilenschnittstelle (CLI), um während eines Builds eine Überprüfung durchzuführen. Die
Task ounceCli kann cli aus Ant aufrufen.
ounceCli erfordert die Angabe der folgenden Parameter als Attribute:
v dir: Position des AppScan Source-Installationsverzeichnisses
v script: Position der auszuführenden cli-Scriptdatei
v output: Position der cli-Ausgabedatei
Beispiel
<ounceCli
dir="${installDir}"
script="${scripts}/cli_script.txt"
output="log.txt"/>
62
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 4. AppScan Source-Data Access-API
Die Data Access-API ermöglicht Zugriff auf Beurteilungsergebnisse, einschließlich
von Untersuchungsergebnissen und Details zu Untersuchungsergebnissen, die von
AppScan Source generiert wurden. Sie bietet auch Zugriff auf Beurteilungskennzahlen wie Datum und Zeit der Analyse, Codezeilen, Dichte der Sicherheitslücken
und Anzahl der Ergebnisse.
Die Data Access-API ist in der Installation der folgenden AppScan Source-Komponenten enthalten:
v AppScan Source for Analysis
v AppScan Source-Befehlzeilenschnittstelle (CLI)
Die Data Access-API wird installiert als <installationsverzeichnis>\sdk\
ouncesdk.jar (wobei <installationsverzeichnis> die Position Ihrer AppScan
Source-Installation ist).
Wenn ein Programm, das das SDK verwendet, ausgeführt wird, müssen Sie die folgenden Argumente von Java Virtual Machine (JVM) in der Befehlszeile angeben:
java -classpath
<Installationsverzeichnis>\lib\avalon-framework-4.1.5.jar;
<Installationsverzeichnis>\lib\icu4j-4_8.jar;
<Installationsverzeichnis>\lib\jacorb.jar;
<Installationsverzeichnis>\lib\log4j-1.2.8.jar;
<Installationsverzeichnis>\lib\logkit-1.2.jar;
<Installationsverzeichnis>\sdk\ouncesdk.jar;
<Installationsverzeichnis>\lib\xml-apis.jar;
<Installationsverzeichnis>\lib\saxon9.jar
... com.company.product.ClassName
Die Data Access-API erfordert JDK ab Version 1.5.
© Copyright IBM Corp. 2003, 2015
63
Data Access-API-Objektmodell
Diagramm 1 - UML-Diagramm (UML = Unified Modeling Language) mit Objektmodell für Beurteilungen
Factory
1
- openAssessment()
- getPublishedAssessments()
1..*
AssessmentResults
1
- getAssessments()
- getAssessmentForApplication()
- getAssessmentForProject()
*
Assessment
*
1
1
- getAssessments()
- getAssessedFiles()
*
AssessedFile
64
IBM Security AppScan Source Utilities: Benutzerhandbuch
Diagramm 2 - UML-Diagramm (UML = Unified Modeling Language) mit Objektmodell für Ergebnisse
AssessmentResults
Assessment
1
*
1
1
AssessedFile
- getFindings()
1
*
*
- getFindings()
- getFindings()
Finding
*
1
- getTrace()
0..1
Trace
1
- getCalls()
1..*
Call
Diagramm 1 - UML-Diagramm (UML = Unified Modeling Language) mit Objektmodell für Beurteilungen
Oben im Diagramm befindet sich die Klasse Factory. Die Klasse Factory verfügt
über eine Beziehung zur Klasse AssessmentResults, die über zwei Methoden in der
Klasse Factory hergestellt wird: openAssessment() und getPublishedAssessments(). Die Beziehung zwischen diesen beiden Klassen besteht zwischen einer
Klasse Factory und einer oder mehreren Klasse(n) AssessmentResults.
Unter der Klasse Factory ist im Diagramm die Klasse AssessmentResults dargestellt. Die Klasse AssessmentResults verfügt über eine Beziehung zur Klasse Assessment, die über drei Methoden (getAssessments(),
getAssessmentForApplication() und getAssessmentForProject()) hergestellt wird.
Die Beziehung zwischen diesen beiden Klassen verläuft besteht zwischen einer
Klasse AssessmentResults und null oder mehr Klassen Assessment.
Unter der Klasse AssessmentResults ist im Diagramm die Klasse Assessment dargestellt. Eine Klasse Assessment verfügt über eine Beziehung zu null oder mehr Klassen AssessedFile, die über die Methode getAssessedFiles() hergestellt wird. Die
Klasse Assessment hat auch eine Beziehung zu sich selbst, die über die Methode
Kapitel 4. AppScan Source-Data Access-API
65
getAssessments() hergestellt wird. Diese Beziehung besteht zwischen einer Klasse
Assessment zu null oder mehr untergeordneten Klassen Assessment.
Unter der Klasse Assessment ist im Diagramm die Klasse AssessedFile dargestellt.
Eine Klasse Assessment verfügt über eine Beziehung zu null oder mehr Klassen
AssessedFile, die über die Methode getAssessedFiles() hergestellt wird.
Diagramm 2 - UML-Diagramm (UML = Unified Modeling Language) mit Objektmodell für Ergebnisse
Oben im Diagramm sind die drei Klassen AssessmentResults, Assessment und
AssessedFile dargestellt. Jede dieser drei Klassen verfügt über eine Beziehung zur
Klasse Finding, die über die Methode getFindings() hergestellt wird. Die Beziehung besteht zwischen einer der erstgenannten Klassen zu null oder mehr Klassen
Finding. Die Klasse Assessment verfügt auch über eine Beziehung zu sich selbst,
die zwischen der Klasse Assessment und null oder mehr untergeordneten Klassen
Assessment besteht.
Unter der Klasse Finding ist im Diagramm die Klasse Trace dargestellt. Eine Klasse Finding verfügt über eine Beziehung zu null oder mehr Klassen Trace, die über
die Methode getTrace() hergestellt wird.
Unter der Klasse Trace ist im Diagramm die Klasse Call dargestellt. Eine Klasse
Trace verfügt über eine Beziehung zu einer oder zu mehreren Klassen Call, die
über die Methode getCalls() hergestellt wird.
Data Access-API verwenden
Dieser Abschnitt enthält eine Anzahl von Szenarios, für die Sie die Data AccessAPI verwenden können. Umfassendere Beispiele finden Sie in den Dateien
SamplePublished.java und SampleSdk.java, die im Verzeichnis
<installationsverzeichnis>\sdk\sample\com\ouncelabs\sdk\sample enthalten sind
(wobei <installationsverzeichnis> die Position Ihrer AppScan Source-Installation
ist).
Beurteilung aus einer Datei öffnen
Dieser Beispielcode wird als Muster für das Öffnen einer Beurteilung aus einer Datei bereitgestellt.
Factory factory = new Factory();
try {
factory.init(install_dir);
factory.login("admin", "123456", "localhost");
AssessmentResults assessmentResults =
factory.openAssessment("myApp.ozasmt");
printAssessmentResults(assessmentResults);
} finally {
factory.shutdown();
}
Liste der Ergebnisse ausgeben
Dieser Beispielcode wird als Muster für das Ausgeben einer Liste der Ergebnisse
bereitgestellt.
private void printAssessment(AssessmentResults results)
throws OunceException {
Assessment childAssessment = assessmentResults.
getAssessmentForApplication("myApp");
Finding[] findings = childAssessment.getFindings();
66
IBM Security AppScan Source Utilities: Benutzerhandbuch
for (int i = 0; i < findings.length; ++i) {
Finding finding = findings[i];
Object[] data = new Object[] {
finding.getApiName(),
finding.getVulnerabilityType(),
finding.getClassification(),
finding.getSeverity(),
finding.getFilename(),
new Integer(finding.getLineNumber()),
finding.getSrcContext(),
Boolean.valueOf(finding.isExcluded()),
};
printData(i,data);
Trace trace = finding.getTrace();
if (trace != null) {
printTrace(trace);
}
}
}
Liste veröffentlichter Beurteilungen abrufen
Dieser Beispielcode wird als Muster für das Ausgeben einer Liste von veröffentlichten Beurteilungen bereitgestellt.
Factory factory = new Factory();
try {
factory.init(install_dir);
factory.login("admin", "123456", "localhost");
AssessmentFilter filter = new AssessmentFilter(20);
filter.setUserName("joe");
filter.setDateProximity(2.5, DateProximityUnit.DAY);
AssessmentResults[] publishedAssessments =
factory.getPublishedAssessments(filter);
printAssessmentList(publishedAssessments);
} finally {
factory.shutdown();
}
Trace ausgeben
Dieser Beispielcode wird als Muster für das Ausgeben eines Trace bereitgestellt.
private void printTrace(Trace trace) throws OunceException {
Call[] calls = trace.getCalls();
for (int i = 0; i < calls.length; ++i) {
printCall(calls[i], 1);
}
}
private void printCall(Call call, int indentLevel) throws
OunceException {
printSpaces(indentLevel * 4);
Object data[] = new Object[] {
call.getFilename(),
call.getClassName(),
call.getMethodName(),
call.getSrcContext()
};
printData(data);
Call[] calls = call.getCalls();
for (int i = 0; i < calls.length; ++i) {
printCall(calls[i], indentLevel + 1);
}
}
Kapitel 4. AppScan Source-Data Access-API
67
Klassen und Methoden der Data Access-API
Dieser Abschnitt enthält eine detaillierte Beschreibung der Klassen und Methoden
der AppScan Source-Data Access-API. Die Klassen lauten wie folgt:
v com.ouncelabs.sdk.Factory
v com.ouncelabs.sdk.assessment.AssessedFile
v com.ouncelabs.sdk.assessment.Assessment
v com.ouncelabs.sdk.assessment.AssessmentDiff
v com.ouncelabs.sdk.assessment.AssessmentResults
v com.ouncelabs.sdk.assessment.Finding
v
v
v
v
v
v
com.ouncelabs.sdk.assessment.Trace
com.ouncelabs.sdk.assessment.Call
com.ouncelabs.sdk.assessment.SeverityType
com.ouncelabs.sdk.assessment.ClassificationType
com.ouncelabs.sdk.assessment.AssessmentFilter
com.ouncelabs.sdk.assessment.OunceException
AssessedFile
Die Klasse com.ouncelabs.sdk.assessment.AssessedFile stellt eine Beurteilung einer einzelnen Datei dar. Sie bietet Zugriff auf die Beurteilungsdaten einer Datei,
wie zum Beispiel Ergebnisse und Statistikdaten.
AssessedFile.getFindings
Signatur
public Finding[] getFindings()
Beschreibung
Bietet Zugriff auf alle Ergebnisse der vorliegenden AssessedFile.
Rückgabewert
Ein Array von Ergebnisobjekten für diese beurteilte Datei.
Löst aus
OunceException, wenn die Data Access-API die Ergebnisse nicht abrufen kann.
AssessedFile.getStats
Signatur
public AssessmentStats getStats()
Beschreibung
Bietet Zugriff auf zusammengefasste Statistikdaten für diese Datei, wie zum Beispiel die Gesamtzahl der Ergebnisse, Gesamtzahl der Zeilen und so weiter.
Rückgabewert
AssessmentStats-Objekt mit den Statistikdaten dieser Beurteilung.
68
IBM Security AppScan Source Utilities: Benutzerhandbuch
Löst aus
OunceException, wenn die Data Access-API die Statistikdaten nicht abrufen kann.
AssessedFile.getFilename
Signatur
public String getFilename()
Beschreibung
Bietet Zugriff auf den absoluten Pfad zu der durch AssessedFile dargestellten Datei.
Rückgabewert
Zeichenfolge. die den absoluten Pfad zu der durch AssessedFile dargestellten Datei enthält.
Beurteilung
Die Klasse com.ouncelabs.sdk.assessment.Assessment stellt eine Beurteilung einer
Anwendung oder eines Projekts dar.
Assessment.getFindings
Signatur
public Finding[] getFindings()
Beschreibung
Bietet Zugriff auf alle Ergebnisse der vorliegenden Beurteilung.
Rückgabewert
Ein Array von Ergebnisobjekten für diese Beurteilung.
Assessment.getStats
Signatur
public AssessmentStats getStats()
Beschreibung
Eine vollständige Liste von Statistikdaten, einschließlich: Gesamtzahl der anaylsierten Dateien, Gesamtzahl der gefundenen Sicherheitslücken, Zeitpunkt der Überprüfung und Dichte der Sicherheitslücken.
Rückgabewert
AssessmentStats-Objekt mit den Statistikdaten dieser Beurteilung.
Assessment.getAssessments
Signatur
public Assessment[] getAssessments()
Kapitel 4. AppScan Source-Data Access-API
69
Beschreibung
Gibt die untergeordneten Elemente der Assessment-Objekte dieser Beurteilung wieder. Da Projektbeurteilungen keine untergeordneten Elemente haben, werden untergeordnete Beurteilungsobjekte nur bei Anwendungsbeurteilungen wiedergegeben.
Rückgabewert
v Bei Anwendungsbeurteilungen wird ein Array von Assessment-Objekten wiedergegeben, ein Objekt für jedes überprüfte Projekt in der Anwendung.
v Bei Projektbeurteilungen wird ein leeres Array wiedergegeben.
Löst aus
OunceException, wenn die Data Access-API die Beurteilungen nicht abrufen kann.
Assessment.getFiles
Signatur
public AssessedFile[] getFiles()
Beschreibung
Bietet Zugriff auf jede Datei, die Teil dieser Beurteilung war.
Rückgabewert
Ein Array von AssessedFile-Objekten. Dabei stellt jedes Objekt eine Datei dar, die
Teil der Beurteilung war.
Löst aus
OunceException, wenn die Data Access-API die beurteilten Dateien nicht abrufen
kann.
Assessment.getFileByPath
Signatur
public AssessedFile getFileByPath(filePath)
Beschreibung
Bietet Zugriff auf eine beurteilte Datei nach dem Pfad.
Rückgabewert
Das AssessmentFile-Objekt, das einem angegebenen Dateipfad entspricht, oder
Null, wenn der angegebene Dateipfad nicht mit einer beurteilten Datei übereinstimmt.
Löst aus
OunceException, wenn die Data Access-API die beurteilten Dateien nicht abrufen
kann.
70
IBM Security AppScan Source Utilities: Benutzerhandbuch
Assessment.getAssesseeName
Signatur
public String getAssesseeName()
Beschreibung
Zeigt den Namen der Anwendung oder des Projekts an, von dem diese Beurteilung erstellt wurde.
Rückgabewert
Name einer Anwendung oder eines Projekts.
AssessmentDiff
Die Klasse com.ouncelabs.sdk.assessment.AssessmentDiff enthält den Unterschied
zwischen zwei Beurteilungen, gibt also das Delta zwischen zwei Beurteilungen an.
AssessmentDiff.getCommonFindings
Signatur
public Finding[] getCommonFindings()
Beschreibung
Ruft die Ergebnisse ab, die in beiden Beurteilungen vorhanden sind.
AssessmentDiff.getLostFindings
Signatur
public Finding[] getLostFindings()
Beschreibung
Ruft die Ergebnisse ab, die in der ersten, nicht aber in der zweiten Beurteilung vorhanden waren.
AssessmentDiff.getNewFindings
Signatur
public Finding[] getNewFindings()
Beschreibung
Ruft die Ergebnisse ab, die in der zweiten, nicht aber in der ersten Beurteilung vorhanden waren.
AssessmentFilter
Verwenden Sie die Klasse com.ouncelabs.sdk.assessment.AssessmentFilter, um
Filterbedingungen für den Abruf veröffentlichter Beurteilungen anzugeben.
AssessmentFilter.AssessmentFilter
Signatur
public AssessmentFilter(int maxResults)
Kapitel 4. AppScan Source-Data Access-API
71
Beschreibung
Konstruktorfunktion, die nur die maximale Anzahl der veröffentlichten Beurteilungen, die abgerufen werden sollen, angibt. Sie können zusätzliche Filteroptionen angeben, indem Sie die festgelegten Methoden in der Klasse aufrufen (zum Beispiel
setUserName(), um nach veröffentlichten Benutzern zu filtern).
Parameter
v maxResults: Die maximale Anzahl der zurückgegebenen Ergebnisse.
AssessmentFilter.AssessmentFilter
Signatur
public AssessmentFilter(String appName,
String userName,
Double dateProximityDuration,
int DateProximityUnit,
Long dateRangeStart, Long dateRangeEnd,
int maxResults)
Beschreibung
Konstruktorfunktion, die alle Kriterienoptionen als Argumente nimmt.
Parameter
v appName: Der Anwendungsname. (Null, wenn nicht von appName gefiltert.)
v userName: Der Benutzer, der die Anwendung veröffentlicht hat. (Null, wenn
nicht nach Benutzername gefiltert wurde.)
v dateProximityDuration: Wenn paarweise verbunden mit dateProximityUnit, die
Anzahl der zu filternden Einheiten (Tage, Wochen usw.) beginnend mit dem aktuellen Datum. (Null, wenn nicht nach Datumsnähe gefiltert wurde.)
v dateProximityUnit: Wenn paarweise verbunden mit dateProximityDuration, die
Einheit, wie Tage, Wochen usw., nach der gezählt wird. Erforderlich, wenn
dateProximityDuration angegeben wird. Weitere Informationen zu gültigen Einheiten finden Sie in „DateProximityUnit.value” auf Seite 78.
v dateRangeStart: Der Start eines Datumsbereichs. (Null, wenn nicht nach Datumsbereich gefiltert wird.)
v dateRangeEnd: Das Ende des Datumsbereichs (Null, wenn nicht nach Datumsbereich gefiltert wird.)
v maxResults: Die maximale Anzahl der zurückgegebenen Ergebnisse.
AssessmentResults
Die Klasse com.ouncelabs.sdk.assessment.AssessmentResults stellt die gesamte
Beurteilung dar.
AssessmentResults.getFindings
Signatur
public Finding[] getFindings()
Beschreibung
Bietet Zugriff auf alle Ergebnisse der Klasse AssessmentResults.
72
IBM Security AppScan Source Utilities: Benutzerhandbuch
Rückgabewert
Ein Array von Ergebnisobjekten für diese Beurteilung.
Löst aus
OunceException, wenn die Data Access-API die Ergebnisse nicht abrufen kann.
AssessmentResults.getAssessments
Signatur
public Assessment[] getAssessments()
Beschreibung
Bietet Zugriff auf die Beurteilungsdaten jeder Anwendung, die als Teil der Klasse
AssessmentResults beurteilt wurde.
Rückgabewert
Ein Array von Beurteilungsobjekten, jeweils eines für jede Anwendung, die Teil der
Klasse AssessmentResults war.
Löst aus
OunceException, wenn die Data Access-API die Beurteilungen nicht abrufen kann.
AssessmentResults.getStats
Signatur
public AssessmentStats getStats()
Beschreibung
Bietet Zugriff auf zusammengefasste Statistikdaten für diese Beurteilung, wie zum
Beispiel die Gesamtzahl der beurteilten Dateien, Gesamtzahl der Zeilen und so
weiter.
Rückgabewert
AssessmentStats-Objekt mit den Statistikdaten dieser Beurteilung.
Löst aus
OunceException, wenn die Data Access-API die Beurteilungsstatistikdaten nicht abrufen kann.
AssessmentResults.getAssessmentForApplication
Signatur
public Assessment[] getAssessmentForApplication(String applicationName)
Beschreibung
Bietet Zugriff auf die Beurteilungsdaten der angegebenen Anwendung.
Kapitel 4. AppScan Source-Data Access-API
73
Parameter
applicationName: Der Anwendungsname.
Rückgabewert
Ein Array von Beurteilungsobjekten, jeweils eines für jede Anwendung, die dem
angegebenen Namen entspricht.
Löst aus
OunceException, wenn die Data Access-API die Beurteilungen nicht abrufen kann.
Hinweis zur Kompatibilität
Diese Methode ist nur gültig für Beurteilungen, die mit AppScan Source (Ounce)
ab Version 6.0 ausgeführt wurden. Wird sie für Beurteilungen aufgerufen, die mit
einer früheren Version von AppScan Source erstellt wurden, wird stets ein leeres
Array zurückgegeben.
AssessmentResults.getAssessmentForProject
Signatur
public Assessment[]
getAssessmentForProject(String projectName, String applicationName)
Beschreibung
Bietet Zugriff auf die Beurteilungsdaten für das angegebene Projekt in der angegebenen Anwendung.
Parameter
projectName: Der Projektname.
applicationName: Der Name der Anwendung, in der sich das Projekt befindet.
Rückgabewert
Ein Array von Beurteilungsobjekten, jeweils eines für jedes Projekt, das dem angegebenen Namen entspricht.
Löst aus
OunceException, wenn die Data Access-API die Beurteilungen nicht abrufen kann.
Hinweis zur Kompatibilität
Diese Methode ist nur gültig für Beurteilungen, die mit AppScan Source (bisher
unter der Bezeichnung 'Ounce' bekannt) ab Version 6.0 ausgeführt wurden. Wird
sie für Beurteilungen aufgerufen, die mit einer früheren Version von AppScan
Source erstellt wurden, wird stets ein leeres Array zurückgegeben.
74
IBM Security AppScan Source Utilities: Benutzerhandbuch
AssessmentResults.getName
Signatur
public String getName()
Beschreibung
Gibt den Namen der AssessmentResults zurück.
Rückgabewert
Zeichenfolge, die den Namen der AssessmentResults enthält.
AssessmentResults.getMessages
Signatur
public Message[] getMessages()
Beschreibung
Bietet Zugriff auf alle Statusnachrichten, die bei Ausführung der Beurteilung in
AppScan Source for Analysis in der Konsole angezeigt wurden.
Rückgabewert
Ein Array von Nachrichtenobjekten.
Löst aus
OunceException, wenn die Data Access-API die Nachrichten nicht abrufen kann.
Call
Die Klasse com.ouncelabs.sdk.assessment.Call stellt einen Knoten in einem Trace
von AppScan Source-Trace dar.
Call.getCalls
Signatur
public Call[] getCalls()
Beschreibung
Bietet Zugriff auf die Aufrufe, die im Kontext dieses Aufrufs erfolgt sind.
Rückgabewert
Ein Array von Aufrufobjekten in der Reihenfolge, in der sie aufgerufen wurden.
Löst aus
OunceException, wenn die Data Access-API die Aufrufe nicht abrufen kann.
Call.getFilename
Signatur
public String getFilename()
Kapitel 4. AppScan Source-Data Access-API
75
Beschreibung
Bietet Zugriff auf den Dateinamen, in dem dieser Aufruf erfolgt ist.
Rückgabewert
Der Dateiname dieses Aufrufs.
Call.getLineNumber
Signatur
public int getLineNumber()
Beschreibung
Bietet Zugriff auf die Zeilennummer, bei der der Aufruf erfolgte.
Rückgabewert
Die Zeilennummer dieses Aufrufs.
Call.getColumnNumber
Signatur
public int getColumnNumber()
Beschreibung
Dieser Aufruf bietet Zugriff auf die Spaltennummer, bei der der Aufruf erfolgte.
Rückgabewert
Die Spaltennummer, bei der der Aufruf erfolgte.
Call.getSignature
Signatur
public String getSignature()
Beschreibung
Bietet Zugriff auf die Signatur der API, die aufgerufen wurde.
Rückgabewert
Die Signatur dieses Aufrufs.
Call.getSrcContext
Signatur
public String getSrcContext()
Beschreibung
Bietet Zugriff auf den Quellenkontext dieses Aufrufs.
76
IBM Security AppScan Source Utilities: Benutzerhandbuch
Rückgabewert
Der Quellenkontext dieses Aufrufs.
Call.getMethodName
Signatur
public String getMethodName()
Beschreibung
Bietet Zugriff auf den Methodennamen, der aufgerufen wurde.
Rückgabewert
Der Methodenname dieses Aufrufs.
Call.getClassName
Signatur
public String getClassName()
Beschreibung
Bietet Zugriff auf den Klassennamen, zu dem die aufgerufene Methode gehört.
Rückgabewert
Der Klassenname dieser aufgerufenen Methode.
Call.getTraceType
Signatur
public TraceType getTraceType()
Beschreibung
Bietet Zugriff auf den Tracetyp dieses Aufrufs. Der Tracetyp kann zum Beispiel angeben, ob der Aufruf eine Quelle oder ein Sink ist.
Rückgabewert
TraceType-Objekt, das den Tracetyp des Aufrufs darstellt.
ClassificationType
Die Klasse com.ouncelabs.sdk.assessment.ClassificationType stellt die Klassifizierung eines Ergebnisses dar.
Statische Elemente
v
v
v
v
ClassificationType.Vulnerability
ClassificationType.Type1
ClassificationType.Type2
ClassificationType.Unknown
Kapitel 4. AppScan Source-Data Access-API
77
ClassificationType.value
Signatur
public int value()
Beschreibung
Bietet Zugriff auf den Wert dieses ClassificationType-Objekts. Der zurückgegebene Wert entspricht einem der Werte der statischen Elemente.
Rückgabewert
Der Klassifizierungswert für dieses ClassificationType-Objekt.
DateProximityUnit
Wenn com.ouncelabs.sdk.assessment.DateProximityUnit mit
dateProximityDuration paarweise verbunden wird, bezeichnet dies die Einheit,
nach der gezählt wird (also etwa Tage, Wochen usw.). Erforderlich, wenn
dateProximityDuration angegeben ist. Gültige Einheiten sind in diesem Abschnitt
beschrieben.
Statische Elemente
v DateProximityUnit.Hour
v DateProximityUnit.Day
v DateProximityUnit.Week
v DateProximityUnit.Month
v DateProximityUnit.Year
DateProximityUnit.value
Signatur
public EnumType value()
Beschreibung
Bietet Zugriff auf den Wert dieses DateProximityUnit-Objekts. Der zurückgegebene
Wert entspricht einem der Werte der statischen Elemente.
Rückgabewert
Der Datumswert für dieses DateProximityUnit-Objekt.
Factory
com.ouncelabs.sdk.Factory stellt Methoden für die Initialisierung, die Anmeldung
und das Öffnen von Beurteilungen bereit. Diese Klasse ist der Eingangspunkt in
die Data Access-API.
Factory.init
Signatur
public void init(String installDir, boolean acceptInvalidSSLCerts)
78
IBM Security AppScan Source Utilities: Benutzerhandbuch
Beschreibung
Initialisiert die Data Access-API. Sie müssen Factory.init aufrufen, bevor Sie eine
andere Methode aufrufen.
Parameter
v installDir: Pfad zum AppScan Source-Installationsverzeichnis (siehe
„Standardinstallationsverzeichnis” auf Seite 143).
v acceptInvalidSSLCerts: Setzen Sie den booleschen Wert auf 'true', wenn Sie ungültige SSL-Zertifikate akzeptieren wollen (für SSL-Zertifikate wird keine Prüfung erforderlich sein).
Löst aus
OunceException, wenn die Initialisierung fehlschlägt. Tritt im Allgemeinen nur auf,
wenn Sie das falsche Verzeichnis angeben.
Factory.shutdown
Signatur
public void shutdown()
Beschreibung
Beendet die Data Access-API. Wenn Factory.init aufgerufen wird, müssen Sie
Factory.shutdown aufrufen, damit die Data Access-API ordnungsgemäß geschlossen wird. Wird der Aufruf versäumt, dann wird OunceScanner.exe möglicherweise
weiter als bösartiger Prozess ausgeführt.
Factory.clearCache
Signatur
public void clearCache()
Beschreibung
Dieser Aufruf löscht den Cache für die Data Access-API. Er sollte regelmäßig verwendet werden, wenn die Verarbeitung zahlreicher Ergebnisse zu einer übermäßigen Speicherbelegung führt.
Factory.login
Signatur
public void login(String ’Benutzername’, String ’Kennwort’, String ’Hostname’ [int :’Port’])
Beschreibung
Meldet sich beim AppScan Enterprise Server an, der an der angegebenen URL oder
auf dem durch Namen angegebenen Host ausgeführt wird. Zum Publizieren von
Beurteilungen in der AppScan Source-Datenbank müssen Sie sich anmelden.
Parameter
v Benutzername: Der Benutzername des Benutzers, der sich anmeldet.
v Kennwort: Das Kennwort des Benutzers, der sich anmeldet.
Kapitel 4. AppScan Source-Data Access-API
79
v Hostname: Die URL oder der Hostname des AppScan Enterprise Servers, an dem
Sie sich anmelden möchten. Hostname kann entweder eine IP-Adresse oder ein
Domänenname sein.
Sofern erforderlich, können Sie den AppScan Enterprise Server-Port durch Anhängen von :<Port> angeben. Beispiel: public void login("hwall", "shhh2008", "MyHost:2880").
Löst aus
OunceException, wenn die Anmeldung fehlschlägt.
Factory.openAssessment
Signatur
public AssessmentResults openAssessment(String ’Pfadname’)
Beschreibung
Öffnet die über den Pfadnamen angegebene Beurteilung.
Parameter
Pfadname: Pfadname zu einer Beurteilungsdatei.
Rückgabewert
Das AssessmentResults-Objekt, das die überPfadname angegebene Beurteilung darstellt.
Löst aus
v FileNotFoundException, wenn der angegebene Dateiname nicht vorhanden ist
oder nicht geöffnet werden kann.
v OunceException, wenn die Data Access-API die Beurteilungsdatei nicht laden
kann.
Factory.getPublishedAssessments
Signatur
public AssessmentResults[] getPublishedAssessments(AssessmentFilter filter)
Beschreibung
Bietet Zugriff auf veröffentlichte Beurteilungen. Nimmt ein AssessmentFilter-Objekt entgegen, mit dem Sie den Satz der abzurufenden veröffentlichten Beurteilungen angeben können.
Parameter
filter: Ein AssessmentFilter-Objekt, das den Satz abzurufender veröffentlichter
Beurteilungen angibt.
Rückgabewert
Ein Array mit AssessmentResults-Objekten, die mit dem angegebenen Filter übereinstimmen.
80
IBM Security AppScan Source Utilities: Benutzerhandbuch
Löst aus
OunceException, wenn die Data Access-API die Beurteilungsergebnisse nicht abrufen kann.
Factory.diffAssessments
Signatur
public AssessmentDiff diffAssessments
(AssessmentResults result1, AssessmentResults result2)
Beschreibung
Ermittelt den Unterschied zwischen zwei Beurteilungsergebnissen.
Löst aus
OunceException.
Finding
Die Klasse com.ouncelabs.sdk.assessment.Finding stellt ein einzelnes Ergebnis in
einer Beurteilung dar. Sie bietet Zugriff auf alle zu einem Ergebnis gehörenden Daten, z. B. Klassifizierung und Schweregrad.
Finding.getFilename
Signatur
public String getFilename()
Beschreibung
Bietet Zugriff auf den Dateinamen, in dem dieses Ergebnis gefunden wurde.
Rückgabewert
Eine Zeichenfolge, die den absoluten Pfad zu der Datei enthält, in der dieses Ergebnis gefunden wurde.
Finding.getLineNumber
Signatur
public int getLineNumber()
Beschreibung
Bietet Zugriff auf die Zeilennummer, in der das Ergebnis gefunden wurde.
Rückgabewert
Zeilennummer für dieses Ergebnis.
Finding.getApiName
Signatur
public String getApiName()
Kapitel 4. AppScan Source-Data Access-API
81
Beschreibung
Bietet Zugriff auf den Namen des API für dieses Ergebnis.
Rückgabewert
API-Name für dieses Ergebnis.
Finding.getCallerName
Signatur
public String getCallerName()
Beschreibung
Bietet Zugriff auf die Signatur der Methode, die den Aufruf des API enthielt, den
dieses Ergebnis darstellt.
Rückgabewert
Die Signatur des Aufrufenden.
Finding.getClassification
Signatur
public ClassificationType getClassification()
Beschreibung
Bietet Zugriff auf die aktuelle Klassifizierung des Ergebnisses.
Rückgabewert
ClassificationType-Objekt, das die Klassifizierung des Ergebnisses darstellt.
Finding.getSeverity
Signatur
public SeverityType getSeverity()
Beschreibung
Ruft den aktuellen Wert des Schweregrades im Ergebnis ab.
Rückgabewert
Das SeverityType-Objekt, das den Schweregrad des Ergebnisses darstellt.
SeverityType wird unter „SeverityType.value” auf Seite 88 beschrieben.
Finding.getVulnerabilityType
Signatur
public String getVulnerabilityType()
82
IBM Security AppScan Source Utilities: Benutzerhandbuch
Beschreibung
Bietet Zugriff auf den aktuellen Sicherheitslückentyp des Ergebnisses.
Rückgabewert
Sicherheitslückentyp für dieses Ergebnis. Sicherheitslückentypen wie z. B. Pufferüberlauf oder SQL-Injection sind in der AppScan Source-Sicherheits-Wissensbasis beschrieben.
Finding.getOriginalClassification
Signatur
public ClassificationType getOriginalClassification()
Beschreibung
Bietet Zugriff auf die ursprüngliche Klassifizierung des Ergebnisses. Wenn das Ergebnis nicht geändert wurde, ist getOriginal dasselbe wie getClassification.
Rückgabewert
ClassificationType-Objekt, das die ursprüngliche Klassifizierung eines Ergebnisses darstellt, dessen Klassifizierung geändert wurde.
Finding.getOriginalSeverity
Signatur
public SeverityType getOriginalSeverity()
Beschreibung
Ruft den ursprünglichen Wert des Schweregrades im Ergebnis ab. Wenn das Ergebnis nicht geändert wurde, ist getOriginalSeverity dasselbe wie getSeverity.
Rückgabewert
Das SeverityType-Objekt, das den ursprünglichen Schweregrad eines Ergebnisses
darstellt, dessen Schweregrad geändert wurde.
Finding.getOriginalVulnerabilityType
Signatur
public String getOriginalVulnerabilityType()
Beschreibung
Bietet Zugriff auf den ursprünglichen Sicherheitslückentyp des Ergebnisses. Wenn
das Ergebnis nicht geändert wurde, ist getOriginalVulnerabilityType dasselbe wie
getVulnerability.
Rückgabewert
Ein VulnerablilityType-Objekt, das den ursprünglichen Sicherheitslückentyp eines
Ergebnisses darstellt, dessen Sicherheitslückentyp geändert wurde.
Kapitel 4. AppScan Source-Data Access-API
83
Finding.getModifiedClassification
Signatur
public ClassificationType getModifiedClassification()
Beschreibung
Bietet Zugriff auf die geänderte Klassifizierung des Ergebnisses.
Rückgabewert
ClassificationType-Objekt, das die Klassifizierung eines Ergebnisses darstellt, dessen Klassifizierung geändert wurde. ('NULL' bei fehlender Übereinstimmung.)
Finding.getModifiedSeverity
Signatur
public SeverityType getModifiedSeverity()
Beschreibung
Ruft den geänderten Wert des Schweregrades ab. Ist dasselbe wie getSeverity(),
falls geändert.
Rückgabewert
Das SeverityType-Objekt, das den Schweregrad eines Ergebnisses darstellt, dessen
Schweregrad geändert wurde. ('NULL' bei fehlender Übereinstimmung.)
Finding.getModifiedVulnerabilityType
Signatur
public String getModifiedVulnerabilityType()
Beschreibung
Bietet Zugriff auf den geänderten Sicherheitslückentyp des Ergebnisses.
Rückgabewert
Ein VulnerablilityType-Objekt, das den Sicherheitslückentyp eines Ergebnisses
darstellt, dessen Sicherheitslückentyp geändert wurde. ('NULL' bei fehlender Übereinstimmung.)
Finding.getSrcContext
Signatur
public String getSrcContext()
Beschreibung
Bietet Zugriff auf den Quellenkontext für dieses Ergebnis.
Rückgabewert
Quellenkontext für dieses Ergebnis.
84
IBM Security AppScan Source Utilities: Benutzerhandbuch
Finding.getDefectSubmissionUser
Signatur
public String getDefectSubmissionUser()
Beschreibung
Bietet Zugriff auf den Namen des Benutzers, der dieses Ergebnis zuletzt an ein externes Fehlererfassungssystem übermittelt hat. Beachten Sie, dass es sich hier um
den Benutzernamen auf dem Fehlererfassungssystem handelt; dieser kann anders
lauten als der AppScan Source-Benutzername.
Rückgabewert
Der Benutzer der letzten Übergabe dieses Ergebnisses an ein Fehlererfassungssystem.
Finding.getDefectSubmissionDate
Signatur
public String getDefectSubmissionDate()
Beschreibung
Bietet Zugriff auf die Zeichenfolge des Datums, an dem dieses Ergebnis zuletzt an
ein externes Fehlererfassungssystem übermittelt wurde.
Rückgabewert
Die Übergabedatumszeichenfolge der letzten Übergabe dieses Ergebnisses an ein
Fehlererfassungssystem.
Finding.getDefectInfo
Signatur
public String getDefectInfo()
Beschreibung
Bietet Zugriff auf die externe Fehlererfassungssystem-ID, unter der dieses Ergebnis
zuletzt an ein externes Fehlererfassungssystem übermittelt wurde.
Rückgabewert
Eine Zeichenfolge mit Fehler-IDs, die zu diesem Ergebnis gehören.
Finding.getProperties
Signatur
public String[] getProperties()
Beschreibung
Dieser Aufruf bietet Zugriff auf die zu diesem Ergebnis gehörenden Eigenschaften.
Diese Eigenschaften bieten Informationen zum Sicherheitslückentyp und zum API
dieses Ergebnisses.
Kapitel 4. AppScan Source-Data Access-API
85
Rückgabewert
Array mit Eigenschaften:
v Vulnerability.’Wert’: In den Ergebnissichten gemeldeter Sicherheitslückentyp,
z. B.:
Vulnerability.BufferOverflow
Vulnerability.Injection.SQL
v Mechanism.’Wert’: API-Sicherheitsmechanismus; wird zur Definition angepasster
Berichtskategorien verwendet, z. B.:
Mechanism.AccessControl
Mechanism.Cryptography
v Technology.’Wert’: API-Technologie; wird zur Definition angepasster Berichtskategorien verwendet, z. B.:
Technology.Communications.HTTP
Technology.Database
v Attribute.’Wert’: API-Methodentag, z. B.:
Attribute.Deprecated
Attribute.Modifier.Protected
Ausführliche Informationen zu Eigenschaftswerten entnehmen Sie der AppScan
Source-Sicherheits-Wissensbasis.
Löst aus
OunceException, wenn die Data Access-API die Eigenschaften nicht abrufen kann.
Finding.isExcluded
Signatur
public boolean isExcluded()
Beschreibung
Gibt an, ob dieses Ergebnis aus der Beurteilung ausgeschlossen wird. Ausgeschlossene Ergebnisse tragen nicht zu Statistikdaten für die Beurteilung bei.
Rückgabewert
Falls ausgeschlossen, true, falls nicht ausgeschlossen, false.
Finding.getTrace
Signatur
public Trace getTrace()
Beschreibung
Bietet Zugriff auf den AppScan Source-Trace, der diesem Ergebnis zugeordnet ist
(sofern vorhanden).
Rückgabewert
Traceobjekt für das Ergebnis, sofern vorhanden; andernfalls 'NULL'.
86
IBM Security AppScan Source Utilities: Benutzerhandbuch
Löst aus
OunceException, wenn die Data Access-API den Trace nicht abrufen kann.
Finding.getNotes
Signatur
public String getNotes()
Beschreibung
Bietet Zugriff auf die Notizen zu einem Ergebnis.
Rückgabewert
Vorhandene Notizen für das Ergebnis; 'NULL', falls keine Notizen vorhanden sind.
Löst aus
OunceException, wenn die Data Access-API die Notizen nicht abrufen kann.
Trace
Die Klasse com.ouncelabs.sdk.assessment.Trace stellt den AppScan Source-Trace
für ein Ergebnis dar.
Trace.getCalls
Signatur
public Call[] getCalls()
Beschreibung
Bietet Zugriff auf den Rootaufruf des AppScan Source-Trace.
Rückgabewert
Ein Array mit Call-Objekten. Enthält gegenwärtig immer ein einzelnes Objekt.
Löst aus
OunceException, wenn die Data Access-API die Aufrufe nicht abrufen kann.
SeverityType
Die Klasse com.ouncelabs.sdk.assessment.SeverityType stellt den Schweregrad eines Ergebnisses dar.
Statische Elemente
Schweregradstypen sind:
v SeverityType.High
v SeverityType.Medium
v SeverityType.Low
v SeverityType.Info
v SeverityType.Unknown
Kapitel 4. AppScan Source-Data Access-API
87
SeverityType.value
Signatur
public int value()
Beschreibung
Bietet Zugriff auf den Wert dieses SeverityType-Objekts. Der zurückgegebene Wert
entspricht einem der Werte der statischen Elemente.
Rückgabewert
Der Schweregradswert für dieses SeverityType-Objekt.
OunceException
com.ouncelabs.sdk.assessment.OunceException ist die Ausnahmeklasse, die von
der Data Access-API verwendet wird. Um weitere Informationen zu einer Ausnahme zu erhalten, rufen Sie getMessage() für die Ausnahme auf.
88
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 5. Ounce/Maven-Plug-in
Dieser Abschnitt beschreibt das Ounce/Maven-Plug-in, das das Apache-Erstellungstool Maven zur Integration von AppScan Source in den Maven-Workflow verwendet.
Das Ounce/Maven-Plug-in ermöglicht es Ihnen, in AppScan Source Anwendungsund Projektdateien zu erstellen. Wenn AppScan Source for Automation ebenfalls
installiert ist, verwenden Sie Ounce/Maven zum Ausführen von Quellcodesicherheitsüberprüfungen und zum Generieren umfassender Sicherheitsberichte.
Informationen zu AppScan Source for Automation finden Sie in Kapitel 6,
„AppScan Source for Automation”, auf Seite 95.
Weitere Informationen zur Produktfamilie von AppScan Source finden Sie unter
der Webadresse http://www.ibm.com/software/rational/products/appscan/
source/.
Ounce/Maven installieren
Vorbereitende Schritte
Für die Installation und Ausführung von Ounce/Maven gelten die folgenden Voraussetzungen:
v Apache Maven Version 2.x: Informationen zur Bereitstellung und Verwendung
von Maven-Plug-ins finden Sie auf der Apache Maven Project-Website unter
http://maven.apache.org/.
v AppScan Source for Automation: Weitere Informationen finden Sie in Kapitel 6,
„AppScan Source for Automation”, auf Seite 95.
Informationen zu diesem Vorgang
Nachdem Sie Maven installiert und konfiguriert haben, wird Ounce/Maven beim
ersten Verweis darauf heruntergeladen.
Die Ounce/Maven-Sitedokumentation schließt Beschreibungen der Ounce/MavenZiele, deren Parameter, Beispiele, Hinweise zur Verwendung und ausführliche
Beispiele ein.
Sie finden die Sitedokumentation unter http://mojo.codehaus.org/ounce-mavenplugin.
Vorgehensweise
1. Wenn Maven nicht bereits installiert ist, installieren Sie Maven von http://
maven.apache.org/. Folgen Sie den Anweisungen auf der Maven-Website.
2. Führen Sie einen der folgenden Schritte aus:
v Bearbeiten Sie eine Maven-pom-Datei so, dass sie ein oder mehrere Ounce/
Maven-Zielanfragen einschließt, wie es auch in der Ounce/Maven-Sitedokumentation beschrieben ist.
v Rufen Sie eine oder mehrere Ounce/Maven-Zielanfragen über die Befehlszeile auf, wie es in der Ounce/Maven-Sitedokumentation beschrieben ist.
© Copyright IBM Corp. 2003, 2015
89
Ounce/Maven verwenden
Das Ounce/Maven-Plug-in gestattet Ihnen die Verwendung von Ounce/Maven,
um AppScan Source-Anwendungen und -Projekte zu erstellen, die Anwendungen
zu überprüfen, die resultierenden Beurteilungen zu veröffentlichen und AppScan
Source-Berichte zu generieren. Geben Sie die Ounce/Maven-Zielanfragen und -Parameter wie bei jedem anderen Maven-Plug-in auch an.
Sie können Ounce/Maven-Befehle auf zweierlei Weise aufrufen:
v Mithilfe einer Maven-Datei mit der Endung pom (Builddatei): Mit der pom-Datei
können Sie AppScan Source-Anwendungs- und -Projektdateien als Teil Ihres
Builds erstellen. Nach der Installation von Ounce/Maven können Sie eine Maven-Datei mit der Endung pom modifizieren, um die Zielanfragen
ounce:application und ounce:project-only wie für Ihre AppScan Source-Tasks
erforderlich anzugeben.
v Über die Befehlszeile: Rufen Sie die Zielanfragen ounce:project, ounce:scan und
ounce:report über die Befehlszeile auf, um AppScan Source-Projektdateien zu
erstellen (oder Projektdateiparameter aus der pom-Datei zu überschreiben),
AppScan Source-Scans zu starten, Beurteilungen zu veröffentlichen und AppScan
Source-Berichte zu generieren.
Jede Ounce/Maven-Zielanfrage schließt eine Anzahl Parameter ein.
v Informationen zu Ounce/Maven-Zielanfragen finden Sie in
„Ounce/Maven-Zielanfragen” auf Seite 91.
v Informationen zu den Parametern für die einzelnen Zielanfragen entnehmen Sie
der Ounce/Maven-Sitedokumentation unter http://mojo.codehaus.org/ouncemaven-plugin.
Ounce/Maven-Szenarios
Ounce/Maven ermöglicht Ihnen Folgendes:
v Anwendungs- und Projektdateien in AppScan Source erstellen
v Anwendungen überprüfen und die Ergebnisse (Beurteilungen) in der AppScan
Source-Datenbank publizieren
v Berichte aus Beurteilungsergebnissen erstellen
v AppScan Source-Berichte in das Ziel site integrieren
Der vorliegende Abschnitt stellt diese Tasks kurz dar. Ausführliche Informationen
zu AppScan Source-spezifischen Konzepten und der Sprache finden Sie im
AppScan Source for Analysis-Benutzerhandbuch.
Anwendungs- und Projektdateien erstellen
AppScan Source verwendet wie im Folgenden beschrieben ein Anwendungs- und
Projektmodell zur Verwaltung von Daten:
v Anwendung: Eine Anwendung enthält Konfigurationsdaten und anpassbare Informationen sowie eine Liste der Projekte in dieser Anwendung.
v Projekt: Ein Projekt umfasst eine Gruppe von Dateien (einschließlich des Quellcodes) und zugehörige Informationen (z. B. Konfigurationsdaten). Damit ein Projekt überprüft werden kann, muss es Teil einer Anwendung sein.
90
IBM Security AppScan Source Utilities: Benutzerhandbuch
Die Zielanfrage ounce:application erstellt AppScan Source-Anwendungsdateien
(.paf-Dateien), während die Zielanfragen ounce:project und ounce:project-only
AppScan Source-Projektdateien (.ppf-Dateien) erstellen.
Im AppScan Source for Analysis-Benutzerhandbuch finden Sie Informationen zu weiteren Formaten für Anwendungs- und Projektdateien.
Anwendungen überprüfen
Eine AppScan Source-Überprüfung analysiert den Quellcode auf Sicherheitslücken.
Das Ergebnis eines Scans ist eine Beurteilung in Form einer XML-Datei.
Anmerkung: Ausführliche Informationen zu den Funktionen von AppScan Source
finden Sie im IBM Security AppScan Source for Analysis Benutzerhandbuch.
Verwenden Sie die Zielanfrage ounce:scan in der Befehlszeile, um die Anwendung
und die zugehörigen Projekte zu überprüfen und aus der Beurteilung optional einen Bericht zu generieren.
Nach Abschluss des Scans ermöglicht Ounce/Maven Ihnen Folgendes:
v Beurteilung in der AppScan Source-Datenbank publizieren. Dies macht die Beurteilungsergebnisse anderen Benutzern mit Zugriff auf die Datenbank und den erforderlichen Berechtigungen verfügbar.
v Einen Bericht erstellen.
Berichterstellung
Häufig wird als Ausgabe von AppScan Source ein detaillierter Bericht gewünscht,
der Daten zu den Beurteilungen bereitstellt. Die Zielanfrage ounce:report ermöglicht Ihnen die Erzeugung solcher Berichte aus neuen oder früheren Beurteilungen.
Die Zielanfrage ounce:report kann bei Bedarf eine Anwendung überprüfen und
die Beurteilung dann veröffentlichen oder Berichte dazu erstellen. Anders als
ounce:scan können Sie ounce:report jedoch verwenden, um Berichte für vorhandene Beurteilungen zu erstellen.
Berichte mit dem Siteziel integrieren
Um ounce:report mit dem Siteziel zu integrieren, fügen Sie das Ounce/MavenPlug-in zum Abschnitt 'reporting' der pom-Datei hinzu. Das Siteziel führt
ounce:report aus und die Berichtsausgabe wird Teil der Sitedokumentation für
Ihre Anwendung.
Bei der Integration mit dem Siteziel müssen Sie keine zusätzlichen Parameter angeben. Sie können den Berichtstyp als einen der Werte angeben, die in
„reportType-Werte” auf Seite 93 beschrieben sind. Wenn Sie keinen Berichtstyp angeben, ist der Standardbericht Ergebnisse.
Ounce/Maven-Zielanfragen
Ounce/Maven bietet die folgenden Zielanfragen zur Durchführung von AppScan
Source-Funktionen:
v ounce:application: Generiert eine AppScan Source-Anwendungsdatei, die Verweise auf alle untergeordneten Projekte enthält, wie sie in der pom-Datei definiert
sind. Eine Anwendung ist für das Überprüfen (und somit für die Berichterstellung) erforderlich.
Kapitel 5. Ounce/Maven-Plug-in
91
v ounce:project: Erstellt abhängig von der Anzahl untergeordneter Maven-Projekte eine oder mehrere AppScan Source-Projektdateien. Die Zielanfrage
ounce:project ist für die Ausführung über die Befehlszeile vorgesehen und
schließt den Maven-Build in die Zielanfrage ein.
v ounce:project-only: Erstellt abhängig von der Anzahl untergeordneter MavenProjekte eine oder mehrere AppScan Source-Projektdateien. Die Zielanfrage
ounce:project-only wird bereitgestellt, um die Erstellung von AppScan SourceProjektdateien in den Lebenszyklus des Maven-Builds zu integrieren.
v ounce:scan: Überprüft eine Anwendung. Sie können die Beurteilung optional
veröffentlichen oder einen Bericht erstellen. Führen Sie ounce:scan über die Befehlszeile aus.
v ounce:report: Generiert einen AppScan Source-Bericht. Bei Bedarf führen Sie,
um die Ergebnisse zu aktualisieren, eine Überprüfung aus, bevor Sie den Bericht
erstellen. Führen Sie ounce:report über die Befehlszeile aus.
Anmerkung:
v Um Ihre Anwendungs- und Projektdateien portabel zu machen, erstellen Sie Pfadvariablen und verknüpfen Dateipfade mit ihren Speicherpositionen.
v Beispiele für die Verwendung von Ounce/Maven-Zielanfragen entnehmen Sie
der Ounce/Maven-Sitedokumentation unter http://mojo.codehaus.org/ouncemaven-plugin/.
ounce:application
Beschreibung
Generiert eine AppScan Source-Anwendungsdatei, die Verweise auf alle untergeordneten Projekte enthält, wie sie durch die POM-Datei definiert sind. Eine Anwendung ist für das Überprüfen und die Berichterstellung erforderlich. Während
ounce:application keine AppScan Source-Projektdateien erstellt, können Sie
ounce:project-only ausführen, um das Projekt innerhalb derselben Builddatei zu
erstellen.
ounce:project
Beschreibung
Verwenden Sie ounce:project über die Befehlszeile. Die Zielanfrage ounce:project
erstellt abhängig von der Anzahl untergeordneter Maven-Projekte eine oder mehrere AppScan Source-Projektdateien.
ounce:project verwenden
Wenn Sie die Zielanfrage ounce:project über die Befehlszeile aufrufen, werden alle
erforderlichen Abhängigkeiten automatisch erstellt. Wenn keine Anwendungsdatei
vorhanden ist, wird diese von ounce:project erstellt.
Alle Parameter zu ounce:project sind optional. Der Projektname wird in Maven
durch artifactId bestimmt und Sie können ihn nicht überschreiben.
Führen Sie Maven mit der Zielanfrage ounce:project aus dem Verzeichnis heraus
aus, das die Datei pom.xml der obersten Ebene enthält (oder, wenn nur eine Teilmenge des Builds erforderlich ist, aus einem Unterverzeichnis heraus, das eine untergeordnete Datei pom.xml enthält).
92
IBM Security AppScan Source Utilities: Benutzerhandbuch
ounce:project-only
Beschreibung
Die Zielanfrage ounce:project-only wird aus einer pom-Datei heraus verwendet.
Die Zielanfrage ounce:project-only erstellt abhängig von der Anzahl untergeordneter Maven-Projekte eine oder mehrere AppScan Source-Projektdateien.
ounce:project-only verwenden
Alle Parameter zu ounce:project-only sind optional. Der Projektname wird in Maven durch artifactId bestimmt und kann nicht überschrieben werden.
ounce:scan
Beschreibung
Die Zielanfrage ounce:scan generiert einen Scan einer gegebenen Anwendung, auf
den optional ein Bericht mit den Beurteilungsergebnissen folgt. Führen Sie
ounce:scan über die Befehlszeile aus.
Anmerkung: Die Zielanfrage ounce:scan ist nicht als Teil des Maven-Buildlebenszyklus gedacht.
ounce:scan verwenden
Wenn Sie ounce:scan angeben, können Sie anfordern, dass Ounce/Maven unmittelbar auf die Überprüfung folgend einen Bericht aus der Beurteilung ausführt. In
diesem Fall geben Sie die in „reportType-Werte” und „reportOutputType-Werte”
auf Seite 94 beschriebenen Berichtsparameter an. Wenn Sie reportType angeben,
müssen Sie auch reportOutputType und reportOutputPath angeben.
Anmerkung: Die Zielanfrage ounce:scan erstellt oder aktualisiert bei Bedarf Anwendungs- und Projektdateien.
ounce:report
Beschreibung
Die Zielanfrage ounce:report erstellt einen Bericht aus einer Beurteilung. Wenn Sie
keine vorhandene Beurteilung angeben, führt ounce:report vor dem Erstellen des
Berichts ounce:scan aus. Führen Sie ounce:report über die Befehlszeile aus.
Geben Sie die in „reportType-Werte” und „reportOutputType-Werte” auf Seite 94
beschriebenen Berichtsparameter an. Wenn Sie reportType angeben, müssen Sie
auch reportOutputType und reportOutputPath angeben.
reportType-Werte
v Untersuchungsergebnisbericht:
– Ergebnisse nach Bundle
– Ergebnisse nach API
– Ergebnisse nach Klassifizierung
– Ergebnisse
Kapitel 5. Ounce/Maven-Plug-in
93
– DTS-Aktivität
– Ergebnisse nach Typ
– Ergebnisse nach CWE
– Ergebnisse nach Datei
v AppScan Source-Bericht:
– CWE SANS Top 25 2011
– DISA Application Security and Development STIG V3R9
– OWASP Mobile Top 10
– OWASP Top 10 2013
– PCI Data Security Standard V3.0
– Softwaresicherheitsprofil
v Falls verfügbar, ein angepasster Bericht.
reportOutputType-Werte
v Geben Sie eines der folgenden Formate für diesen Bericht an:
– HTML: Erstellt den Bericht als HTML-Datei und zeigt ihn online an.
– ZIP: Erstellt eine ZIP-Datei, die alle HTML-Berichtskomponenten enthält.
v Bei Berichten im PDF-Format können Sie den Detaillierungsgrad angeben:
– pdf-summary: Enthält Zählungen für jede angepasste Berichtsgruppe.
– pdf-detailed: Enthält Zählungen für jedes API und für jede Sicherheitslückeneigenschaft.
– pdf-comprehensive: Enthält Tabellen mit allen Ergebnissen für jedes API.
– pdf-annotated: Enthält alle Ergebnisse, alle Anmerkungen zu den Ergebnissen
und bestimmte Codefragmente.
– pdf-annotated: Erstellt einen mit Annotationen versehenen Bericht als PDFDatei.
94
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 6. AppScan Source for Automation
Der Automatisierungsserver (ounceautod) ermöglicht Ihnen die Automatisierung
von wichtigen Aspekten des AppScan Source-Workflows und das Integrieren von
Sicherheitsfunktionen in Buildumgebungen während des Softwareentwicklungslebenszyklus (SDLC). Der Automatisierungsserver ermöglicht es Ihnen, Anforderungen zur Überprüfung und Veröffentlichung von Beurteilungen in eine Warteschlange einzureihen und Berichte zur Sicherheit des Anwendungscodes zu generieren.
Über die ausführbare Befehlszeilendatei (ounceauto) des AppScan Source for Automation-Clients übergeben Sie Anforderungen an den Server. Beim Verarbeiten der
Anforderungen läuft der Automatisierungsserver als Client des zugehörigen
AppScan Enterprise Servers und kann eine Verbindung zu nur einem einzigen
AppScan Enterprise Server herstellen. Er überwacht einen TCP-Anschluss (Standard: 13205) nur auf Verbindungen vom lokalen Host.
v Auf Windows-Systemen wird der Automatisierungsserver als der Dienst IBM
Security AppScan Source Automation ausgeführt.
v Auf Linux-Systemen wird er als Dämon ausgeführt:
– Um den Dämon zu stoppen, müssen Sie den folgenden Befehl eingeben:
/etc/init.d/ounceautod stop
– Um den Dämon zu starten, müssen Sie den folgenden Befehl eingeben:
/etc/init.d/ounceautod start
Der Automatisierungsserver verarbeitet Anforderungen als ein angegebener
AppScan Source-Benutzer und übernimmt damit die Berechtigungen dieses Benutzers. Die Benutzer-ID muss über die erforderlichen Berechtigungen entsprechend
den auszuführenden Befehlen verfügen. Beispiel: Wenn die Benutzer-ID den Befehl
PublishAssessment ausführen muss, können der Benutzer-ID Berechtigungen für
das Veröffentlichen und das Registrieren übertragen werden. Sie benötigt jedoch
keine Berechtigung für die Überprüfung (weitere Informationen finden Sie im Abschnitt AppScan Source verwalten im AppScan Source Installations- und Administrationshandbuch). Für das Übergeben einer Anforderung an den Automatisierungsserver werden keine Benutzerberechtigungen benötigt.
Berechtigungsnachweise für Automatisierungsserver über Befehlszeile
angeben
Wenn Sie während des Installationsprozesses keinen Benutzernamen und kein
Kennwort angegeben haben, wie dies im IBM Security AppScan Source Installations- und Administrationshandbuch beschrieben wird, dann müssen Sie den Automatisierungsserver nach der Installation zur Ausführung als AppScan SourceBenutzer konfigurieren.
Informationen zu diesem Vorgang
Wenn der angegebene Benutzer noch nicht existiert, müssen Sie ihn in der Installationsanzeige oder über die Befehlszeile angeben und ihn dann manuell (nach der
Installation) mit AppScan Source for Analysis oder der AppScan Source-Befehlzeilenschnittstelle (CLI) erstellen. Um den neuen Benutzer über die Befehlszeile zu erstellen, verwenden Sie den Befehl „newuser (nu)” auf Seite 39. Wenn Sie den neuen Benutzer erstellen, müssen Sie sicherstellen, dass Sie denselben Benutzernamen
© Copyright IBM Corp. 2003, 2015
95
und dasselbe Kennwort angeben, die auch für die Anmeldung am Automatisierungsserver verwendet werden. Die anderen Einstellungen, z. B. für Berechtigungen, können nach Ihren Wünschen festgelegt werden.
Alle Befehlsargumente, die nachstehend aufgelistet werden, sind obligatorisch.
Vorgehensweise
v Auf Linux-Systemen:
1. Ändern Sie den Wert für LD_LIBRARY_PATH so ab, dass das Verzeichnis
<installationsverzeichnis>/bin (wobei <installationsverzeichnis> die
Position Ihrer AppScan Source-Installation ist) eingeschlossen wird. Beispiel:
export LD_LIBRARY_PATH=/opt/ibm/appscansource/
bin:$LD_LIBRARY_PATH
2. Führen Sie <installationsverzeichnis>/bin/ounceautod mit Argumenten
aus, um einen Benutzernamen und ein Kennwort anzugeben:
/opt/ibm/appscansource/bin/ounceautod -u <benutzername> -p <kennwort> --persist
v Auf Windows-Systemen:
<installationsverzeichnis>\bin\ounceautod.exe -u <benutzername> -p <kennwort> --persist
– <installationsverzeichnis> die Position Ihrer AppScan Source-Installation
ist
– -u <benutzername>: Der Benutzer, mit dem sich der Automatisierungsserver
authentifiziert, wenn er eine Anforderung verarbeitet. Der Benutzer muss in
AppScan Source for Analysis mit den erforderlichen Berechtigungen definiert
sein.
– -p <kennwort>: Das Kennwort des Benutzers. Wenn Sie einen Benutzernamen
angeben, müssen Sie das Kennwort angeben.
– --persist: Speichert die Berechtigungsnachweise für die Anmeldung auf Platte. Es wird eine verschlüsselte Schlüsseldatei mit dem angegebenen Benutzernamen und Kennwort erstellt.
Ergebnisse
Nachdem Sie einen Benutzernamen und ein Kennwort angegeben haben, werden
die Berechtigungsnachweise auf der Platte gespeichert.
Konfigurationsdatei für den Automatisierungsserver
Die ounceautod-Konfigurationsdatei ounceautod.ozsettings gibt die Eigenschaften
für den Automatisierungsserver-Dämon an. Die Datei ounceautod.ozsettings ist in
<datenverzeichnis>\config enthalten (wobei <datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben wird).
Die Datei ounceautod.ozsettings enthält diese Eigenschaften:
96
Eigenschaft
Wert
Beschreibung
ounceautod_max_
concurrent_requests
1 (Standard)
Anzahl der zulässigen gleichzeitigen Anforderungen.
IBM Security AppScan Source Utilities: Benutzerhandbuch
Eigenschaft
Wert
Beschreibung
ounceautod_accept_ssl
true (Standard)
Akzeptiert SSL-Zertifikate
automatisch. Weitere Informationen finden Sie in „SSLZertifikate von AppScan
Enterprise Server” auf Seite
35.
ounceautod_port
13205 (Standard)
Portnummer, über die
ounceautod ausgeführt wird.
Anmerkung: Der Portwert
in dieser Einstellung muss
mit der Porteinstellung in
der Datei
ounceauto.ozsettings unter
<datenverzeichnis>\config
übereinstimmen.
ounceautod_server_hostname
<Hostname>:port
Der Hostname des Computers, auf dem AppScan
Enterprise Server installiert
wurde, und der Port, über
den das Produkt auf dem
Computer ausgeführt wird.
Wenn diese Datei geändert wird, müssen Sie den Service für den Automatisierungsserver erneut starten (siehe Kapitel 6, „AppScan Source for Automation”, auf
Seite 95).
Automatisierungsserver-Protokollierung
Der Automatisierungsserver generiert eine Protokolldatei mit dem Namen ounceautod.log, in der alle Anforderungen, die an den Automatisierungsserver vorgenommen wurden, sowie die zugehörige Antwort protokolliert werden. Protokolleinträge sind in <datenverzeichnis>\logs\ounceautod.log abgelegt (wobei
<datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in
Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143
beschrieben wird).
Der Automatisierungsserver protokolliert für alle Anforderungen folgende Ereignisse:
v Anforderung erhalten
v Anforderung gestartet
v Anforderung fertiggestellt
v Anforderung fehlgeschlagen
Jeder Protokolleintrag enthält:
v Zeitmarke des Protokolleintrags
v Ereignistyp
v Anforderungstyp
v Anforderungs-ID
v Aufrufender, falls angegeben
v Anforderungsspezifische Informationen
Kapitel 6. AppScan Source for Automation
97
ounceauto über die Befehlszeile verwenden
Die Schnittstelle zu AppScan Source for Automation, ounceauto, setzt Befehle an
den Server ab, der durch Befehlszeilenargumente angegeben wurde, gibt ggf. die
Ausgabe aus und kehrt dann zurück. Jeder Anforderung wird eine AnforderungsID zugeordnet und alle Protokolleinträge zur Anforderung enthalten diese Anforderungs-ID zu Identifikationszwecken.
Führen Sie ounceauto wie folgt über die Befehlszeile aus:
ounceauto <Befehlsname> <Befehlsargumente>
Die folgenden ounceauto-Befehle sind vorhanden:
v GenerateReport
v PublishAssessment
v PublishAssessmentASE
v ScanApplication
v Wait
GenerateReport
Beschreibung
Erstellt einen Bericht aus einer Beurteilung.
Syntax
ounceauto GenerateReport
-assessment <Beurteilungspfad>
-type <Berichtstyp>
-output <Ausgabeformat>
-file <Ausgabeposition>
[-caller <Aufrufender>]
[-includeSrcBefore <n>]
[-includeSrcAfter <n>]
v -assessment <Beurteilungspfad>: Pfad zu der Beurteilungsdatei, für die Sie den
Bericht erstellen möchten.
v -type "<report type>": Name des Berichtstyps in Anführungszeichen. Zu den
Berichtstypen gehören Ergebnisberichte, AppScan Source-Berichte und angepasste Berichte.
Die AppScan Source-Berichte können folgende Typen aufweisen:
– Untersuchungsergebnisbericht:
- Ergebnisse nach Bundle
- Ergebnisse nach API
- Ergebnisse nach Klassifizierung
- Ergebnisse
- DTS-Aktivität
- Ergebnisse nach Typ
- Ergebnisse nach CWE
- Ergebnisse nach Datei
– AppScan Source-Bericht:
- CWE SANS Top 25 2011
- DISA Application Security and Development STIG V3R9
98
IBM Security AppScan Source Utilities: Benutzerhandbuch
- OWASP Mobile Top 10
- OWASP Top 10 2013
- PCI Data Security Standard V3.0
- Softwaresicherheitsprofil
– Falls verfügbar, ein angepasster Bericht.
Geben Sie den Berichtstyp in Anführungszeichen exakt genauso ein wie in der
Liste oben. Beispiel:Findings by Classification oder Software Security Profile.
v -output <Ausgabeformat>: Gibt eines der folgenden Formate für diesen Bericht
an:
– HTML: Erstellt den Bericht als HTML-Datei und zeigt ihn online an.
– ZIP: Erstellt eine ZIP-Datei, die alle HTML-Berichtskomponenten enthält.
– Bei Berichten im PDF-Format können Sie den Detaillierungsgrad angeben:
- pdf-summary: Enthält Zählungen für jede angepasste Berichtsgruppe.
- pdf-detailed: Enthält Zählungen für jedes API und für jede Sicherheitslückeneigenschaft.
- pdf-comprehensive: Enthält Tabellen mit allen Ergebnissen für jedes API.
- pdf-annotated: Enthält alle Ergebnisse, alle Anmerkungen zu den Ergebnissen und bestimmte Codefragmente.
- Speicherposition der Ausgabe: Der Pfad, in dem der Bericht geschrieben
wird.
v -file <Speicherposition der Ausgabe>: Gibt Pfad- und Dateinamen für den
Speicherort des Berichts an.
v -caller <Aufrufender>: Optional. Gibt einen Aufrufenden für den Berichterstellungsvorgang an. Der Aufrufende kann der Name eines tatsächlichen Benutzers
sein, doch ist dies nicht erforderlich. Der Name des Aufrufenden wird in die
Protokolldatei ounceauto geschrieben.
v -includeSrcBefore <n>: Optional. Anzahl der Quellcodezeilen, die vor den einzelnen Ergebnissen eingeschlossen werden.
v -includeSrcAfter <n>: Optional. Anzahl der Quellcodezeilen, die nach den einzelnen Ergebnissen eingeschlossen werden.
Rückgabewert
Im Erfolgsfall die Anforderungs-ID; wenn die Anforderungsübergabe nicht erfolgreich war, -1.
Beispiele
v So generieren Sie einen Bericht des Typs 'Findings by API' als HTML-Datei:
ounceauto generatereport -assessment C:\Ounce\Data\Webgoat.ozasmt
-type "Findings by API" -output html
-file C:\reports\Webgoat_Findings.html
v Gehen Sie wie folgt vor, um in AppScan Source einen Bericht des Typs 'OWASP
Top 10 2013' als PDF-Datei zu generieren:
ounceauto generatereport -assessment C:\Ounce\Data\Webgoat.ozasmt
-type "OWASP Top 10 2013" -output pdf-annotated
-file C:\Reports\Webgoat_OWASP.pdf
Kapitel 6. AppScan Source for Automation
99
PublishAssessment
Beschreibung
Veröffentlicht die ausgewählte Beurteilung in der AppScan Source-Datenbank.
Syntax
ounceauto PublishAssessment -file <Beurteilung.ozasmt>
[-caller <Aufrufender>]
v -file <Beurteilungsdatei>: Vollständiger Pfad zu einer Beurteilungsdatei.
v -caller <Aufrufender>: Optional. Gibt einen Aufrufenden für den Berichterstellungsvorgang an. Der Aufrufende kann der Name eines tatsächlichen Benutzers
sein, doch ist dies nicht erforderlich. Der Name des Aufrufenden wird in die
Protokolldatei 'ounceauto' geschrieben.
Rückgabewert
Im Erfolgsfall die Anforderungs-ID; wenn die Anforderungsübergabe nicht erfolgreich war, -1.
Beispiel
So veröffentlichen Sie die Beurteilung WebGoat_Internal:
ounceauto publishassessment -file C:\Ounce\Data\WebGoat_Internal.ozasmt
PublishAssessmentASE
Beschreibung
Veröffentlicht die ausgewählte Beurteilung in AppScan Enterprise Console.
Syntax
ounceauto PublishAssessmentASE -file <Beurteilungsdatei>
[-caller <Aufrufender>] [-folder <Speicherposition>]
[-name <Name der veröffentlichten Beurteilung>]
[-aseapplication <ASE-Anwendung>]
v -file <Beurteilungsdatei>: Erforderlich. Pfad und Dateiname der Beurteilungsdatei.
v -caller <Aufrufender>: Optional. Gibt einen Aufrufenden für den Berichterstellungsvorgang an. Der Aufrufende kann der Name eines tatsächlichen Benutzers
sein, doch ist dies nicht erforderlich. Der Name des Aufrufenden wird in die
Protokolldatei ounceauto geschrieben.
v -folder <Speicherposition>: Optional. Der Enterprise Console-Ordner, in den
veröffentlicht wird. Wenn dieses Argument nicht verwendet wird, wird die Beurteilung in Ihrem Enterprise Console-Standardordner veröffentlicht.
v -name <Name der veröffentlichten Beurteilung>: Optional. Der Name, mit dem
die Beurteilung in Enterprise Console gespeichert wird. Wenn dieses Argument
nicht verwendet wird, wird ein Name anhand der überprüften AppScan SourceAnwendung generiert, um die Beurteilung zu erstellen. (Dieser Name wird als
Präfix zu AppScan Source: hinzugefügt.)
v -aseapplication <ASE-Anwendung>: Optional. Enterprise Console-Anwendung,
der die Beurteilung zugeordnet wird.
100
IBM Security AppScan Source Utilities: Benutzerhandbuch
Rückgabewert
Im Erfolgsfall die Anforderungs-ID; wenn die Anforderungsübergabe nicht erfolgreich war, -1.
Beispiel
So veröffentlichen Sie die Beurteilung WebGoat_Internal:
ounceauto publishassessmentase -file C:\Ounce\Data\WebGoat_Internal.ozasmt
ScanApplication
Beschreibung
Prüft die angegebene Anwendung. Speichern Sie optional die Beurteilung oder generieren Sie einen Beurteilungsbericht.
Syntax
ounceauto ScanApplication
<-application <Anwendungsname>|
-application_file <Anwendungsdatei>>
[-name <Beurteilungsname>]
[-save <Dateiname>]
[-caller <Aufrufender>]
[-publish]
[-report <Berichtstyp> <Ausgabeformat>
<Ausgabeposition>]
[-includeSrcBefore <n>
[-includeSrcAfter <n>]
[-scanconfig <name_der_scankonfiguration>]
v -application <Anwendungsname>: Name der zu prüfenden Anwendung.
v -application_file <Pfad zur AppScan Source-Anwendungsdatei>: Pfad zu einer
AppScan Source-Anwendungsdatei.
v -name <Beurteilungsname>: Optional. Name der Beurteilung.
v -save <Dateiname>: Optional. Speichert die Beurteilungsergebnisse in diese Datei.
v -caller <Aufrufender>: Optional. Gibt einen Aufrufenden für den Berichterstellungsvorgang an. Der Aufrufende kann der Name eines tatsächlichen Benutzers
sein, doch ist dies nicht erforderlich. Der Name des Aufrufenden wird in die
Protokolldatei 'ounceauto' geschrieben.
v -publish: Optional. Veröffentlicht die Beurteilung nach der Prüfung.
v -report: Optional. Generiert einen Bericht nach der Prüfung.
v <Berichtstyp>: Name des Berichtstyps. Zu den Berichtstypen gehören Ergebnisberichte, AppScan Source-Berichte und angepasste Berichte. Weitere Informationen zu den Optionen finden Sie unter „GenerateReport” auf Seite 98.
v <Ausgabeformat>: Gibt das Berichtsformat an. Weitere Informationen zu den Optionen finden Sie unter „GenerateReport” auf Seite 98.
v <Ausgabeposition>: Speicherposition, an die der Bericht geschrieben wird.
v -includeSrcBefore <n>: Optional. Anzahl der Quellcodezeilen, die vor den einzelnen Ergebnissen eingeschlossen werden.
v -includeSrcAfter <n>: Optional. Anzahl der Quellcodezeilen, die nach den einzelnen Ergebnissen eingeschlossen werden.
Kapitel 6. AppScan Source for Automation
101
v -scanconfig <name_der_scankonfiguration>: Optional. Geben Sie den Namen einer Scankonfiguration an, die für die Überprüfung verwendet werden soll. Wenn
keine Scankonfiguration angegeben wird, verwendet das System für die Überprüfung die Standardscankonfiguration.
Rückgabewert
Im Erfolgsfall die Anforderungs-ID; wenn die Anforderungsübergabe nicht erfolgreich war, -1.
Beispiele
v So prüfen Sie mit John Smith als Aufrufendem die WebGoat-Anwendung, veröffentlichen sie und versehen das Protokoll mit Anmerkungen:
ounceauto scanapplication -application_file C:\WebGoat\WebGoat.paf
-publish -caller JohnSmith
v So prüfen Sie die WebGoat-Anwendung und erstellen einen Ergebnisbericht im
Verzeichnis C:\WebGoat:
ounceauto scanapplication -application WebGoat
-report Findings html C:\WebGoat\MyReport.html
Wait
Beschreibung
Blockiert, bis die angegebene Anforderung fertiggestellt ist.
Syntax
ounceauto wait -requestid <Anforderungs-ID>
-requestid <Anforderungs-ID>: Die ID der Anforderung, auf die gewartet werden
soll.
Rückgabewert
Wenn die Anforderung, die <Anforderungs-ID> entspricht, erfolgreich beendet
wird, lautet der Rückgabewert 0, andernfalls 1.
Beispiel
Das folgende Windows-Beispiel zeigt die Überprüfung einer Anwendungsdatei
und wartet dann, bis die Überprüfung beendet ist.
ounceauto scanapplication -application_file WG0.paf
ounceauto wait -requestid %errorlevel%
Unter Linux lautet die Entsprechung für dieses Beispiel:
ounceauto scanapplication -application_file WG0.paf
ounceauto wait -requestid $?
102
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 7. Framework for Frameworks-APIs handhaben
AppScan Source bietet eine Gruppe von Java-APIs, die das Hinzufügen von Unterstützung für Frameworks ermöglichen, die in Ihren Anwendungen verwendet werden. Die in diesen APIs bereitgestellten Klassen und Methoden ermöglichen Ihnen
die Berücksichtigung von Frameworks, für die integrierte Unterstützung nicht bereitsteht.
Anmerkung: AppScan Source umfasst integrierte Unterstützung für die folgenden
Frameworks:
v Apache Struts 1 und 2
v Spring MVC 2.5 und 3
v ASP .NET MVC (nur Windows)
v Enterprise JavaBeans (EJB) 2
v ASP .NET (nur Windows)
v J2EE
v
v
v
v
JavaServer Faces (JSF) 2
.NET 4.5 (nur für Windows)
nJax - RS (V1.0 und V1.1)
Jax - WS (V2.2)
Moderne Frameworks haben es mit einer großen Menge an Informationen zu tun,
die das Laufzeitverhalten von Anwendungen aus normalem Quellcode in Konfigurationsdateien und Anmerkungen betreffen. In der Vergangenheit führte diese oft
zu Lücken bei der statischen Analyse. Produktteams konnten zwar angepasste Regeln für einzelne Anwendungen erstellen, es war jedoch kein Framework vorhanden, das flexibel die Aktivitäten dieser Frameworks auf eine automatisierte Art
und Weise beschreiben konnte.
Durch die Verwendung der Framework for Frameworks-APIs können Sie schnell
und einfach die Unterstützung neuer Frameworks direkt in AppScan Source realisieren. Dies wird erreicht, indem die den Frameworks zugeordneten Konfigurationsinformationen verarbeitet werden und indem diese Daten über die zugeordneten APIs wieder zurück an AppScan Source geliefert werden.
Die Framework for Frameworks-APIs stehen nach der Installation der folgenden
Produkte zur Verfügung:
v AppScan Source for Automation
v AppScan Source for Analysis
v AppScan Source for Development
Die APIs werden in <installationsverzeichnis>\walalib (wobei
<installationsverzeichnis> die Position Ihrer AppScan Source-Installation ist) installiert.
Ein Beispielprojektarchiv wird in <datenverzeichnis>\samples\F4FEjbExample.zip
installiert (wobei <datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und
Benutzerdatendateien”, auf Seite 143 beschrieben wird).
© Copyright IBM Corp. 2003, 2015
103
Anmerkung: Traceknoten mit Klassennamen, die mit Appscan.Synthetic,
Appscan.Synthetic.Validator und AppScan.Synthetic.Replacement beginnen, entsprechen den Methoden, die von AppScan Source synthetisch erstellt werden.
v Die AppScan.Synthetic-Methoden werden verwendet, um Traces in einem Anwendungscode, der Frameworks verwendet, zusammenzufügen.
v Die AppScan.Synthetic.Validator-Methode modelliert die zugrunde liegende
Überprüfung, die von der Frameworklaufzeit durchgeführt wird. Sie können
eine Validatormethode auswählen und Sie bei Bedarf als Validator markieren.
v Die AppScan.Synthetic.Replacement-Methode gibt an, dass eine Methode im Anwendungscode durch AppScan Source ersetzt wurde, um den Datenfluss zwischen zusammenhangslosen Komponenten (z. B. Controller und Ansichten) des
Frameworks zu erfassen.
Framework for Frameworks-API - Hauptkomponenten
F4FHandler
F4FHandler ist die abstrakte Klasse, die alle neuen Framework-Handler erweitern
müssen. Dadurch wird ein Workflow eines Framework-Handlers über abstrakte
Methoden erzwungen, die außer Kraft gesetzt werden müssen. Darüber hinaus
wird der Zugriff auf die anderen beiden API-Komponenten F4FApp und F4FAction
bereitgestellt.
F4FApp
Bietet Informationen zu der gescannten Anwendung, einschließlich Informationen
aus deren Konfiguration (wie beispielsweise Quellen-Roots und Web-Root). Diese
Komponente bietet auch Zugriff auf jede Klasse in der Anwendung zum Zweck
des Bestimmens der erforderlichen Informationen, wie beispielsweise Anmerkungen und die Superklasse.
F4FAction
Stellt für AppScan Source Informationen zu der Anwendung bereit, die gerade gescannt wird. Eingangspunkte, Verbindungen zwischen abstrakten Methoden und
deren Implementierungen und vieles mehr kann für die Scanning-Engine beschrieben werden, indem die Methoden aufgerufen werden, die für diese API bereitgestellt werden.
Framework for Frameworks-APIs verwenden
Dieser Abschnitt beschreibt die Schritte, die erforderlich sind, wenn die Framework
for Frameworks-APIs verwendet werden. Diese Schritte werden (wann immer zutreffend) dem aufgeführten Beispiel zugeordnet, so dass Sie die Vorgehensweise beobachten können.
In diesem Beispiel werden Sie Folgendes ausführen:
v Erstellen einer Klasse, die F4FHandler erweitert
v Implementieren von zwei abstrakten Methoden von F4FHandler
v Erstellen eines Java-Archivs (.jar) mit einer Manifestdatei, die Ihre HandlerKlasse identifiziert
v Exportieren der .jar-Datei in das waflgens-Verzeichnis von AppScan Source.
v „Informationen zu diesem Beispiel” auf Seite 105
104
IBM Security AppScan Source Utilities: Benutzerhandbuch
v „Beispielprojekt in Eclipse oder Rational Application Developer for WebSphere
Software (RAD) importieren”
v „Klasse erstellen, die F4FHandler implementiert” auf Seite 108
v „Manifestdatei für Ihren Handler erstellen” auf Seite 109
v „JAR für Ihren Handler erstellen” auf Seite 109
v „JAR in waflgens exportieren” auf Seite 112
Informationen zu diesem Beispiel
In der Installation von AppScan Source ist ein Beispielhandler enthalten, der
Framework for Frameworks-Informationen zu Enterprise Java Bean (EJB) 2-Anwendungen (auch als Enterprise Java Beans oder nur Beans bezeichnet) liest und bereitstellt.
EJB ist ein Framework, mit dem die Arbeit und erneute Verwendung von Komponenten zur Geschäftslogik wesentlich vereinfacht wird. Jede Bean stellt eine Business-Komponente dar, die über zugeordnete Schnittstellenklassen verfügen muss,
die wiederum andere Beans zur Interaktion mit der Business-Komponente verwenden müssen. Diese Schnittstellenklassen werden der Bean über die EJB-Konfigurationsdatei der Anwendung zugeordnet (EJB-jar.xml). An dieser Stelle tritt jedoch
eine Lücke auf, da die statische Analyse-Engine diese Zuordnungen in der Quelle
nicht berücksichtigt; das EJB-Framework ist dadurch ganz besonders geeignet mit
Framework for Frameworks zu arbeiten.
Beispielprojekt in Eclipse oder Rational Application Developer
for WebSphere Software (RAD) importieren
Vorgehensweise
1. Starten Sie Eclipse.
2. Erstellen Sie einen neuen Arbeitsbereich für Ihr Handler-Projekt.
3. Wählen Sie Datei > Importieren im Hauptmenü der Workbench aus.
Kapitel 7. Framework for Frameworks-APIs handhaben
105
4. Wählen Sie auf der Seite Auswählen des Importassistenten die Option Vorhandene Projekte in Arbeitsbereich aus und klicken Sie dann auf Weiter.
5. Wählen Sie die Schaltfläche Archivdatei auswählen aus und klicken Sie anschließend auf Durchsuchen. Suchen Sie im Dialogfeld Archiv auswählen, das
die zu importierenden Projekte enthält den Pfad <datenverzeichnis>\
samples\F4FEjbExample.zip (wobei <datenverzeichnis> die Position Ihrer
AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben wird). Klicken Sie
anschließend auf Öffnen.
Diese ZIP-Datei ist ein Eclipse-Archiv, dass die Konfiguration und den Quellcode für das Ejb2xHandler-Framework-Handler-Beispiel enthält.
Klicken Sie zum Importieren des Archivs auf Fertigstellen.
106
IBM Security AppScan Source Utilities: Benutzerhandbuch
6. Nach dem Import des Archivs wird eine Reihe vom Buildfehlern angezeigt. Das
Beispiel hat eine Klassenpfadvariable, die auf ein Verzeichnis verweist, in dem
die Bibliotheken gespeichert sind.
7. Als nächstes definieren Sie eine Variable. Wählen Sie im Hauptmenü der Workbench Fenster > Benutzervorgaben aus.
8. Wählen Sie im Dialogfeld 'Benutzervorgaben' die Optionen Java > Buildpfad >
Klassenpfadvariablen aus, um die Benutzervorgabenseite 'Klassenpfadvariablen' zu öffnen. Klicken Sie auf Neu.
Kapitel 7. Framework for Frameworks-APIs handhaben
107
9. Erstellen Sie eine neue Variable mit dem Namen APPSCANSRCWALALIB_HOME und
legen Sie als Pfad den Wert <installationsverzeichnis>\walalib fest (wobei
<installationsverzeichnis> die Position Ihrer AppScan Source-Installation ist).
Nach dem Klicken auf OK in allen Dialogfeldern sollte das Beispiel komplett
ohne Fehler erstellt werden.
Klasse erstellen, die F4FHandler implementiert
Zum Erstellen eines neuen Framework-Handlers müssen Sie zuerst eine Klasse erstellen, die F4FHandler implementiert. Es müssen zwei Methoden implementiert
werden, damit die Funktionalität von Framework for Frameworks unterstützt
wird.
isApplicable außer Kraft setzen
Zweck: AppScan Source ruft isApplicable auf, um zu ermitteln, ob damit Ihr
Handler ausgeführt werden soll. Wenn Sie True zurückgeben, wird dadurch Ihr
Handler durch Aufruf von handleApp ausgeführt. Wenn Sie False zurückgeben,
wird nichts weiter aufgerufen.
Anmerkung: isApplicable umfasst eine Prüfung am Anfang der Methode, um sicherzustellen, dass die Anwendung eine Java-Anwendung ist; erst dann wird fortgefahren.
Dazu ein Beispiel: In Ejb2xHandler, prüft isApplicable zuerst, ob die Spracher
passend ist (da EJB nur in Java-Anwendungen vorhanden ist). wenn die Anwendung Java-basiert ist, sucht isApplicable anschließend nach allen Instanzen von
ejb-jar.xml; dies ist die erforderliche Konfigurationsdatei für eine EJB 2-Anwen-
108
IBM Security AppScan Source Utilities: Benutzerhandbuch
dung. Wenn Konfigurationsdateien gefunden werden, werden sie in den Handler
gelesen und True wird zurückgegeben, so dass AppScan Source bekannt ist, dass
handleApp aufgerufen werden soll, um mit den Informationen in den Konfigurationsdateien zu arbeiten.
handleApp außer Kraft setzen
Zweck: AppScan Source ruft handleApp auf, damit Sie Informationen zum Framework oder zu den Frameworks, die momentan in der aktuell gescannten Anwendung verwendet werden, ermitteln und festlegen können. Die Parameter F4FApp
und F4FAction werden verwendet, um Informationen zur Anwendung abzurufen
und um Spezifikationen zur Behandlung der Frameworks, die vorhanden sind und
die Ihr Handler verwendet, festzulegen.
Manifestdatei für Ihren Handler erstellen
Erstellen Sie eine Datei mit dem Namen Manifest.txt, die die Informationen enthält, die für das Manifest Ihrer JAR erforderlich sind, wenn diese exportiert wird.
AppScan Source sucht beim Laden Ihrer Handler-JAR insbesondere nach dem
Framework-Handler-Eintrag, um die Klasse zu ermitteln, die die F4FHandler-Funktionalität enthält.
Stellen Sie diese zwei Zeilen in die Datei Manifest.txt:
Manifest-Version: 1.0
Framework-Handler: package.HandlerClassName
Hierbei ist package.HandlerClassName der vollständige Paket- und Klassenname für
Ihre Klasse, die die Schnittstelle F4FHandler implementiert.
Dazu ein Beispiel: Manifest.txt enthält die Informationen, die JAR-Manifestdatei
von Ejb2xHandler bei deren Erstellung gestellt werden. Es sind nur zwei Zeilen
vorhanden: eine Zeile listet die Version auf, und die andere Zeile gibt die Framework-Handling-Klasse an: Framework-Handler:
com.ibm.appscan.frameworks.highlevelapi.ejb2xhandler.Ejb2xHandler.
JAR für Ihren Handler erstellen
Vorgehensweise
1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt in der Ansicht "EclipseProjekt-Explorer" und wählen Sie Exportieren aus.
Kapitel 7. Framework for Frameworks-APIs handhaben
109
2. Wählen Sie im Exportassistenten die Option JAR-Datei aus und klicken Sie anschließend auf Weiter.
3. Wählen Sie im Abschnitt "JAR-Export" unter Exportziel auswählen eine passende Position für Ihre JAR-Datei aus und geben Sie einen Namen an. Klicken Sie
auf Weiter.
110
IBM Security AppScan Source Utilities: Benutzerhandbuch
4. Klicken Sie erneut auf Weiter. Sie können optional auch eine Position und einen Namen für eine Beschreibungsdatei festlegen. Dadurch wird eine .jardescDatei in Ihrem Projekt gespeichert, die alle JAR-Exporteinstellungen von diesem
Export enthält. Damit können Sie den Export wiederholen, ohne die Einstellungen erneut anzugeben.
5. Wählen Sie die Schaltfläche Vorhandenes Manifest von Arbeitsbereich verwenden aus und klicken Sie auf Durchsuchen. Wählen Sie die zuvor erstellte
Datei Manifest.txt aus.
Kapitel 7. Framework for Frameworks-APIs handhaben
111
6. Klicken Sie auf Fertigstellen.
JAR in waflgens exportieren
Wenn Sie die Handler-JAR nicht direkt in das Verzeichnis waflgens während der
Erstellung exportiert haben, kopieren Sie die jetzt in dieses Verzeichnis. Der vollständige Pfad lautet <installationsverzeichnis>\waflgens (wobei
<installationsverzeichnis> die Position Ihrer AppScan Source-Installation ist).
Vom Handler ausgeführte allgemeine Aktionen
Web-Service-Eingangspunkt erstellen
Viele Frameworks bieten eigene Eingangspunkte in eine Anwendung. Ein allgemeines Beispiel ist die Auswahl von Web-Services, die entweder in einer Konfigurationsdatei oder in Anmerkungen im Code identifiziert werden. Nach dem Suchen in
den Konfigurationsdateien der Anwendung oder direkt im Bytecode für bestimmte
Eingangspunkte kann die Methode F4FAction.addTaintedCallback verwendet werden, um einen versuchsweisen Dateneingangspunkt in der entsprechenden Methode zu erstellen.
Dazu ein Beispiel: In EJB 2 werden Web-Service-Eingangspunkte durch Definition
von Endpunkten in der Konfigurationsdatei (ejb-jar.xml) der Anwendung deklariert. Anschließend durchläuft handleApp durch die Beans, die in ejb-jar.xml deklariert sind, in einer Schleife; wann immer eine Endpunktklasse definiert ist, wird
die Liste der Methodennamen abgerufen. Anschließend werden die entsprechenden
Implementierungen als Web-Service-Eingangspunkte mit der Methode
addTaintedCallback deklariert.
112
IBM Security AppScan Source Utilities: Benutzerhandbuch
Methode ersetzen
Moderne Frameworks verwenden häufig virtuelle Funktionen und Abstraktionen,
um Business-Komponenten flexibel zu verbinden. Dies kann zwar eine Verbesserung im Entwicklungsprozess darstellen, es tauchen jedoch auch Schwierigkeiten
für die statische Analyse aus, wenn die Verbindung zwischen der virtuellen Funktion und ihrer Implementierung in einer Konfigurationsdatei oder über Anmerkungen im Code abgewickelt abgearbeitet wird. F4FAction.replaceCalls ermöglicht es
einem Handler, diese Verbindungen zu bezeichnen.
Dazu ein Beispiel: In EJB 2 hat jede Bean eine Gruppe von Schnittstellen (lokal
und fern(, die deklarieren, wie andere Beans mit dieser Bean interagieren. Dies bedeutet, dass immer dann, wenn die Schnittstelle class.method der Bean aufgerufen
wird, diese durch das Framework mit der tatsächlichen
ImplementationClass.method ersetzt wird.
Ab Zeile 62 durchläuft unser Beispiel-Handler jede Bean in einer Schleife und
nimmt deren ferne und lokale Schnittstellen und ersetzt diese durch die tatsächlichen Implementierungen.
Protokollierung
Ein Handler kann die Klasse com.ibm.wala.andromeda.util.logging.TaintLogger
verwenden, um Informationsnachrichten während der Ausführung zu protokollieren - und um zu bewirken, dass Fehlernachrichten in der Benutzerschnittstelle von
AppScan Source angezeigt werden. Die Klasse TaintLogger verwendet die Bibliothek log4j. Zum Protokollieren einer Nachricht besorgen Sie sich zunächst ein Logger-Objekt, indem Sie TaintLogger.i().getLogger() aufrufen. Rufen sie anschließend Protokollierungsmethoden mit dem Logger auf (Beispiel: Logger.warn), um
die gewünschten Nachrichten zu protokollieren. Protokollnachrichten werden in
<datenverzeichnis>\logs\scanner_exceptions.log aufgelistet (wobei
<datenverzeichnis> die Position Ihrer AppScan Source-Programmdaten ist, die in
Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143
beschrieben wird). Wenn Logger.error oder Logger.fatal zum Protokollieren einer
Nachricht verwendet wird, wird die Fehlernachricht auch in der Ansicht "Konsole"
in der Benutzerschnittstelle von AppScan Source angezeigt.
Framework for Frameworks API classes and methods
This section contains the Framework for Frameworks API classes and methods,
abbreviated for Adobe PDF. To access the complete set of API documentation,
launch the AppScan Source for Analysis online help and navigate to Reference >
Framework for Frameworks handling APIs > Framework for Frameworks API classes and methods.
The complete set of API documentation can also be found at http://
www.ibm.com/support/knowledgecenter/SSS9LM/welcome.
v
v
v
v
„F4FActions” auf Seite 114
„F4FApp” auf Seite 118
„F4FHandler” auf Seite 120
„TaintedParam” auf Seite 121
Kapitel 7. Framework for Frameworks-APIs handhaben
113
F4FActions
java.lang.Object
extended by com.ibm.appscan.frameworks.highlevelapi.F4FActions
public class F4FActions
extends java.lang.Object
Class for specifying how the application's framework constructs should be modeled. An F4FHandler mutates the F4FAction object passed to
F4FHandler.handleApp(F4FApp, F4FActions) as it analyzes the application.
Constructor Detail
F4FActions
public F4FActions()
Create an empty F4FActions object. Should not be needed for implementing a new
framework handler, as the relevant F4FActions object will be passed to
F4FHandler.handleApp(F4FApp, F4FActions).
addTaintedCallback
public void addTaintedCallback(IMethod method,
int numParams)
Same as „addTaintedCallback” (String, int), but takes an IMethod directly rather
than a VDB signature
addTaintedCallback
public void addTaintedCallback(java.lang.String vdbMethodSig,
int numParams)
Make a method a tainted callback, with all parameters tainted.
Anmerkung: For .NET apps, we need fully-qualified VDB signatures. So, instead
of int as a parameter type, we need System.Int32, etc. To see the full mapping
from fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName.
Parameters:
v vdbMethodSig - the signature of the callback method
v numParams - the number of parameters for the callback method, including the
this parameter
replaceCalls
public void replaceCalls(java.lang.String oldVDBSig,
java.lang.String newVDBSig)
Replace all calls to one method with calls to another method. We require that the
descriptors for the old and new method (i.e., the number of arguments, argument
type, and return type) are identical.
Anmerkung: replacement will only occur when oldVDBSig is the _declared_ target
at a call site. So, if oldVDBSig is Integer.toString(), and we see a call to Object.toString(), we will _not_ perform a replacement at that call site, even though it
might invoke Integer.toString().
114
IBM Security AppScan Source Utilities: Benutzerhandbuch
Anmerkung: for .NET apps, we need fully-qualified VDB signatures. So, instead of
int as a parameter type, we need System.Int32, etc. To see the full mapping from
fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName
Parameters:
v oldVDBSig - signature of method whose calls should be replaced
v newVDBSig - signature of method to replace calls with
replaceCallsWithSyntheticExpr
public void replaceCallsWithSyntheticExpr(java.lang.String vdbSig,
com.ibm.appscan.frameworks.specinfo.SyntheticExpr expr)
Replace all calls to a method with an arbitrary WAFL SyntheticExpr. For example,
one could replace calls with an assignment via an AssignmentExpr.
Anmerkung: replacement will only occur when oldVDBSig is the _declared_ target
at a call site. So, if oldVDBSig is Integer.toString(), and we see a call to Object.toString(), we will _not_ perform a replacement at that call site, even though it
might invoke Integer.toString().
Anmerkung: for .NET apps, we need fully-qualified VDB signatures. So, instead of
int as a parameter type, we need System.Int32, etc. To see the full mapping from
fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName
Parameters:
v vdbSig - signature of method whose calls should be replaced
v expr - synthetic expression to replace calls with
replaceCallsWithParamPattern
public void replaceCallsWithParamPattern(java.lang.String oldVDBSig,
java.util.Map<java.lang.String,
java.util.Map<java.lang.Integer,
java.util.regex.Pattern>>
newSig2Pattern)
Replace calls to one method with calls to another method only if the parameters of
String type are constants meeting specified patterns. We require that the descriptors for the old and new method (i.e., the number of arguments, argument type,
and return type) are identical.
Anmerkung: replacement will only occur when oldVDBSig is the _declared_ target
at a call site. So, if oldVDBSig is Integer.toString(), and we see a call to Object.toString(), we will _not_ perform a replacement at that call site, even though it
might invoke Integer.toString().
Anmerkung: for .NET apps, we need fully-qualified VDB signatures. So, instead of
int as a parameter type, we need System.Int32, etc. To see the full mapping from
fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName
Parameters:
v oldVDBSig - signature of method whose calls should be replaced
Kapitel 7. Framework for Frameworks-APIs handhaben
115
v newSig2Pattern - maps VDB signature of each possible replacement method m to
a map M from integer parameter positions to Patterns. If the string constant parameters in the appropriate positions match the patterns in M at some call site, a
replacement to m will be performed.
addFrameworkInfo
public void addFrameworkInfo
(com.ibm.appscan.frameworks.specinfo.IFrameworkInfo info)
Add arbitrary additional framework info. This method should only be needed for
rare cases where the other APIs provided are insufficient.
addTaintedCallback
public void addTaintedCallback(java.lang.String vdbMethodSig,
java.util.Collection<TaintedParam>
taintedParams)
Make some method a tainted callback, with only certain parameter access paths
being treated as tainted.
Anmerkung: for .NET apps, we need fully-qualified VDB signatures. So, instead of
int as a parameter type, we need System.Int32, etc. To see the full mapping from
fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName
Parameters:
v vdbMethodSig - the signature of the callback method, in VDB format
v taintedParams - information on which parameter access paths should be tainted
addHighLevelSyntheticMethod
public void addHighLevelSyntheticMethod(HighLevelSyntheticMethod m)
equivalent to addHighLevelSyntheticMethod(m, true)
addHighLevelSyntheticMethod
public void addHighLevelSyntheticMethod(HighLevelSyntheticMethod m,
boolean isEntrypoint)
Add a high-level synthetic method. A corresponding WAFL synthetic method (possibly an entrypoint) will be generated.
Parameters:
v m - the method
v isEntrypoint - should the method be marked as an entrypoint in WAFL?
createGlobal
public Global createGlobal(java.lang.String name,
java.lang.String declaredVDBType,
boolean isEntrypointScoped)
Create a new global that can be accessed from HighLevelSyntheticMethods.
Parameters:
v name - name for the global
v declaredVDBType - the declared type of the global (e.g., java.lang.String).
116
IBM Security AppScan Source Utilities: Benutzerhandbuch
Anmerkung: for .NET apps, we need a fully-qualified VDB type. So, instead of
int as a parameter type, we need System.Int32, etc. To see the full mapping
from fully-qualified names to the names usually used in VDB, see
DotNetVDBUtil.systemName2VDBShortName
v isEntrypointScoped - if true, the global is scoped to a single entrypoint (i.e., it is
request-scoped). Otherwise, the global is scoped across entrypoints (i.e., it is
"session" or "application" scoped)
Returns:
v a Global object, which can be read/written inside a HighLevelSyntheticMethod
createGlobal
public Global createGlobal(java.lang.String name,
IClass declaredClass,
boolean isEntrypointScoped)
Just like „createGlobal” auf Seite 116(String, String, boolean), but takes an
IClass for the declared type instead of a type name
getGlobals
public java.util.Collection<Global> getGlobals()
For internal usage.
getAdditionalFrameworkInfo
public java.util.Collection
<com.ibm.appscan.frameworks.specinfo.IFrameworkInfo>
getAdditionalFrameworkInfo()
For internal usage.
getCallReplacement2SigsInfo
public java.util.Map
<java.lang.String,java.util.Map
<java.lang.String,java.util.Map
<java.lang.Integer,java.util.regex.Pattern>>>
getCallReplacement2SigsInfo()
For internal usage.
getCallReplacement2ExprInfo
public java.util.Map
<java.lang.String,com.ibm.appscan.frameworks.specinfo.SyntheticExpr>
getCallReplacement2ExprInfo()
For internal usage.
getCallback2TaintedParams
public java.util.Map
<java.lang.String,java.util.Collection<TaintedParam>>
getCallback2TaintedParams()
For internal usage.
Kapitel 7. Framework for Frameworks-APIs handhaben
117
getHighLevelSyntheticMethods
public java.util.List
<com.ibm.wala.util.collections.Pair
<HighLevelSyntheticMethod,java.lang.Boolean>>
getHighLevelSyntheticMethods()
For internal usage.
toString
public java.lang.String toString()
Overrides:
v toString in class java.lang.Object
F4FApp
java.lang.Object
extended by com.ibm.appscan.frameworks.highlevelapi.F4FApp
public class F4FApp
extends java.lang.Object
Representation of an application, with methods to query various properties of classes, methods, etc. Implemented mostly by delegating to methods from the T.J. Watson Libraries for Analysis (WALA); the goal is to consolidate the most useful
WALA methods in a single type. See the WALA home page (http://
wala.sourceforge.net) for full details on WALA APIs.
Constructor Detail
public F4FApp(IClassHierarchy cha)
Should not be needed to implement a new handler. The relevant F4FApp object will
be passed as a parameter to F4FHandler.handleApp(F4FApp, F4FActions)
getAppClass
@Deprecated
public IClass getAppClass(java.lang.String vdbClassName)
Deprecated. Use getIClass(String) instead; this method simply delegates to that
one.
getIClass
public IClass getIClass(java.lang.String vdbClassName)
get the IClass for some class in the application, including library jars/DLLs. If no
class with the provided name is found, return null
Parameters:
v vdbClassName - class name in VDB format, e.g., java.lang.String
getClassAnnotations
public java.util.Collection<Annotation>
getClassAnnotations(IClass klass)
Get the annotations/attributes for a class. For .NET, the result will include inherited attributes.
118
IBM Security AppScan Source Utilities: Benutzerhandbuch
Parameters:
v klass - the class whose annotations are desired
getMethodAnnotations
public java.util.Collection<Annotation>
getMethodAnnotations(IMethod method)
Get the annotations / attributes for a method. For .NET, these will include inherited attributes.
Parameters:
v method - the method whose annotations are desired
getFieldAnnotations
public java.util.Collection<Annotation>
getFieldAnnotations(IField field)
Get the annotations / attributes for a field.
Parameters:
v field - the field whose annotations are desired
getMethodParametersAnnotations
public java.util.Collection<Annotation>[]
getMethodParametersAnnotations(IMethod method)
Get annotations on parameters as an array of Collections, where each array element gives the annotations on the corresponding parameter. Note that the this parameter for an instance method cannot have annotations.
Parameters:
v method - the method whose parameter annotations are desired
getAllApplicationClasses
public java.util.Collection<IClass>
getAllApplicationClasses()
Get all the classes in the application (i.e., excluding those in library jars).
getClassHierarchy
public IClassHierarchy getClassHierarchy()
Get the WALA class hierarchy for the application. Most handlers should be able to
work via the other methods in this class and shouldn't need to operate directly on
the class hierarchy. But, access is provided for advanced use.
getMethodsDeclaredInClass
public java.util.Collection<IMethod>
getMethodsDeclaredInClass(IClass klass)
Get all the static and instance methods declared in klass
Kapitel 7. Framework for Frameworks-APIs handhaben
119
getClassMethods
public java.util.Collection<IMethod>
getClassMethods(java.lang.String className,
java.lang.String methodName)
Get all the methods in an class with a particular name. If the class cannot be
found, returns an empty Collection.
Parameters:
v className - the class name in VDB (i.e., source-level) format, e.g.,
java.lang.String
v methodName -
getClassMethods
public java.util.Collection<IMethod>
getClassMethods(IClass appClass,
java.lang.String methodName)
Get all the methods in an class with a particular name.
Parameters:
v appClass - the class
v methodName -
getStringConstantsReturnedByMethod
public java.util.Collection<java.lang.String>
getStringConstantsReturnedByMethod(IMethod method)
Get the possible String constants returned by the method. E.g., if the method has a
statement return "result";, then "result" will be in the returned Collection. Throws
an IllegalArgumentException if the return type of method is not String.
F4FHandler
java.lang.Object
com.ibm.appscan.frameworks.highlevelapi.F4FHandler
public abstract class F4FHandler
extends java.lang.Object
The abstract class that any new framework handler should extend.
Anmerkung: Any sub-class of F4FHandler must have a no-argument constructor,
for instantiation using reflection
Constructor Detail
F4FHandler
public F4FHandler()
handleApp
public abstract void handleApp(F4FApp app,
F4FActions actions)
Define what actions should be represented in the generated WAFL specification to
handle the given application.
120
IBM Security AppScan Source Utilities: Benutzerhandbuch
Parameters:
v app - the application to be analyzed
v actions - the actions to be taken; implementations of handleApp(F4FApp,
F4FActions) should mutate this parameter and store the desired actions
isApplicable
public abstract boolean isApplicable()
Is the framework handler applicable for the target application? Implementations
should check the language of the app, whether relevant configuration files are present, etc.
setFrameworksInput
public void setFrameworksInput(FrameworksInput input)
Should not be invoked by a framework handler.
getFrameworksInput
protected FrameworksInput getFrameworksInput()
Get the parsed representation of the input parameters to the frameworks code.
TaintedParam
java.lang.Object
extended by com.ibm.appscan.frameworks.highlevelapi.TaintedParam
public class TaintedParam
extends java.lang.Object
A type used to represented how some method parameter may reference tainted
data.
Constructor Detail
public TaintedParam(int paramPos,
java.lang.String accessPath)
Creates a new TaintedParam object for a particular parameter position and access
path.
Parameters:
v paramPos - the position of the tainted parameter, numbered starting from 0 (where the this parameter of an instance method is parameter 0)
v accessPath - access path of fields from the parameter that should be tainted,
e.g., "f.g". Use "" to indicate the parameter itself should be tainted.
getParamPos
public int getParamPos()
getAccessPath
public java.lang.String getAccessPath()
Kapitel 7. Framework for Frameworks-APIs handhaben
121
hashCode
public int hashCode()
Overrides:
v hashCode in class java.lang.Object
equals
public boolean equals(java.lang.Object obj)
Overrides:
v equals in class java.lang.Object
toString
public java.lang.String toString()
Overrides:
v toString in class java.lang.Object
Übergeordnete synthetische Methoden
Synthetische Methoden sind ein nützliches Konstrukt zum Modellieren eines erweiterten Datenflusses in Frameworks. Beispielsweise favorisieren viele Standardframeworks (wie z. B. Struts und Spring) eine Modell-Ansicht-Controller-Architektur
(MVC - Model View Controller) (MVC) für die Anwendung. Mit einer Model View
Controller-Struktur, wird die Formularübergabe des Clients häufig auf folgende
Weise behandelt:
1. Legen Sie basierend auf der URL fest, dass die Modellklasse M der Anwendung
die übergebenen Formulardaten enthält und dass die Controllerklasse C die Geschäftslogik enthält.
2. Erstellen Sie ein Modellobjekt mit dem Typ M und legen Sie die zugehörigen Eigenschaften basierend auf den (nicht gesicherten) Formulardaten in der HTTPAnforderung fest. Die Eigenschaften werden in der Regel mithilfe von setter
JavaBeans (z. B. setName() oder setAddress()) festgelegt.
3. Führen Sie eine Überprüfung der Daten im M-Objekt durch.
4. Erstellen Sie ein Controller-Objekt mit dem Typ C und übergeben Sie das M-Objekt an eine Methode C.execute(), die die Geschäftslogik ausführt. In der Regel
gibt execute() den Namen einer Ansicht zurück, in der die Ergebnisse bereitgestellt werden.
5. Legen Sie basierend auf dem Namen der Ansicht die entsprechende Ansichtdatei (beispielsweise eine JavaServer-Seite) für die Anzeige fest. Häufig werden
die Daten im M-Objekt über Attribute des Anforderungs- oder des Sitzungsobjekts an die Ansicht übergeben.
Alle oben genannten Funktionen können mithilfe von synthetischen Methoden von
Framework for Frameworks modelliert werden und machen auf diese Weise das
unterschiedliche Verhalten für eine Analyse durch AppScan Source verfügbar. Die
Framework for Frameworks-API bietet übergeordnete synthetische Methoden, um
die einfache Durchführbarkeit der Generierung von synthetischen Methoden sicherzustellen.
Anmerkung: Traceknoten mit Klassennamen, die mit Appscan.Synthetic,
Appscan.Synthetic.Validator und AppScan.Synthetic.Replacement beginnen, entsprechen den Methoden, die von AppScan Source synthetisch erstellt werden.
122
IBM Security AppScan Source Utilities: Benutzerhandbuch
v Die AppScan.Synthetic-Methoden werden verwendet, um Traces in einem Anwendungscode, der Frameworks verwendet, zusammenzufügen.
v Die AppScan.Synthetic.Validator-Methode modelliert die zugrunde liegende
Überprüfung, die von der Frameworklaufzeit durchgeführt wird. Sie können
eine Validatormethode auswählen und Sie bei Bedarf als Validator markieren.
v Die AppScan.Synthetic.Replacement-Methode gibt an, dass eine Methode im Anwendungscode durch AppScan Source ersetzt wurde, um den Datenfluss zwischen zusammenhangslosen Komponenten (z. B. Controller und Ansichten) des
Frameworks zu erfassen.
VDB-Format
Methoden in der Framework for Frameworks-API erfordern, dass Strings, die
Typnamen oder Methodensignaturen darstellen, das VDB-Format aufweisen. VDBTypnamen sind lediglich vollständig qualifizierte Namen auf Quellebene (z. B.
java.lang.String) oder werden im Fall von untergeordneten inneren Klassen mit
einem Dollar-Symbol ($) dargestellt (z. B. javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction). Für .NET sollten kurze Namen wie int und string vermieden werden, wenn die Framework for Frameworks-API verwendet wird. Verwenden Sie stattdessen vollständig qualifizierte Namen wie System.Int32 und
System.String.
Eine VDB-Methodensignatur besteht aus zwei Teilen:
1. Methodenname, einschließlich des vollständig qualifizierten Namens der einschließenden Klasse (z. B. java.lang.String.substring).
2. Deskriptor für die Methode, der die Parametertypen und den Rückgabetyp angibt. Die Parametertypen werden in runde Klammern eingeschlossen und
durch Semikola voneinander getrennt (;). Auf die rechte runde Klammer folgt
ein Semikolon (:) und anschließend der Rückgabetyp.
Beispiel für eine VDB-Methodensignatur:
java.lang.String.substring(int;int):java.lang.String
Beispiel für eine VDB-Methodensignatur aus einer inneren Klasse:
javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.
actionPerformed(ActionEvent):void
Für die meisten API-Methoden, die einen String in VDB-Format erfordern, ist häufig eine funktional entsprechende Methode vorhanden, die stattdessen ein IClassoder IMethod-Objekt akzeptiert. Beispielsweise erfordert die Methode
F4FActions.addTaintedCallback(String,int), dass der erste zugehörige Parameter
eine Methodensignatur im VDB-Format ist, während
F4FActions.addTaintedCallback(IMethod,int) die Methode durch ein IMethodObjekt angibt. Die Verwendung der API-Methode, die IClass- und IMethod-Objekte
akzeptiert, kann aus folgenden Gründen bequemer sein:
1. Der Benutzer muss sich keine Gedanken über das VDB-Format dieser Methoden machen, da dieses Problem intern behandelt wird.
2. Durch Abrufen des IClass- bzw. des IMethod-Objekts (z. B. über
F4FApp.getClassMethods()) wird sichergestellt, dass die entsprechende Klasse
oder Methode im Anwendungscode tatsächlich enthalten ist.
Kapitel 7. Framework for Frameworks-APIs handhaben
123
Verwendung von übergeordneten synthetischen Methoden
In diesem Thema wird dargestellt, wie einige der Schlüsselfunktionen übergeordneter synthetischer Methoden verwendet werden. Vollständige Details finden Sie in
der Javadoc-Dokumentation zu den Klassen und Methoden der Framework for
Framework-API.
v „Übergeordnete synthetische Methode erstellen”
v „Lokale Variablen erstellen”
v „Aufrufe hinzufügen”
v „Rückgabewert hinzufügen” auf Seite 125
v „Globals” auf Seite 125
Übergeordnete synthetische Methode erstellen
Verwenden Sie zum Erstellen einer übergeordneten synthetischen Methode und
zum Hinzufügen dieser Methode zum F4FActions-Objekt actions Code ähnlich
dem folgenden:
HighLevelSyntheticMethod m = HighLevelSyntheticMethod.make();
actions.addHighLevelSyntheticMethod(m);
Sie können den Namen, die Parametertypen und den Rückgabetyp der synthetischen Methode angeben, indem Sie eine VDB-Methodensignatur an
HighLevelSyntheticMethod.make() übergeben.
Lokale Variablen erstellen
Eine neue lokale Variable für eine übergeordnete synthetische Methode m kann auf
folgende Weise erstellt werden:
Local l = m.newLocal("java.lang.String");
Konstrukturfunktionen müssen in synthetischen Methoden nicht aufgerufen werden. Bei Zugrundelegung des oben genannten Codes kann vorausgesetzt werden,
dass l auf ein String-Objekt ungleich null verweist, wenn weitere Anweisungen
zu der synthetischen Methode hinzugefügt werden.
Aufrufe hinzufügen
Bei den meisten Anweisungen in übergeordneten synthetischen Methoden wird es
sich um Methodenaufrufe handeln, die über die Methode addCall() hinzugefügt
werden. Die Parameter für addCall() stellen die aufzurufende Methode dar, Positionsdaten zur Datei für den Aufruf sowie Parameter, die beim Aufruf übergeben
werden. Dies ist ein Beispiel für das Hinzufügen eines Aufrufs zu der Setter-Methode sample.BeanType.setName(), bei dem das F4FApp-Objekt app vorausgesetzt
wird:
Collection<IMethod> setterMethods =
app.getClassMethods("sample.BeanType", "setName");
// unter der Voraussetzung, dass in BeanType genau eine Methode "setName" vorhanden ist
IMethod setter = setterMethods.iterator().next();
HighLevelSyntheticMethod m = HighLevelSyntheticMethod.make();
Local l = m.newLocal("sample.BeanType");
m.addCall(setter, null, l, Taint.taint());
Die Schritte 2-5 für die Behandlung einer Formularübergabe durch einen Client in
einer Model View Controller-Architektur (wie in „Übergeordnete synthetische
Methoden” auf Seite 122 dargestellt) können bis zu einem bestimmten Grad alle
124
IBM Security AppScan Source Utilities: Benutzerhandbuch
durch Hinzufügen von entsprechenden Aufrufen zu einer synthetischen Methode
auf die oben gezeigte Weise modelliert werden.
Die Parameter für einen Aufruf werden durch Objekte des Typs Param dargestellt.
Dabei kann es sich um folgende Objekte handeln:
v Ein Objekt Local, das eine lokale Variable darstellt.
v Ein Objekt Taint, das nicht gesicherte oder unzuverlässige Daten darstellt.
v Ein Objekt EnclosingFormal, das einen formalen Parameter der übergeordneten
synthetischen Methode darstellt. Wenn Sie beispielsweise eine synthetische Methode mit der Signatur synthMethod(int):void haben, bezieht sich
EnclosingFormal.FIRST auf den Parameter int der Methode.
v Ein Global-Objekt, das sich auf eine globale Variable bezieht (wird in „Globals”
behandelt).
Anmerkung: Bei nicht statischen Instanzdefinitionsmethoden muss der als this zu
übergebende Wert für addCall() bereitgestellt werden. Im oben genannten Beispiel
wird der Wert in l als this für setName() bereitgestellt.
Rückgabewert hinzufügen
Eine synthetische Methode kann mithilfe der Methode setReturnedValue() einen
Wert zurückgeben. Rückgabewerte können zum Generieren von Markierungsmethoden nützlich sein, mit denen die Überprüfung komplexer Frameworks modelliert wird. Wenn Sie beispielsweise ein Framework verwenden, das eine komplexe
Prüfung eines als unsicher eingestuften HTTP-Anforderungswerts ausführt, bevor
dieser Wert an die setter-Methode eines Modellobjekts weitergegeben wird, können
Sie die Prüfung für von AppScan Source erkannte Traces durch die Verwendung
von Code ähnlich dem folgenden verfügbar machen:
String validatorSig =
"Synth.validatorModel(java.lang.String):
java.lang.String";
HighLevelSyntheticMethod validator =
HighLevelSyntheticMethod.make(validatorSig);
// Geben Sie den übergebenen Parameter einfach zurück
validator.setReturnedValue(EnclosingFormal.FIRST);
HighLevelSyntheticMethod m = ...;
Local validated = m.addCall(validatorSig, null, Taint.taint());
// Jetzt kann der geprüfte Wert an eine setter-Methode übergeben werden
Die synthetische Methode Synth.validatorModel() gibt die an sie als Parameter
übergebene String (Zeichenfolge) einfach zurück. Anschließend wird in einer anderen synthetischen Methode ein Aufruf an Synth.validatorModel() hinzugefügt,
indem ein als unsicher eingestufter Wert als Argument übergeben wird. Das Ergebnis dieses Aufrufs wird in validated gespeichert, das in einem nachfolgenden Aufruf an eine setter-Methode übergeben werden kann (wie durch das Beispiel in
„Aufrufe hinzufügen” auf Seite 124 dargestellt). Traces, die diese als unsicher eingestuften Daten enthalten, beinhalten den Aufruf an Synth.validatorModel() und
ein AppScan Source-Benutzer kann auswählen, die Traces zu filtern, falls die Prüfung als ausreichend angesehen wird.
Globals
Globals stellen eine erweiterte Funktion dar, die verwendet werden kann, um Datenfluss zwischen unterschiedlichen und voneinander unabhängigen Teilen einer
Anwendung verfügbar zu machen. Globals können beispielsweise verwendet werden, um den Datenfluss von einem Controller zu einer Ansicht über AnforderungsKapitel 7. Framework for Frameworks-APIs handhaben
125
oder Sitzungsattribute zu modellieren. Die wichtigsten Operationen zum Erstellen
und Zugreifen auf Globals lauten wie folgt:
v Zum Erstellen eines Global-Objekts, das ein Global darstellt, verwenden Sie
F4FActions.createGlobal().
v Zum Schreiben eines Globals verwenden Sie HighLevelSyntheticMethod.addGlobalWrite().
v Zum Lesen aus einem Global übergeben Sie das Global-Objekt als Parameter
Param in einem Aufruf an HighLevelSyntheticMethod.addCall() - oder erhalten
Sie es über HighLevelSyntheticMethod.setReturnedValue() von einer synthetischen Methode zurück.
Beispiel: Eine Controllerklasse schreibt den Vornamen eines Benutzers an das Anforderungsattribut firstName und die Ansicht liest anschließend dieses Anforderungsattribut und gibt den Wert an die Antwort aus. Auf einer übergeordneten
Ebene können Sie diesen Ablauf wie folgt modellieren:
Global firstNameGlobal = actions.createGlobal
("firstName", "java.lang.String", true);
HighLevelSyntheticMethod controller = ...;
Local firstNameLocal = controller.newLocal("java.lang.String");
controller.addGlobalWrite(firstNameGlobal, firstNameLocal, null);
HighLevelSyntheticMethod view = ...;
view.addCall("Response.write(java.lang.String):void",
null, firstNameGlobal);
Indem Sie in der synthetischen Methode des Controllers ein 'write' zu
firstNameGlobal hinzufügen und anschließend firstNameGlobal in der synthetischen Methode view an Response.write() übergeben, wird der Datenfluss vom
Controller zur Ansicht verfügbar gemacht.
Anmerkung: Dieses Beispiel enthält viele Vereinfachungen. Eine Vollversion würde
unter anderem den ordnungsgemäßen Fluss von Daten an firstNameLocal verfügbar machen müssen.
Beispiel: Synthetische Methoden erstellen
In diesem Beispiel wird die Erstellung einer synthetischen Methode veranschaulicht. In dieser synthetischen Methode wird zunächst ein Klassenfeld verbreitet und
dann ein Aufruf zu einer Methode im Benutzercode hinzugefügt und schließlich
das Ergebnis dieses Methodenaufrufs an eine Senke übergeben.
v
v
v
v
v
„Anwendungsszenario”
„Elemente, die in der synthetischen Methode modelliert werden” auf Seite 127
„Schritt 1: Eine leere synthetische Methode erstellen” auf Seite 127
„Schritt 2: Die Verbreitung eines Klassenfelds modellieren” auf Seite 127
„Schritt 3: Das Aufrufen der createUser()-Methode modellieren” auf Seite 128
v „Schritt 4: Die Datenrückgabe an den Client modellieren” auf Seite 128
Anwendungsszenario
In diesem Beispiel ist createUser eine REST-API, die im JAX-RS-Framework implementiert ist. Ein Benutzer kann diese API mit einer URL aufrufen, z. B. http://
host:port/users/createUser. Da der Pfad übereinstimmt, leitet die FrameworkLaufzeit diesen Aufruf an UserRestService.createUser() weiter. Zusätzlich
initialisiert die Framework-Laufzeit die Klassenvariable urlInfo aus den Clientdaten, bevor createUser() aufgerufen wird. Als letzter Schritt werden die durch
126
IBM Security AppScan Source Utilities: Benutzerhandbuch
createUser() zurückgegebenen Daten von der Laufzeit an den Client zurückgesendet.
Elemente, die in der synthetischen Methode modelliert werden
Um das „Anwendungsszenario” auf Seite 126 mit einer synthetischen Methode zu
behandeln, werden die folgenden Elemente modelliert:
v Die als unsicher eingestufte Klassenvariable urlInfo von UserRestService.
v Der Aufruf an UserRestService.createUser().
v Die Rückgabe von Daten an den Client.
Dies ist der Code für die Methode createUser():
import java.io.BufferedWriter;
@Path("users")
public class UserRestService {
@Context
UriInfo urlInfo;
@Path("/createUser")
public User createUser(){
MultivaluedMap<String, String> queryParams =
urlInfo.getQueryParameters();
String name = queryParams.getFirst("name");
User user = new User(name);
return user;
}
}
Schritt 1: Eine leere synthetische Methode erstellen
22
23
24
public class JAXRSHandler extends F4FHandler{
@Override
public void handleApp(F4FApp app, F4FActions actions) {
HighLevelSyntheticMethod synthMethod = HighLevelSyntheticMethod.make();
v In Zeile 24 wird das Objekt der synthetischen Methode initialisiert.
Schritt 2: Die Verbreitung eines Klassenfelds modellieren
Das Code-Snippet unten veranschaulicht, wie bestimmte Klassenfelder verbreitet
werden können. In diesem Beispiel sollen die Klassenfelder verbreitet werden, die
die Anmerkung @Context haben.
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
43
// Erstellen Sie eine lokale Variable des entsprechenden Typs
Local userRestServiceClazzInstance =
synthMethod.newLocal("com.ibm.appscan.UserRestService");
// Rufen Sie alle Klassenfelder ab
for(IField field: app.getIClass
("com.ibm.appscan.UserRestService").getDeclaredInstanceFields()){
// Rufen Sie alle Anmerkungen zu diesem Feld ab
Collection<Annotation> fieldAnnotations = app.getFieldAnnotations(field);
// Prüfen Sie bei jeder Anmerkung des Felds, ob es sich um eine @Context-Anmerkung handelt
for (Annotation annotation : fieldAnnotations) {
if (annotation.getType().getName().toString().equals
("Ljavax/ws/rs/core/Context")) {
// Rufen Sie die F4F-API auf, um die Verbreitung dem Feld zuzuordnen
synthMethod.addInstanceVariableWrite(
userRestServiceClazzInstance /*Variable representing
Kapitel 7. Framework for Frameworks-APIs handhaben
127
class instance*/,
field /*field to taint */,
Taint.taint() /* taint */,
null);
44
45
46
47
}
}
}
Die Framework for Framework-API addInstanceVariableWrite hat vier Argumente:
1. Das erste Argument ist die Klassenreferenz, deren Feld verbreitet werden soll.
Im genannten Beispiel bezieht sich die lokale Variable
userRestServiceClazzInstance auf dieses Argument.
2. Das erste Argument ist das Klassenfeld, das verbreitet werden soll.
3. Das dritte Argument ist der neue Wert, der dem Klassenvariablenfeld zugeordnet werden soll. In diesem Beispiel soll diese Variable so verbreitet werden,
dass Taint.taint() übergeben wird.
4. Das letzte Argument ist FilePositionInfo, das in diesem Beispiel null ist.
Schritt 3: Das Aufrufen der createUser()-Methode modellieren
In diesem Schritt wird der Aufruf in der synthetische Methode simuliert.
50
51
52
53
// Rufen Sie ’createUser()’ auf und speichern Sie den zurückgegebenen Wert in eine lokale Variable
Local returnObj = synthMethod.addCall(
"com.ibm.appscan.UserRestService.createUser():com.ibm.appscan.User"
/* signature of the method to be called */,
null, /* FilePositionInfo */
userRestServiceClazzInstance /* Object on which the method
will be called */);
Die übergeordnete API addCall benötigt drei Argumente:
v Das erste Argument ist die Signatur der Methode, die aufgerufen werden soll. In
diesem Fall sollUser.createUser() aufgerufen werden, da seine Signatur verwendet wird.
v Das zweite Argument ist FilePositionInfo. Es wird als null weitergereicht, da
es für dieses Beispiel nicht erforderlich ist.
v Das letzte Argument stellt die Liste der Parameter dar, die erforderlich sind, um
die createUser()-Methode aufzurufen.
Da createUser() keine Argumente annimmt, ist das einzige Argument, das an diesen Aufruf übergeben wird, das this-Objekt, das eine Local-Variable (userRestServiceClazzInstance) des Typs User ist. Die Methode createUser() gibt einen neu
erstellten User zurück, der in einer neuen Local-Variable mit dem Namen
returnedObj (siehe Zeile 51) gespeichert wird.
Schritt 4: Die Datenrückgabe an den Client modellieren
In diesem letzten Schritt wird eine Senke erstellt, um die Rückgabe der Daten an
den Client zu modellieren.
58
59
60
61
62
63
128
// Erstellen Sie ein PrintWriter-Objekt
Local printWriterObj = synthMethod.newLocal("java.io.PrintWriter");
// Die Print-API soll im PrintWriter-Objekt aufgerufen werden.
// Die Print-API nimmt ein einziges Argument des Objekttyps gibt ’void’ zurück
// Erstellen Sie eine Parameterliste der Größe 2. Das erste Element in der Liste ist immer das
// ’this’-Objekt. Der Rest sind tatsächliche Methodenargumente.
IBM Security AppScan Source Utilities: Benutzerhandbuch
64
65
Param[] printWriterObjParam = new Param[2];
printWriterObjParam[0] = printWriterObj; // Das "this"-Objekt
// Der Wert, der vom Aufruf an die createUser-Methode zurückgegeben wird
printWriterObjParam[1] = returnObj;
66
67
68
69
70
// Fügen Sie jetzt der Print-Methode einen Aufruf hinzu
synthMethod.addCall("java.io.PrintWriter.print(java.lang.Object):void",
null, printWriterObjParam);
}
v In Zeile 59 soll ein lokales Objekt für die Klasse PrintWriter in der synthetischen Methode erstellt werden.
v In den Zeilen 64 bis 66 wird die Liste der Parameter vorbereitet, die für den
Aufruf der Methode print in der Klasseninstanz PrintWriter erforderlich ist
(printWriterObj):
– Der erste Parameter ist der Objektverweis selbst (printWriterObj).
– Der zweite Parameter ist das Argument für die Methode print. Der zurückgegebene Werte, der in der lokalen returnObj-Variable gespeichert ist, soll zurückgegeben werden.
v In Zeile 69 wird der PrintWriter.print-Methode ein Aufruf hinzugefügt, um
die Rückgabe der Daten an den Client zu modellieren.
Neues Web-Service-Framework for Frameworks-Handler mit dem vorhandenen angepassten Web Service Description Language-Scanner integrieren
Informationen zu diesem Vorgang
Beim Überprüfen einer JAX-RS- oder JAX-WS-Anwendung mit AppScan Source
sollten Sie sicherstellen, dass Sie alle Webserviceeingangspunkte erfassen, sodass
Sie keine Schwachstellen in Ihrer Anwendung übersehen. In diesem Dokument
wird ein Verfahren beschrieben, wie Sie dies durchführen können. Es werden die
Schritte beschrieben, um einen neuen Framework for Frameworks (F4F)-Handler
zu integrieren, der für die Analyse von nicht unterstützten Web-Service-Frameworks mit dem angepassten Web Service Description Language (WSDL)-Scanner
verwendet wird.
Dies ist notwendig, damit der WSDL-Scanner zwischen den Webserviceeingangspunkten, die vom neuen F4F-Handler bereits ermittelt wurden, und den Webserviceeingangspunkten, die in der WSDL-Datei vorhanden sind, unterscheiden kann.
Mit diesen Informationen kann der WSDL-Scanner die Konfigurationsergebnisse
eliminieren, die bereits vom neuen F4F-Handler analysiert wurden.
v „Den Web-Service-F4F-Handler mit dem angepassten WSDL-Scanner verbinden”
v „Signaturzuordnung” auf Seite 131
Den Web-Service-F4F-Handler mit dem angepassten WSDLScanner verbinden
Vorbereitende Schritte
In diesem Abschnitt wird vorausgesetzt, dass der Haupt-F4F-Handler und die synthetische Methodengeneration bereits entwickelt und getestet wurden.
Kapitel 7. Framework for Frameworks-APIs handhaben
129
Vorgehensweise
1. Fügen Sie eine Abhängigkeit von Ihrem Plug-in zu
com.ibm.appscan.frameworks.wsdl.util hinzu, der die Helper-APIs zum Melden der gefundenen Services einschließt. Sie ist auch im Ordner walalib vorhanden.
2. Fügen Sie im Haupt-Handler (der die Klasse F4FHandler erweitert), vor der Methode handleApp() diese Zeilen hinzu:
String filePath = WSDLReportingUtil.getServicesFilePath
(getFrameworksInput().getFileLocs());
if (filePath!=null) {
WSDLReportingUtil.initXmlDocument(filePath);
}
Mit diesen Zeilen wird eine temporäre Datei erstellt, die vom angepassten
WSDL-Scanner verwendet wird.
3. Fügen Sie am Ende der Methode handleApp() folgende Zeile hinzu, um sicherzustellen, dass alle gemeldeten Services gespeichert werden, bevor der F4FHandler beendet wird:
WSDLReportingUtil.saveXmlDocument();
4. Um einen Service zu melden, fügen Sie einen Aufruf zu einer dieser APIs aus
der API WSDLReportingUtil hinzu:
v reportService(String targetNameSpace, String serviceName, String
methodSignature)
v reportService(String targetNamespace, String serviceName, String
operationName, ArrayList<String> wsdlParams)
Hierbei gilt:
v targetNameSpace ist der Zielnamensbereich des Services. In JAX-WS befindet
er sich in den Anmerkungen oder er entspricht dem Package-Namen.
v serviceName ist der Name des Services. Er befindet sich in den Anmerkungen
oder er entspricht dem Namen der Serviceklasse.
v methodSignature ist die Signatur der Methode aus der WSDL-Datei mit einigen Vereinfachungen.
v operationName ist der Name der Methode, der mit dem Namen der Operation in einem Porttyp in der WSDL-Datei verbunden ist.
v wsdlParams ist die Liste der Parametertypen in einem einfachen WSDL-Format.
5. Zurzeit kann der angepasste WSDL-Scanner als Standalone-Scanner oder als
Bestandteil einer Java/JSP-Prüfung verwendet werden. Wenn der neue F4FWeb-Service-Handler mit einer anderen Sprache als Java (beispielsweise .NET)
verwendet werden soll, stellen Sie sicher, dass der angepasste WSDL-Scanner
mit dem richtigen Überprüfungstyp aufgerufen wird. Führen Sie dazu folgende
Schritte durch:
a. Gehen Sie zum <data_dir>/ltd-Verzeichnis (wobei <datenverzeichnis> die
Position Ihrer AppScan Source-Programmdaten ist, die in Kapitel 9, „Positionen für Installations- und Benutzerdatendateien”, auf Seite 143 beschrieben
wird).
b. Erstellen Sie eine Backup-Kopie aller Dateien, um unerwartete Probleme zu
vermeiden.
c. Öffnen Sie die .ltd-Datei, die dem richtigen Überprüfungstyp entspricht.
Für C++ öffnen Sie beispielsweise die Datei cpp.ltd.
d. Fügen Sie die folgende Zeile hinzu, bevor Sie den Tag
<LanguageTypeDefinition> schließen:
<Scanner name="wsdl"/>
130
IBM Security AppScan Source Utilities: Benutzerhandbuch
e. Kopieren Sie den Wert file_extention_set_name, der für den nächsten
Schritt erforderlich ist.
f. Öffnen Sie file_extensions.xml und suchen Sie nach FileExtensionSet, in
dem der Name enthalten ist, der im vorherigen Schritt kopiert wurde.
g. Fügen Sie die folgende Zeile der Datei hinzu:
<FileExtension extension="wsdl" assess="true"/>
h. Speichern Sie alle Dateien und starten Sie AppScan Source neu. Der angepasste WSDL-Scanner wird jetzt als Bestandteil der vollständigen Anwendungsüberprüfung ausgeführt.
Ergebnisse
An dieser Stelle zeigt der angepasste WSDL-Scanner nur Konfigurationsergebnisse
(in der Ansicht 'Ergebnisse') der WSDL-Dateien an, die von Ihrem Framework
nicht implementiert wurden. Alle Services von WSDL-Dateien, die bereits in der
Anwendung implementiert wurden, werden nicht als Konfigurationsergebnis angezeigt. Sie werden von neuen Web-Services-F4F-Handler analysiert.
Signaturzuordnung
Informationen zu diesem Vorgang
Der angepasste WSDL-Scanner versucht, die gemeldeten Methoden mit den entsprechenden WSDL-Services, WSDL-Porttypen und WSDL-Operationen abzugleichen. Daher werden die Web-Services im WSDL-Format gemeldet. Einige Vereinfachungen wurden hinzugefügt, um das Verständnis zu erleichtern:
v Für die primitiven XSD-Typen muss kein Zielnamensbereich hinzugefügt werden, sondern nur der Name (z. B. string, int, float, double).
v Für Sammlungen und Arrays wird [] nach dem Typ hinzugefügt (z. B. string[],
int[]).
v Bei Klassentypen, die den komplexen XSD-Typen (mit JAX-B oder anderen Technologien) zugeordnet werden, wird der Typ wie folgt angezeigt:
http//my-types/myxsdnamespace/:Customer
Der Namensbereich sollte als Teil der Java-Anmerkung verfügbar sein. Wenn er
kein Teil der Java-Anmerkung ist, sollte er dem Namensbereich des aufrufenden
Services oder des Pakets je nach Implementierung des Frameworks sein.
Anmerkung: Zuordnungsfehler verhindern häufig, dass der angepasste WSDLScanner Ihre gemeldete Web-Service-API mit der dazugehörigen WSDL-Operation
abgeglichen wird. Wenn dies der Fall ist, wird ein zusätzliches Konfigurationsergebnis angezeigt. Dieses zusätzliche Ergebnis ist ein Fehlalarm und weist auf ein
Zuordnungsproblem hin.
Wenn Sie nicht wissen, wie die erwartete Signatur aussehen soll, führen Sie eine
WSDL-Überprüfung von AppScan Source auf den WSDL-Dateien selbst durch. Dadurch werden Ergebnisse für alle Operationen der WSDL-Services generiert. Wenn
Sie auf ein Ergebnis klicken, wird die Methodensignatur in der Ansicht für die Ergebnisdetails angezeigt.
Kapitel 7. Framework for Frameworks-APIs handhaben
131
132
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 8. Fehlernachrichten in AppScan Source-Clientkomponenten
CRWSA0900E Das ausgeschlossene Bundle kann nicht umbenannt werden.
Das 'Ausgeschlossene Bundle' ist ein integriertes Bundle, das alle ausgeschlossenen
Ergebnisse enthält. Es kann nicht umbenannt werden.
CRWSA0907E Hinzufügen von <> ist fehlgeschlagen, weil es bereits in der Datenbank vorhanden ist und nicht überschrieben
werden kann.
Die angepasste Regel ist bereits in der AppScan Source-Datenbank vorhanden und
kann daher nicht neu erstellt oder überschrieben werden. Dies tritt in einer der folgenden Situationen auf:
v Die Regel, die im Lieferumfang der Datenbank enthalten ist, ist als Senke markiert. Sie versuchen, eine angepasste Regel zu erstellen, die die Senke als Verbreitung von als unsicher eingestuften Daten markiert.
v Die Regel, die im Lieferumfang der Datenbank enthalten ist, ist als Verbreitung
von als unsicher eingestuften Daten markiert. Sie versuchen, eine angepasste Regel zu erstellen, die diese Regel ändert, indem eine Verbreitung von als unsicher
eingestuften Daten hinzugefügt wird.
CRWSA0920E Beim Importieren der Signaturen in das Projekt
sind Fehler aufgetreten.
Stellen Sie vor dem Importieren von Signaturen sicher, dass das Projekt ordnungsgemäß konfiguriert ist.
CRWSA0925E Der für "{0}" eingegebene Wert ist ungültig.
Der eingegebene Wert weist kein gültiges Format auf. Geben Sie ein gültiges Format ein.
CRWSA0930E Das für "{0}" eingegebene Datenformat ist ungültig.
CRWSA0935E Das für "{0}" eingegebene Zahlenformat ist ungültig.
CRWSA0940E Unbekannter Benutzer.
Stellen Sie sicher, dass der Benutzer auf dem Enterprise Server vorhanden ist und
dass Sie die Benutzerdaten ordnungsgemäß eingegeben haben.
CRWSA0945E Die angegebene Benutzer-ID ist zu kurz. BenutzerIDs müssen eine Mindestlänge von 1 Zeichen aufweisen.
CRWSA0950E Das angegebene Kennwort ist zu kurz. Kennwörter
müssen eine Mindestlänge von 6 Zeichen aufweisen.
© Copyright IBM Corp. 2003, 2015
133
CRWSA0955E Die angegebene Benutzer-ID ist zu lang. BenutzerIDs dürfen höchstens 255 Zeichen lang sein.
CRWSA0960E Die angegebene Benutzer-ID enthält ungültige Zeichen.
CRWSA0965E Das angegebene Kennwort ist zu lang. Kennwörter
dürfen höchstens 16 Zeichen lang sein.
CRWSA0970E Die angegebenen Kennwörter stimmen nicht überein. Geben Sie die Kennwörter noch einmal ein.
CRWSA0975E Der Benutzer mit Administratorberechtigung kann
nicht geändert werden.
CRWSA0980E Die angegebene E-Mail-Adresse ist ungültig. Das
erforderliche Format lautet <Benutzer>@<Domäne>, wobei <Domäne> nicht die Länge von 255 Zeichen überschreiten darf.
CRWSA0985E Eine Angabe im Feld 'E-Mail' ist erforderlich.
CRWSA0990E Eine Angabe im Feld 'Name' ist erforderlich.
CRWSA0995E Die angegebene Benutzer-ID ist im Repository vorhanden; die Felder 'Name' und 'E-Mail' wurden aktualisiert.
CRWSA1010W Benutzer {0} konnte nicht hinzugefügt werden.
Informationen finden Sie in der Hilfe zu AppScan Enterprise Server.
CRWSA1050E Unerwarteter Fehler beim Laden des externen Editors.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
CRWSA1055E Fehler beim Laden des externen Editors. Die Eigenschaftendatei ist beschädigt.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
CRWSA1060E Fehler beim Laden des externen Editors. Die Eigenschaftendatei fehlt.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
CRWSA1065E Fehler beim Laden des externen Editors. Der bevorzugte Editor kann nicht geladen werden.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
134
IBM Security AppScan Source Utilities: Benutzerhandbuch
CRWSA1070E Fehler beim Laden des externen Editors. Das Editor-Plug-in meldete einen Fehler.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
CRWSA1075E Fehler beim Laden des externen Editors. Die ausführbare Instanz kann nicht erstellt werden.
Stellen Sie sicher, dass der externe Editor verfügbar ist und ordnungsgemäß funktioniert.
CRWSA1080E Fehler beim Laden von Eclipse. Verbindungsaufbau fehlgeschlagen.
Stellen Sie sicher, dass Sie Eclipse ordnungsgemäß konfiguriert haben, sodass es als
externer Editor verwendet werden kann (verwenden Sie eine Eclipse-Instanz, die
die Datei com.ouncelabs.core.filelauncher.jar im zugehörigen Verzeichnis
plugins\ enthält).
CRWSA1085E Fehler beim Laden von Eclipse. Keine Antwort
vom Server.
Stellen Sie sicher, dass Sie Eclipse ordnungsgemäß konfiguriert haben, sodass es als
externer Editor verwendet werden kann (verwenden Sie eine Eclipse-Instanz, die
die Datei com.ouncelabs.core.filelauncher.jar im zugehörigen Verzeichnis
plugins\ enthält).
CRWSA1090E Fehler beim Laden von Eclipse. Protokollfehler.
CRWSA1095E Fehler beim Laden von Eclipse. Pfad zu Eclipse ist
ungültig.
Stellen Sie sicher, dass Sie Eclipse ordnungsgemäß konfiguriert haben, sodass es als
externer Editor verwendet werden kann (verwenden Sie eine Eclipse-Instanz, die
die Datei com.ouncelabs.core.filelauncher.jar im zugehörigen Verzeichnis
plugins\ enthält).
CRWSA1100E Fehler beim Laden des angepassten Editors. {0}
kann nicht ausgeführt werden.
CRWSA1120E Überprüfung fehlgeschlagen.
CRWSA1125E Beim Abrufen der Überprüfungsergebnisse ist ein
Fehler aufgetreten.
CRWSA1150W Warnung: Wenn "{0}" als Prüfroutine markiert
wird, hat dies keine Auswirkung auf das aktuelle Ergebnis bzw.
auf das Tracediagramm. Möchten Sie den Stammknoten wirklich
als Prüfroutine hinzufügen?
CRWSA1155E Mindestens eine Quelle, eine Senke, eine Quelleneigenschaft oder eine Senkeneigenschaft ist erforderlich.
CRWSA1160E Der Assistent für angepasste Regeln kann nicht
gestartet werden, wenn eine Beurteilung durchgeführt wird.
Kapitel 8. Fehlernachrichten in AppScan Source-Clientkomponenten
135
CRWSA1165E Fehler beim Hinzufügen der angepassten Regeln.
CRWSA1170E Hinzufügen von {0} ist fehlgeschlagen.
CRWSA1175E Hinzufügen von {0} ist fehlgeschlagen, weil es bereits in der Datenbank vorhanden ist und nicht überschrieben
werden kann.
CRWSA1185E Die Überprüfung ist aufgrund eines Fehlers in der
Kompilierung fehlgeschlagen.
CRWSA1190E Kompilierung fehlgeschlagen.
CRWSA1195E Beim Versuch, den Editor zu öffnen, ist ein Fehler
aufgetreten.
Versuchen Sie AppScan Source erneut zu starten, falls das Öffnen des Editors fehlschlägt.
CRWSA1200E Die ausgewählte Datei wurde auf diesem System
nicht gefunden.
CRWSA1205E Beim Erstellen von Quellcodemarkierungen für die
Beurteilung ist ein Fehler aufgetreten.
CRWSA1210E Mindestens eine Quellendatei konnte nicht zur
Nutzung durch die Snippetfunktion für Quellcode gefunden werden. Möchten Sie nach der Speicherposition der fehlenden Dateien abgefragt werden?
CRWSA1215E Herstellen einer Verbindung zu AppScan Enterprise Console ist fehlgeschlagen. Überprüfen Sie, dass der Server
an der angegebenen Position aktiv ist.
CRWSA1220E Überschreitung des Anmeldezeitlimits nach
{0,number} Sekunden. Es wird empfohlen, dass Sie die AppScan
Enterprise Console-Services erneut starten.
CRWSA1225E Fehler beim Ablegen nicht gespeicherter Filter. Die
Änderungen an den Filtern werden nicht gespeichert.
CRWSA1230E Während des Durchsuchens kann die Beurteilung
nicht gespeichert werden.
CRWSA1240E Anwendung nicht gefunden.
CRWSA1245E {0} konnte nicht gefunden werden.
Überprüfen Sie die Speicherposition der angegebenen Java Runtime Environment
(JRE).
CRWSA1250E 'startup.jar' oder das Plug-in 'org.eclipse.equinox.launcher' kann nicht gefunden werden.
Überprüfen Sie die angegebene Eclipse-basierte Installation.
136
IBM Security AppScan Source Utilities: Benutzerhandbuch
CRWSA1290W Mindestens ein Projekt weist kein Java Development Kit (JDK) auf. Für diese Projekte wurde das standardmäßige JDK festgelegt.
Das angegebene JDK eines importierten Projekts wurde von AppScan Source nicht
erkannt. Um dies zu korrigieren, fügen Sie es als erkannte JDK hinzu, indem Sie
die Seite für Java und JSP-Benutzervorgaben verwenden.
CRWSA1295W Das Projekt weist kein Java Development Kit
(JDK) auf. Für dieses Projekt wurde das standardmäßige JDK
festgelegt.
Das angegebene JDK eines importierten Projekts wurde von AppScan Source nicht
erkannt. Um dies zu korrigieren, fügen Sie es als erkannte JDK hinzu, indem Sie
die Seite für Java und JSP-Benutzervorgaben verwenden.
CRWSA1300E Mindestens ein Projekt weist kein JDK auf und es
ist kein Standard-JDK festgelegt. Nachdem Sie auf 'OK' geklickt
haben, werden Sie zur Wahl Ihres Standard-JDKs aufgefordert.
Künftig wird dieses JDK für alle Projekte verwendet, bei denen
kein JDK explizit festgelegt ist.
CRWSA1305E Die Anwendung ist schreibgeschützt. Änderungen,
die an der Beurteilung vorgenommen werden, bleiben bei künftigen Überprüfungen nicht bestehen.
Es ist möglich, dass es sich um eine ferne Anwendung handelt oder dass sie gespeichert werden muss. In beiden Fällen stehen Änderungen, die an der Beurteilung vorgenommen werden, zukünftigen Überprüfungen nicht zur Verfügung.
CRWSA1340E Registrierung von "{0}" fehlgeschlagen.
CRWSA1345E Die Anwendungsdatei ist nicht beschreibbar.
CRWSA1350E Fehler beim Löschen von Einträgen.
CRWSA1355E Eine Anwendung kann nicht gelöscht werden,
während eine Beurteilung ausgeführt wird.
CRWSA1360E Ein Projekt kann nicht gelöscht werden, während
eine Beurteilung ausgeführt wird.
CRWSA1365W Alle Projekte, auf die die Änderungen Anwendung
finden sollen, müssen aktualisiert werden.
CRWSA1370W Einige der ausgewählten Ergebnisse verfügen
über bestehende Anmerkungen. Möchten Sie sie wirklich überschreiben?
CRWSA1375W Export in Datei fehlgeschlagen.
CRWSA1380W Keine Ergebnisse für Export vorhanden. In den
Beurteilungsergebnissen fehlen alle ausgewählten Ergebnisse.
CRWSA1383E Keine Ergebnisse zur Übergabe. Alle ausgewählten Ergebnisse wurden zuvor übergeben und die Vorgabe 'Fehler
Kapitel 8. Fehlernachrichten in AppScan Source-Clientkomponenten
137
nur einmal übergeben' wurde festgelegt.
CRWSA1385W Die folgenden Felder müssen ausgefüllt werden,
um einen Fehler zu übergeben:
CRWSA1395W Bundle erfolgreich in {0} gespeichert.
CRWSA1400E Die Projektdatei "{0}" konnte nicht gefunden werden.
Prüfen Sie, ob die AppScan Source-Projektdatei vorhanden ist.
CRWSA1405E Das ASP.NET-Verzeichnis "{0}" konnte nicht gefunden werden.
Prüfen Sie, ob das ASP.NET-Verzeichnis vorhanden ist.
CRWSA1410E Fehler beim Importieren der Projektdatei "{0}".
CRWSA1415E Fehler beim Importieren des ASP.NET-Verzeichnisses "{0}".
CRWSA1420E Fehler beim Erstellen des Projekts.
CRWSA1425E Das Arbeitsverzeichnis "{0}" existiert nicht. Wählen Sie ein gültiges Verzeichnis aus.
CRWSA1430E Das Web-Kontextstammelement "{0}" existiert
nicht. Wählen Sie ein gültiges Verzeichnis oder eine gültige
WAR-Datei aus.
CRWSA1435E Bei dem Web-Kontextstammverzeichnis "{0}" darf
es sich nicht um ein übergeordnetes Verzeichnis oder um dasselbe Verzeichnis wie das Projektverzeichnis "{1}" handeln.
CRWSA1440E Das Kontextstammelement "{0}" ist nicht vorhanden. Wählen Sie ein gültiges Verzeichnis aus.
CRWSA1445E Die Datei bzw. das Verzeichnis "{0}" ist nicht vorhanden. Wählen Sie eine gültige Datei bzw. ein gültiges Verzeichnis aus.
CRWSA1450E Bei dem Inhaltsstammverzeichnis "{0}" darf es
sich nicht um ein übergeordnetes Verzeichnis oder um dasselbe
Verzeichnis wie das Projektverzeichnis "{1}" handeln.
CRWSA1455E Die Methode "{0}" verfügt bereits über ein Aktionsobjekt für Typ "{1}".
CRWSA1460E "{0}" ist kein gültiges Verzeichnis.
CRWSA1465E JDK für Projekt fehlt.
CRWSA1470E Dieses Java-/JSP-Projekt verweist auf ein ungültiges Java Development Kit ({0}). Es wird ein Standard-JDK zur
Verfügung gestellt.
138
IBM Security AppScan Source Utilities: Benutzerhandbuch
CRWSA1475E JDK-Name ist bereits vorhanden.
CRWSA1480E Ein JDK namens "{0}" ist bereits vorhanden.
Geben Sie einen eindeutigen JDK-Namen an.
CRWSA1485E Der JDK-Name muss über mindestens ein Zeichen
verfügen.
CRWSA1490E Für diese Operation muss ein JDK ausgewählt
werden.
Ein vorhandenes JDK muss ausgewählt werden.
CRWSA1495E Speichern nicht möglich.
CRWSA1500E Speichern nicht möglich, während eine Beurteilung ausgeführt wird.
CRWSA1505E Das Quellenstammelement "{0}" ist bereits als
Stammelement vorhanden.
CRWSA1510E Das Verzeichnis "{0}" ist nicht vorhanden. Wählen
Sie ein gültiges Verzeichnis aus.
CRWSA1515E Das Vorkompilierungsverzeichnis "{0}" ist nicht
vorhanden. Wählen Sie ein gültiges Verzeichnis aus.
CRWSA1520E Die Klasse {0} ist sowohl in der Abhängigkeit {1}
als auch auf dem Quellenpfad vorhanden.
Überprüfen Sie die angegebenen Abhängigkeiten.
CRWSA1525E Nicht erwarteter Dateityp auf Klassenpfad ({0}).
Stellen Sie sicher, dass Ihr Java-Projekt nur .jar-, .class- oder .java-Dateien enthält.
CRWSA1530E Projekte können nicht validiert werden, während
eine Überprüfung ausgeführt wird.
CRWSA1535E
CRWSA1540E Der Konfigurationsname ist leer.
CRWSA1545E Ungültiges Quellenstammverzeichnis.
CRWSA1550E Quellenstammverzeichnis "{0}" ist ungültig. Quellenstammverzeichnisse, die Dateien sind, müssen sich unter
dem Arbeitsverzeichnis befinden.
CRWSA1555E Es konnte kein gültiges Web-Kontextstammverzeichnis gefunden werden.
CRWSA1565E Codierungsroutine für {0} erfolgreich erstellt.
Kapitel 8. Fehlernachrichten in AppScan Source-Clientkomponenten
139
CRWSA1568E Variablen im Pfad "{0}" konnten nicht aufgelöst
werden.
Fügen Sie die Pfadvariable auf der Vorgabenseite 'Variablen ändern' hinzu.
CRWSA1570E Ungültiger Attributname {0}.
CRWSA1575E Ungültiger Attributwert {0}.
CRWSA1580E Sie müssen zunächst ein Attribut erstellen, bevor
Sie Werte hinzufügen können.
CRWSA1585E Die Anwendung muss einen nicht leeren Namen
haben.
CRWSA1590E Doppelter Eintrag "{0}". Geben Sie einen eindeutigen Wert an.
CRWSA1595E Der Name darf nicht leer sein.
CRWSA1600E Zum Generieren des Berichts muss eine Ansicht
mit Ergebnissen ausgewählt werden.
CRWSA1625E Zugriff verweigert. Aktuelles Konto hat keine Berechtigung für {0}.
CRWSA1630E Beim Import des Arbeitsbereichs ist ein Fehler
aufgetreten. Stellen Sie sicher, dass Ihr Importmodul unter 'Vorgaben > Importmodule des Eclipse-Arbeitsbereichs' ordnungsgemäß konfiguriert ist.
CRWSA1640E Projekt kann nicht hinzugefügt werden. {0} ist ein
Verweis oder eine schreibgeschützte Anwendung.
Die Anwendung ist schreibgeschützt oder es handelt sich um einen Verweis auf einen Eclipse-Arbeitsbereich oder eine Microsoft Visual Studio-Lösung. Es können
keine Projekte hinzugefügt werden.
CRWSA1650E Formatvorlage {0} kann nicht gefunden werden.
CRWSA1655E Für das Muster ist ein Name erforderlich.
CRWSA1660E Für das Muster muss mindestens ein Kriterium angegeben werden.
CRWSA1665E Die Kriterien dürfen nicht leer sein.
CRWSA1670E Für das Muster ist eine Datei erforderlich.
CRWSA1675E Eine Überprüfungsregel mit dem Namen "{0}" ist
bereits vorhanden. Wählen Sie einen eindeutigen Namen aus.
CRWSA1700E Der Berichtsentwurf ist derzeit leer. Fügen Sie in
der Registerkarte 'Berichtsentwurf' Berichtselemente hinzu.
140
IBM Security AppScan Source Utilities: Benutzerhandbuch
CRWSA1705E Es sind keine zu exportierenden Bundles vorhanden.
CRWSA1710E Es ist keine offene Beurteilung vorhanden, die exportiert werden kann.
CRWSA1715E Die Kennwörter, die Sie in den Feldern 'Neues
Kennwort' und 'Neues Kennwort bestätigen' eingegeben haben,
stimmen nicht überein.
CRWSA1725E Das Kennwort ist zu kurz. Geben Sie ein Kennwort
mit mindestens 6 und maximal 16 Zeichen ein.
CRWSA1730E Das Kennwort ist zu lang. Geben Sie ein Kennwort
mit mindestens 6 und maximal 16 Zeichen ein.
CRWSA1735E Datei mit Einstellungen "{0}" hat keinen Anzeigenamen und wird übersprungen.
CRWSA1736E Datei <dateiname> konnte nicht geöffnet werden.
Stellen Sie sicher, dass der Benutzer, für den der Automationsserver läuft, aktiv ist und ausreichend Berechtigungen für die
Datei hat.
CRWSA1737E Datei <dateiname> konnte nicht geöffnet werden.
Stellen Sie sicher, dass der Benutzer, für den der Automationsserver läuft, aktiv ist und ausreichend Berechtigungen für die
Datei hat und dass es sich um eine lokale Anwendung handelt.
CRWSA1740E Die Datei mit Einstellungen namens "{0}" ist bereits geöffnet.
CRWSA1745E Die Datei mit Einstellungen "{0}" ist für den Benutzer nicht sichtbar.
CRWSA1750I Diese Registerkarte enthält einige Einstellungen,
die einen Neustart der Services von AppScan Source erfordern,
damit Änderungen wirksam werden. Schließen Sie vor dem Neustart der Services von AppScan Source alle Clientanwendungen
von AppScan Source, die auf diesem Computer ausgeführt werden oder mit ihm verbunden sind. Möchten Sie die Services jetzt
erneut starten?
CRWSA1755E {0} verfügt über eine Einstellung, bei der mindestens eines der erforderlichen Attribute (name, display_name oder
type) fehlt. Diese Datei wird nicht geladen.
CRWSA1760E Es ist ein Lizenzierungsfehler aufgetreten:
CRWSA1775E Die Initialisierung der Verbindung der AppScan
Enterprise Console ist fehlgeschlagen. Überprüfen Sie die Verfügbarkeit der AppScan Enterprise Console mit diesen Einstellungen in einem externen Browser.
Kapitel 8. Fehlernachrichten in AppScan Source-Clientkomponenten
141
CRWSA1780E CRWSA1780E Die Initialisierung der Verbindung
der AppScan Enterprise Console ist fehlgeschlagen. Prüfen Sie
die Protokolle und/oder überprüfen Sie die Verfügbarkeit der
AppScan Enterprise Console mit diesen Einstellungen in einem
externen Browser. - Fehlerdetails: - {0}
CRWSA1790E Veröffentlichung der Beurteilung in AppScan
Enterprise Console ist fehlgeschlagen. Prüfen Sie die Protokolle
und/oder wenden Sie sich an Ihren Systemadministrator.
CRWSA1795E Initialisierung des Veröffentlichungsservice fehlgeschlagen. Prüfen Sie die Verbindungseinstellungen Ihrer
AppScan Enterprise Console.
CRWSA1800E Initialisierung des Veröffentlichungsservice fehlgeschlagen. Überprüfen Sie die Verfügbarkeit der AppScan Enterprise Console und Ihre Fähigkeit, sich anzumelden.
CRWSA1805E Datei kann nicht heruntergeladen werden. Beim
Versuch, eine Verbindung zu der Site aufzubauen, ist ein Fehler
aufgetreten.
Stellen Sie sicher, dass Ihre Internetverbindung funktioniert und dass die Site verfügbar ist.
CRWSA1810E Bevor das in der Produktversion 7.0.0 erstellte
Bundle geöffnet werden kann, müssen Sie sich anmelden.
CRWSA9999E AppScan Source for Analysis hat einen kritischen
Fehler festgestellt und muss geschlossen werden.
142
IBM Security AppScan Source Utilities: Benutzerhandbuch
Kapitel 9. Positionen für Installations- und Benutzerdatendateien
Wenn Sie AppScan Source installieren, werden Benutzerdaten- und Konfigurationsdateien außerhalb des Installationsverzeichnisses gespeichert.
v „Standardinstallationsverzeichnis”
v „Standarddatenverzeichnis für AppScan Source”
v „Position der temporären Dateien von AppScan Source” auf Seite 144
Standardinstallationsverzeichnis
Wenn AppScan Source installiert wird, dann wird die Software unter einer der folgenden Standardpositionen abgelegt:
v 32-Bit Versionen von Microsoft Windows:
<SYSTEMDRIVE>:\Program Files\IBM\AppScanSource
v 64-Bit Versionen von Microsoft Windows:
<SYSTEMDRIVE>:\Program Files (x86)\IBM\AppScanSource
v Linux: Wenn Sie der Rootbenutzer sind, dann installiert der Installationsassistent
Ihre Software in /opt/ibm/appscansource. Wenn Sie nicht der Rootbenutzer sind,
können Sie das AppScan Source for Development-Eclipse-Plug-in installieren,
das standardmäßig in <ausgangsverzeichnis>/AppScan_Source installiert wird.
v OS X: /Applications/AppScanSource.app
Wichtig:
v Der Name des Installationsverzeichnisses darf nur englische Zeichen enthalten.
Ordner mit Namen, die andere als englische Zeichen enthalten, sind nicht zulässig.
v Wenn Sie unter Windows installieren, müssen Sie über Administratorrechte verfügen, um AppScan Source-Komponenten installieren zu können.
v Wenn Sie unter Linux installieren, müssen Sie über Rootberechtigungen verfügen, um AppScan Source-Serverkomponenten installieren zu können.
Standarddatenverzeichnis für AppScan Source
AppScan Source-Daten bestehen aus Elementen wie z. B. Konfigurations-, Beispielund Protokolldateien. Wenn AppScan Source installiert wird, dann werden Datendateien standardmäßig unter den folgenden Positionen abgelegt:
v Microsoft Windows: <Systemlaufwerk>:\ProgramData\IBM\AppScanSource
Anmerkung: Bei ProgramData\ handelt es sich um einen verdeckten Ordner. Um
ihn anzuzeigen, müssen Sie die Benutzervorgaben für die Anzeige im Explorer
ändern, um verdeckte Dateien und Ordner anzuzeigen.
v Linux: /var/opt/ibm/appscansource
v OS X: /Users/Shared/AppScanSource
Informationen zum Ändern der Position des AppScan Source-Datenverzeichnisses
finden Sie in „Datenverzeichnis für AppScan Source ändern” auf Seite 144.
© Copyright IBM Corp. 2003, 2015
143
Position der temporären Dateien von AppScan Source
Bestimmte AppScan Source-Operationen führen zur Erstellung temporärer Dateien,
die standardmäßig unter den folgenden Positionen abgelegt sind:
v Microsoft Windows: <Systemlaufwerk>:\ProgramData\IBM\AppScanSource\temp
Anmerkung: Bei ProgramData\ handelt es sich um einen verdeckten Ordner. Um
ihn anzuzeigen, müssen Sie die Benutzervorgaben für die Anzeige im Explorer
ändern, um verdeckte Dateien und Ordner anzuzeigen.
v Linux: /var/opt/ibm/appscansource/temp
v OS X: /Users/Shared/AppScanSource/temp
Die Position der temporären Dateien befindet sich immer in einem temporären Verzeichnis (temp) im Datenverzeichnis von AppScan Source. Sie können die Position
der temporären Dateien ändern, indem Sie das Datenverzeichnis wie in „Datenverzeichnis für AppScan Source ändern” beschrieben ändern. Dadurch wird das Verzeichnis temp unter das Datenverzeichnis versetzt, das Sie ausgewählt haben.
Datenverzeichnis für AppScan Source ändern
Bei Bedarf kann die Position des Datenverzeichnisses von AppScan Source geändert werden, um den Festplattenspeicherplatz zu verwalten. Sie können die Position nach der AppScan Source-Installation ändern, indem Sie die in diesem Abschnitt aufgeführten Schritte ausführen.
Vorbereitende Schritte
Bevor Sie diese Aufgabe ausführen, müssen Sie sicherstellen, dass alle AppScan
Source-Clientanwendungen beendet oder heruntergefahren wurden. Folgende
AppScan Source-Clientanwendungen stehen zur Verfügung:
v AppScan Source for Analysis
v AppScan Source for Development (Eclipse- oder Visual Studio-Plug-in) (nur unter Windows und Linux unterstützt)
v AppScan Source-Befehlzeilenschnittstelle (CLI)
v AppScan Source for Automation
Darüber hinaus müssen Sie, wenn auf ihrem System AppScan Source for Automation installiert wurde, sicherstellen, dass der Automatisierungsserver heruntergefahren wurde:
v Unter Windows müssen Sie den Dienst (Service) IBM Security AppScan Source
Automation stoppen.
v Unter Linux müssen Sie den folgenden Befehl eingeben: /etc/init.d/ounceautod
stop
v Geben Sie auf OS X diesen Befehl ein: launchctl stop com.ibm.appscan.autod
Vorgehensweise
1. Definieren Sie die Umgebungsvariable
APPSCAN_SOURCE_SHARED_DATA=<datenverzeichnis>. Hierbei steht
<datenverzeichnis> für die Position, unter der die Daten von AppScan Source
gespeichert werden sollen.
Anmerkung:
144
IBM Security AppScan Source Utilities: Benutzerhandbuch
v Die Position von <datenverzeichnis> muss mit einem vollständigen und absoluten Pfad angegeben werden, der auf demselben System, auf dem auch
die AppScan Source-Installation implementiert ist, bereits vorhanden sein
muss.
v Der Verzeichnisname <data_dir> darf nur englische Zeichen enthalten. Ordner mit Namen, die andere als englische Zeichen enthalten, sind nicht zulässig.
2. Suchen Sie das Standarddatenverzeichnis, das bei der Installation von AppScan
Source erstellt wurde (weitere Informationen zur Position des Standarddatenverzeichnisses finden Sie in „Standarddatenverzeichnis für AppScan Source”
auf Seite 143).
3. Kopieren Sie den Inhalt des Standarddatenverzeichnisses an die Position von
<datenverzeichnis>, die in der Umgebungsvariablen angegeben wurde, oder
verschieben Sie den Inhalt dorthin.
4. Gilt nur, wenn AppScan Source for Automation unter Linux Linux installiert
wurde:
a. Bearbeiten Sie die Datei /etc/init.d/ounceautod.
b. Suchen Sie die folgende Zeile:
su - ounce -c
’export LD_LIBRARY_PATH="/opt/IBM/AppScan_Source/bin":$LD_LIBRARY_PATH &&
cd "/opt/IBM/AppScan_Source/bin" &&
"/opt/IBM/AppScan_Source/bin/ounceautod" -s’ >>
"/var/opt/ibm/appscansource/logs/ounceautod_output.log" 2>&1 &
Ersetzen Sie sie durch den folgenden Code:
su - ounce -c
’export APPSCAN_SOURCE_SHARED_DATA=<new data directory path here> &&
export LD_LIBRARY_PATH="/opt/IBM/AppScan_Source/bin":$LD_LIBRARY_PATH &&
cd "/opt/IBM/AppScan_Source/bin" &&
"/opt/IBM/AppScan_Source/bin/ounceautod" -s’ >>
"<new data directory path here>/logs/ounceautod_output.log" 2>&1 &
Anmerkung: Der obige Befehl stellt eine Zeile dar.
c. Speichern Sie die Datei /etc/init.d/ounceautod.
Nächste Schritte
Wenn Sie AppScan Source for Automation installiert haben, dann starten Sie den
Automatisierungsserver:
v Unter Windows müssen Sie den Dienst (Service) IBM Security AppScan Source
Automation starten.
v Unter Linux müssen Sie den folgenden Befehl eingeben: /etc/init.d/unceautod
start
v Geben Sie auf OS X diesen Befehl ein: launchctl start com.ibm.appscan.autod
Kapitel 9. Positionen für Installations- und Benutzerdatendateien
145
146
IBM Security AppScan Source Utilities: Benutzerhandbuch
Bemerkungen
Die vorliegenden Informationen wurden für Produkte und Services entwickelt, die
auf dem deutschen Markt angeboten werden. Möglicherweise bietet IBM die in
dieser Dokumentation beschriebenen Produkte, Services oder Funktionen in anderen Ländern nicht an. Informationen über die gegenwärtig im jeweiligen Land verfügbaren Produkte und Services sind beim zuständigen IBM Ansprechpartner erhältlich. Hinweise auf IBM Lizenzprogramme oder andere IBM Produkte bedeuten
nicht, dass nur Programme, Produkte oder Services von IBM verwendet werden
können. Anstelle der IBM Produkte, Programme oder Services können auch andere, ihnen äquivalente Produkte, Programme oder Services verwendet werden, solange diese keine gewerblichen oder anderen Schutzrechte von IBM verletzen. Die
Verantwortung für den Betrieb von Produkten, Programmen und Services anderer
Anbieter liegt beim Kunden.
Für die in diesem Handbuch beschriebenen Erzeugnisse und Verfahren kann es
IBM Patente oder Patentanmeldungen geben. Mit der Auslieferung dieses Handbuchs ist keine Lizenzierung dieser Patente verbunden. Lizenzanforderungen sind
schriftlich an folgende Adresse zu richten (Anfragen an diese Adresse müssen auf
Englisch formuliert werden):
IBM Director of Licensing
IBM Europe, Middle East & Africa
Tour Descartes
2, avenue Gambetta
France
Some states do not allow disclaimer of express or implied warranties in certain
transactions, therefore, this statement might not apply to you.
Trotz sorgfältiger Bearbeitung können technische Ungenauigkeiten oder Druckfehler in dieser Veröffentlichung nicht ausgeschlossen werden. Die hier enthaltenen Informationen werden in regelmäßigen Zeitabständen aktualisiert und als Neuausgabe veröffentlicht. IBM kann ohne weitere Mitteilung jederzeit Verbesserungen und/
oder Änderungen an den in dieser Veröffentlichung beschriebenen Produkten und/
oder Programmen vornehmen.
Verweise in diesen Informationen auf Websites anderer Anbieter werden lediglich
als Service für den Kunden bereitgestellt und stellen keinerlei Billigung des Inhalts
dieser Websites dar. Das über diese Websites verfügbare Material ist nicht Bestandteil des Materials für dieses IBM Produkt. Die Verwendung dieser Websites geschieht auf eigene Verantwortung.
Werden an IBM Informationen eingesandt, können diese beliebig verwendet werden, ohne dass eine Verpflichtung gegenüber dem Einsender entsteht.
Lizenznehmer des Programms, die Informationen zu diesem Produkt wünschen
mit der Zielsetzung: (i) den Austausch von Informationen zwischen unabhängig
voneinander erstellten Programmen und anderen Programmen (einschließlich des
vorliegenden Programms) sowie (ii) die gemeinsame Nutzung der ausgetauschten
Informationen zu ermöglichen, wenden sich an folgende Adresse:
© Copyright IBM Corp. 2003, 2015
147
IBM Corporation
2Z4A/101
11400 Burnet Road
Austin, TX 78758 U.S.A.
Die Bereitstellung dieser Informationen kann unter Umständen von bestimmten
Bedingungen - in einigen Fällen auch von der Zahlung einer Gebühr - abhängig
sein.
Die Lieferung des in diesem Dokument beschriebenen Lizenzprogramms sowie des
zugehörigen Lizenzmaterials erfolgt auf der Basis der IBM Rahmenvereinbarung
bzw. der Allgemeinen Geschäftsbedingungen von IBM, der IBM Internationalen
Nutzungsbedingungen für Programmpakete oder einer äquivalenten Vereinbarung.
Alle in diesem Dokument enthaltenen Leistungsdaten stammen aus einer kontrollierten Umgebung. Die Ergebnisse, die in anderen Betriebsumgebungen erzielt werden, können daher erheblich von den hier erzielten Ergebnissen abweichen. Einige
Daten stammen möglicherweise von Systemen, deren Entwicklung noch nicht abgeschlossen ist. Eine Gewährleistung, dass diese Daten auch in allgemein verfügbaren Systemen erzielt werden, kann nicht gegeben werden. Darüber hinaus wurden
einige Daten unter Umständen durch Extrapolation berechnet. Die tatsächlichen Ergebnisse können davon abweichen. Benutzer dieses Dokuments sollten die entsprechenden Daten in ihrer spezifischen Umgebung prüfen.
Alle Informationen zu Produkten anderer Anbieter stammen von den Anbietern
der aufgeführten Produkte, deren veröffentlichten Ankündigungen oder anderen
allgemein verfügbaren Quellen. IBM hat diese Produkte nicht getestet und kann
daher keine Aussagen zu Leistung, Kompatibilität oder anderen Merkmalen machen. Fragen zu den Leistungsmerkmalen von Produkten anderer Anbieter sind an
den jeweiligen Anbieter zu richten.
Aussagen über Pläne und Absichten von IBM unterliegen Änderungen oder können zurückgenommen werden und repräsentieren nur die Ziele von IBM.
Alle von IBM angegebenen Preise sind empfohlene Richtpreise und können jederzeit ohne weitere Mitteilung geändert werden. Händlerpreise können unter Umständen von den hier genannten Preisen abweichen.
Diese Veröffentlichung dient nur zu Planungszwecken. Die in dieser Veröffentlichung enthaltenen Informationen können geändert werden, bevor die beschriebenen Produkte verfügbar sind.
Diese Veröffentlichung enthält Beispiele für Daten und Berichte des alltäglichen
Geschäftsablaufs. Sie sollen nur die Funktionen des Lizenzprogramms illustrieren
und können Namen von Personen, Firmen, Marken oder Produkten enthalten. Alle
diese Namen sind frei erfunden; Ähnlichkeiten mit tatsächlichen Namen und Adressen sind rein zufällig.
COPYRIGHTLIZENZ:
Diese Veröffentlichung enthält Beispielanwendungsprogramme, die in Quellensprache geschrieben sind und Programmiertechniken in verschiedenen Betriebsumgebungen veranschaulichen. Sie dürfen diese Beispielprogramme kostenlos kopieren,
ändern und verteilen, wenn dies zu dem Zweck geschieht, Anwendungsprogramme zu entwickeln, zu verwenden, zu vermarkten oder zu verteilen, die mit der
Anwendungsprogrammierschnittstelle für die Betriebsumgebung konform sind, für
148
IBM Security AppScan Source Utilities: Benutzerhandbuch
die diese Beispielprogramme geschrieben werden. Diese Beispiele wurden nicht
unter allen denkbaren Bedingungen getestet. Daher kann IBM die Zuverlässigkeit,
Wartungsfreundlichkeit oder Funktion dieser Programme weder zusagen noch
gewährleisten. Sie dürfen diese Beispielprogramme kostenlos kopieren, ändern und
verteilen, wenn dies zu dem Zweck geschieht, Anwendungsprogramme zu entwickeln, zu verwenden, zu vermarkten oder zu verteilen, die mit der Anwendungsprogrammierschnittstelle für die Betriebsumgebung konform sind, für die diese
Beispielprogramme geschrieben werden.
Kopien oder Teile der Beispielprogramme bzw. daraus abgeleiteter Code müssen
folgenden Copyrightvermerk beinhalten:
© (Name Ihrer Firma) (Jahr). Teile des vorliegenden Codes wurden aus Beispielprogrammen der IBM Corporation abgeleitet. © Copyright IBM Corp. _Jahr/Jahre
angeben_. All rights reserved.
Wird dieses Dokument als Softcopy (Book) angezeigt, sind Fotografien oder Farbabbildungen möglicherweise nicht sichtbar.
Marken
IBM, das IBM Logo und ibm.com sind Marken oder eingetragene Marken der International Business Machines Corp. in den USA und/oder anderen Ländern. Weitere Produkt- und Servicenamen können Marken von IBM oder anderen Herstellern sein. Eine aktuelle Liste der IBM Marken finden Sie auf der Website
"Copyright and trademark information" unter www.ibm.com/legal/
copytrade.shtml.
Adobe, Acrobat, PostScript und alle auf Adobe-basierenden Marken sind sind Marken oder eingetragene Marken der Adobe Systems Incorporated in den USA und/
oder anderen Ländern.
IT Infrastructure Library ist eine eingetragene Marke der Central Computer and
Telecommunications Agency. Die Central Computer and Telecommunications
Agency ist nunmehr in das Office of Government Commerce eingegliedert worden.
Intel, das Intel-Logo, Intel Inside, das Intel Inside-Logo, Intel Centrino, das Intel
Centrino-Logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium und Pentium sind
Marken oder eingetragene Marken der Intel Corporation oder ihrer Tochtergesellschaften in den USA oder anderen Ländern.
Linux ist eine Marke von Linus Torvalds in den USA und/oder anderen Ländern.
Microsoft, Windows, Windows NT und das Windows-Logo sind Marken der Microsoft Corporation in den USA und/oder anderen Ländern.
ITIL ist eine eingetragene Marke, eine eingetragene Gemeinschaftsmarke des Office
of Government Commerce, die beim US Patent and Trademark Office registriert ist.
UNIX ist eine eingetragene Marke von The Open Group in den USA und anderen
Ländern.
Java und alle auf Java basierenden Marken und Logos sind Marken oder eingetragene Marken der Oracle Corporation und/oder ihrer verbundenen Unternehmen.
Bemerkungen
149
Cell Broadband Engine wird unter Lizenz verwendet und ist eine Marke der Sony
Computer Entertainment, Inc. in den USA und/oder anderen Ländern.
Linear Tape-Open, LTO, das LTO-Logo, Ultrium und das Ultrium-Logo sind Marken von HP, IBM Corp. und Quantum in den USA und/oder anderen Ländern.
150
IBM Security AppScan Source Utilities: Benutzerhandbuch
Index
A
Anforderungs-ID 98
Anwendungen
erstellen mit Ounce/Ant 62
AppScan Enterprise Server
SSL-Zertifikat 36
AppScan Source
AppScan Enterprise Server-Anmeldung
SSL-Zertifikat 36
AppScan Source for Automation 89, 95
Anmeldung 95
Befehlszeile 98
Einstellungsdatei 96
max_concurrent_requests 96
port 96
server_hostname 96
Protokollierung 97
Automatisierungsserver
Anforderungs-ID 98
Befehlszeile 98
Einstellungsdatei 96
max_concurrent_requests 96
port 96
server_hostname 96
Protokollierung 97
B
Befehlszeilenschnittstelle 19
automatisierte Beurteilungen durchführen 54
Befehle 22
Anmeldedatei 36
Anmeldung 35
delete 27
deleteassess 28
deleteuser 28
delvar 28
details 29
echo 30
getaseinfo 30
help 30
importieren 31
info 32
Informationen 27
list 32
listassess 33
listgroups 33
listusers 34
log 34
login_local 37
logout 37
moduser 37
newuser 39
openapplication 41
openassessmentfile 42
password 42
printuser 43
publishassess 43
© Copyright IBM Corp. 2003, 2015
Befehlszeilenschnittstelle (Forts.)
Befehle (Forts.)
publishassessase 45
quit 45
record 46
refresh 46
register 46
removeassess 47
report 47
scan 49
script 50
setaseinfo 51
setcurrentobject 53
setvar 53
unregister 54
Zusammenfassung 22
Berechtigungen 20
in Landessprache anzeigen 20
Kontext 19
Objektbaumstruktur 19
starten 20
Syntax 21
über Builddienstprogramm Ounce/
Ant aufrufen 62
Befehlszeilenschnittstelle - Ausgabeformate 47
Berechtigungen
Befehl moduser 37
newuser, Befehl 39
Berichte 47
Berichtsausgabeformate 98
html 98
pdf-annotated 98
pdf-comprehensive 98
pdf-detailed 98
pdf-summary 98
zip 98
Berichtstypen suchen 98
C
CLI (siehe Befehlszeilenschnittstelle)
19
D
Data Access API
JVM-Argumente 63
Data Access-API 63
Objektmodell 64
verwenden 66
Beurteilung öffnen 66
Ergebnisse ausgeben 66
Trace ausgeben 67
veröffentlichte Beurteilungen abrufen 67
F
Fehlernachrichten
Clientkomponenten
133
Framework for Frameworks 103
angepasster WSDL-Scanner 129
ausgeführte allgemeine Aktionen 112
Beispiel 104
importieren 105
Informationen 105
JAR-Datei erstellen 109
JAR-Datei exportieren 112
Manifest erstellen 109
Hauptkomponenten 104
übergeordnete synthetische Methoden 122
Beispiel 126
VDB-Format 123
verwenden 124
verwenden
F4FHandler-Klasse erstellen 108
I
Installation
Dateiposition 143
Datenposition 143
ändern 144
K
Klassen und Methoden der Data AccessAPI 68
AssessedFile 68
getFilename 69
getFindings 68
getStats 68
AssessmentDiff 71
AssessmentFilter 71
AssessmentFilter 71, 72
AssessmentResults 72
getAssessmentForApplication 73
getAssessmentForProject 74
getAssessments 73
getFindings 72
getMessages 75
getName 75
getStats 73
Aufruf 75
getCalls 75
getClassName 77
getColumnNumber 76
getFilename 75
getLineNumber 76
getMethodName 77
getSignature 76
getSrcContext 76
getTraceType 77
Beurteilung 69
getAssesseeName 71
getAssessments 69
getFileByPath 70
getFiles 70
getFindings 69
151
Klassen und Methoden der Data AccessAPI (Forts.)
Beurteilung (Forts.)
getStats 69
ClassificationType 77
statische Elemente 77
value 78
com.ouncelabs.sdk.AssessmentDiff
getCommonFindings 71
getLostFindings 71
getNewFindings 71
com.ouncelabs.sdk.Factory 78
Anmeldung 79
clearCache 79
diffAssessments 81
getPublishedAssessments 80
init 78
openAssessment 80
shutdown 79
DateProximityUnit 78
statische Elemente 78
value 78
Ergebnis 81
getApiName 81
getCallerName 82
getClassification 82
getDefectInfo 85
getDefectSubmissionDate 85
getDefectSubmissionUser 85
getFilename 81
getLineNumber 81
getModifiedClassification 84
getModifiedSeverity 84
getModifiedVulnerabilityType 84
getNotes 87
getOriginalClassification 83
getOriginalSeverity 83
getOriginalVulnerabilityType 83
getProperties 85
getSeverity 82
getSrcContext 84
getTrace 86
getVulnerabilityType 82
isExcluded 86
OunceException 89
SeverityType 87
statische Elemente 87
value 88
Trace 87
getCalls 87
L
Linux
Befehlszeilenschnittstelle starten 20
Ounce/Make, Builddienstprogramm,
Konventionen 3
Ounce/Make-Builddienstprogramm
Suchpfad 8
O
Ounce/Ant, Builddienstprogramm
Buildintegration 62
ounceCli-Task 62
152
Ounce/Ant-Erstellungsdienstprogramm 57
Anwendungen erstellen 62
Apache/Ant-Integration 57
Eigenschaften 58
festlegen 59
Jar-Datei ant-contrib 57
Java JDK-Version 57
ounceant.jar 57
Projekte benennen 61
Projekte erstellen 59
ounceCreateProject 60
ounceExclude 61
ounceSourceRoot 60
ounceWeb 61
Ounce/Make, Builddienstprogramm 1
Befehl 1
Beispiele 15
Ounce/Make im Einprojektmodus
mit rekursiver Option 17
Ounce/Make mit rekursiver Option 16
Ounce/Make ohne Optionen 16
Eigenschaftendatei
Beispiele 15
Elemente der Eigenschaftendatei 9
Projektdateien benennen 3
starten 1
Ounce/Make-Builddienstprogramm
Eigenschaftendatei 8
suchen 8
ouncemake_properties.xml (siehe auch
Eigenschaftendatei) 8
Suchpfad 8
Ounce/Make-Erstellungsdienstprogramm
ausführen 3
Optionen 11
Ausgabenachrichten 5
Befehle
make 1
make clean 1
Befehlssyntax 5
Betrieb 3
Einsatz 3
Elemente der Eigenschaftendatei
Compiler 9
Executable 14
FileOptions 13
GlobalProjectOptions 12
Linker 10
Make 10
MakeOptions 10
MountRoot 14
Optionen 11
Make-Optionen 5
Optionen 5
Projektdateien benennen
explizites Benennen 4
unterstützte Compiler 2
unterstützte Make-Versionen 2
unterstützte Plattformen platforms 2
Voraussetzungen 1
zur PATH-Umgebungsvariable hinzufügen 3
Ounce/Maven 89
installieren 89
Szenarios 90
IBM Security AppScan Source Utilities: Benutzerhandbuch
Ounce/Maven (Forts.)
verwenden 90
Zielanfragen 91
ounce:application 92
ounce:project 92
ounce:project-only 93
ounce:report 93
ounce:scan 93
Ounce/Maven-Plug-in
Szenarios
Anwendungen überprüfen 91
Anwendungs- und Projektdateien
erstellen 90
Berichte mit dem Siteziel integrieren 91
Berichterstellung 91
ounceautod 95
Anmeldung über die Befehlszeile 95
Befehle 98
GenerateReport 98
PublishAssessment 100
PublishAssessmentASE 100
ScanApplication 101
Wait 102
Befehlszeile 98
Einstellungsdatei 96
Protokollierung 97
P
Projekte
benennen mit Ounce/Ant 61
Dateien mit Builddienstprogramm
Ounce/Make benennen 3
Dateien mit dem Ounce/Make-Erstellungsdienstprogramm benennen
explizites Benennen 4
erstellen mit Ounce/Ant 59
ounceCreateProject 60
ounceExclude 61
ounceSourceRoot 60
ounceWeb 61
S
Standardinstallationsverzeichnis
143
W
Windows
Befehlszeilenschnittstelle starten 20
Ounce/Make, Builddienstprogramm,
Konventionen 3
Ounce/Make-Builddienstprogramm
Suchpfad 8
Gedruckt in Deutschland
Herunterladen