-
Die
vorliegende Erfindung betrifft ein Verfahren, eine Vorrichtung,
ein System, ein Erzeugnis und/oder ein Signal zum Eindringen in
einen Rechner oder ein Rechnernetzwerk und dabei insbesondere zum
Auffinden korrekturbedürftiger
Schwachstellen.
-
HINTERGRUND DER ERFINDUNG
-
Rechnernetzwerke
sind oft anfällig
für unerwünschte Angreifer,
die Informationen über
den Rechnerbetrieb sammeln, sich Zugriff darauf verschaffen und
den Rechnerbetrieb unterbrechen können. Bei dem Versuch, einen
Rechner oder ein Rechnernetzwerk gegen nicht autorisierte Zugriffe
zu sichern, werden üblicherweise
Personen dazu angestellt, Eindringungstests durchzuführen. Diese
mit unter als 'Tiger
Teams' bezeichnete
Personen wenden bei dem Versuch, Kontrolle über Systeme innerhalb des Rechners
oder Netzwerks sowie Zugriff auf Daten zu erlangen und zu bestimmen,
welche Teile des Rechners oder Netzwerks für Angriffe anfällig sind,
eine Vielzahl unterschiedlicher Strategien an. Üblicherweise beginnen diese
Personen ihr Vorhaben ohne einen "Schlüssel" oder eine andere
Zugriffsmöglichkeit
auf das Netzwerk, so dass sie die Schwachstellen in etwa in derselben
Weise ermitteln müssen
wie ein unerwünschter
Computer-Hacker.
-
Im
folgenden soll ein imaginäres 'Tiger Team' als Beispiel dienen,
welches aus Joe, Fred und Mark besteht, die jeweils Experten für ein spezifisches
System eines Rechnernetzwerks sind. So ist beispielsweise Joe mit
Windows NT, Fred mit UNIX-Systemen und Mark mit NetWare vertraut,
wobei es sich um einige der heute in Rechnernetzwerken üblichen
Betriebssysteme handelt. Das Team wird angeworben, um das Netzwerk
einer Firma zu überprüfen, d.
h. die Mitglieder des Teams werden gebeten, in das Netzwerk einzudringen und
einen Bericht über
die Ergebnisse zu liefern. Zuerst sammeln sie dabei möglichst
viele Informationen über das
Netzwerk in der Hoffnung den von jedem Rechner des Netzwerkes verwendeten
Betriebsystemtyp zu ermitteln, was äußerst nützlich sein kann. Sobald die
Betriebssysteme und weitere Systeme identifiziert sind, widmet sich
jedes Mitglied des 'Tiger
Teams' der Softwaremaschine,
mit der es am besten vertraut ist.
-
Gehen
wir davon aus, dass Mark als erster Erfolg hat. Indem er sich Zugriff
auf ein nicht richtig konfiguriertes NetWare-System verschafft,
ist er in der Lage, dessen Bindery herunterzuladen, sodann ein schlecht gewähltes Passwort
zu ent schlüsseln
und sich den Anmeldenamen des betreffenden Benutzerkontos zu beschaffen.
Er teilt nun Joe und Fred den Anmeldenamen und das Passwort mit;
um herauszufinden, ob diese damit Erfolg haben, da derselbe Benutzer
manchmal denselben Namen und dasselbe Passwort für mehrere Systeme benutzt.
Tatsächlich
ist Joe in der Lage, den von Mark vom NetWare-System entwendeten
Namen und das Passwort dazu zu verwenden, sich Zugriff auf drei
unterschiedliche UNIX-Systeme
zu verschaffen. Der Erfolg und die Effizienz des 'Tiger Teams' sind allerdings
gering, da jedes Team-Mitglied seinen Beitrag unabhängig von
dem der anderen leistet. Anders ausgedrückt, nutzen die Mitglieder
des Teams nur eine minimale Informationsmenge gemeinsam, wodurch
die Eindringungstests wenig leistungsfähig sind.
-
Das
vom INSTITUTE OF ELECTRICAL ENGINEERS, STEVENAGE, GB; ISSN 0740-7459,
Oktober 1997 (1997-10) PUKETZA N, CHUNG M, OLSSON RA, MUKHERJEE
B, herausgegebene Dokument mit dem Titel "A software platform for testing intrusion
detection systems",
XP002141529, beschreibt eine Software-Plattform mit deren Hilfe versucht wird,
durch Nachahmung der bereits weiter oben beschriebenen Aktivitäten der "Tiger-Teams" Eindringungsprüfungen automatisch
durchzuführen.
Die in diesem Dokument diskutierte Software-Plattform verursacht
dabei, einen simultanen Eindringungstest durchzuführen, indem
sie einen Satz von Scripts ablaufen lässt, um ein gleichzeitiges
Eindringen zu simulieren, wobei eine erhebliche Interaktion zwischen
diesen Scripts nötig
ist. Zudem sind die Scripts nicht in der Lage, unabhängig voneinander
abzulaufen, was eine sorgfältige
Synchronisation erforderlich macht.
-
Selbst
eine automatisierte Eindringungs-Software, wie etwa der Internet
Security Scanner von ISS Group und Ballista von Secure Networks,
erreicht nicht die Effektivität
eines "Tiger Teams". Durch diese automatisierten
Tests verringern sich zwar die Personalkosten gegenüber manuellen
Eindringungstests, allerdings wird hierbei eine Reihe verschiedener
Versuche seriell und unabhängig
voneinander durchgeführt,
um die Schwachstellen der einzelnen Rechner zu bestimmen. Dabei
kommen Angriffsstrategien nur auf einer Eindringungs-"Ebene" zum Einsatz, was
bedeutet, dass bei der Durchführung
einer gewissen Anzahl von Eindringungsstrategien all diese Strategien
nacheinander und unabhängig
voneinander ablaufen, ohne dass eine der Strategien Vorteile aus
dem Erfolg der anderen ziehen könnte.
-
Mit
der Anzahl an Firmen, die Netzwerk-Rechner einsetzen, steigt auch
ständig
der Bedarf nach verbesserten Lösungen
für die
Durchführung
von Eindringungstests. Inder Computer-Industrie sowie im Hinblick auf
die Möglichkeiten
des Informationsflusses stellt der Einsatz von Netzwerkrechnern
einen großen
Fortschritt dar; er hat jedoch auch gleichzeitig eine ausgesprochen
hohe Anzahl an Sicherheitsproblemen geschaffen.
-
KURZER ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Es
ist daher eine Aufgabe der vorliegenden Erfindung, die Effizienz
von auf Netzwerkeindringungstests spezialisierten Informationssicherheits-Expertenteams
zu übertreffen
und dies zu Kosten, welche häufige Tests
praktikabler machen.
-
Eine
weitere Aufgabe der vorliegenden Erfindung ist es, eine schnellere
Eindringung zu ermöglichen, indem
in einem System entdeckte Schwachstellen dazu benutzt werden, in
andere Systeme einzudringen.
-
Zudem
liegt der vorliegenden Erfindung auch die Aufgabe zugrunde, einen
effektiverer Eindringungstest zu liefern, welcher eine höhere Genauigkeit
bietet. Durch die vorliegende Erfindung lassen sich aufgrund der
verbesserten Fähigkeit,
in einen Rechner oder ein Netzwerk einzudringen, Schwachstellen
auch exakter als mittleres oder hohes Risiko anstatt als geringes
Risiko einstufen.
-
Die
vorliegende Erfindung überwindet
die Ineffizienz des Standes der Technik dadurch, dass sie ein Programmpaket
angibt, welches mehrere Arten von Eindringungs- bzw. "Einbruchs"-Techniken automatisch und
parallel durchführt,
wobei die Module ihre jeweiligen Ergebnisse jeweils anderen Modulen
zuführen
und so den Eindringungstest insgesamt verbessern. Bei diesem Ansatz
auf "mehreren Ebenen" handelt es sich
um mehr als nur ein einfaches Parallelverarbeitungsschema, da hier
sowohl Hierarchien als auch Prioritäten zwischen den einzusetzenden
Techniken festgelegt und Entscheidungen darüber getroffen werden können, welche
Informationen gemeinsam genutzt werden sollen, wodurch sich Effizienz
und Wirksamkeit der Eindringung verbessern.
-
Die
genannten Aufgaben werden durch das Vorsehen eines Rechnernetzwerk-Eindringungstestsystems
gelöst,
welches mindestens einen Software-Datenträger mit darauf gespeicherter
Software umfasst, wobei die Software eine Vielzahl von Scan-Modulen
enthält,
um einen Rechner so abzutasten, dass Schwachstellen des Rechners
für einen
unbefugten Zugriff ermittelt werden können, wobei mindestens eines
der Scan-Module eine auf einer Abtastung des Rechners basierende
Ausgabe erzeugt und wobei wenigstens ein anderes Scan-Modul eine
Eingabe benötigt,
ehe es eine Netzwerk-Abtastoperation durchführt, und wobei das Rechnernetzwerk-Eindringungssystem
dadurch gekennzeichnet ist, dass das System zusätzlich eine Steuerung umfasst,
um das genannte eine Scan-Modul anzuweisen, eine Abtastung des Rechners
durchzuführen und
auf der Grundlage der entsprechenden Ausgabe eine Eingabe für das genannte
andere Scan-Modul zu erzeugen.
-
Die
genannten Aufgaben werden zudem auch durch ein Verfahren gemäß dem unabhängigen Anspruch
9 gelöst.
-
Darüber hinaus
werden die Aufgaben auch durch Vorsehen eines Erzeugnisses gelöst, das
ein maschinenlesbares Programm umfasst und im unabhängigen Anspruch
15 definiert ist.
-
Schließlich werden
die genannten Aufgaben auch durch Vorsehen eines aus mindestens
einer Trägerwelle
bestehenden Rechnernetzwerk-Eindringungstestprogramms gemäß dem unabhängigen Anspruch
19 gelöst.
-
Weitere
Verbesserungen sind Gegenstand der Unteransprüche.
-
Im übrigen ergibt
sich die Reichweite der vorliegenden Erfindung aus dem Studium der
detaillierten Beschreibung und der beigefügten Zeichnung. Natürlich behandeln
die Beschreibung und die Beispiele nur bevorzugte Ausführungsbeispiele
der Erfindung und dienen nicht dazu, die Reichweite der Erfindung
zu begrenzen, zumal für
einen Fachmann auf diesem Gebiet verschiedene Abwandlungen und Modifikationen,
die innerhalb der Reichweite der Erfindung liegen, offensichtlich
sind.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung ergibt sich aus der folgenden detaillierten
Beschreibung im Zusammenhang mit den beigefügten Zeichnungen, welche allein
zum besseren Verständnis
dienen und somit nicht als die Reichweite der vorliegenden Erfindung
einschränkend
aufgefasst werden dürfen.
In der Zeichnung zeigen:
-
1 eine allgemeine Übersicht über ein
Eindringungstestsystem gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 eine detailliertere Übersicht
der Systemverbindungen gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 ein Beispiel einer Eindringungs-Zielvorgabehierarchie,
die an einer Benutzerschnittstelle gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung angezeigt wird;
-
4 ein Beispiel für einen
Datensatz für
eine Eindringungszielvorgabe gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
5 ein Ablaufdiagramm für die Datenverarbeitung
bei einer Scan-Engine gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
6 zeigt ein Beispiel für einen
von einem Scan-Modul gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung erzeugten Ausgabe-Datensatz;
-
7 zeigt ein weiteres Beispiel
für einen
Datensatz einer Eindringungs-Zielvorgabe
gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
8 zeigt noch ein weiteres
Beispiel für
einen Datensatz einer Eindringungszielvorgabe gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
9 zeigt ein Beispiel für einen
Abtast-Datensatz, welcher durch ein Scan-Modul oder einen Datenprozessor
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung erzeugt wurde.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Einfach
ausgedrückt,
handelt es sich bei der vorliegenden Erfindung um ein Softwareprogramm,
das automatisierte Eindringungstests an einem Rechner oder einem
Rechnernetzwerk durchführt.
Die einzelnen Netzwerk-Ressourcen, die hierbei abgetastet werden,
umfassen jede beliebige zu identifizierende Einheit bzw. jeden beliebigen
zu identifizierende Knoten im Netzwerk. Zu den herkömmlichen
Netzwerk-Ressourcen gehören
beispielsweise Rechner, Drucker, Router und bestimmte Arten von
Netzknoten. Da in einem Netzwerk bestimmte Einheiten unter mehreren
Namen bekannt sein können
(ein Rechner kann beispielsweise mehrere IP-Adressen, einen Netbios-Namen
und einen NetWare-Namen besitzen), werden bei der vorliegenden Erfindung üblicherweise
weit mehr Netzwerk-Ressourcen
ermittelt, als mit dem Netzwerk verbundene Einheiten physisch vorhanden
sind.
-
Die
vorliegende Erfindung umfasst drei grundlegende Logikbestandteile:
eine Benutzerschnittstelle, eine Scan-Engine und Module. Wie weiter
unten noch detaillierter beschrieben wird, ermöglicht es die Benutzerschnittstelle
im wesentlichen dem Benutzer, eine oder mehrere Zielvorgaben für den Eindringungstest
festzulegen, die das anvisierte Ziel bzw. die Ziele des Tests festlegen.
Die der Zielvorgabe zugehörigen
Ziele bestehen dabei darin, bestimmte Informationen über das
Netzwerk zu sammeln und/oder diese Informationen dazu einzusetzen,
Zugriff auf bestimmte Netzwerk-Ressourcen, beispielsweise Zugriff
auf den Windows NT Domainnamen "XYZ" zu erlangen. Bei
den Modulen handelt es sich um diejenigen Komponenten, die die Abtastung
des Rechners oder Netzwerks tatsächlich
durchführen,
um die gewählte
Zielvorgabe zu erfüllen.
Die Scan-Engine stellt im wesentlichen die Steuerung dar, welche
die geeigneten Module auswählt
und steuert und die gemeinsame Nutzung von Informationen durch die
Module überwacht. Üblicherweise
sind zur Erfüllung
einer Zielvorgabe viele Wiederholungen der In teraktionen zwischen
Strategie, Scan-Engine, Strategie, Scan-Engine etc. nötig. Die
gemeinsame Nutzung von Informationen durch mehrere Strategien erhöht dabei
die Effektivität
einer jeden Strategie. Durch die Entscheidung, welche Module eingesetzt
werden, in welcher Reihenfolge ihr Einsatz erfolgt und welche Informationen
von den Modulen gemeinsam genutzt werden, ist es bei der vorliegenden
Erfindung möglich,
bisher unauffindbare Schwachstellen zu bestimmen, indem hier die
für eine Netzwerk-Ressource
ermittelten Schwachstellen für
den Zugriff auf andere Systeme eingesetzt werden.
-
In
der folgenden Beschreibung sind bestimmte Funktionen bestimmten
der drei Logik-Bestandteile zugeteilt, wobei Funktionen allerdings
natürlich
auch in der Praxis miteinander kombiniert werden können, um eine
kleinere oder größere Anzahl
der genannten Bestandteile einzusetzen. Das bevorzugte Ausführungsbeispiel
stellt nicht die einzige Möglichkeit
dar, die hier aufgezeigten erfinderischen Konzepte zu verwirklichen.
In entsprechender Weise kann die erfindungsgemäße Software durch einen oder
mehrere Chips, ein oder mehrere nicht fest installierte maschinenlesbare
Datenträger,
etwa magnetische oder optische Disketten, oder durch nahezu jede
andere Art von Datenträger-Aufzeichnung,
der bzw, die eine Ausführung
der Software ermöglicht
bzw. ermöglichen,
verwirklicht oder hierauf abgespeichert sein. Die Durchführung des
Programms erfolgt vorzugsweise durch Einsatz eines programmierten
Mikroprozessors zusammen mit einem geeigneten Speicher und Eingabe-/Ausgabekomponenten,
die durch Ports mit dem abzutastenden Rechner und/oder Rechnernetzwerk
kommunizieren. Allerdings kann die Erfindung auch ferngesteuert
angewendet oder heruntergeladen werden, was bedeutet, dass die Software
aus einem Rechner-Datensignal in einer durch ein Kabel, optisch
oder über
den Äther übertragenen
Trägerwelle
bestehen kann.
-
Vorzugsweise
steuert die Scan-Engine die Module so, dass verschiedene Strategien
gleichzeitig und unabhängig
voneinander erprobt werden, um eine Zielvorgabe zu erfüllen, obwohl
dies für
einen erfolgreichen Einsatz der vorliegenden Erfindung nicht unbedingt
notwendig ist. Allerdings erhöht
sich hierdurch die Effizienz bei der Erzielung der Endergebnisse.
Wie aus der folgenden Beschreibung noch weiter deutlich wird, können die
Strategien auf verschiedenen Ebenen auch so beschränkt werden,
dass die Strategien mit den größten Erfolgschancen
zuerst und mit der höchsten
Geschwindigkeit ablaufen.
-
Grundlegender
Aufbau
-
Wie
bereits angedeutet, ist die vorliegenden Erfindung vorzugsweise
durch drei Haupt-Bestandteile verwirklicht, und zwar, wie in 1 allgemein dargestellt,
durch eine Benutzerschnittstelle bzw. graphische Benutzerschnittstelle 12 (GUI),
Scan-Module 16 und
eine Scan-Engine 14. Die Scan-Module 16 kommunizieren mit
dem Rechner bzw. Rechnernetzwerk 18, in den bzw. in das
eingedrungen werden soll, wobei ein Benutzer 10 die Schnittstelle 12 bedient
und überwacht.
Die vorliegende Erfindung kann zudem so ausgestaltet werden, dass
sie automatisch bestimmte Zielvorgaben verfolgt, wobei es dann möglich ist,
auf die Benutzerschnittstelle zu verzichten oder diese zu modifizieren.
Beispielsweise könnte
man bei der vorliegenden Erfindung die Durchführung einer bestimmten Gruppe
von Zielvorgaben an jedem Samstag Mittag vorprogrammieren.
-
In 2 ist der grundlegende Aufbau
der Baugruppen der vorliegenden Erfindung dargestellt, wobei der
Benutzer mit Hilfe der Benutzerschnittstelle 12 die zu
verfolgenden Zielvorgaben 22 auswählt. Auf der Grundlage dieser
Zielvorgaben entscheidet die Scan-Engine 14, welche Module 16 eingesetzt
werden, und bestimmt die Reihenfolge ihres Einsatzes. Die Module 16 interagieren
mit dem Netzwerk 18 und mit der Scan-Engine 14.
Falls die Module 16 für
ihren Einsatz Vorabinformationen benötigen, so ruft die Scan-Engine 14 geeignete
Eingabedatensätze
vom Speicher 24 oder vorzugsweise von einem Datensatz-Repository 26 ab.
Die den Modulen 16 zugeführten Eingabedatensätze umfassen
vorab festgelegte Datensatzfelder in einem vorbestimmten Format.
Dieses Format erlaubt es der Scan-Engine, die von den verschiedenen Modulen
kommenden bzw. an diese weiterzuleitenden Daten problemlos zu handhaben
und zu überwachen.
Die Module 16 erzeugen später Ausgabedatensätze mit
den durch die Abtastung des Netzwerks gesammelten Informationen und
liefern diese Ausgabedatensätze
an die Scan-Engine 14.
Die Ausgabedatensätzen
werden durch die Scan-Engine 14 in dem Datensatz-Repository 26 gespeichert
und weisen vorzugsweise dasselbe Format auf wie die Eingabedatensätze. Die
Ausgabedatensätzen
werden dazu eingesetzt, für
den Benutzer bestimmte Ausgabeberichte zu erzeugen, und können zudem
entweder in ihrem Anfangszustand oder nach einer Bearbeitung durch
die Scan-Engine
anderen Modulen als Eingabedatensätze zugeführt werden. Diese Weiterverwendung
von Ausgabedatensätze
als Eingabedatensätze
für andere
Module ist einer der wichtigen Aspekte der vorliegenden Erfindung.
-
Datensätze
-
Bei
einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung werden Daten in Form von Datensätzen formatiert.
Bei den Datensätzen
handelt es sich um die bevorzugte Datenstruktur, wobei allerdings
auch andere Datenstrukturen Verwendung finden können. Bei den Datensätzen handelt
es sich um Gruppen von Daten, die die abgetasteten Netzwerke und/oder
die bei der vorliegenden Erfindung eingesetzten Zielvorgaben und
Module betreffen, und dienen zum Datenaustausch sowie zur Datenspeicherung.
Das Datensatz-Format wird bevorzugt eingesetzt, weil es ein Auffinden
von bestimmten Daten-Teilen vereinfacht. Datensätze werden zur Speicherung
sowohl von durch die Module gelieferten Abtast-Daten als auch von Programmkonfigurationsinformationen
verwendet.
-
Ein
Datensatz besteht aus einem oder mehreren Feldern, die in der in
den 4 und 6 bis 9 gezeigten Weise formatiert sind. Ein
Beispiel für
einen Datensatz 70, wie er bevorzugt in der vorliegenden
Erfindung eingesetzt wird, lässt
sich 6 entnehmen. Er
umfasst ein Datensatz-Begrenzungszeichen, beispielsweise den Großbuchstaben "R", auf den ein oder mehrere Feldnamen
und Feldwerte folgen. Die Feldnamen können nahezu jeden beliebigen
Text umfassen, wobei es sich zur Einsparung von Speicherplatz vorzugsweise
um kurze Abfolgen alphanumerischer Zeichen handelt, und auch die
Feldwerte können
aus einer Abfolge beliebiger alphanumerischer oder sonstiger Zeichen
bestehen. Bei dem ersten Buchstaben "R" in 6 handelt es sich um das
Begrenzungszeichen, das den Beginn eines neuen Datensatzes angibt,
wobei dieser spezielle Datensatz sieben Felder umfasst, nämlich Network
Resource, Service, Protocol, Port, Miscellaneous, Command und Severity.
-
Nach
dem "R" kommt ein Leerzeichen,
auf das ein Feldname (Network Resource) und sodann ein Gleichheitszeichen
(=) folgen. Direkt an das Gleichheitszeichen schließt sich
der Feldbegrenzer an. Im ersten Feld handelt es sich dabei um ein
Anführungszeichen
("), allerdings
kann jedes beliebige Zeichen als Feldbegrenzer dienen, was im übrigen auf
jeden in der vorliegenden Erfindung verwendeten Datensätze zutrifft.
Beim Feldbegrenzer muss es sich allerdings um ein Zeichen handeln,
das nicht innerhalb des Feldtextes vorkommt, um zu verhindern, dass
das Feld vorzeitig beendet wird. Bei dem genannten Beispiel wird
im übrigen
für das Feld
Miscellaneous ein Ausrufungszeichen (!) als Feldbegrenzer eingesetzt,
da im Feldtext ein Anführungszeichen
vorkommt. Wurde der erste Feldbegrenzer festge legt, so gilt alles
zwischen diesem Feldbegrenzer und dem nächsten Auftreten desselben
Feldbegrenzers als Feldwert. Nach dem End-Feldbegrenzer kommt ein Leerzeichen,
auf das falls gewünscht,
ein weiterer Feldname folgt usw. Wie später noch erläutert wird,
müssen die
Module in der Lage sein, Datensätze
jedweden Formats sowohl zu analysieren als auch zu erzeugen.
-
Graphikbenutzerschnittstelle
-
Die
Graphikbenutzerschnittstelle 12 ermöglicht einem Benutzer die Spezifizierung
der Art der durchzuführenden
Eindringungstests bzw. der zu verfolgenden Zielvorgaben und zeigt
die Ergebnisse eines gerade ablaufenden Tests dynamisch an. Eine
Hauptanzeige an der Schnittstelle 12 kann dem Benutzer
dabei beispielweise in einem speziellen Anzeigfeld des Monitors
eine Auswahl an Zielvorgaben anbieten. Die Zielvorgaben werden vorzugsweise
in Form eines Hierarchie-Baums gemäß 3 angeordnet, wodurch verwandte Zielvorgaben
zusammen als eine Gruppe ablaufen können. Übergeordneten Zielvorgaben
("parent objectives") 32 werden
zusammen mit den eingerückt
aufgeführten
untergeordneten Zielvorgaben ("child
objectives") 34 gelistet.
Der Baum wird beim erstmaligen Öffnen
des erfindungsgemäßen Programms
aus einer speziellen Datei abgerufen, die hier als Zielvorgaben-Konfigurationsdatei
bezeichnet wird. Wie sich aus 3 ersehen lässt, kann
eine typische, breitgefasste Zielvorgabe beispielsweise "Entdecke TCP/IP-Netzwerk-Ressourcen" ("Discover TCP/IP network
ressources") lauten.
Wurde diese Zielvorgabe gewählt,
so können
dem Benutzer spezifischere Zielvorgaben zur Auswahl gestellt werden,
wie etwa "Entdecke
Netzwerk-Ressourcen, die auf eine Ping-Abtastung antworten" ("Discover network
ressources that respond to ping"), "Liste IP-Adressen
in bekannten IP-Netzwerken auf" ("Enumerate IP addresses
in known IP networks"),
etc. Der Benutzer kann nun diese spezifischeren Zielvorgaben auswählen oder
auch die breitgefasste, bereits gewählte Zielvorgabe beibehalten.
Die Durchführung
einer übergeordneten
Zielvorgabe beinhaltet vorzugsweise auch die Durchführung aller
untergeordneten Zielvorgaben. Eine Beschreibung jeder Zielvorgabe,
die sich öffnen
lässt,
um mehr über
die Zielvorgabe zu erfahren, kann entweder in der entsprechenden
Zielvorgaben-Konfigurationsdatei selbst
oder in einer anderen Datei vorhanden sein. Es stehen viele verschiedene
Typen von Zielvorgaben zur Verfügung,
welche einem Fachmann auf diesem Gebiet im wesentlichen bekannt
sind, so dass hierauf an dieser Stelle nicht weiter eingegangen
wird. Es sei nur darauf hingewiesen, dass die An zahl und die Art
der neuen Zielvorgaben, die bei der vorliegenden Erfindung eingesetzt
werden können,
allein durch die Möglichkeit
zur Erzeugung eines Moduls begrenzt werden, welches in der Lage
ist, die Zielvorgabe zu erfüllen.
-
Die
Schnittstelle 12 kann aus ästhetischen Gründen und
zur Vereinfachung der Ein- und Ausgabe von Informationen durch den/an
den Benutzer als eine Anzeige vom Windows-Typ gestaltet sein. Bevorzugt
sind auch bestimmte Kurzbefehle vorgesehen, so dass auch ein wenig
erfahrener Benutzer die vorliegende Erfindung einsetzen kann. "Werkzeugleisten" können dazu
eingesetzt werden, einen schnellen Zugriff auf herkömmliche
Funktionen zu erlangen, wie etwa eine "Start"-Eingabe,
um den Eindringungstest zu beginnen, und eine "Stop"-Eingabe,
um ihn zu unterbrechen. Wie später
noch genauer erläutert
wird, kann der Benutzer dabei vorzugsweise Dateien für die Module
auswählen,
die vorab aufgezeichnete Datensätze
enthalten. Diese Dateien können
Initialisierungsdatensätze
oder Datensätze
von früheren
Eindringungstests umfassen.
-
Die
Schnittstelle 12 liefert zusätzlich eine Art von Ausgabe,
durch die der Benutzer 10 die Ergebnisse des Tests erfahren
kann, wobei es sich um Endergebnisse oder laufende Ergebnisse während des
Tests handeln kann. Die Ausgabe liegt vorzugsweise in Form von visuellen
Informationen auf einem Monitor vor; sie kann aber auch durch einen
Drucker erfolgen oder in Form einer Audio-Ausgabe, einer später abrufbare
Speicherdatei und/oder jeder beliebigen anderen Art von geeigneter
Ausgabe vorliegen. Die laufend anfallenden Ergebnisse werden vorzugsweise
während
des Eindringungstests auf den neuesten Stand gebracht, wobei allerdings
auch die Ablaufgeschichte des Tests als Ausgabe dienen kann. Spezielle
Ausgabetypen, etwa eine Graphik- oder Audio-Ausgabe, können zudem
für die
Hervorhebung bestimmter Entdeckungen, etwa neu aufgefundener Netzwerke
oder bestimmter Schwachstellen, dienen. Die Schnittstelle kann dem
Benutzer zudem Wahlmöglichkeiten
bieten, wie etwa die Möglichkeit
zur Abtastung eines neuen, während
des Eindringungstests aufgefundenen Netzwerks.
-
An
der Schnittstelle werden beispielsweise Nachrichten, Beschreibungen
oder Diagnoseinformationen über
laufende Tests, Angaben über
die Höhe
des ermittelten Sicherheitsrisikos, beispielsweise die Angabe, dass
für bestimmte
Abschnitte des Rechnernetzwerks ein hohes, mittleres oder niedriges
Eindringungsrisiko besteht (andere Ebenen oder Deskriptoren können ebenfalls
verwendet werden), Angaben über
die Art der Schwachstellen, die wiederum in Gruppen mit hohem, mittleren
oder niedrigen Risiko unterteilt werden, Datensätze, die durch eine Abtastung
erzeugt wurden und sowohl Datensätze
mit Schwachstellen als auch solche ohne Schwachstellen einschließen, und
einen Fortschritts-Indikator umfassen, der die Fortschritte der
Abtastung anzeigt. Zudem kann ein Datensatzzähler die Gesamtzahl der während der
Abtastung bisher erzeugten Datensätze und eine Abtastzeitsteuerung
die kumulative sowie die verbleibende Abtastzeit angeben (sofern nicht
eine kontinuierliche Abtastung gestartet wurde, bei der nur die
kumulative Abtastzeit angezeigt wird). Die weiter unten beschriebene
Scan-Engine kann unter Verwendung eines Datenprozessors und der
während
der Abtastung erzeugten Datensätze
verschiedene Statistiken liefern.
-
Scan-Module
-
Scan-Module 16 sind
die Elemente, die alle Rechner- oder Rechnernetzwerk-Abtastungen durchführen, wobei
es sich bei jedem Scan-Modul um eine Konsolenanwendung handelt,
die von der Scan-Engine eingesetzt werden kann, um das Rechnernetzwerk
zu untersuchen, Informationen über
das Netzwerk zu sammeln und Schwachstellen zu entdecken. Die Module
kommunizieren nicht direkt miteinander, sondern berichten vielmehr
ihre Befunde an die Scan-Engine bzw. empfangen Daten von der Scan-Engine.
Ihre Betriebsweise ist dem Fachmann auf diesem Gebiet im wesentlichen
bekannt und umfasst grundsätzlich
die Übertragung bestimmter
Daten oder Anfragen an eine Destination im Netzwerk, wobei allerdings
die Modul-Bauweise einen Aspekt der vorliegenden Erfindung darstellt.
Bei den Destinationen, Daten und/oder Anfragen handelt es sich um
fundierte Vermutungen, wobei die Hoffnung besteht, mit Hilfe dieser
Destinationen, Daten und/oder Anfragen in die Netzwerksysteme einzudringen
und die Netzwerksysteme dazu zu bringen, zusätzliche Informationen als Antwort
auszugeben. Einige Module benötigen
Vorabinformationen, ehe sie einsatzbereit sind, während andere
mit festgelegten Start-Informationen beginnen. Die Module erzeugen
Ausgaben auf der Grundlage der von ihnen ermittelten Informationen.
-
Bei
der vorliegenden Erfindung kommen mehrere Module zum Einsatz, die
es ermöglichen,
einzelne Zielvorgaben schneller durchzuführen, indem nur die Durchführung relevanter
Abtastungen gestattet wird. Der Einsatz mehrerer Module ermöglicht es
zudem, eine vollständige
Abtastung schneller durchzuführen,
indem viele Abtast-Operationen parallel ablaufen. Bei der vorliegenden
Erfindung kom munizieren Module mit der Scan-Engine, wobei sowohl
die Eingaben an die Module als auch deren jeweilige Ausgabe aus
Datensätzen bestehen.
Bei den Datensätzen
handelt es sich um Dateneinheiten, die von den Modulen gemeinsam
genutzt werden können.
Bei dem Datensatz-Repository 26 der Scan-Engine handelt
es sich um eine Speicherstruktur, die alle von den Modulen gemeinsam
zu nutzenden Datensätze
enthält,
wobei ein aus einem Satz von Informationen gebildetes Filter festlegt,
welche Datensätze
an welche Module gesendet werden. Ein Datenprozessor, der ebenfalls
Teil der Scan-Engine ist, verarbeitet die Datensätze unter Einsatz der Filter
und bestimmt dabei, welche Datensätze an welche Module gesendet
werden sollen. An ein Modul gesendete Eingaben sowie von einem Modul
kommende Ausgaben werden in Form getrennter Ausführungsstränge gehandhabt, um eine simultane
Ausführung
der Strategien zu ermöglichen.
-
Ein
Benutzer wählt
die von der vorliegenden Erfindung zu verfolgenden gewünschte Eindringungszielvorgaben
für die
vorliegende Erfindung aus, wobei die Module die Anwendungseinheiten
darstellen, die die Informationen über ein Netzwerk tatsächlich sammeln
und Schwachstellen in einem Netzwerk entdecken. Die meisten, jedoch
nicht notwendigerweise alle, Zielvorgaben umfassen mit der Zielvorgabe
zusammenhängende Befehle.
Wie später
noch erläutert
wird, umfasst jeder Datensatz für
eine Zielvorgabe in der Zielvorgaben-Konfigurationsdatei ein "Command"-Feld, das das Modul/die
Module benennt, welches/welche eingesetzt werden muss/müssen, um
diese Zielvorgabe zu erfüllen.
Die Module tauschen mit dem Datenprozessor 20 Datensätze aus,
die die genannte Form aufweisen, und der Datenprozessor tauscht
seinerseits Datensätze
mit dem Repository 26 aus.
-
Die
folgende Liste beschreibt als Beispiel dienende Module, die bei
der vorliegenden Erfindung zum Einsatz kommen. Jedes dieser Module
arbeitet in bereits bekannter Art und Weise, mit Ausnahme des "Analyze"-Moduls, wobei diese
Module jedoch modifiziert wurden, um Datensätze in einem einheitlichen
Format zu erzeugen und zu empfangen, worauf später noch näher eingegangen wird. Die Ausführung in
Form von Modulen ist zudem wichtig, da sie ein paralleles Ablaufen
ermöglicht.
Die Modifizierung existierender Module für den Empfang und die Erzeugung
von Daten in dem hier beschriebenen Format kann von einem Software-Programmierer durchgeführt werden
und gehört
durchaus zu den üblichen
Fähigkeiten
eines solchen Programmierers, so dass hier nicht näher darauf
eingegangen werden muss. Die Tatsache, dass die Datensätze ein einheitliches,
vorab festgelegtes Format aufweisen, ermöglicht es der Scan-Engine 14 ihre
Aufgaben problemlos zu erfüllen.
So können
die Datensätze
beispielsweise nach Daten in bestimmten Feldern abgetastet werden.
Die Einheitlichkeit der Datensätze
gemäß der vorliegenden
Erfindung ermöglicht
es zudem, neue Module auf einfache Weise mit in das Programm aufzunehmen.
Da die Module unabhängig
voneinander ablaufen, können
sie einzeln hergestellt werden, ohne dass irgendetwas über die
interne Software-Struktur der vorliegenden Erfindung bekannt sein
muss. Beim Hinzufügen
von Modulen geht es hauptsächlich
darum, ihre Eingabe- und Ausgabestruktur so zu verändern, dass
sie mit den einheitlichen Datensätzen übereinstimmt,
wie dies in der vorliegenden Beschreibung bereits erläutert wurde,
und darum, einen neuen Eintrag in eine Zielvorgabe-Modul-Querverweisdatei
(beispielsweise der genannten Zielvorgabe-Konfigurationsdatei) aufzunehmen.
Die vorliegende Erfindung ermöglicht
den Einsatz der Module und liefert alle Eingabe- und Ausgabedatenkanäle. Ein Modul kann beliebig
bezeichnet werden, wobei dem Modulnamen der Anhang ".exe" hinzugefügt werden
kann, sofern die Erfindung auf einem Microsoft-Betriebssystem zum
Einsatz kommt; allerdings ist die vorliegende Erfindung hierauf
nicht beschränkt,
sondern kann vielmehr auch bei anderen Betriebssystemen eingesetzt
werden. Die publizierten technischen Offenbarungen für die einzelnen
der folgenden Module werden hiermit formal mit in die Erfindung
aufgenommen:
-
Analyze – dient
dazu, Datensätze
zu untersuchen, um Schwachstellen aufzufinden, die durch andere Zielvorgaben
nicht identifiziert werden. So kann Analyze beispielsweise Port-Banner überprüfen, die
während einer
TCP/IP-Abtastung eines bestimmten Betriebssystems (O/S) oder bestimmter
Dienstprogrammversionen, die für
spezifische Schwachstellen bekannt sind, zurückgesendet wurden. Das Analyze-Modul
verwendet die (Analyseregeln enthaltende) Analyse-Datensatz-Datei,
um Schwachstellen in den Datensätzen
aufzufinden. Neue Schwachstellen lassen sich entdecken, indem der
Analyse-Datensatz-Datei Datensätze
hinzugefügt werden.
Dieses Modul dient auch zur Reorganisierung sowie zum Extrahieren
und Ableiten von Informationen aus Eingabe-Datensätzen zur
Erzeugung neuer Datensätze
für die
Datenausgabe. Es kann dazu eingesetzt werden, Schwachstellen, Betriebssysteme,
Dienstprogramme und weitere Details über das Netzwerk zu identifizieren,
die für
das Modul selbst und andere Module von Interesse sind.
-
Crack
Passwort – wird
dazu eingesetzt, von anderen Modulen entdeckte verschlüsselte Passwörter zu entschlüsseln. Das 'Crack Passwort'-Modul verwendet ein
großes
und ein kleines Wörterbuch
(die beide vorzugsweise im Speicher abgelegt sind), verschlüsselt jedes
Wort des Wörterbuchs
und vergleicht sodann das Ergebnis mit jedem aufgefundenen verschlüsselten
Passwort in dem gerade abgetasteten Netzwerk. Jede Übereinstimmung
wird als Schwachstelle ausgegeben.
-
Resource
Name – versucht
den bzw. die Netzwerk-Ressource-Namen zu entdecken, die zu bereits
bekannten IP-Adressen gehören.
-
IP
Address – versucht,
die zu bereits bekannten Netzwerk-Ressource-Namen gehörenden IP-Adressen
zu entdecken.
-
IP
Address of Network Name – versucht,
die zu bereits bekannten Netzwerknamen gehörenden IP-Netzwerkadressen
zu entdecken.
-
NetWare
Version – bestimmt,
ob eine Netzwerk-Ressource NetWare-Datei-Systemeliefern kann und beschafft ggf.
die NetWare-Version.
-
Ping – wird dazu
eingesetzt, IP-Netzwerk-Ressourcen zu entdecken und zu bestätigen, dass
bestimmte IP-Netzwerk-Ressourcen existieren.
-
Port
Communication – dient
dazu, Tests an TCP/IP-Ports, wie etwa smtp, durchzuführen, wozu
eine Script-Sprache eingesetzt wird.
-
RawICMP – forscht
nach Datenpaketen, die vom Netzwerk aus verschiedenen Gründen, etwa
bei einer Ping-Abtastung oder aufgrund von Fehlern, die aus TCP/IP-Operationen
herrühren,
zurückgesandt
werden und ruft diese Datenpakete ab.
-
Try
Login – versucht,
bekannte Benutzernamen und Passwörter
dazu einzusetzen, in Netzwerk-Ressourcen einzuloggen, bei denen
das Einlog-Dienstprogramm abläuft.
-
Scan
What – liest
Benutzereingaben im 'Was-Abtasten'-Dialogfenster und
verwandelt diese in Datensätze,
welche Netzwerke und Netzwerk-Ressourcen spezifizieren, die gemäß der vorliegenden
Erfindung abgetastet werden können.
-
TCP-Scanner – ist ein
Port-Scanner.
-
type – gibt einfach
den Inhalt einer bestimmten Datei aus. Das 'type'-Modul
wird dazu eingesetzt, einen Eindringungstest durch Ausgabe der Ergebnisse
einer vorherigen Abtastungen an das Programm zu simulieren.
-
WNet
Connect – versucht,
Verbindungen mit Wnet-Ressourcen herzustellen, wobei es alle bekannten Einlog-Namen
und Passwörter
des Daten-Repository einsetzt.
-
WNet
Enumerate – zählt Wnet-Ressourcen
in derselben Weise wie Windows Explorer und Network Neighborhood
auf.
-
Wnet
Vulnerability – sucht
nach einer Anzahl von Schwachstellen unter Einsatz von WNet und
Net APIs.
-
YP
Finder – versucht,
nis- oder yp-Server zu entdecken, die üblicherweise eine große Anzahl
von (als Maps bezeichnete) Informations-Datenbanken, einschließlich verschlüsselter
Passwörter,
für ein
Netzwerk enthalten.
-
Zu
den durch die Scan-Engine nach Durchsicht der vom Benutzer getroffenen
Auswahl durchgeführten
Strategien gehört
vorzugsweise eine Strategie, die der Analyse von Daten gewidmet
ist, welche durch die anderen Strategien erzeugt wurden. Diese Einschätzungs-Strategie,
die weiter oben als 'Analyze' bezeichnet wurde,
arbeitet gemäß einer
Reihe von Regeln und stellt eine sehr effektive Methode zur Datenreduktion
dar, was es ermöglicht,
den Aufbau anderer Strategien zu vereinfachen. Die durch die verschiedenen
Strategien gewonnenen und/oder durch die Einschätzungs-Strategie reduzierten
Daten werden vorzugsweise im Speicher derart abgelegt, dass neue
Datentypen gespeichert und verarbeitet werden können, ohne dass dies eine Anpassung
aller Strategien erforderlich machen würde.
-
Das
Analyze-Modul wird eingesetzt, wenn eine der vom Benutzer gewählten Zielvorgaben
darin besteht "Ergebnisse
zu analysieren, um zusätzliche
Schwachstellen zu bestimmen" oder
es sich um eine im Zusammenhang ähnliche
Vorgabe handelt. Das Analyze-Modul entspricht den anderen Modulen
darin, dass es mit der Scan-Engine und nicht direkt mit den anderen
Modulen kommuniziert. Es sieht die von den anderen Modulen gesammelten
Datensätze
durch, um festzustellen, ob diese dazu benutzt werden können, Schwachstellen
aufzufinden, nach denen von diesen Modulen nicht gesucht wird. So überprüft das Analyze-Modul
zum Beispiel den Inhalt der während
der Port-Abtastungen zurückgeschickten
Banner, um bestimmte Betriebssysteme (O/S), Dienstprogramme und
ihre Versionen zu entdecken. Sind ein O/S oder ein Dienstprogramm
und dessen Version bekannt, so kann die vorliegende Erfindung Schwachstellen
identifizieren, die für
diese Konfiguration typisch sind. Bei der Analyse-Datensatz-Datei
handelt es sich um eine Konfigurationsdatei, die vom Analyze-Modul
dazu eingesetzt wird, Schwachstellen in dem einem Eindringungstest
unterzogenen Rechner oder Netzwerk aufzufinden. Das Analyze-Modul
empfängt
von der Scan-Engine eine Kopie aller von den anderen Modulen gelieferten
Datensätze
und benutzt die Analyse-Datensatz-Datei, um spezifische Dateneinträge in diesen
Datensätzen
zu finden. Das Analyze-Modul erzeugt sodann eine Gruppe eigener
Ausgabedatensätze,
die wiederum an die Scan-Engine zurückgeleitet werden, um sie im
Datensatz-Repository zu speichern und letztlich als Eingabedatensätze für ein oder
mehrere der anderen Module zu nutzen. Da bekannt ist, welche bestimmten
Dinge die einzelnen Scan-Module
jeweils im Rechnernetzwerk finden sollen und welchen Typ von Eingaben
die Scan-Module verwenden können,
um ihre Aufgaben zu erfüllen,
wird das Analyze-Modul so programmiert, dass es bestimmte Abtast-Datensätze (oder,
genauer gesagt, bestimmte Felder dieser Abtast-Datensätze) abruft
und Datensätze
ausgibt, die, wenn sie an eines oder mehrere der Scan-Module geleitet werden,
diesen helfen, ihre Ziele zu erreichen.
-
Bei
der Analyse-Datensatz-Datei handelt es sich um eine Sammlung von
Datensätzen
(die in etwa mit den Eingabe- und Ausgabedatensätzen vergleichbar sind), die
jeweils bestimmte Kriterien festlegen, welche einen Abtast-Datensatz
zu einem geeigneten Kandidaten machen, der beim Auffinden zusätzlicher
Schwachstellen hilfreich sein kann. Jeder Datensatz in der Analyse-Datensatz-Datei
enthält
mehrere Felder, von denen jedes etwas im Datensatz spezifiziert,
das vorausgesetzt ("Voraussetzungskriterien" = "require criteria"), gesucht ("Einschlusskriterien" = "include criteria") oder selbst bei
Auffinden des gesuchten Feldes ignoriert werden soll ("Ausschlusskriterien" = "exclude criteria"), und/oder Daten
angibt, die aus dem Datensatz extrahiert oder davon abgeleitet werden,
um sie als Ausgabedaten an die Scan-Engine zu liefern, falls ein
vielversprechender Datensatz gefunden wird ("Ausgabekriterien"). Die "Voraussetzungskriterien" identifizieren dabei
etwas, das vorausgesetzt wird, wobei nach ihnen wird zuerst gesucht
wird, so dass eine weitere Bearbeitung vermieden werden kann, falls
das Vorausgesetzte nicht gefunden wird.
-
Das
Einschlusskriterien-Feld spezifiziert bestimmte Felder und/oder
Werte, nach denen in den Datensätzen
gesucht werden soll. So sucht beispielsweise ein Datensatz in der
Datei nach dem Domainnamen-Dienstprogramm, indem unter den Datensätzen diejenigen
gesucht werden, deren "Dienstprogramm"-Feld ("Service"-Feld) "Domain" lautet. Entweder
die Scan-Engine oder das Modul, das die Datensätze tatsächlich empfangen hat, weist
dem geeigneten Feld im Datensatz, in dem nach Einschlusskriterien
gesucht wird, eine Syntax zu. Ein Beispiel für ein Einschlusskriterium ist
etwa:
R Include="R
Service=!domain!"
was
bedeutet, dass das Analyze-Modul die Abtastungs-Datensätze nach "Service"-Feldern abtastet,
die mit der Vorlage "!domain!" übereinstimmen, wobei diese
oder eine andere Art des Vorlagenabgleichs für die Felder neu hinzukommender
Datensätze
durchgeführt
wird. Ein Datensatz in der Analyse-Datensatz-Datei kann mehrere
Einschlusskriterien-Felder umfassen, wobei sodann alle Datensätze, bei
denen das Analyze-Modul feststellt, dass sie mit irgendeinem der
Einschlusskriterien-Felder übereinstimmen,
weiter in Betracht gezogen werden, d. h. mehrere Einschlusskriterien-Felder
werden nicht als UND-, sondern als ODER-Prämissen behandelt. Vorzugsweise
werden Einschlusskriterien-Felder, die auf das erste Einschlusskriterien-Feld
folgen, für das
eine Übereinstimmung
festgestellt wurde, nicht mehr weiter berücksichtigt, da zur Einbeziehung
eines Datensatzes die Übereinstimmung
mit nur einem Einschlusskriterien-Feld ausreicht.
-
Während mehrere
Einschlusskriterien-Felder als ODER-Prämissen behandelt werden können, ist
es bei der vorliegenden Erfindung aber auch möglich, UND-Prämissen
einzusetzen, wozu dann alle Vorlagen-Kriterien in ein einziges Einschlusskriterium
aufgenommen werden. Ein Beispiel hierfür ist R Include="R Network Ressource=!*!
Protocol=!TCP!".
Zudem kann dasselbe Feld (beispielsweise 'Network Ressource') mehrmals innerhalb desselben Einschlusskriteriums
erscheinen, wobei dann ein Einschlusskriterienabgleich auf der Grundlage
mehrerer Übereinstimmungen
mit demselben Feld erfolgen kann.
-
Ausschlusskriterien
spezifizieren Datensätze,
die aus den die Einschlusskriterien erfüllenden Datensätzen ausgefiltert
werden sollen. Wenn beispielsweise A die Einschlusskriterien erfüllt und
B die Ausschlusskriterien erfüllt,
so sucht das Analyze-Modul nach (alle Datensätze, die A erfüllen) – (alle
Datensätze
die B erfüllen).
Hierdurch werden all diejenigen Abtast-Datensätze ausgefiltert, die zwar
wünschenswerte
Datenfelder umfassen, aber daneben auch andere Datenfelder enthalten,
durch welche die Datensätze
automatisch unerwünscht
sind. Im tatsächlichen
Einsatz werden die Ausschlusskritieren vor den Einschlusskriterien
bearbeitet, da hier für
einen Datensatz, bei dem eine Übereinstimmung
mit einem Ausschlusskriterium festgestellt wird, kein Einschlusskriterienabgleich
mehr durchgeführt
muss.
-
Ausgabe-Kritierien
geben an, welcher Datensatztyp ausgegeben werden soll, wenn eine Übereinstimmung
unter Verwendung von Einschluss- und Ausschlusskriterien festgestellt
wurde. Ausgabekritierien teilen dabei dem Analyze-Modul mit, welche
Felder der Abtast-Datensätze
als Ausgabedatensatz auszugeben sind und welche Werte diese Felder
enthalten sollen. Ausgabedatensätze
sind hierbei nicht auf die Felder und Werte begrenzt, die in den
Eingabedatensätzen
enthalten sind.
-
Die
bevorzugte Bearbeitungsreihenfolge im tatsächlichen Einsatz ist: Voraussetzungskriterien,
Ausschlusskriterien, Einschlusskriterien, Ausgabekriterien.
-
Die
Syntax dieser verschiedenen Analyse-Kriterien lässt sich unter Verwendung der
folgenden zusätzlichen
Vorlagenabgleich-Bestimmungen definieren:
!{Name}! | kann
einen Teil der Ausgabekriterien bilden und gibt an, dass für den Ausdruck
{...} der im Puffer als 'Name' gespeicherte Wert
bzw., falls der benannte Puffer nicht existiert, der Eingabewert
für das
mit 'Name' bezeichnete Feld
eingesetzt wird, um den Ausgabewert für dieses Feld zu erzeugen (wobei 'Eingabe ' bedeutet, dass es
sich um einen Datensatz handelt, der die Voraussetzungs-, Einschluss-
und Ausschluss-Kriterien erfüllt). |
* | ist
ein Platzhaltersymbol für
mehrere Zeichen und kann an einer beliebigen Stelle in einer Gruppe
von Zeichen platziert sein, nach denen gesucht wird. |
? | ist
ein Platzhaltersymbol für
nur ein Zeichen und kann an einer beliebigen Stelle in einer Gruppe
von Zeichen platziert sein, nach denen gesucht wird. |
[xyz] | spezifiziert
Zeichen, die allerdings in jeder beliebigen Reihenfolge auftreten
können. |
[^xyz] | gibt
an, dass die spezifizierten Zeichen nicht enthalten sein dürfen. |
\ | gibt
an, dass ein Buchstabensymbol-Zeichen bzw. eine entsprechende Gruppe
von Zeichen folgt. |
-
Ein
Beispiel für
die Erfassung und Aufnahme von Daten in benannte Puffer ist {Buffer:Pattern="a*z"}. Hierdurch wird
alles, was mit der Vorlage a*z übereinstimmt,
erfasst und in einen mit 'Buffer' bezeichneten Puffer
aufgenommen. Wird nur 'Buffer' angegeben (d. h.
ohne :Pattern="..."), dann wird :Pattern="..." als bekannt vorausgesetzt.
Der Inhalt des Puffers kann ausgegeben werden, indem man {Buffer}
in ein Ausgabefeld aufnimmt.
-
Was
die Syntax der Datensatzeinträge
betrifft, so werden Feldwertbegrenzer, wie etwa das im obigen Beispiel
verwendete Ausrufungszeichen (!) üblicherweise dazu eingesetzt,
Feldeinträge
abzugrenzen. Als Feldwertbegrenzer kann jedes beliebige Zeichen
verwendet werden, das nicht im Feldwert enthalten ist, wobei allerdings
am Anfang und am Ende dasselbe Zeichen verwendet werden muss. Hierbei
dient also das Zeichen, das direkt auf das Gleichheitszeichen (=)
folgt, als Feldbegrenzer, unabhängig
davon, um welches Zeichen es sich handelt, so dass die Scan-Engine
alles, was auf dieses Zeichen folgt, bis hin zum nächsten Erscheinen dieses
Zeichens als Feldwert behandelt. Als Feldbegrenzer kann dabei jedes
ausdruckbare oder visuell erfassbare Zeichen dienen.
-
Vorzugsweise
wird eine gesonderte Konfigurationsdatei erfindungsgemäß dazu eingesetzt,
Netzwerk-Ressourcen aufzulisten, die von den Eindringungsabtastungen
ausgenommen werden sollen. Die Scan-Engine greift jedes Mal auf
diese Datei zurück,
wenn sie einen Ausgabedatensatz von einem Scan-Modul empfängt, und
schließt
bzw. filtert diejenigen Datensätze
aus, die den durch die Ausschlussdatei festgelegten Kriterien entsprechen.
Indem man solche Datensätze
ausfiltert, ehe sie der Gruppe von im Datensatz-Repository 24 gespeicherten
Datensätzen
hinzufügt
und/oder ehe sie als Eingabedatensätze an ein Modul geleitet werden,
ist es bei der vorliegenden Erfindung möglich, eine unnötige Verlangsamung
der Haupt-Netzwerk-Ressourcen während
einer Eindringungs-Abtastung zu vermeiden. Ein Beispiel für eine "Ausschluss"-Konfigurationsdatei
ist:
R Network Ressource="202.119.7.199"
-
Diese
Datei spezifiziert, dass jeder Host-Rechner, der die angegebene
IP-Adresse 202.119.7.199 verwendet, selbst dann nicht abgetastet
werden soll, wenn er durch den Benutzer aufgrund einer Anfrage der
Benutzerschnittstelle spezifiziert wurde. Wenn also beispielsweise
der Benutzer als Antwort auf eine "Was abtasten?"-Anfrage für das Abtasten eines Klasse-C-Netzwerks
202.119.7.1-202.119.7.254
eingibt und der obige Datensatz in der "Ausschluss"-Konfigurationsdatei
aufgefunden wird, so wird jede Netzwerk-Ressource abgetastet, die
im angegebenen IP-Adressbereich liegt, mit Ausnahme der Adresse
202.119.7.199.
-
Zielvorgaben-Konfigurationsdatei
-
Bei
der Zielvorgaben-Konfigurationsdatei handelt es sich um eine weitere
Programmkonfigurationsdatei, die bei der vorliegenden Erfindung
die Zielvorgaben festlegt und angibt, wie diese Zielvorgaben auf
die Module zu übertragen
sind und wie sie funktionieren. Konfigurationsdateien sind Textdateien,
die aus Datensätzen
bestehen und bei der vorliegenden Erfindung dazu eingesetzt werden,
festzulegen, wie bestimmte Teile des Programms ablaufen.
-
Die
Datei besteht dabei aus Datensätzen,
von denen jeder eine Zielvorgabe definiert. Sie wird geladen, wenn
das Programm gestartet wird, und wird vom Datenprozessor dazu eingesetzt,
den Hierarchiebaum für
die Zielvorgaben zu erzeugen.
-
Zielvorgabedefinitions-Datzensätze enthalten
vorzugsweise die folgenden Felder: Name, Parent, Command, Met und
Filter, wie sich dies in 4 bei 40 ersehen
lässt.
Wenn an irgendeiner Stelle in der vorliegenden Erfindung davon die
Rede ist, dass ein Feld ausgelassen wird, so kann dies bedeuten,
dass dieses Feld überhaupt
nicht vorhanden ist, oder aber, dass das Feld vorhanden, aber leer
ist.
-
Wie
sich 4 entnehmen lässt, handelt
es sich bei dem "Name"-Feld in der Zielvorgabe-Konfigurationsdatei
um den Namen der Zielvorgabe, wie er im Zielvorgabe-Baum erscheint.
-
Bei "Parent" handelt es sich
um das der Zielvorgabe in der Hierarchie übergeordnete Feld bzw. die übergeordneten
Felder. Zielvorgaben können
im Baum mehrfach erscheinen, was erreicht wird, indem in die Datei
mehrere "Parent"-Felder aufgenommen
werden. Ein untergeordnetes Feld ("Child-Field") kann auch in entsprechender Weise
dazu eingesetzt werden, die Scan-Engine zu zusätzlichen Zielvorgaben zu leiten.
Da die Durchführung
einer übergeordneten
Zielvorgabe vorzugsweise den Ablauf aller zugehörigen untergeordneten Zielvorgaben
einschließt,
greift die Scan-Engine auf dieses Feld zurück, um die Liste der durchzuführenden
Zielvorgaben festzulegen.
-
Das "Command"-Feld legt das Modul
bzw. die Module fest, das bzw. die eingesetzt wird bzw. werden, wenn
eine spezielle Zielvorgabe ausgewählt wurde. Nicht bei allen
Zielvorgaben kommen Module zum Einsatz, so dass einige kein "Command"-Feld (oder ein leeres "Command"-Feld) enthalten.
Das "Command"-Feld kann zudem
beliebige relevante Parameter und Switches enthalten, was später noch
genauer erläutert
wird. Diese Parameter und Switches helfen dabei, genauer festzulegen
wie das ausgewählte
Modul seine Operationen ausführt.
-
Das "Met"-Feld gibt die Kriterien
an, durch die die Zielvorgabe erfüllt wird. Indem die Scan-Engine
erfährt,
was benötigt
wird, um die Zielvorgabe zu erfüllen,
ist sie besser in der Lage, vorherzusagen, welche Zielvorgaben die
von dem benannten Modul bzw. den benannten Modulen gelieferten Ausgabedatensätze benötigen werden.
-
Das "Filter"-Feld in der Zielvorgabe-Konfigurationsdatei
umfasst die Kriterien, durch die Datensätze als Eingaben für die bei
der jeweiligen Zielvorgabe eingesetzten Module ausgewählt werden.
Die Scan-Engine überprüft alle
im Datensatz- Repository
vorhandenen Datensätze,
einschließlich
der Datensätze,
die dort (ggf.) bei Beginn der Abtastung gemäß der vorliegenden Erfindung
vorhanden sind und der Datensätze,
die durch die Module erzeugt werden. Alternativ hierzu kann die
Scan-Engine auch so ausgelegt sein, dass sie nur eine Untergruppe
dieser Datensätze
abtastet. Falls die Scan-Engine einen Datensatz findet, der die
im "Filter"-Feld angegebenen
Kriterien erfüllt,
so wird dieser Datensatz als Eingabe an das im "Command"-Feld angegebene Modul weitergeleitet.
Nur die Zielvorgaben, für
die Module eingesetzt werden, können
ein "Filter"-Feld aufweisen,
wobei hier allerdings ein "Filter"-Feld nicht unbedingt
vorhanden sein muss. Wird kein Filterkriterium spezifiziert, so
werden alle im Daten-Repository bzw. in der Untergruppe vorhandenen
Datensätze
zum Modul geleitet.
-
Die
Zielvorgabe-Konfigurationsdatei kann zudem "Try"-
und "Try If"-Felder umfassen,
die zusätzliche Zielvorgaben
definieren, welche zusammen mit der jeweiligen Zielvorgabe ablaufen
sollen. Die zusätzlichen Zielvorgaben
im "Try If"-Feld laufen nur
unter bestimmten Bedingungen ab, während diejenigen im "Try"-Feld immer ablaufen.
Diese Felder sind optional, erhöhen
jedoch die Leistungsfähigkeit
und Effektivität
der vorliegenden Erfindung. Die "Try"- und "Try If"-Felder führen dazu,
dass bei der vorliegende Erfindung ein System von abhängigen Zielvorgaben
vorhanden ist, das sicherstellt, dass genügend Daten erzeugt werden,
um die Durchführbarkeit
einer Zielvorgabe zu garantieren. So müssen zum Beispiel zur Feststellung,
ob ein SMTP"vrfy"-Feature, etwa eine
SMTP-Adresse oder eine Benutzer-Verifikation, aktiviert ist, bei
der vorliegenden Erfindung zuerst SMTP-Server aufgefunden werden. Die Abhängigkeit
der Zielvorgaben, die durch die "Try"- und "Try If"-Felder definiert
wird, bezieht sich auf weitere Zielvorgaben, die bei der anstehenden
Aufgabe hilfreich sein können.
Zielvorgaben im "Try
If"-Feld laufen
nur dann ab, wenn im Daten-Repository keine brauchbaren Daten vorhanden
sind.
-
Das "Command"-Feld der Datei kann
auch Modul-Parameter und Switches umfassen, wobei diese allerdings
auch als gesonderte Felder vorliegen können und unabhängig von
ihrer Konfiguration zusätzliche
Informationen darüber
liefern, wie das Modul arbeiten soll. Das Parameter-Feld kann einen
Satz von Anfangs-Eingabedaten
liefern, der von dem im "Command"-Feld genannten Modul
zu Beginn benutzt werden soll. Zwar kann ein Modul für mehrere
Zielvorgaben eingesetzt werden und daher in mehreren Zielvorgabe-Datensätzen der
Zielvorgabe-Konfigurationsdatei
genannt sein; es kann dabei aber je nach dem im "Com mand"-Feld vorhandenen Parameter-Satz für jede Zielvorgabe
mit unterschiedlichen Parametern arbeiten.
-
Für einige
Module sind ggf. spezifische, zusätzliche Parameter-Felder nötigt, sofern
diese Module immer eine bestimmte Information benötigen. Dies
gilt beispielsweise für
einen "Port-Parameter", wobei es sich auch
um einen fest zugeordneten Parameter handeln kann, der für das TCP-Scanner-Modul
und ähnliche
Module eingesetzt wird, die Informationen darüber benötigen, welche Ports abgetastet
werden sollen. Der Parameter identifiziert diesen Port bzw. diese
Ports. Die Syntax kann dabei lauten: TCPScan {ports1 ports2 ... portsn}.
Die Port-Spezifikationen
kann dabei jeweils einen einzelnen Port, einen Bereich von Ports
(erster und letzter, getrennt durch einen Bindestrich) oder einen
bekannten Port-Namen
(ftp, http, etc.) angeben, wobei diese Angaben jeweils durch eine
Leerstelle voneinander getrennt sind. Weitere fest zugeordnete Parameter-Felder
können
bei der vorliegenden Erfindung je nach den von den Modulen benötigten Informationen
zum Einsatz kommen.
-
Die
im "Command"-Feld vorhandenen
Switches zeigen zusätzliche
Informationen über
die Eingabe und/oder Ausgabe des Moduls an. So kann beispielsweise
ein "Message"-Switch dazu verwendet
werden, zu regeln, wie viele der durch das Modul zurückgesandten
Informationen als eine "Message"-Ausgabe an die Benutzerschnittstelle 12 weitergeleitet
werden soll. Die Syntax für
einen Switch kann den Zeichen-String: –m {level} im "Command"-Feld umfassen. Dabei
kann der "level"-Parameter das Genauigkeitsniveau
anzeigen, das die Ergebnisse des Moduls erreichen müssen, um
an die "Message"-Ausgabe weitergeleitet
zu werden. Die Scan-Engine sieht den "Message"-Switch, bestimmt, ob die Information
im Ausgabedatensatz des Moduls dem Kriterium entspricht, und liefert,
falls dies der Fall ist, die geeigneten Fehler/Diagnose-Daten zusammen mit
allen zusätzlichen
inhaltlichen Erklärungen,
die der Benutzer ggf. benötigt,
um das Dargestellte zu verstehen, vom Ausgabedatensatz zur Message-Ausgabe
an der Benutzerschnittstelle.
-
Zusätzlich kann
ein Eingabe-Switch als weiterer Switch im "Command"-Feld eines Zielvorgabe-Datensatzes
der Zielvorgabe-Konfigurationsdatei vorhanden sein. Dieser Switch
wird dazu eingesetzt, ähnlich
wie ein Basisregister dem Modul den Inhalt einer spezifischen Datei
zuzuführen,
anstatt die tatsächlichen
Eingabedaten zu spezifizieren, wie dies durch das "Parameter-Feld" erfolgen kann. Bei
der Datei kann es sich um einen Datensatz im Datensatz-Repository 26 oder
eine an anderer Stelle im Speicher 24 abgelegte Datei handeln.
Ein Beispiel für
die Syntax eines Eingabe-Switches ist: –i {filename}, wobei "filename" den Namen und den
Pfad der Datei umfasst.
-
Einige
der bei der vorliegenden Erfindung verwendeten Module können fest
zugeordnete Switches umfassen, wenn für sie spezielle Betriebsvoraussetzungen
gelten. So führt
beispielsweise das Modul "TCP Scanner" Port-Scans entsprechend
einem speziellen Satz von Operationen durch, die dem Fachmann bekannt sind.
Für dieses
Modul liefert die vorliegende Erfindung einen "Banner Switch", der dem TCP-Scanner befielt, bei einem
erfolgreichen Herstellen einer Verbindung zum Port das Dienstprogramm-Banner
zu lesen. Die Syntax kann hierbei wie folgt lauten: –b.
-
Bei
der vorliegenden Erfindung können
auch andere Switches zum Einsatz kommen, um die Vielseitigkeit zu
erhöhen
und die Zusammenarbeit von Scan-Engine und Modulen zu vereinfachen.
-
Vorzugsweise
wird zudem ein Scripting-Modul vorgesehen, das eine Standard-Scripting-Schnittstelle zur
interaktiven Kommunikation mit Dienstprogrammen und Netzwerk-Ressourcen
unabhängig
vom Protokoll liefert.
-
Die Scan-Engine
-
Die
Scan-Engine ist dafür
zuständig,
den gesamten Eindringungstest zu überwachen, und leitet den Informationsfluss
durch das Programm. Wie sich wiederum 2 entnehmen
lässt,
umfasst die Scan-Engine 14 einen Datenprozessor 20,
das Datensatz-Repository 26 und Mittel, die die Eingaben
und Ausgaben der Module überwachen.
Der Datenprozessor 20 und das Datensatz-Repository 26 bilden
zusammen einen der Kerne der vorliegenden Erfindung.
-
Die
Scan-Engine 14 übersetzt
die vom Benutzer ausgewählten
Zielvorgaben 22 unter Verwendung der Zielvorgabe-Konfigurationsdatei
in eine Liste von Modulen, die ablaufen sollen. Die Übersetzung
kann auch dazu führen,
dass Zielvorgaben verfolgt werden, die zwar nicht speziell vom Benutzer
identifiziert wurden, jedoch bei der Durchführung der Eindringungs-Abtastung
hilfreich wären.
So kann der Benutzer beispielsweise einen Eindringungstest an einem
speziellen Typ von Port wünschen
und die Scan-Engine würde
sodann entscheiden, auch eine Abtastung anderer Port-Typen durchzuführen, weil
diese dem gewählten
Port ähnlich
sind oder möglicherweise
weit diese anderen Ports Informationen liefern könnten, die bei dem Eindringungstest
am vom Benutzer gewählten
Port von Nutzen wären.
Wie bereits beschrieben, sind alle Informationen, die die Scan-Engine 14 benötigt, um
zu entscheiden, welche Module ablaufen sollen, in der Zielvorgabe-Konfigurationsdatei
enthalten.
-
Der
Datenprozessor 20 wird durch Programmdateien angetrieben,
die im Speicher enthaften sind. Die Programme geben an den Datenprozessor 20 Befehle
zur Erfüllung
der hier beschriebenen Funktionen. Bei einem bevorzugten Ausführungsbeispiel
der Erfindung erhält
der Prozessor von den Modulen Daten in Form von Datensätzen und
setzt Dateifilter mit "Ausschluss"-Konfiguration und/oder
andere der oben beschriebenen Filter ein, um zu entscheiden, ob
diese Daten dem Repository hinzugefügt werden sollen. Er sucht
nach doppelten Datensätzen
und fügt
diese der Datengruppe nicht hinzu. Das Filter-Feld im Zielvorgabe-Datensatz
der Zielvorgabekonfigurationsdatei wird auch vom Datenprozessor 20 dazu
eingesetzt, zu entscheiden, welche der im Daten-Repository 26 vorhandenen
Datensätze
an welche Module gesandt werden sollen. Das Filter-Feld kann bei
einem weniger bevorzugten Ausführungsbeispiel
auch nach doppelt vorhandenen Informationen suchen.
-
Der
Datenprozessor 20 wird bei der vorliegenden Erfindung auch
dazu eingesetzt, die Daten zu analysieren, die durch die Scan-Module
beim Abtasten eines Rechners oder Rechnernetzwerks erzeugt werden. Selbst
wenn von einem Benutzer nur eine Zielvorgabe eingesetzt wird, so
kann der Datenprozessor doch mehrere weitere Module ablaufen lassen,
um die notwendigen Daten für
diese und möglicherweise ähnliche
oder hiermit in Verbindung stehende Zielvorgaben zu liefern. Mit
Hilfe des bereits beschriebenen Analyze-Moduls ist die Scan-Engine
in der Lage, umfassende Ergebnisse eines Eindringungstests zu liefern.
-
Was
die Steuerung des Einsatzes der Module 16 betrifft, so
startet die Scan-Engine 14 die
ausgewählten
Module vorzugsweise parallel. Werden mehrere Eindringungs-Zielvorgaben
verfolgt, so laufen alle zugehörigen
Module parallel (soweit dies möglich
ist) und erzeugen Datensätze,
die dem Datensatz-Repository zugeleitet werden. Einige Module können sofort
ablaufen, und zwar entweder si multan oder mit Multiplex-Zeitsteuerung,
weil ihre Ausgangs-Startinformation entweder vorhanden oder vorab
festgelegt sind, während
andere Module zuerst die Ergebnisse von weiteren Modulen abwarten
müssen.
Die durch die Module gewonnenen Daten werden in Form eines Datensatzes
an den Datenprozessor 20 ausgegeben. Bei der vorliegenden Erfindung
werden die Datensätze
im Datensatz-Repository 26 gespeichert, bei dem es sich
um den zentralen Informationspunkt für alle bei der vorliegenden
Erfindung durchgeführten
Operationen handelt. Wie sich 2 entnehmen
lässt,
ist das Repository 26 mit dem Datenprozessor 20 durch
eine bidirektionale Schnittstelle verbunden. Die an die Benutzerschnittstelle 10 geleiteten
Ausgabedaten werden zudem auch unter Verwendung von Informationen
vom Repository 26 erzeugt. Die Organisation der Datensätze im Speicher
ist nicht von Bedeutung, da beim Zugriff auf das Repository 20 meistens
nach bestimmten Feldern innerhalb der Datensätze und nicht nach spezifischen
Adressen gesucht wird.
-
Werden
irgendwelche Datensätze,
die gemäß der Definition
durch das Filter-Feld in der Zielvorgabe-Konfigurationsdatei für eine spezielle
Zielvorgabe von Nutzen sind, der Datengruppe im Repository 26 hinzugefügt, so leitet
sie der Datenprozessor 20 an das entsprechende Modul. Um
eine vorzeitige Weiterleitung von Datensätzen zu vermeiden, kann der
Datenprozessor 20 ein Signal vom Modul 16 abwarten,
das besagt, dass das Modul den Eingabedatensatz benötigt. Falls
kein Filter-Feld für
eine bestimmte Zielvorgabe 22 vorhanden ist, so werden
alle Datensätze
standardmäßig als
für die
Zielvorgabe nützlich
angesehen und an das bzw. die der Zielvorgabe entsprechende(n) Modul(e) 16 weitergeleitet.
Die Tatsache, dass Zielvorgaben gleichzeitig ablaufen, Daten in
das gemeinsame Repository eingeben und nützliche Informationen aus dem
Repository abrufen können,
ermöglicht
es bei der vorliegenden Erfindung, ein Netzwerk in sehr gründlicher
Weise und in sehr kurzer Zeit abzutasten.
-
Die
Scan-Engine 14 setzt zudem Prioritäten für die Durchführung verschiedener
Strategien, indem sie die Zeitspanne bewertet, die die Schwachstellen-Prüfungen jedes
Moduls erfordert. Wenn beispielsweise ein bestimmtes Modul 16 nur
eine kurze Schwachstellen-Prüfung
pro Netzwerk-Ressource durchführt,
so ist dieses Modul 16 in der Lage, schnell alle ihm zugeteilten
Netzwerk-Ressourcen zu bearbeiten. Indem dieses Modul zuerst abläuft, stehen
die von ihm gewonnenen Informationen relativ bald anderen Modulen
zur Nutzung zur Verfügung.
Wenn hingegen ein Modul 16 viele Operationen durchführen muss,
so wird es einen großen Teil
der zur Verfügung
stehenden Bearbeitungszeit für
die Bearbeitung jeder ihm zugeteilten Netzwerk-Ressource benötigen und
dabei anderen Modulen Daten vorenthalten. Es ist vorteilhaft, wenn
die Scan-Engine ein solches Modul so lange nicht einsetzt, bis andere
Module abgelaufen sind.
-
Vorzugsweise
laufen Module parallel ab, was auch Zeit einspart. Durch die Koordinierung
der Scan-Engine und der Module in einer Weise, die den effizientesten
Ausgleich zwischen Ressourcen-Verbrauch und gelieferten Ergebnissen
von Scan-Engine und Modulen schafft, werden der Lernprozess und
die Rückkopplung
bei der vorliegenden Erfindung verstärkt. Wenn versucht wird, zu
viele zeitaufwendige Schwachstellen-Prüfungen in einem Modul durchzuführen, so
kann dies zu unerwünschten
Verzögerungen
führen.
Optimale Durchführungszielsetzungen
beruhen auf der Durchführung
von Prüfungen,
bei denen die Wahrscheinlichkeit besteht, dass sie schnell Erfolg
bringen. Der modulare Aufbau bei der vorliegenden Erfindung ermöglicht die
Erzielung von optimalen Ergebnissen, indem die Module einfach und
unkompliziert gehalten werden. Eine nützliche (jedoch nicht verbindliche)
Empfehlung für
die Erzeugung von Modulen besteht darin, das jedes Modul zur Durchführung eines
Schrittes dienen sollte. Die Scan-Engine sorgt für die Weiterleitung von Datensätzen von
einem Schritt zum nächsten,
bis die Abtastung abgeschlossen ist.
-
Eine
weitere Möglichkeit,
Prioritäten
unter den Scan-Modulen zu schaffen, besteht darin, in das Modul Optionen
einzubauen, die es ihm ermöglichen,
schneller oder langsamer abzulaufen, je nachdem was gerade nötig ist.
So wird beispielsweise das TCP-Scanner-Modul für mehrere unterschiedliche
Zielvorgaben eingesetzt. Das Modul ermöglicht es, einen TCP-Port abzutasten.
Zu den Parametern, die es erhalten muss, gehört ein Bereich von zu suchenden
Ports sowie die Anzahl von Ports, nach denen gleichzeitig gesucht
werden soll. Wenn für
eine Zielvorgabe nur eine kleine Anzahl von Ports, die bereits bekannt
sind, überprüft werden
soll, so kann das "Parameter"-Feld der Zielvorgaben-Konfigurationsdatei
dies für
diese Zielvorgabe angeben. Module müssen nicht ablaufen, ehe für sie Eingaben
zur Verfügung
stehen, so dass die Scan-Engine das Filter-Feld einsetzen kann,
um festzulegen, ob und wann ein bestimmtes Modul ablaufen soll.
Als eine dritte Regel für
das Setzen von Prioritäten
kann die Scan-Engine hinsichtlich der Anzahl der von einem Modul
zur Durchführung
seiner Abtastung benötigten
Ports einem Modul, das nur eine kleine Anzahl von Ports benötigt, eine
höhere
Priorität
zuwei sen als einem Modul, das eine größere Anzahl von Ports benötigt. Hierdurch
kann eine größere Anzahl
von Modulen gleichzeitig arbeiten.
-
Es
folgt ein Beispiel für
die Durchführung
der vorliegenden Erfindung, wobei eine Netzwerk-Prüfeinrichtung
gemäß dem Stand
der Technik die folgenden unabhängigen
Schritte durchführen
würde:
- 1. Lokalisieren von Windows95-Systemen, die
mit dem Netzwerk auf eine bestimmte Weise Dateien gemeinsam nutzen.
Dies als Schwachstelle melden.
- 2. Lokalisierung von Systemen, die durch da Einlog-TCP/IP-Dienstprogramm
einen Zugriff erlauben. Versuch, mehrere übliche Einlog-Namen und Passwörter zu
benutzen, um Zugriff zu erlangen. Bericht, dass das Dienstprogramm
zur Verfügung
steht, und somit eine Schwachstelle vorhanden ist, bei jedem funktionierenden
Einlog-Namen und jedem funktionierenden Passwort.
-
Bei
der vorliegenden Erfindung würden ähnliche
Schritte durchgeführt,
wobei allerdings ein Datenaustausch zwischen diesen Schritten stattfindet:
- 1. Lokalisieren von Windows95-Systemen, die
Dateien auf spezielle Weise gemeinsam mit dem Netzwerk nutzen. Dies
als Schwachstelle melden. Einsatz des SMB-Protokolls zur Gewinnung
von .PWL-Dateien sowie Entschlüsselung
dieser Dateien zur Gewinnung von Netzwerk-Passwörtern.
- 2. Lokalisieren von Systemen, auf die ein Zugriff durch das
Einlog-TCP/IP-Dienstprogramm
möglich
ist. Einsatz der von dem Modul im Schritt 1 gewonnenen
Netzwerk-Passwörter,
um einen Zugriff zu versuchen. Versuch, sich mit mehreren herkömmlichen
Einlog-Namen und Passwörtern
Zugriff zu verschaffen. Bericht, dass das Dienstprogramm zur Verfügung steht,
und somit eine Schwachstelle vorhanden ist, bei jedem funktionierenden
Einlog-Namen und jedem funktionierenden Passwort.
-
Hier
handelt es sich um ein einfaches Beispiel, weil nur eine zusätzliche
Eindringungs-"Ebene" beschrieben ist,
d. h. die zu nur einer Schwachstelle gesammelten Daten für das Auffinden
einer anderen Schwachstelle genutzt werden; bei der vorliegenden
Erfindung können
allerdings sehr viel komplexere Schwachstellenüberprüfungen durchgeführt werden.
So sind bei der vorliegenden Erfindung zwei, drei, vier oder mehr
Ebenen von zusätzlichen
Eindringungsversuchen möglich.
Zudem ermöglicht
es die vorliegende Erfindung einem Modul, neue Daten zu verarbeiten.
Dies erfolgt durch ständiges
Abtasten des "Filter"-Felds der durchzuführenden
Zielvorgaben immer wenn ein neuer von einem Modul kommender Datensatz
ankommt. Ein Modul kann mehrfach ablaufen, wobei allerdings das
Starten des Moduls zeitaufwendig sein kann, so dass es vorzuziehen
ist, mehrere Datensätze
zu bearbeiten, während
das Modul nur einmal eingesetzt wird.
-
Was während einer
Abtastung geschieht
-
Ein
Beispiel für
das, was während
einer Abtastung mit den in Anführungszeichen
angegebenen Dateinamen, Zielvorgaben etc. geschieht, wird in folgenden
unter Bezugnahme auf die 4 und 5 erläutert. Zuerst geht im Schritt 51 von 5 ein Benutzer die an der
Benutzerschnittstelle 10 angezeigten Eindringungsoptionen
durch und wählt
eine oder mehrere davon aus, die nun die gewünschten Zielvorgabe(n) festlegt
bzw. festlegen. Bei diesem Beispiel heißt die Option "Discover Network
Ressources that Respond to Ping" ("Entdecke Netzwerk-Ressourcen,
die auf Ping-Abtastung antworten")
(3). Der Benutzer wählt nun
die "Start"-Option aus, um den
Eindringungstest durchzuführen.
Siehe Schritt 52.
-
Die
Scan-Engine 14 überprüft den mit
dieser Zielvorgabe verbundenen Datensatz in der Konfigurations-Datei,
der in diesem Fall in 4 dargestellt
ist. Siehe Schritt 53.
-
Das "R" in 4 bezeichnet
den Anfang eines Datensatzes. Das "Name"-Feld
zeigt an, dass dieser Datensatz der durch den Benutzer getroffenen
Wahl entspricht, nämlich "Discover Network
Ressources that Respond to Ping".
-
Der "Parent"-Name zeigt die im
Hierarchiebaum der Zielvorgabe-Konfigurationsdatei
der getroffenen Auswahl übergeordnete
Ebene an.
-
Es
ist ein "Command"-Feld vorhanden,
welches "Ping" angibt. Hierdurch
wird der Scan-Engine mitgeteilt, dass das "Ping"-Modul
für diese
Zielvorgabe aktiviert wer den muss; siehe Schritt 54. Hätte das "Command"-Feld zusätzliche
Module angegeben oder hätte
der Benutzer zusätzliche
Zielvorgaben ausgewählt,
so würde
die Scan-Engine auch die entsprechenden Module aktivieren.
-
Das "Filter"-Feld legt fest "R Type=!IP host!", was bedeutet, dass
dem "Ping"-Modul alle vorher aufgezeichneten, derzeit
vorhandenen und in Zukunft anfallenden Datensätze im Datensatz-Repository
zugeleitet werden sollen, die ein "Type"-Feld mit dem Identifikator "IP host" enthalten. (Die "Type"-Felder sind an anderer Stelle
in der vorliegenden Beschreibung erläutert). Der Grund hierfür liegt
darin, dass nur IP-Netzwerk-Ressourcen, nicht aber andere Protokolle,
wie etwa netbios, einer Ping-Abtastung unterzogen werden können. Siehe
Schritt 55.
-
Das "Try"-Feld schlägt eine
zusätzliche
Zielvorgabe/zusätzliche
Zielvorgaben vor, die bei der Erfüllung der Zielvorgabe des "Command"-Moduls nützlich sein
können
und/oder Ergebnisse liefern können,
die in einer Beziehung zur Zielvorgabe des "Command"-Moduls stehen oder diese ergänzen. Da
der Datensatz, auf den zugegriffen wurde, in diesem Fall ein "Try"-Feld aufweist, läuft bei
der vorliegenden Erfindung auch die entsprechende Zielvorgabe ab
(siehe Schritt 54), die in 4 als "Extract information
from icmp packets" ("Extrahiere Information
von icmp-Paketen")
angegeben ist. Diese Zielvorgabe kann zu einer Aktivierung des "RawICMP"-Moduls führen. Falls
die "Filter"-Informationen dieses
Moduls im Datensatz-Repository vorhanden sind oder falls kein Filter-Feld
existiert, so läuft
dieses Modul sofort ab. Siehe Schritt 56. Die vorliegende
Erfindung ist dazu ausgelegt, diese zusätzliche Zielvorgabe ablaufen
zu lassen, weil icmp das Protokoll ist, das bei einer Ping-Abtastung
und bei jeder als Ergebnis einer Ping-Abtastung zurückgeleiteten Information verwendet wird.
-
Falls
während
des Ablaufens der Module bei der vorliegenden Erfindung festgestellt
wird, dass kein den "Filter"-Kriterien entsprechender
Datensatz im Datensatz-Repository vorhanden ist, siehe Schritt 55,
wird im Schritt 57 das "Try
If"-Feld untersucht.
Das "Try If"-Feld enthält eine
Hilfs-Zielvorgabe, die beim Eindringungstest von Nutzen sein kann.
Die Hilfs-Zielvorgabe in 4 lautet "Discover TCP/IP network
ressources" ("Entdecke TCP/IP-Netzwerk-Ressourcen"). Diese Zielvorgabe
kann dazu führen,
dass die Benutzerschnittstelle eine Anfrage an den Benutzer stellt,
wie etwa "Was abtasten?". Falls der Benutzer
nicht genau spezifiziert, was abzutasten ist, und stattdessen mit
einem "OK" antwortet oder falls
eine bestimmte Auszeit abläuft, in
der der Benutzer nichts eingibt, beginnt bei der vor liegenden Erfindung
eine Suche nach Netzwerk-Ressourcen, indem ein "Ping-Signal" ausgesendet wird,
und der Test wird sodann mit anderen Scan-Modulen fortgeführt. Falls
der Benutzer ein bestimmtes Netzwerk, eine bestimmte Domain oder
einen bestimmten Host etc. spezifiziert, so verwendet die Scan-Engine
diese Eingabeinformation und versucht, die vorhandenen Informationen
so in IP-Adressen
umzuwandeln, dass die Abtastung fortgesetzt werden kann. Falls "Try If"-Zielvorgaben vorliegen,
so wird auf deren Modul(e) zugegriffen und dieses wird bzw. diese
werden aktiviert. Siehe Schritt 58. Falls dies nicht der
Fall ist, so wird beim Eindringungstest überprüft, ob die Zielvorgaben aller
Module und/oder andere Voraussetzungen für die Beendigung des Schrittes 65 erfüllt wurden.
-
Bei
einem alternativen Ausführungsbeispiel
kann das "Was scannen"-Modul vorab festgelegte
Abtastungen durchführen,
d. h. beispielsweise herausfinden, ob bestimmte Systeme im abgetasteten
Rechner oder Netzwerk existieren, wobei es Anfragen an den Benutzer
stellt, wie etwa "Das
System X wurde gefunden. Wollen Sie herausfinden, ob eine Eindringung
möglich
ist?". Abhängig von
der vom Benutzer getroffenen Wahl setzt das System je nach Typ des
Systems X, der wahrscheinlichen Eigenschaften dieses Systems etc.
weitere Module am System X ein.
-
Das
Senden eines "Ping-Signals" ruft eine Antwort
vom abgetasteten Netzwerk hervor. Wenn das Ping-Modul an mehrere
Ressourcen-Typen Signale sendet, so können mehrere Antworten zurückgesendet werden.
Die Antworten werden von anderen, auf Empfang eingestellten Modulen,
etwa RawICMP, empfangen, die nun einen Datensatz erzeugen, der durch
den Datenprozessor 20 im Datensatz-Repository 26 abgespeichert
wird. Siehe Schritt 59. Der Datensatz kann ohne weitere
Bearbeitung gespeichert werden oder auch durch die Scan-Engine entsprechend
verschiedenen Filtern, wie etwa dem Ausschluss-Filter, und/oder
gemäß dem (den)
Datenanalyse-Modul(en) in einen anderen Datensatz umgewandelt (oder
sogar gelöscht)
werden. Andere ablaufende Module können die Ergebnisse der Ping-Signalaussendung
durch den Datenprozessor empfangen, siehe Schritte 55 und 56,
und Datensätze
ausgeben, die alle ggf. entdeckten Netzwerk-Ressourcen anzeigen (Schritt 59).
-
Sobald
irgendwelche Datensätze
mit dem Feld und dem Wert "Type=!IP
Host!", d. h. den
Filter-Kriterien des vorliegenden Beispiels, der Datensatzgruppe
im Datensatz-Repository hinzugefügt
werden (Schritt 59), werden diese Datensätze durch
den Datensatzprozessor 20 an das Ping-Modul geleitet (Schritte 55 und 56)
und das Ping-Modul führt
eine Ping-Abtastung dieser Netzwerk-Ressourcen durch, um zu verifizieren, dass
diese tatsächlich
existieren. Falls irgendwelche Netzwerk-Ressourcen auf die vom Ping-Modul
ausgesandten Ping-Signale antworten, wird ein Schwachstellen-Datensatz
erzeugt (Schritt 60) und entweder im Datensatz-Repository 26 oder
an anderer Stelle im Speicher 24 abgespeichert. Der Schwachstellen-Datensatz kann
das Feld enthalten (Schwachstelle = "antwortet auf Ping").
-
Falls
irgendwelche Datensätze,
die Schwachstellen enthalten, erzeugt werden, so wird bei der vorliegenden
Erfindung eine Schwachstellen-Risiko-Datei herangezogen (Schritt 61),
um auf den der Schwachstelle zugeordneten Risikowert zuzugreifen,
wobei gleichzeitig auch eine Ausgabe an die Benutzerschnittstelle
erzeugt werden kann. Siehe Schritt 62. So wird zum Beispiel
jeder Datensatz, der von einem der arbeitenden Module erzeugt wird
und ein Schwachstellenfeld enthält,
in einer Datentabelle angezeigt und ein visueller Graph wird jeweils
so aktualisiert, dass er die sich veränderte Anzahl ermittelter Schwachstellen
wiedergibt.
-
Der
neue, von einem Modul empfangene Datensatz kann ggf. ein "Met"-Feld einer Zielvorgabe
erfüllen,
siehe Schritt 63, wobei das "Met"-Feld
angibt, was benötigt
wird, um die Zielvorgabe des/der gelisteten Moduls/Module zu erfüllen. Wird
bei dem oben angegebenen Beispiel ein Datensatz erzeugt, dessen Schwachstellen-Feldangabe "antwortet auf Ping" lautet, so ist die
Zielvorgabe erfüllt.
Bei der vorliegenden Erfindung ist es möglich, in das "Met"-Feld unterschiedliche
Anforderungen einzugeben, was bedeutet, dass, wenn der Benutzer
eine Zielvorgabe auswählt,
das Modul daraufhin ablaufen kann, bis "X" eintritt,
wobei dasselbe Modul sodann weiter ablaufen kann, bis "Y" eintritt, sofern der Benutzer eine
weitere Zielvorgabe auswählt,
die in einem anderen Datensatz in der Zielvorgabekonfigurationsdatei
erscheinen würde.
Die Einsatzflexibilität,
die es ermöglicht,
dasselbe Modul je nach der vom Benutzer getroffenen Zielvorgabenwahl
arbeiten zu lassen, bis verschiedene Kriterien erfüllt sind,
stellt einen weiteren Vorteil der vorliegenden Erfindung dar. Dies
bedeutet allerdings nicht notwendigerweise, dass der Einsatz des
Moduls beendet wird, sobald "Met"-Kriterien gefunden
wurden. Stattdessen wird ein Modul vorzugsweise solange eingesetzt,
bis keine Datensätze mehr
darauf warten, an irgendeines der Module gesandt zu werden, und
keine Module mehr Datensätze
bearbeiten (oder wenn eine maximale Abtastzeit verstri chen ist).
Siehe Schritt 65. Ein weiteres Beispiel ist die Zielvorgabe "entdecke smtp-Server", die das folgenden "Met"-Kriterium enthalten
kann:
Met = "R
Vulnerability"=!smtp
service enabled!"
-
Dies
bedeutet, dass die Zielvorgabe durch Abtastdatensätze erfüllt wird,
die ein Schwachstellen-Feld mit dem Wert "smtp service enabled" aufweisen. Üblicherweise erfüllt eine
ganze Anzahl von Datensätzen
eine bestimmte Zielvorgabe, so dass das Modul seine Arbeit nicht
zu beenden braucht, sobald der erste passende Datensatz gefunden
wurde. Es kann arbeiten, bis eine festgelegte Anzahl, beispielsweise
drei, passender Datensätze
gefunden sind oder bis keine weiteren Eingabedaten mehr ankommen
oder aber bis ein bestimmtes Ereignis, etwa eine Auszeit, eintritt.
-
Wenn
eine Zielvorgabe während
einer Abtastung erfüllt
wurde, so kann an den Benutzer eine entsprechende sichtbare oder
hörbare
oder auch eine andere Anzeige ausgegeben werden, wobei auch der
höchste Risiko-Wert
des/der passenden Datensatzes/Datensätze angezeigt werden kann.
Siehe Schritt 64. Zudem kann der Datenprozessor ein Flag
so setzen, dass er weiß,
dass die Zielvorgabe/n des Moduls "X" bzw.
der Module "X" erfüllt ist/sind.
Beim vorliegenden Beispiel besitzt "antwortet auf Ping" auf einer Beispiel-Skala von 0 bis
99 einen in der Schwachstellen-Risikodatei festgelegten Risikowert
von 15, so dass die entsprechende Ausgabe an den Benutzer nur ein
niedriges Risiko einer Sicherheitslücke anzeigen wird.
-
Sobald
alle "Met"-Felder erfüllt wurden
und/oder alle (ggf. vorhandenen) "Try"- und "Try If"-Zielvorgaben bearbeitet
wurden und/oder alle anderen Bearbeitungsvorgänge abgeschlossen sind, endet
der Eindringungstest. Siehe Schritt 66. Zu diesem Zeitpunkt
kann die Scan-Engine abschließende
Ausgabeinformationen für
die Benutzerschnittstelle erzeugen. Das Analyze-Modul, das vorzugsweise
während
des gesamten Eindringungstestes aktiv war und hoffentlich dem Datensatz-Repository noch zusätzliche
Datensätze
hinzufügen konnte,
kann am Ende des Eindringungstests ebenfalls dazu eingesetzt werden,
die abschließenden
Ausgabeinformationen zu erzeugen.
-
Auf
der Grundlage der Bearbeitung gemäß der vorliegenden Erfindung
werden die von den Modulen in Form von Abtastdatensätzen ausgegebenen
Daten als Ein gabedaten wiederverwendet, wodurch sie ihren Zweck
bei der Informationsbeschaffung und dem Aufspüren von Schwachstellen erfüllen. Für die Datenerzeugung
greifen die Zielvorgaben gegenseitig aufeinander zurück, wobei
die Überwachung
des Eindringungstests durch die Scan-Engine eine bedeutende Rolle
spielt.
-
Schwachstellen
-
Das
Endziel der vorliegenden Erfindung besteht darin, Schwachstellen
eines Netzwerks aufzuspüren. Bei
Schwachstellen handelt es sich um Möglichkeiten für einen
Angreifer, unerlaubt auf ein Netzwerk zuzugreifen, Daten zu stehlen
oder zu zerstören
oder zu veranlassen, dass den berechtigten Netzwerkbenutzern Dienstprogramme
nicht mehr zur Verfügung
stehen. Während
einer Eindringungsabtastung wird die Ausgabe ständig im Hinblick auf neu entdeckte
Schwachstellen sowie auf die Anzeige von Schwachstellen mit niedrigem,
mittleren und hohen Risiko aktualisiert. Die durch den Datenprozessor 20 der
Scan-Engine erzeugten Ausgabeberichte können die Schwachstellen zusammenfassen
bzw. die Schwachstellen einer bestimmten Netzwerk-Ressource bzw.
die eine bestimmte Schwachstelle aufweisenden Netzwerk-Ressourcen
auflisten. Die Schwachstellen-Risiko-Datei hilft dabei, das Risiko
einzuschätzen,
wobei beispielsweise eine Risikoskala von 1 bis 100 (oder von 0
bis 99) eingesetzt wird, und sie kann wahlweise auch Hinweise darauf
geben, wie die Schwachstellen behoben werden können.
-
Hinzufügen von
Modulen
-
Aufgrund
der Art und Weise wie die vorliegenden Erfindung ausgeführt ist,
laufen die Module unabhängig
vom Programm ab. Dies bedeutet, dass sich neue Module auf relativ
einfache Weise hinzufügen
lassen.
-
Ein
neues Modul, das bei der vorliegenden Erfindung ablaufen soll, lässt sich
hinzufügen,
indem man zuerst das Modul erzeugt. Bei dem Modul handelt es sich
um eine unabhängig
ausführbare
Konsolen-Anwendung, die dazu ausgelegt ist, ein Netzwerk zu überprüfen. Das
Modul muss in der Lage sein, das Datensatzformat zu bestimmen und
Datensätze
zu erzeugen, Datensätze
als Standardeingabe zu akzeptieren und Datensätze als Standard-Ausgabe zu
erzeugen. Zudem sollte das Modul auch in der Lage sein, Fehlertextmeldungen
erzeugen.
-
Damit
bei der vorliegende Erfindung ein Modul ablaufen kann, muss eine
entsprechende Zielvorgabe vorhanden sein, die das Modul abruft.
Dies bedeutet, dass ein Zielvorgabendatensatz in der Zielvorgaben-Konfigurationsdatei
ein "Command"-Feld aufweisen muss,
dass das Modul benennt. Zielvorgaben werden durch Datensätze in der
Datei in bereits beschriebener Weise definiert. 7 zeigt einen hypothetischen Datensatz 72 der
Zielvorgabe-Konfigurationsdatei, der ein Modul namens oof.exe ablaufen
lässt.
Er erzeugt eine Zielvorgabe, benennt diese ("Discover systems vulnerable to latest
NT exploit" ("Entdecke System,
das für
den zuletzt durchgeführten
Netzwerk-Angriff anfällig
war") im "Name"-Feld), spezifiziert
die Stellung der Zielvorgabe im Zielvorgabe-Baum (die übergeordnete
Zielvorgabe lautet "My
company's custom
vulnerabilities" ("Die üblichen
Schwachstellen meiner Firma")
im "Parent"-Feld), identifiziert
die zu aktivierenden Module ("Oof" im Command-Feld),
zeigt an, welche Datensätze
vom Datensatz-Repository
an das Oof-Modul gesandt werden sollen ("Type=!Wnet!" im "Filter"-Feld), spezifiziert, welche Typen von
Datensätzen
diese Zielvorgabe erfüllen (wenn
die Schwachstelle "latest
exploit possible" ("letzter Angriff war
erfolgreich") im "Met"-Feld lautet) und spezifiziert
(im "Try-If"-Feld), dass die
Zielvorgabe "Discover
Windows network ressources" ("Entdecke Windows-Netzwerk-Ressourcen") ablaufen soll,
wenn keiner der Datensätze
im Datensatz-Repository 26 für die Zielvorgabe des Oof-Moduls
von Nutzen ist.
-
Der
letzte Schritt bei der Hinzufügung
eines Moduls besteht in der Aufzeichnung seines Risikowertes. Falls
das neue Modul dazu ausgelegt ist, Datensätze zu erzeugen, die Schwachstellen
enthalten, so muss der Risikowert der Schwachstellen definiert werden,
indem ein Datensatz zur Schwachstellen-Risiko-Datei hinzugefügt wird.
Dies lässt
sich einfach durchführen,
indem ein neuer Eintrag zusammen mit dem geschätzten Risikoniveau der von
diesem Modul gesuchten Schwachstelle hinzugefügt wird. Der Eintrag in die
Schwachstellen-Risiko-Datei kann hier beispielsweise R Risk="59" Vulnerability="latest exploit possible" lauten.
-
Weitere Informationen
zu Datensätzen
-
Nachdem
der Aufbau und die Arbeitsweise der vorliegenden Erfindung beschrieben
wurde, wird nun näher
auf die Datensätze
eingegangen, die vorzugsweise zum Einsatz kommen. 8 zeigt ein weiteres Beispiel für einen
Datensatz 80 der Zielvorgabe-Konfigurationsdatei. Er enthält Name-,
Parent-, Command- und Met-Felder sowie mehrere Try If- und Filter-Felder.
Zudem ist ein "Sound"-Feld dargestellt,
das dem Datenprozessor Informationen darüber liefert, welche Art von
Ausgabeinformation erzeugt werden soll, wenn die Zielvorgabe erfüllt wird.
In diesem Fall soll eine hörbare "Applaus"-Schallwelle abgespielt
werden.
-
Das
zweite Beispiel gemäß 9 zeigt einen Abtastdatensatz 90,
der von einem Modul 16 oder alternativ vom Datenprozessor 20 erzeugt
wurde. Er identifiziert die Rechnernetzwerk-Ressource (network ressource),
die von dem Modul abgetastet wurde, das Protokoll dieser Netzwerk-Ressource
(protocol), den Netzwerk-Port, an dem die Abtastung vorgenommen
wurde (port), ein "Sonstiges"-Feld (miscellaneous),
das hier den Zeitpunkt angibt, an dem das Modul erfolgreich Zugriff
genommen hat, den Befehl (Modul), der die Durchführung der Abtastung bewirkt
hat (command), und die Ebene (hier: null) der Ernsthaftigkeit des
Sicherheitsrisikos (severity). Hierbei handelt es sich nur um Beispiele
für Datensatz-Typen,
die bei der vorliegenden Erfindung zum Einsatz kommen können. Ein
Fachmann auf diesem Gebiet wird sich beim Lesen der vorliegenden Beschreibung
darüber
im Klaren sein, dass auch andere Datenstrukturen und/oder Formate
dazu verwendet werden können,
die hier offenbarten Konzepte zu verwirklichen. Es wird davon ausgegangen,
dass entsprechende alternative Strukturen und Formate ebenfalls
im Bereich der Lehre der vorliegenden Erfindung liegen. So können beispielsweise
beim Einsatz von Datensätzen
als Datenstrukturen die Feldnamen einen beliebigen Text einschließlich Leerzeichen
enthalten. Es wird darauf hingewiesen, das in 8 einige der Feld-Namen aus einem Wort
(Name, Parent, Command etc.) bestehen, während ein Feld-Name zwei Wörter (Try
If) umfasst.
-
Die
Feldwerte können
aus jedem beliebigen Text bestehen, der zwischen Feldwertbegrenzern
angegeben ist. Es ist wahrscheinlich, dass, wie bei den in 8 und 9 gezeigten Beispielen ersichtlich, der
Feldwert einen Datensatz identifiziert. Feldwertbegrenzer müssen sorgfältig eingesetzt
werden, um eine Verwechslung eines Feldidentifizierzeichens mit
einem Feldwert, der einen Datensatz darstellt, zu vermeiden. Als
Feldwertbegrenzer kann ein beliebiges Zeichen verwendet wer den,
wobei jedoch der Anfangs- und der Endfeldwertbegrenzer aus demselben
Zeichen bestehen müssen.
Das Zeichen, das direkt nach dem Gleichheitszeichen (=) erscheint,
dient als Feldwertbegrenzer, wobei es egal ist, um welches Zeichen
es sich dabei handelt, so dass die Scan-Engine alles, was nach diesem
Zeichen bis zu seinem nächsten
Erscheinen steht, als Feldwert behandelt. In 9 benutzt das Command-Feld anstelle des
Anführungszeichens
(") ein Ausrufungszeichen
(!) als Feldwertbegrenzer, da der Feldwert für dieses Feld selbst ein Anführungszeichen
(") enthält. Für die beim bevorzugten
Ausführungsbeispiel
verwendete Struktur wird das Gleichheitszeichen (=) zwischen dem
Feldnamen und dem Feldwert ebenso wie das Leerzeichen zwischen den
Feldern benötigt.
Die Datensätze
selbst besitzen Begrenzer im Datensatz-Repository. Jeder Datensatz
beginnt in einer neuen Zeile mit einem groß geschriebenen R, auf das
ein Leerzeichen folgt.
-
Einige
durch die Module erzeugte Datensätze
enthalten ein "Vulnerability"-Feld, was bedeutet,
dass die in den Datensätzen
enthaltene Information eine Sicherheits-Schwachstelle aufzeigt,
die vom Modul entdeckt wurde. Bei den bevorzugten Ausführungsbeispielen
werden den Schwachstellen Risikowerte auf einer Skala von 1 bis
100 zugewiesen, wobei 1 bis 33 für
ein niedriges, 34 bis 66 für
ein mittleres und 67 bis 100 für ein
hohes Risiko steht. Das Risiko eines jeden Systems und/oder ein
kollektives Risikoprofil für
den Eindringungstest kann dem Benutzer an der Benutzerschnittstelle
angezeigt werden. Natürlich
enthalten nicht alle Datensätze
Schwachstellen. Bei der vorliegenden Erfindung werden einige Module
einfach dazu eingesetzt, große
Mengen an Informationen zu sammeln, die keine Sicherheitsrisiken
angeben, sondern die von demselben Modul oder anderen Modulen zum
Aufspüren
von Sicherheitsrisiken verwendet werden können.
-
Unabhängig davon,
ob die Datensätze
schließlich
zur Erzeugung von Ausgabedaten für
den Benutzer eingesetzt werden, werden bei der vorliegenden Erfindung
bevorzugt alle bei einer Abtastung des Netzwerks durch ein Modul
erzeugten Datensätze
aufbewahrt, so dass sich ein Profil der Abtastung erzeugen lässt. Die während der
Abtastung gesammelten Daten können
für eine
spätere Überprüfung oder
Analyse in einer gesonderten Speicherdatei gespeichert werden. In
diesem Fall werden die Daten als eine Gruppe von Datensätzen abgespeichert
und alle durch die Abtastung erzeugten Datensätze werden abgespeichert.
-
In
entsprechender Weise ermöglicht
es die vorliegende Erfindung, im Datensatz-Repository Datensätze aus einer gesonderten Datei
zu laden. Bei dieser Datei kann es sich um die gespeicherte Datensatzgruppe eines
früheren
Eindringungstestes oder um eine Gruppe von Initialisierungs-Datensätzen enthalten,
die als Eingabedatensätze
für die
Module dienen sollen.
-
Statistiken
-
Da
die vorliegende Erfindung darauf ausgelegt ist, Datensätze zu überwachen
und zu speichern, die von Scan-Modulen erzeugt wurden, können zahlreiche
Statistiken über
den Eindringungstest erzeugt und an der Benutzerschnittstelle 10 bereitgestellt
werden. So kann beispielsweise die Gesamtzahl der von einem Modul
oder einer Zielvorgabe empfangenen Datensätze überwacht werden, um einzuschätzen, ob
diese Zielvorgabe erfolgreich ist oder nicht, und ebenso kann die
Anzahl der während
der Bearbeitung herausgefilterten Datensätze, die Anzahl der für jedes
Modul oder für
jede Zielvorgabe im Repository gespeicherten Datensätze, die
Anzahl der an ein Modul gesendeten (oder nicht gesendeten) Datensätze, die
Anzahl und Identität
doppelt vorhandener Datensätze,
die Anzahl und Identität
von neu aufgefundenen, abzutastenden Netzwerken, die dem Benutzer
vorgeschlagen wurden, aber von diesem für die Abtastung nicht ausgewählt wurden
etc. überwacht
werden.
-
Die
im Datensatz-Repository vorhandenen Datensätze erlauben es bei der vorliegenden
Erfindung, zu praktisch jeder beliebigen Zeit während und nach einem Eindringungstest,
einen Bericht über
die bis zu diesem Zeitpunkt gesammelten Informationen zu erzeugen.
Die Berichte können
eine Zusammenfassung der Abtastung auf hohem Niveau, eine Graphik,
die die Anzahl der Schwachstellen mit hohem, mittleren und niedrigen Risiko
anzeigt, eine Aufstellung der entdeckten Netzwerk-Ressourcen, eine
Liste der Netzwerk-Ressourcen zusammen mit allen Schwachstellen,
die mit der betreffenden Ressource verbunden sind, eine Aufstellung
der entdeckten Schwachstellen, eine Liste der Schwachstellen zusammen
mit allen Ressourcen, die diese Schwachstelle aufweisen, sowie einen
Zielvorgabe-Baum zusammen mit der Häufigkeit, mit der jede der
Zielvorgaben erfüllt
wurde, enthalten.
-
Die
Erfindung ist nicht auf die vorangegangene Beschreibung beschränkt; vielmehr
ist klar, dass sie auf vielfältige
Weise sowohl im Aufbau als auch im Hinblick auf ihren Einsatz variiert
werden kann. Derartige Abwandlungen gehen nicht über die Reichweite der Erfindung
hinaus, sondern sind vielmehr als Modifikationen zu betrachten,
die innerhalb der Reichweite der folgenden Ansprüche liegen.