DE102012218704A1 - Erkennung von schwachstellen für dom-basiertes cross-site-scripting - Google Patents

Erkennung von schwachstellen für dom-basiertes cross-site-scripting Download PDF

Info

Publication number
DE102012218704A1
DE102012218704A1 DE102012218704A DE102012218704A DE102012218704A1 DE 102012218704 A1 DE102012218704 A1 DE 102012218704A1 DE 102012218704 A DE102012218704 A DE 102012218704A DE 102012218704 A DE102012218704 A DE 102012218704A DE 102012218704 A1 DE102012218704 A1 DE 102012218704A1
Authority
DE
Germany
Prior art keywords
dom
web
payload
abstraction
based application
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.)
Pending
Application number
DE102012218704A
Other languages
English (en)
Inventor
Yair Amit
Yinnon Haviv
Daniel Kalman
Omer Tripp
Omri Weisman
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 DE102012218704A1 publication Critical patent/DE102012218704A1/de
Pending 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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

Abstract

Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen. Wenigstens eine Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung enthält, kann zu einer web-basierten Anwendung übertragen werden. Eine HTML-Antwort und ein zugehöriges Dokumentenobjektmodell-(DOM-)Objekt kann von der web-basierten Anwendung empfangen werden. Inhalt, der den Nutzdaten entspricht, kann in dem DOM-Objekt über die eindeutige Kennung identifiziert werden. Ein Abschnitt des DOM-Objekts, der die Nutzdaten enthält, kann als nicht vertrauenswürdig identifiziert werden.

Description

  • HINTERGRUND
  • Eine oder mehrere Ausführungsformen, die in dieser Spezifikation offenbart sind, beziehen sich auf die Erkennung von Schwachstellen für Dokumentenobjektmodell-(DOM) basiertes Cross-Site-Scripting.
  • Mit dem Aufkommen von Internet-gestützten Technologien werden Web-Anwendungen immer anspruchsvoller. Wenn diese Technologien anspruchsvoller werden, werden sie außerdem anfällig für Angriffe durch skrupellose Benutzer, die auf die web-gestützten Anwendungen (im Folgenden ”Web-Anwendungen”) zugreifen. Diese Angriffe sind offenkundig schwer zu finden, insbesondere wenn ein Benutzer schädliche Nutzdaten an einen Server einer Web-Anwendung z. B. in einer Benutzer-Anforderung bereitstellt. Die Web-Anwendung kann besonders anfällig sein, wenn die Web-Anwendung für Antworten eine Maske wie etwa eine HTML-Antwortmaske verwendet, die unter Verwendung von dynamischen Werten wie etwa Anforderungsparametern, die durch einen Benutzer bereitgestellt werden, instanziiert wird.
  • Zur Erläuterung kann eine Benutzeranforderung während eines Cross-Site-Scripting-Angriffs (XSS-Angriffs) schädliche Nutzdaten enthalten, die HTML enthält, die ein JavaScriptTM-Code der Webseite nicht erwartet und diese HTML kann zur Laufzeit an das DOM der Web-Anwendung zurückgegeben werden. Für nachfolgende Clients kann die in dem DOM zurückgegebene HTML von anderen Teilen des DOM nicht unterschieden werden. Diese HTML kann die Weise verändern, wie die Web-Anwendung nachfolgende Benutzeranforderungen handhabt, und das kann die Weise verändern, wie die Web-Anwendung auf die Benutzeranforderungen antwortet. Schädliche Nutzdaten können z. B. bewirken, dass eine unerwünschte Antwort in einer HTML-DOM-Antwort, die von der Web-Anwendung an eine client-seitige Anwendung wie z. B. einen Web-Browser bereitgestellt wird, wiedergegeben wird.
  • KURZE ZUSAMMENFASSUNG
  • Eine oder mehrere Ausführungsformen, die in dieser Spezifikation offenbart werden, beziehen sich auf Schwachstellen für DOM-basiertes Cross-Site-Scripting.
  • Eine Ausführungsform kann ein Verfahren zum Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen enthalten. Das Verfahren kann das Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung enthalten. Das Verfahren kann außerdem das Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung enthalten. Über einen Prozessor kann Inhalt, der den Nutzdaten entspricht, in dem DOM-Objekt über die eindeutige Kennung identifiziert werden. Des Weiteren kann ein Abschnitt des DOM-Objekts, der die Nutzdaten enthält, als nicht vertrauenswürdig identifiziert werden.
  • Eine weitere Ausführungsform kann ein Verfahren zum Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen enthalten. Das Verfahren kann das Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung enthalten. Das Verfahren kann außerdem das Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung enthalten. Über einen Prozessor kann Inhalt, der den Nutzdaten entspricht, in dem DOM-Objekt über die eindeutige Kennung identifiziert werden. Eine DOM-Abstraktion kann aus dem DOM-Objekt erzeugt werden. Die DOM-Abstraktion kann einen Abschnitt des DOM-Objekts, der Inhalt enthält, der den Nutzdaten entspricht, einschließen und Abschnitte des DOM-Objekts, die keinen Inhalt enthalten, der den Nutzdaten entspricht, können von der DOM-Abstraktion ausgeschlossen werden. Die HTML-Antwort kann unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts wiedergegeben werden. Wenn die HTML-Antwort wiedergegeben wird, kann eine statische Sicherheitsanalyse an der HTML-Antwort ausgeführt werden, um Scriptcode, der HTML zugehörig ist, zu überwachen, der ausgeführt wird um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den Inhalt, der den Nutzdaten entspricht, abruft. Wenn der Zugriff auf die DOM-Abstraktion den Inhalt, der den Nutzdaten entspricht, abruft, kann ein Flag, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist, erzeugt werden.
  • Eine weitere Ausführungsform kann ein Computerprogrammprodukt zum Prüfen einer web-basierte Anwendung auf Sicherheitsschwachstellen enthalten. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der darauf verkörpert ist, enthalten, der zum Ausführen der verschiedenen Operationen und/oder Funktionen, die in dieser Spezifikation offenbart sind, konfiguriert ist.
  • Eine weitere Ausführungsform kann ein System enthalten, das ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der darauf verkörpert ist, enthält, der zum Ausführen der verschiedenen Operationen und/oder Funktionen, die in dieser Spezifikation beschrieben sind, konfiguriert ist.
  • In einem weiteren Aspekt bezieht sich die Erfindung auf ein System, aufweisend: ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der darauf verkörpert ist; und einen Prozessor, der mit dem computerlesbaren Speichermedium verbunden ist. In Reaktion auf die Ausführung des computerlesbaren Programmcodes ist der Prozessor zum Ausführen von ausführbaren Operationen konfiguriert, die aufweisen: Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung; Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierte Anwendung; mittels eines Prozessors Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung; und Identifizieren eines Abschnitts des DOM-Objekts, der die Nutzdaten aufweist, als nicht vertrauenswürdig.
  • Gemäß Ausführungsformen weisen ausführbare Operationen ferner auf: Erzeugen einer DOM-Abstraktion aus dem DOM-Objekt, wobei die DOM-Abstraktion einen Abschnitt des DOM-Objekts, der den den Nutzdaten entsprechenden Inhalt enthält, aufweist; und Ausgeben der HTML-Antwort unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts.
  • Gemäß Ausführungsformen weist das Erzeugen der DOM-Abstraktion aus dem DOM-Objekt auf: Ausschließen von Abschnitten des DOM-Objekts aus der DOM-Abstraktion, die nicht den den Nutzdaten entsprechenden Inhalt aufweisen.
  • Gemäß Ausführungsformen weisen die ausführbaren Schritte ferner auf: Ausgeben der HTML-Antwort, Ausführen einer statischen Sicherheitsanalyse an der HTML-Antwort, um HTML zugehörigen Scriptcode zu überwachen, der ausgeführt wird, um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft; und, wenn der Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft, Erzeugen eines Flag, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist.
  • Gemäß Ausführungsformen weist das Ausführen der statischen Sicherheitsanalyse an der HTML-Antwort zum Überwachen von HTML zugehörigem Scriptcode, der ausgeführt wird, um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft, auf: Identifizieren eines Pop-up-Dialogs, der den Inhalt der Nutzdaten enthält.
  • Gemäß Ausführungsformen weisen die ausführbaren Schritte ferner auf: Empfangen einer Liste mit einer Vielzahl von Nutzdaten. Das Übertragen wenigstens einer Client-Anforderung, die die Nutzdaten mit der eindeutigen Kennung aufweist, zu der web-basierten Anwendung beinhaltet: automatisches Übertragen einer Vielzahl von Client-Anforderungen zu der web-basierten Anwendung, wobei jede der Client-Anforderungen entsprechende Nutzdaten aufweist, die aus der Liste mit der Vielzahl von Nutzdaten ausgewählt sind.
  • Gemäß Ausführungsformen weisen die Nutzdaten mit der eindeutigen Kennung Inhalt auf, der durch die web-basierte Anwendung an ein DOM einer Webseite zurückgegeben wird.
  • In einem weiteren Aspekt bezieht sich die Erfindung auf ein Computerprogrammprodukt zum Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen. Das Computerprogrammprodukt weist auf:
    ein computerlesbares Speichermedium mit darauf verkörpertem computerlesbaren Programmcode, wobei der computerlesbare Programmcode aufweist:
    computerlesbaren Programmcode, der zum Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung, konfiguriert ist;
    computerlesbaren Programmcode, der zum Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung konfiguriert ist;
    computerlesbaren Programmcode, der zum Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung konfiguriert ist; und
    computerlesbaren Programmcode, der konfiguriert ist, um einen Abschnitt des DOM-Objekts, der die Nutzdaten aufweist, als nicht vertrauenswürdig zu identifizieren.
  • Gemäß Ausführungsformen weist der computerlesbare Programmcode ferner auf:
    computerlesbaren Programmcode, der konfiguriert ist, eine statische Sicherheitsanalyse an der HTML-Antwort auszuführen, wenn die HTML-Antwort ausgegeben wird, um HTML zugehörigen Scriptcode zu überwachen, der ausgeführt wird, um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft; und
    computerlesbaren Programmcode, der konfiguriert ist, ein Flag zu erzeugen, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist, wenn der Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft.
  • Gemäß Ausführungsformen weist das Ausführen der statische Sicherheitsanalyse an der HTML-Antwort, um HTML zugehörigen Scriptcode zu überwachen, der ausgeführt wird um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft, auf: Identifizieren eines Pop-up-Dialogs, der den Inhalt der Nutzdaten enthält.
  • Gemäß Ausführungsformen weist der computerlesbare Programmcode ferner auf: computerlesbaren Programmcode, der zum Empfangen einer Liste mit einer Vielzahl von Nutzdaten konfiguriert ist. Das Übertragen wenigstens einer Client-Anforderung, die die Nutzdaten mit der eindeutigen Kennung aufweist, zu der web-basierten Anwendung beinhaltet:
    automatisches Übertragen einer Vielzahl von Client-Anforderungen an die web-basierte Anwendung, wobei jede der Client-Anforderungen entsprechende Nutzdaten aufweist, die aus der Liste mit der Vielzahl von Nutzdaten ausgewählt sind.
  • Gemäß Ausführungsformen weisen die Nutzdaten mit der eindeutigen Kennung Inhalt auf, der durch die web-basierte Anwendung an ein DOM einer Webseite zurückgegeben wird.
  • KURZE BESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTEN
  • 1 ist ein Blockschaubild, das ein System zum Erkennen einer Schwachstelle für DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 2 ist ein Ablaufplan, der ein Verfahren zum Erkennen einer Schwachstelle für DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 3 ist ein Blockschaubild, das ein System zum Erkennen einer Schwachstelle für DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • GENAUE BESCHREIBUNG
  • Wie dem Fachmann klar ist, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein. 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, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle allgemein 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 verkörpert ist, die computerlesbaren Programmcode, der darauf verkörpert ist, aufweisen.
  • 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, ein Festplattenlaufwerk (HDD), ein Festkörperlaufwerk (SSD), ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine Digital Versatile Disc (DVD), eine optische Speichereinheit, eine magnetische Speichereinheit 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 ist, enthalten. Ein derartiges verbreitetes Signal kann jede von einer Vielzahl von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, die jedoch nicht darauf beschränkt sind. 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 kommunizieren, 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, die jedoch nicht darauf beschränkt sind. 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 JavaTM, 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 selbststä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 Lokalbereichs-Netzwerks (LAN) oder eines Weitbereichs-Netzwerks (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 sind hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können an einen Prozessor eines Universal-Computers, eines speziellen Computers 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/Handlungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds 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, wozu Befehle gehören, die die Funktion/Handlung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert ist.
  • Die Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungseinrichtungen 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 auf einem Computer implizierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, bereitstellen.
  • Die vorliegende Erfindung bezieht sich auf eine Methodik, die eine Verfolgung der Historie ermöglicht, was zu der Verwendung eines Dokumentenobjektmodell-(DOM-)Elements durch JavaScript-Code führt, so dass DOM-basierte XSS-Angriffe effizient und genau entdeckt werden können. Ein Sicherheits-Scanner kann gezielt mehrere Nutzdaten an eine web-basierte Anwendung (im Folgenden ”Web-Anwendung) senden, um zu versuchen, Schwachstellen in der Web-Anwendung zu identifizieren. Der hier verwendete Ausdruck ”Nutzdaten” bedeutet Scriptcode, der in einer Client-Anforderung an eine Web-Anwendung bereitgestellt wird.
  • Alle Nutzdaten können eine eindeutige Kennung enthalten, die in einem Webseiten-DOM-Objekt widergespiegelt werden könnte, wenn die Webseite auf die Nutzdaten anfällig wäre. Wenn die Web-Anwendung anschließend client-seitigen Scriptcode wie etwa JavaScriptTM-Code an einen Client bereitgestellt, kann der client-seitige Scriptcode in einer isolierten Datenverarbeitungsumgebung, die als ”Sandbox” bekannt ist, ausgeführt werden. Wenn es während der Ausführung des Scriptcode ein Anzeichen gibt, dass Nutzdaten durch den Scriptcode in verletzender Weise verwendet wurden, kann der Sicherheits-Scanner eine Anzeige erzeugen, dass in dem Scriptcode eine Schwachstelle vorhanden ist. Dementsprechend können Entwickler von Web-Anwendungen die Situation, dass eine Schwachstelle vorhanden ist, einschätzen und die Web-Anwendung modifizieren, um Schutzmaßnahmen zu ergreifen.
  • 1 ist ein Blockschaubild, das ein System 100 zum Erfassen von Schwachstellen auf DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Das System 100 kann einen Server 110 enthalten. Der Server 110 kann ein Verarbeitungssystem oder eine in geeigneter Weise konfigurierte Einheit sein, z. B. über die Ausführung eines Betriebssystems auf dem Server, um zumindest wenigstens eine Web-Anwendung 112 zu beherbergen. Die Web-Anwendung kann eine oder mehrere Webseiten 114 enthalten. Der Server 110 kann ebenfalls eine oder mehrere zusätzliche Web-Anwendungen beherbergen (nicht gezeigt). Der hier verwendete Ausdruck ”Web-Anwendung” bedeutet eine Anwendung, auf die über ein Netzwerk wie z. B. das Internet oder ein Intranet zugegriffen wird. Der hier verwendete Ausdruck ”Webseite” bedeutet ein Dokument oder eine Informationsressource, die zum Zugriff über ein Netzwerk wie z. B. das Internet oder ein Intranet zur Verfügung steht und auf die über eine Client-Anwendung wie etwa ein Web-Browser zugegriffen werden kann.
  • Das System kann ferner einen Client 120 enthalten. Der Client 120 kann in einer Ausführungsform ein Verarbeitungssystem oder eine Einheit sein, die für einen Datenaustausch mit dem Server 110 z. B. über ein oder mehrere Datenverarbeitungsnetzwerke oder über einen oder mehrere Eingabe/Ausgabe-(E/A-)Anschlüsse verbunden ist. Daher kann der Client 120 so konfiguriert sein, dass er ein Betriebssystem und eine oder mehrere client-seitige Anwendungen betreibt. Die client-seitigen Anwendungen können einen Sicherheits-Scanner 122 und eine DOM-modellierende Komponente 124, die hier genauer beschrieben wird, enthalten. In einer weiteren Ausführungsform können der Sicherheits-Scanner 122 und die DOM-modellierende Komponente 124 auf dem Server 110 betrieben werden.
  • Unabhängig davon, wo sich der Sicherheits-Scanner 122 und die DOM-modellierende Komponente 124 befinden, können diese Komponenten in einer Sandbox betrieben werden. Eine Sandbox stellt eine eng gesteuerte Gruppe von Ressourcen für die Ausführung von Gastprogrammen wie z. B. den Sicherheits-Scanner 122 und die DOM-modellierende Komponente 124 bereit. Eine Sandbox kann zur Erläuterung einen Arbeitsbereich im Speicher für eine derartige Ausführung bereitstellen. In einer Sandbox ist der Netzwerkzugriff, die Fähigkeit zum Inspizieren des Host-Systems oder zum Lesen von Eingabeeinheiten gewöhnlich gesperrt oder lediglich auf Operationen zum Ausführen einer Analyse und/oder Prüfung stark eingeschränkt. In diesem Sinn ist die Sandbox ein spezifisches Beispiel einer Virtualisierung.
  • Um einen DOM-basierten Cross-Site-Scripting-(XSS-)Angriff gegen die Webseite 114 zu simulieren, kann der Sicherheits-Scanner 122 betrieben werden, um eine oder mehrere Client-Anforderungen 130 automatisch an die Web-Anwendung 112 zu senden. Jede Client-Anforderung 130 kann gegebenenfalls mehrere Nutzdaten 132 enthalten. Die Nutzdaten 132 können Code enthalten, der durch den Sicherheits-Scanner 122 erzeugt oder abgerufen wurde, um Schwachstellen zu prüfen, die in der Web-Anwendung 112 vorhanden sein können. Zum Beispiel können Nutzdaten 132 Script enthalten, wie etwa JavaScriptTM und/oder ActionScriptTM, der vorgesehen ist, um bestimmten Inhalt der Nutzdaten 132 in das DOM der Webseite 114 zur Laufzeit zurückzugeben.
  • Wenn die Client-Anforderung 130 (und somit die Nutzdaten 132) durch die Web-Anwendung 112 verarbeitet wird, und wenn die Web-Anwendung 112 auf die Nutzdaten 132 anfällig ist, können die Nutzdaten an das DOM der Webseite zurückgegeben werden. Alle Nutzdaten 132 können eine eindeutige Kennung enthalten, die später erkannt werden kann, um die Erkennung einer Schwachstelle in der Webseite 114 zu ermöglichen. Ein Beispiel von Nutzdaten 132 lautet:
    Figure 00120001
    wobei document.cookie eine eindeutige Kennung enthält. Diese Nutzdaten können an die Web-Anwendung 112 übertragen werden, indem die Client-Anforderung 130 mit folgendem URL gesendet wird:
    Figure 00120002
    wobei ”www.some.site” die Web-Anwendung 112 ist, die analysiert wird.
  • Bei dem ursprünglichen Scriptcode in der Web-Anwendung 112 (z. B. in der Webseite 114) kann nicht erwartet werden, dass der Standardparameter HTML-Markup enthält und daher kann er einfach die HTML in das DOM der Webseite zur Laufzeit zurückgeben. Falls das HTML-Markup unter anderen Umständen an die Web-Anwendung 112 übertragen werden würde (z. B. nicht während der gegenwärtigen Sicherheitsanalyse) wenn eine HTML-Antwort 134 von der Web-Anwendung 112 empfangen wird, kann eine client-seitige Anwendung 112, wie etwa ein Web-Browser, die resultierende Seite ausgeben und das Script ausführen:
    Figure 00130001
  • Das Ausführen eines derartigen Script könnte zur Folge haben, dass unerwünschte Informationen durch die client-seitige Anwendung präsentiert werden.
  • Dabei handelt es sich lediglich um ein Beispiel von Nutzdaten 132, die zu der Web-Anwendung 112 übertragen werden können. Wie angemerkt kann der Sicherheits-Scanner 122 mehrere Nutzdaten 132 zu der Web-Anwendung übertragen, wodurch die Web-Anwendung wirksam auf mehrere mögliche Schwachstellen geprüft wird. In einer Ausführungsform können eine oder mehrere Listen von Nutzdaten 132 für den Sicherheits-Scanner bereitgestellt und von diesem empfangen werden und der Sicherheits-Scanner 122 kann weiter die Client-Anforderungen 130 senden, bis alle Nutzdaten 132 zur Web-Anwendung 112 übertragen wurden.
  • In Reaktion auf die Client-Anforderung(en) 130 können eine HTML-Antwort 134, die der aufgerufenen Webseite 114 entspricht, und ein zugehöriges DOM-Objekt 136 von der Web-Anwendung 112 an den Client 120 übertragen werden. Wenn die Web-Anwendung 112 auf die oben dargestellten beispielhaften Nutzdaten 132 anfällig ist, kann ein Objekt document.location in dem DOM-Objekt 136 den folgenden String enthalten:
    Figure 00130002
  • Der Client 120 kann in geeigneter Weise konfiguriert sein, um die HTML-Antwort 134 mit dem DOM-Objekt zu der DOM-modellierenden Komponente 124 zu leiten. Die HTML-Antwort 134 muss keine Nutzdaten des Angreifers enthalten. Die Nutzdaten können stattdessen zur Laufzeit beim Client 120 manifestiert werden, wenn Script, der der HTML-Antwort 134 zugehörig ist, ausgeführt wird. Wenn in Fortsetzung des oben dargestellten Beispiels ein fehlerhaftes Script auf das DOM mit einer Variablen document.location zugreift, kann das Script selbst annehmen, dass es nicht schädlich ist. Die hier dargestellte Analyse kann jedoch eine derartige schädliche Variable identifizieren.
  • Die DOM-modellierende Komponente 124 kann zum Empfangen der HTML-Antwort 134 und zum Bilden einer DOM-Abstraktion 126 konfiguriert sein, die so erzeugt wird, dass sie dem DOM-Objekt 136 entspricht. Die DOM-modellierende Komponente 124 kann insbesondere das DOM-Objekt 136 nach Fällen scannen, bei denen der Inhalt von Nutzdaten 132 an die Web-Anwendung 112 geliefert wurde. Die DOM-modellierende Komponente 124 kann diese Fälle des Nutzdateninhalts anhand der eindeutigen Kennungen, die für die Nutzdaten bereitgestellt werden, erkennen, die in entsprechenden Abschnitten des DOM-Objekts 136 widergespiegelt werden.
  • Wenn Inhalt, der dem Inhalt der Nutzdaten 132 entspricht, in dem DOM-Objekt 136 gefunden wird, kann die DOM-Struktur, in der der Inhalt der Nutzdaten 132 gefunden wird, in der DOM-Abstraktion 126 bewahrt werden. Des Weiteren kann der Inhalt der Nutzdaten 132 in der DOM-Abstraktion 126 als ein nicht vertrauenswürdiger DOM-Wert angegeben werden. Der Nutzdateninhalt kann z. B. hervorgehoben werden, mit einer bestimmten Farbe oder Schriftart dargestellt werden oder es können Kommentare in der DOM-Abstraktion 126 enthalten sein, um die Nutzdaten 132 zu identifizieren. Ein Grund, warum der Nutzdateninhalt als nicht vertrauenswürdig angegeben wird, besteht darin, dass Script-Code (z. B. JavaScriptTM-Code) diesen Bereich in dem DOM-Objekt passieren kann, um den DOM-Wert in einer möglicherweise ungeschützten Weise abzurufen, wenn die Nutzdaten unidentifiziert bleiben. Andere DOM-Bereiche, die keine nicht vertrauenswürdigen DOM-Werte enthalten (z. B. keinen Inhalt der Nutzdaten 132 enthalten), können sicher ignoriert werden und müssen deswegen nicht in der DOM-Abstraktion 126 enthalten sein.
  • Demzufolge kann die DOM-Abstraktion 126 lediglich einen kleinen Teil des ursprünglichen DOM-Objekts 136 enthalten, wodurch die DOM-Abstraktion 126 eine kleine, leicht zu handhabende Datei bleibt.
  • Nachdem die DOM-Abstraktion 126 erzeugt wurde, kann der Sicherheits-Scanner 122 eine statische Analyse an der HTML ausführen, wobei die DOM-Abstraktion 126 anstelle des DOM-Objekts 136 verwendet wird, wodurch die HTML wirksam modelliert werden kann. In diesem Zusammenhang kann der Sicherheits-Scanner 122 eine client-seitige Anwendung zum Ausgeben von HTML wie etwa einen Web-Browser enthalten oder auf diesen zugreifen. Wenn die HTML in der Sandbox ausgegeben wird, kann der HTML zugehörige Script-Code überwacht werden, der ausgeführt wird, um festzustellen, ob Zugriffe auf die DOM-Abstraktion 126 einen oder mehrere nicht vertrauenswürdige Werte abrufen. Der Sicherheits-Scanner 122 kann z. B. einen Pop-up-Dialog, der Inhalt der Nutzdaten 132 enthält, überwachen und identifizieren. Wenn ein nicht vertrauenswürdiger Wert identifiziert wird, kann der Sicherheits-Scanner 122 ein Flag erzeugen, das angibt, dass eine Schwachstelle identifiziert wurde. Das Flag kann die eindeutige Kennung der entsprechenden Nutzdaten 132 angeben, die Inhalt aufweisen, der dem nicht vertrauenswürdigen Wert entspricht.
  • Zur Erläuterung können bei Fortsetzung des obigen Beispiels jene Zugriffe identifiziert werden, bei denen ein Objekt document.location.href gelesen wird. Des Weiteren kann die Variable, die der Bewertung des folgenden Ausdrucks zugewiesen ist, als mängelbehaftet identifiziert werden:
    Figure 00150001
  • Das Ergebnis der folgenden Verknüpfungsoperation ist deswegen ebenfalls mängelbehaftet:
    Figure 00150002
    Figure 00160001
  • Wegen der Verknüpfungsabläufe in der sicherheitsempfindlichen Operation document.write() kann der Sicherheits-Scanner 122 ein Flag erzeugen, das angibt, dass eine Schwachstelle erkannt wurde. Es sollte angemerkt werden, dass der gleiche Ablauf in einem Fall berichtet werden könnte, bei dem eine komplexe und seltene Bedingung die Ausführung von document.write() steuert, da die statische Analyse die Bedingung in herkömmlicher Weise behandeln und beiden Ausführungszweigen folgen kann.
  • An diesem Punkt sollte anschließend angemerkt werden, dass die Tatsache, dass die DOM-Abstraktion 126 auf einer kleinen Dateigröße gehalten wird, mehrere Implikationen für die oben beschriebene statische Analyse nach sich zieht. Erstens erfreut sich die Analyse vom Standpunkt der Leistungsfähigkeit und Skalierbarkeit eines Vorteils, dass sie lediglich einen kleinen Teil des ursprünglichen DOM-Objekts 136 modellieren und daraus schlussfolgern kann. Dies kann die Analyse im Vergleich zu einem Fall, bei dem das DOM-Objekt 136 in seiner Gesamtheit in der DOM-Abstraktion repräsentiert wird, um Größenordnungen effizienter und skalierbarer machen. Zweitens kann die Analyse sowohl völlig fehlerfrei als auch sehr genau sein. Die Fehlerfreiheit der Analyse besteht wegen der Bewahrung von DOM-Unterstrukturen, die zu potenziellen Schwachstellen führen, und die verbesserte Genauigkeit ergibt sich daraus, dass die Analyse nicht jeden aus dem DOM-Objekt 136 gelesenen Wert interpretieren muss, wodurch die Gefahr vermindert wird, dass DOM-Unterstrukturen fälschlicherweise als potenzielle Schwachstellen angegeben werden.
  • 2 ist ein Ablaufplan, der ein Verfahren 200 zum Erfassen von Schwachstellen für DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Im Schritt 202 kann wenigstens eine Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu einer web-basierten Anwendung übertragen werden. Falls in der web-basierten Anwendung eine Schwachstelle vorhanden ist, kann Inhalt der Nutzdaten durch die web-basierte Anwendung zu einem DOM der Webseite zurückgegeben werden.
  • Im Schritt 204 können eine HTML-Antwort und ein zugehöriges Dokumentenobjektmodell-(DOM-)Objekt von der web-basierten Anwendung empfangen werden. Im Schritt 206 kann Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung identifiziert werden. Im Schritt 208 kann eine DOM-Abstraktion aus dem DOM-Objekt erzeugt werden. Die DOM-Abstraktion kann einen oder mehrere Abschnitte des DOM-Objekts, die den den Nutzdaten entsprechenden Inhalt beinhalten, enthalten und Abschnitte des DOM-Objekts von der DOM-Abstraktion ausschließen, die keinen den Nutzdaten entsprechenden Inhalt enthalten.
  • Im Schritt 210 kann die HTML-Antwort unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts ausgegeben werden. Wenn die HTML-Antwort ausgegeben wird, kann im Schritt 212 eine statische Sicherheitsanalyse an der HTML-Antwort durchgeführt werden, um ausgeführten Script-Code zu überwachen, der HTML zugehörig ist, um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft. Wenn der Zugriff auf die DOM-Abstraktion den den Nutzdaten entsprechenden Inhalt abruft, kann im Schritt 214 ein Flag erzeugt werden, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist.
  • 3 ist ein Blockschaubild, das ein System 300 zum Erkennen von Schwachstellen für DOM-basiertes Cross-Site-Scripting gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Das System kann z. B. der Client 120 sein, der in Bezug auf 1 beschrieben wurde. Das System 300 kann wenigstens einen Prozessor 305 enthalten, der durch ein Bussystem 315 mit Speicherelementen 310 verbunden ist. Daher kann das System 300 Programmcode in den Speicherelementen 310 speichern. Der Prozessor 305 kann den Programmcode ausführen, der aus den Speicherelementen 310 über den Systembus 315 abgerufen wird. In einem Aspekt kann z. B. das System 300 als Computer umgesetzt werden, der zum Speichern und/oder Ausführen von Programmcode geeignet ist. Es sollte jedoch anerkannt werden, dass das System 300 in Form jedes Systems umgesetzt werden kann, das einen Prozessor und einen Speicher aufweist, die die in dieser Spezifikation beschriebenen Funktionen ausführen können.
  • Die Speicherelemente 310 können eine oder mehrere physische Speichereinheiten wie z. B. einen lokalen Speicher 320 und eine oder mehrere Massenspeichereinheiten 325 enthalten. Ein lokaler Speicher 320 bezeichnet einen Direktzugriffsspeicher oder andere nicht dauerhafte Speichereinheiten, die im Allgemeinen während der tatsächlichen Ausführung von Programmcode verwendet werden. Die Massenspeichereinheit(en) 325 können als ein Festplattenlaufwerk (HDD), Festkörperlaufwerk (SSD) oder eine andere dauerhafte Datenspeichereinheit umgesetzt sein. Das System 300 kann außerdem einen oder mehrere Cache-Speicher (nicht gezeigt) enthalten, die eine vorübergehende Speicherung von wenigstens einem Teil des Programmcode gewährleisten, um die Anzahl zu vermindern, wie oft Programmcode während der Ausführung von der Massenspeichereinheit 325 abgerufen werden muss.
  • Eingabe/Ausgabe-(E/A-)Einheiten wie etwa eine Tastatur 330, eine Anzeige 335 und eine Zeigeeinheit (nicht gezeigt) können wahlweise mit dem System 300 verbunden sein. Die E/A-Einheiten können entweder direkt oder über dazwischen liegende E/A-Steuereinheiten mit dem System 300 verbunden sein. Netzwerkadapter 340 können außerdem mit dem System 300 verbunden sein, damit das System 300 mit anderen Systemen, Computersystemen, fernen Druckern und/oder fernen Speichereinrichtungen über dazwischen angeordnete private oder öffentliche Netzwerke verbunden werden kann. Der (die) Netzwerkadapter 340 können z. B. ermöglichen, dass das System 300 mit dem Server 110 von 1 verbunden wird. Modems, Kabel-Modems und Ethernet-Karten sind Beispiele von verschiedenen Typen der Netzwerkadapter, die bei dem System 300 verwendet werden können.
  • Wie in 1 dargestellt können die Speicherelemente 110 einen Sicherheits-Scanner 122 und eine DOM-modellierende Komponente 124, die zuvor beschrieben wurden, speichern. Der Sicherheits-Scanner 122 und die DOM-modellierende Komponente 124, die in Form von ausführbarem Programmcode verkörpert sind, können durch das System 300 betrieben werden (z. B. über den Prozessor 305), um die hier beschriebenen Verfahren, Prozesse und Funktionen auszuführen.
  • In einer Ausführungsform können der Sicherheits-Scanner 122 und die DOM-modellierende Komponente 124 mittels IBM® Rational® AppScan® umgesetzt sein (wobei IBM, Rational und AppScan Handelsmarken der International Business Machines Corporation in den USA und/oder anderen Staaten sind).
  • Gleiche Zahlen wurden verwendet, um in der gesamten Spezifikation gleiche Elemente zu bezeichnen. Der Ablaufplan und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb 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 Blockschaubildern ein Modul, Segment oder Abschnitt von Code, das/der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist, repräsentieren. 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 können. 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 der Blockschaubilder und/oder Ablaufplan-Darstellung und Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch auf spezielle Hardware gestützte Systeme, die die spezifizierten Funktionen oder Handlungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Die hier verwendete Terminologie dient lediglich dem Zweck der Beschreibung bestimmter Ausführungsformen und ist nicht vorgesehen, um die Erfindung einzuschränken. Es ist vorgesehen, dass die hier verwendeten Singularformen ”ein”/”eine” und ”der/die/das” ebenso die Pluralformen einschließen, falls im Kontext nicht ausdrücklich anders angegeben. Es ist ferner klar, dass die Ausdrücke ”aufweist” und/oder ”aufweisen”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen hiervon ausschließen.
  • Es ist vorgesehen, dass die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritte plus Funktionselemente in den nachfolgenden Ansprüchen jede Struktur, jedes Material oder jede Handlung zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen in der speziell beanspruchten Weise enthalten. Die Beschreibung der vorliegenden Erfindung wurde für Zwecke der Erläuterung und Beschreibung präsentiert, es ist jedoch nicht vorgesehen, dass sie in der beschriebenen Form für die Erfindung erschöpfend oder einschränkend ist. Viele Modifikationen und Variationen werden einem Fachmann klar sein, ohne vom Umfang und Erfindungsgedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und ihre praktischen Anwendungsmöglichkeiten am besten zu erläutern und um andere Fachleute zu befähigen, die Erfindung im Hinblick auf verschiedene Ausführungsformen mit zahlreichen Modifikationen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.

Claims (15)

  1. Verfahren zum Prüfen einer web-basierten Anwendung nach Sicherheitsschwachstellen, wobei das Verfahren aufweist: Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung; Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung; mittels eines Prozessors Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung; und Identifizieren eines Abschnitts des DOM-Objekts, der die Nutzdaten aufweist, als nicht vertrauenswürdig.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Erzeugen einer DOM-Abstraktion aus dem DOM-Objekt, wobei die DOM-Abstraktion einen Abschnitt des DOM-Objekts, der den den Nutzdaten entsprechenden Inhalt enthält, aufweist; Ausgeben der HTML-Antwort unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts.
  3. Verfahren nach Anspruch 2, wobei das Erzeugen der DOM-Abstraktion aus dem DOM-Objekt aufweist: Ausschließen von Abschnitten des DOM-Objekts aus der DOM-Abstraktion, die keinen Inhalt aufweisen, der den Nutzdaten entspricht.
  4. Verfahren nach einem der Ansprüche 2 oder 3, ferner aufweisend: wenn die HTML-Antwort ausgegeben wird, Ausführen einer statischen Sicherheitsanalyse an der HTML-Antwort, um Script-Code, der HTML zugehörig ist, zu überwachen, der ausgeführt wird um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion den Inhalt, der den Nutzdaten entspricht, abruft; und wenn der Zugriff auf die DOM-Abstraktion Inhalt, der den Nutzdaten entspricht, abruft, Erzeugen eines Flag, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist.
  5. Verfahren nach Anspruch 4, wobei das Ausführen der statischen Sicherheitsanalyse an der HTML-Antwort, um Script-Code, der HTML zugehörig ist, zu überwachen, der ausgeführt wird um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion Inhalt abruft, der den Nutzdaten entspricht, aufweist: Identifizieren eines Pop-up-Dialogs, der den Inhalt der Nutzdaten enthält.
  6. Verfahren nach einem der Ansprüche 1 bis 5, ferner aufweisend: Empfangen einer Liste mit einer Vielzahl von Nutzdaten; wobei das Übertragen wenigstens einer Client-Anforderung, die die Nutzdaten mit der eindeutigen Kennung aufweist, zu der web-basierten Anwendung, beinhaltet: automatisches Übertragen einer Vielzahl von Client-Anforderungen zu der web-basierten Anwendung, wobei jede der Client-Anforderungen entsprechende Nutzdaten, die aus der Liste mit der Vielzahl von Nutzdaten ausgewählt sind, aufweist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Nutzdaten mit der eindeutigen Kennung Inhalt aufweisen, der durch die web-basierte Anwendung an ein DOM einer Webseite zurückgegeben wird.
  8. Verfahren zum Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen, wobei das Verfahren aufweist: Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung; Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung; mittels eines Prozessors Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung; Erzeugen einer DOM-Abstraktion aus dem DOM-Objekt, wobei die DOM-Abstraktion einen Abschnitt des DOM-Objekts, der den Nutzdaten entsprechenden Inhalt enthält, aufweist, und Ausschließen von Abschnitten des DOM-Objekts aus der DOM-Abstraktion, die keinen den Nutzdaten entsprechenden Inhalt aufweisen; Ausgeben der HTML-Antwort unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts; wenn die HTML-Antwort ausgegeben wird, Ausführen einer statischen Sicherheitsanalyse an der HTML-Antwort, um Script-Code, der HTML zugehörig ist, zu überwachen, der ausgeführt wird um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion Inhalt abruft, der den Nutzdaten entspricht; und wenn der Zugriff auf die DOM-Abstraktion Inhalt, der den Nutzdaten entspricht, abruft, Erzeugen eines Flag, das angibt, dass in der web-basierten Anwendung eine Schwachstelle vorhanden ist.
  9. Verfahren nach Anspruch 8, wobei das Ausführen der statischen Sicherheitsanalyse an der HTML-Antwort, um Script-Code zu überwachen, der HTML zugehörig ist, der ausgeführt wird, um festzustellen, ob wenigstens ein Zugriff auf die DOM-Abstraktion Inhalt abruft, der den Nutzdaten entspricht, aufweist: Identifizieren eines Pop-up-Dialogs, der den Inhalt der Nutzdaten aufweist.
  10. Verfahren nach Anspruch 8 oder 9, ferner aufweisend: Empfangen einer Liste mit einer Vielzahl von Nutzdaten; wobei das Übertragen wenigstens einer Client-Anforderung, die die Nutzdaten mit der eindeutigen Kennung aufweist, zu der web-basierten Anwendung beinhaltet: automatisches Übertragen einer Vielzahl von Client-Anforderungen zu der web-basierten Anwendung, wobei jede der Client-Anforderungen entsprechende Nutzdaten aufweist, die aus der Liste mit der Vielzahl von Nutzdaten ausgewählt sind.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei die Nutzdaten mit der eindeutigen Kennung Inhalt aufweisen, der durch die web-basierte Anwendung an ein DOM einer Webseite zurückgegeben wird.
  12. System, aufweisend: ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der auf diesem verkörpert ist; einen Prozessor, der mit dem computerlesbaren Speichermedium verbunden ist, wobei in Reaktion auf das Ausführen des computerlesbaren Programmcodes der Prozessor zum Ausführen ausführbarer Operationen konfiguriert ist, die aufweisen: Übertragen wenigstens einer Client-Anforderung, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung; Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung; mittels eines Prozessors Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung; und Identifizieren eines Abschnitts des DOM-Objekts, der die Nutzdaten aufweist, als nicht vertrauenswürdig.
  13. Computerprogrammprodukt zum Prüfen einer web-basierten Anwendung auf Sicherheitsschwachstellen, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium mit computerlesbarem Programmcode, der auf diesem verkörpert ist, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der zum Übertragen von wenigstens einer Client-Anforderung konfiguriert ist, die Nutzdaten mit einer eindeutigen Kennung aufweist, zu der web-basierten Anwendung; computerlesbaren Programmcode, der zum Empfangen einer HTML-Antwort und eines zugehörigen Dokumentenobjektmodell-(DOM-)Objekts von der web-basierten Anwendung konfiguriert ist; computerlesbaren Programmcode, der zum Identifizieren von Inhalt, der den Nutzdaten in dem DOM-Objekt entspricht, über die eindeutige Kennung konfiguriert ist; und computerlesbaren Programmcode, der zum Identifizieren eines Abschnitts des DOM-Objekts, der die Nutzdaten aufweist, als nicht vertrauenswürdig konfiguriert ist.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der computerlesbare Programmcode ferner aufweist: computerlesbaren Programmcode, der zum Erzeugen einer DOM-Abstraktion aus dem DOM-Objekt, wobei die DOM-Abstraktion einen Abschnitt des DOM-Objekts aufweist, der den den Nutzdaten entsprechenden Inhalt enthält, konfiguriert ist; computerlesbaren Programmcode, der zum Ausgeben der HTML-Antwort unter Verwendung der DOM-Abstraktion anstelle des DOM-Objekts konfiguriert ist.
  15. Computerprogrammprodukt nach Anspruch 14, wobei das Erzeugen der DOM-Abstraktion aus dem DOM-Objekt aufweist: Ausschließen von Abschnitten des DOM-Objekts aus der DOM-Abstraktion, die keinen den Nutzdaten entsprechenden Inhalt aufweisen.
DE102012218704A 2011-10-28 2012-10-15 Erkennung von schwachstellen für dom-basiertes cross-site-scripting Pending DE102012218704A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/283,989 US8683596B2 (en) 2011-10-28 2011-10-28 Detection of DOM-based cross-site scripting vulnerabilities
US13/283,989 2011-10-28

Publications (1)

Publication Number Publication Date
DE102012218704A1 true DE102012218704A1 (de) 2013-05-02

Family

ID=47359084

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012218704A Pending DE102012218704A1 (de) 2011-10-28 2012-10-15 Erkennung von schwachstellen für dom-basiertes cross-site-scripting

Country Status (3)

Country Link
US (2) US8683596B2 (de)
DE (1) DE102012218704A1 (de)
GB (1) GB2496730B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223977B2 (en) 2011-10-28 2015-12-29 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276952B2 (en) * 2011-05-31 2016-03-01 Hewlett Packard Enterprise Development Lp Automated security testing
US9971896B2 (en) 2011-12-30 2018-05-15 International Business Machines Corporation Targeted security testing
US8914881B2 (en) * 2012-07-31 2014-12-16 Sap Se Flexible and secure clickjacking protection mechanism
US9774617B2 (en) * 2012-10-12 2017-09-26 Trustwave Holdings, Inc. Distributed client side user monitoring and attack system
CN104956362B (zh) * 2013-01-29 2017-10-24 慧与发展有限责任合伙企业 分析web应用程序的结构
US9910992B2 (en) * 2013-02-25 2018-03-06 Entit Software Llc Presentation of user interface elements based on rules
EP3017393B1 (de) * 2013-07-04 2020-12-09 JScrambler S.A. System und verfahren für webanwendungssicherheit
US9317694B2 (en) 2013-12-03 2016-04-19 Microsoft Technology Licensing, Llc Directed execution of dynamic programs in isolated environments
US9356955B2 (en) * 2014-03-15 2016-05-31 Kenneth F. Belva Methods for determining cross-site scripting and related vulnerabilities in applications
US9430361B1 (en) 2014-06-24 2016-08-30 Amazon Technologies, Inc. Transition testing model for heterogeneous client environments
US9336126B1 (en) 2014-06-24 2016-05-10 Amazon Technologies, Inc. Client-side event logging for heterogeneous client environments
US10097565B1 (en) 2014-06-24 2018-10-09 Amazon Technologies, Inc. Managing browser security in a testing context
US9317398B1 (en) * 2014-06-24 2016-04-19 Amazon Technologies, Inc. Vendor and version independent browser driver
US9646103B2 (en) * 2014-07-10 2017-05-09 MyMojo Corporation Client-side template engine and method for constructing a nested DOM module for a website
US10223533B2 (en) * 2014-10-21 2019-03-05 Veracode, Inc. Systems and methods for analysis of cross-site scripting vulnerabilities
JP2017004236A (ja) * 2015-06-10 2017-01-05 富士ゼロックス株式会社 情報処理装置、ネットワークシステム及びプログラム
US9923916B1 (en) * 2015-06-17 2018-03-20 Amazon Technologies, Inc. Adaptive web application vulnerability scanner
US10673887B2 (en) * 2015-10-28 2020-06-02 Qomplx, Inc. System and method for cybersecurity analysis and score generation for insurance purposes
US10320809B1 (en) * 2015-10-30 2019-06-11 Cyberinc Corporation Decoupling rendering engine from web browser for security
US10313391B1 (en) * 2015-10-30 2019-06-04 Cyberinc Corporation Digital distillation
US10855696B2 (en) * 2016-03-02 2020-12-01 Shape Security, Inc. Variable runtime transpilation
EP3287930A1 (de) * 2016-08-26 2018-02-28 Entit Software LLC Javascript-sicherheitsprüfung
US11212305B2 (en) * 2018-04-27 2021-12-28 Check Point Web Applications And Api Protection Ltd. Web application security methods and systems
US11640471B2 (en) * 2018-05-04 2023-05-02 Google Llc Detecting injection vulnerabilities of client-side templating systems
CN109688130A (zh) * 2018-12-24 2019-04-26 北京奇虎科技有限公司 网页劫持检测方法、装置及计算机存储介质
US11960834B2 (en) * 2019-09-30 2024-04-16 Brave Software, Inc. Reader mode-optimized attention application
CN111935149B (zh) * 2020-08-11 2023-04-07 北京天融信网络安全技术有限公司 一种漏洞检测方法及系统
US20220198025A1 (en) * 2020-08-27 2022-06-23 Virsec Systems, Inc. Web Attack Simulator
EP4205004A1 (de) 2020-08-27 2023-07-05 Virsec Systems, Inc. Automatisierte anwendungsanfälligkeits- und -risikobewertung
CA3202446A1 (en) * 2020-12-31 2022-07-07 Satya V. Gupta Automated detection of cross site scripting attacks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001288235A1 (en) * 2000-08-07 2002-02-18 Active Data Exchange, Inc. Syndication methodology to dynamically place digital assets on non-related web sites
DE10214146C1 (de) * 2002-03-28 2003-10-30 Efr Europaeische Funk Rundsteu Funk- Rundsteuerungssystem und Verfahren zum Betreiben eines derartigen Systems
US7343626B1 (en) 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
US8656495B2 (en) 2006-11-17 2014-02-18 Hewlett-Packard Development Company, L.P. Web application assessment based on intelligent generation of attack strings
US7933946B2 (en) 2007-06-22 2011-04-26 Microsoft Corporation Detecting data propagation in a distributed system
WO2009001226A2 (en) 2007-06-28 2008-12-31 Telefonaktiebolaget L M Ericsson (Publ) Data system and method
US20090282480A1 (en) * 2008-05-08 2009-11-12 Edward Lee Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies
US9081956B2 (en) * 2008-05-26 2015-07-14 Trusteer Ltd. Remote DOM access
US8275859B2 (en) * 2009-03-31 2012-09-25 International Business Machines Corporation Selective partial updates of web content
US8621613B1 (en) * 2009-05-26 2013-12-31 Amazon Technologies, Inc. Detecting malware in content items
CN101964025B (zh) 2009-07-23 2016-02-03 北京神州绿盟信息安全科技股份有限公司 Xss检测方法和设备
US9058489B2 (en) * 2010-01-25 2015-06-16 Samsung Electronics Co., Ltd. Marking documents with executable text for processing by computing systems
US9276952B2 (en) * 2011-05-31 2016-03-01 Hewlett Packard Enterprise Development Lp Automated security testing
US8683596B2 (en) 2011-10-28 2014-03-25 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223977B2 (en) 2011-10-28 2015-12-29 International Business Machines Corporation Detection of DOM-based cross-site scripting vulnerabilities

Also Published As

Publication number Publication date
US8683596B2 (en) 2014-03-25
US9223977B2 (en) 2015-12-29
US20130111595A1 (en) 2013-05-02
GB2496730A (en) 2013-05-22
GB201218726D0 (en) 2012-12-05
US20130111594A1 (en) 2013-05-02
GB2496730B (en) 2015-01-14

Similar Documents

Publication Publication Date Title
DE102012218704A1 (de) Erkennung von schwachstellen für dom-basiertes cross-site-scripting
DE112012002718B4 (de) Erkennen von Sicherheitsschwachstellen in Web-Anwendungen
DE112011101831B4 (de) Schutz vor websiteübergreifenden Scripting-Attacken
US9213832B2 (en) Dynamically scanning a web application through use of web traffic information
DE112019004913T5 (de) Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz
DE112010004980B4 (de) Verbessern der Leistungsfähigkeit von auf Vorlagen beruhenden Javascript-Fensterobjekten
DE112019001121B4 (de) Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
DE112012005016T5 (de) Zielgerichtete Sicherheitsprüfung
DE102016011905A1 (de) Bestimmen der Qualität einer Zusammenfassung eines Multimediainhalts
DE102012209006A1 (de) Testen von Web-Anwendungen auf Sicherheitslücken beim Heraufladen von Dateien
DE112010003454T5 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
DE102013203854A1 (de) Erfassen von bösartigem Computercode in einem ausführenden Programmmodul
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
EP3430558B1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
DE102012216597A1 (de) Wirksames Testen einer Berechtigungslogik von WEB-Komponenten, die eine Berechtigung auf der Grundlage von Ansprüchen einsetzen
DE112010003948T5 (de) Auswerten von Objekten einer Grafischen Benutzeroberfläche zur Überprüfung von Standards
DE112018004408B4 (de) Identifikation von angriffsströmen in einer mehrschichtigen netzwerktopologie
DE112011101943T5 (de) Verfahren und Einheit zum Entschärfen von seitenübergreifenden Sicherheitslücken
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE102020112592A1 (de) Anwendungsverhaltensbezogene Fingerabdrücke
DE112013000393T5 (de) Zuordnung von Webanwendungsinhalten
DE112013000751T5 (de) Datenverarbeitung, Datensammlung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication