DE112012005016T5 - Zielgerichtete Sicherheitsprüfung - Google Patents

Zielgerichtete Sicherheitsprüfung Download PDF

Info

Publication number
DE112012005016T5
DE112012005016T5 DE112012005016.9T DE112012005016T DE112012005016T5 DE 112012005016 T5 DE112012005016 T5 DE 112012005016T5 DE 112012005016 T DE112012005016 T DE 112012005016T DE 112012005016 T5 DE112012005016 T5 DE 112012005016T5
Authority
DE
Germany
Prior art keywords
web pages
web
source code
software module
potential security
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.)
Ceased
Application number
DE112012005016.9T
Other languages
English (en)
Inventor
c/o IBM Israel Amit Yair
c/o IBM Israel Guy Lotem
c/o IBM Israel Segal Ori
c/o IBM Israel Weisman Omri
c/o IBM Israel Kalman Daniel
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012005016T5 publication Critical patent/DE112012005016T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Der Quellcode einer Vielzahl von Webseiten, die Scriptcode enthalten, wird statisch analysiert. Eine Seite, die eine potenzielle Sicherheitslücke enthält, wird auf der Grundlage der statischen Analyse erkannt. Eine Seite, die keine potenzielle Sicherheitslücke enthält, wird auf der Grundlage der statischen Analyse erkannt. Die Webseite, die die potenzielle Sicherheitslücke enthält, wird unter Verwendung einer Reihe von Test-Nutzdaten dynamisch analysiert. Die Seite, die die potenzielle Sicherheitslücke nicht enthält, wird unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch analysiert, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten beinhaltet.

Description

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

Claims (21)

  1. Computergestütztes Verfahren, das aufweist: statisches Analysieren des Quellcodes einer Vielzahl von Webseiten, die Scriptcode enthalten, auf einer Datenverarbeitungseinheit; Erkennen einer Webseite, die eine potenzielle Sicherheitslücke enthält, auf der Datenverarbeitungseinheit auf der Grundlage der statischen Analyse; Erkennen einer Webseite, die eine potenzielle Sicherheitslücke nicht enthält, auf der Datenverarbeitungseinheit auf der Grundlage der statischen Analyse; dynamisches Analysieren der Webseite, die die potenzielle Sicherheitslücke enthält, auf der Datenverarbeitungseinheit unter Verwendung einer Reihe von Test-Nutzdaten; und dynamisches Analysieren der Webseite, die die potenzielle Sicherheitslücke nicht enthält, unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten auf der Datenverarbeitungseinheit, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten beinhaltet.
  2. Computergestütztes Verfahren nach Anspruch 1, das ferner ein Empfangen der Vielzahl von Webseiten von einem Webserver aufweist.
  3. Computergestütztes Verfahren nach Anspruch 1, wobei die Vielzahl von Webseiten einer Webanwendung zugehörig sind.
  4. Computergestütztes Verfahren nach Anspruch 1, wobei zu dem statischen Analysieren des Quellcodes der Vielzahl von Webseiten ein Erstellen eines Modells gehört, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten repräsentiert/darstellt.
  5. Computergestütztes Verfahren nach Anspruch 1, wobei die potenzielle Sicherheitslücke auf der Grundlage einer Reihe von Sicherheitsregeln in Form einer Störung des Datenflusses festgestellt wird.
  6. Computergestütztes Verfahren nach Anspruch 1, wobei zu dem statischen Analysieren des Quellcodes der Vielzahl von Webseiten eine Fehleranalyse gehört.
  7. Computergestütztes Verfahren nach Anspruch 1, wobei zu dem dynamischen Analysieren ein Ausführen des Scriptcodes auf einer Script-Engine gehört.
  8. Computerprogrammprodukt, das ein computerlesbares Medium mit einer Vielzahl darin gespeicherter Anweisungen aufweist, die bei Ausführung durch einen Prozessor diesen zum Ausführen von Operationen veranlassen, darunter: statisches Analysieren des Quellcodes einer Vielzahl von Webseiten, die Scriptcode enthalten; Erkennen einer Webseite, die eine potenzielle Sicherheitslücke enthält, auf der Grundlage der statischen Analyse; Erkennen einer Webseite, die keine potenzielle Sicherheitslücke enthält, auf der Grundlage der statischen Analyse; dynamisches Analysieren der Webseite, die die potenzielle Sicherheitslücke enthält, unter Verwendung einer Reihe von Test-Nutzdaten; und dynamisches Analysieren der Webseite, die die potenzielle Sicherheitslücke nicht enthält, unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten beinhaltet.
  9. Computerprogrammprodukt nach Anspruch 8, das ferner Anweisungen zum Empfangen der Vielzahl von Webseiten von einem Webserver aufweist.
  10. Computerprogrammprodukt nach Anspruch 8, wobei die Vielzahl von Webseiten einer Webanwendung zugehörig sind.
  11. Computerprogrammprodukt nach Anspruch 8, wobei zu den Anweisungen zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten Anweisungen zum Erstellen eines Modells gehören, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten darstellt.
  12. Computerprogrammprodukt nach Anspruch 8, wobei die potenzielle Sicherheitslücke auf der Grundlage einer Reihe von Sicherheitsregeln in Form einer Störung des Datenflusses festgestellt wird.
  13. Computerprogrammprodukt nach Anspruch 8, wobei zu den Anweisungen zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten Anweisungen für eine statische Fehleranalyse gehören.
  14. Computerprogrammprodukt nach Anspruch 8, wobei zu den Anweisungen zum dynamischen Analysieren Anweisungen zum Ausführen des Quellcodes auf einer Script-Engine gehören.
  15. System, das aufweist: einen Prozessor und einen mit dem Prozessor verbundenen Speicher; ein erstes Software-Modul, das in dem Speicher installiert ist und auf dem Prozessor ausgeführt wird, wobei das erste Software-Modul konfiguriert ist, um den Quellcode einer Vielzahl von Webseiten statisch zu analysieren, die Scriptcode enthalten; ein zweites Software-Modul, das in dem Speicher installiert ist und auf dem Prozessor ausgeführt wird, wobei das zweite Software-Modul konfiguriert ist, um auf der Grundlage der statischen Analyse eine Webseite zu erkennen, die eine potenzielle Sicherheitslücke enthält; ein drittes Software-Modul, das in dem Speicher installiert ist und auf dem Prozessor ausgeführt wird, wobei das dritte Software-Modul konfiguriert ist, auf der Grundlage der statischen Analyse eine Webseite zu erkennen, die eine potenzielle Sicherheitslücke nicht enthält; ein drittes Software-Modul, das in dem Speicher installiert ist und auf dem Prozessor ausgeführt wird, wobei das vierte Software-Modul konfiguriert ist, die Webseite, die die potenzielle Sicherheitslücke enthält unter Verwendung einer Reihe von Test-Nutzdaten dynamisch zu analysieren; und ein fünftes Software-Modul, das in dem Speicher installiert ist und auf dem Prozessor ausgeführt wird, wobei das fünfte Software-Modul konfiguriert ist, die Webseite, die die potenzielle Sicherheitslücke nicht enthält, unter Verwendung einer Teilmenge der Reihe von Test-Nutzdaten dynamisch zu analysieren, wobei die Teilmenge weniger Test-Nutzdaten als die Reihe von Test-Nutzdaten beinhaltet.
  16. System nach Anspruch 15, das ferner ein sechstes Software-Modul beinhaltet, das zum Empfangen der Vielzahl von Webseiten von einem Webserver konfiguriert ist.
  17. System nach Anspruch 15, wobei die Vielzahl von Webseiten einer Webanwendung zugehörig sind.
  18. System nach Anspruch 15, wobei das zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten konfigurierte erste Software-Modul konfiguriert ist, ein Modell zu erstellen, das einen Datenfluss durch den Quellcode der Vielzahl von Webseiten darstellt.
  19. System nach Anspruch 15, wobei die potenzielle Sicherheitslücke eine Störung des Datenflusses beinhaltet, die auf einer Reihe von Sicherheitsregeln beruht.
  20. System nach Anspruch 15, wobei das zum statischen Analysieren des Quellcodes der Vielzahl von Webseiten konfiguriert ist, eine statische Fehleranalyse durchzuführen.
  21. System nach Anspruch 15, wobei das zum dynamischen Analysieren konfigurierte vierte Software-Modul konfiguriert ist, den Scriptcode auf einer Script-Engine auszuführen.
DE112012005016.9T 2011-12-30 2012-12-03 Zielgerichtete Sicherheitsprüfung Ceased DE112012005016T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/341,426 US9971896B2 (en) 2011-12-30 2011-12-30 Targeted security testing
US13/341,426 2011-12-30
PCT/IB2012/056919 WO2013098677A1 (en) 2011-12-30 2012-12-03 Targeted security testing

Publications (1)

Publication Number Publication Date
DE112012005016T5 true DE112012005016T5 (de) 2014-09-04

Family

ID=48696091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005016.9T Ceased DE112012005016T5 (de) 2011-12-30 2012-12-03 Zielgerichtete Sicherheitsprüfung

Country Status (6)

Country Link
US (2) US9971896B2 (de)
JP (1) JP5893164B2 (de)
CN (1) CN104025109A (de)
DE (1) DE112012005016T5 (de)
GB (1) GB2510756A (de)
WO (1) WO2013098677A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869286B1 (en) * 2012-05-22 2014-10-21 Symantec Corporation Systems and methods for analyzing client-side storage security for internet applications
GB2519159A (en) 2013-10-14 2015-04-15 Ibm Security testing of web applications with specialised payloads
GB2521640A (en) 2013-12-24 2015-07-01 Ibm Payload Generation
US10599852B2 (en) 2014-08-15 2020-03-24 Securisea, Inc. High performance software vulnerabilities detection system and methods
US9454659B1 (en) 2014-08-15 2016-09-27 Securisea, Inc. Software vulnerabilities detection system and methods
US9824214B2 (en) 2014-08-15 2017-11-21 Securisea, Inc. High performance software vulnerabilities detection system and methods
US10230742B2 (en) 2015-01-30 2019-03-12 Anomali Incorporated Space and time efficient threat detection
US10110622B2 (en) 2015-02-13 2018-10-23 Microsoft Technology Licensing, Llc Security scanner
JP6466234B2 (ja) * 2015-04-16 2019-02-06 Kddi株式会社 アプリケーション解析装置、アプリケーション解析方法、およびプログラム
US11032306B2 (en) * 2015-12-30 2021-06-08 International Business Machines Corporation System, method and apparatus for fully precise hybrid security verification of mobile applications
ES2965917T3 (es) 2016-05-06 2024-04-17 Sitelock Llc Detección de debilidad de seguridad e infiltración y reparación en contenido de sitio web ofuscado
US11194914B2 (en) 2016-07-04 2021-12-07 Mcafee, Llc Method and apparatus to detect security vulnerabilities in a web application
KR102021383B1 (ko) * 2017-08-21 2019-09-16 주식회사 스패로우 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
US20220329616A1 (en) * 2017-11-27 2022-10-13 Lacework, Inc. Using static analysis for vulnerability detection
US10965708B2 (en) * 2018-06-06 2021-03-30 Whitehat Security, Inc. Systems and methods for machine learning based application security testing
US11188622B2 (en) * 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US11023590B2 (en) 2018-11-28 2021-06-01 International Business Machines Corporation Security testing tool using crowd-sourced data
CN110597724B (zh) * 2019-09-18 2023-07-18 彩讯科技股份有限公司 应用安全测试组件的调用方法、装置、服务器及存储介质
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US12001565B2 (en) 2021-04-14 2024-06-04 International Business Machines Corporation False-positives invalidation and static security scans without scanning based on regular scan history in pull requests

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761917B1 (en) * 2002-11-21 2010-07-20 Vmware, Inc. Method and apparatus for the detection and prevention of intrusions, computer worms, and denial of service attacks
US7051322B2 (en) 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US7210135B2 (en) * 2003-08-26 2007-04-24 Microsoft Corporation Data flow analysis of transactional processes
US7966658B2 (en) 2004-04-08 2011-06-21 The Regents Of The University Of California Detecting public network attacks using signatures and fast content analysis
KR101150653B1 (ko) 2004-06-04 2012-05-29 포티파이 소프트웨어 엘엘씨 보안 소프트웨어 개발, 테스팅 및 모니터링 장치 및 방법
US20060069714A1 (en) 2004-09-08 2006-03-30 Blount Marion L System enhancement using client context information
US8281401B2 (en) 2005-01-25 2012-10-02 Whitehat Security, Inc. System for detecting vulnerabilities in web applications using client-side application interfaces
US7779399B2 (en) 2005-05-16 2010-08-17 Armorize Technologies, Inc. System and method for securing web application code and verifying correctness of software
US7779472B1 (en) * 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US8020001B2 (en) 2006-02-23 2011-09-13 Qualcomm Incorporated Trusted code groups
US9069967B2 (en) 2007-02-16 2015-06-30 Veracode, Inc. Assessment and analysis of software security flaws
EP2145281B1 (de) 2007-04-12 2013-11-20 Core Sdi, Incorporated System, Verfahren und Computerlesbares Medium zum Bereitstellen von Netzwerk-Penetrationstests
WO2009095741A1 (en) 2008-02-01 2009-08-06 The Mathworks, Inc Selective code instrumentation for software verification
FI20080095A0 (fi) * 2008-02-11 2008-02-11 Codenomicon Oy Menetelmä ja järjestelmä testitapausten muodostamiseksi
US9378282B2 (en) * 2008-06-30 2016-06-28 Raytheon Company System and method for dynamic and real-time categorization of webpages
US20100058475A1 (en) * 2008-08-26 2010-03-04 Nec Laboratories America, Inc. Feedback-guided fuzz testing for learning inputs of coma
US8141158B2 (en) 2008-12-31 2012-03-20 International Business Machines Corporation Measuring coverage of application inputs for advanced web application security testing
US20100192222A1 (en) 2009-01-23 2010-07-29 Microsoft Corporation Malware detection using multiple classifiers
US20100235909A1 (en) * 2009-03-13 2010-09-16 Silver Tail Systems System and Method for Detection of a Change in Behavior in the Use of a Website Through Vector Velocity Analysis
JP2010262609A (ja) 2009-04-28 2010-11-18 Fourteenforty Research Institute Inc 効率的なマルウェアの動的解析手法
US8516449B2 (en) 2009-07-14 2013-08-20 International Business Machines Corporation Detecting and localizing security vulnerabilities in client-server application
US8819831B2 (en) * 2009-09-30 2014-08-26 Ca, Inc. Remote procedure call (RPC) services fuzz attacking tool
US8458798B2 (en) 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
CN101814053B (zh) 2010-03-29 2013-03-13 中国人民解放军信息工程大学 一种基于功能模型的二进制代码漏洞发现方法
US20120017274A1 (en) * 2010-07-15 2012-01-19 Mcafee, Inc. Web scanning site map annotation
US20120047581A1 (en) * 2010-08-12 2012-02-23 Anirban Banerjee Event-driven auto-restoration of websites
US9747187B2 (en) 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
KR101060639B1 (ko) * 2010-12-21 2011-08-31 한국인터넷진흥원 자바스크립트 난독화 강도 분석을 통한 악성 의심 웹사이트 탐지 시스템 및 그 탐지방법
JP2014509421A (ja) * 2011-02-01 2014-04-17 エムシーシーアイ コーポレイション Usbホストシステムの拡張usbプロトコルスタックのためのセキュリティ手段
US20120215757A1 (en) 2011-02-22 2012-08-23 International Business Machines Corporation Web crawling using static analysis
US9032528B2 (en) 2011-06-28 2015-05-12 International Business Machines Corporation Black-box testing of web applications with client-side code evaluation
CN102281298A (zh) * 2011-08-10 2011-12-14 深信服网络科技(深圳)有限公司 检测和防御cc攻击的方法及装置
US8683596B2 (en) 2011-10-28 2014-03-25 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities
US8997235B2 (en) 2012-02-07 2015-03-31 Microsoft Technology Licensing, Llc Adaptive fuzzing system for web services

Also Published As

Publication number Publication date
JP5893164B2 (ja) 2016-03-23
GB201408612D0 (en) 2014-06-25
WO2013098677A1 (en) 2013-07-04
US9971896B2 (en) 2018-05-15
US9971897B2 (en) 2018-05-15
GB2510756A (en) 2014-08-13
CN104025109A (zh) 2014-09-03
US20130174260A1 (en) 2013-07-04
US20130174262A1 (en) 2013-07-04
JP2015503789A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE112013000387B4 (de) Dynamisches Abtasten einer Webanwendung durch Verwendung von Webdatenverkehrs- Informationen
DE102012218704A1 (de) Erkennung von schwachstellen für dom-basiertes cross-site-scripting
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112013005799T5 (de) Vorrichtungen und Verfahren zum Testen
US9703690B2 (en) Determining test case efficiency
DE102015002541A1 (de) Verfahren und system zum bereitstellen eines effizienten verwundbarkeitsverwaltungs- und verifikationsdienstes
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE112021006206T5 (de) Lernen aus verteilten Traces für Anomalieerkennung und Ursachenanalyse
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
EP2940620A1 (de) Ableiten eines gerätespezifischen wertes mit hilfe einer unklonbaren funktion
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE112018004401T5 (de) Detektor einer neuronalen antwort
DE102016102945A1 (de) Code-Analyse zum Bereitstellen von Datenschutz in ETL-Systemen
DE102021124264A1 (de) Erzeugung von synthetischen Systemfehlern
AT514215B1 (de) Verfahren zur Feststellung von Abweichungen von einem vorgegebenen Normalzustand
DE112013000751T5 (de) Datenverarbeitung, Datensammlung
DE102019215858A1 (de) Cybersicherheits-penetrations-testplattform
DE112018004284T5 (de) Dynamisches neuzusammenstellen von patch-gruppen unter verwendung von stream-clustering
DE112012005528T5 (de) Crawler-Suche auf der Grundlage eines Szenarios
DE102007054648A1 (de) Fehler-Identifikation in einem rechner-basierten Netzwerk
EP3824612B1 (de) Penetrationstestverfahren, computerprogramm und vorrichtung zur datenverarbeitung
DE112015004557T5 (de) Anforderungsüberwachen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final