-
HINTERGRUND DER OFFENBARUNGEN
-
Clientseitige Scriptsprachen ermöglichen das Erzeugen und Implementieren von Computerprogrammen, die über ein Netzwerk empfangen und auf einer Client-Datenverarbeitungseinheit ausgeführt werden können, zum Beispiel durch einen Web-Browser, der auf der Client-Datenverarbeitungseinheit ausgeführt wird. In manchen Fällen ermöglichen clientseitige Scripte den Zugriff auf dynamische Webinhalte, wobei Webseiten veränderliche Inhalte aufweisen können, die von Benutzereingaben, Umgebungsbedingungen und anderen Variablen abhängen.
-
Eine Webanwendung kann clientseitige Scripte nutzen, um Anwendungen bereitzustellen, die innerhalb einer Web-Browser-Anwendung auf einer Client-Datenverarbeitungseinheit ausgeführt werden können. Mittels Webanwendungen können Funktionalitäten und Operationen an die Client-Datenverarbeitungseinheit übergeben werden, sodass sie nicht unbedingt auf der Server-Datenverarbeitungseinheit angesiedelt sein müssen. Da Webanwendungen oft innerhalb eines Web-Browsers ausgeführt werden können, können die Webanwendungen mit vielen Betriebssystemplattformen kompatibel sein. Dadurch lässt sich die Notwendigkeit umgehen, dass der Anwendungsentwickler verschiedene Versionen der Anwendung für verschiedene Client-Typen erstellen muss.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Gemäß einer Implementierung kann ein Verfahren ein statisches Analysieren von Quellcode einer Vielzahl von Webseiten, die Scriptcode enthalten, auf einer Datenverarbeitungseinheit beinhalten. Auf der Grundlage der statischen Analyse kann eine Webseite erkannt werden, die eine potenzielle Sicherheitslücke enthält. Auf der Grundlage der statischen Analyse kann auch eine Webseite erkannt werden, die keine potenzielle Sicherheitslücke enthält. Die Webseite, die die potenzielle Sicherheitslücke enthält, kann unter Verwendung einer Reihe von Test-Nutzdaten dynamisch analysiert werden. Die Webseite, die die potenzielle Sicherheitslücke nicht enthält, kann unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch analysiert werden, wobei die Teilmenge weniger Test-Nutzdaten enthält als die Reihe von Test-Nutzdaten.
-
Hierfür können ein oder mehrere der folgenden Merkmale maßgebend sein. Die Vielzahl von Webseiten können von einem Webserver empfangen werden. Die Vielzahl von Webseiten können einer Webanwendung zugeordnet werden.
-
Zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten kann ein Modell erstellt werden, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten darstellt. Die potenzielle Sicherheitslücke kann auf der Grundlage einer Reihe von Sicherheitsregeln in Form einer Störung des Datenflusses festgestellt werden. Zu dem statischen Analysieren des Quellcodes der Vielzahl von Webseiten kann eine statische Fehleranalyse gehören. Beim dynamischen Analysieren kann der Scriptcode auf einer Script-Engine ausgeführt werden.
-
Gemäß einer weiteren Implementierung beinhaltet ein Computerprogrammprodukt ein computerlesbares Medium mit einer Vielzahl darauf gespeicherter Anweisungen. Wenn die Anweisungen durch einen Prozessor ausgeführt werden, können sie diesen zum Ausführen von Operationen zum statischen Analysieren eines Quellcodes einer Vielzahl von Webseiten veranlassen, die Scriptcode enthalten. Eine Webseite, die eine potenzielle Sicherheitslücke enthält, kann auf der Grundlage der statischen Analyse erkannt werden. Eine Webseite, die keine potenzielle Sicherheitslücke enthält, kann auf der Grundlage der statischen Analyse erkannt werden. Die Webseite, die die potenzielle Sicherheitslücke enthält, kann unter Verwendung einer Reihe von Test-Nutzdaten dynamisch analysiert werden. Die Webseite, die die potenzielle Sicherheitslücke nicht enthält, kann unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch analysiert werden, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe der Test-Nutzdaten enthält.
-
Hierfür können ein oder mehrere der folgenden Merkmale maßgebend sein. Es können Anweisungen zum Empfangen der Vielzahl der Webseiten von einem Webserver verwendet werden. Die Vielzahl der Webseiten können einer Webanwendung zugehörig sein.
-
Zu den Anweisungen zum statischen Analysieren des Quellcodes der Vielzahl der Webseiten können Anweisungen zum Erstellen eines Modells gehören, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten darstellt. Die potenzielle Sicherheitslücke kann auf der Grundlage einer Reihe von Sicherheitsregeln in Form einer Störung des Datenflusses festgestellt werden.
-
Zu den Anweisungen zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten können Anweisungen für eine statische Fehleranalyse gehören. Zu den Anweisungen zum dynamischen Analysieren können Anweisungen zum Ausführen des Scriptcodes auf einer Script-Engine gehören.
-
Gemäß noch einer weiteren Implementierung kann ein System einen Prozessor und einen mit dem Prozessor verbundenen Speicher beinhalten. Ein erstes Software-Modul kann in dem Speicher installiert sein und auf dem Prozessor ausgeführt werden. Das erste Software-Modul kann zum statischen Analysieren von Quellcode einer Vielzahl von Webseiten konfiguriert sein, die Scriptcode enthalten. Ein zweites Software-Modul kann in dem Speicher installiert sein und auf dem Prozessor ausgeführt werden. Das zweite Software-Modul kann zum Erkennen einer Webseite, die eine potenzielle Sicherheitslücke enthält, auf der Grundlage der statischen Analyse konfiguriert sein. Ein drittes Software-Modul kann in dem Speicher installiert sein und auf dem Prozessor ausgeführt werden. Das dritte Software-Modul kann zum Erkennen einer Webseite, die keine potenzielle Sicherheitslücke enthält, auf der Grundlage der statischen Analyse konfiguriert sein. Ein viertes Software-Modul kann in dem Speicher installiert sein und auf dem Prozessor ausgeführt werden. Das vierte Software-Modul kann zum dynamischen Analysieren der Webseite, die die potenzielle Sicherheitslücke enthält, unter Verwendung einer Reihe von Test-Nutzdaten konfiguriert sein. Ein fünftes Software-Modul kann in dem Speicher installiert sein und auf dem Prozessor ausgeführt werden. Das fünfte Software-Modul kann zum dynamischen Analysieren der Webseite, die die potenzielle Sicherheitslücke nicht enthält, unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten konfiguriert sein, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten enthält.
-
Hierfür können ein oder mehrere der folgenden Merkmale maßgebend sein. Ein sechstes Software-Modul kann zum Empfangen der Vielzahl von Webseiten von einem Webserver konfiguriert sein. Die Vielzahl von Webseiten kann einer Webanwendung zugehörig sein.
-
Das erste Software-Modul, das zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten konfiguriert ist, kann zum Erstellen eines Modells konfiguriert sein, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten darstellt. Die potenzielle Sicherheitslücke kann auf der Grundlage einer Reihe von Sicherheitsregeln in Form einer Störung des Datenflusses festgestellt werden.
-
Das zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten konfigurierte erste Software-Modul kann konfiguriert sein, um eine statische Fehleranalyse durchzuführen. Das zum dynamischen Analysieren konfigurierte vierte Software-Modul kann konfiguriert sein, um den Scriptcode auf einer Script-Engine auszuführen.
-
Die Einzelheiten der einen oder mehreren Implementierungen sind in den beiliegen Zeichnungen und der folgenden Beschreibung dargelegt. Weitere Merkmale werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ZEICHNUNGSANSICHTEN
-
1 zeigt schematisch einen Analyseprozess, der mit einem verteilten Datenverarbeitungsnetzwerk verbunden ist.
-
2 ist ein Ablaufplan eines Prozesses, der durch den Analyseprozess von 1 ausgeführt wird.
-
3 zeigt schematisch eine Analyse durch den Analyseprozess von 1, die eine voraussichtliche Ankunftszeit einer zur Beratung eingeladenen Person anzeigt.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Dem Fachmann ist einsichtig, dass die vorliegende Erfindung als Verfahren, System oder Computerprogrammprodukt umgesetzt werden kann. Demgemäß kann die Erfindung die Form einer kompletten Hardwareumgebung, einer kompletten Softwareumgebung (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, die hierin allgemein sämtlich als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus kann die vorliegende Erfindung die Form eines Computerprogrammprodukts auf einem durch Computer verwendbaren Speichermedium annehmen, das einen in dem Medium gespeicherten durch Computer verwendbaren Programmcode aufweist.
-
Es kann ein beliebiges geeignetes, durch Computer verwendbares oder computerlesbares Medium verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem durch Computer verwendbaren oder computerlesbaren Speichermedium (darunter eine Speichereinheit, die einer Datenverarbeitungseinheit oder einer elektronischen Clienteinheit zugehörig ist) kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetische, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Als einzelne Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Medium kommen infrage: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM) und eine optische Speichereinheit. In Verbindung mit diesem Dokument kann es sich bei einem durch Computer verwendbaren oder computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterverbreiten oder transportieren kann.
-
Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
-
Ein Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in einer objektorientierten Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen geschrieben sein. Der Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann auch in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferner Computer durch ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN) mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Die vorliegende Erfindung wird im Folgenden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in dem Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen umgesetzt werden.
-
Diese Computerprogrammanweisungen können in einem computerlesbaren Speicher gespeichert sein, der einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung veranlassen kann, in einer bestimmten Weise so zu funktionieren, dass die in dem computerlesbaren Speicher gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen beinhaltet, die die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen umsetzen.
-
Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um eine Folge auf dem Computer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Schritte zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen bereitstellen.
-
1 zeigt einen Analyseprozess 10, der auf einem Client-Computer 12 angesiedelt sein kann, der mit einem Netzwerk 14 (z. B. mit dem Internet oder einem lokalen Netzwerk) verbunden sein kann, und durch diesen ausgeführt werden kann. Als Beispiele für den Client-Computer 12 kommen infrage, ohne darauf beschränkt zu sein, ein Personal Computer, ein Laptop-Computer, eine mobile Datenverarbeitungseinheit, ein Server-Computer oder eine Reihe von Server Computern. Auf dem Client-Computer 12 kann ein Betriebssystem ausgeführt werden, zum Beispiel, ohne darauf beschränkt zu sein, Microsoft® Windows®; Mac® OS X®; oder Red Hat® Linux®. (Microsoft und Windows sind eingetragene Warenzeichen von Microsoft Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; Mac und OS X sind eingetragene Warenzeichen von Apple Inc. in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; Red Hat ist ein eingetragenes Warenzeichen von Red Hat Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; und Linux ist ein eingetragenes Warenzeichen von Linus Torvalds in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden.)
-
Im Folgenden wird ausführlich erläutert, wie mittels des Analyseprozesses 10 ein Quellcode einer Vielzahl von Webseiten statisch analysiert werden kann, die Scriptcode enthalten. Der Scriptcode kann einen Code enthalten, der in einer Scriptsprache geschrieben ist, zum Beispiel, ohne darauf beschränkt zu sein, JavaScript® und Flash® (JavaScript ist ein Warenzeichen von Oracle Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; Flash ist ein Warenzeichen von Adobe Systems Incorporated in den Vereinigten Staaten von Amerika oder anderen Ländern oder in beiden). Zumindest teilweise auf der Grundlage einer statischen Analyse der Quellen kann mittels des Analyseprozesses 10 eine Webseite, die eine potenzielle Sicherheitslücke enthält, und eine Webseite erkannt werden, die keine potenzielle Sicherheitslücke enthält. Mittels des Analyseprozesses 10 kann die Webseite, die die potenzielle Sicherheitslücke enthält, unter Verwendung einer Reihe von Test-Nutzdaten dynamisch analysiert werden. Ferner kann mittels des Analyseprozesses 10 die Webseite, die die potenzielle Sicherheitslücke nicht enthält, unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch analysiert werden, wobei die Teilmenge der Test-Nutzdaten weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten enthält.
-
Gemäß dem oben Gesagten können allgemein mittels des Analyseprozesses 10 eine Vielzahl von Webseiten, die Scriptcode enthalten, statisch analysiert werden, um Seiten, die einen Scriptcode enthalten, der eine potenzielle Sicherheitslücke darstellt, und Seiten zu erkennen, die in Hinblick auf die statische Analyse keine potenzielle Sicherheitslücke darstellen. Die Webseiten können auch dynamisch analysiert werden, um potenzielle Sicherheitslücken zu erkennen. Webseiten, die durch die statische Analyse nicht als potenzielle Sicherheitslücke erkannt wurden, können unter Verwendung einer Teilmenge von Test-Nutzdaten dynamisch analysiert werden, die z. B. gezielt zum Erkennen weithin verbreiteter Sicherheitslücken eingesetzt werden können. Webseiten, die durch die statische Analyse als potenzielle Sicherheitslücke erkannt wurden, können dynamisch analysiert werden unter Verwendung einer größeren, gemäß einigen Ausführungsformen einer deutlich größeren, Reihe von Test-Nutzdaten als zum dynamischen Analysieren der Webseiten verwendet wurden, die durch die statische Analyse nicht als potenzielle Sicherheitslücke erkannt wurden.
-
Die Anweisungssätze und Unterroutinen des Analyseprozesses 10, die ein oder mehrere Software-Module beinhalten können und auf einer mit dem Client-Computer 12 verbundenen Speichereinheit 16 gespeichert sein können, können durch einen oder mehrere (nicht gezeigte) Prozessoren und ein oder mehrere (nicht gezeigte) Speichermodule ausgeführt werden, die in den Client-Computer 12 integriert sind. Zu der Speichereinheit 16 können gehören, ohne darauf beschränkt zu sein: ein Festplattenlaufwerk, ein Halbleiterspeicher, ein Bandlaufwerk; ein optisches Laufwerk, eine RAID-Anordnung; ein Direktzugriffsspeicher (RAM); und ein Nur-Lese-Speicher (ROM).
-
Auf der Speichereinheit 16 können eine oder mehrere Reihen von Test-Nutzdaten 18 gespeichert sein, die z. B. in Verbindung mit dem dynamischen Analysieren der Vielzahl von Webseiten verwendet werden können. Durch den Client-Computer 12 kann auch eine Script-Engine 20 ausgeführt werden. Die Script-Engine 20 kann eine Komponente enthalten, die zum Ausführen eines Scriptcodes konfiguriert ist, der in der Vielzahl von Webseiten (z. B. innerhalb der Webseiten 22) enthalten ist. Die Script-Engine 20 kann eine Script-Engine, die in einem Modul eines Web-Browsers und/oder als Modul in einem Web-Browser enthalten ist (das z. B. in der Lage sein kann, Webinhalte wiederzugeben und/oder zu verarbeiten und Scriptcode auszuführen) und/oder eine eigenständige Script-Engine enthalten, die zum Ausführen eines innerhalb der Webseiten 22 enthaltenen Scriptcodes konfiguriert sein kann. Die Anweisungssätze und Unterroutinen der Script-Engine 20, die ein oder mehrere Software-Module enthalten und auf der mit dem Client-Computer 12 verbundenen Speichereinheit 16 gespeichert sein können, können durch einen oder mehrere (nicht gezeigte) Prozessoren und ein oder mehrere (nicht gezeigte) Speichermodule ausgeführt werden, die in den Client-Computer 12 integriert sind. Gemäß einigen Ausführungsformen kann die Script-Engine 20 eine gesonderte Anwendung und/oder eine Komponente des Analyseprozesses 10 enthalten.
-
Webseiten 22 können auf der mit einem Server-Computer 26 verbundenen Speichereinheit 24 gespeichert sein. Eine oder mehrere der Webseiten 22 können einen Scriptcode enthalten, der auf dem Client-Computer 12 (z. B. durch die Script-Engine 20) ausgeführt werden kann. Die Speichereinheit 24 kann, ohne darauf beschränkt zu sein, ein Festplattenlaufwerk; einen Halbleiterspeicher; ein Bandlaufwerk; ein optisches Laufwerk; eine RAID-Anordnung; einen Direktzugriffsspeicher (RAM); und einen Nur-Lese-Speicher (ROM) beinhalten. Als Beispiele für den Server-Computer 26 kommen infrage, ohne darauf beschränkt zu sein: ein Personal Computer, ein Server-Computer, eine Reihe von Server-Computern, ein Minicomputer und ein Mainframe-Computer. Bei dem Server-Computer 26 kann es sich um einen Webserver (oder eine Reihe von Webservern) handeln, die ein Netzwerk-Betriebssystem ausführen, zu denen folgende Beispiele gehören können, ohne darauf beschränkt zu sein: Microsoft® Windows® Server; Novell® NetWare®; oder Red Hat® Linux®. (Microsoft und Windows sind eingetragene Warenzeichen von Microsoft Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; Novell und NetWare sind eingetragene Warenzeichen von Novell Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; Red Hat ist ein eingetragenes Warenzeichen von Red Hat Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; und Linux ist ein eingetragenes Warenzeichen von Linus Torvalds in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden.)
-
Der Server-Computer 12 kann eine Webserver-Anwendung 28 ausführen, wozu folgende Beispiele gehören können, ohne darauf beschränkt zu sein: Microsoft IIS, Novell WebserverTM oder, Apache® Webserver, die einen HTTP-(d. h., HyperText Transfer Protocol)Zugriff auf den Server-Computer 26 über ein Netzwerk ermöglichen (Webserver ist ein Warenzeichen von Novell Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; und Apache ist ein eingetragenes Warenzeichen von Apache Software Foundation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden). Der Anweisungssatz und die Unterroutinen der Webserver-Anwendung können auf der Speichereinheit 24 gespeichert sein, durch einen oder mehrere (nicht gezeigte) Prozessoren ausgeführt werden, und ein oder mehrere (nicht gezeigte) Speichermodule können in den Server-Computer 26 integriert sein. Außerdem oder alternativ kann die Webserver-Anwendung auf dem Client-Computer 12 gespeichert sein und ausgeführt werden.
-
Der Client-Computer 12 kann direkt oder indirekt mit dem Netzwerk 14 verbunden sein. Gezeigt ist zum Beispiel, dass der Client-Computer 12 über eine fest verdrahtete Netzwerkverbindung direkt mit dem Netzwerk 14 verbunden ist. Gemäß verschiedenen weiteren/alternativen Ausführungsformen kann der Client-Computer 12 (und/oder Server-Computer 26) über einen drahtlosen Datenübertragungskanal mit dem Netzwerk 14 verbunden sein, der zwischen dem Client-Computer 12 und/oder dem Server-Computer 26 eingerichtet ist. IAls Beispiele für einen drahtlosen Datenübertragungskanal kommen ein drahtloser IEEE 802.11a-, 802.11b-, 802.11g-, Wi-Fi- und/oder Bluetooth-Datenübertragungskanal infrage. In der Technik ist bekannt, dass alle IEEE 802.11x-Spezifikationen das Ethernet-Protokoll und den Mehrfachzugriff durch Trägerprüfung mit Kollisionsvermeidung (d. h. CSMA/CA) für gemeinsame Nutzung des Übertragungspfades verwenden können. Die verschiedenen 802.11x-Spezifikationen können zum Beispiel die Phasenmodulation (phase-shift keying, PSK) oder die CCK-(complementary code keying)Modulation verwenden. In der Technik ist Bluetooth als Spezifikation der Telekommunikationsindustrie bekannt, die es z. B. ermöglicht, Mobiltelefone, Computer und persönliche digitale Assistenten unter Verwendung einer drahtlosen Verbindung kurzer Reichweite miteinander zu verbinden.
-
2 zeigt den Analyseprozess 10, bei dem in Schritt 100 der Quellcode einer Vielzahl von Webseiten, die Scriptcode enthalten, statisch analysiert werden kann. In Schritt 102 des Analyseprozesses 10 können auf der Grundlage der statischen Analyse 100 eine oder mehrere Webseiten erkannt werden, die eine potenzielle Sicherheitslücke enthalten. In Schritt 104 des Analyseprozesses 10 können unter Verwendung einer Reihe von Test-Nutzdaten auch eine oder mehrere Webseiten erkannt werden, die keine potenzielle Sicherheitslücke enthalten. Ferner können in Schritt 106 des Analyseprozesses 10 unter Verwendung einer Reihe von Test-Nutzdaten eine oder mehrere Webseiten dynamisch analysiert werden, die die potenzielle Sicherheitslücke enthalten. Die eine oder die mehreren Webseiten, die die potenzielle Sicherheitslücke nicht enthalten, können unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch analysiert werden, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten enthält.
-
Gemäß 3 kann der Analyseprozess 10 in Schritt 110 zum Beispiel eine Vielzahl von Webseiten 22 von dem Server-Computer 26 empfangen. Die Vielzahl der in Schritt 110 von dem Server-Computer 26 empfangenen Webseiten kann eine oder mehrere Seiten enthalten, die Scriptcode wie beispielsweise JavaScript, Flash oder einen anderen Scriptcode enthalten. Gemäß einigen Beispielen kann die Vielzahl von Webseiten 22 Webseiten enthalten, die einer Webanwendung zugehörig sind.
-
Zu dem statischen Analysieren des Quellcodes der Vielzahl von Webseiten in Schritt 100, die Scriptcode enthalten (z. B. durch eine statische Analyseeinheit 150, die eine Funktionalität des Analyseprozesses 10 und/oder Module, Merkmale oder Komponenten des Analyseprozesses 10 darstellen kann), kann gemäß einigen Ausführungsformen ein Erstellen eines Modells 152 des Scriptcodes in Schritt 112 gehören, das einen Informations- und Datenfluss durch den Quellcode der Webseiten 22 und/oder den in den Webseiten 22 enthaltenen Scriptcode repräsentiert.
-
Unter Verwendung des Codemodells 152 kann die statische Analyseeinheit 150 in Schritt 102 eine oder mehrere Webseiten erkennen (z. B. die Webseite PV), die eine potenzielle Sicherheitslücke enthalten. Zu dem Erkennen einer oder mehrerer Webseiten in Schritt 102, die eine potenzielle Sicherheitslücke enthalten, kann zum Beispiel ein Erkennen einer Störung des Datenflusses innerhalb des Codemodells 152 gehören. Gemäß einigen Ausführungsformen kann eine Störung des Datenflusses anhand einer Reihe von Sicherheitsregeln erkannt werden, indem eine oder mehrere Verhaltensweisen ausfindig gemacht werden, die für eine potenzielle Sicherheitslücke typisch sind. Gemäß einigen Ausführungsformen kann zum statischen Analysieren des Quellcodes von Webseiten 22 in Schritt 100 eine statische Fehleranalyse gehören.
-
Bei dem statischen Analysieren des Quellcodes von Webseiten 22 in Schritt 100 kann es sich um einen relativ schnellen Prozess handeln, da das statische Analysieren des Quellcodes von Webseiten 22 in Schritt 100 unter Verwendung des Codemodells 152 erfolgen kann. Zum Beispiel können während des Analyseprozesses 10 (z. B. durch die statische Analyseeinheit 150) verschiedene Nutzdatentypen simuliert und in Schritt 102 erkannt werden, dass in dem Scriptcode ein theoretisches Beispiel einer Sicherheitslücke oder Schwachstelle enthalten ist. Demgemäß kann mittels des Analyseprozesses 10 festgestellt werden, dass Nutzdaten allgemeiner Art potenziell angreifbar sind. Die statische Analyse kann jedoch eine Abstraktion unter Verwendung typischer Nutzdaten darstellen, die keine speziellen Parameter und/oder Merkmale enthalten. Demgemäß können gemäß einigen Ausführungsformen durch statisches Analysieren des Quellcodes des Scripts in Schritt 100 des Analyseprozesses 10 nicht genau die Nutzdaten ermittelt werden, die als Ursache für die potenzielle Sicherheitslücke infrage kommen, was bei der Erkennung von Webseiten, die eine potenzielle Sicherheitslücke enthalten, in Schritt 102 zu falsch positiven Ergebnissen führen kann.
-
Auf ähnliche Weise können durch statisches Analysieren des Quellcodes von Webseiten 22 in Schritt 100 eine oder mehrere Webseiten in Schritt 104 erkannt werden, die keine potenzielle Sicherheitslücke enthalten. Zu der einen oder den mehreren Webseiten, die keine potenzielle Sicherheitslücke enthalten, können alle Webseiten gehören, bei denen in Schritt 102 keine potenzielle Sicherheitslücke erkannt worden ist. Gemäß einigen Ausführungsformen kann während des Analyseprozesses 10 jede der Webseiten 22 markiert werden, dass sie entweder eine potenzielle Sicherheitslücke oder keine potenzielle Sicherheitslücke enthält.
-
In Schritt 106, 108 des Analyseprozesses 10 können zum Beispiel Webseiten 22 dynamisch analysiert werden, die in Schritt 100 bereits statisch analysiert worden sind. Zum Beispiel können in Schritt 106 des Analyseprozesses 10 die eine oder die mehreren Webseiten, bei denen in Schritt 102 bereits auf der Grundlage der statischen Analyse 100 erkannt worden ist, dass sie eine potenzielle Sicherheitslücke enthalten (z. B. die Webseite PV), und die eine oder die mehreren Webseiten, bei denen in Schritt 104 erkannt wurde, dass sie keine potenzielle Sicherheitslücke enthalten (z. B. die Webseite PN), dynamisch analysiert werden. Gemäß einigen Ausführungsformen können die Webseiten 22 in Schritt 106, 108 durch die dynamische Analyseeinheit 154 dynamisch analysiert werden, die zum Beispiel die Funktionalität des Analyseprozesses 10 und/oder Module, Merkmale oder Komponenten des Analyseprozesses 10 repräsentieren kann.
-
Gemäß einigen Ausführungsformen kann zum dynamischen Analysieren von Webseiten 22 in Schritt 106, 108 ein Ausführen des Scriptcodes in Schritt 114 auf der Scriptcode-Engine 20 gehören. Gemäß der obigen Erörterung kann die Scriptcode-Engine 20 als eigenständige Scriptcode-Engine betrieben werden und kann die Funktionalität oder ein Modul, eine Komponente oder dergleichen eines Web-Browsers, der mit dem Analyseprozess 10 zusammenwirkt, und/oder die Funktionalität oder ein Modul, eine Komponente oder dergleichen des Analyseprozesses 10 beinhalten. Allgemein kann zu dem dynamischen Analysieren von Webseiten 22 in Schritt 106, 108 ein Anfordern von Webseiten 22 und ein Ausführen von Webseiten 22 mit verschiedenen unterschiedlichen Test-Nutzdaten (z. B. den Test-Nutzdaten 18) gehören. Demgemäß können die in den Webseiten 22 enthaltenen Scripte während des Analyseprozesses 10 mit unterschiedlichen Test-Nutzdaten ausgeführt werden. Weiterhin kann während des Analyseprozesses 10 auf Verhaltensweisen der Webseiten 22 (und/oder der in den Webseiten 22 enthaltenen Scripte) geachtet werden, wobei bestimmte Verhaltensweisen auf eine Sicherheitslücke bei einer bestimmten Webseite (und/oder dem in der Webseite enthaltenen Script) hinweisen können.
-
Zum dynamischen Analysieren der einen oder mehreren Webseiten PV in Schritt 106, die die potenzielle Sicherheitslücke enthalten, kann ein Analysieren der einen oder mehreren Webseiten PV unter Verwendung einer Reihe von Test-Nutzdaten TP in Schritt 106 gehören. Gemäß einigen Ausführungsformen können zu der Reihe von Test-Nutzdaten TP zig oder Hunderte (bei einigen Ausführungsformen z. B. ungefähr 100 bis 200 Test-Nutzdaten pro untersuchten Parameter) von Test-Nutzdaten gehören. Beim Analyseprozess 10 können die Verhaltensweisen der einen oder mehreren Webseiten PV (und/oder in den Webseiten PV enthalten Scripte) in Hinblick auf Verhaltensweisen verfolgt werden, die auf eine Sicherheitslücke hinweisen. Zwar kann es sich im Allgemeinen bei dem dynamischen Analysieren von Webseiten in Schritt 106 unter Verwendung einer relativ großen Anzahl von Test-Nutzdaten um einen relativ zeitaufwendigen Prozess handeln, und gemäß einigen Ausführungsformen können nur relativ wenige Webseiten PV erkannt werden, die potenzielle Sicherheitslücken enthalten, jedoch kann der zum dynamischen Analysieren der Webseiten PV, die potenzielle Sicherheitslücken enthalten, in Schritt 106 erforderliche Zeitaufwand vertretbar sein.
-
Zum dynamischen Analysieren der einen oder mehreren Webseiten PN in Schritt 108, die die potenzielle Sicherheitslücke nicht enthalten, kann ein dynamisches Analysieren der einen oder mehreren Webseiten PN in Schritt 108 unter Verwendung einer Teilmenge TP1 der Reihe von Test-Nutzdaten TP gehören. Die Teilmenge von Test-Nutzdaten TP1 kann weniger Test-Nutzdaten als in der Reihe von Test-Nutzdaten TP beinhalten. Gemäß einigen Ausführungsformen können die eine oder die mehreren Webseiten PN in Schritt 108 zum Beispiel auf allgemein verbreitete Quellen von Sicherheitslücken hin getestet werden. Bei einigen dieser Ausführungsformen können zu der Teilmenge TP1 von Test-Nutzdaten ein bis zehn Test-Nutzdaten pro getesteten Parameter (bei einigen Ausführungsformen z. B. vier Test-Nutzdaten pro getesteten Parameter) gehören.
-
Gemäß einigen Ausführungsformen kann die statische Analyse als Vorstufe der dynamischen Analyse dienen. Das heißt, gemäß einigen Ausführungsformen können durch die statische Analyse nur relativ wenige Webseiten erkannt werden, die eine potenzielle Sicherheitslücke enthalten. Die relativ geringe Anzahl von erkannten Webseiten, die eine potenzielle Sicherheitslücke enthalten, können nunmehr unter Verwendung einer relativ großen Anzahl von Test-Nutzdaten gründlich getestet werden. Webseiten, bei denen erkannt wurde, dass sie keine potenzielle Sicherheitslücke enthalten, können unter Verwendung einer relativ geringeren Anzahl von Test-Nutzdaten dynamisch getestet werden. Zwar kann das dynamische Analysieren mit einer großen Anzahl von Test-Nutzdaten einen relativ zeitaufwendigen Prozess darstellen, sodass nur relativ wenige Webseiten (d. h. diejenigen, bei denen eine potenzielle Sicherheitslücke erkannt wurde) gründlich dynamisch analysiert werden können, jedoch können diejenigen Webseiten, bei denen keine potenzielle Sicherheitslücke erkannt wurde, unter Verwendung einer relativ geringeren Anzahl von Test-Nutzdaten dynamisch analysiert werden. Dadurch kann die dynamische Analyse gemäß einigen Ausführungsformen und/oder der Umfang der dynamischen Analyse zielgerichtet eingesetzt werden (z. B. für diejenigen Webseiten, bei denen eine potenzielle Sicherheitslücke erkannt wurde). Ferner kann gemäß einigen Ausführungsformen durch gründliches dynamisches Analysieren von Webseiten, bei denen eine potenzielle Sicherheitslücke erkannt wurde (z. B. durch statische Analyse), überprüft werden, ob wirklich eine Sicherheitslücke vorliegt (z. B. im Gegensatz zu einem falsch positiven Ergebnis und/oder einer theoretischen Sicherheitslücke) und wie die Sicherheitslücke bestätigt werden kann (z. B. auf der Grundlage der dynamischen Analyse). Gemäß einigen Ausführungsformen, bei denen die Sicherheitslücke überprüft werden kann, können außerdem die Aspekte des Quellcodes des Scripts auf der Grundlage der statischen Analyse erkannt werden.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen Logikfunktion(en) umfasst. Zu beachten ist, dass bei einigen alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge vorkommen können. Zum Beispiel können je nach vorgesehener Funktionalität zwei nacheinander gezeigte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Es wird auch darauf hingewiesen, dass jeder Block der Blockschaubilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme oder durch Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden kann, die die angegebenen Funktionen oder Aktionen ausführen.
-
Die hierin gebrauchten Begriffe dienen lediglich der Beschreibung einzelner Ausführungsformen und sind nicht als Einschränkung der Erfindung zu verstehen. Die hierin gebrauchten Einzahlformen „ein”, „eine” und „der, die, das” sollen gleichermaßen auch die Mehrzahlformen einschließen, sofern aus dem Zusammenhang nicht anderes hervorgeht. Ferner ist klar, dass die Begriffe „umfasst” und/oder „umfassend” bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzukommen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder deren Gruppen ausschließen.
-
Die entsprechenden Strukturen, Materialien, Aktionen und Entsprechungen alle Mittel oder Schritte zuzüglich Funktionselemente in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Kombination mit anderen ausdrücklich beanspruchten Elementen beinhalten. Die Beschreibung der vorliegenden Erfindung ist zur Veranschaulichung und Beschreibung vorgelegt worden, erhebt jedoch nicht den Anspruch auf Vollständigkeit oder Beschränkung auf die Erfindung in der offenbarten Form. Dem Fachmann sind viele Modifikationen und Varianten offensichtlich, ohne vom Schutzumfang und vom Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und deren praktische Anwendung bestmöglich zu erläutern und anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu ermöglichen, die für den vorgesehenen Zwecks geeignet sind.
-
Aus der detaillierten Beschreibung der Erfindung der vorliegenden Anmeldung unter Bezugnahme auf deren Ausführungsformen wird somit klar, dass Modifikationen und Varianten möglich sind, ohne vom Schutzumfang der Erfindung abzuweichen, der in den beiliegenden Ansprüchen definiert ist.