DE112011103273B4 - Verfahren, Computerprogrammprodukt und Vorrichtung zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten - Google Patents

Verfahren, Computerprogrammprodukt und Vorrichtung zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten Download PDF

Info

Publication number
DE112011103273B4
DE112011103273B4 DE112011103273.0T DE112011103273T DE112011103273B4 DE 112011103273 B4 DE112011103273 B4 DE 112011103273B4 DE 112011103273 T DE112011103273 T DE 112011103273T DE 112011103273 B4 DE112011103273 B4 DE 112011103273B4
Authority
DE
Germany
Prior art keywords
user request
incoming
application
instructions
pattern
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
DE112011103273.0T
Other languages
English (en)
Other versions
DE112011103273T5 (de
Inventor
Ron Ben-Natan
Leonid Rodniansky
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 DE112011103273T5 publication Critical patent/DE112011103273T5/de
Application granted granted Critical
Publication of DE112011103273B4 publication Critical patent/DE112011103273B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Verfahren in einem Datenverarbeitungssystem zum Weitergeben von Quellkenndaten von einem Front-End-System der Anwendung auf einer Anwendungsebene an ein Überprüfungssystem der Datenebene, das zu einem Back-End-System gehört, aufweisend:• Empfangen einer eingehenden Benutzeranforderung am Überprüfungssystem der Datenebene, die von einem Gateway-System auf der Anwendungsebene eingeht, das zum Front-End-System der Anwendung gehört;• Empfangen einer oder mehrerer ausgehender Anweisungen am Überprüfungssystem der Datenebene, die das Back-End-System zum Ziel haben und durch das Front-End-System der Anwendung auf der Grundlage der empfangenen eingehenden Benutzeranforderung erzeugt werden;• Erzeugen einer Zuordnungsdatenstruktur, wobei die Zuordnungsdatenstruktur erzeugt wird durch:o Verarbeiten einer Vielzahl eingehender Test-Benutzeranforderungen; undo bei jeder eingehenden Test-Benutzeranforderung in der Vielzahl eingehender Test-Benutzeranforderungen das Aufzeichnen eines Musters ausgehender Anforderungen, die durch das Front-End-Anwendungssystem erzeugt wurden und das Back-End-System zum Ziel haben, in Einträgen der Zuordnungsdatenstruktur, wobei das Verarbeiten der Vielzahl eingehender Test-Benutzeranforderungen bei jeder eingehenden Test-Benutzeranforderung aufweist:■ Analysieren der eingehenden Test-Benutzeranforderung, um mindestens einen Anwendungswert in der eingehenden Test-Benutzeranforderung zu erkennen;■ Ersetzen des mindestens einen Anwendungswertes in der eingehenden Test-Benutzeranforderung durch einen eindeutig erkennbaren Wert, um eine abgeänderte eingehende Test-Benutzeranforderung zu erzeugen;■ Verarbeiten der abgeänderten eingehenden Test-Benutzeranforderung durch das Front-End-System der Anwendung; und■ Überwachen ausgehender Anweisungen, die durch das Front-End-System der Anwendung erzeugt wurden, auf den eindeutig erkennbaren Wert, wobei ausgehende Anweisungen, die den eindeutig erkennbaren Wert aufweisen, zu einem Eintrag in der Zuordnungsdatenstruktur hinzugefügt werden, der der eingehenden Test-Benutzeranforderung entspricht, und wobei eine Reihe ausgehender Anweisungen, die in dem Eintrag gespeichert sind, der der eingehenden Test-Benutzeranforderung entspricht, ein Muster ausgehender Anweisungen bilden;• Zugreifen auf die Zuordnungsdatenstruktur durch das Überprüfungssystem der Datenebene, wobei das Zugreifen auf der Grundlage der einen oder der mehreren ausgehenden Anweisungen stattfindet und dadurch die eine oder die mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung korreliert wird bzw. werden;• Abrufen von Quellkenndaten durch das Überprüfungssystem der Datenebene, die zu der eingehenden Benutzeranforderung gehören, wobei das Abrufen auf der Grundlage der Korrelation der einen oder mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung stattfindet; und• Durchführen einer Datenebenen-Überprüfungsoperation durch das Überprüfungssystem der Datenebene auf der Grundlage der Quellkenndaten.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein eine verbesserte Datenverarbeitungsvorrichtung und ein verbessertes Datenverarbeitungsverfahren und insbesondere Mechanismen zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten.
  • Bei modernen Informationsverarbeitungssystemen vollzieht sich gegenwärtig ein Trend vom herkömmlichen Client-Server-Modell hin zu einem Anwendung-Server-Modell. Während das Client-Server-Modell Datenressourcen als Dienste für einen Client einstuft, ermöglicht eine auf Anwendungen beruhende jeder Anwendung, bestimmte und/oder spezielle Teile der Verarbeitung durchzuführen, bevor eine Transaktion oder ein Datenstrom an eine nachfolgende Verarbeitungsschicht übergeben wird. Ein Anwendung-Server-Modell kann eine sogenannte mehrschichtige Anordnung oder Architektur aufweisen. Bei einer mehrschichtigen Anordnung ist jede Schicht für das Durchführen eines bestimmten Aspekts der Verarbeitung zuständig. Die Schichten kommunizieren, indem sie Daten weitergeben oder übertragen, oftmals anhand eines vorgegebenen Protokolls oder einer vorgegebenen Datenstruktur. Eine geschäftliche Transaktion wird daher zwischen Schichten weitergegeben, bei denen es sich um aufeinanderfolgende Ebenen oder Knoten in der Verarbeitungsabfolge handeln kann. Dementsprechend empfängt jede Schicht oder „Ebene“ eine Transaktion von einer vorhergehenden Ebene.
  • Jede Schicht/Ebene kann spezielle Funktionen wie zum Beispiel Datenbankabfragen, XML-Parsing, Tunneln, Protokollzuordnung, Netzwerktransport oder GUI-Operationen (GUI = Graphical User Interface, grafische Benutzeroberfläche) ausführen. Auf jeder Schicht werden Attribute der Transaktion oder des Datenstroms zur nächsten Schicht übertragen. Bestimmte Attribute können jedoch unterdrückt oder weggelassen werden, wenn diese Attribute als auf der nachfolgenden Ebene unnötig angesehen werden. Bei einer mehrschichtigen Anordnung werden daher, obwohl die Skalierung, Datenerfassung und Konsolidierung von Funktionen unter Umständen verbessert werden, bestimmte Attribute der Transaktion oder des Datenstroms unter Umständen nicht so schnell wie bei herkömmlichen Client-Server-Anordnungen weitergegeben. Bei Operationen oder Funktionen, die voraussetzen, dass bestimmte Attribute auf einer bestimmten Ebene zur Verfügung stehen, treten unter Umständen Schwierigkeiten (d.h. Nichtverfügbarkeit) auf, wenn sie auf dieses Attribut angewiesen sind.
  • Eine Gruppe von Beispielen, bei denen Daten zwischen den Operationen verloren gehen, die auf unterschiedlichen Schichten/Ebenen eines auf dem Anwendung-Server-Modell beruhenden Systems durchgeführt werden, sind Sicherheitsfunktionen wie zum Beispiel Prüfprotokolle oder Ähnliches. Nahezu alle Sicherheitsfunktionen beruhen auf einem Berechtigungsnachweis. Bei Prüfprotokollen ist die Identität eines Benutzers oder einer Client-Maschine maßgeblich (z.B. erzeugen sie einen Bericht mit allen Aktivitäten, die der Benutzer oder die Client-Maschine durchgeführt hat), bei der Zugriffskontrolle sind die Identität (z.B. darf Benutzer X nicht auf Daten Y zugreifen) und Ähnliches maßgeblich.
  • In einigen Fällen wird die Sicherheitsfunktion von derselben Ebene bereitgestellt, die die Identitätsebene bereitstellt. Wenn sich zum Beispiel ein Benutzer direkt mit einer Datenbank verbindet, gibt es einen Benutzernamen, der zum Anmelden bei der Datenbank verwendet wird. Derselbe Benutzername wird auch verwendet, um Zugriffsrechte im Datenbanksystem zu definieren, und derselbe Name erscheint in dem von Sicherheitsprüfmechanismen erzeugten Prüfprotokoll. Dies gilt unabhängig davon, ob die Datenbank selbst das System ist, das die Zugriffskontrollregeln durchsetzt und die Prüfung durchführt oder ob ein externes Sicherheitssystem diese Funktionen ausführt. Da der für die Sicherheitsfunktionen verwendete Benutzername durch die Sicherheitsschicht der Datenbank verwaltet wird, ist er für den Sicherheitsadministrator von Bedeutung, der Berechtigungen definiert oder das Prüfprotokoll auswertet.
  • Es gibt jedoch Fälle, in denen die Sicherheitsfunktion auf einer Schicht bereitgestellt wird, während die Identität auf einer anderen Schicht bereitgestellt wird. Ein weit verbreiteter Fall sind Anwendungsserver, die als ihr Back-End eine Datenbank verwenden. In diesen Fällen ist die Anwendung die für die Verwaltung der Identitäten zuständige Schicht. Ein Benutzer meldet sich bei der Anwendung an und stellt zum Beispiel einen Benutzernamen und ein Kennwort bereit. Die Anwendung nutzt in der Regel eine Datenbank an ihrem Back-End, um die Daten zu speichern und zu verwalten, die die Anwendung verwendet oder auf die sie zugreift. Der Anwendungsserver verwendet Verbindungen zur Datenbank.
  • Bei Client/Server-Architekturen besteht normalerweise für jeden Benutzer eine Verbindung zur Datenbank, und oft wird der zur Anmeldung bei der Anwendung verwendete Berechtigungsnachweis auch zur Erzeugung der Verbindung zur Datenbank verwendet, d.h., für jeden Benutzer der Datenbank gibt es auch einen Benutzer auf der Datenbankebene. Dies gilt jedoch nicht für die viel weiter verbreitete, auf Anwendungsservern beruhende Architektur. Stattdessen verwaltet der Anwendungsserver einen Pool von Verbindungen zur Datenbank. Diese Verbindungen werden alle angelegt, wenn der Anwendungsserver zum ersten Mal startet, und sie alle verwenden ein einziges Funktionskonto, d.h., die Verbindungen gehören alle zu einer einzigen Funktionskennung für das Front-End der Anwendung, ohne dass zwischen Anwendern des Front-Ends der Anwendung unterschieden wird. Diese Verbindungen werden von allen Benutzersitzungen wiederverwendet, d.h., es wird Multiplexing verwendet. Das heißt, wenn sich ein Benutzer am Front-End der Anwendung anmeldet, wird bei dem Front-End der Anwendung eine Sitzung angelegt, und das Front-End der Anwendung erhält eine Verbindung aus dem Verbindungspool der Datenbank und weist sie der Sitzung zu. Wenn die Sitzung endet, wird die Verbindung wieder zurück in den Pool freigegeben und kann vom Front-End der Anwendung für eine andere Sitzung verwendet werden. Dies geschieht, um die Leistung zu erhöhen und den Systemaufwand zu verringern.
  • Aus einer sicherheitstechnischen Perspektive betrachtet verursacht dieser Verbindungspoolmechanismus jedoch ein ernsthaftes Problem. Die Identität des Benutzers geht aus dem Blickwinkel der Datenbankebene verloren, d.h., die Benutzeridentität wird nicht an das Back-End der Datenbank weitergegeben und existiert nur auf der Datenbankebene, d.h. am Front-End der Anwendung. Wenn zum Beispiel jemand ein Prüfprotokoll einsehen muss, das von einem auf der Datenbankebene arbeitenden Prüfmechanismus wie beispielsweise von einem Prüfmechanismus der Datenbank selbst oder von einem DAM-System (DAM = Database Activity Monitoring, Überwachung der Datenbankaktivitäten) erzeugt wurde, werden alle Aktivitäten gezeigt, als seien sie von der bei der Datenbank angemeldeten Funktionseinheit durchgeführt worden, d.h. von dem Funktionskonto der Anwendung, die durch eine Funktionskennung gekennzeichnet ist. Ein menschlicher Prüfer oder ein automatisierter Sicherheitsmechanismus möchten im Prüfprotokoll jedoch sehen, welcher Endanwender der Anwendungsebene die auszugebende Datenbankabfrage verursacht hat und daher auf bestimmte sensible Daten zugreifen konnte. Das Prüfprotokoll liefert aus einem Blickwinkel der Sicherheit betrachtet wenig nützliche Informationen, da die „wirkliche Identität“ eines Endanwenders über die Anwendungsebene nicht weitergegeben wird. Obwohl ein Prüfprotokoll der Anwendungsebene verwendet werden könnte, ist es oft ein Prüfprotokoll auf Datenebene, das für bestimmte Sicherheitsmechanismen erforderlich ist, und dies kann nur auf der Datenbankebene durchgeführt werden.
  • Die Veröffentlichung „Event correlation for process discovery from web service“ betrifft eine Methode zur Entdeckung von neuen Businessprozessen. Die Herangehensweise basiert auf einem 3-stufigen Modell. Die erste Stufe kann entweder Prozessereignisprotokolle, oder relationale Daten, oder Dokumente sein. Auf der zweiten Stufe werden einzelne Einheiten der ersten Stufe in Prozessinstanzen agglomeriert. Auf einer dritten Stufe werden Prozessüberblicke/Auswertungen mittels Anwendung verschiedener mathematischen Modelle erzeugt (Motahari-Nezhad, H.R., Saint-Paul, R., Casati, F., Benatallah, B.: Event correlation for process discovery from web service. In: The VLDB Journal (2011) 20, S.417-444. Springer Verlag, New York, 2011. Online veröffentlicht am 22.9.2010; URL: http://dl.acm.org/citation.cfm?id=1997930).
  • Die US 2006 / 0 026 286 A1 betrifft ein System und ein Verfahren zum Erkennen und Verwalten von Metadaten von Benutzersitzungen auf einem Reverse-Proxy-Server. Der Reverse-Proxy-Server befindet sich logisch zwischen einem oder mehreren Ursprungsservern und einer beliebigen Anzahl von Benutzern. Der Reverse-Proxy-Server erkennt den Auf- und Abbau einer Benutzersitzung sowie das mit der Benutzersitzung verbundene Ablaufen. Der Reverse-Proxy-Server ermittelt den Aufbau einer Sitzung aus dem Muster und/oder dem Inhalt der Kommunikation zwischen einem Benutzer und einem Herkunftsserver und ordnet den Benutzer (z. B. über den Benutzernamen oder die Benutzer-ID) der Sitzung zu (z. B. Sitzungs-ID oder Cookie). Eine Benutzersitzungstabelle kann für jede beobachtete Sitzung mit einem Eintrag gefüllt werden. Das Abbrechen einer Sitzung kann durch eine explizite Benutzerabmeldung oder ein Sitzungsende durch den Ursprungsserver erkannt werden.
  • Die US 2010 / 0 132 024 A1 betrifft einen mehrstufigen Attribut-Tracking-Mechanismus, der eine Funktion bereitstellt, die Endbenutzer-Credentials und andere Client-Informationen und Attribute identifiziert und sie den Datenbankanfragen in einer Anwendungsserver-Architektur zuordnet. Offengelegte Konfigurationen identifizieren die Verarbeitungseinheit oder den Thread, der vom Betriebssystem zugewiesen wurde, um die eingehende Anforderung des Benutzers auf der Anwendungs-Stufe zu bedienen. Eine Zuordnung von Benutzern zu Threads ermöglicht es, aufeinanderfolgende Thread-Aktivitäten auf den initiierenden Benutzer zurück zu mappen. Ein herkömmliches Unterschlagen von Datenbankzugriffsversuchen auf Anwendungs-Stufe (so genannte „Server Taps“ oder Staps) identifizierte nur den Datenbankbenutzer (das Konto in der Datenbank) und die zugehörige Verbindung als den verantwortlichen Benutzer. Durch das Abfangen oder „Anzapfen“ der Zugriffsanforderung auf Betriebssystem-Sufe (mittels sogenannter „Kernel-Taps“ oder „ktaps“) stimmt der Mechanismus damit überein, welche Anwendungsanforderungen welchen Datenbankanforderungen zugeordnet sind. Durch diesen Abgleich können die Datenbankanfragen mit den durch die Anwendungsanfrage bekannten Benutzer-Credentials gekennzeichnet werden.
  • KURZDARSTELLUNG
  • Für vorliegende Erfindung stellt sich die Aufgabe, ein Verfahren, ein Computerprogrammprodukt und eine Vorrichtung zum Laufzeit- Monitoren, -Kontrollieren und -Zusichern von Benutzerzugriffen auf eine Datenbank zu schaffen.
  • Diese Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst. Vorteilhafte Weiterbildungsformen sind Gegenstand der Beschreibung, der Patentansprüche und der beiliegenden Figuren.
  • Es wird in einem Datenverarbeitungssystem ein weiteres beispielhaftes Verfahren bereitgestellt, um Quellkenndaten von einem Front-End-System der Anwendung auf einer Anwendungsebene an ein Überprüfungssystem der Datenebene weiterzugeben, das zu einem Back-End-System gehört. Das Verfahren weist das Empfangen einer Benutzeranforderung am Überprüfungssystem der Datenebene auf, die von einem Gateway-System auf der Anwendungsebene eingeht, das zum Front-End-System der Anwendung gehört. Das Verfahren weist ferner das Empfangen einer oder mehrerer ausgehender Anweisungen am Überprüfungssystem der Datenebene auf, die das Back-End-System zum Ziel haben und durch das Front-End-System der Anwendung auf der Grundlage der empfangenen eingehenden Benutzeranforderung erzeugt werden. Darüber hinaus weist das Verfahren das Zugreifen auf eine Zuordnungsdatenstruktur durch das Überprüfungssystem der Datenebene auf, wobei das Zugreifen auf der Grundlage der einen oder mehreren ausgehenden Anweisungen stattfindet und dadurch die eine oder die mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung korreliert wird bzw. werden. Außerdem weist das Verfahren das Abrufen von Quellkenndaten durch das Überprüfungssystem der Datenebene auf, die zu der eingehenden Benutzeranforderung gehören, wobei das Abrufen auf der Grundlage der Korrelation der einen oder mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung stattfindet. Zudem weist das Verfahren das Durchführen einer Datenebenen-Überprüfungsoperation durch das Überprüfungssystem der Datenebene auf der Grundlage der Quellkenndaten auf.
  • Des Weiteren wird ein beispielhaftes Computerprogrammprodukt bereitgestellt, das ein computernutzbares oder computerlesbares Medium mit einem computerlesbaren Programm aufweist. Das computerlesbare Programm bewirkt, wenn es auf einer Datenverarbeitungseinheit ausgeführt wird, dass die Datenverarbeitungseinheit verschiedene Operationen oder Kombinationen davon durchführt, die oben in Bezug auf die Ausführungsform beschrieben sind, die das Verfahren veranschaulicht.
  • Bei einem Beispiel wird ein System/eine Vorrichtung bereitgestellt. Das System/die Vorrichtung kann einen oder mehrere Prozessoren und einen Hauptspeicher aufweisen, der mit dem einen oder den mehreren Prozessoren verbunden ist. Der Hauptspeicher kann Anweisungen aufweisen, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren verschiedene Operationen oder Kombinationen davon durchführt, die oben in Bezug auf die Ausführungsform beschrieben sind, die das Verfahren veranschau licht.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden in Anbetracht der folgenden detaillierten Beschreibung beispielhafter Ausführungsformen der vorliegenden Erfindung beschrieben bzw. werden dem Fachmann verständlich.
  • Figurenliste
  • Die Erfindung sowie eine bevorzugte Art der Verwendung und weitere Zielsetzungen und Vorteile der Erfindung werden jedoch am besten unter Bezugnahme auf die folgende eingehende Beschreibung veranschaulichender Ausführungsformen in Verbindung mit den beigefügten Zeichnungen deutlich, wobei
    • 1 eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems ist, in dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können;
    • 2 ein beispielhaftes Blockschaltbild eines beispielhaften Datenverarbeitungssystems ist, in dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können;
    • 3 ein beispielhaftes Blockschaltbild eines Systems zum Erzeugen einer Zuordnungsspezifikation zum Zuordnen eingehender Front-End-Benutzeranforderungen zu ausgehenden Back-End-Anforderungen gemäß einer veranschaulichenden Ausführungsform ist;
    • 4 ein beispielhaftes Blockschaltbild eines Systems zum Prüfen von Zugriffen auf ein Back-End-System unter Verwendung von Zuordnungsdaten ist, die gemäß einer veranschaulichenden Ausführungsform während einer Lernbetriebsart erzeugt wurden;
    • 5 ein Ablaufplan ist, der einen beispielhaften Funktionsablauf eines Gateway-Systems während einer Lernbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt;
    • 6 ein Ablaufplan ist, der einen beispielhaften Funktionsablauf eines Überprüfungssystems während einer Lernbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt;
    • 7 ein Ablaufplan ist, der einen beispielhaften Funktionsablauf eines Gateway-Systems während einer Laufzeitbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt; und
    • 8 ein Ablaufplan ist, der einen beispielhaften Funktionsablauf eines Überprüfungssystems während einer Laufzeitbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt.
  • DETAILLIERTE BESCHREIBUNG
  • Die veranschaulichenden Ausführungsformen stellen Mechanismen zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten bereit. Die Mechanismen der veranschaulichenden Ausführungsformen lösen die oben genannten Probleme, indem sie einen nicht beeinträchtigenden Abgleichmechanismus zur Identitätsweitergabe bereitstellen, d.h. einen Abgleichmechanismus, der keine Änderung des Front-End-Codes der Anwendung erfordert. Darüber hinaus ist der Abgleichmechanismus der veranschaulichenden Ausführungsformen exakt, da er eingefügte oder gesetzte eindeutige Werte verwendet, die leicht erkennbar sind und bei denen es sich nicht um Werte handelt, die in mehreren Datenbankabfragen auftreten können.
  • Die veranschaulichenden Ausführungsformen arbeiten auf der zugrunde liegenden Voraussetzung, dass die auf der Anwendungsebene eingehenden, auf Benutzern beruhenden Anforderungen verarbeitet werden können, eindeutig erkennbare Werte in diese Anforderungen einzusetzen und die Auswirkung auf die ausgehenden Datenbankanforderungen zu überwachen, z.B. die SQL-Anweisungen, die die Anwendungsebene erzeugt hat und die an die Datenbankebene gesendet wurden. In einer Lernbetriebsart nutzen die Mechanismen der veranschaulichenden Ausführungsformen dieses Abgleichen zwischen eindeutigen Werten in den auf der Anwendungsschicht/-ebene eingehenden Benutzeranforderungen und denselben eindeutigen Werten in den ausgehenden Datenbankanforderungen als Möglichkeit zum Erlernen der Beziehung zwischen bestimmten Arten oder Mustern von eingehenden Benutzeranforderungen und den resultierenden ausgehenden Datenbankanforderungen. Sobald dieser Lernvorgang abgeschlossen ist, werden die Ergebnisse des Lernvorgangs zum Zuordnen während der Laufzeit verwendet, um Datenbankebenen-Prüfprotokolle zu erzeugen, die Benutzeridentitätsdaten aufweisen, d.h. Prüfprotokolle, die von einem auf der Datenbankebene anstelle der Anwendungsebene arbeitenden Prüfmechanismus erzeugt wurden. Das bedeutet während des Laufzeitbetriebs, dass die Mechanismen zum Setzen eindeutiger Werte nicht verwendet werden, sondern es wird stattdessen die erlernte Zuordnung zwischen einer eingehenden Benutzeranforderung und einer ausgehenden Datenbankanforderung oder Datenbankanweisung bzw. Datenbankanforderungen oder Datenbankanweisungen verwendet, um eine eingehende Benutzeranforderung mit einer anschließenden ausgehenden Datenbankanforderung/-anweisung bzw. mit ausgehenden Datenbankanforderungen/-anweisungen zu korrelieren, und es wird ein entsprechendes Prüfprotokoll mit der Benutzerkennung des Benutzers erzeugt, der die ursprüngliche eingehende Benutzeranforderung ausgegeben hat. Dieses Prüfprotokoll kann dann von einem Prüfer verwendet werden, um zu ermitteln, welcher Benutzer auf sensible Daten in dem Datenbanksystem zugreifen konnte.
  • Dem Fachmann wird klar sein, dass die vorliegende Erfindung in Form eines Systems, Verfahrens oder Computerprogrammprodukts verkörpert sein kann. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die im vorliegenden Dokument allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computernutzbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein in einem Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombinationen davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Computercode kann unter Verwendung jedes beliebigen geeigneten Mediums, darunter und ohne Beschränkung auf die Aufzählung, drahtlose oder drahtgebundene Medien, Lichtwellenleiter, Hochfrequenz (HF) usw., oder unter Verwendung beliebiger geeigneter Kombinationen davon übertragen werden.
  • Computerprogrammcode zum Ausführen von Operationen bei Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java™, Smalltalk™, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie „C“ oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Nachstehend sind Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den veranschaulichenden Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren.
  • Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß den verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder einzelne Block im Ablaufplan bzw. in den Blockschaltbildern ein Modul, ein Segment oder einen Teil des Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Außerdem sollte beachtet werden, dass bei einigen alternativen Realisierungsformen die im Block angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge ausgeführt werden können. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der damit verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschaltbilder und/oder des dargestellten Ablaufplans sowie Kombinationen von Blöcken in den dargestellten Blockschaltbildern und/oder im dargestellten Ablaufplan mithilfe von speziellen Systemen auf der Grundlage von Hardware zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden kann bzw. können.
  • Es wird klar sein, dass die veranschaulichenden Ausführungsformen bei vielen unterschiedlichen Arten von Datenverarbeitungsumgebungen genutzt werden können, unter anderem in einer verteilten Datenverarbeitungsumgebung, in einer einzelnen Datenverarbeitungseinheit und dergleichen. Um einen Kontext für die Beschreibung der speziellen Elemente und speziellen Funktionalität der veranschaulichenden Ausführungsformen bereitzustellen, sind die 1 und 2 als beispielhafte Umgebungen angefügt, in denen Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Es sollte klar sein, dass die 1 bis 2 lediglich Beispiele sind und keinerlei Einschränkung hinsichtlich der Umgebungen darstellen oder stillschweigend einschließen sollen, in denen Aspekte oder Ausführungsformen der vorliegenden Erfindung realisiert sein können. An den abgebildeten Umgebungen können viele Abänderungen vorgenommen werden, ohne vom Gedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Unter Bezugnahme auf die Figuren gibt 1 eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems wieder, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das verteilte Datenverarbeitungssystem 100 kann ein Netzwerk aus Computern aufweisen, in dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, bei dem es sich um das Medium handelt, das Datenaustauschverbindungen zwischen verschiedenen Einheiten und Computern bereitstellt, die innerhalb des verteilten Datenverarbeitungssystems 100 untereinander verbunden sind. Das Netzwerk 102 kann Verbindungen wie beispielsweise drahtgebundene oder drahtlose Datenaustauschverbindungen oder Lichtwellenleiter aufweisen.
  • Bei dem abgebildeten Beispiel sind der Server 104 und der Server 106 sowie die Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind die Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Die Clients 110, 112 und 114 können zum Beispiel Personal Computer, Netzwerkcomputer oder Ähnliches sein. Bei dem abgebildeten Beispiel stellt der Server 104 den Clients 110, 112 und 114 Daten wie beispielsweise Bootdateien, Betriebssystemabbilder und Anwendungen bereit. Bei dem abgebildeten Beispiel sind die Clients 110, 112 und 114 Clients des Servers 104. Das verteilte Datenverarbeitungssystem 100 kann weitere Server, Clients, Anzeigeeinheiten und andere, nicht gezeigte Einheiten aufweisen.
  • Bei dem abgebildeten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 für eine weltweit verteilte Reihe von Netzwerken und Gateways steht, die zum Datenaustausch untereinander die Protokollreihe des Transmission Control Protocol/Internet Protocol (TCP/IP) nutzen. Das Herzstück des Internets bildet ein Hauptstrang (Backbone) mit schnellen Datenübertragungsleitungen zwischen Hauptknoten bzw. Host-Computern, die aus tausenden von Computersystemen für Wirtschaft, Behörden und Bildungsinstitutionen sowie anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann die verteilte Datenverarbeitungsumgebung 100 auch in Form einer Reihe unterschiedlicher Arten von Netzwerken, zum Beispiel in Form eines Intranets, eines lokalen Netzwerks (LAN), eines Weitverkehrsnetzwerks (WAN) oder dergleichen realisiert sein. Wie oben erwähnt ist 1 als Beispiel und nicht als Einschränkung der Architektur unterschiedlicher Ausführungsformen der vorliegenden Erfindung gedacht, und daher sind die in 1 gezeigten einzelnen Elemente nicht als Einschränkung in Bezug auf die Umgebungen zu betrachten, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung realisiert sein können.
  • Unter Bezugnahme auf 2 ist dort ein Blockschaltbild eines beispielhaften Datenverarbeitungssystems gezeigt, in dem Aspekte der veranschaulichenden Ausführungsformen realisiert sein können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers wie beispielsweise des Clients 110 in 1, in dem sich computernutzbarer Programmcode oder computernutzbare Anweisungen befinden können, die die Prozesse veranschaulichender Ausführungsformen der vorliegenden Erfindung realisieren.
  • Im dargestellten Beispiel nutzt das Datenverarbeitungssystem 200 eine Hub-Architektur mit einem North-Bridge- und Speichercontroller-Hub (North Bridge and Memory Controller Hub, NB/MCH) 202 und einem South-Bridge- und Eingabe/Ausgabe-Controller-Hub (South Bridge and input/output (I/O) Controller Hub, SB/ICH) 204. Die Verarbeitungseinheit 206, der Hauptspeicher 208 und der Grafikprozessor 210 sind mit dem North-Bridge- und Speichercontroller-Hub 202 verbunden. Der Grafikprozessor 210 kann über einen AGP-Anschluss (AGP = Accelerated Graphics Port) mit dem NB/MCH 202 verbunden sein.
  • Im dargestellten Beispiel ist ein LAN-Adapter (LAN = Local Area Network, lokales Netzwerk) 212 mit dem SB/ICH 204 verbunden. Ein Audioadapter 216, ein Tastatur- und Mausadapter 220, ein Modem 222, ein Nur-Lese-Speicher (ROM) 224, ein Festplattenlaufwerk (HDD) 226, ein CD-ROM-Laufwerk 230, USB-Anschlüsse (USB = Universal Serial Bus) und andere Datenübertragungsanschlüsse 232 sowie PCI/PCIe-Einheiten (PCI = Peripheral Component Interconnect, PCle = Peripheral Component Interconnect Express) 234 sind über den Bus 238 und den Bus 240 mit dem SB/ICH 204 verbunden. Zu PCI/PCIe-Einheiten können zum Beispiel Ethernet-Adapter, Zusatzkarten und PC-Karten für Notebook-Computer gehören. Beim PCI-System wird eine Steuereinheit für den Kartenbus verwendet, bei PCle jedoch nicht. Beim ROM 224 kann es sich zum Beispiel um ein Flash-BIOS-System (BIOS = Binary Input/Output System) handeln.
  • Das HDD 226 und das CD-ROM-Laufwerk 230 sind über den Bus 240 mit dem SB/ICH 204 verbunden. Beim HDD 226 und beim CD-ROM-Laufwerk 230 kann zum Beispiel eine IDE-Schnittstelle (IDE = Integrated Drive Electronics) oder eine SATA-Schnittstelle (SATA = Serial Advanced Technology Attachment) verwendet werden. Die SIO-Einheit (SIO = Super I/O) 236 kann mit dem SB/ICH 204 verbunden sein.
  • Auf der Verarbeitungseinheit 206 wird ein Betriebssystem ausgeführt. Das Betriebssystem koordiniert verschiedene Komponenten im Datenverarbeitungssystem 200 in 2 und stellt die Steuerung für diese Komponenten bereit. Als Client kann es sich bei dem Betriebssystem um ein handelsübliches Betriebssystem wie zum Beispiel Microsoft® Windows® 7 handeln (Microsoft und Windows sind Handelsmarken von Microsoft Corporation in den Vereinigten Staaten, anderen Ländern oder in beidem). Ein objektorientiertes Programmiersystem wie zum Beispiel das Programmiersystem Java™ kann in Verbindung mit dem Betriebssystem ausgeführt werden und stellt dem Betriebssystem Aufrufe aus Java™-Programmen oder Java™-Anwendungen bereit, die auf dem Datenverarbeitungssystem 200 ausgeführt werden (Java ist eine Handelsmarke von Sun Microsystems in den Vereinigten Staaten, anderen Ländern oder in beidem).
  • Als ein Server kann es sich bei dem Datenverarbeitungssystem 200 zum Beispiel um ein Computersystem des Typs IBM® eServer™ System p® handeln, das auf dem Betriebssystem Advanced Interactive Executive (AIX®) oder auf dem Betriebssystem LINUX® ausgeführt wird (eServer, System p und AIX sind Handelsmarken von International Business Machines Corporation in den Vereinigten Staaten, anderen Ländern oder in beidem ist, während LINUX eine Handelsmarke von Linus Torvalds in den Vereinigten Staaten, anderen Ländern oder in beidem ist). Bei dem Datenverarbeitungssystem 200 kann es sich um ein symmetrisches Multiprozessorsystem (SMP) mit einer Vielzahl von Prozessoren in der Verarbeitungseinheit 206 handeln. Alternativ kann ein System mit einem einzigen Prozessor verwendet werden.
  • Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem und Anwendungen oder Programme befinden sich auf Speichereinheiten wie zum Beispiel auf dem HDD 226 und können zur Ausführung durch die Verarbeitungseinheit 206 in den Hauptspeicher 208 geladen werden. Die Prozesse veranschaulichender Ausführungsformen der vorliegenden Erfindung können durch die Verarbeitungseinheit 206 unter Verwendung von computernutzbarem Programmcode durchgeführt werden, der sich in einem Hauptspeicher wie zum Beispiel dem Hauptspeicher 208, dem ROM 224 oder in einer oder mehreren Peripherieeinheiten 226 und 230 befinden kann.
  • Ein Bussystem wie zum Beispiel ein in 2 gezeigter Bus 238 oder Bus 240 kann aus einem oder mehreren Bussen bestehen. Selbstverständlich kann das Bussystem mithilfe einer beliebigen Art von Datenaustauschstruktur bzw. Datenaustauscharchitektur realisiert werden, die eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten bereitstellt, die mit der Struktur bzw. Architektur verbunden sind. Eine Datenaustauscheinheit wie zum Beispiel ein Modem 222 oder ein Netzwerkadapter 212 aus 2 kann eine oder mehrere Einheiten aufweisen, die zum Senden und Empfangen von Daten verwendet werden. Ein Hauptspeicher kann zum Beispiel der Hauptspeicher 208, der ROM 224 oder ein Cache-Speicher sein, wie er zum Beispiel im NB/MCH 202 in 2 zu finden ist.
  • Dem Fachmann wird klar sein, dass die Hardware in den 1 bis 2 je nach Realisierung variieren kann. Andere interne Hardware- oder Peripherieeinheiten wie zum Beispiel Flash-Speicher, gleichwertiger nichtflüchtiger Speicher oder optische Plattenlaufwerke und Ähnliches können zusätzlich oder anstelle der in den 1 bis 2 dargestellten Hardware verwendet werden. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen im Gegensatz zu dem zuvor erwähnten symmetrischen Multiprozessorsystem auf ein Mehrprozessor-Datenverarbeitungssystem angewendet werden, ohne vom Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Darüber hinaus kann das Datenverarbeitungssystem 200 die Form einer beliebigen Anzahl unterschiedlicher Datenverarbeitungssysteme annehmen, unter anderem die Form von Client-Datenverarbeitungseinheiten, Server-Datenverarbeitungseinheiten, eines Tablet-Computers, eines Notebook-Computers, Telefons oder einer anderen Datenaustauscheinheit, eines Personal Digital Assistant (PDA) oder ähnlicher Einheiten. Bei einigen veranschaulichenden Ausführungsformen kann das Datenverarbeitungssystem 200 eine transportable Datenverarbeitungseinheit sein, die mit Flash-Speicher ausgestattet ist, um nichtflüchtigen Speicher zum Beispiel zum Speichern von Betriebssystemdateien und/oder vom Benutzer erzeugter Daten bereitzustellen. Im Grunde genommen kann es sich bei dem Datenverarbeitungssystem 200 um ein beliebiges bekanntes oder später entwickeltes Datenverarbeitungssystem ohne architektonische Einschränkung handeln.
  • Unter Bezugnahme auf 1 kann sich ein Benutzer einer Client-Maschine wie zum Beispiel des Clients 110 bei einem Front-End der Anwendung eines Anwendungsserversystems anmelden, indem er auf ein Front-End der Anwendung zugreift, das auf einem Server wie zum Beispiel dem Server 104 oder 106 untergebracht sein kann. Der Benutzer kann einen Web-Browser, ein Applet oder Ähnliches verwenden, die auf der Client-Maschine 110 bereitgestellt werden, um auf das Front-End der Anwendung zuzugreifen und sich am Front-End der Anwendung anzumelden, indem er eine Benutzerkennung und entsprechende Sicherheitsdaten wie zum Beispiel einen Benutzernamen und ein Kennwort bereitstellt. Das Front-End der Anwendung kann anschließend Operationen durchführen, um eine Sitzung zu erzeugen, die der Interaktion des Benutzers mit dem Front-End der Anwendung zuzuordnen ist, indem es z.B. ein Sitzungstoken erzeugt, das der Verbindung zwischen der Client-Maschine 110 des Benutzers und dem Front-End der Anwendung auf dem Server 104 zuzuordnen ist.
  • Als Reaktion auf Benutzeranforderungen, z.B. HTTP-Anforderungen (HTTP = Hypertext Transfer Protocol), auf den Zugriff auf Daten, die in einer Back-End-Datenbank wie zum Beispiel in einem Speichernetzwerk 108 oder in einer anderen zum Front-End-Server 104 der Anwendung gehörenden Datenbank gespeichert sind, bezieht das Front-End der Anwendung eine Verbindung aus dem Verbindungspool der Datenbank, z.B. für die Zwecke dieses Beispiels aus der Datenbank 108 in 1, und verwendet die bezogene Verbindung, um die resultierende(n) Datenbankabfrage bzw. Datenbankanforderungen/Datenbankanweisungen an die Datenbank 108 zu senden und von der Datenbank 108 Antworten zu empfangen. Wie oben erläutert sind diese Verbindungen lediglich mit der Funktionskennung des Front-Ends der Anwendung verknüpft, und die Identitätsdaten des Benutzers, z.B. der vom Front-End der Anwendung verwendete Benutzername, werden nicht an die Datenbank 108 weitergegeben.
  • Die veranschaulichenden Ausführungsformen stellen einen Korrelationsmechanismus bereit, der das Durchführen der Überprüfung auf einer Datenebene ermöglicht, z.B. am Back-End der Datenbank, während es nach wie vor möglich ist, die durch den Prüfmechanismus bezogenen Prüfdaten mit BenutzerIdentitätsdaten zu korrelieren, die auf der Anwendungsebene gepflegt werden und normalerweise beim Zugreifen auf die Datenebene verloren gehen. Die Mechanismen der veranschaulichenden Ausführungsformen weisen Mechanismen zum Abfangen eingehender Benutzeranforderungen, Einfügen eindeutiger Werte in die abgefangenen eingehenden Benutzeranforderungen und zum Überwachen dieser eindeutigen Werte in ausgehenden Anforderungen/Anweisungen auf, die an die Datenebene gesendet werden, z.B. an das Back-End-System der Datenbank. Diese Überwachung und Korrelation eingehender Anforderungen zu ausgehenden Anforderungen/Anweisungen ermöglicht die Erzeugung einer Zuordnung, die anschließend von weiteren Mechanismen verwendet werden kann, die zur Laufzeit verwendet werden, um Prüfdaten auf der Datenebene zu erfassen. Das heißt, dass die Zuordnung verwendet werden kann, um an das Back-End-System der Datenbank und anschließend an die Benutzerberechtigungsnachweise gesendete Anforderungen mit Anforderungen zu korrelieren, die durch die Anwendungsebene empfangen wurden. Auf diese Weise können die auf der Datenebene arbeitenden Prüfmechanismen über Benutzer-Berechtigungsnachweisdaten der Anwendungsebene informiert werden, die Zugriffen auf Daten entsprechen, die im Back-End-System der Datenbank gespeichert sind.
  • Die Mechanismen der veranschaulichenden Ausführungsformen weisen zwei Betriebsarten (oder Phasen) auf. In einer ersten Betriebsart (oder Phase), d.h. in der Lernbetriebsart, arbeiten die Mechanismen der veranschaulichenden Ausführungsformen, um Muster eingehender Benutzeranforderungen und entsprechender ausgehender Anforderungen/Anweisungen zu erlernen, die an das Back-End-System der Datenbank gesendet werden. Die Zuordnung dieser Muster wird verwendet, um eine Spezifikation oder eine Gruppe von Spezifikationen zu erzeugen, die während einer zweiten Betriebsart, d.h. während der Laufzeitbetriebsart, verwendet werden können. Während der Laufzeitbetriebsart wird bzw. werden die Spezifikation(en) verwendet, um ausgehende Anforderungen zu erkennen, die an das Back-End-System der Datenbank gesendet werden, und diese ausgehenden Anforderungen mit eingehenden Benutzeranforderungen zu korrelieren, die durch das Front-End-System der Anwendung empfangen werden. Die eingehenden Benutzeranforderungen weisen eine Sitzungskennung auf, die anschließend verwendet werden kann, um die eingehende Benutzeranforderung mit einer bestimmten Benutzerkennung zu korrelieren. Die Benutzerkennung kann somit den ausgehenden Anforderungen zugeordnet werden, die zu Prüf- oder anderen Überwachungszwecken an das Back-End-System der Datenbank gesendet werden.
  • 3 ist ein beispielhaftes Blockschaltbild eines Systems zum Erzeugen einer Zuordnungsspezifikation zum Zuordnen eingehender Front-End-Benutzeranforderungen zu ausgehenden Back-End-Anforderungen gemäß einer veranschaulichenden Ausführungsform. Die in 3 gezeigten Funktionselemente und nachfolgende weitere Blockschaltbilder können als Software, Hardware oder als beliebige Kombination aus Software und Hardware realisiert sein. Bei einer veranschaulichenden Ausführungsform sind die Funktionselemente in 3 als Softwareanweisungen realisiert, die auf einer oder mehreren Datenverarbeitungseinheiten ausgeführt werden. In 3 gezeigte Datenstrukturen und Ähnliches können in Datenspeichereinheiten gespeichert sein, die sich innerhalb dieser einen oder mehreren Datenverarbeitungseinheiten befinden oder zu diesen gehören. Abbildungen von Netzwerken sind als Darstellung von Datenaustauschnetzwerken gedacht, bei denen es sich um dieselbe Art oder um andere Arten handeln kann und die mehr als ein Datenaustauschnetzwerk aufweisen können. Die Datenaustauschnetzwerke können lokale Netzwerke, Weitverkehrsnetzwerke, das Internet oder eine beliebige andere bekannte oder später entwickelte Art von Datenaustauschnetzwerk sein. Die folgende Beschreibung setzt voraus, dass die Mechanismen der veranschaulichenden Ausführungsformen bei Zugriffen auf ein Back-End-Datenbanksystem angewendet werden. Es sollte jedoch klar sein, dass die Mechanismen der veranschaulichenden Ausführungsformen nicht darauf beschränkt sind. Vielmehr können die veranschaulichenden Ausführungsformen bei beliebigen Systemen verwendet werden, in denen Anforderungen an eine Front-End-Anwendung verarbeitet werden, um Anforderungen/Anweisungen zu erzeugen, die an ein Back-End-System gesendet werden und daher eine Zuordnung von eingehenden Anforderungen zu ausgehenden Anforderungen/Anweisungen wünschenswert ist.
  • Außerdem sollte klar sein, dass, obwohl die folgende Beschreibung voraussetzt, dass durch die Front-End-Anwendung auf der Grundlage eingehender Benutzeranforderungen (bei denen es sich um HTTP-Anforderungen oder Ähnliches handeln kann) SQL-Anweisungen (SQL = Structured Query Language) erzeugt werden, die veranschaulichenden Ausführungsformen nicht darauf beschränkt sind. Im Gegenteil, ein beliebiges System, in dem eingehende Anforderungen bearbeitet werden, um eine Gruppe ausgehender Anforderungen zu erzeugen, kann unabhängig von der verwendeten Sprache oder den verwendeten Protokollen die Mechanismen der veranschaulichenden Ausführungsformen realisieren.
  • Wie in 3 gezeigt weisen die Mechanismen der veranschaulichenden Ausführungsformen ferner ein Gateway-System 310 auf, das verwendet wird, um eingehende Benutzeranforderungen 315 von der Client-Datenverarbeitungseinheit 305 an das Front-End 320 der Anwendung abzufangen, und einen Überprüfungsmechanismus 330 zum Überprüfen ausgehender Datenbankanforderungen/-anweisungen 325, die vom Front-End 320 der Anwendung an das Back-End 340 der Datenbank gesendet werden. Während einer Lernbetriebsart fängt das Gateway-System 310 die eingehenden Benutzeranforderungen 315 ab und analysiert das Protokoll der eingehenden Benutzeranforderungen 315 unter Verwendung des Parsers 312. Die analysierte eingehende Benutzeranforderung 315 wird anschließend verarbeitet, um festzustellen, wo Anwendungswerte, z.B. Kontonummern, Namen usw., vorhanden sind. Beispielsweise kann das Gateway-System 310 eine Anwendungswertregel-Datenstruktur 314 oder Ähnliches aufweisen, die infrage kommende Anwendungswerte erkennt, z.B. die Variablennamen, den Speicherort des Datenformats oder Ähnliches, und das Gateway-System 310 kann diese Regeln 314 auf die analysierten eingehenden Benutzeranforderungen 315 anwenden, um die Anwendungswerte in der von der Client-Datenverarbeitungseinheit 305 eingehenden Benutzeranforderung zu erkennen.
  • Die Einfügelogik 316 für eindeutige Werte des Gateway-Mechanismus 310 verändert diese Werte durch Einfügen oder „Einschleusen“ eindeutig erkennbarer Werte (z.B. nach dem Zufallsprinzip erzeugte große Zeichenfolgen, SHA-1-Werte (SHA = Secure Hash Algorithm) oder Ähnliches) in die eingehenden Benutzeranforderungen, um die Kontonummern, Namen oder Ähnliches zu ersetzen. Während einer Lernbetriebsart ist der Inhalt der Anforderungen nicht von Bedeutung, sondern nur die Fähigkeit, eingehende Benutzeranforderungen mit den ausgehenden Anforderungen/Anweisungen abzugleichen, die vom Front-End 320 der Anwendung erzeugt wurden. Daher können Werte, die normalerweise über das Front-End der Anwendung 320 an das Back-End-System 340 der Datenbank weitergegeben werden, unter Verwendung des Parsers 312 erkannt werden, und die Anwendungswertregel-Datenstruktur 314 kann durch eindeutig erkennbare Werte ersetzt werden.
  • Diese eindeutig erkennbaren Werte werden so erzeugt, dass der eindeutig erkennbarer Wert nicht innerhalb eines vorgegebenen Zeitraums wiederholt wird (der so gewählt werden kann, dass der Zeitraum im Vergleich zu der Zeitdauer einer typischen Sitzung relativ groß ist, die beim Front-End 320 der Anwendung eingerichtet wird). Jede eingehende Benutzeranforderung weist ihre eigenen eindeutig erkennbaren Werte auf, sodass sie eindeutig von anderen Anforderungen unterschieden werden kann, die innerhalb des vorgegebenen Zeitraums vom Front-End 320 der Anwendung verarbeitet werden.
  • Die Änderung der Anwendungswerte in eindeutig erkennbare Werte ist ein wichtiger Aspekt der Lernbetriebsart der Mechanismen der veranschaulichenden Ausführungsformen. Es sollte klar sein, dass es Systeme gibt, z.B. Oracle Secerno, das bei der Oracle Corporation erhältlich ist, oder SecureSphere, das bei Imperva erhältlich ist, die den Abgleich zwischen eingehenden Benutzeranforderungen und ausgehenden Datenbankanforderungen/-anweisungen durchführen. Diese Systeme extrahieren Zeitstempel und Werte aus den eingehenden Benutzeranforderungen und gleichen diese mit ähnlichen Werten in den ausgehenden Datenbankanforderungen/-anweisungen ab. Wenn Werte sowohl in der eingehenden Benutzeranforderung als auch in den ausgehenden Datenbankanforderungen/- anweisungen festgestellt werden, kann ein Abgleich durchgeführt werden, und das System kann schlussfolgern, dass diese spezielle(n) eingehende(n) Benutzeranforderung(en) veranlasst hat bzw. haben, dass die Datenbankanforderung(en)/-anweisung(en) erzeugt wird bzw. werden.
  • Die Systeme Oracle Secerno und Imperva SecureSphere und ähnliche Systeme sind dahingehend sehr ungenau, dass die in den eingehenden Benutzeranforderungen empfangenen Werte wegen der Verarbeitung auf der Anwendungsschicht oft nicht den Werten in den ausgehenden Datenbankanforderungen/-anweisungen entsprechen. Darüber hinaus kann die zeitliche Steuerung ein Problem sein, da die Werte nicht eindeutig sind und mehr als eine eingehende Benutzeranforderung dieselben Werte aufweisen kann, die in die ausgehenden Datenbankanforderungen/- anweisungen aufgenommen werden können. Das heißt, dass Werte in den eingehenden Benutzeranforderungen oftmals nicht in der/den ausgehenden Datenbankanforderung(en)/-anweisung(en) enthalten oder in gewisser Weise verändert sind, sodass sie nicht entsprechend abgeglichen werden können. Außerdem besteht eine Vorgabe in Bezug auf die zeitliche Steuerung, z.B., dass eine erste eintreffende eingehende Benutzeranwendung einer ersten ausgehenden Datenbankanforderung/-anweisung entspricht, die einen übereinstimmenden Wert aufweist. Wenn jedoch, wie allgemein üblich, mehr als eine eingehende Benutzeranforderung durch die Anwendungsebene verarbeitet wird, kann es sein, dass die ausgehenden Datenbankanforderungen/-anweisungen in Bezug auf die zeitliche Steuerung untereinander vermischt werden und gemeinsame Werte aufweisen, was zu einer Nichtübereinstimmung führt, bei der eine ausgehende Datenbankanforderung/-anweisung, die eigentlich zu einer ersten eingehenden Benutzeranforderung gehört, fälschlicherweise mit einer zweiten eingehenden Benutzeranforderung abgeglichen wird.
  • Daher werden mit den Mechanismen der veranschaulichenden Ausführungsformen eindeutig erkennbare Werte erzeugt und in die eingehenden Benutzeranforderungen 315 eingefügt oder „gesetzt“, bevor sie über die Verarbeitung auf der Anwendungsebene weitergegeben werden, die durch das Front-End-System 320 der Anwendung durchgeführt wird. Ein Protokoll dieser eindeutig erkennbaren Werte und der entsprechenden eingehenden Benutzeranforderung, das eine Sitzungskennung aufweist, wird durch das Gateway-System 310 zum Überprüfungssystem 330 übertragen. Auf diese Weise werden, wenn die Verarbeitung auf der Anwendungsebene ausgehende Datenbankanforderungen/-anweisungen 325 ausgibt, die eindeutig erkennbaren Werte in diese ausgehenden Datenbankanforderungen/-anweisungen 325 eingebunden, sodass sie eindeutig abgeglichen werden können, selbst wenn die Verarbeitung auf der Anwendungsebene mehrere eingehende Benutzeranforderungen von derselben oder von unterschiedlichen Client-Datenverarbeitungseinheiten 305 verarbeitet. Anders ausgedrückt werden die Probleme, die mit den Vorgaben der bekannten Abgleichmechanismen von Oracle Secerno und Imperva SecureSphere sowie mit ähnlichen Abgleichmechanismen verbunden sind, durch die Mechanismen der veranschaulichenden Ausführungsformen beseitigt. Wenn zum Beispiel mehrere Anforderungen unter Verwendung der Mechanismen der veranschaulichenden Ausführungsformen auf dieselbe Elementnummer zugreifen, wird die Elementnummer in jeder Anforderung durch einen eindeutig erkennbaren Wert ersetzt, sodass jede Anforderung getrennt erkennbar ist und mit ihren betreffenden ausgehenden Anforderungen/Anweisungen korreliert werden kann, die an das Back-End-System 340 der Datenbank gesendet werden.
  • Das Gateway-System 310 sendet die eingehende Benutzeranforderung 315 zusammen mit dem eindeutigen Wert, der der eingehenden Benutzeranforderung 315 entspricht, an das Überprüfungssystem 330. Die eingehende Benutzeranforderung wird dem Überprüfungssystem 330 bereitgestellt, um zum Erzeugen einer Zuordnung zwischen dieser eingehenden Benutzeranforderung 315 und entstehenden ausgehenden Anforderungen/Anweisungen 325 verwendet zu werden. Das Überprüfungssystem 330 speichert die eingehende Benutzeranforderung oder zumindest eine Kennung der Benutzeranforderung und ihre zugehörigen eindeutigen Werte, die aus der Benutzeranforderung empfangen wurden, und Ähnliches in einer Zuordnungsspezifikations-Datenstruktur 336.
  • Das Überprüfungssystem 330 überprüft die ausgehenden Anforderungen/Anweisungen 325, z.B. SQL-Anweisungen, die durch das Front-End 320 der Anwendung auf der Grundlage der eingehenden Benutzeranforderungen 315 erzeugt wurden, die durch das Front-End 320 der Anwendung empfangen wurden. Diese ausgehenden Anforderungen/Anweisungen 325 werden durch den Parser 332 analysiert, und die Zuordnungslogik 334 analysiert die analysierten ausgehenden Anforderungen/Anweisungen 325, um insbesondere nach eindeutigen Werten zu suchen, die in die eingehenden Benutzeranforderungen 315 eingefügt wurden, die durch den Gateway-Mechanismus 310 abgefangen wurden, bevor die Anforderungen durch das Anwendung-Front-End 320 der Anwendungsebene verarbeitet werden. Das heißt, dass die Zuordnungslogik 334 Werte aus den analysierten ausgehenden Anforderungen/Anweisungen 325 extrahiert und sie mit einer Auflistung eindeutiger Werte vergleicht, die durch das Gateway-System 310 zum Überprüfungssystem 330 übertragen wurde und in der Zuordnungsspezifikations-Datenstruktur 336 gespeichert ist. Wenn sich in der Zuordnungsspezifikations-Datenstruktur 336 ein übereinstimmender eindeutiger Wert befindet, fügt die Zuordnungslogik 334 für die betreffende eingehende Benutzeranforderung 315 die ausgehende Anforderung/Anweisung 325 oder zumindest eine Kennung der ausgehenden Anforderung/Anweisung 325 zu einer Liste ausgehender Anforderungen/Anweisungen in der Zuordnungsspezifikations-Datenstruktur 336 hinzu. Diese Liste kann mit jeder durch das Überprüfungssystem 330 erkannten nachfolgenden ausgehenden Anforderung/Anweisung aufgebaut werden, die einen übereinstimmenden eindeutigen Wert aufweist. Das Ergebnis ist eine Zuordnung der eingehenden Benutzeranforderung 315 zu einer oder mehreren ausgehenden Anforderungen/Anweisungen 325, die denselben eindeutigen Wert aufweisen.
  • Die Erkennung dieser eindeutigen Werte in den ausgehenden Anforderungen/Anweisungen 325, die zurück an das Back-End-Datenbanksystem 340 gesendet werden, wird mit den eindeutigen Werten in den eingehenden Benutzeranforderungen 315 korreliert. Diese Korrelation führt zur Erzeugung einer Zuordnung zwischen eingehenden Benutzeranforderungen 315 und den resultierenden ausgehenden Anforderungen/Anweisungen 325. Das heißt, dass die Zuordnung auf der Grundlage der eingefügten oder „gesetzten“ eindeutigen Werte ein Eingangsmuster von eingehenden Benutzeranforderungen 315 und ein entsprechendes Muster von Ausgangsanforderungen/-anweisungen 325 erkennt. Das Endergebnis ist eine Spezifikation oder eine Gruppe von Spezifikationen darüber, wie Abfolgen von eingehenden Benutzeranforderungen 315 ausgehenden Anforderungen/Anweisungen 325 zugeordnet werden. Beispielsweise kann eine Abfolge eingehender Benutzeranforderungen A, B, C einer Abfolge ausgehender Anforderungen/Anweisungen X1, X2, X3, X4, X5, X6 und X7 zugeordnet werden oder bewirken, dass diese ausgehenden Anforderungen/Anweisungen erzeugt werden, wodurch eine Zuordnung zwischen A, B, C und X1, X2, X3, X4, X5, X6 und X7 eingerichtet und zur späteren Verwendung beim Analysieren von Zugriffen auf das Back-End der Datenbank gespeichert werden kann.
  • Dieser Prozess des Zuordnens durch das Gateway und die Überprüfungsmechanismen 310 und 330 können unter Verwendung einer Einstufungs- oder Testumgebung bei einer Mehrheit der Codepfade oder sogar bei allen Codepfaden des Front-Ends 320 der Anwendung durchgeführt werden. Zum Beispiel gibt es bekannte Mechanismen zum Testen der verschiedenen Codepfade von Anwendungscode, die zur Überprüfung, Rückverfolgung und zu ähnlichen Zwecken dienen. Diese Mechanismen können in Verbindung mit den Mechanismen der veranschaulichenden Ausführungsformen erweitert oder anderweitig genutzt werden, um eine Zuordnung zwischen eingehenden Benutzeranforderungen 315 und ausgehenden Anforderungen/Anweisungen 325 zu erzeugen, die an ein Back-End-System 340 einer Datenbank gerichtet sind.
  • Zu beachten ist, dass die in 3 und in den folgenden Figuren gezeigten verschiedenen Systeme und Einheiten auf demselben Datenverarbeitungssystem oder auf einer Vielzahl unterschiedlicher Datenverarbeitungssysteme realisiert sein können. Zum Beispiel kann die Client-Datenverarbeitungseinheit 305 eine vom Gateway-System 310 getrennte Datenverarbeitungseinheit sein, die sich auf einem anderen System als dem Front-End-System 320 der Anwendung, dem Überprüfungssystem 330 und dem Back-End-System 340 der Datenbank befinden kann. Alternativ können das Gateway-System 310 und das Front-End-System 320 der Anwendung auf demselben Datenverarbeitungssystem realisiert sein, das Überprüfungssystem 330 und das Back-End-System 340 der Datenbank können zusammen auf einem separaten Datenverarbeitungssystem bereitgestellt sein, und bei der Client-Datenverarbeitungseinheit 305 kann es sich um ein noch anderes Datenverarbeitungssystem handeln. Beliebige Kombinationen der in 3 gezeigten Elemente können auf demselben oder auf unterschiedlichen Datenverarbeitungssystemen bereitgestellt sein, ohne vom Gedanken und Schutzbereich der veranschaulichenden Ausführungsformen abzuweichen.
  • Die Ausgabe des oben erwähnten Zuordnungsprozesses ist eine Spezifikation oder eine Gruppe von Spezifikationen, die definiert, wie sich das Front-End der Anwendung als eine Art „Blackbox“ verhält. Das heißt, dass die Spezifikation(en) angibt bzw. angeben, wie die „Blackbox“ bei einer vorgegebenen Gruppe von Eingaben eine bestimmte Gruppe von Ausgaben erzeugt. Diese Spezifikation oder Gruppe von Spezifikationen kann anschließend zur Laufzeit zum Prüfen von Zugriffen auf das Back-End-Datenbanksystem 340 verwendet werden. Anders ausgedrückt kann die Spezifikation oder Gruppe von Spezifikationen, die während der Lernbetriebsart erzeugt wurde, in einen Prüfmechanismus eingegeben werden, um beim Durchführen von Prüfoperationen an Zugriffen auf das Back-End-Datenbanksystem 340 verwendet zu werden. Der Prüfmechanismus kann auf der Datenbankebene anstelle der Anwendungsebene arbeiten. Der Prüfmechanismus kann die Zuordnungen in der/den Spezifikation(en) verwenden und weitere Daten von der Front-End-Anwendung 320 empfangen, um dadurch die jeweiligen Benutzer oder Client-Einheiten zu erkennen, die auf sensible Daten im Back-End-Datenbanksystem 340 zugreifen.
  • 4 ist ein beispielhaftes Blockschaltbild eines Systems zum Prüfen von Zugriffen auf ein Back-End-System unter Verwendung von Zuordnungsdaten, die gemäß einer veranschaulichenden Ausführungsform während einer Lernbetriebsart erzeugt wurden. Das Gateway-System 310 und das Überprüfungssystem 330 können konfiguriert sein, um in einer Laufzeitbetriebsart als neu konfiguriertes Gateway-System 410 und Überprüfungssystem 430 ausgeführt zu werden, die in 4 gezeigt sind und den Elementen 310 und 330 in 3 entsprechen, aber zwecks Laufzeitbetrieb umkonfiguriert sind. Wie in 4 gezeigt weist das Überprüfungssystem 430 zusätzliche Laufzeitkomponenten einschließlich der Prüflogik 432 und der Zugriffskontrolllogik 434 auf. Diese Elemente können die Zuordnungsspezifikations-Datenstruktur 436 nutzen, die der Zuordnungsspezifikations-Datenstruktur 336 in 3 entspricht.
  • Während der Laufzeit leitet das Gateway-System 410 eingehende Benutzeranforderungen in ähnlicher Weise wie während der Lernbetriebsart an das Überprüfungssystem 430 weiter. Außerdem speichert die Front-End-Anwendung 420 die Endbenutzer-Berechtigungsnachweise und entsprechende Sitzungskennungen in einer Benutzerberechtigungsnachweis-Datenstruktur 422 und kennt daher die zu den eingehenden Benutzeranforderungen 415 gehörenden Benutzerberechtigungsnachweise. Das heißt, dass die Sitzungskennung, die aufgrund einer in bekannter Weise zum Front-End 420 der Anwendung eingerichteten Verbindung in den eingehenden Benutzeranforderungen 415 enthalten ist, als Grundlage für das Erkennen der entsprechenden Benutzerberechtigungen verwendet kann, die in dieser Benutzerberechtigungsnachweis-Datenstruktur 422 gespeichert sind. Es sollte klar sein, dass die eigentliche Funktionalität des Front-Ends 420 der Anwendung sowohl in der Lernbetriebsart als auch in der Laufzeitbetriebsart nicht geändert wird und keine Notwendigkeit besteht, den Code des Front-Ends 420 der Anwendung abzuändern, um die Funktionalität der vorliegenden Erfindung zu erreichen. Daher bedeutet das Aufrechterhalten von Sitzungskennungen und Benutzerkennungen in der Sitzungskennungs-/Benutzerkennungs-Datenstruktur 422 keine Veränderung in der Wirkungsweise des Front-Ends 420 der Anwendung gegenüber der Wirkungsweise bekannter Front-End-Systeme von Anwendungen. Die veranschaulichenden Ausführungsformen nutzen diese Daten während des Laufzeitbetriebs jedoch in einer neuen und anderen Weise.
  • Die eingehenden Benutzeranforderungen 415, die durch das Gateway-System 410 während der Laufzeitbetriebsart an das Überprüfungssystem 430 weitergeleitet werden, weisen dieselbe Struktur wie die eingehenden Benutzeranforderungen 315 auf, die während der Lernbetriebsart weitergeleitet werden. Der Unterschied zwischen diesen Anforderungen 315 und 415 besteht in den Werten innerhalb dieser Anforderungen 315 und 415. Bei den Anforderungen 315, die während der Lernbetriebsart weitergeleitet werden, sind ihre Anwendungswerte zwecks Zuordnung durch eindeutige Werte ersetzt. Die Anforderungen 415, die während der Laufzeitbetriebsart weitergeleitet werden, sind unverändert und weisen daher ihre ursprünglichen Anwendungswerte auf.
  • Das Überprüfungssystem 430 empfängt nicht nur die ursprünglichen eingehenden Benutzeranforderungen 415, die durch das Gateway-System 410 weitergeleitet werden, sondern auch die resultierenden ausgehenden Anforderungen/Anweisungen 425, die bei der Verarbeitung der eingehenden Benutzeranforderung 415 durch das Front-End 420 der Anwendung erzeugt werden. Das Muster ausgehender Anforderungen/Anweisungen 425, die im Überprüfungssystem 430 empfangen werden, kann durch die Prüflogik 432 oder Zugriffskontrolllogik 434 mit einem Eintrag in der Zuordnungsspezifikations-Datenstruktur 436 abgeglichen werden, um eine Art der eingehenden Benutzeranforderung 415 oder bei einigen veranschaulichenden Ausführungsformen ein Muster einer oder mehrerer eingehender Benutzeranforderungen 415 zu erkennen, das mit dem Muster ausgehender Anforderungen/Anweisungen 425 übereinstimmt. Diese Art der eingehenden Benutzeranforderung oder dieses Muster einer oder mehrerer eingehender Benutzeranforderungen kann anschließend mit einer tatsächlichen eingehenden Benutzeranforderung 415 abgeglichen werden, die zum Überprüfungssystem 430 weitergeleitet wurde. Die Sitzungskennung in der erkannten tatsächlichen eingehenden Benutzeranforderung 415 kann unter Verwendung der Sitzungskennungs-/Benutzerkennungs-Datenstruktur 422 mit einer Benutzerkennung abgeglichen werden, wobei das Überprüfungssystem 430 auf die Datenstruktur zugreifen oder die Datenstruktur durch das Front-End 420 der Anwendung dem Überprüfungssystem 430 bereitgestellt werden kann.
  • Anschließend kann die Benutzerkennung durch die Prüflogik 432 oder die Zugriffskontrolllogik 434 verwendet werden, um auf der Datenebene entsprechende Operationen durchzuführen. Beispielsweise kann die Prüflogik 432 Prüfdatensätze in einer Prüfdatensatz-Datenstruktur (nicht gezeigt) erzeugen, aus der erkennbar ist, welche Benutzer auf welche Teile des Back-End-Systems 440 der Datenbank zugegriffen haben, und die die Anforderungen/Anweisungen erkennen lässt, die diesen Zugriffen aus einer Datenebenenperspektive entsprechen. Die Zugriffskontrolllogik 434 kann den Zugriff auf das Back-End-System 440 der Datenbank auf der Grundlage des erkannten Benutzers steuern. Bei einem Beispiel kann die Zugriffskontrolllogik 434, wenn das Back-End-System 440 der Datenbank ein Datenleckszenario erkennt, die Daten der Zuordnungsspezifikations-Datenstruktur 436 und die Korrelationsmechanismen nutzen, die oben beschrieben wurden, um das Front-End 420 der Anwendung anzuweisen, die Benutzersitzung auf der Grundlage der Sitzungskennung zu beenden.
  • Als Beispiel wird angenommen, dass die Mechanismen des Überprüfungssystems 430 während des Überprüfens der Datenbankzugriffsebene eine SQL-Einschleusungsattacke feststellen, die bewirkt, dass als Ergebnismenge der Abfrage, die durch die SQL-Einschleusungsattacke erzeugt wurde, eine große Menge von Datensätzen aus dem Back-End-System 440 der Datenbank extrahiert wird. In diesem Fall beendet das Back-End-System 440 der Datenbank unter Umständen die Datenbankverbindung mit dem Front-End-System 420 der Anwendung nicht, da sie vom Front-End-Server der Anwendung verwendet wird. Mit den Mechanismen der veranschaulichenden Ausführungsformen weiß das Überprüfungssystem 430 durch Verwenden der oben beschriebenen Mechanismen jedoch, welche Benutzeranforderung die Abfrage erzeugt hat, die zu der SQL-Einschleusungsattacke geführt hat. Daher kann die Zugriffskontrolllogik 434 des Überprüfungssystems 430 so agieren, dass die Rückgabe der großen Anzahl von Datensätzen an den Angreifer als Teil der SQL-Einschleusungsattacke verhindert wird, indem sie das Gateway-System 410 anweist, die Verbindung zwischen der Client-Datenverarbeitungseinheit 405 und dem Front-End-System 420 der Anwendung abzubrechen.
  • Besonders zu erwähnen ist, dass in diesem Fall die Erkennung der Attacke auf einer Ebene stattfindet (bei einer SQL-Einschleusungsattacke oder der Extraktion einer großen Datenmenge ist die Datenebene die Ebene, auf der dies festgestellt würde), aber die Ebene, auf der der Abbruch stattfinden muss, eine andere Ebene ist (in diesem Fall die Anwendungsebene). Bekannte Mechanismen versuchen, Attacken zu erkennen und diese Attacken auf derselben Ebene zu beenden, die Fehler verursacht und im Allgemeinen defekt ist. Die Fähigkeit, eine Attacke auf einer Ebene zu erkennen, aber eine deterministische und genaue Zuordnung zu der anderen Ebene zur Verfügung zu haben, sodass eine wirkungsvolle Beendigung der Attacke herbeigeführt werden kann, ist ein wesentlicher Vorteil, den die Mechanismen der veranschaulichenden Ausführungsformen bereitstellen.
  • Somit stellen die veranschaulichenden Ausführungsformen Mechanismen zum weitergeben von Benutzerkennungsdaten von einem Front-End-System einer Anwendung auf einer Anwendungsschicht zu Datenebenenmechanismen, z.B. zu Prüf- und/oder Zugriffskontrollmechanismen, bereit, die auf einer Datenebene arbeiten. Auf diese Weise können Datenebenenmechanismen Zugriffe auf Back-End-Systeme mit bestimmten Benutzerkennungen anstelle von Funktionskennungen des Front-End-Systems der Anwendung korrelieren. Infolgedessen können exakte Prüfungen auf der Datenebene durchgeführt werden, und Zugriffskontrollfunktionen können auf der Grundlage von Benutzerkennungsinformationen für Verbindungen anstelle der Funktionskennung des Front-End-Systems der Anwendung durchgeführt werden.
  • 5 ist ein Ablaufplan, der eine beispielhafte Wirkungsweise eines Gateway-Systems während einer Lernbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt. Wie in 5 gezeigt empfängt das Gateway-System eine eingehende Benutzeranforderung von einer Client-Datenverarbeitungseinheit (Schritt 510). Das Gateway-System analysiert anschließend die Anforderung und erkennt beliebige Anwendungswerte in der Anforderung, die wahrscheinlich in ausgehenden Anforderungen/Anweisungen über das Front-End-System der Anwendung an ein Back-End-System weiterzuleiten sind (Schritt 520). Die erkannten Anwendungswerte werden dann durch einen eindeutig erkennbaren Wert ersetzt (Schritt 530). Die resultierende abgeänderte Anforderung wird zum Front-End der Anwendung und zum Überprüfungssystem weitergeleitet (Schritt 540). Der Funktionsablauf des Gateway-Systems in Bezug auf diese empfangene eingehende Benutzeranforderung wird dann beendet. Es sollte klar sein, dass dieser Prozess während einer Lernbetriebsart bei jeder nachfolgend empfangenen eingehenden Benutzeranforderung wiederholt werden kann. Obwohl in 5 nicht gezeigt, empfängt das Front-End der Anwendung die abgeänderte Anforderung und verarbeitet sie auf normale Art, um eine ausgehende Anforderung/Anweisung bzw. um ausgehende Anforderungen/Anweisungen zu erzeugen, die ein Back-End-System zum Ziel haben, z.B. ein Back-End-Datenbanksystem oder Ähnliches.
  • 6 ist ein Ablaufplan, der einen beispielhaften Funktionsablauf eines Überprüfungssystems während einer Lernbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt. Wie in 6 gezeigt beginnt der Funktionsablauf damit, dass das Überprüfungssystem eine ausgehende Anforderung/Anweisung bzw. ausgehende Anforderungen/Anweisungen empfängt, die durch ein Front-End-Anwendungssystem erzeugt wurde bzw. wurden (Schritt 610), und eine abgeänderte eingehende Benutzeranforderung, die vom Gateway-System weitergeleitet wurde (Schritt 620). Die ausgehende Anforderung/Anweisung bzw. die ausgehenden Anforderungen/Anweisungen wird bzw. werden auf eindeutige Werte analysiert (Schritt 630), und beliebige gefundene eindeutige Werte werden mit den in der Zuordnungsdatenstruktur gespeicherten Werten verglichen (Schritt 640). Wenn auf der Grundlage der eindeutigen Werte ein übereinstimmender Eintrag in der Zuordnungsdatenstruktur 640 gefunden wird (Schritt 650), wird die ausgehende Anforderung/Anweisung bzw. werden die ausgehenden Anforderungen/Anweisungen zu dem übereinstimmenden Eintrag der betreffenden entsprechenden eingehenden Benutzeranforderung hinzugefügt (Schritt 660). Wenn keine Übereinstimmung vorhanden ist, endet der Funktionsablauf. Es sollte klar sein, dass dieser Prozess bei jeder neuen ausgehenden Anforderung/Anweisung oder Gruppe von Anforderungen/Anweisungen wiederholt werden kann, die durch das Überprüfungssystem empfangen werden.
  • Der oben beschriebene Prozess erzeugt eine Zuordnungsdatenstruktur, die Muster eingehender Benutzeranforderungen Mustern ausgehender Anforderungen/Anweisungen zuordnet, die anschließend während der Laufzeit verwendet werden können, um Benutzerkennungsdaten an Back-End-Prüf-, Zugriffskontroll- und anderer Back-End-Prozesse weiterzugeben. Das Gateway-System und das Überprüfungssystem können in eine Laufzeitbetriebsart umkonfiguriert werden, um diesen Musterabgleich durchzuführen.
  • 7 ist ein Ablaufplan, der einen beispielhaften Funktionsablauf eines Gateway-Systems während einer Laufzeitbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt. Wie in 7 gezeigt empfängt das Gateway-System eine eingehende Benutzeranforderung (Schritt 710) und leitet anschließend die eingehende Benutzeranforderung einfach an das Front-End-System der Anwendung und an das Überprüfungssystem weiter (Schritt 720). Daher fungiert das Gateway-System in einer Laufzeitbetriebsart hauptsächlich als Durchgangseinheit mit der Ausnahme, dass das Gateway-System die eingehende Benutzeranforderung zum Überprüfungssystem sowie zum Front-End der Anwendung weiterleitet.
  • 8 ist ein Ablaufplan, der einen beispielhaften Funktionsablauf eines Überprüfungssystems während einer Laufzeitbetriebsart gemäß einer veranschaulichenden Ausführungsform beschreibt. Wie in 8 gezeigt empfängt das Überprüfungssystem eine ausgehende Anforderung/Anweisung bzw. ausgehende Anforderungen/Anweisungen vom Front-End-System der Anwendung (Schritt 810) und eine ursprüngliche eingehende Benutzeranforderung vom Gateway-System (Schritt 820). Das Überprüfungssystem vergleicht das Muster der ausgehenden Anforderung/Anweisung bzw. ausgehende Anforderungen/Anweisungen mit den Einträgen in der Zuordnungsdatenstruktur, um eine Übereinstimmung zu ermitteln (Schritt 830). Diese Übereinstimmung muss nicht notwendigerweise eine exakte Übereinstimmung sein, sondern es kann sich um eine Übereinstimmung innerhalb einer vorgegebenen Toleranz handeln. Das heißt, dass sich das Muster in dem Eintrag von dem Muster der empfangenen ausgehenden Anforderungen um einen vorgegebenen zulässigen Betrag, d.h. eine Toleranz, unterscheiden kann und dennoch als Übereinstimmung betrachtet wird.
  • Wenn keine übereinstimmenden Einträge vorhanden sind, endet der Funktionsablauf. Es sollte jedoch klar sein, dass dieser Prozess bei jeder nachfolgend empfangenen ausgehenden Anforderung/Anweisung oder Gruppe ausgehender Anforderungen/Anweisungen wiederholt werden kann.
  • Wenn ein übereinstimmender Eintrag gefunden wird (Schritt 840), wird eine eingehende Benutzeranforderung, die denselben Typ aufweist, oder ein Muster aus einer oder mehreren eingehenden Benutzeranforderungen als übereinstimmender Eintrag erkannt (Schritt 850). Auf der Grundlage der Sitzungskennung der übereinstimmenden eingehenden Benutzeranforderung wird eine Suchoperation durchgeführt, um eine Benutzerkennung zu ermitteln, die der übereinstimmenden eingehenden Benutzeranforderung entspricht (Schritt 860). Auf der Grundlage der weitergegebenen Benutzerkennungsdaten wird anschließend eine Datenebenenoperation durchgeführt (Schritt 870). Beispielsweise kann diese Datenebenenoperation einen Prüfmechanismus aufweisen, der unter Verwendung der Benutzerkennungsdaten, die mithilfe der Mechanismen der veranschaulichenden Ausführungsformen weitergegeben wurden, einen Prüfdatensatz erzeugt. Als weiteres Beispiel können Zugriffskontrollmechanismen auf der Grundlage dieser Benutzerkennungsdaten den Zugriff auf Daten im Back-End-System kontrollieren oder das Front-End der Anwendung anweisen, auf der Grundlage dieser Benutzerkennungsdaten Verbindungen abzuändern. Andere Arten von Datenebenenoperationen können durchgeführt werden, ohne vom Geist und Geltungsbereich der veranschaulichenden Ausführungsformen abzuweichen.
  • Somit ermöglichen die Mechanismen der veranschaulichenden Ausführungsformen die Weitergabe von Benutzerkennungsdaten von einer Anwendungsebene auf eine Datenebene, sodass die Analyse der Datenebenenoperationen innerhalb des Kontextes dieser Benutzerkennungsdaten durchgeführt werden kann. Wie zuvor erwähnt gehen diese Benutzerkennungsdaten bei bekannten Mechanismen auf der Datenebene verloren und können nicht exakt empfangen werden. Die Mechanismen der veranschaulichenden Ausführungsformen nutzen einen Lernprozess auf der Grundlage eindeutiger Werte, um Musterübereinstimmungsspezifikationen zu erzeugen, die Muster ausgehender Anforderungen/Anweisungen mit eingehenden Benutzeranforderungen exakt korrelieren können, ohne die Funktionsweise oder den Code von Front-End- und Back-End-Systemen von Anwendungen abzuändern.
  • Es sollte klar sein, dass, obwohl die veranschaulichenden Ausführungsformen im Hinblick auf das Weitergeben von Benutzerkennungsdaten beschrieben wurden, die veranschaulichenden Ausführungsformen nicht darauf beschränkt sind. Vielmehr können beliebige Daten, die auf einer Ebene der Verarbeitung zur Verfügung stehen und auf einer anderen Ebene der Verarbeitung von Interesse sind, unter Verwendung der Mechanismen der veranschaulichenden Anführungsformen weitergegeben werden. Zu anderen Arten von Daten, die unter Verwendung der Mechanismen der veranschaulichenden Ausführungsformen weitergegeben werden können, zählen zum Beispiel in Bezug auf die Sicherheit die IP-Adresse von Clients, der Host-Name, der am Client angemeldete Betriebssystem-Benutzername oder beliebige andere Daten, die dazu beitragen können, zu erkennen, wer eine Benutzeranforderung von wo vornimmt.
  • Wie oben erwähnt sollte klar sein, dass die veranschaulichenden Ausführungsformen die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform oder einer Ausführungsform annehmen kann, die sowohl Hardware- als auch Softwareelemente enthält. Bei einer bevorzugten Ausführungsform sind die Mechanismen der veranschaulichenden Ausführungsformen in Software oder Programmcode realisiert, zu denen, ohne darauf beschränkt zu sein, Firmware, residente Software, Mikrocode usw. gehören.
  • Zu einem Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, gehört mindestens ein Prozessor, der über einen Systembus direkt oder indirekt mit Speicherelementen verbunden ist. Zu den Speicherelementen können lokaler Arbeitsspeicher, der während der eigentlichen Ausführung des Programmcodes genutzt wird, Massenspeicher und Cache-Speicher gehören, der eine zeitweilige Speichermöglichkeit für mindestens einen Teil des Programmcodes bereitstellt, um während der Ausführung die Anzahl der Codeabrufe aus dem Massenspeicher zu verringern.
  • Eingabe/Ausgabe-Einheiten bzw. E/A-Einheiten (einschließlich und ohne darauf beschränkt zu sein, Tastaturen, Anzeigeeinheiten, Zeigeeinheiten usw.) können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, sodass das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen, entfernt angeordneten Druckern oder Speichereinheiten verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten sind nur einige der gegenwärtig erhältlichen Arten von Netzwerkadaptern.

Claims (17)

  1. Verfahren in einem Datenverarbeitungssystem zum Weitergeben von Quellkenndaten von einem Front-End-System der Anwendung auf einer Anwendungsebene an ein Überprüfungssystem der Datenebene, das zu einem Back-End-System gehört, aufweisend: • Empfangen einer eingehenden Benutzeranforderung am Überprüfungssystem der Datenebene, die von einem Gateway-System auf der Anwendungsebene eingeht, das zum Front-End-System der Anwendung gehört; • Empfangen einer oder mehrerer ausgehender Anweisungen am Überprüfungssystem der Datenebene, die das Back-End-System zum Ziel haben und durch das Front-End-System der Anwendung auf der Grundlage der empfangenen eingehenden Benutzeranforderung erzeugt werden; • Erzeugen einer Zuordnungsdatenstruktur, wobei die Zuordnungsdatenstruktur erzeugt wird durch: o Verarbeiten einer Vielzahl eingehender Test-Benutzeranforderungen; und o bei jeder eingehenden Test-Benutzeranforderung in der Vielzahl eingehender Test-Benutzeranforderungen das Aufzeichnen eines Musters ausgehender Anforderungen, die durch das Front-End-Anwendungssystem erzeugt wurden und das Back-End-System zum Ziel haben, in Einträgen der Zuordnungsdatenstruktur, wobei das Verarbeiten der Vielzahl eingehender Test-Benutzeranforderungen bei jeder eingehenden Test-Benutzeranforderung aufweist: ■ Analysieren der eingehenden Test-Benutzeranforderung, um mindestens einen Anwendungswert in der eingehenden Test-Benutzeranforderung zu erkennen; ■ Ersetzen des mindestens einen Anwendungswertes in der eingehenden Test-Benutzeranforderung durch einen eindeutig erkennbaren Wert, um eine abgeänderte eingehende Test-Benutzeranforderung zu erzeugen; ■ Verarbeiten der abgeänderten eingehenden Test-Benutzeranforderung durch das Front-End-System der Anwendung; und ■ Überwachen ausgehender Anweisungen, die durch das Front-End-System der Anwendung erzeugt wurden, auf den eindeutig erkennbaren Wert, wobei ausgehende Anweisungen, die den eindeutig erkennbaren Wert aufweisen, zu einem Eintrag in der Zuordnungsdatenstruktur hinzugefügt werden, der der eingehenden Test-Benutzeranforderung entspricht, und wobei eine Reihe ausgehender Anweisungen, die in dem Eintrag gespeichert sind, der der eingehenden Test-Benutzeranforderung entspricht, ein Muster ausgehender Anweisungen bilden; • Zugreifen auf die Zuordnungsdatenstruktur durch das Überprüfungssystem der Datenebene, wobei das Zugreifen auf der Grundlage der einen oder der mehreren ausgehenden Anweisungen stattfindet und dadurch die eine oder die mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung korreliert wird bzw. werden; • Abrufen von Quellkenndaten durch das Überprüfungssystem der Datenebene, die zu der eingehenden Benutzeranforderung gehören, wobei das Abrufen auf der Grundlage der Korrelation der einen oder mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung stattfindet; und • Durchführen einer Datenebenen-Überprüfungsoperation durch das Überprüfungssystem der Datenebene auf der Grundlage der Quellkenndaten.
  2. Verfahren nach Anspruch 1, bei dem die Zuordnungsdatenstruktur ein Muster einer oder mehrerer ausgehender Anweisungen einem Muster oder einer Art einer oder mehrerer eingehender Benutzeranforderungen zuordnet.
  3. Verfahren nach Anspruch 2, bei dem das Zugreifen der Zuordnungsdatenstruktur das Durchführen einer Suche nach einem Eintrag in der Zuordnungsdatenstruktur aufweist, der ein Muster ausgehender Anweisungen aufweist, das mit einem Muster der empfangenen einen oder mehreren ausgehenden Anweisungen übereinstimmt.
  4. Verfahren nach Anspruch 3, bei dem das Zugreifen der Zuordnungsdatenstruktur ferner aufweist: Abrufen einer Art oder eines Musters einer oder mehrerer eingehender Benutzeranforderungen, die bzw. das in dem Eintrag angegeben ist; und Erkennen der empfangenen einen oder mehreren eingehenden Benutzeranforderungen, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist.
  5. Verfahren nach Anspruch 4, bei dem das Abrufen von Quellkenndaten das Abrufen der Quellkenndaten auf der Grundlage von Verbindungsdaten aufweist, die zu der empfangenen einen bzw. zu den empfangenen mehreren eingehenden Benutzeranforderungen gehören, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist.
  6. Verfahren nach Anspruch 1, bei dem die Datenebenen-Überprüfungsoperation eine Datenebenen-Prüfoperation ist, die ein Prüfprotokoll von Zugriffen auf das Back-End-System erzeugt, und wobei das Prüfprotokoll die Quellkenndaten aufweist.
  7. Verfahren nach Anspruch 1, bei dem: das Back-End-System ein Datenbanksystem ist, die eingehende Benutzeranforderung eine HTTP-Anforderung (HTTP = Hypertext Transport Protocol) ist, die das Front-End-System der Anwendung zum Ziel hat, und die ausgehenden Anweisungen SQL-Anweisungen (SQL = Structured Query Language) sind, die auf der Grundlage der HTTP-Anforderung durch das Front-End-System der Anwendung erzeugt wurden.
  8. Computerprogrammprodukt, das eine computerlesbare Speichereinheit mit einem darin gespeicherten computerlesbaren Programm aufweist, wobei das computerlesbare Programm bei Ausführung auf einer Datenverarbeitungseinheit bewirkt, dass die Datenverarbeitungseinheit: ■ eine eingehende Benutzeranforderung von einem Gateway-System empfängt, das zu einem Front-End System einer Anwendung gehört; ■ eine oder mehrere ausgehende Anweisungen empfängt, die ein Back-End-System zum Ziel haben und durch das Front-End-System der Anwendung auf der Grundlage der empfangenen eingehenden Benutzeranforderung erzeugt werden; ■ die Zuordnungsdatenstruktur erzeugt, wobei die Zuordnungsdatenstruktur erzeugt wird durch: ◯ Verarbeiten einer Vielzahl eingehender Test-Benutzeranforderungen; und ◯ bei jeder eingehenden Test-Benutzeranforderung in der Vielzahl eingehender Test-Benutzeranforderungen das Aufzeichnen eines Musters ausgehender Anforderungen, die durch das Front-End-Anwendungssystem erzeugt wurden und das Back-End-System zum Ziel haben, in Einträgen der Zuordnungsdatenstruktur, wobei die Datenverarbeitungseinheit bei jeder eingehenden Test-Benutzeranforderung die Vielzahl eingehender Test-Benutzeranforderungen verarbeitet durch: • Analysieren der eingehenden Test-Benutzeranforderung, um mindestens einen Anwendungswert in der eingehenden Test-Benutzeranforderung zu erkennen; • Ersetzen des mindestens einen Anwendungswertes in der eingehenden Test-Benutzeranforderung durch einen eindeutig erkennbaren Wert, um eine abgeänderte eingehende Test-Benutzeranforderung zu erzeugen; • Verarbeiten der abgeänderten eingehenden Test-Benutzeranforderung durch das Front-End-System der Anwendung; und • Überwachen ausgehender Anweisungen, die durch das Front-End-System der Anwendung erzeugt wurden, auf den eindeutig erkennbaren Wert, wobei ausgehende Anweisungen, die den eindeutig erkennbaren Wert aufweisen, zu einem Eintrag in der Zuordnungsdatenstruktur hinzugefügt werden, der der eingehenden Test-Benutzeranforderung entspricht, und wobei eine Reihe ausgehender Anweisungen, die in dem Eintrag gespeichert sind, der der eingehenden Test-Benutzeranforderung entspricht, ein Muster ausgehender Anweisungen bilden; ■ auf der Grundlage der einen oder der mehreren ausgehenden Anweisungen auf die Zuordnungsdatenstruktur zugreift und dadurch die eine oder die mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung korreliert; ■ auf der Grundlage der Korrelation der einen oder mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung Quellkenndaten abruft, die zu der eingehenden Benutzeranforderung gehören; und ■ auf der Grundlage der Quellkenndaten eine Datenebenen-Überprüfungsoperation durchführt.
  9. Computerprogrammprodukt nach Anspruch 8, bei dem die Zuordnungsdatenstruktur ein Muster einer oder mehrerer ausgehender Anweisungen einem Muster oder einer Art einer oder mehrerer eingehender Benutzeranforderungen zuordnet.
  10. Computerprogrammprodukt nach Anspruch 9, bei dem das computerlesbare Programm bewirkt, dass die Datenverarbeitungseinheit auf die Zuordnungsdatenstruktur zugreift, indem sie eine Suche nach einem Eintrag in der Zuordnungsdatenstruktur durchführt, der ein Muster ausgehender Anweisungen aufweist, das mit einem Muster der empfangenen einen oder mehreren ausgehenden Anweisungen übereinstimmt.
  11. Computerprogrammprodukt nach Anspruch 10, bei dem das computerlesbare Programm ferner bewirkt, dass die Datenverarbeitungseinheit auf die Zuordnungsdatenstruktur zugreift durch: Abrufen einer Art oder eines Musters einer oder mehrerer eingehender Benutzeranforderungen, die bzw. das dem Eintrag entspricht; und Erkennen der empfangenen einen oder mehreren eingehenden Benutzeranforderungen, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist.
  12. Computerprogrammprodukt nach Anspruch 11, bei dem das computerlesbare Programm bewirkt, dass die Datenverarbeitungseinheit Quellkenndaten durch Abrufen der Quellkenndaten auf der Grundlage von Verbindungsdaten abruft, die zu der empfangenen einen bzw. zu den empfangenen mehreren eingehenden Benutzeranforderungen gehören, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist.
  13. Computerprogrammprodukt nach Anspruch 8, bei dem die Datenebenen-Überprüfungsoperation eine Datenebenen-Prüfoperation ist, die ein Prüfprotokoll von Zugriffen auf das Back-End-System erzeugt, und wobei das Prüfprotokoll die Quellkenndaten aufweist.
  14. Computerprogrammprodukt nach Anspruch 8, bei dem: das Back-End-System ein Datenbanksystem ist, die eingehende Benutzeranforderung eine HTTP-Anforderung (HTTP = Hypertext Transport Protocol) ist, die das Front-End-System der Anwendung zum Ziel hat, und die ausgehenden Anweisungen SQL-Anweisungen (SQL = Structured Query Language) sind, die auf der Grundlage der HTTP-Anforderung durch das Front-End-System der Anwendung erzeugt wurden.
  15. Vorrichtung, aufweisend: einen Prozessor; und einen mit dem Prozessor verbundenen Hauptspeicher, wobei der Hauptspeicher Anweisungen aufweist, die bei Ausführung durch den Prozessor bewirken, dass der Prozessor: • eine eingehende Benutzeranforderung von einem Gateway-System empfängt, das zu einem Front-End System einer Anwendung gehört; • eine oder mehrere ausgehende Anweisungen empfängt, die ein Back-End-System zum Ziel haben und durch das Front-End-System der Anwendung auf der Grundlage der empfangenen eingehenden Benutzeranforderung erzeugt werden; • die Zuordnungsdatenstruktur erzeugt, wobei die Zuordnungsdatenstruktur erzeugt wird durch: ◯ Verarbeiten einer Vielzahl eingehender Test-Benutzeranforderungen; und ◯ bei jeder eingehenden Test-Benutzeranforderung in der Vielzahl eingehender Test-Benutzeranforderungen das Aufzeichnen eines Musters ausgehender Anforderungen, die durch das Front-End-Anwendungssystem erzeugt wurden und das Back-End-System zum Ziel haben, in Einträgen der Zuordnungsdatenstruktur, wobei der Prozessor bei jeder eingehenden Test-Benutzeranforderung die Vielzahl eingehender Test-Benutzeranforderungen verarbeitet durch: ■ Analysieren der eingehenden Test-Benutzeranforderung, um mindestens einen Anwendungswert in der eingehenden Test-Benutzeranforderung zu erkennen; ■ Ersetzen des mindestens einen Anwendungswertes in der eingehenden Test-Benutzeranforderung durch einen eindeutig erkennbaren Wert, um eine abgeänderte eingehende Test-Benutzeranforderung zu erzeugen; ■ Verarbeiten der abgeänderten eingehenden Test-Benutzeranforderung durch das Front-End-System der Anwendung; und ■ Überwachen ausgehender Anweisungen, die durch das Front-End-System der Anwendung erzeugt wurden, auf den eindeutig erkennbaren Wert, wobei ausgehende Anweisungen, die den eindeutig erkennbaren Wert aufweisen, zu einem Eintrag in der Zuordnungsdatenstruktur hinzugefügt werden, der der eingehenden Test-Benutzeranforderung entspricht, und wobei eine Reihe ausgehender Anweisungen, die in dem Eintrag gespeichert sind, der der eingehenden Test-Benutzeranforderung entspricht, ein Muster ausgehender Anweisungen bilden; • auf der Grundlage der einen oder der mehreren ausgehenden Anweisungen auf die Zuordnungsdatenstruktur zugreift und dadurch die eine oder die mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung korreliert; • auf der Grundlage der Korrelation der einen oder mehreren ausgehenden Anweisungen mit der eingehenden Benutzeranforderung Quellkenndaten abruft, die zu der eingehenden Benutzeranforderung gehören; und • auf der Grundlage der Quellkenndaten eine Datenebenen-Überprüfungsoperation durchführt.
  16. Vorrichtung nach Anspruch 15, bei der die Zuordnungsdatenstruktur ein Muster einer oder mehrerer ausgehender Anweisungen einem Muster oder einer Art der einen oder mehreren eingehenden Benutzeranforderungen zuordnet, und bei der die Anweisungen bewirken, dass der Prozessor auf die Zuordnungsdatenstruktur zugreift, indem er eine Suche nach einem Eintrag in der Zuordnungsdatenstruktur durchführt, der ein Muster ausgehender Anweisungen aufweist, das mit einem Muster der empfangenen einen oder mehreren ausgehenden Anweisungen übereinstimmt.
  17. Vorrichtung nach Anspruch 16, bei der die Anweisungen ferner bewirken, dass der Prozessor auf die Datenstruktur zugreift durch: Abrufen einer Art oder eines Musters der einen oder mehreren eingehenden Benutzeranforderungen, die bzw. das dem Eintrag entspricht; und Erkennen der empfangenen einen oder mehreren eingehenden Benutzeranforderungen, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist, und wobei die Anweisungen bewirken, dass der Prozessor Quellkenndaten durch Abrufen der Quellkenndaten auf der Grundlage von Verbindungsdaten abruft, die zu der empfangenen einen bzw. zu den empfangenen mehreren eingehenden Benutzeranforderungen gehören, die dieselbe Art oder dasselbe Muster wie die Art oder das Muster aufweist bzw. aufweisen, die bzw. das in dem Eintrag angegeben ist.
DE112011103273.0T 2010-12-08 2011-10-27 Verfahren, Computerprogrammprodukt und Vorrichtung zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten Active DE112011103273B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/962,745 2010-12-08
US12/962,745 US8583666B2 (en) 2010-12-08 2010-12-08 Identity propagation through application layers using contextual mapping and planted values
PCT/EP2011/068887 WO2012076249A1 (en) 2010-12-08 2011-10-27 Identity propagation through application layers using contextual mapping and planted values

Publications (2)

Publication Number Publication Date
DE112011103273T5 DE112011103273T5 (de) 2013-07-18
DE112011103273B4 true DE112011103273B4 (de) 2020-06-18

Family

ID=44883247

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011103273.0T Active DE112011103273B4 (de) 2010-12-08 2011-10-27 Verfahren, Computerprogrammprodukt und Vorrichtung zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten

Country Status (5)

Country Link
US (5) US8583666B2 (de)
CN (1) CN103238308B (de)
DE (1) DE112011103273B4 (de)
GB (1) GB2499959B (de)
WO (1) WO2012076249A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583666B2 (en) 2010-12-08 2013-11-12 International Business Machines Corporation Identity propagation through application layers using contextual mapping and planted values
CN103024056B (zh) * 2012-12-17 2016-01-20 山东中创软件商用中间件股份有限公司 数据处理方法、负载均衡器及云系统
US9043593B2 (en) 2013-03-11 2015-05-26 International Business Machines Corporation Session attribute propagation through secure database server tiers
CN105630819B (zh) * 2014-11-03 2019-06-11 阿里巴巴集团控股有限公司 一种缓存数据的刷新方法和装置
US9703845B2 (en) * 2015-01-26 2017-07-11 International Business Machines Corporation Representing identity data relationships using graphs
US9826100B2 (en) * 2015-06-10 2017-11-21 Flexera Software Llc Usage tracking for software as a service (SaaS) applications
US10778525B2 (en) * 2016-04-14 2020-09-15 International Business Machines Corporation Measuring the performance of computing resources
US10417441B2 (en) 2016-04-29 2019-09-17 International Business Machines Corporation Effectively validating dynamic database queries through database activity monitoring
US10445220B2 (en) * 2017-01-25 2019-10-15 Verizon Patent And Licensing Inc. System and methods for application activity capture, error identification, and error correction
US10467117B2 (en) 2017-01-31 2019-11-05 Salesforce.Com, Inc. Techniques for providing application contextual information
IT201800005547A1 (it) * 2018-05-21 2019-11-21 Metodo per la memorizzazione di programmi per l’interfaccia operatore e di gestione di macchine e/o impianti per l’automazione
CN113111119B (zh) * 2020-01-13 2024-04-12 北京京东振世信息技术有限公司 一种操作数据的方法和装置
US11657159B2 (en) 2020-10-16 2023-05-23 International Business Machines Corporation Identifying security vulnerabilities using modeled attribute propagation
CN112818049B (zh) * 2021-01-28 2024-04-16 中国人寿保险股份有限公司上海数据中心 一种信息系统性能全链路分析系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026286A1 (en) 2004-07-06 2006-02-02 Oracle International Corporation System and method for managing user session meta-data in a reverse proxy
US20100132024A1 (en) 2006-12-20 2010-05-27 Ron Ben-Natan Identifying attribute propagation for multi-tier processing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987611A (en) * 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US20020068582A1 (en) * 2000-12-01 2002-06-06 Telefonaktiebolaget L M Ericsson Method, system and mediation device for reporting information to a Law Enforcement Agency
EP1328102A1 (de) * 2002-01-14 2003-07-16 Alcatel Verfahren und System zum Verwalten des Zugriffs auf ein Kommunikations-Netzwerk basierend auf Beglaubigungs-Daten
US20040044607A1 (en) * 2002-09-03 2004-03-04 Hedrick, Thomas W. Intermediary computing to handle debt management plan requests
AU2003232541A1 (en) 2002-10-04 2004-04-23 Nortel Netowrks Limited Apparatus, method and program for network topology discovery utilizing data link layer services
US7249375B2 (en) 2003-08-05 2007-07-24 Oracle International Corp Method and apparatus for end-to-end identity propagation
US7788497B2 (en) 2005-01-13 2010-08-31 Bea Systems, Inc. Credential mapping of WebLogic and database user ids
US20070118534A1 (en) * 2005-11-18 2007-05-24 Database-Brothers, Inc. Auditing database end user activity in one to multi-tier web application and local environments
US8024785B2 (en) * 2006-01-16 2011-09-20 International Business Machines Corporation Method and data processing system for intercepting communication between a client and a service
US20080016062A1 (en) * 2006-06-30 2008-01-17 Drescher Keith A Request-response trigger generation in link-connected computing systems
US20080175222A1 (en) 2007-01-23 2008-07-24 International Business Machines Corporation Url patterns for multi tenant systems
US8583666B2 (en) 2010-12-08 2013-11-12 International Business Machines Corporation Identity propagation through application layers using contextual mapping and planted values

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026286A1 (en) 2004-07-06 2006-02-02 Oracle International Corporation System and method for managing user session meta-data in a reverse proxy
US20100132024A1 (en) 2006-12-20 2010-05-27 Ron Ben-Natan Identifying attribute propagation for multi-tier processing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Motahari-Nezhad, H.R., Saint-Paul, R., Casati, F., Benatallah, B.: Event correlation for process discovery from web service. In: The VLDB Journal (2011) 20, S.417–444. Springer Verlag, New York, 2011. Online veröffentlicht am 22.9.2010. URL: http://dl.acm.org/citation.cfm?id=1997930 *
Motahari-Nezhad, H.R., Saint-Paul, R., Casati, F., Benatallah, B.: Event correlation for process discovery from web service. In: The VLDB Journal (2011) 20, S.417-444. Springer Verlag, New York, 2011. Online veröffentlicht am 22.9.2010; URL: http://dl.acm.org/citation.cfm?id=1997930

Also Published As

Publication number Publication date
US8583666B2 (en) 2013-11-12
US11138095B2 (en) 2021-10-05
GB201311304D0 (en) 2013-08-14
WO2012076249A1 (en) 2012-06-14
US8589422B2 (en) 2013-11-19
US20160239406A1 (en) 2016-08-18
US20190121721A1 (en) 2019-04-25
GB2499959A (en) 2013-09-04
US20130151542A1 (en) 2013-06-13
CN103238308B (zh) 2016-01-20
CN103238308A (zh) 2013-08-07
US9390083B2 (en) 2016-07-12
US20120150880A1 (en) 2012-06-14
US20140222842A1 (en) 2014-08-07
US10180895B2 (en) 2019-01-15
GB2499959B (en) 2014-05-14
DE112011103273T5 (de) 2013-07-18

Similar Documents

Publication Publication Date Title
DE112011103273B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zur Weitergabe von Identitäten über Anwendungsebenen unter Verwendung von kontextabhängiger Zuordnung und gesetzten Werten
DE112013000387B4 (de) Dynamisches Abtasten einer Webanwendung durch Verwendung von Webdatenverkehrs- Informationen
DE10249428B4 (de) Verfahren zum Definieren der Sicherheitsanfälligkeiten eines Computersystems
DE112014001229B4 (de) Verfahren, Datenverarbeitungssystem und Computerprogrammprodukt zum Verarbeiten einer Datenbank-Client-Anforderung
US9973536B2 (en) Directing audited data traffic to specific repositories
DE112010003454B4 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
DE69817176T2 (de) Verfahren und Vorrichtung zur Eindringdetektion in Rechnern und Rechnernetzen
DE112011101831B4 (de) Schutz vor websiteübergreifenden Scripting-Attacken
Jang et al. Detecting SQL injection attacks using query result size
DE202013102441U1 (de) System zur Überprüfung digitaler Zertifikate
DE10249427A1 (de) System und Verfahren zum Definieren des Sicherheitszustands eines Computersystems
DE112012002624T5 (de) Regex-Kompilierer
DE102014204830A1 (de) Computerimplementierte Systeme und Verfahren zum Vergleichen und Assoziieren von Objekten
DE112014002789T5 (de) Netzwerksicherheitssystem
DE112012003527T5 (de) Automatische Erkennung von Fehlern und Inkompatibilitätsproblemen in lnformationsfluss-Herabstufungseinrichtungen
DE102008016197A1 (de) Identifizieren eines Anwendungsbenutzers als Quelle einer Datenbank-Aktivität
DE112018004408B4 (de) Identifikation von angriffsströmen in einer mehrschichtigen netzwerktopologie
CN103166966A (zh) 识别对网站的非法访问请求的方法及装置
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
CN103701783A (zh) 一种预处理单元、由其构成的数据处理系统以及处理方法
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
DE112014001997T5 (de) Kennzeichnen von Client-Zuständen
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112021004808T5 (de) Erkennen von malware durch analyse verteilter telemetriedaten
DE112021000689T5 (de) Attestierung von neuronalen abläufen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029080000

Ipc: G06F0021500000

Effective date: 20130604

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final