DE112012002718B4 - Erkennen von Sicherheitsschwachstellen in Web-Anwendungen - Google Patents

Erkennen von Sicherheitsschwachstellen in Web-Anwendungen Download PDF

Info

Publication number
DE112012002718B4
DE112012002718B4 DE112012002718.3T DE112012002718T DE112012002718B4 DE 112012002718 B4 DE112012002718 B4 DE 112012002718B4 DE 112012002718 T DE112012002718 T DE 112012002718T DE 112012002718 B4 DE112012002718 B4 DE 112012002718B4
Authority
DE
Germany
Prior art keywords
parameter
web application
server
hidden parameter
client
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.)
Active
Application number
DE112012002718.3T
Other languages
English (en)
Other versions
DE112012002718T5 (de
Inventor
Marco Pistoia
Ori Segal
Omer Tripp
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.)
Finjan Blue Wilmington Us LLC
Original Assignee
Finjan Blue Inc
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 Finjan Blue Inc filed Critical Finjan Blue Inc
Publication of DE112012002718T5 publication Critical patent/DE112012002718T5/de
Application granted granted Critical
Publication of DE112012002718B4 publication Critical patent/DE112012002718B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren, das aufweist:Zusammenwirken (200) mit einer Web-Anwendung (102) während ihrer Ausführung, um eine Webseite zu identifizieren, die durch die Web-Anwendung (102) zugänglich gemacht wird, wobei die Web-Anwendung (102) durch einen Computerserver (104) beherbergt wird und auf die durch einen Client-Computer (106) zugegriffen wird;statisches Analysieren (202) der Webseite, um in der Webseite einen verborgenen Parameter zu identifizieren, der durch eine clientseitige Prüfmaßnahme (112) vorgegeben wird und zu der Web-Anwendung (102) gesendet werden soll;Festlegen (204) einer serverseitigen Prüfmaßnahme (114), die auf den verborgenen Parameter angewendet werden soll, im Hinblick auf die Vorgabe, die an dem verborgenen Parameter durch die clientseitige Prüfmaßnahme ausgeführt wird, wobei die serverseitige Prüfmaßnahme (114) eine Prüfung auf eine Korrelation zwischen einem Wert des verborgenen Parameters und einem Wert von wenigstens einem anderen vom Client bereitgestellten Parameter durch die Web-Anwendung (102) aufweist;statisches Analysieren (206) der Web-Anwendung (102), um in der Web-Anwendung (102) eine Stelle zu identifizieren, an der der verborgene Parameter in die Web-Anwendung (102) eingegeben wird;Ermitteln (208), ob der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) vorgegeben wird, bevor der verborgene Parameter bei einer sicherheitssensiblen Operation verwendet wird; undIdentifizieren (210) des verborgenen Parameters als eine Sicherheitsschwachstelle, wenn der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) nicht vorgegeben wird, bevor der Parameter bei der sicherheitssensiblen Operation verwendet wird.

Description

  • HINTERGRUND
  • Auf dem Internet beruhende Computersoftware-Anwendungen oder „Web“-Anwendungen können durch bösartige Angriffe gefährdet sein, wenn sie Benutzereingaben nicht in geeigneter Weise prüfen, bevor diese verarbeitet und bei sicherheitssensiblen Operationen verwendet werden. Eine übliche Praxis besteht darin, dass eine derartige Prüfung ausgeführt wird, indem Benutzereingaben an den Schnittstellen der Web-Anwendung, mit denen Benutzer zusammenwirken, vorgegeben werden. Daher kann zum Beispiel eine auf HTML beruhende Webseite, die einem Benutzer präsentiert wird, Parameter enthalten, die lediglich über Dropdown-Kästchen mit einer begrenzten Menge von im Voraus definierten Werten für eine Auswahl durch den Benutzer auszufüllen sind, und sie kann verborgene Parameter enthalten, die nicht dafür vorgesehen sind, durch den Benutzer direkt modifiziert zu werden, wobei die Parameter anschließend zu der zugrunde liegenden Web-Anwendung weiterzuleiten sind.
  • Die US 7 451 352 B1 betrifft eine Validierung von Web-Controls, die unter Verwendung einer oder mehrerer Deklarationen definiert werden kann, die vom Autor der Webseite in einer ASP+-Datei enthalten sind. Die Deklarationen spezifizieren serverseitige Objekte, die die in der Webseite empfangenen Eingabedaten validieren und im Falle eines Validierungsfehlers eine Fehlerbehandlung bewirken. Validierungsdeklarationsparameter geben die Validierungskriterien an, anhand derer die Eingabedaten validiert werden. Beispiele für Validierungsoperationen stellen reguläre Ausdrücke, Pflichtfelder, Datenvergleich, Bereichsvergleich und benutzerdefinierte Validierung dar. Validierungsparameter können auch entweder die serverseitige Validierung oder die clientseitige Validierung angeben, in Abhängigkeit von den Fähigkeiten des Client-Browsers. In einem server-seitigen Szenario verarbeitet ein server-seitiges Validierungsobjekt die Eingabedaten, die in einer HTTP-Anforderung vom Client empfangen werden. In einem clientseitigen Szenario liefert ein serverseitiges Validierungsobjekt den entsprechenden clientseitigen Code zur Validierung der Eingabedaten ohne Roundtrip zwischen Client und Server.
  • KURZDARSTELLUNG
  • Die Erfindung betrifft ein Verfahren, ein System und ein Computerprogrammprodukt, deren Merkmalen in den entsprechenden Hauptansprüchen angegeben sind. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • Ein beispielhaftes Verfahren zum Erkennen von Sicherheitsschwachstellen in Web-Anwendungen beinhaltet ein Zusammenwirken mit einer Web-Anwendung während ihrer Ausführung, um eine Webseite zu identifizieren, die durch die Web-Anwendung zugänglich gemacht wird; und ein statisches Analysieren der Webseite, um einen Parameter in der Webseite zu identifizieren, der durch eine clientseitige Prüfmaßnahme vorgegeben wird und der zu der Web-Anwendung gesendet werden soll. Das Verfahren beinhaltet des Weiteren ein Ermitteln einer serverseitigen Prüfmaßnahme, die auf den Parameter anzuwenden ist, im Hinblick auf die Vorgabe, die durch die clientseitige Prüfmaßnahme an dem Parameter bewirkt wird; und ein statisches Analysieren der Web-Anwendung, um eine Stelle in der Web-Anwendung zu identifizieren, an der der Parameter in die Web-Anwendung eingegeben wird. Das Verfahren beinhaltet des Weiteren ein Feststellen, ob der Parameter durch die serverseitige Prüfmaßnahme vorgegeben wird, bevor der Parameter in einer sicherheitssensiblen Operation verwendet wird; und ein Identifizieren des Parameters als eine Sicherheitsschwachstelle, wenn der Parameter durch die serverseitige Prüfmaßnahme nicht vorgegeben wird, bevor der Parameter in der sicherheitssensiblen Operation verwendet wird.
  • Figurenliste
  • Die Ausführungsformen können anhand der folgenden genauen Beschreibung und in Verbindung mit den beigefügten Zeichnungen besser verstanden und bewertet werden, in denen:
    • 1 eine vereinfachte konzeptionelle Darstellung eines Systems zum Erkennen von Sicherheitsschwachstellen in Web-Anwendungen darstellt, die eine clientseitige Prüfung verwenden, wobei das System gemäß einer Ausführungsform der Erfindung aufgebaut und funktionsfähig ist;
    • 2 eine vereinfachte Ablaufplandarstellung eines beispielhaften Verfahrens des Betriebs des Systems von 1 darstellt, das gemäß einer Ausführungsform der Erfindung funktionsfähig ist; und
    • 3 eine vereinfachte Blockschaltbild-Darstellung einer beispielhaften Hardware-Umsetzung eine Datenverarbeitungssystems darstellt, das gemäß einer Ausführungsform der Erfindung aufgebaut und funktionsfähig ist.
  • GENAUE BESCHREIBUNG
  • Die Erfindung wird im Folgenden im Kontext einer oder mehrerer Ausführungsformen beschrieben, wobei die Beschreibung die Erfindung als Ganzes veranschaulichen und nicht in der Weise ausgelegt werden soll, dass sie die Erfindung auf die dargestellten Ausführungsformen beschränkt. Es ist klar, dass für einen Fachmann zahlreiche Modifikationen vorstellbar sind, die trotzdem im wahren Erfindungsgedanken und Umfang der Erfindung liegen, selbst wenn sie an dieser Stelle nicht speziell gezeigt werden.
  • Wie einem Fachmann klar ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien ausgeführt wird, die computerlesbaren Programmcode aufweisen, der darin ausgeführt wird.
  • Jede Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z.B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder - einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Datenspeichereinheit, eine magnetische Datenspeichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem computerlesbaren Programmcode, der darin z.B. im Basisband oder als Teil einer Trägerwelle verkörpert wird, enthalten. Ein derartiges verbreitetes Signal kann jede von einer Vielfalt von Formen annehmen, darunter elektromagnetische, optische Formen oder jede geeignete Kombination hiervon, ohne jedoch auf diese beschränkt zu sein. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung übertragen, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien oder jede geeignete Kombination aus dem Vorhergehenden, ohne auf diese beschränkt zu sein.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können an einen Prozessor eines Universalcomputers, eines Spezialcomputers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, darunter Befehle, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen durch einen Computer implementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitzustellen.
  • Im Folgenden erfolgt eine Bezugnahme auf 1, bei der es sich um eine vereinfachte konzeptionelle Darstellung eines Systems zu Erkennen von Sicherheitsschwachstellen in Web-Anwendungen handelt, die eine clientseitige Prüfung verwenden, wobei das System gemäß einer Ausführungsform aufgebaut und funktionsfähig ist. Bei dem System von 1 ist in einer Ausführungsform ein Blackbox-Tester 100 wie etwa IBM Rational AppScan™, die von der International Business Machines Corporation, Armonk NY, handelsüblich verfügbar ist, so eingerichtet, dass er mit einer Web-Anwendung 102 während seiner Ausführung gemäß herkömmlichen Blackbox-Prüftechniken zusammenwirkt, um statisch oder dynamisch erzeugte Webseiten zu identifizieren, die durch die Web-Anwendung 102 zugänglich gemacht werden. Bei der Web-Anwendung 102 kann es sich um jede computergestützte Softwareanwendung handeln, die durch einen Computerserver 104 beherbergt wird und auf die durch einen oder mehrere Client-Computer 106 über ein Computernetzwerk 108 wie etwa das Internet zugegriffen wird.
  • Bei einer Ausführungsform ist ein Vorgabemanager 110 so eingerichtet, dass er die durch den Blackbox-Tester 100 identifizierten Webseiten statisch analysiert, um in den Webseiten Parameter zu identifizieren, die durch eine oder mehrere im Voraus definierte clientseitige Prüfmaßnahmen 112 vorgegeben werden und an die Web-Anwendung 102 im Server 104 gesendet werden sollen. Zu derartigen clientseitigen Prüfmaßnahmen 112 können z.B. Maßnahmen gehören:
    • - bei denen der Parameter ein verborgener Parameter ist;
    • - bei denen es sich bei dem Parameter um einen Parameter handelt, dem ein Wert durch Auswählen aus einer Liste von im Voraus definierten Werten wie z.B. über ein Dropdown-Kästchen zugewiesen wird; und
    • - bei denen es sich bei dem Parameter um einen Parameter handelt, für den eine clientseitige Prüfung ausgeführt wird, um zu ermitteln, ob sein Wert einem regulären Ausdruck entspricht.
  • Bei einer Ausführungsform kann der Vorgabemanager 110 eine oder mehrere serverseitige Prüfmaßnahmen 114 festlegen, die im Hinblick auf die Vorgaben, die durch clientseitige Prüfmaßnahme 112 an dem Parameter bewirkt werden, auf einen gegebenen Parameter angewendet werden sollten. Zu derartigen serverseitigen Prüfmaßnahmen 114 können z.B. Maßnahmen gehören:
    • - bei denen der Parameter ein verborgener Parameter ist, wobei diese Web-Anwendung 104 nach einer Korrelation zwischen seinem Wert und den Werten anderer vom Client bereitgestellter Parameter prüft. Wenn es sich z.B. bei dem möglichen Parameter bei einer Webseite um ein Boole'sches vorborgenes Feld mit der Bezeichnung „isAdmin“ handelt, das durch JavaScript™-Code in der Webseite eingestellt wird, wenn der Benutzer einen Benutzernamen und ein Passwort eingibt, besteht die clientseitige Vorgabe darin, dass „isAdmin“ mit dem eingegebenen Benutzernamen und dem eingegebenen Passwort korreliert wird;
    • - bei denen es sich bei dem Parameter um einen Parameter handelt, dem ein Wert durch Auswählen aus einer Liste von im Voraus definierten Werten wie z.B. über ein Dropdown-Kästchen zugewiesen wird, wobei diese Web-Anwendung 104 prüft, ob der Wert zu einer festen Menge von Werten oder zu einem im Voraus definierten Wertebereich gehört; und
    • - bei denen es sich bei dem Parameter um einen Parameter handelt, für den eine clientseitige Prüfung ausgeführt wird, um zu ermitteln, ob sein Wert einem regulären Ausdruck entspricht, wobei diese Web-Anwendung 104 dieselbe Prüfung ausführt.
  • Bei einer Ausführungsform kann der Vorgabemanager 110 identifizierte Parameter gemeinsam mit ihren anwendbaren serverseitigen Prüfmaßnahmen 114 in einem Datenspeicher von Parametervorgaben 116 speichern.
  • Bei einer Ausführungsform kann ein statischer Analysator 118 so eingerichtet sein, dass er eine Web-Anwendung 104 statisch analysiert, z.B. durch Bilden eines Modells des Steuerungsablaufs und eines Datenfluss-Modells der Web-Anwendung 104, um Stellen in der Web-Anwendung 104 zu identifizieren, an denen Parameter der Webseite in die Web-Anwendung 104 eingegeben werden. Für jeden Parameter, der auf diese Weise identifiziert wird, fragt der statische Analysator 118 den Vorgabemanager 110 ab oder greift alternativ auf Parametervorgaben 116 direkt zu, um zu ermitteln, welche Vorgaben auf den Parameter angewendet werden sollten und ob diese Vorgaben durch die Web-Anwendung 104 auf den Parameter angewendet werden, bevor der Parameter in einer sicherheitssensiblen Operation verwendet wird. Der statische Analysator 118 identifiziert jeden Parameter als eine Sicherheitsschwachstelle, der in der Web-Anwendung 104 nicht durch anwendbare serverseitige Prüfmaßnahmen 114 vorgegeben wird, bevor der Parameter in einer sicherheitssensiblen Operation verwendet wird. Der statische Analysator 118 liefert einen Bericht über die identifizierten Sicherheitsschwachstellen der Web-Anwendung 104 z.B. an eine Bedienperson des Blackbox-Testers 100 oder des statischen Analysators 118.
  • Nunmehr wird auf 2 Bezug genommen, bei der es sich um eine vereinfachte Ablaufplandarstellung eines beispielhaften Verfahrens des Betriebs des Systems von 1 handelt, das gemäß einer Ausführungsform funktionsfähig ist. Bei dem Verfahren von 2 kann eine Blackbox-Prüfung einer Web-Anwendung während ihrer Ausführung ausgeführt werden, um alle statisch oder dynamisch erzeugten Webseiten zu identifizieren, die durch die Web-Anwendung zugänglich gemacht werden (Block 200). Das System analysiert statisch identifizierte Webseiten, um in den Webseiten Parameter zu identifizieren, die durch eine oder mehrere im Voraus definierte clientseitige Prüfmaßnahmen vorgegeben werden und die zu der Web-Anwendung gesendet werden sollen (Block 202). Das System legt eine oder mehrere serverseitige Prüfmaßnahmen fest, die auf einen gegebenen Parameter angewendet werden sollten, im Hinblick auf die Vorgaben, die durch clientseitige Prüfmaßnahmen an dem Parameter bewirkt werden (Block 204). Das System führt eine statische Analyse an der Web-Anwendung aus, um in der Web-Anwendung Stellen zu identifizieren, an denen Webseiten-Parameter in die Web-Anwendung eingegeben werden (Block 206). Wenn ein Parameter in der Web-Anwendung nicht durch anwendbare serverseitige Prüfmaßnahmen vorgegeben wird, bevor der Parameter in einer sicherheitssensiblen Operation verwendet wird (Block 208), identifiziert und meldet das System den Parameter als eine Sicherheitsschwachstelle (Block 210).
  • Das System von 1 und das Verfahren von 2 können im Kontext des folgenden Beispiels demonstriert werden, bei dem der Blackbox-Tester 100 mit der Web-Anwendung 104 während ihrer Ausführung zusammenwirkt und bei einer Webseite präsentiert wird, die ein Login-Formular aufweist. Bei einer Ausführungsform analysiert der Vorgabemanager 110 die Webseite, stellt fest, dass das Login-Formular ein verborgenes Merkerbit aufweist, das angibt, ob es sich bei dem Benutzer um einen Administrator handelt, und legt fest, dass das verborgene Merkerbit mit Werten korreliert werden sollte, die durch andere Parameter gehalten werden, die vom Benutzer stammen. Bei einer Ausführungsform findet der statische Analysator 118 die relevante Gruppe von Aufrufen in der Web-Anwendung 104 in der Form < y > = < x > . getParameter ( ' admin' ) ,
    Figure DE112012002718B4_0001
    wobei es sich bei <x> und <y> um Platzhalter für variable Kennungen handelt, deren statische Typen HttpServletRequest bzw. Boolean lauten. Der statische Analysator 118 prüft anschließend, ob der Wert von <y> verwendet wird, um den Ablauf der Ausführung direkt oder indirekt zu steuern, ohne dass die Web-Anwendung 104 zuerst prüft, ob dieser Wert mit Werten korreliert ist, die durch andere Parameter gehalten werden, die vom Benutzer stammen. Der statische Analysator 118 meldet das verborgene Merkerbit als eine Sicherheitsschwachstelle, falls sicherheitssensible Operationen, die von der Festlegung „getParameter“ erreichbar sind, lediglich durch einen Test an <y> dominiert werden, wenn festgestellt wird, dass serverseitige Prüfmaßnahmen das verborgene Merkerbit nicht adäquat vorgeben, da eine einfache Manipulation des verborgenen Merkerbits vor dem Senden zur Web-Anwendung 104 ausreichend sein kann, um einen gewöhnlichen Benutzer zu einem Administrator zu machen, wodurch dem gewöhnlichen Benutzer möglicherweise die vollständige Kontrolle über die Anwendung gegeben wird.
  • In 3 veranschaulicht ein Blockschaltbild 300 eine beispielhafte Hardware-Umsetzung eines Datenverarbeitungssystems, mit dem eine oder mehrere Komponenten/Methodiken (z.B. Komponenten/Methodiken, die im Kontext der 1 bis 2 beschrieben wurden) gemäß einer Ausführungsform umgesetzt werden können.
  • Wie gezeigt können die Techniken zum Steuern des Zugriffs auf wenigstens eine Ressource dementsprechend mit einem Prozessor 310, einem Speicher 312, E/A-Einheiten 314 und einer Netzwerkschnittstelle 316 umgesetzt werden, die über einen Computerbus 318 oder eine alternative Verbindungsanordnung verbunden sind.
  • Es sollte klar sein, dass der hier verwendete Ausdruck „Prozessor“ jede Verarbeitungseinheit einschließen soll wie z.B. eine Einheit, die eine CPU (Zentraleinheit) und/oder andere Verarbeitungsschaltungen enthält. Es sollte außerdem klar sein, dass der Ausdruck „Prozessor“ mehr als eine Verarbeitungseinheit bezeichnen kann und zahlreiche Elemente, die einer Verarbeitungseinheit zugehörig sind, durch andere Verarbeitungseinheiten gemeinsam genutzt werden können.
  • Der hier verwendete Ausdruck „Speicher“ soll jeden Speicher einschließen, der einem Prozessor oder einer CPU zugehörig ist, wie z.B. RAM, ROM, eine fest eingebaute Speichereinheit (z.B. Festplattenlaufwerk), eine Wechsel-Speichereinheit (z.B. Diskette), ein Flash-Speicher usw. Derartige Speicher können als computerlesbares Speichermedium betrachtet werden.
  • Außerdem sollen die hier verwendeten Ausdrücke „Eingabe/Ausgabe-Einheiten“ oder „E/A-Einheiten“ z.B. eine oder mehrere Eingabe-Einheiten (z.B. Tastatur, Maus, Scanner usw.) zum Eingeben von Daten in die Verarbeitungseinheit und/oder eine oder mehrere Ausgabe-Einheiten (z.B. Lautsprecher, Anzeigen, Drucker usw.) zum Präsentieren von Ergebnissen einschließen, die der Verarbeitungseinheit zugehörig sind .
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder Blockschaltbildern ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Es sollte außerdem angemerkt werden, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockschaltbildern und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockschaltbildern und/oder AblaufplanDarstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Es ist klar, dass alle hier beschriebenen Elemente als ein Computerprogrammprodukt umgesetzt werden können, das in einem computerlesbaren Medium verkörpert ist, wie z.B. in der Form von Computerprogrammbefehlen, die auf magnetischen oder optischen Speichermedien gespeichert sind oder in Computer-Hardware eingebettet sind und durch einen Computer ausgeführt werden können oder auf andere Weise für einen Computer (nicht gezeigt) erreichbar sind.
  • Obwohl die Verfahren und Vorrichtungen hier möglicherweise nicht unter Bezugnahme auf spezielle Computer-Hardware oder Software beschrieben wurden, ist klar, dass die hier beschriebenen Verfahren und Vorrichtungen in einfacher Weise unter Verwendung von herkömmlichen Techniken in Computer-Hardware oder Software umgesetzt werden können.
  • Zwar wurde die Erfindung unter Bezugnahme auf eine oder mehrere spezielle Ausführungsformen beschrieben, jedoch soll die Beschreibung die Erfindung als Ganzes veranschaulichen und sollte nicht als Einschränkung der Erfindung auf die gezeigten Ausführungsformen ausgelegt werden. Es ist klar, dass für einen Fachmann zahlreiche Modifikationen vorstellbar sind, die trotzdem, obwohl hier nicht speziell gezeigt, im wahren Erfindungsgedanken und Umfang der Erfindung liegen.

Claims (10)

  1. Verfahren, das aufweist: Zusammenwirken (200) mit einer Web-Anwendung (102) während ihrer Ausführung, um eine Webseite zu identifizieren, die durch die Web-Anwendung (102) zugänglich gemacht wird, wobei die Web-Anwendung (102) durch einen Computerserver (104) beherbergt wird und auf die durch einen Client-Computer (106) zugegriffen wird; statisches Analysieren (202) der Webseite, um in der Webseite einen verborgenen Parameter zu identifizieren, der durch eine clientseitige Prüfmaßnahme (112) vorgegeben wird und zu der Web-Anwendung (102) gesendet werden soll; Festlegen (204) einer serverseitigen Prüfmaßnahme (114), die auf den verborgenen Parameter angewendet werden soll, im Hinblick auf die Vorgabe, die an dem verborgenen Parameter durch die clientseitige Prüfmaßnahme ausgeführt wird, wobei die serverseitige Prüfmaßnahme (114) eine Prüfung auf eine Korrelation zwischen einem Wert des verborgenen Parameters und einem Wert von wenigstens einem anderen vom Client bereitgestellten Parameter durch die Web-Anwendung (102) aufweist; statisches Analysieren (206) der Web-Anwendung (102), um in der Web-Anwendung (102) eine Stelle zu identifizieren, an der der verborgene Parameter in die Web-Anwendung (102) eingegeben wird; Ermitteln (208), ob der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) vorgegeben wird, bevor der verborgene Parameter bei einer sicherheitssensiblen Operation verwendet wird; und Identifizieren (210) des verborgenen Parameters als eine Sicherheitsschwachstelle, wenn der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) nicht vorgegeben wird, bevor der Parameter bei der sicherheitssensiblen Operation verwendet wird.
  2. Verfahren nach Anspruch 1, wobei der verborgene Parameter nicht dafür vorgesehen ist, durch den Benutzer direkt modifiziert zu werden; und/oder wobei es sich bei dem wenigstens einen anderen vom Client bereitgestellte Parameter um wenigstens eine Eingabe vom Benutzer handelt.
  3. Verfahren nach Anspruch 1 oder 2, das ferner ein Bilden eines Steuerablauf-Modells und eines Datenflussmodells der Web-Anwendung (102) aufweist.
  4. System, das aufweist: einen Blackbox-Tester (100), der so eingerichtet ist, dass er mit einer Web-Anwendung (102) während ihrer Ausführung zusammenwirkt, um eine Webseite zu identifizieren, die durch die Web-Anwendung (102) zugänglich gemacht wird, wobei die Web-Anwendung (102) durch einen Computerserver (104) beherbergt wird und auf die durch einen Client-Computer (106) zugegriffen wird; einen Vorgabemanager (110), der so eingerichtet ist, dass er: die Webseite statisch analysiert, um einen verborgenen Parameter in der Webseite zu identifizieren, der durch eine clientseitige Prüfmaßnahme (112) vorgegeben wird und der zu der Web-Anwendung (102) gesendet werden soll; und eine serverseitige Prüfmaßnahme (114) festlegt, die auf den verborgenen Parameter anzuwenden ist, im Hinblick auf die Vorgabe, die an dem verborgenen Parameter durch die clientseitige Prüfmaßnahme ausgeführt wird, wobei die serverseitige Prüfmaßnahme (114) eine Prüfung auf eine Korrelation zwischen einem Wert des verborgenen Parameters und einem Wert von wenigstens einem anderen vom Client bereitgestellten Parameter durch die Web-Anwendung (102) aufweist; und einen statischen Analysator (118), der so eingerichtet ist, dass er: die Web-Anwendung (102) statisch analysiert, um eine Stelle in der Web-Anwendung (102) zu identifizieren, an der der verborgene Parameter in die Web-Anwendung (102) eingegeben wird; ermittelt, ob der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) vorgegeben wird, bevor der verborgene Parameter in einer sicherheitssensiblen Operation verwendet wird; und den verborgenen Parameter als eine Sicherheitsschwachstelle identifiziert, wenn der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) nicht vorgegeben wird, bevor der Parameter in der sicherheitssensiblen Operation verwendet wird.
  5. System nach Anspruch 4, wobei der verborgene Parameter nicht dafür vorgesehen ist, durch den Benutzer direkt modifiziert zu werden; und/oder wobei es sich bei dem wenigstens einen anderen vom Client bereitgestellte Parameter um wenigstens eine Eingabe vom Benutzer handelt.
  6. System nach Anspruch 4 oder 5, wobei der statische Analysator (118) so eingerichtet ist, dass er den Vorgabemanager (110) nach der serverseitigen Validierungsmaßnahme abfragt, die auf den verborgenen Parameter angewendet werden soll.
  7. System nach einem der Ansprüche 4 bis 6, wobei der statische Analysator ferner so eingerichtet ist, dass er die Web-Anwendung (102) statisch analysiert, indem ein Steuerungsablaufmodell und ein Datenflussmodell der Web-Anwendung (102) gebildet werden.
  8. Computerprogrammprodukt, das aufweist: ein computerlesbares Speichermedium; und computerlesbaren Programmcode, der in dem computerlesbaren Speichermedium verkörpert ist, wobei der computerlesbare Programmcode so eingerichtet ist, dass er: mit einer Web-Anwendung (102) während ihrer Ausführung zusammenwirkt, um eine Webseite zu identifizieren, die durch die Web-Anwendung (102) zugänglich gemacht wird, wobei die Web-Anwendung (102) durch einen Computerserver (104) beherbergt wird und auf die durch einen Client-Computer (106) zugegriffen wird; die Webseite statisch analysiert, um einen verborgenen Parameter in der Webseite zu identifizieren, der durch eine clientseitige Prüfmaßnahme vorgegeben wird und der an die Web-Anwendung (102) gesendet werden soll; eine serverseitige Prüfmaßnahme (114) festlegt, die auf den verborgenen Parameter angewendet werden soll, im Hinblick auf die Vorgabe, die durch die clientseitige Prüfmaßnahme an dem verborgenen Parameter ausgeführt wird, wobei die serverseitige Prüfmaßnahme (114) eine Prüfung auf eine Korrelation zwischen einem Wert des verborgenen Parameters und einem Wert von wenigstens einem anderen vom Client bereitgestellten Parameter durch die Web-Anwendung (102) aufweist; die Web-Anwendung (102) statisch analysiert, um eine Stelle in der Web-Anwendung (102) zu identifizieren, an der der verborgene Parameter in die Web-Anwendung (102) eingegeben wird; ermittelt, ob der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) vorgegeben wird, bevor der verborgene Parameter in einer sicherheitsempfindlichen Operation verwendet wird; und den verborgenen Parameter als eine Sicherheitsschwachstelle identifiziert, wenn der verborgene Parameter durch die serverseitige Prüfmaßnahme (114) nicht vorgegeben wird, bevor der Parameter in der sicherheitssensiblen Operation verwendet wird.
  9. Computerprogrammprodukt nach Anspruch 8, wobei der verborgene Parameter nicht dafür vorgesehen ist, durch den Benutzer direkt modifiziert zu werden; und/oder wobei es sich bei dem wenigstens einen anderen vom Client bereitgestellte Parameter um wenigstens eine Eingabe vom Benutzer handelt.
  10. Computerprogrammprodukt nach Anspruch 8 oder 9, wobei der computerlesbare Programmcode ferner so eingerichtet ist, dass er ein Steuerungsablaufmodell und ein Datenflussmodell der Web-Anwendung (102) bildet.
DE112012002718.3T 2011-06-30 2012-06-26 Erkennen von Sicherheitsschwachstellen in Web-Anwendungen Active DE112012002718B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/174,628 2011-06-30
US13/174,628 US8695098B2 (en) 2011-06-30 2011-06-30 Detecting security vulnerabilities in web applications
PCT/CA2012/050429 WO2013000083A1 (en) 2011-06-30 2012-06-26 Detecting security vulnerabilities in web applications

Publications (2)

Publication Number Publication Date
DE112012002718T5 DE112012002718T5 (de) 2014-04-10
DE112012002718B4 true DE112012002718B4 (de) 2021-04-01

Family

ID=47392134

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002718.3T Active DE112012002718B4 (de) 2011-06-30 2012-06-26 Erkennen von Sicherheitsschwachstellen in Web-Anwendungen

Country Status (5)

Country Link
US (2) US8695098B2 (de)
CN (1) CN103563293A (de)
DE (1) DE112012002718B4 (de)
GB (1) GB2505623B (de)
WO (1) WO2013000083A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008335A (zh) * 2013-02-27 2014-08-27 广东电网公司信息中心 一种黑盒测试的方法
GB2511329A (en) * 2013-02-28 2014-09-03 Ibm Web service black box testing
WO2014171950A1 (en) * 2013-04-19 2014-10-23 Hewlett-Packard Development Company, L.P. Unused parameters of application under test
US9390269B2 (en) 2013-09-30 2016-07-12 Globalfoundries Inc. Security testing using semantic modeling
US9230105B1 (en) * 2013-09-30 2016-01-05 Symantec Corporation Detecting malicious tampering of web forms
US9231938B2 (en) * 2014-01-15 2016-01-05 International Business Machines Corporation Determination and classification of defense measures in web applications
WO2015116138A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company Application test using attack suggestions
US20150371033A1 (en) * 2014-06-24 2015-12-24 Microsoft Corporation String and Password Generation from Regular Expressions
US10044581B1 (en) 2015-09-29 2018-08-07 Amazon Technologies, Inc. Network traffic tracking using encapsulation protocol
US10032022B1 (en) * 2014-12-31 2018-07-24 Jpmorgan Chase Bank, N.A. System and method for self-protecting code
US10248532B1 (en) 2015-09-15 2019-04-02 Amazon Technologies, Inc. Sensitive data usage detection using static analysis
US10033602B1 (en) 2015-09-29 2018-07-24 Amazon Technologies, Inc. Network health management using metrics from encapsulation protocol endpoints
US10264008B2 (en) 2015-10-08 2019-04-16 Bank Of America Corporation Vulnerability exposing application characteristic variation identification engine
US9930024B2 (en) 2015-11-02 2018-03-27 International Business Machines Corporation Detecting social login security flaws using database query features
WO2017160309A1 (en) 2016-03-18 2017-09-21 Entit Software Llc Assisting a scanning session
US10917324B2 (en) 2016-09-28 2021-02-09 Amazon Technologies, Inc. Network health data aggregation service
US10911263B2 (en) 2016-09-28 2021-02-02 Amazon Technologies, Inc. Programmatic interfaces for network health information
US10862777B2 (en) 2016-09-28 2020-12-08 Amazon Technologies, Inc. Visualization of network health information
US10243820B2 (en) 2016-09-28 2019-03-26 Amazon Technologies, Inc. Filtering network health information based on customer impact
US11363059B2 (en) * 2019-12-13 2022-06-14 Microsoft Technology Licensing, Llc Detection of brute force attacks
US11169869B1 (en) 2020-07-08 2021-11-09 International Business Machines Corporation System kernel error identification and reporting

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451352B1 (en) * 2001-06-12 2008-11-11 Microsoft Corporation Web controls validation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975296B2 (en) 2002-02-07 2011-07-05 Oracle International Corporation Automated security threat testing of web pages
US7051322B2 (en) 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US8266700B2 (en) 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
CN101159732A (zh) 2007-08-14 2008-04-09 电子科技大学 基于数据流分析的恶意攻击检测方法
US8141158B2 (en) 2008-12-31 2012-03-20 International Business Machines Corporation Measuring coverage of application inputs for advanced web application security testing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451352B1 (en) * 2001-06-12 2008-11-11 Microsoft Corporation Web controls validation

Also Published As

Publication number Publication date
WO2013000083A1 (en) 2013-01-03
GB2505623B (en) 2014-06-11
GB201400029D0 (en) 2014-02-19
DE112012002718T5 (de) 2014-04-10
CN103563293A (zh) 2014-02-05
US20130007886A1 (en) 2013-01-03
US8984642B2 (en) 2015-03-17
US8695098B2 (en) 2014-04-08
GB2505623A (en) 2014-03-05
US20130179979A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE102012218704A1 (de) Erkennung von schwachstellen für dom-basiertes cross-site-scripting
US9264443B2 (en) Browser based method of assessing web application vulnerability
DE202014010888U1 (de) Systeme zur Überprüfung eines Nutzers auf Basis von Reputationsinformationen
DE102012216597A1 (de) Wirksames Testen einer Berechtigungslogik von WEB-Komponenten, die eine Berechtigung auf der Grundlage von Ansprüchen einsetzen
DE112013000485T5 (de) Automatische Synthese von Einheitentests für Sicherheitstests
DE102012209006A1 (de) Testen von Web-Anwendungen auf Sicherheitslücken beim Heraufladen von Dateien
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE102013210891A1 (de) Dynamisches Substituieren von Übersetzungen
DE112010004605T5 (de) Verfahren und Vorrichtung zur Sicherheitsprüfung
DE112016005266T5 (de) Schnelle Musterentdeckung für Protokollanalyse
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE112017003884T5 (de) Benutzerschnittstelle für Protokollabfragen
DE102021130957A1 (de) Empfehlungen zur stabilität von software-aktualisierungen
DE112012004499T5 (de) Testen von Transaktionsanwendungen
DE112014002960T5 (de) Ableitung verallgemeinerter Testfälle
DE102019209349A1 (de) Untersuchung von Web-Bedrohungen mithilfe von fortschrittlichem Web-Crawling
DE102018010163A1 (de) Automatisches Generieren sinnvoller Nutzersegmente
DE112018004284T5 (de) Dynamisches neuzusammenstellen von patch-gruppen unter verwendung von stream-clustering
DE102014116744A1 (de) Management von Informationstechnologieressourcen
DE112013000751T5 (de) Datenverarbeitung, Datensammlung
DE112012005528T5 (de) Crawler-Suche auf der Grundlage eines Szenarios
DE112019001493T5 (de) Ermitteln der abfrageerkennungsresilienz in virtuellen agentensystemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R081 Change of applicant/patentee

Owner name: FINJAN BLUE, INC., EAST PALO ALTO, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US

Owner name: FINJAN BLUE LLC, WILMINGTON, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US

Owner name: FINJAN BLUE, INC., EAST PALO ALTO, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: FINJAN BLUE LLC, WILMINGTON, US

Free format text: FORMER OWNER: FINJAN BLUE, INC., EAST PALO ALTO, CALIF., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R020 Patent grant now final