DE69915516T2 - System zum eindringen in einen rechner bzw. ein rechnernetz - Google Patents

System zum eindringen in einen rechner bzw. ein rechnernetz Download PDF

Info

Publication number
DE69915516T2
DE69915516T2 DE69915516T DE69915516T DE69915516T2 DE 69915516 T2 DE69915516 T2 DE 69915516T2 DE 69915516 T DE69915516 T DE 69915516T DE 69915516 T DE69915516 T DE 69915516T DE 69915516 T2 DE69915516 T2 DE 69915516T2
Authority
DE
Germany
Prior art keywords
scan
modules
network
data
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69915516T
Other languages
English (en)
Other versions
DE69915516D1 (de
Inventor
Bryan Kingsford
Stan Mcqueen
Aaron Woodrow THROWER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of DE69915516D1 publication Critical patent/DE69915516D1/de
Application granted granted Critical
Publication of DE69915516T2 publication Critical patent/DE69915516T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Debugging And Monitoring (AREA)

Description

  • 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.

Claims (20)

  1. Rechnernetzwerk-Eindringungstestsystem, umfassend mindestens einen Software-Datenträger mit darauf gespeicherter Software, wobei die Software umfasst: eine Vielzahl von Scan-Modulen (16) zum Abtasten eine Rechners (18), um Schwachstellen, die der Rechner (18) gegenüber einem unbefugten Zugriff aufweist, zu ermitteln, wobei mindestens eines der Scan-Module (16) eine Ausgabe erzeugt, die auf einer Abtastung des Rechners basiert, dadurch gekennzeichnet, dass das System ferner die folgenden Bestandteile umfasst: eine Steuerung (14), die das eine Scan-Modul (16) anweist, eine Abtastung des Rechners durchzuführen und eine Ausgabe zu erzeugen, und die basierend auf dieser Ausgabe eine Eingabe für ein anderes der Scan-Module erzeugt.
  2. System nach Anspruch 1, wobei die Scan-Module (16) unabhängig von einander eine Abtastung des Rechners (18) durchführen.
  3. System nach Anspruch 1, ferner umfassend einen Speicher (24) zum Speichern von Ausgaben aus den Scan-Modulen (16), wobei die Steuerung (14) die Ausgaben aus dem Speicher (24) abruft und aus diesen Ausgaben stammende Daten an die Scan-Module weiterleitet.
  4. System nach Anspruch 1, ferner umfassend eine Benutzerschnittstelle (12), die betriebsfähig mit der Steuerung (14) verbunden ist, um einem Benutzer (10) die Eingabe einer gewünschten Netzwerkeindringungs-Zielvorgabe (32, 34) zu ermöglichen, wobei die Steuerung (14) die Vielzahl von Scan-Modulen (16) aus einem Satz von verfügbaren Scan-Modulen basierend auf der eingegebenen Eindringungszielvorgabe auswählt.
  5. System nach Anspruch 4, ferner umfassend eine Zielvorgabe-Konfigurationsdatei (22) für jede einzelne vom Benutzer eingegebene Eindringungszielvorgabe (32, 34), wobei diese Zielvorgabe-Konfigurationsdatei mindestens ein Scan-Modul (16) identifiziert, das erforderlich ist, um die entsprechende Eindringungszielvorgabe zu erfüllen, wobei die Steuerung (14) die Vielzahl von Scan-Modulen auswählt, indem sie auf den eingegebenen Eindringungszielvorgaben entsprechende Zielvorgabe-Konfigurationsdateien zugreift.
  6. System nach Anspruch 5, wobei mindestens eine der Zielvorgabe-Konfigurationsdateien (22) eine zu verfolgende Hilfs-Zielvorgabe identifiziert und die Steuerung (14) auf eine der Hilfs-Zielvorgabe entsprechende Zielvorgabe-Konfigurationsdatei zugreift, wobei die Gruppe von Scan-Modulen (16) ein Scan-Modul enthält, das in der der Hilfs-Zielvorgabe entsprechenden Zielvorgabe-Konfigurationsdatei identifiziert ist.
  7. System nach Anspruch 1, wobei die von der Steuerung (14) erzeugte Eingabe der von dem einen Scan-Modul (16) kommenden Ausgabe identisch ist.
  8. System nach Anspruch 7, wobei die Ausgabe des einen Scan-Moduls (16) aus einem Datensatz (70) mit Feldern besteht, wobei jedes dieser Felder mindestens eine Information über die von dem Scan-Modul ausgeführte Abtastung identifiziert.
  9. Verfahren zum Durchführen eines Eindringungstest auf einem Rechnernetzwerk mit mindestens einem Software-Datenträger mit darauf gespeicherter Software, wobei die Software eine Vielzahl von Scan-Modulen (16) zum Abtasten eines Rechners (18) umfasst, um Schwachstellen, die der Rechner (18) gegenüber einem unbefugten Zugriff aufweist, zu ermitteln, wobei mindestens eines der Scan-Module (16) eine Ausgabe erzeugt, die auf einer Abtastung des Rechners basiert, wobei das Verfahren gekennzeichnet ist durch die folgenden Verfahrensschritte: a. Durchführen einer ersten Rechnernetzwerk-Abtastung zur Sammlung von Informationen über eine gesicherte Netzwerk-Ressource in dem Rechnernetzwerk (18), b. Durchführen einer zweiten Rechnernetzwerk-Abtastung zur Sammlung von Informationen über eine zweite gesicherte Netzwerk-Ressource in dem Rechnernetzwerk, c. automatische Mitbenutzung von Ausgabedaten der ersten Rechnernetzwerk-Abtastung durch die zweiten Rechnernetzwerk-Abtastung durch Weiterleiten von Daten, die aus der ersten Rechnernetzwerk-Abtastung ausgegeben werden, zur Erzeugung einer Eingabe für die zweite Rechnernetzwerk-Abtastung.
  10. Verfahren nach Anspruch 9, ferner umfassend: d. Durchführen einer dritten Rechnernetzwerk-Abtastung zum Sammeln von Informationen über eine dritte gesicherte Netzwerk-Ressource in dem Rechnernetzwerk, wobei der Schritt (d) gleichzeitig mit wenigstens einem der Schritte (a) und (b) durchgeführt wird.
  11. Verfahren nach Anspruch 10, wobei die dritte Netzwerk-Ressource die gleiche Ressource wie die erste oder zweite Netzwerk-Ressource ist.
  12. Verfahren nach Anspruch 10, wobei die dritte Netzwerk-Ressource nicht die gleiche Ressource wie die erste oder die zweite Netzwerk-Ressource ist.
  13. Verfahren nach Anspruch 10, wobei jeder der Schritte (a), (b) und (c) von einer von dem abgetasteten Rechnernetzwerk entfernten Stelle aus ausgeführt wird.
  14. Verfahren nach Anspruch 9, ferner umfassend vor den Schritten (a) bis (c): d. Auswählen mindestens einer Zielvorgabe für den Eindringungstest, und e. basierend auf der mindestens einen Zielvorgabe, Festlegen einer Gruppe von Scan-Modulen zur Verwendung während des Eindringungstests, wobei die Gruppe aus Scan-Modulen erste und zweite Module umfasst, um die erste Rechnernetzwerk-Abtastung bzw. die zweite Rechnernetzwerk-Abtastung der Schritte (a) bzw. (b) durchzuführen.
  15. Erzeugnis, das ein maschinenlesbares Programm zum Ausführen der folgenden Schritte umfasst: Abtasten eines Rechnernetzwerkes (18) unter Verwendung einer Vielzahl von Scan-Modulen (16), um Schwachstellen, die das Rechnernetzwerk (18) gegenüber einem unbefugten Zugriff aufweist, zu ermitteln; und automatische Mitbenutzung von Informationen aus mindestens einem der Scan-Module (16) durch mindestens eines der anderen Scan-Module durch Weiterleitung von Daten, die aus einem der Scan-Module ausgegeben werden, zur Erzeugung einer Eingabe für ein anderes der Scan-Module.
  16. Erzeugnis nach Anspruch 15, wobei der Abtastschritt das gleichzeitige und unabhängige Abtasten des Rechnernetzwerks durch mindestens zwei der Scan-Module einschließt.
  17. Erzeugnis nach Anspruch 15, wobei der Schritt des automatischen Mitbenutzens von Informationen das Weiterleiten eines Ausgabe-Datensatzes in unveränderter Form von einem der Scan-Module (16) an ein anderes der Scan-Module (16) einschließt.
  18. Erzeugnis nach Anspruch 15, wobei der Schritt der automatischen Mitbenutzung von Informationen das Modifizieren des Inhalts eines Ausgabe-Datensatzes (70) aus einem der Scan-Module (16) zur Bildung eines modifizierten Datensatzes sowie das Weiterleiten dieses modifizierten Datensatzes an ein anderes der Scan-Module einschließt.
  19. Rechnernetzwerk-Eindringungstestprogramm, das in mindestens einer Trägerwelle verwirklicht ist, umfassend: eine Vielzahl von ersten Signalsegmenten, die Scan-Module darstellen, um eine Netzwerk-Ressource auf einem Rechnernetzwerk abzutasten, um Schwachstellen, die die Netzwerk-Ressource gegenüber einem unbefugten Zugriff hat, zu entdecken, ein zweites Signalsegment, das Anweisungen für eines der Scan-Module definiert, um eine Abtastung des Rechnernetzwerks durchzuführen und ba sierend auf der Abtastung eine Ausgabe und basierend auf dieser Ausgabe eine Eingabe an ein anderes der Scan-Module zu erzeugen.
  20. Trägerwelle nach Anspruch 19, ferner umfassend ein drittes Signalsegment, das Anweisungen zum Formatieren der genannten Ausgabe in Form eines Datensatzes mit einer Vielzahl von Datenfeldern sowie zum Formatieren der genannten Eingabe an das andere Scan-Modul in Form eines zweiten Datensatzes mit einer Vielzahl von zweiten Datenfeldern bildet.
DE69915516T 1998-12-23 1999-12-22 System zum eindringen in einen rechner bzw. ein rechnernetz Expired - Lifetime DE69915516T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/220,125 US6574737B1 (en) 1998-12-23 1998-12-23 System for penetrating computer or computer network
US220125 1998-12-23
PCT/US1999/030850 WO2000038036A2 (en) 1998-12-23 1999-12-22 System penetrating a computer or computer network

Publications (2)

Publication Number Publication Date
DE69915516D1 DE69915516D1 (de) 2004-04-15
DE69915516T2 true DE69915516T2 (de) 2005-04-07

Family

ID=22822173

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69915516T Expired - Lifetime DE69915516T2 (de) 1998-12-23 1999-12-22 System zum eindringen in einen rechner bzw. ein rechnernetz

Country Status (6)

Country Link
US (1) US6574737B1 (de)
EP (1) EP1141831B1 (de)
AT (1) ATE261597T1 (de)
AU (1) AU2213800A (de)
DE (1) DE69915516T2 (de)
WO (1) WO2000038036A2 (de)

Families Citing this family (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760746B1 (en) 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
EP1149339A1 (de) 1998-12-09 2001-10-31 Network Ice Corporation Verfahren und vorrichtung zur netzwerk- und computersystem- sicherung
US8037168B2 (en) 1999-07-15 2011-10-11 Esdr Network Solutions Llc Method, product, and apparatus for enhancing resolution services, registration services, and search services
US9141717B2 (en) 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
US7188138B1 (en) 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
US6338082B1 (en) 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
US6839757B1 (en) * 1999-04-28 2005-01-04 2Wire, Inc. System and method for automatically discovering accessible services on a computer network and providing automatic access thereto
US7346929B1 (en) * 1999-07-29 2008-03-18 International Business Machines Corporation Method and apparatus for auditing network security
US7073198B1 (en) 1999-08-26 2006-07-04 Ncircle Network Security, Inc. Method and system for detecting a vulnerability in a network
USRE44207E1 (en) 1999-09-01 2013-05-07 Esdr Network Solutions Llc Network resource access method, product, and apparatus
JP4084914B2 (ja) * 1999-09-29 2008-04-30 株式会社日立製作所 セキュリティ評価方法および装置、セキュリティ施策の作成支援方法および装置
US8006243B2 (en) 1999-12-07 2011-08-23 International Business Machines Corporation Method and apparatus for remote installation of network drivers and software
JP4507319B2 (ja) * 1999-12-17 2010-07-21 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および記録媒体、端末装置、並びに、システムおよびシステムの方法
US6775657B1 (en) * 1999-12-22 2004-08-10 Cisco Technology, Inc. Multilayered intrusion detection system and method
US6957348B1 (en) * 2000-01-10 2005-10-18 Ncircle Network Security, Inc. Interoperability of vulnerability and intrusion detection systems
US7315801B1 (en) 2000-01-14 2008-01-01 Secure Computing Corporation Network security modeling system and method
US7698396B2 (en) * 2000-01-31 2010-04-13 Hitachi Software Engineering Co., Ltd. Method of automatically recognizing network configuration including intelligent packet relay equipment, method of displaying network configuration chart, and system thereof
JP2003529254A (ja) * 2000-03-27 2003-09-30 ネットワーク セキュリティー システムズ, インコーポレーテッド 遠隔装置から顧客のセキュリティを検査するためのインターネット/ネットワーク・セキュリティ方法およびシステム
US6880005B1 (en) * 2000-03-31 2005-04-12 Intel Corporation Managing policy rules in a network
JP4700884B2 (ja) * 2000-04-28 2011-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータのセキュリティ情報を管理するための方法およびシステム
US7574740B1 (en) * 2000-04-28 2009-08-11 International Business Machines Corporation Method and system for intrusion detection in a computer network
AU2001257400A1 (en) * 2000-04-28 2001-11-12 Internet Security Systems, Inc. System and method for managing security events on a network
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US6993448B2 (en) * 2000-08-09 2006-01-31 Telos Corporation System, method and medium for certifying and accrediting requirements compliance
US9280667B1 (en) 2000-08-25 2016-03-08 Tripwire, Inc. Persistent host determination
US7181769B1 (en) * 2000-08-25 2007-02-20 Ncircle Network Security, Inc. Network security system having a device profiler communicatively coupled to a traffic monitor
US6807569B1 (en) * 2000-09-12 2004-10-19 Science Applications International Corporation Trusted and anonymous system and method for sharing threat data to industry assets
US9027121B2 (en) 2000-10-10 2015-05-05 International Business Machines Corporation Method and system for creating a record for one or more computer security incidents
US6704030B1 (en) * 2000-10-13 2004-03-09 Lucent Technologies Inc. Method and apparatus for provisioning telecommunications equipment
US7130466B2 (en) * 2000-12-21 2006-10-31 Cobion Ag System and method for compiling images from a database and comparing the compiled images with known images
US7072981B1 (en) * 2000-12-21 2006-07-04 Cisco Technology, Inc. Preallocation of client network address translation addresses for client-server networks
US7089328B1 (en) 2000-12-29 2006-08-08 Cisco Technology, Inc. Method allocation scheme for maintaining server load balancers services in a high throughput environment
AU2002243763A1 (en) * 2001-01-31 2002-08-12 Internet Security Systems, Inc. Method and system for configuring and scheduling security audits of a computer network
US7185232B1 (en) 2001-02-28 2007-02-27 Cenzic, Inc. Fault injection methods and apparatus
US7590745B2 (en) * 2001-03-02 2009-09-15 International Business Machines Corporation System and method for analyzing a router in a shared network system
US8135815B2 (en) * 2001-03-27 2012-03-13 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
US7325252B2 (en) * 2001-05-18 2008-01-29 Achilles Guard Inc. Network security testing
US20030028803A1 (en) * 2001-05-18 2003-02-06 Bunker Nelson Waldo Network vulnerability assessment system and method
US7043757B2 (en) * 2001-05-22 2006-05-09 Mci, Llc System and method for malicious code detection
ATE406026T1 (de) * 2001-06-14 2008-09-15 Ibm Eindringsdetektion in datenverarbeitungssystemen
US7657419B2 (en) * 2001-06-19 2010-02-02 International Business Machines Corporation Analytical virtual machine
US7003561B1 (en) * 2001-06-29 2006-02-21 Mcafee, Inc. System, method and computer program product for improved efficiency in network assessment utilizing a port status pre-qualification procedure
US7124181B1 (en) * 2001-06-29 2006-10-17 Mcafee, Inc. System, method and computer program product for improved efficiency in network assessment utilizing variable timeout values
US7228566B2 (en) * 2001-07-10 2007-06-05 Core Sdi, Incorporated Automated computer system security compromise
US8104017B2 (en) 2001-10-25 2012-01-24 The Mathworks, Inc. Traceability in a modeling environment
US8266703B1 (en) 2001-11-30 2012-09-11 Mcafee, Inc. System, method and computer program product for improving computer network intrusion detection by risk prioritization
US6546493B1 (en) * 2001-11-30 2003-04-08 Networks Associates Technology, Inc. System, method and computer program product for risk assessment scanning based on detected anomalous events
AU2003202876A1 (en) 2002-01-04 2003-07-24 Internet Security Systems, Inc. System and method for the managed security control of processes on a computer system
US7257630B2 (en) 2002-01-15 2007-08-14 Mcafee, Inc. System and method for network vulnerability detection and reporting
US7543056B2 (en) * 2002-01-15 2009-06-02 Mcafee, Inc. System and method for network vulnerability detection and reporting
US7664845B2 (en) * 2002-01-15 2010-02-16 Mcafee, Inc. System and method for network vulnerability detection and reporting
US20030154269A1 (en) * 2002-02-14 2003-08-14 Nyanchama Matunda G. Method and system for quantitatively assessing computer network vulnerability
US20030163729A1 (en) * 2002-02-27 2003-08-28 International Business Machines Corporation Security management in data processing networks
US7903549B2 (en) 2002-03-08 2011-03-08 Secure Computing Corporation Content-based policy compliance systems and methods
US20030172291A1 (en) 2002-03-08 2003-09-11 Paul Judge Systems and methods for automated whitelisting in monitored communications
US7694128B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for secure communication delivery
US6941467B2 (en) * 2002-03-08 2005-09-06 Ciphertrust, Inc. Systems and methods for adaptive message interrogation through multiple queues
US8132250B2 (en) 2002-03-08 2012-03-06 Mcafee, Inc. Message profiling systems and methods
US7124438B2 (en) 2002-03-08 2006-10-17 Ciphertrust, Inc. Systems and methods for anomaly detection in patterns of monitored communications
US7693947B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for graphically displaying messaging traffic
US8561167B2 (en) 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US7870203B2 (en) 2002-03-08 2011-01-11 Mcafee, Inc. Methods and systems for exposing messaging reputation to an end user
US8578480B2 (en) 2002-03-08 2013-11-05 Mcafee, Inc. Systems and methods for identifying potentially malicious messages
US20060015942A1 (en) 2002-03-08 2006-01-19 Ciphertrust, Inc. Systems and methods for classification of messaging entities
US20030188194A1 (en) * 2002-03-29 2003-10-02 David Currie Method and apparatus for real-time security verification of on-line services
US8788650B1 (en) * 2002-07-19 2014-07-22 Fortinet, Inc. Hardware based detection devices for detecting network traffic content and methods of using the same
KR20040035572A (ko) * 2002-10-22 2004-04-29 최운호 정보 인프라에서의 종합 침해사고 대응시스템 및 그운영방법
US7607169B1 (en) * 2002-12-02 2009-10-20 Arcsight, Inc. User interface for network security console
AU2003202238A1 (en) 2003-01-08 2004-08-10 Ceyx Technologies, Inc. Apparatus and method for measurement of dynamic laser signals
US7913303B1 (en) 2003-01-21 2011-03-22 International Business Machines Corporation Method and system for dynamically protecting a computer system from attack
US8091117B2 (en) * 2003-02-14 2012-01-03 Preventsys, Inc. System and method for interfacing with heterogeneous network data gathering tools
US20050005152A1 (en) * 2003-07-01 2005-01-06 Navjot Singh Security vulnerability monitor
US7657938B2 (en) 2003-10-28 2010-02-02 International Business Machines Corporation Method and system for protecting computer networks by altering unwanted network data traffic
WO2005077118A2 (en) 2004-02-11 2005-08-25 Spi Dynamics, Inc. System and method for testing web applications with recursive discovery and analysis
US7765597B2 (en) * 2004-02-11 2010-07-27 Hewlett-Packard Development Company, L.P. Integrated crawling and auditing of web applications and web content
US20060282494A1 (en) * 2004-02-11 2006-12-14 Caleb Sima Interactive web crawling
KR100631784B1 (ko) * 2004-02-16 2006-10-11 삼성전자주식회사 컴퓨터 바이러스로부터의 감염을 방지하기 위한 시스템 및방법
US8201257B1 (en) 2004-03-31 2012-06-12 Mcafee, Inc. System and method of managing network security risks
US20050259634A1 (en) * 2004-05-19 2005-11-24 Ross Perry R Method and apparatus for low-overhead service availability and performance monitoring
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US8635690B2 (en) 2004-11-05 2014-01-21 Mcafee, Inc. Reputation based message processing
US20060117388A1 (en) * 2004-11-18 2006-06-01 Nelson Catherine B System and method for modeling information security risk
KR20060057916A (ko) * 2004-11-24 2006-05-29 한국전자통신연구원 정보보호 제품의 기능 시험을 위한 공격 패킷 생성 기능을포함하는 네트워크 패킷 생성 장치 및 방법
US8095982B1 (en) 2005-03-15 2012-01-10 Mu Dynamics, Inc. Analyzing the security of communication protocols and channels for a pass-through device
US8095983B2 (en) 2005-03-15 2012-01-10 Mu Dynamics, Inc. Platform for analyzing the security of communication protocols and channels
WO2006102515A1 (en) * 2005-03-23 2006-09-28 Belarc, Inc. Security control verification and monitoring subsystem for use in a computer information database system
US7937480B2 (en) 2005-06-02 2011-05-03 Mcafee, Inc. Aggregation of reputation data
US20160248813A1 (en) 2006-08-23 2016-08-25 Threatstop, Inc. Method and system for propagating network policy
US7958230B2 (en) 2008-09-19 2011-06-07 Mu Dynamics, Inc. Test driven deployment and monitoring of heterogeneous network systems
US8316447B2 (en) * 2006-09-01 2012-11-20 Mu Dynamics, Inc. Reconfigurable message-delivery preconditions for delivering attacks to analyze the security of networked systems
US9172611B2 (en) 2006-09-01 2015-10-27 Spirent Communications, Inc. System and method for discovering assets and functional relationships in a network
US8763114B2 (en) 2007-01-24 2014-06-24 Mcafee, Inc. Detecting image spam
US7779156B2 (en) 2007-01-24 2010-08-17 Mcafee, Inc. Reputation based load balancing
US7949716B2 (en) 2007-01-24 2011-05-24 Mcafee, Inc. Correlation and analysis of entity attributes
US8214497B2 (en) 2007-01-24 2012-07-03 Mcafee, Inc. Multi-dimensional reputation scoring
US8179798B2 (en) 2007-01-24 2012-05-15 Mcafee, Inc. Reputation based connection throttling
US8122729B2 (en) * 2007-03-13 2012-02-28 Dri-Eaz Products, Inc. Dehumidification systems and methods for extracting moisture from water damaged structures
US20090038014A1 (en) * 2007-07-31 2009-02-05 Paul Force System and method for tracking remediation of security vulnerabilities
US7774637B1 (en) 2007-09-05 2010-08-10 Mu Dynamics, Inc. Meta-instrumentation for security analysis
US8871096B2 (en) * 2007-09-10 2014-10-28 Res Usa, Llc Magnetic separation combined with dynamic settling for fischer-tropsch processes
US8250658B2 (en) * 2007-09-20 2012-08-21 Mu Dynamics, Inc. Syntax-based security analysis using dynamically generated test cases
US8185930B2 (en) 2007-11-06 2012-05-22 Mcafee, Inc. Adjusting filter or classification control settings
US8045458B2 (en) 2007-11-08 2011-10-25 Mcafee, Inc. Prioritizing network traffic
TWI355824B (en) * 2007-12-11 2012-01-01 Inst Information Industry Method, network apparatus and computer readable me
US8160975B2 (en) 2008-01-25 2012-04-17 Mcafee, Inc. Granular support vector machine with random granularity
US8589503B2 (en) 2008-04-04 2013-11-19 Mcafee, Inc. Prioritizing network traffic
KR20090121579A (ko) * 2008-05-22 2009-11-26 주식회사 이베이지마켓 서버의 취약점을 점검하기 위한 시스템 및 그 방법
US8069471B2 (en) * 2008-10-21 2011-11-29 Lockheed Martin Corporation Internet security dynamics assessment system, program product, and related methods
WO2011017566A1 (en) * 2009-08-05 2011-02-10 Core Sdi, Incorporated System and method for extending automated penetration testing to develop an intelligent and cost efficient security strategy
US8490193B2 (en) * 2009-09-08 2013-07-16 Core Security Technologies System and method for probabilistic attack planning
US8463860B1 (en) 2010-05-05 2013-06-11 Spirent Communications, Inc. Scenario based scale testing
US8547974B1 (en) 2010-05-05 2013-10-01 Mu Dynamics Generating communication protocol test cases based on network traffic
US8621638B2 (en) 2010-05-14 2013-12-31 Mcafee, Inc. Systems and methods for classification of messaging entities
US8826231B1 (en) * 2010-06-28 2014-09-02 The Boeing Company Methods and systems for deploying software applications
US9106514B1 (en) 2010-12-30 2015-08-11 Spirent Communications, Inc. Hybrid network software provision
US8464219B1 (en) 2011-04-27 2013-06-11 Spirent Communications, Inc. Scalable control system for test execution and monitoring utilizing multiple processors
US9516451B2 (en) * 2012-04-10 2016-12-06 Mcafee, Inc. Opportunistic system scanning
US9407653B2 (en) * 2012-04-10 2016-08-02 Mcafee, Inc. Unified scan management
US8800046B2 (en) 2012-04-10 2014-08-05 Mcafee, Inc. Unified scan engine
US8954573B2 (en) 2012-04-11 2015-02-10 Mcafee Inc. Network address repository management
US9049207B2 (en) 2012-04-11 2015-06-02 Mcafee, Inc. Asset detection system
US8955036B2 (en) 2012-04-11 2015-02-10 Mcafee, Inc. System asset repository management
US8972543B1 (en) 2012-04-11 2015-03-03 Spirent Communications, Inc. Managing clients utilizing reverse transactions
US9027141B2 (en) * 2012-04-12 2015-05-05 Netflix, Inc. Method and system for improving security and reliability in a networked application environment
CN103457957B (zh) * 2013-09-17 2016-05-18 北京信息科技大学 一种具有自适应功能的网络渗透测试系统及方法
US9781046B1 (en) * 2013-11-19 2017-10-03 Tripwire, Inc. Bandwidth throttling in vulnerability scanning applications
US11102273B2 (en) * 2015-05-13 2021-08-24 Cisco Technology, Inc. Uplink performance management
US10122750B2 (en) 2017-01-30 2018-11-06 XM Cyber Ltd Setting-up penetration testing campaigns
US10686822B2 (en) 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for selecting a lateral movement strategy for a penetration testing campaign
US10257220B2 (en) 2017-01-30 2019-04-09 Xm Cyber Ltd. Verifying success of compromising a network node during penetration testing of a networked system
US10367846B2 (en) 2017-11-15 2019-07-30 Xm Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
US10637882B2 (en) 2017-01-30 2020-04-28 Xm Cyber Ltd. Penetration testing of a networked system
US10068095B1 (en) 2017-05-15 2018-09-04 XM Cyber Ltd Systems and methods for selecting a termination rule for a penetration testing campaign
US10581802B2 (en) 2017-03-16 2020-03-03 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for advertising network security capabilities
US10534917B2 (en) 2017-06-20 2020-01-14 Xm Cyber Ltd. Testing for risk of macro vulnerability
US10574684B2 (en) 2017-07-09 2020-02-25 Xm Cyber Ltd. Locally detecting phishing weakness
US10904282B2 (en) * 2017-08-08 2021-01-26 American International Group, Inc. System and method for assessing cybersecurity risk of computer network
US10412112B2 (en) 2017-08-31 2019-09-10 Xm Cyber Ltd. Time-tagged pre-defined scenarios for penetration testing
US10447721B2 (en) 2017-09-13 2019-10-15 Xm Cyber Ltd. Systems and methods for using multiple lateral movement strategies in penetration testing
US11093617B2 (en) * 2017-10-04 2021-08-17 Servicenow, Inc. Automated vulnerability grouping
US10440044B1 (en) 2018-04-08 2019-10-08 Xm Cyber Ltd. Identifying communicating network nodes in the same local network
US10382473B1 (en) 2018-09-12 2019-08-13 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11418528B2 (en) * 2018-11-02 2022-08-16 Rapid7, Inc. Dynamic best path determination for penetration testing
WO2020089698A1 (en) 2018-11-04 2020-05-07 Xm Cyber Ltd. Using information about exportable data in penetration testing
US10771490B2 (en) 2018-11-28 2020-09-08 Rapid7, Inc. Detecting anomalous network device activity
WO2020121078A1 (en) 2018-12-13 2020-06-18 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
US10462177B1 (en) 2019-02-06 2019-10-29 Xm Cyber Ltd. Taking privilege escalation into account in penetration testing campaigns
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
US10637883B1 (en) 2019-07-04 2020-04-28 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11416623B2 (en) 2019-07-31 2022-08-16 International Business Machines Corporation Automatic penetration testing enablement of regression buckets
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11533329B2 (en) 2019-09-27 2022-12-20 Keysight Technologies, Inc. Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
CN111026660B (zh) * 2019-12-05 2023-07-07 国网浙江省电力有限公司电力科学研究院 一种基于专家系统知识库的渗透测试方法
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US11507860B1 (en) * 2020-02-24 2022-11-22 Rapid7, Inc. Machine learned inference of protocols from banner data
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
US20210336971A1 (en) * 2020-04-23 2021-10-28 Specter Ops, Inc. System and method for continuous collection, analysis and reporting of attack paths in a directory services environment
US11539725B2 (en) 2020-04-23 2022-12-27 Specter Ops, Inc. System and method for continuous collection, analysis and reporting of attack paths choke points in a directory services environment
CN111683047B (zh) * 2020-04-30 2023-05-30 中国平安财产保险股份有限公司 越权漏洞检测方法、装置、计算机设备及介质
USD956779S1 (en) 2020-08-11 2022-07-05 Specter Ops, Inc. Display screen or portion thereof with an animated graphical user interface
USD956778S1 (en) 2020-08-11 2022-07-05 Specter Ops, Inc. Display screen or portion thereof with an animated graphical user interface
USD956777S1 (en) 2020-08-11 2022-07-05 Specter Ops, Inc. Display screen or portion thereof with graphical user interface
CN112165498B (zh) * 2020-11-12 2022-10-25 北京华云安信息技术有限公司 一种渗透测试的智能决策方法及装置
CN113704763B (zh) * 2021-09-02 2022-03-25 北京珞安科技有限责任公司 流水线式设备扫描探测方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557742A (en) 1994-03-07 1996-09-17 Haystack Labs, Inc. Method and system for detecting intrusion into and misuse of a data processing system
JPH09214493A (ja) * 1996-02-08 1997-08-15 Hitachi Ltd ネットワークシステム
US5892903A (en) * 1996-09-12 1999-04-06 Internet Security Systems, Inc. Method and apparatus for detecting and identifying security vulnerabilities in an open network computer communication system
US5991881A (en) * 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
US6154844A (en) * 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
US6088804A (en) * 1998-01-12 2000-07-11 Motorola, Inc. Adaptive system and method for responding to computer network security attacks
US6298445B1 (en) 1998-04-30 2001-10-02 Netect, Ltd. Computer security
US6185689B1 (en) * 1998-06-24 2001-02-06 Richard S. Carson & Assoc., Inc. Method for network self security assessment
US6219805B1 (en) * 1998-09-15 2001-04-17 Nortel Networks Limited Method and system for dynamic risk assessment of software systems
US6321338B1 (en) * 1998-11-09 2001-11-20 Sri International Network surveillance
US6353385B1 (en) * 2000-08-25 2002-03-05 Hyperon Incorporated Method and system for interfacing an intrusion detection system to a central alarm system

Also Published As

Publication number Publication date
DE69915516D1 (de) 2004-04-15
EP1141831A2 (de) 2001-10-10
WO2000038036A2 (en) 2000-06-29
US6574737B1 (en) 2003-06-03
WO2000038036A3 (en) 2000-11-09
AU2213800A (en) 2000-07-12
ATE261597T1 (de) 2004-03-15
EP1141831B1 (de) 2004-03-10

Similar Documents

Publication Publication Date Title
DE69915516T2 (de) System zum eindringen in einen rechner bzw. ein rechnernetz
DE60226232T2 (de) Inhaltsverwaltungssystem
DE69637228T2 (de) Verfahren und vorrichtung zur messung der antwortzeit
DE60206478T2 (de) Inhaltsabhängige speicherverwaltung
DE69926147T2 (de) Verfahren und gerät um die sicherheitsverletzlichkeit vernetzter geräte zu kontrollieren
DE10249428B4 (de) Verfahren zum Definieren der Sicherheitsanfälligkeiten eines Computersystems
DE60006578T2 (de) Verfahren und vorrichtung zur bereitstellung von mehreren gleichzeitigen desktops und arbeitsflächen in einer gemeinsamen rechnerumgebung
DE112013000387B4 (de) Dynamisches Abtasten einer Webanwendung durch Verwendung von Webdatenverkehrs- Informationen
DE60319449T2 (de) Abfangsystem von multimediadokumenten
DE69820855T2 (de) Automatische Konfiguration eines Netzwerkdruckers
DE60119614T2 (de) Hilfesystem zur Instandhaltung von elektronischem Gerät
DE112016005555T5 (de) CAPTCHA-Aufgaben auf Bildbasis
DE112010003099B4 (de) Erkennung gering ausgelasteter netzeinheiten
DE102012208842A1 (de) Zugangsüberwachungsverfahren, Informationsverarbeitungsvorrichtung und Zugangsüberwachungsprogramm
DE202013102441U1 (de) System zur Überprüfung digitaler Zertifikate
DE69929206T2 (de) System zur analyse der informationssicherheit
DE102017220140A1 (de) Abrufvorrichtung, Abrufverfahren und Abrufprogramm
DE102012221513A1 (de) Verfahren und System zum Bereitstellen zusätzlicher Daten einem grafischen Schnittstellenelement
DE112015000079T5 (de) Systeme und Verfahren zur elektronischen Dokumentenprüfung
DE112020000927T5 (de) Verwalten sensibler daten
CN103166966A (zh) 识别对网站的非法访问请求的方法及装置
CN103118035A (zh) 分析网站访问请求参数合法范围的方法及装置
DE10236932A1 (de) System und Verfahren zum Ermöglichen einer Bildwiedergewinnung
CN109902670A (zh) 数据录入方法及系统
DE10337144A1 (de) Verfahren zur Aufzeichnung von Ereignis-Logs

Legal Events

Date Code Title Description
8364 No opposition during term of opposition