-
Gebiet der Erfindung
-
Diese Offenbarung betrifft allgemein die Erkennung von Bedrohungen in einem Datenverarbeitungssystem.
-
Hintergrund der Erfindung
-
Web-Anwendungen können absichtlichen oder versehentlichen Fehlbedienungen oder Angriffen ausgesetzt sein. Angriffe auf Anwendungsebene wie zum Beispiel Denial-of-Service(DoS), Brute-Force oder die Ausnutzung von unkontrollierten Zuständen beeinträchtigen ein Unternehmen durch eingeschränkte Verfügbarkeit und Unversehrtheit der Anwendung. Das Erkennen eines Problems und das Herbeiführen einer Lösung können äußerst zeitaufwändig sein. Solange das Problem vorliegt, ist die Anwendung nicht verfügbar, was üblicherweise zu Umsatzeinbußen führt. Alternativ ist eine Einschränkung des Zugriffs auf die Anwendung wirkungslos, da der Angreifer einfach den Ort wechseln kann und jegliche auf der Vermittlungsschicht angewendete Blockierungen einen Großteil der berechtigten Benutzergemeinde der Anwendung potenziell beeinträchtigen können.
-
Übliche Lösungen zielen bei Auftreten einer verdächtigen Aktivität auf die Vermittlungsschicht ab. Wie jedoch vorher schon erwähnt, geschehen Angriffe auf Anwendungsebene häufig unabsichtlich. Oft werden Angriffe auf Anwendungsebene durch Web-Crawler, auch Robots bzw. kurz Bots genannt, Geschäftspartner oder Benutzer, die ein ungewöhnliches, jedoch nicht bösartiges Verhalten an den Tag legen, ausgelöst. Nähere Informationen über den Angreifer zu haben, der derartige Informationen häufig auch bereitwillig preisgibt, kann entscheidend für die Problemlösung sein.
-
Beschreibung der Erfindung
-
Gemäß einer Ausführungsform ein auf einem Rechner ausgeführtes Verfahren zum Unschädlichmachen einer erkannten Bedrohung. Der auf einem Rechner ausgeführte Prozess empfängt von einem Anforderer eine Anforderung und bildet eine empfangene Anforderung, entnimmt der empfangenen Anforderung zugehörige Statistiken und bildet entnommene Statistiken, führt unter Verwendung der entnommenen Statistiken eine Regelüberprüfung für die empfangene Anforderung durch und ermittelt, ob der Anforderer eine Bedrohung darstellt. Als Reaktion auf eine Feststellung, dass der Anforderer eine Bedrohung darstellt, wird der Anforderer unter Verwendung von schrittweisen Höherstufungen höhergestuft, wobei das Verwenden von schrittweisen Höherstufungen ferner die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen entweder durch Übergehen auf eine nächsthöhere Nutzerebene oder durch direkte Eintragung in eine Nutzerebene umfasst.
-
Gemäß einer anderen Ausführungsform wird ein Rechnerprogrammprodukt zum Unschädlichmachen einer erkannten Bedrohung dargestellt. Das Rechnerprogrammprodukt umfasst ein durch einen Rechner beschreibbares Medium, das einen darauf gespeicherten auf einem Rechner ausführbaren Programmcode enthält, wobei der auf einem Rechner ausführbare Programmcode Folgendes umfasst: auf einem Rechner ausführbaren Programmcode für den Empfang einer Anforderung von einem Anforderer zur Bildung einer empfangenen Anforderung, auf einem Rechner ausführbaren Programmcode für die Entnahme von der empfangenen Anforderung zugehörigen Statistiken zur Bildung von entnommenen Statistiken, auf einem Rechner ausführbaren Programmcode für die Durchführung einer Regelüberprüfung für die empfangene Anforderung unter Verwendung der entnommenen Statistiken, auf einem Rechner ausführbaren Programmcode zum Ermitteln, ob die Anforderung eine Bedrohung darstellt, und auf eine Feststellung, dass die Anforderung eine Bedrohung darstellt, reagierenden, auf einem Rechner ausführbaren Programmcode für die Höherstufung des Anforderers unter Verwendung von schrittweisen Höherstufungen, wobei der auf einem Rechner ausführbare Programmcode für die Verwendung von schrittweisen Höherstufungen ferner auf einem Rechner ausführbaren Programmcode für die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen entweder durch Übergehen auf eine nächsthöhere Nutzerebene oder durch direkte Eintragung in eine Nutzerebene umfasst.
-
Gemäß einer anderen Ausführungsform wird eine Vorrichtung für Vorrichtungen zum Unschädlichmachen einer erkannten Bedrohung dargestellt. Die Vorrichtung umfasst ein Datenübertragungsnetz, einen mit dem Datenübertragungsnetz verbundenen Speicher, wobei der Speicher auf einem Rechner ausführbaren Programmcode enthält, eine mit dem Datenübertragungsnetz verbundene Datenübertragungseinheit, eine mit dem Datenübertragungsnetz verbundene Eingabe-/Ausgabe-Einheit, eine mit dem Datenübertragungsnetz verbundene Anzeige und eine mit dem Datenübertragungsnetz verbundene Verarbeitungseinheit, wobei die Verarbeitungseinheit den auf einem Rechner ausführbaren Programmcode ausführt und die Vorrichtung anweist, von einem Anforderer eine Anforderung zu empfangen und eine empfangene Anforderung zu bilden, der empfangenen Anforderung zugehörige Statistiken zu entnehmen und entnommene Statistiken zu bilden, unter Verwendung der entnommenen Statistiken eine Regelüberprüfung für die empfangene Anforderung durchzuführen, zu ermitteln, ob der Anforderer eine Bedrohung darstellt und als Reaktion auf eine Feststellung, dass der Anforderer eine Bedrohung darstellt, den Anforderer unter Verwendung von schrittweisen Höherstufungen höherzustufen, wobei das Verwenden von schrittweisen Höherstufungen ferner die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen entweder durch Übergehen auf eine nächsthöhere Nutzerebene oder durch direkte Eintragung in eine Nutzerebene umfasst.
-
Kurze Beschreibung der Zeichnungen
-
Um ein vollständigeres Verständnis dieser Offenbarung zu ermöglichen, wird nun Bezug auf die folgenden kurzen Beschreibungen in Verbindung mit den beigefügten Zeichnungen und der ausführlichen Beschreibung genommen, wobei gleiche Bezugszahlen gleiche Teile darstellen.
-
1 ist ein Blockschaltbild eines beispielhaften Datenverarbeitungssystems, das für mehrere Ausführungsformen der Offenbarung betrieben werden kann;
-
2 ist ein Ablaufplan eines Systems zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten gemäß mehreren Ausführungsformen der Offenbarung;
-
3 ist ein Funktionsschaubild von schrittweisen Höherstufungen und Nutzerebenen, die gemäß einer Ausführungsform der Offenbarung für das System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten gemäß 2 verwendet werden;
-
4 ist ein Ablaufplan eines Blockierprozesses gemäß einer Ausführungsform der Offenbarung, das die Nutzerebenen gemäß 3 anwendet;
-
5a ist ein Ablaufplan eines Höherstufungsprozesses gemäß 4 gemäß einer Ausführungsform der Offenbarung; und
-
5b ist ein Ablaufplan eines Überprüfungsprozesses gemäß 5a gemäß einer Ausführungsform der Offenbarung.
-
Ausführliche Beschreibung der bevorzugten Ausführungsform
-
Obwohl nachfolgend eine veranschaulichende Ausführung einer oder mehrerer Ausführungsformen dargestellt wird, können die beschriebenen Systeme und/oder Verfahren unter Anwendung jeder beliebigen Technik ausgeführt werden. Diese Offenbarung ist in keiner Weise auf die unten dargestellten veranschaulichenden Ausführungen, Zeichnungen und Techniken, einschließlich der hierin dargestellten und beschriebenen beispielhaften Entwürfe und Ausführungen zu beschränken, sondern kann im Rahmen der beigefügten Ansprüche samt deren vollen Umfang an Entsprechungen abgeändert werden.
-
Der Fachmann wird verstehen, dass die vorliegende Offenbarung als System, Verfahren oder Rechnerprogrammprodukt ausgeführt werden kann. Entsprechend kann die vorliegende Offenbarung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindlicher Software, Mikro-Code, etc.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein können. Des Weiteren kann die vorliegende Erfindung die Form eines Rechnerprogrammprodukts annehmen, das physisch auf einem beliebigen Ausdrucksmedium enthalten ist, wobei auf dem Medium auf einem Rechner verwendbarer Programmcode enthalten ist.
-
Rechnerprogrammcode für die Ausführung der Prozesse der vorliegenden Offenbarung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie JavaTM, Smalltalk, C++ o. ä. sowie herkömmliche prozeduraler Programmiersprachen wie die „C”-Programmiersprache oder ähnliche Programmiersprachen. Java und sämtliche auf Java beruhende Warenzeichen und Logos sind Warenzeichen von Sun Microsystems, Inc., in den USA und/oder anderen Ländern. Der Programmcode kann vollständig auf dem Rechner des Benutzers, teilweise auf dem Rechner des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Rechner des Benutzers und teilweise auf einem fernen Rechner oder vollständig auf dem fernen Rechner oder Server ausgeführt werden. In letzterem Fall kann der ferne Rechner mit dem Rechner des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Rechner hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters).
-
Die vorliegende Offenbarung wird nachfolgend unter Bezugnahme auf Ablaufpläne und/oder Blockschalt- bzw. Funktionsschaubilder von Verfahren, Vorrichtungen, Systemen und Rechnerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder des Blockschalt- bzw. des Funktionsschaubilds sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschalt- bzw. den Funktionsschaubildern durch Rechnerprogrammanweisungen ausgeführt werden können.
-
Diese Rechnerprogrammanweisungen können dem Prozessor eines Universalrechners, eines Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Rechners bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne- und/oder des Blockschalt- bzw. des Funktionsschaubilds festgelegten Funktionen/Schritte erzeugt. Diese Rechnerprogrammanweisungen können auch auf einem durch einen Rechner lesbaren Medium gespeichert sein, das einen Rechner oder eine andere programmierbare Datenverarbeitungsvorrichtung so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die auf dem durch einen Rechner lesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungsmittel, welche die in dem Block bzw. den Blöcken der Ablaufpläne- und/oder des Blockschalt- bzw. des Funktionsschaubilds festgelegten Funktion/den Schritt umsetzen.
-
Die Rechnerprogrammanweisungen können auch auf einen Rechner oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um die Ausführung einer Reihe von Prozessschritten auf dem Rechner bzw. der anderen programmierbaren Vorrichtung zu verursachen, um einen auf einem Rechner ausgeführten Prozess zu erzeugen, so dass die auf dem Rechner oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne- und/oder des Blockschalt- bzw. des Funktionsschaubilds festgelegten Funktionen/Schritte erzeugen.
-
Wenden wir uns nun 1 zu, in der ein Blockschaltbild eines beispielhaften Datenverarbeitungssystems, das für mehrere Ausführungsformen der Offenbarung betrieben werden kann, gezeigt ist. In diesem veranschaulichenden Beispiel enthält das Datenverarbeitungssystem 100 ein Datenübertragungsnetz 102, das den Austausch von Daten zwischen der Prozessoreinheit 104, dem Speicher 106, dem dauerhaften (persistent) Speicher 108, der Datenübertragungseinheit 110, der Eingabe-Ausgabe-(E/A-)Einheit 112 und der Anzeige 114 bereitstellt.
-
Die Prozessoreinheit 104 dient zur Ausführung von Software-Anweisungen, die in den Speicher 106 geladen werden können. Abhängig von der jeweiligen Ausführungsform kann es sich bei der Prozessoreinheit 104 um eine Reihe von einem oder mehreren Prozessoren oder einen Multiprozessorkern handeln. Des Weiteren kann die Prozessoreinheit 104 unter Verwendung einer oder mehrerer heterogener Prozessorsysteme ausgeführt sein, in denen ein Hauptprozessor mit Nebenprozessoren auf einem einzigen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann es sich bei der Prozessoreinheit 104 um ein symmetrisches Multiprozessorsystem handeln, das mehrere Prozessoren desselben Typs enthält.
-
Der Speicher 106 und der dauerhafte Speicher 108 sind Beispiele von Speichereinheiten 116. Eine Speichereinheit ist eine beliebige Hardware, die Daten speichern kann, wie zum Beispiel, aber ohne Beschränkung auf Daten, Programmcode in funktionaler Form und/oder andere geeignete Daten entweder auf vorübergehender Grundlage und/oder auf dauerhafter Grundlage. Der Speicher 106 kann in diesen Beispielen beispielsweise ein Direktzugriffsspeicher oder jede beliebige andere geeignete flüchtige oder nichtflüchtige Speichereinheit sein. Abhängig von der entsprechenden Ausführung kann der dauerhafte Speicher 108 verschiedene Formen annehmen. Der dauerhafte Speicher 108 kann zum Beispiel eine oder mehrere Bauelemente oder Einheiten enthalten. Bei dem dauerhaften Speicher 108 kann es sich zum Beispiel um ein Festplattenlaufwerk, einen Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine Kombination aus diesen handeln. Die von dem dauerhaften Speicher 108 verwendeten Medien können auch auswechselbar sein. Es kann zum Beispiel ein Wechselplattenlaufwerk für den dauerhaften Speicher 108 verwendet werden.
-
Die Datenübertragungseinheit 110 sorgt in diesen Beispielen für die Datenübertragung zu anderen Datenverarbeitungssystemen oder -einheiten. In diesen Beispielen ist die Datenübertragungseinheit 110 eine Netzwerk-Schnittstellenkarte. Die Datenübertragungseinheit 110 kann die Datenübertragung durch Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
-
Die Eingabe-Ausgabe-Einheit 112 ermöglicht die Eingabe und Ausgabe von Daten von/zu anderen Einheiten, die gegebenenfalls mit dem Datenverarbeitungssystem 100 verbunden sind. Die Eingabe-Ausgabe-Einheit 112 kann zum Beispiel eine Verbindung für Benutzereingaben über eine Tastatur, eine Maus und/oder eine andere geeignete Eingabeeinheit bereitstellen. Des Weiteren kann die Eingabe-Ausgabe-Einheit 112 Daten an einen Drucker ausgeben. Die Anzeige 114 stellt einen Mechanismus zur Anzeige von Daten für Benutzer bereit.
-
Anweisungen für das Betriebssystem, die Anwendungen und/oder Programme können sich in den Speichereinheiten 116 befinden, die über das Datenübertragungsnetz 102 mit der Prozessoreinheit 104 Daten austauschen. In diesen veranschaulichenden Beispielen befinden sich die Anweisungen in funktionaler Form auf dem dauerhaften Speicher 108. Diese Anweisungen können in den Speicher 106 geladen werden, um von der Prozessoreinheit 104 ausgeführt zu werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 104 unter Verwendung von auf einem Rechner ausgeführten Anweisungen durchgeführt werden, die sich in einem Speicher wie dem Speicher 106 befinden können.
-
Diese Anweisungen werden Programmcode, von einem Rechner verwendbarer Programmcode oder durch einen Rechner lesbarer Programmcode, der von einem Prozessor in der Prozessoreinheit 104 gelesen und ausgeführt werden kann, genannt. Der Programmcode in den verschiedenen Ausführungsformen kann in verschiedenen physischen oder greifbaren durch einen Rechner lesbaren Medien wie dem Speicher 106 oder dem dauerhaften Speicher 108 enthalten sein.
-
Der Programmcode 118 befindet sich in einer funktionalen Form auf dem durch einen Rechner lesbaren Medium 120, das wahlweise austauschbar ist und zur Ausführung durch die Prozessoreinheit 104 in ein Datenverarbeitungssystem 100 geladen oder übertragen werden kann. Der Programmcode 118 und das durch einen Rechner lesbare Medium 120 bilden in diesen Beispielen ein Rechnerprogrammprodukt 122. In einem Beispiel kann das durch einen Rechner lesbare Medium 120 eine physische Form aufweisen, wie zum Beispiel eine optische oder magnetische Platte, die zur Übertragung auf eine Speichereinheit wie ein Festplattenlaufwerk, das Teil des dauerhaften Speichers 108 ist, in ein Laufwerk oder eine andere Einheit, die Teil des dauerhaften Speichers 108 ist, eingeschoben oder eingelegt wird. In einer physischen Form kann das durch einen Rechner lesbare Medium 120 auch die Form eines dauerhaften Speichers wie einem Festplattenlaufwerk, einem ausfahrbaren USB-Stick oder einem Flash-Speicher annehmen, der mit dem Datenverarbeitungssystem 100 verbunden ist. Die physische Form des durch einen Rechner lesbaren Mediums 120 wird auch durch einen Rechner beschreibbares Speichermedium genannt. In einigen Fällen kann das durch einen Rechner lesbare Medium 120 auch nicht austauschbar sein.
-
Alternativ kann der Programmcode 118 über eine Datenübertragungsverbindung mit der Datenübertragungseinheit 110 und/oder durch eine Verbindung mit der Eingabe-Ausgabe-Einheit 112 von dem durch einen Rechner lesbaren Medium 120 auf das Datenverarbeitungssystem 100 übertragen werden. In den veranschaulichenden Beispielen können die Datenübertragungsverbindung und/oder die Verbindung physisch oder drahtlos sein. Das durch einen Rechner lesbare Medium kann auch die Form von nicht-physischen Medien wie Datenübertragungsverbindungen oder drahtlosen, den Programmcode enthaltenden Übertragungen annehmen.
-
In einigen veranschaulichenden Ausführungsformen kann der Programmcode 118 zur Verwendung in dem Datenverarbeitungssystem 100 von einer anderen Einheit oder einem anderen Datenverarbeitungssystem über ein Netzwerk auf den dauerhaften Speicher 108 heruntergeladen werden. In einem durch einen Rechner lesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeicherter Programmcode kann zum Beispiel über ein Netzwerk von dem Server auf das Datenverarbeitungssystem 100 heruntergeladen werden. Bei dem den Programmcode 118 bereitstellenden Datenverarbeitungssystem kann es sich um einen Server-Rechner, einen Client-Rechner oder eine andere Einheit handeln, die in der Lage ist, Programmcode 118 zu speichern und zu übertragen.
-
Die verschiedenen für das Datenverarbeitungssystem 100 dargestellten Komponenten stellen keine baulichen Einschränkungen für die Art und Weise, in der verschiedene Ausführungsformen umgesetzt werden können, dar. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem realisiert werden, das zusätzlich zu oder an Stelle der für das Datenverarbeitungssystem 100 dargestellten Komponenten andere Komponenten enthalten kann. Andere in 1 gezeigte Komponenten können abweichend von den gezeigten veranschaulichenden Beispielen variiert werden. Die verschiedenen Ausführungsformen können unter Verwendung beliebiger Hardware-Einheiten oder -systeme, die Programmcode ausführen können, ausgeführt werden. Als ein Beispiel kann das Datenverarbeitungssystem organische Bestandteile aufweisen, die mit anorganischen Bestandteilen verflochten sind, und/oder vollständig aus organischen Bestandteilen bestehen, mit Ausnahme von Menschen. Eine Speichereinheit kann zum Beispiel aus einem organischen Halbleiter bestehen.
-
Als weiteres Beispiel kann es sich bei der Speichereinheit in dem Datenverarbeitungssystem 100 um jede beliebige Hardware-Einheit handeln, die Daten speichern kann. Der Speicher 106, der dauerhafte Speicher 108 und das durch einen Rechner lesbare Medium 120 sind Beispiele von Speichereinheiten in physischer Form.
-
In einem anderen Beispiel kann ein Bussystem zur Realisierung des Datenübertragungsnetzes 102 verwendet werden, das aus einem oder mehreren Bussen wie einem Systembus oder einem Eingabe-Ausgabe-Bus bestehen kann. Natürlich kann das Bussystem unter Verwendung einer beliebigen Architektur ausgeführt werden, die eine Übertragung von Daten zwischen verschiedenen an das Bussystem angeschlossenen Komponenten oder Einheiten gewährleistet. Außerdem kann eine Datenübertragungseinheit eine oder mehrere für das Senden und Empfangen von Daten verwendete Einheiten wie einen Modem oder einen Netzwerkadapter enthalten. Des Weiteren kann ein Speicher zum Beispiel der Speicher 106 oder ein Cache-Speicher sein, wie man ihn in einem Schnittstellen- und Speichersteuerungsknoten findet, der in dem Datenübertragungssystem 102 vorhanden sein kann.
-
Gemäß einer veranschaulichenden Ausführungsform wird ein auf einem Rechner ausgeführter Prozess zum Unschädlichmachen einer erkannten Bedrohung dargestellt. Der auf einem Rechner ausgeführte Prozess empfängt von einem Anforderer eine Anforderung und bildet eine empfangene Anforderung, entnimmt der empfangenen Anforderung zugehörige Statistiken und bildet entnommene Statistiken, führt unter Verwendung der entnommenen Statistiken eine Regelüberprüfung für die empfangene Anforderung durch und stellt fest, ob der Anforderer eine Bedrohung darstellt. Als Reaktion auf eine Feststellung, dass der Anforderer eine Bedrohung darstellt, wird der Anforderer unter Verwendung von schrittweisen Höherstufungen höhergestuft, wobei die Höherstufung ferner das Übergehen auf eine nächsthöhere Nutzerebene oder die direkte Eintragung in eine Nutzerebene umfasst.
-
Das Datenverarbeitungssystem 100 gemäß 1 als Beispiel nehmend stellt eine veranschaulichende Ausführungsform den in Speicher 106 gespeicherten, von der Prozessoreinheit 104 ausgeführten, auf einem Rechner ausgeführten Prozess bereit, empfängt zum Beispiel über die Datenübertragungseinheit 110 oder die Eingabe-Ausgabe-Einheit 112 eine Anforderung von einem Anforderer und bildet eine empfangene Anforderung. Die Prozessoreinheit 104 entnimmt der empfangenen Anforderung zugehörige Statistiken und bildet entnommene Statistiken, die in den Speichervoreinheiten 116 gespeichert werden können. Die Prozessoreinheit 104 führt unter Verwendung der entnommenen Statistiken eine Regelüberprüfung für die empfangene Anforderung durch und stellt fest, ob der Anforderer eine Bedrohung darstellt. Als Reaktion auf eine Feststellung, dass der Anforderer eine Bedrohung darstellt, stuft die Prozessoreinheit 104 den Anforderer unter Verwendung von schrittweisen Höherstufungen, die in dem Speicher 106 oder dem persistenten Speicher 108 gespeichert sein können, höher, wobei die Höherstufung ferner das Übergehen auf eine nächsthöhere Nutzerebene oder die direkte Eintragung in eine Nutzerebene umfasst. Mit der Höherstufung geht typischerweise die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen einher.
-
In einer alternativen Ausführungsform kann der den auf einem Rechner ausgeführten Prozess enthaltende Programmcode 118 als Rechnerprogrammprodukt 122 auf dem durch einen Rechner lesbaren Medium 120 gespeichert sein. In einer anderen veranschaulichenden Ausführungsform kann der Prozess zur Zugriffssteuerung durch Vergewisserung der Vertrauenswürdigkeit unter Verwendung hierarchischer Gewichtungen in einer Vorrichtung realisiert sein, die Folgendes umfasst: ein Datenübertragungsnetz, einen mit dem Datenübertragungsnetz verbundenen Speicher, wobei der Speicher auf einem Rechner ausführbaren Programmcode enthält, eine mit dem Datenübertragungsnetz verbundene Datenübertragungseinheit, eine mit dem Datenübertragungsnetz verbundene Eingabe-Ausgabe-Einheit, eine mit dem Datenübertragungsnetz verbundene Anzeige und eine mit dem Datenübertragungsnetz verbundene Verarbeitungseinheit. Die Verarbeitungseinheit der Vorrichtung führt den auf einem Rechner ausführbaren Programmcode aus und steuert die Vorrichtung so, dass sie den Prozess durchführt.
-
Unter Bezugnahme auf 2 wird ein Ablaufplan eines Systems zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten gemäß mehreren Ausführungsformen der Offenbarung dargestellt. Das Erkennungssystem 200 ist ein Beispiel eines Systems zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten, das die Fähigkeit hat, Nutzerebenen schrittweise höherzustufen. Das Erkennungssystem 200 kann auf einem neuen oder bestehenden System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten wie zum Beispiel dem System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten 202 beruhen.
-
Ein typisches System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten (APIDS) kann durch das System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten 202 dargestellt werden. Das System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten 202 enthält zum Beispiel eine Reihe von Komponenten, darunter ein Regelerzeuger 204, ein Sitzungsverfolger 206, eine Datenbank über aktive Sitzungen und Bezeichner 208, Regeln 210 und Gegenmaßnahmen 212.
-
Der Regelerzeuger 204 ist eine Komponente, die in verschiedenen Formaten erhaltene Daten verwendet, darunter aus manueller Eingabe, aus Nutzungshistorien, aus Vorhersagen und aus Nutzungsausnahmen, um eine variable Grundlinie der Nutzung zu definieren und Regeln zu erzeugen. Die Regeln werden zur Erstellung von Konformitätskriterien verwendet, anhand derer in einem in Schritt 214 gestarteten Prozess Anforderungen aus dem Schritt 216 „Empfange eine Anforderung von einem Anforderer und bilde eine empfangene Anforderung” beurteilt werden. Bei Verwendung einer Webseite können zum Beispiel zum Erzeugen durch den Regelgenerator 204 die auf Seitenverteilung bezogenen Kriterien, Antwortzeiten, Anzahl der Treffer pro Sitzung und folgende Seiten gehören, ohne auf diese beschränkt zu sein.
-
Der Sitzungsverfolger 206 ist eine Komponente mit der Fähigkeit zur Verfolgung von Nutzerdialogen in einem System. Diese Komponente beinhaltet typischerweise einen Identifikationsmechanismus für sichere Sitzungen wie zum Beispiel ein verschlüsseltes Cookie für Web-Anwendungen, das dem Schritt 216 „Empfange eine Anforderung von einem Anforderer und bilde eine empfangene Anforderung” zugehört.
-
Die Datenbank über aktive Sitzungen und Bezeichner 208 ist ein Beispiel einer Komponente, die gemeinsam mit dem Sitzungsverfolger 206 Nutzungsstatistiken für aktive Sitzungen und zugehörige Bezeichner erfasst. Bezeichner können zum Beispiel eine Anforderungsadresse in Form einer Internetprotokolladresse oder einer Benutzeragenten-Kennzeichnung enthalten. Der Schritt 218 „Entnimm der empfangenen Anforderung zugehörige Statistiken” kann durchgeführt werden, um eine Sammlung an Daten zur Speicherung bereitzustellen, die sich auf eine in dem Schritt 216 „Empfange eine Anforderung von einem Anforderer und bilde eine empfangene Anforderung” erhaltene Anforderungssitzung bezieht. Falls das System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten 202 bereits vorher erkannt hat, dass dieser Anforderer eine Bedrohung darstellt, können während des Schritts 218 „Entnimm der empfangenen Anforderung zugehörige Statistiken” zusätzliche Statistiken entnommen werden.
-
Regeln 210 ist ein Beispiel einer Komponente mit der Fähigkeit, die Statistiken bzw. Eigenschaften von eingehenden Anforderungen und zugehörigen Bezeichnern mit den bestehenden Regeln zu vergleichen, wie in Schritt 220 „Führe für die empfangene Anforderung eine Regelüberprüfung durch”. Um die relevanten Regeln zu identifizieren, wird eine Auswahl an Regeln auf die spezifische verwendete Nutzerebene angewendet. Geht eine Anforderung ein, wird durch den Schritt 220 „Führe für die empfangene Anforderung eine Regelüberprüfung durch” ein Vergleich mit einem vordefinierten Kriterium durchgeführt. Es wird ermittelt, ob die Anforderung mit einem vordefinierten Schwellwert übereinstimmt, wie in Schritt 222 „Ermittle, ob ein Anforderer eine Bedrohung darstellt”. Wenn der Vergleich keine Übereinstimmung mit dem Schwellwert ergibt, wird die Anforderung als verdächtig markiert, wie in Schritt 224 „Stufe den Anforderer eine Nutzerebene höher”. Verdächtige Anforderungen sind typischerweise als Bedrohungen bekannt. Die Höherstufung einer verdächtigen Anforderung erzeugt eine neue Anforderung, die dazu verwendet wird zu ermitteln, ob die Überprüfung des Anforderers erfolgreich verläuft (Schritt 226). Wenn die Ermittlung zu einem erfolgreichen Ergebnis führt, wird wiederum der Schritt 220 „Führe für die empfangene Anforderung eine Regelüberprüfung durch” durchgeführt, gefolgt von Schritt 222 „Ermittle, ob ein Anforderer eine Bedrohung darstellt”. Wenn es keine Bedrohung gibt, wird der Schritt 230 „Verarbeite die Anforderung” durchgeführt, wobei der Prozess bei Ende 232 endet.
-
Gegenmaßnahmen 212 ist ein Beispiel einer Komponente, die in der Lage ist, auf in dem System erkannte Bedrohungen zu reagieren. Gegenmaßnahmen 212 stellt ein Beispiel einer Stelle dar, an der Höherstufungen von Benutzer-Identitäts- und -Überprüfungs-Anforderungen stattfinden können. Eine Gegenmaßnahme ist zum Beispiel als Schritt 228 „Blockiere die Anforderung” dargestellt. In einem anderen Beispiel kann auch ein Aufgabe-Antwort-Test, der hauptsächlich in Webformularen zur Ermittlung, ob der Benutzer menschlich ist, und zur Erfassung von Überprüfungsdaten verwendet wird, eine Gegenmaßnahme für einen mutmaßlichen Angreifer oder einen verdächtigen Benutzer sein.
-
Unter Bezugnahme auf 3 wird ein Funktionsschaubild von schrittweisen Höherstufungen und Nutzerebenen, die gemäß einer Ausführungsform der Offenbarung für das System zum Erkennen eines Angriffs auf eine Anwendung auf der Grundlage von Unregelmäßigkeiten gemäß 2 verwendet werden, dargestellt. Schrittweise Höherstufungen 300 ist ein Beispiel eines Systems, das verschiedene Ebenen der Höherstufung umfasst, wobei jede Stufe unterschiedliche und präzisere Benutzerinformationen als eine vorhergehende Stufe erfordert.
-
Das Erkennungssystem 200 gemäß 2 erkennt, welche Stufen mit zunehmenden Anforderungen bezüglich der Preisgabe von Benutzerinformationen und der Überprüfung von Benutzern benötigt werden. Bei Erkennung einer Bedrohung oder Unregelmäßigkeit wird der Benutzer zwingend auf die nächste Stufe hochgestuft. Die Höherstufung auf eine nächste Stufe beinhaltet die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen. Die Abwehr von Angriffen auf Anwendungsebene durch Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen hat mehrere Vorteile, u. a. wird der Angreifer gezwungen, nähere Informationen über den Angreifer preiszugeben. Die Zusatzinformationen verkürzen typischerweise die zur Identifizierung eines Angreifers benötigte Zeit. Da viele Angriffe auf Anwendungsebene unbeabsichtigt sind, kann ein eine schrittweise Höherstufung 300 anwendender Prozess die Identität des Angreifers wirksam enthüllen. Die Auswirkungen auf andere Benutzer der Anwendung können auf ein Mindestmaß herabgesetzt werden, da der Überprüfungsprozess nur von außen stattfindet und in die Anwendung integriert ist. Die Anwendung von schrittweisen Höherstufungen 300 stellt die Fähigkeit bereit, unberechtigte Zugriffe durch Roboter oder nichtmenschliche Agenten programmatisch zu erkennen und zu blockieren.
-
Die Nutzerebenen sind typischerweise in die Kategorien bzw. Nutzerebenen 302 Anonym 304, Verfolgt 306, Identität festgestellt 308, Überprüft 310, Vertrauenswürdig 312 bzw. Blockiert 314 eingeteilt. Anonym 304 ist eine Kategorie, die mit Anforderungen einhergeht, bei denen der Benutzer keine spezifischen Informationen über den Benutzer bereitstellt. Zum Beispiel, wenn es die erste Anforderung auf einer Webseite ist. Anonyme Anforderungen werden in die Kategorie Verfolgt 306 hochgestuft. Wenn die Anforderungen zu einer verdächtigen Gruppe gehören wie zum Beispiel einer bekannten bösartigen, einer bestimmten Internetprotokolladresse zugehörigen Adresse oder einem Benutzeragenten, wird die Anforderung auf eine Nutzerebene Identität feststellen 308 hochgestuft.
-
Verfolgt 306 stellt Anforderungen dar, die zu einer Sitzung gehören, die auf der Serverschicht sicher verfolgt wird. Die Verfolgung gestattet dem Erkennungssystem die Erkennung von Unregelmäßigkeiten wie Brute-Force- bzw. Denial-of-Service-Angriffen anhand der Art, wie ein bestimmter Agent die Anwendung verwendet.
-
Identität festgestellt 308 stellt die nächsthöhere Ebene nach Verfolgt 306 dar und wird verwendet, wenn für eine verfolgte Anforderung eine Unregelmäßigkeit entdeckt wurde, und der Agent wird gezwungen, seine Identität nachzuweisen. Der Nachweis der Identität erfordert typischerweise die Umleitung auf eine Anmeldeseite, auf welcher der Benutzer eine Identität angeben und ein Passwort eingeben muss. Die Anmeldeseite ist normalerweise abgedunkelt, um ein automatisches Anmelden durch Roboter oder andere automatische Benutzer zu verhindern. Als weiteres Beispiel kann das System, wenn der Benutzer nicht in dem System registriert ist, eine Option zur Registrierung bereitstellen und die Identität des Benutzers zu diesem Zeitpunkt feststellen. Das System kann eine Überprüfung durchführen und sicherstellen, dass die Registrierungsdaten für den Agenten vollständig sind. Der Registrierungsprozess kann es auch erfordern, einen menschlichen Benutzer zur Eingabe einer aktualisierten Telefonnummer oder eMail-Adresse in das System aufzufordern.
-
Überprüft 310 stellt eine Ebene über Identität festgestellt 308 dar und wird verwendet, wenn für eine Anforderung, deren Identität festgestellt wurde, eine Unregelmäßigkeit entdeckt wird. In diesem Fall wird der Benutzer auf die Ebene Überprüft hochgestuft. Überprüft 310 beinhaltet typischerweise die Verwendung von menschlichen Überprüfungs-Tools oder das Hinzuziehen eines Administrators oder eines Kundendienstmitarbeiters zur Überprüfung des Benutzers. Die Tools stellen sicher, dass der vorliegende Benutzer kein automatischer Mechanismus wie ein programmgesteuerter Roboter ist, und dass der momentan auf dieses Konto zugreifende Benutzer die Person ist, für die dieses Konto ursprünglich registriert wurde, bzw. dem Benutzer von dieser Person vertraut wird.
-
Vertrauenswürdig 312 stellt eine Nutzerebene dar, auf der ein vertrauenswürdiger Benutzer ein Benutzer ist, für den der Administrator der Anwendung eine Ausnahme erzeugt hat, dass er immer vertrauenswürdig ist. Vertrauenswürdige Benutzer können auf allen Ebenen vorkommen, zum Beispiel kann ein Benutzer als anonymer Benutzer vertrauenswürdig sein, wenn er von einer vertrauenswürdigen Internetprotokolladresse kommt, die einem vertrauenswürdigen Roboter oder einem Administratorkonto zugehört.
-
Blockiert 314 stellt eine Nutzerebene dar, auf der ein Benutzer keine weitere Handlung ausführen darf. Wie bei Vertrauenswürdig 312 wird ein Benutzer durch eine automatische oder manuelle Administratormaßnahme auf Blockiert gesetzt. Typischerweise erfolgt eine Blockierung als Reaktion auf einen Benutzer, der Anfragen stellt, die als Bedrohung erkannt werden. Wenn eine Reihe von Internetprotokolladressen zum Beispiel wiederholt für den Angriff auf eine Seite verwendet wird, werden alle diesen Adressen zugehörigen Benutzer blockiert. Eine Ebene kann hochgestuft oder jederzeit auf eine vertrauenswürdige oder blockierte Ebene festgelegt werden. Die Höherstufung folgt einem Weg durch die Hierarchie, wohingegen das Festlegen auf eine bestimmte Ebene die Eingangspunkte 316 für einen direkten Zugriff nutzt.
-
Eine den verschiedenen Nutzerebenen zugehörige Sicherheit legt einen Verarbeitungspfad fest. Vertrauenswürdige Benutzer werden sofort verarbeitet. Wenn ein Benutzer blockiert ist, wird die dem Benutzer zugehörige Anforderung blockiert. Anonyme Benutzer werden unmittelbar auf die Stufe Verfolgt hochgestuft, um zusätzliche Informationen bereitzustellen. Alle anderen Benutzer werden auf eine nächsthöhere Ebene hochgestuft, wenn sie als Bedrohung wahrgenommen werden. Einem Benutzer können mehrere Höherstufungsmöglichkeiten eingeräumt werden, bevor er blockiert wird. Die Bedingungen des Schweregrads einer Blockierung liegen im Ermessen des Administrators oder einer bei der Installation definierten Richtlinie.
-
Unter Bezugnahme auf 4 wird ein Ablaufplan eines Blockierprozesses gemäß einer Ausführungsform der Offenbarung dargestellt, das die Nutzerebenen der schrittweisen Höherstufungen gemäß 3 anwendet. Der Prozess 400 ist ein Beispiel für einen Benutzerblockierprozess, der die schrittweisen Höherstufungen 300 mit den Nutzerebenen 302 gemäß 3 verwendet.
-
Der Prozess 400 beginnt (Schritt 402) und ermittelt, ob die Anforderung zu blockieren ist (Schritt 404). Wenn festgestellt wird, dass die Anforderung nicht blockiert werden muss, erhält man die Antwort „nein”. Wenn festgestellt wird, dass die Anforderung zu blockieren ist, erhält man die Antwort „ja”. Wenn man in Schritt 404 ein „nein” erhält, werden die Nutzerebenen 302 in diesem Beispiel auf Anonym 304 gesetzt. Der Benutzer wird automatisch auf Verfolgt 306 hochgestuft. Wenn man in Schritt 404 das Ergebnis „ja” erhält, ist ein Blockieren notwendig, und „Blockiere die Anforderung” wird durchgeführt (Schritt 406), wobei der Prozess 400 danach beendet wird (Schritt 418).
-
Der Prozess 400 ermittelt, ob die Anforderung eine Bedrohung darstellt (Schritt 408). Auf Grundlage eines Vergleichs der Verfolgungsinformationen für diesen Benutzer oder diese Benutzerart mit vorher gespeicherten Informationen kann eine Ermittlung durchgeführt werden. Der Vergleich der Verfolgungsinformationen beruht auf dem Vergleichen von vordefinierten Kriterien, die einer Nutzerebene einer schrittweisen Höherstufung zugehören. Wenn festgestellt wird, dass der anfordernde Benutzer bzw. die Anforderung eine Bedrohung darstellt, erhält man ein „ja”. Wenn festgestellt wird, dass der anfordernde Benutzer bzw. die Anforderung keine Bedrohung darstellt, erhält man das Ergebnis „nein”. Wenn man in Schritt 408 das Ergebnis „nein” erhält, wird keine Bedrohung wahrgenommen, und die Benutzeranfrage wird in „Verarbeite die Anforderung” (Schritt 416) ausgeführt, wobei der Prozess 400 danach beendet wird (Schritt 418). Wenn zum Beispiel ein verfolgter Benutzer bei einem Online-Händler einkauft und der Benutzer versucht, eine übermäßig hohe Anzahl an Artikeln zu kaufen, würde diese Aktion das Ergebnis „Bedrohung” auslösen.
-
Wenn man in Schritt 408 ein „ja” erhält, wird „Identifiziere eine schrittweise Höherstufung und bilde eine identifizierte Höherstufung” (Schritt 410) durchgeführt. Die Auswahl einer schrittweisen Höherstufung kann gemäß einer nächsten Ebene in der Nutzerebenenhierarchie oder durch bei der Installation definierte Richtlinien durchgeführt werden. Eine Standardeinstellung kann zum Beispiel ein Übergehen auf höhere Nutzerebenen gestatten. In einem anderen Beispiel kann es eine Richtlinie erfordern, dass ein fehlgeschlagener Identitätsnachweis dazu führt, dass die Benutzeranfrage beruhend auf einer bestimmten Situation auf Blockieren gesetzt wird. Die schrittweise Höherstufung geht typischerweise mit der Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen einher.
-
„Stufe unter Verwendung der identifizierten schrittweisen Höherstufung höher” (Schritt 412) wird durchgeführt. Die durchgeführte Höherstufung hängt von den der entsprechenden Nutzerebene zugehörigen Einstellungen ab, die während einer Installation oder durch Benutzer-Administrator-Spezifikation bzw. -Auswahl festgelegt wurden. „Ermittle, ob die Höherstufung erfolgreich war” (Schritt 414). Wenn festgestellt wird, dass die Höherstufung erfolgreich war, erhält man in Schritt 414 das Ergebnis „ja”. Wenn festgestellt wird, dass die Höherstufung nicht erfolgreich war, erhält man in Schritt 414 das Ergebnis „nein”. Erhält man in Schritt 414 das Ergebnis „ja”, geht der Prozess 400 in einer Schleife zu Schritt 404, wo die Benutzeranfrage neu bewertet wird.
-
Wenn man in Schritt 414 jedoch das Ergebnis „nein” erhält, war die Höherstufung nicht erfolgreich und „Blockiere die Anforderung” wird durchgeführt (Schritt 406), wobei der Prozess 400 danach beendet wird (Schritt 418).
-
Wenn eine Anforderung auf die Nutzerebene Überprüft 310 hochgestuft oder gesetzt wird, wird ermittelt, ob die Anforderung eine Bedrohung darstellt (Schritt 420). Wenn festgestellt wird, dass die Anforderung eine Bedrohung darstellt, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass die Anforderung keine Bedrohung darstellt, erhält man das Ergebnis „nein”. Wenn man in Schritt 420 das Ergebnis „nein” erhält, wird keine Bedrohung wahrgenommen, und die Benutzeranfrage wird in Schritt 416 „Verarbeite die Anforderung” ausgeführt, wobei der Prozess 400 danach wie zuvor in Schritt 418 beendet wird. Wenn man das Ergebnis „ja” erhält, wird in Schritt 406 „Blockiere die Anforderung” ein Blockieren durchgeführt, wobei dasder Prozess 400 danach wie zuvor in Schritt 418 beendet wird.
-
Unter Bezugnahme auf 5a wird ein Ablaufplan eines Höherstufungsprozesses von 4 gemäß einer Ausführungsform der Offenbarung dargestellt. Der Prozess 500 ist ein Beispiel eines Höherstufungsprozesses in Kombination mit einem Überprüfungsprozess. Zum Beispiel werden typischerweise der Schritt 412 „Stufe unter Verwendung der identifizierten schrittweisen Höherstufung höher” gemäß 4 sowie Einzelheiten der Überprüfung durchgeführt.
-
Der Prozess 500 beginnt (Schritt 502) und ermittelt, ob die Anforderung vertrauenswürdig ist (Schritt 504). Wenn festgestellt wird, dass die Anforderung vertrauenswürdig ist, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass die Anforderung nicht vertrauenswürdig ist, erhält man das Ergebnis „nein”. Wenn man in Schritt 504 ein „ja” erhält, wird die Anforderung ausgeführt (Schritt 520), wobei der Prozess 500 danach beendet wird (Schritt 534).
-
Wenn man in Schritt 504 das Ergebnis „nein” erhält, wird „Ermittle, ob die Anforderung blockiert wird” (Schritt 506) durchgeführt. Man erhält das Ergebnis „ja”, wenn festgestellt wird, dass die Anforderung blockiert werden muss. Man erhält das Ergebnis „nein”, wenn festgestellt wird, dass die Anforderung nicht blockiert wird. Wenn man das Ergebnis „ja” erhält, wird „Blockiere die Benutzeranfrage” durchgeführt (Schritt 508). „Erzeuge Administratoralarm” wird durchgeführt (Schritt 510), wobei der Prozess 500 danach beendet wird (Schritt 534). Die Erzeugung des Administratoralarms protokolliert die Information über das Blockieren. Ein Administrator oder ein automatisierter Prozess könnte zum Beispiel das Administratoralarmprotokoll dafür verwenden, diesen an dem Alarm beteiligten Benutzer auf die Stufe Blockiert 314 gemäß 3 zu setzen.
-
Erhält man in Schritt 506 das Ergebnis „nein”, findet unter Verwendung der Nutzerebenen 302 gemäß 3 eine Höherstufung statt. Bei Eintritt als Anonym 304 der Nutzerebenen 302 gemäß 3 findet eine automatische Höherstufung auf Verfolgt 306 gemäß 3 statt. Bei der Verfolgung wird „Ermittle, ob die Anforderung eine Bedrohung darstellt” durchgeführt (Schritt 512). Wenn festgestellt wird, dass die Anforderung eine Bedrohung darstellt, erhält man ein „ja”. Wenn festgestellt wird, dass die Anforderung mit keiner Bedrohung einhergeht, erhält man ein „nein”. Wenn man in Schritt 512 ein „ja” erhält, wird der erweiterte Prozess zur Überprüfung der Identität durchgeführt (Schritt 514). Der Höherstufungsprozess kann die weitere Verarbeitung der während der Verfolgung der Sitzung gesammelten, der Anforderung zugehörigen Informationen beinhalten. Ein Benutzer kann zum Beispiel zu diesem Zeitpunkt zum Anmelden aufgefordert werden und einen vollautomatischen Turing-Test zur Unterscheidung von Computern und Menschen (CAPTCHA) oder eine Reihe von Sicherheitsfragen durchlaufen, um zu beweisen, dass der Benutzer ein menschlicher Benutzer ist, oder eine Reihe von Sicherheitsfragen beantworten, um die Benutzeridentität zu belegen.
-
„Ermittle, ob die Höherstufung erfolgreich war” wird durchgeführt (Schritt 516). Bei der Feststellung, dass die Höherstufung erfolgreich war, erhält man das Ergebnis „ja”. Bei der Feststellung, dass die Höherstufung nicht erfolgreich war, erhält man das Ergebnis „nein”. Wenn man in Schritt 516 das Ergebnis „nein” erhält, geht der Prozess 500 in einer Schleife zurück zu „Blockiere die Anforderung” (Schritt 508) wie zuvor. Wenn man in Schritt 516 ein „ja” erhält, geht der Prozess 500 in einer Schleife zurück zu „Bewerte die Anforderung neu”, und Schritt 502 wird wie zuvor durchgeführt.
-
Bei Eintritt als Identität festgestellt 308 der Nutzerebenen 302 gemäß 3 wird „Ermittle, oh die Anforderung eine Bedrohung darstellt” durchgeführt (Schritt 518). Wenn festgestellt wird, dass es eine Bedrohung gibt, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass es keine Bedrohung gibt, erhält man das Ergebnis „nein”. Wenn man in Schritt 518 ein „nein” erhält, wird in Schritt 520 wie zuvor „Verarbeite die Anforderung” durchgeführt. Wenn man in Schritt 518 ein „ja” erhält, springt der Prozess 500 zu Schritt 524, der in dem folgenden Abschnitt und wie in 5b gezeigt beschrieben ist.
-
Bei Eintritt als Überprüft 310 der Nutzerebenen 302 gemäß 3 wird „Ermittle, ob die Anforderung eine Bedrohung darstellt” durchgeführt (Schritt 522). Wenn festgestellt wird, dass es eine Bedrohung gibt, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass es keine Bedrohung gibt, erhält man das Ergebnis „nein”. Wenn man in Schritt 522 ein „nein” erhält, wird in Schritt 520 „Verarbeite die Anforderung” durchgeführt, wobei der Prozess 500 danach beendet wird (Schritt 534). Wenn man in Schritt 522 ein „ja” erhält, geht der Prozess 500 in einer Schleife zurück zu „Blockiere die Anforderung” (Schritt 508). Wie zuvor wird „Erzeuge Administratoralarm” durchgeführt (Schritt 510), wobei der Prozess 500 danach beendet wird (Schritt 534).
-
Unter Bezugnahme auf 5b wird nun ein Ablaufplan eines Überprüfungsprozesses gemäß 5a dargestellt. Wenn festgestellt wird, dass es eine Bedrohung gibt und man in Schritt 518 das Ergebnis „ja” erhält, wird „Fordere den Anforderer zur Überprüfung auf” durchgeführt (Schritt 524). Von dem Anforderer werden Informationen benötigt, um die Ermittlung, ob die Anforderung durchgeführt werden sollte, zu unterstützen. Es könnte sich um persönliche oder geschäftsbezogene, eindeutig dem Anforderer zugehörige Informationen oder eine Art privilegierter Informationen, die dem Anforderer bekannt sind, handeln. Bei den Informationen kann es sich zum Beispiel um Kontoschlüssel, Geburtstage, Mitarbeiter-Kennungen und Zugangscodes handeln. Eine Aufforderung kann auch einen Schritt beinhalten zu ermitteln, ob ein Live Agent verwendet wird (Schritt 526). Der Live Agent kann eine Chat-Sitzung oder ein Telefongespräch sein. Wenn festgestellt wird, dass ein Live Agent verwendet werden soll, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass kein Live Agent verwendet werden soll, erhält man das Ergebnis „nein”.
-
Wenn man in Schritt 526 ein „ja” erhält, wird „Ziehe den Live Agent hinzu” durchgeführt (Schritt 528). Der Agent führt einen Dialog mit dem Anforderer durch, um notwendige Informationen darüber zu erhalten, ob die Anforderung fortgesetzt werden darf. „Ermittle, ab die Überprüfung erfolgreich war” findet statt (Schritt 530). Wenn festgestellt wird, dass die Überprüfung erfolgreich ist, erhält man das Ergebnis „ja”. Wenn festgestellt wird, dass die Überprüfung nicht erfolgreich ist, erhält man das Ergebnis „nein”.
-
Wenn man in Schritt 530 ein „ja” erhält, geht der Prozess in einer Schleife zurück zu „Bewerte die Anforderung neu” in Schritt 502 wie zuvor. Wenn man in Schritt 530 ein „nein” erhält, geht der Prozess 500 in einer Schleife zurück zu „Blockiere die Anforderung” in Schritt 508 wie zuvor. Der Prozess 500 erzeugt dann Administratoralarm (Schritt 510) und wird danach beendet (Schritt 534).
-
Wenn man in Schritt 526 ein „nein” erhält, wird „Fordere die benötigten Informationen von dem Anwender an” durchgeführt (Schritt 532). Hier muss der Anforderer die fehlenden Informationen eingeben, die für die weitere Überprüfung der Anforderung verwendet werden, bevor die Anforderung verarbeitet werden darf. Der Benutzer muss die benötigten Informationen angeben. Dem Benutzer kann zum Beispiel ein Fensterfeld mit hell markierten Eingabefeldern angezeigt werden. Der Anforderer muss die Informationen eingeben und bestätigen, damit die Anforderung verarbeitet wird. „Ermittle, ob die Überprüfung erfolgreich ist” wird wie zuvor durchgeführt (Schritt 530).
-
Veranschaulichende Ausführungsformen stellen somit einen Prozess, ein Rechnerprogrammprodukt und eine Vorrichtung zum Unschädlichmachen einer erkannten Bedrohung durch Höherstufung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen bereit. Eine veranschaulichende Ausführungsform stellt einen auf einem Rechner ausgeführten Prozess zum Unschädlichmachen einer erkannten Bedrohung durch Empfangen einer Anforderung von einem Anforderer und Bildung einer empfangenen Anforderung sowie Entnahme von der empfangenen Anforderung zugehörigen Statistiken und Bildung von entnommenen Statistiken bereit. Für die empfangene Anforderung wird unter Verwendung der entnommenen Statistiken eine Regelüberprüfung durchgeführt, und als Reaktion auf eine Feststellung, dass die Anforderung eine Bedrohung darstellt, wird der Anforderer unter Verwendung von schrittweisen Höherstufungen höhergestuft, wobei das Verwenden von schrittweisen Höherstufungen ferner die Erhöhung von Benutzer-Identitäts- und -Überprüfungs-Anforderungen entweder durch Übergehen auf eine nächsthöhere Nutzerebene oder durch direkte Eintragung in eine Nutzerebene umfasst.
-
Eine veranschaulichende Ausführungsform kann zum Beispiel in einer Situation verwendet werden, in der ein Roboteragent übermäßigen Verkehr auf einer Webseite verursacht. Ein Geschäftspartner kann zum Beispiel versuchen, Katalogdaten zu entnehmen, indem er einen Roboter installiert hat, der die Seite durchsucht und jedes Produkt in einen Warenkorb legt, um Preisinformationen zu erhalten. Die Kalkulation von Preisen ist ein ressourcenintensiver Schritt. Die tausendfache Ausführung der Preiskalkulation in einem kurzen Zeitraum führt zu einem Ausfall des Dienstes, sofern sie nicht entdeckt und gesteuert wird. Unter Verwendung des beschriebenen Prozesses würde der Geschäftspartner dazu gezwungen, seine Identität bekannt zu geben, und der Webseiten-Administrator wüsste dann, wer das Problem verursacht hat. Der Überprüfungsprozess hätte den Roboteragenten von seiner Arbeit abgehalten, so dass der Geschäftspartner dies möglicherweise erkannt und sich dazu entschlossen hätte, sich von sich aus mit dem Administrator in Verbindung zu setzen.
-
In einem anderen Beispiel versuchte ein kommerzieller Benutzer, einen Warenkorb zu erzeugen, der hunderte Artikel enthielt. Das Geschäft hatte keine Grenze für die zulässige Höchstmenge an Artikeln in einem Warenkorb festgelegt. Der Warenkorb benötigt eine große Menge an Speicher, was zu einer Situation von unzureichendem Speicherplatz führt. Eine veranschaulichende Ausführungsform hätte den Benutzer zur Anmeldung gezwungen, sobald das unregelmäßige Verhalten entdeckt worden wäre. Während der Höherstufung der Überprüfung hätte ein Kundendienstmitarbeiter mit dem Benutzer Kontakt aufnehmen können.
-
In einem anderen Beispiel, das die soeben beschriebene Ausführungsform anwendet, greift ein Benutzer absichtlich eine Webseite an, indem er eine Anwendungsfunktion mit großen Auswirkungen wie eine Registrierungsfunktion verwendet. Ein bösartiger Benutzer legt tausende Benutzerregistrierungsanforderungen an, nachdem er festgestellt hat, dass die Anwendung eine lange Zeit zur Bearbeitung dieses Schrittes benötigt. Der Benutzer löscht wiederholt seine alten Sitzungen und erzeugt einen vorsätzlichen Angriff. Eine wie soeben beschriebene veranschaulichende Ausführungsform hätte den anonymen Benutzer blockiert, indem sie aus der Internetprotokolladresse des spezifischen, dem Angriff zugehörigen Benutzeragenten die Benutzergruppe identifiziert hätte.
-
Die Ablaufpläne und das Blockschalt- bzw. das Funktionsschaubild in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen der Systeme, Verfahren und Rechnerprogrammprodukte gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan und dem Blockschalt- bzw. dem Funktionsschaubild ein Modul, ein Segment oder einen Teil eines Codes darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung einer bestimmten logischen Funktion umfassen. Es sei auch bemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner zu bemerken, dass jeder Block der Ablaufpläne und/oder des Blockschalt- bzw. des Funktionsschaubilds sowie Kombinationen aus Blöcken in den Ablaufplänen und/oder dem Blockschalt- bzw. dem Funktionsschaubild durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware and Rechneranweisungen.
-
Die entsprechenden Strukturen, Materialien, Schritte und Entsprechungen aller Mittel bzw. Step-plus-function-Elemente in den nachfolgenden Ansprüchen sollen jede beliebige Struktur, jedes beliebige Material bzw. jeden beliebigen Schritt zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen wie spezifisch beansprucht beinhalten. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt soll jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die Erfindung in der beschriebenen Form. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Abänderungen, die für eine bestimmte vorgesehene Verwendung geeignet sind, zu verstehen.
-
Die Erfindung kann als vollständige Hardware-Ausführungsform, als vollständige Software-Ausführungsform oder als Ausführungsform, die sowohl Hardware- als auch Software-Elemente enthält, ausgeführt werden. In einer bevorzugten Ausführungsform ist die Erfindung als Software realisiert, darunter Firmware, im Speicher befindliche Software, Mikrocode sowie andere von einem Fachmann erkennbare Software-Medien, darauf aber nicht beschränkt ist.
-
Es ist wichtig anzumerken, dass, obwohl die Erfindung in Zusammenhang mit einem voll funktionsfähigen Datenverarbeitungssystem beschrieben wurde, Fachleute verstehen werden, dass die Prozesse der vorliegenden Erfindung in Form eines durch einen Rechner lesbaren Mediums mit Anweisungen und einer Vielfalt von Formen vertrieben werden können und dass die vorliegende Erfindung gleichermaßen Anwendung findet, und zwar unabhängig von einer bestimmten Art von signalführenden Medien, die tatsächlich zur Durchführung des Vertriebs verwendet werden. Beispiele für durch einen Rechner lesbare Medien sind u. a. beschreibbare Medien wie Floppy-Disks, Festplattenlaufwerke, RAM, CD-ROMs, DVD-ROMs sowie übertragungstechnische Medien wie digitale und analoge Datenübertragungsverbindungen, drahtgebundene oder drahtlose Datenübertragungsverbindungen, die Übertragungsformen wie zum Beispiel Funkfrequenz- und Lichtwellenübertragung einsetzen. Durch einen Rechner lesbare Medien können als codierte Formate ausgeführt sein, die zur tatsächlichen Verwendung in einem bestimmten Datenverarbeitungssystem decodiert werden.
-
Ein zur Speicherung und/oder Ausführung von Programmcode geeignetes Datenverarbeitungssystem enthält zumindest einen Prozessor, der direkt oder indirekt über einen Systembus mit Speicherelementen gekoppelt ist. Die Speicherelemente können lokalen Speicher beinhalten, der während der eigentlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher sowie Cache-Speicher, die eine vorübergehende Speicherung von zumindest etwas Programmcode bereitstellen, um die Häufigkeit, mit der während der Ausführung Code von dem Massenspeicher abgerufen werden muss, zu verringern.
-
Eingabe-Ausgabe- bzw. E/A-Geräte (darunter Tastaturen, Anzeigen, Zeigegeräte usw., jedoch nicht darauf beschränkt) können entweder direkt oder über mitbeteiligte E/A-Steuereinheiten mit dem System verbunden werden.
-
Es können auch Netzwerkadapter mit dem System verbunden werden, um es dem Datenverarbeitungssystem zu ermöglichen, über mitbeteiligte private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder fernen Druckern oder Speichervorrichtungen verbunden zu werden. Modems, Kabelmodems sowie Ethernet-Karten sind nur einige wenige der momentan verfügbaren Arten von Netzwerkadaptern.
-
Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt und soll nicht gesamthaft stehen für bzw. begrenzt sein auf die Erfindung in der beschriebenen Form. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Abänderungen, die für eine bestimmte vorgesehene Verwendung geeignet sind, zu verstehen.