DE112019004913T5 - Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz - Google Patents

Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz Download PDF

Info

Publication number
DE112019004913T5
DE112019004913T5 DE112019004913.5T DE112019004913T DE112019004913T5 DE 112019004913 T5 DE112019004913 T5 DE 112019004913T5 DE 112019004913 T DE112019004913 T DE 112019004913T DE 112019004913 T5 DE112019004913 T5 DE 112019004913T5
Authority
DE
Germany
Prior art keywords
api
neural network
access request
unauthenticated
classifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019004913.5T
Other languages
English (en)
Inventor
Xuejie Yu
Matthias Bartelt
Manuel Hauptmann
Ron Williams
Lidiya Tilahun
Archana Kumari
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 DE112019004913T5 publication Critical patent/DE112019004913T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

Ein nicht authentifizierter Client-Zugriff auf eine Anwendung (z.B. eine Web-Anwendung auf SaaS-Grundlage), die nicht authentifizierte API-Endpunkte verwendet, wird überwacht und durch ein Zugriffskontrollsystem und -verfahren geschützt, das ein neuronales Netzwerk nutzt. Das neuronale Netzwerk wird geschult, um Benutzerverhalten zu erkennen, die gemäß einer Richtlinie als „unangemessen“ angesehen werden sollten. Das System stellt unter Verwendung des neuronalen Netzwerks eine effektive Unterscheidung in Bezug auf nicht authentifiziertes Benutzerverhalten bereit, und es ermöglicht, dass Zugriffskontrollen in Bezug auf Benutzer effektiver durchgesetzt werden, die die Anwendung nicht gemäß einer Unternehmens-Sicherheitsrichtlinie verwenden. Durch Schulen des neuronalen Netzwerks, ein bzw. mehrere Muster hinter einem regulären Benutzerverhalten zu erkennen, ermöglicht der Ansatz eine robuste Zugriffskontrolle in Bezug auf nicht authentifizierte Benutzer. Generell vereinfacht der Ansatz eine Zugriffskontrolle, die insgesamt oder in Teilen auf API-Interaktionen mit einer Anwendung beruht, bei der die Identität der Personen, die den Zugriff ausführen, unbekannt ist oder notwendigerweise feststellbar ist.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Diese Offenbarung betrifft allgemein Techniken zum Erfassen von anomalen oder bösartigen Netzwerkaktivitäten oder anomalem oder bösartigem Benutzerverhalten, z.B. in einem Unternehmensnetzwerk.
  • Hintergrund des einschlägigen Stands der Technik
  • Unternehmenssicherheit ist ein komplexes Problem, das die übergreifende Koordination von Sicherheitsrichtlinien, Kontrollen, Bedrohungsmodellen und Szenarios zur Bedrohungserfassung (Anwendungsfälle) erfordert. Die Umsetzung dieser Richtlinien, Modelle und Kontrollen erfordert eine umfangreiche Verwendung von Technologien zur Überwachung von Bedrohungen und Sicherheitseinrichtungen sowie Personal, das über sicherheitsbezogene, geschäftsbedingte und technische Qualifikationen verfügt. Insbesondere erfordert die ständig wachsende Anzahl von Bedrohungen in großem Umfang eine Automatisierung der Unterstützung von Sicherheitsanalysten, die dafür zuständig sind, diese Bedrohungen zu verhindern, zu erfassen und darauf zu reagieren. In den meisten Fällen muss der Analyst ein breites Spektrum von Datenquellen manuell durchsuchen (einige davon privat, viele öffentlich), frühere Bedrohungsereignisse und die Art und Weise überprüfen, wie sie bearbeitet wurden, nach doppelten Ereignissen, aktuell offenen ähnlichen Ereignissen und einer Wissensdatenbank usw. suchen, um eine angemessene Antwortprozedur zum Bearbeiten dieser Informationen zu bestimmen. Dieser Prozess zur Datensammlung, Analyse und zur Festlegung der endgültigen Löschung der Warnmeldung ist für einen Analysten zeitaufwändig und mühsam.
  • Es gibt eine Vielfalt von vorhandenen Werkzeugen zur Bedrohungsüberwachung, um ein breites Spektrum von Datenquellen zu analysieren, um Muster zu identifizieren, die für Bedrohungen, Anomalien von Sicherheitsrichtlinie und Kontrolle indikativ sind, und die es Unternehmen ermöglichen, Bedrohungsinformationen zu untersuchen, zusammenzuarbeiten und auf diese zu reagieren. Ein derartiges Werkzeug ist IBM® X-Force® Exchange, das eine Plattform für Bedrohungsinformationen auf Cloud-Grundlage ist, die Benutzern die Inanspruchnahme, gemeinsame Nutzung und Reaktion auf Bedrohungsinformationen ermöglicht. Mit dieser Plattform können Benutzer schnell nach den neuesten globalen Sicherheitsbedrohungen suchen, relevante Informationen aggregieren, sich mit Fachleuten beraten und mit Fachkollegen zusammenarbeiten. IBM X-Force Exchange, das durch von Menschen und Maschinen erzeugte Informationen unterstützt wird, nutzt den Rahmen von Sicherheitsfachleuten für IBM X-Force, um Benutzern zu helfen, aufkommenden Bedrohungen immer einen Schritt voraus zu sein. Wenn diese Bedrohungen und/oder Anomalien erfasst werden, werden relevante Warnmeldungen erstellt.
  • Representational State Transfer (REST) ist eine Programm-Schnittstellenspezifikation, die aus einem koordinierten Satz von architekturbedingten Einschränkungen besteht, die auf Komponenten, Verbindungen und Datenelemente in einem verteilten Hypermedia-System angewendet werden. REST ignoriert die Details von Komponentenumsetzung und Protokollsyntax, um sich auf die Komponentenrollen, die Einschränkungen ihrer Interaktion mit anderen Komponenten und ihre Interpretation von signifikanten Datenelementen zu konzentrieren. Webdienst-Anwendungsprogrammierschnittstellen (APIs), die sich an die REST-Einschränkungen halten, werden als RESTfuI bezeichnet. Anwendungen auf Grundlage von Software as a Service (SaaS), die RESTfuI APIs verwenden, stellen APIs häufig direkt über JavaScript-Anwendungen für Browser der Benutzer zur Verfügung. Häufig werden diese APIs auf API-Servern gehostet und sind nicht authentifizierte Endpunkte. Im Idealfall authentifizieren alle Endpunkte ihre Benutzer, aus verschiedenen Gründen kann es für ein Unternehmen jedoch erforderlich sein, sich nicht authentifizierende Endpunkte für bestimmte Funktionen der Anwendung zu verwenden. Wenn ein Benutzer einen nicht authentifizierten Endpunkt erfasst und direkt verwendet, z.B. über programmatischen Zugriff auf die API, muss das Verhalten als unangemessen erachtet werden, selbst wenn es technisch möglich ist.
  • Somit besteht ein Bedarf, einen Schutzmechanismus auf Nutzungsgrundlage zu identifizieren und umzusetzen, der rechtmäßige von unrechtmäßiger Verwendung unterscheiden und einen alternativen Durchsetzungsmechanismus im Fall von fehlenden authentifizierten Anforderungen bereitstellen kann.
  • KURZDARSTELLUNG
  • Ein nicht authentifizierter Client-Zugriff auf eine Anwendung (z.B. eine Web-Anwendung auf SaaS-Grundlage), die nicht authentifizierte API-Endpunkte verwendet, wird überwacht und durch ein Zugriffskontrollsystem und -verfahren geschützt, das ein neuronales Netzwerk nutzt. Das neuronale Netzwerk wird geschult, um Benutzerverhalten zu erkennen, die gemäß einer Richtlinie als „unangemessen“ erachtet werden sollten.
  • Gemäß einem ersten Aspekt dieser Offenbarung wird ein Verfahren zur Zugriffskontrolle in einer Datenverarbeitungsumgebung bereitgestellt, in der Clients zumindest teilweise mit einer Anwendung unter Verwendung von Anforderungen auf Grundlage einer Anwendungsprogrammierschnittelle (API) interagieren, die einen oder mehrere nicht authentifizierte Endpunkte haben. Der Laufzeitbetrieb beginnt in Reaktion auf einen Empfang einer API-Zugriffsanforderung von einem nicht authentifizierten Client. In Reaktion darauf wird ein Klassifizierer auf die API-Zugriffsanforderung angewendet. Der Klassifizierer ist von der Art, die unter Verwendung von künstlicher Intelligenz, insbesondere durch Schulen eines neuronalen Netzwerks gemäß einer Richtlinie generiert wurde, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht authentifizierten Endpunkte zu unterscheiden. Die erste Verhaltensklasse wird in der Richtlinie als angemessene Aktivität bezeichnet, und die zweite Verhaltensklasse wird in der Richtlinie als unangemessene Aktivität bezeichnet. Nach einer Bestimmung durch den Klassifizierer des neuronalen Netzwerks, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der ersten Verhaltensklasse liegt, wird die API-Zugriffsanforderung erlaubt. Nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der zweiten Verhaltensklasse liegt, wird jedoch eine bestimmte Maßnahme ergriffen, um die Einhaltung der Richtlinie sicherzustellen. Daher kann die bestimmte Maßnahme zum Beispiel eines von Folgendem sein: Erlauben der API-Zugriffsanforderung, Blockieren der API-Zugriffsanforderung, Initiieren einer Prüfungsoperation, die einem Erlauben oder Blockieren der API-Zugriffsanforderung zugehörig ist, und Eintragen des nicht authentifizierten Clients in eine schwarze Liste.
  • Bevorzugt umfasst das Schulen des Klassifizierers des neuronalen Netzwerks ein Definieren eines Merkmalssatzes, der einen Satz von Elementen aufweist, die einen Satz von Endpunkten darstellen, die einer besonderen API-Zugriffsanforderung von einem Client zugehörig sind. Ein Endpunkt wird bevorzugt in Bezug auf ein bestimmtes Zeitfenster definiert, und in dem dem Element, das dem Endpunkt zugehörig ist, ein Wert zugewiesen wird, der eine Funktion dessen ist, ob der Treffer eine angemessene Aktivität oder eine unangemessene Aktivität darstellt. Schulungsdaten für das neuronale Netzwerk umfassen sowohl positive (Richtlinie erfüllt) als auch negative (Richtlinie abgelehnt) Datensätze. Bevorzugt werden die positiven Datensätze von Protokollen (Ereignisdatensätze) abgeleitet, und die negativen Datensätze werden künstlich erstellt, um Szenarios mit abgelehnter Richtlinie zu simulieren.
  • Gemäß einem zweiten Aspekt dieser Offenbarung wird eine Vorrichtung zur Zugriffskontrolle beschrieben. Die Vorrichtung weist einen Hardware-Prozessor und einen Computer-Arbeitsspeicher auf, der Computerprogrammanweisungen enthält, die durch den Hardware-Prozessor ausgeführt werden, um einen Satz von Operationen auszuführen wie zum Beispiel die oben beschriebenen Schritte.
  • Gemäß einem dritten Aspekt dieser Offenbarung wird ein Computerprogrammprodukt in einem nicht flüchtigen, durch einen Computer lesbaren Medium zur Verwendung in einem Datenverarbeitungssystem zur Zugriffskontrolle beschrieben. Das Computerprogrammprodukt enthält Computerprogrammanweisungen, die in dem Datenverarbeitungssystem ausgeführt werden und die funktionsfähig sind, um Operationen wie die oben beschriebenen Schritte auszuführen.
  • Gemäß einem vierten Aspekt dieser Offenbarung wird eine Software as a Service (Software als Service) beschrieben, die in einer über ein Netzwerk zugreifbaren Cloud-Datenverarbeitungsinfrastruktur umgesetzt wird, die Hardware und Software aufweist. Der Dienst weist eine über ein Netzwerk zugreifbare Anwendung, ein neuronales Netzwerk und einen Dienst auf, der eine Zugriffskontrolle in Bezug auf die Anwendung vereinfacht. Das neuronale Netzwerk wird in Verbindung mit einem Satz von Schnittstellenendpunkten verwendet, auf die durch einen nicht authentifizierten Client zugegriffen werden kann, der Zugriff auf die über ein Netzwerk zugreifbare Anwendung sucht. Das neuronale Netzwerk wird gemäß einer Richtlinie geschult, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren Schnittstellenendpunkte zu unterscheiden. Ein Dienst wird konfiguriert, um (i) auf einen Empfang einer Mehrzahl von Schnittstellen-Zugriffsanforderungen an die über ein Netzwerk zugreifbare Anwendung zu reagieren, (ii) das neuronale Netzwerk zum Ausführen einer Bestimmung anzuwenden, ob die Mehrzahl von Schnittstellen-Zugriffsanforderungen einen Richtlinienkontext erfüllen, und (iii) eine Zugriffskontrolle auf Grundlage der Bestimmung anzuwenden.
  • Der Ansatz dieser Offenbarung stellt eine Möglichkeit bereit, um eine unangemessene Aktivität in Anwesenheit von nicht authentifizierten API-Anforderungen oder allgemeiner von nicht authentifizierten Benutzern zu erfassen. Das System stellt unter Verwendung des neuronalen Netzwerks eine effektive Unterscheidung in Bezug auf nicht authentifiziertes Benutzerverhalten bereit, und es ermöglicht, dass Zugriffskontrollen in Bezug auf Benutzer effektiver durchgesetzt werden, die die Anwendung nicht gemäß der Sicherheitsrichtlinie des Unternehmens verwenden. Der Ansatz auf Grundlage des neuronalen Netzwerks stellt im Vergleich zu Lösungen auf Grundlage von deterministischen Regeln, die eine sehr niedrige Abdeckung bereitstellen, viel genauere Ergebnisse in dynamischen Umgebungen bereit. Durch Schulen des neuronalen Netzwerks, ein bzw. mehrere Muster hinter einem regulären Benutzerverhalten zu erkennen, ermöglicht der Ansatz eine robuste Zugriffskontrolle in Bezug auf nicht authentifizierte Benutzer. Generell vereinfacht der Ansatz eine Zugriffskontrolle, die insgesamt oder in Teilen auf API-Interaktionen mit einer Anwendung beruht, bei der die Identität der Personen, die den Zugriff ausführen, unbekannt ist oder notwendigerweise feststellbar ist.
  • Im Vorgenannten wurden einige der relevanteren Merkmale des Erfindungsgegenstands erläutert. Diese Merkmale sollten als rein veranschaulichend aufgefasst werden. Viele andere vorteilhafte Ergebnisse können wie beschrieben durch Anwenden des offenbarten Erfindungsgegenstands in unterschiedlicher Weise oder durch Modifizieren des Erfindungsgegenstands erzielt werden.
  • Figurenliste
  • Für ein umfassenderes Verständnis des Erfindungsgegenstands und von dessen Vorteilen wird nachstehend auf die folgenden Beschreibungen Bezug genommen, die in Verbindung mit den begleitenden Zeichnungen erstellt wurden, wobei:
    • 1 ein beispielhaftes Blockschaubild einer verteilten Datenverarbeitungsumgebung darstellt, in der beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 2 ein beispielhaftes Blockschaubild eines Datenverarbeitungssystems ist, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 3 eine Security-Intelligence-Plattform veranschaulicht, in der die Techniken dieser Offenbarung ausgeübt werden können;
    • 4 eine Operation zur Überwachung von Sicherheitsbedrohungen auf einer Ebene 1 in einer Betriebsumgebung eines Rechenzentrums gemäß bekannten Techniken darstellt;
    • 5 eine repräsentative Betriebsumgebung darstellt, in der Endbenutzer mit einer Web-Anwendung auf Grundlage von Software as a Service (SaaS) interagieren, die RESTfuI APIs verwendet, und in der die Technik dieser Offenbarung umgesetzt werden kann;
    • 6 die Betriebsumgebung in 5 darstellt, die erweitert wurde, um künstliche Intelligenz aufzunehmen, z.B. ein neuronales Netzwerk, das geschult ist, um angemessenes von unangemessenem Verhalten zu unterscheiden, das von nicht authentifizierten Clients ausgeht und das API-Anforderungen verwendet;
    • 7 das neuronale Netzwerk darstellt, das als eine Middleware-Schicht umgesetzt ist, um eine Vorhersage in Bezug darauf bereitzustellen, ob eine besondere Aktivität eines nicht authentifizierten Benutzers angemessen oder unangemessen ist;
    • 8 ein beispielhaftes Szenario darstellt, wobei eine Benutzeroberflächen- (Ul) Anzeige eine Berichtsseite aufweist, die aus mehreren verschiedenen Berichtselementen besteht, und wobei jedes der Berichtselemente von einem verschiedenen API-Serverendpunkt erhalten wird;
    • 9 mehrere nicht authentifizierte Anforderungsabläufe für die Ul-Anzeigenelemente in 8 darstellt, wobei der obere Abschnitt einen angemessenen Ablauf darstellt und der untere Abschnitt einen unangemessenen Ablauf darstellt;
    • 10 einen repräsentativen Anforderungs-Antwort-Workflow in einem nicht authentifizierten API-Zugriffskontrollverfahren einer API in Bezug auf die UI-Anzeigenelemente darstellt, die in dem unteren Abschnitt von 9 gezeigt sind;
    • 11 einen Prozessablauf eines Schulungsverfahrens für das neuronale Netzwerk darstellt; und
    • 12 in einer Ausführungsform einen repräsentativen Protokolldatensatz für einen Ereignisdatensatz darstellt, der zum Mining von positiven und negativen Merkmalssätzen verwendet wird, um das neuronale Netzwerk zu schulen.
  • AUSFÜHRLICHE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • Unter folgender Bezugnahme auf die Zeichnungen, und insbesondere unter Bezugnahme auf 1 bis 2 werden beispielhafte Darstellungen von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen der Offenbarung umgesetzt werden können. Es sollte klar sein, dass 1 bis 2 nur zu Beispielzwecken dienen und durch sie keinerlei Einschränkung hinsichtlich der Umgebungen festgestellt oder impliziert werden soll, in denen Aspekte oder Ausführungsformen des offenbarten Erfindungsgegenstands umgesetzt werden können. Viele Modifizierungen können an den dargestellten Umgebungen vorgenommen werden, ohne von dem Erfindungsgedanken und Schutzumfang der vorliegenden Erfindung abzuweichen.
  • Unter folgender Bezugnahme auf die Zeichnungen zeigt 1 eine bildliche Darstellung eines beispielhaften verteilten Datenverarbeitungssystems, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein verteiltes Datenverarbeitungssystem 100 kann ein Netzwerk von Computern umfassen, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, welches das Medium ist, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die in dem verteilten Datenverarbeitungssystem 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen umfassen wie beispielsweise drahtgebundene, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel.
  • In dem dargestellten Beispiel sind ein Server 104 und ein Server 106 zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind Clients 110, 112 und 114 ebenfalls mit dem Netzwerk 102 verbunden. Diese Clients 110, 112 und 114 können zum Beispiel PCs, Netzwerk-Computer oder dergleichen sein. In dem dargestellten Beispiel stellt der Server 104 Daten wie zum Beispiel Boot-Dateien, Betriebssystemabbildungen und Anwendungen für die Clients 110, 112 und 114 bereit. Die Clients 110, 112 und 114 sind in dem dargestellten Beispiel Clients für den Server 104. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere nicht gezeigte Einheiten enthalten.
  • In dem dargestellten Beispiel ist das verteilte Datenverarbeitungssystem 100 das Internet, wobei das Netzwerk 102 für eine weltweite Sammlung von Netzwerken und Gateways steht, welche die Protokoll-Suite Transmission Control Protocol/Internet Protocol (TCP/IP) für den Datenaustausch untereinander verwenden. Das Kernstück des Internets ist ein Backbone von Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten oder Host-Computern, die aus Tausenden von gewerblichen, behördlichen, schulischen und anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann das verteilte Datenverarbeitungssystem 100 auch so umgesetzt werden, dass es eine Anzahl von verschiedenen Typen von Netzwerken enthält, wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) oder dergleichen. Wie oben ausgeführt, soll 1 als Beispiel dienen, nicht als architekturbedingte Einschränkung für verschiedene Ausführungsformen des offenbarten Erfindungsgegenstands, und daher sollten die in 1 gezeigten besonderen Elemente hinsichtlich der Umgebungen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können, als nicht einschränkend betrachtet werden.
  • Unter folgender Bezugnahme auf 2 wird ein Blockschaubild eines beispielhaften Datenverarbeitungssystems gezeigt, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Ein Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel der Client 110 in 1, in dem sich durch einen Computer verwendbarer Code oder verwendbare Anweisungen befinden kann bzw. können, der bzw. die die Prozesse für veranschaulichende Ausführungsformen der Offenbarung umsetzen.
  • Unter folgender Bezugnahme auf 2 wird ein Blockschaubild eines Datenverarbeitungssystems gezeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel der Server 104 oder der Client 110 in 1, in dem sich durch einen Computer verwendbarer Programmcode oder verwendbare Anweisungen befinden kann bzw. können, der bzw. die die Prozesse für die veranschaulichenden Ausführungsformen umsetzen. In diesem veranschaulichenden Beispiel umfasst das Datenverarbeitungssystem 200 eine Datenübertragungsstruktur 202, die Datenübertragungen zwischen einer Prozessoreinheit 204, einem Arbeitsspeicher 206, einem permanenten Speicher 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe- (E/A) Einheit 212 und einer Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zum Ausführen von Anweisungen für Software, die in den Arbeitsspeicher 206 geladen werden kann. Die Prozessoreinheit 204 kann eine Gruppe von einem oder mehreren Prozessoren oder ein Mehrprozessorkern sein, was von der jeweiligen Umsetzung abhängt. Ferner kann die Prozessoreinheit 204 unter Verwendung von einem oder mehreren heterogenen Prozessorsystemen umgesetzt werden, in denen ein Hauptprozessor mit sekundären Prozessoren auf einem einzelnen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann die Prozessoreinheit 204 ein symmetrisches Multiprozessor- (SMP) System sein, das mehrere Prozessoren desselben Typs enthält.
  • Der Arbeitsspeicher 206 und der permanente Speicher 208 sind Beispiele für Speichereinheiten. Eine Speichereinheit ist jedes Hardware-Element, das fähig ist, Informationen entweder auf temporärer Grundlage und/oder auf permanenter Grundlage zu speichern. Der Arbeitsspeicher 206 kann beispielsweise in diesen Beispielen ein Direktzugriffsspeicher oder jede andere geeignete flüchtige oder nicht flüchtige Speichereinheit sein. Der permanente Speicher 208 kann abhängig von der jeweiligen Umsetzung verschiedene Formen annehmen. Zum Beispiel kann der permanente Speicher 208 eine oder mehrere Komponenten oder Einheiten enthalten. Zum Beispiel kann der permanente Speicher 208 eine Festplatte, ein Flash-Speicher, ein wiederbeschreibbares optisches Plattenlaufwerk, ein wiederbeschreibbares Magnetband oder eine beliebige Kombination des Vorgenannten sein. Die von dem permanenten Speicher 208 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 208 verwendet werden.
  • Die Datenübertragungseinheit 210 sorgt in diesen Beispielen für Datenübertragungen mit anderen Datenverarbeitungssystemen oder -einheiten. In diesen Beispielen ist die Datenübertragungseinheit 210 eine Netzwerk-Schnittstellenkarte. Die Datenübertragungseinheit 210 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
  • Die E/A-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 200 verbunden sein können. Zum Beispiel kann die Eingabe/Ausgabe-Einheit 212 eine Verbindung für Benutzereingaben über eine Tastatur und eine Maus bereitstellen. Ferner kann die Eingabe/Ausgabe-Einheit 212 Ausgaben an einen Drucker senden. Die Anzeige 214 stellt einen Mechanismus zum Anzeigen von Informationen für einen Benutzer bereit.
  • Anweisungen für das Betriebssystem und Anwendungen oder Programme befinden sich auf dem permanenten Speicher 208. Diese Anweisungen können zur Ausführung durch die Prozessoreinheit 204 in den Arbeitsspeicher 206 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 unter Verwendung von durch einen Computer umgesetzten Anweisungen ausgeführt werden, die sich in einem Arbeitsspeicher wie beispielsweise dem Arbeitsspeicher 206 befinden können. Diese Anweisungen werden als Programmcode, durch einen Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode bezeichnet, der durch einen Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann. Der Programmcode in den verschiedenen Ausführungsformen kann auf verschiedenen physischen oder konkreten durch einen Computer lesbaren Medien verkörpert sein, wie zum Beispiel auf dem Arbeitsspeicher 206 oder dem permanenten Speicher 208.
  • Ein Programmcode 216 befindet sich in einer funktionalen Form auf durch einen Computer lesbaren Medien 218, die selektiv entfernbar sind, und zur Ausführung durch die Prozessoreinheit 204 auf das Datenverarbeitungssystem 200 geladen oder übertragen werden können. Der Programmcode 216 und die durch einen Computer lesbaren Medien 218 bilden in diesen Beispielen ein Computerprogrammprodukt 220. In einem Beispiel können die durch einen Computer lesbaren Medien 218 in konkreter Form vorliegen, wie zum Beispiel als optische oder Magnetplatte, die in ein Laufwerk oder eine andere Einheit eingeschoben oder eingelegt wird, das bzw. die Teil des permanenten Speichers 208 für einen Transfer auf eine Speichereinheit ist, wie beispielsweise ein Festplattenlaufwerk, das Teil des permanenten Speichers 208 ist. In einer konkreten Form können die durch einen Computer lesbaren Medien 218 auch die Form eines permanenten Speichers annehmen, wie zum Beispiel eine Festplatte, ein Thumb-Laufwerk oder ein Flash-Speicher, der mit dem Datenverarbeitungssystem 200 verbunden ist. Die konkrete Form von durch einen Computer lesbaren Medien 218 wird auch als durch einen Computer aufzeichnungsfähige Speichermedien bezeichnet. In einigen Beispielen sind die durch einen Computer aufzeichnungsfähigen Medien 218 möglicherweise nicht entfernbar.
  • Alternativ kann der Programmcode 216 von den durch einen Computer lesbaren Medien 218 über eine Datenübertragungsverbindung zur Datenübertragungseinheit 210 und/oder durch eine Verbindung zur Eingabe/Ausgabe-Einheit 212 auf das Datenverarbeitungssystem 200 übertragen werden. Die Datenübertragungsverbindung und/oder die Verbindung können in den veranschaulichenden Beispielen physisch oder drahtlos sein. Die durch einen Computer lesbaren Medien können auch die Form von nicht konkreten Medien annehmen wie zum Beispiel Datenübertragungsverbindungen oder drahtlose Übertragungen, die den Programmcode enthalten. Die verschiedenen für das Datenverarbeitungssystem 200 veranschaulichten Komponenten sind nicht in der Art und Weise von architekturbedingten Einschränkungen aufzufassen, in der verschiedene Ausführungsformen umgesetzt werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt werden, das Komponenten zusätzlich zu oder anstelle von denjenigen umfasst, die für das Datenverarbeitungssystem 200 veranschaulicht sind. Andere in 2 gezeigte Komponenten können von den gezeigten veranschaulichenden Beispielen abweichen. Zum Beispiel ist eine Speichereinheit in dem Datenverarbeitungssystem 200 jede Hardware-Vorrichtung, die Daten speichern kann. Der Arbeitsspeicher 206, der permanente Speicher 208 und die durch einen Computer lesbaren Medien 218 sind Beispiele für Speichereinheiten in einer konkreten Form.
  • In einem weiteren Beispiel kann ein Bussystem verwendet werden, um die Datenübertragungsstruktur 202 umzusetzen, und kann aus einem oder mehreren Bussen bestehen, wie zum Beispiel einem Systembus oder einem Eingabe/Ausgabe-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes geeigneten Architekturtyps umgesetzt werden, der eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten ermöglicht, die mit dem Bussystem verbunden sind. Außerdem kann eine Datenübertragungseinheit eine oder mehrere Einheiten umfassen, die zum Übertragen und Empfangen von Daten verwendet werden, wie zum Beispiel ein Modem oder ein Netzwerkadapter. Ferner kann ein Arbeitsspeicher zum Beispiel ein Arbeitsspeicher 206 oder ein Cache, wie zum Beispiel in einer Schnittstelle zu finden, und ein Controller-Hub eines Arbeitsspeichers sein, der in der Datenübertragungsstruktur 202 vorhanden sein kann.
  • Ein Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Java™, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmsprachen, wie zum Beispiel die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, 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. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters).
  • Fachleuten wird klar sein, dass die Hardware in 1 bis 2 je nach Umsetzung unterschiedlich sein kann. Weitere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertiger nicht flüchtiger Arbeitsspeicher oder optische Plattenlaufwerke und dergleichen können zusätzlich zu oder anstelle der Hardware verwendet werden, die in 1 bis 2 dargestellt ist. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Mehrfachprozessor-Datenverarbeitungssystem als das vorher erwähnte SMP-System angewendet werden, ohne von dem Erfindungsgedanken und Schutzumfang des offenbarten Erfindungsgegenstands abzuweichen.
  • Wie zu ersehen ist, können die hierin beschriebenen Techniken in Verbindung mit dem standardmäßigen Client-Server-Paradigma arbeiten, wie in 1 veranschaulicht, in dem Client-Maschinen mit einem über das Internet zugänglichen, auf dem Web beruhenden Portal Daten austauschen können, das auf einer Gruppe von einer oder mehreren Maschinen ausgeführt wird. Endbenutzer betätigen über das Internet verbindbare Einheiten (z.B. Desktop-Computer, Notebook-Computer, internetfähige mobile Einheiten oder dergleichen), die fähig sind, auf das Portal zuzugreifen und mit diesem zu interagieren. In der Regel ist jeder Client bzw. jede Server-Maschine ein Datenverarbeitungssystem wie in 2 veranschaulicht, das Hardware und Software aufweist, und diese Entitäten tauschen untereinander über ein Netzwerk Daten aus, wie zum Beispiel das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung. Ein Datenverarbeitungssystem umfasst in der Regel einen oder mehrere Prozessoren, ein Betriebssystem, eine oder mehrere Anwendungen und ein oder mehrere Dienstprogramme. Die Anwendungen auf dem Datenverarbeitungssystem stellen nativen Support für Web-Dienste bereit, einschließlich unter anderem unbegrenzten Support für HTTP, SOAP, XML, JSON, STIX/TAXII. Informationen in Bezug auf SOAP stehen über das World Wide Web Consortium (W3C) zur Verfügung, das für die Entwicklung und Verwaltung dieser Standards zuständig ist; weitere Informationen in Bezug auf HTTP und XML stehen über die Internet Engineering Task Force (IETF) zur Verfügung. Vertrautheit mit diesen Standards wird vorausgesetzt.
  • RESTful Anwendungsprogrammierschnittstelle (API)
  • Representational State Transfer (REST) ist eine Programm-Schnittstellenspezifikation, die aus einem koordinierten Satz von architekturbedingten Einschränkungen besteht, die auf Komponenten, Verbindungen und Datenelemente in einem verteilten Hypermedia-System angewendet werden. REST ignoriert die Details von Komponentenumsetzung und Protokollsyntax, um sich auf die Komponentenrollen, die Einschränkungen ihrer Interaktion mit anderen Komponenten und ihre Interpretation von signifikanten Datenelementen zu konzentrieren. Webdienst-Anwendungsprogrammierschnittstellen (APIs), die sich an die REST-Einschränkungen halten, werden als RESTfuI bezeichnet. RESTfuI APIs werden unter Verwendung von Aspekten definiert wie zum Beispiel einem Uniform Resource Identifier (URI), einem Internet-Medientyp für die Daten (z.B. häufig JavaScript Object Notation (JSON), aber es kann jeder andere gültige Internet-Medientyp sein), standardmäßigen HTTP-Befehlen, die auch als Verfahren bezeichnet werden (z.B. GET, PUT, POST oder DELETE), Hypertext-Verbindungen zu Referenzzustand und Hypertext-Verbindungen zu referenzbezogenen Ressourcen.
  • Ein REST-Konzept ist das Vorhandensein von Ressourcen (Quellen von spezifischen Informationen), auf die jeweils mit einer globalen Kennung verwiesen wird (z.B. einem Uniform Resource Identifier (URI) in Hypertext Transfer Protocol (HTTP)). Zum Bearbeiten dieser Ressourcen stehen Komponenten des Netzwerks (z.B. Benutzer-Agents, Ursprungs-Server usw.) über eine standardisierte Schnittstelle (z.B. HTTP) in Verbindung und tauschen Darstellungen dieser Ressourcen aus (die oft Dokumente sind, die die Darstellung übermitteln).
  • Jede Anzahl von Verbindungen (z.B. Clients, Server, Caches, Tunnels usw.) können die Anforderungen vermitteln, doch erfolgt dies jeweils so, dass sie nicht über ihre eigene Anforderung hinaus „sehen können“ (was als „Layering“ bezeichnet wird, eine weitere REST-Einschränkung und ein allgemeines Prinzip in vielen anderen Teilen einer Informations- und Vernetzungsarchitektur). Somit kann eine Anwendung mit einer Ressource interagieren, indem sie zwei Dinge kennt; die Kennung der Ressource und die erforderliche Maßnahme. Die Anwendung muss nicht wissen, ob es Caches, Proxies, Gateways, Firewalls, Tunnels oder irgendetwas anderes zwischen ihr und dem Server gibt, der eigentlich die Darstellung enthält. Die Anwendung muss jedoch das Format der zurückgegebenen Darstellung verstehen, das in der Regel ein Typ von Hyper Text Markup Language (HTML), Extensible Markup Language (XML) oder Java® Script Object Notation (JSON), eine objektorientierte Sprache oder ein Dokumentformat ist, obwohl die zurückgegebenen Informationen ein Bild, reiner Text oder jedes andere Format sein können.
  • In bekannten Lösungen und zum Bereitstellen einer RESTful-Schnittstelle für eine Anwendung schreibt ein Entwickler Code zum Verarbeiten von HTTP-Anforderungen, die über einen HTTP-Anwendungsserver empfangen werden. Derartiger Code umfasst Anweisungen zum Ausführen der folgenden Schritte: (1) Übersetzen der eingebetteten REST-Anforderung und Daten in einer Datenaustauschformat-Darstellung (z.B. Daten in einem sprachunabhängigen Datenformat wie JavaScript Object Notation (JSON) oder Extensible Markup Language (XML)) in ein programmatisches Format (z.B. einen Datentyp C++) als Eingabeparameter einer Funktion; (2) Weiterleiten der Anforderung an die API der entsprechenden Anwendung mit den Eingabeparametern der Funktion; (3) Übersetzen aller Ausgabedaten in ein Datenaustauschformat wie zum Beispiel JSON; (4) Zusammenstellen der Antwort wie zum Beispiel eine HTTP-Antwort; und (5) Senden der Antwort an den Client.
  • Zum programmatischen Verwenden einer RESTful-Schnittstelle als Client, z.B. in einem Skript, muss ein Benutzer die folgenden Schritte ausführen: (1) Übersetzen aller Eingabedaten in ein Datenaustauschformat wie beispielsweise JSON; (2) Zusammenstellen einer Anforderung, wie beispielsweise eine HTTP-Anforderung, mit den Eingabedaten; (3) Senden der Anforderung an den Anwendungs-Server; (4) Empfangen einer Antwort von dem Anwendungs-Server; und (5) Übersetzen der eingebetteten Antwortdaten, oft in JSON, in Skriptobjekte oder Variablen zur weiteren Verarbeitung.
  • Security-Intelligence-Plattform mit Vorfalls-Forensik
  • Ein bekannter Typ einer Security-Intelligence-Plattform auf Unternehmensgrundlage ist in 3 veranschaulicht. Im Allgemeinen stellt die Plattform suchgesteuerte Datenuntersuchung, Sitzungswiederherstellung und Forensikinformationen zum Unterstützen von Untersuchungen von Sicherheitsvorfällen bereit. Im relevanten Teil weist eine Plattform 300 einen Satz von Paketerfassungsvorrichtungen 302, eine Vorfalls-Forensikmodulvorrichtung 304, eine verteilte Datenbank 306 und eine Security-Intelligence-Konsole 308 auf. Die Paketerfassungs- und Modulvorrichtungen sind als Netzwerkvorrichtungen konfiguriert, oder sie können als virtuelle Vorrichtungen konfiguriert werden. Die Paketerfassungsvorrichtungen 302 sind funktionsfähig, um Pakete aus dem Netzwerk zu erfassen (unter Verwendung von bekannten Paketerfassungs- (pcap) Anwendungsprogrammierschnittstellen (APIs) oder anderen bekannten Techniken) und derartige Daten (z.B. Echtzeit-Protokollereignis und Netzwerkablauf) für eine verteilte Datenbank 306 bereitzustellen, in der die Daten gespeichert werden und zur Analyse durch das Forensikmodul 304 und die Security-Intelligence-Konsole 308 verfügbar sind. Eine Paketerfassungsvorrichtung arbeitet sitzungsorientiert, wobei alle Pakete in einem Ablauf erfasst und Metadaten und Nutzdaten indexiert werden, um eine schnelle suchgesteuerte Datenuntersuchung zu ermöglichen. Die Datenbank 306 stellt ein Forensik-Repository bereit, wobei verteilte und heterogene Datensätze die Informationen aufweisen, die von den Paketerfassungsvorrichtungen gesammelt wurden. Die Konsole 308 stellt eine Benutzeroberfläche (UI) bereit, auf die über das Web oder eine Cloud zugegriffen werden kann, die ein Dashboard zeigt, um einen Workflow zur Vorfallsuntersuchung durch einen Prüfer zu vereinfachen. Der Prüfer wählt unter Verwendung des Dashboards einen Sicherheitsvorfall aus. Das Vorfalls-Forensikmodul 304 ruft alle Pakete (einschließlich Metadaten, Nutzdaten usw.) für einen ausgewählten Sicherheitsvorfall ab und stellt die Sitzung zur Analyse wieder her.
  • Ein repräsentatives handelsübliches Produkt, das einen Workflow zur Vorfallsuntersuchung dieses Typs umsetzt, ist IBM® Security QRadar® Incident Forensics V7.2.3 (oder höher). Mit dieser Plattform durchsucht ein Prüfer die verteilten und heterogenen Datensätze, die in der Datenbank gespeichert sind, und erhält eine vereinheitlichte Suchergebnisliste.
  • In der Regel wird eine Vorrichtung zur Verwendung in dem oben beschriebenen System als mit einem Netzwerk verbundene Nicht-Anzeige-Einheit umgesetzt. Zum Beispiel sind Vorrichtungen, die gezielt zum Ausführen einer herkömmlichen Middleware mit dienstorientierten Architektur- (SOA) Funktionen entwickelt wurden, innerhalb bestimmter Computerumgebungen vorherrschend. SOA-Middleware-Vorrichtungen können Bereitstellungen von XML- und Web-Diensten vereinfachen, ihre Sicherung oder Beschleunigung unterstützen, während eine vorhandene SOA-Infrastruktur unternehmensübergreifend erweitert wird. Die Nutzung von als Middleware dienender Hardware und ein kompakter Middleware-Stack können die Leistungsbelastung bewältigen, die herkömmliche Software-Lösungen erfahren. Außerdem stellt der Vorrichtungs-Formfaktor eine sichere beanspruchbare Paketierung zum Umsetzen von Middleware-SOA-Funktionen bereit. Ein besonderer Vorteil dieser Typen von Einheiten besteht darin, Verarbeitung aus Backend-Systemen auszulagern. Eine Netzwerkvorrichtung dieses Typs ist in der Regel eine in einem Rack montierte Einheit. Die Einheit umfasst eine physische Sicherung, aufgrund der die Vorrichtung als sicherer Vault für sensible Informationen dienen kann. In der Regel wird die Vorrichtung mit vorab geladener Software hergestellt und anschließend in oder in Verbindung mit einem Unternehmen oder einer anderen Netzwerk-Betriebsumgebung eingesetzt; alternativ kann die Vorrichtung lokal positioniert und anschließend mit virtuellen Abbildern von Standard- oder benutzerdefinierter Middleware bereitgestellt werden, die sicher eingesetzt und verwaltet werden kann, z.B. in einer privaten oder einer Cloud-Datenverarbeitungsumgebung On Premise. Die Vorrichtung kann kryptografische Unterstützung von Hardware und Firmware umfassen, um gegebenenfalls Daten auf einer Festplatte zu verschlüsseln. Sie ist als versiegelte und sichere Umgebung mit eingeschränkter Zugänglichkeit und Letzteres nur durch authentifizierte und autorisierte Personen ausgelegt.
  • Eine Vorrichtung dieses Typs kann die Verwaltung von Sicherheitsinformationen und Ereignissen (SIEM) (Security Information Event Management) vereinfachen. Zum Beispiel ist IBM® Security QRadar® SIEM eine Unternehmenslösung, die Erfassungsvorrichtungen für Paketdaten umfasst, die als Vorrichtungen dieses Typs konfiguriert werden können. Eine derartige Einheit ist zum Beispiel funktionsfähig, Echtzeit-Netzwerkablaufdaten der Schicht 4 zu erfassen, aus denen anschließend Anwendungsnutzdaten der Schicht 7 analysiert werden können, zum Beispiel unter Verwendung von Deep Packet Inspection und anderen Technologien. Sie stellt situationsbezogene Wahrnehmungs- und Compliance-Unterstützung unter Verwendung einer Kombination von Netzwerkwissen auf Ablaufgrundlage, Sicherheitsereignis-Korrelation und Schwachstellenbewertung auf Ressourcengrundlage bereit. In einer grundlegenden QRadar SIEM-Installation ist das System, wie in 3 gezeigt, konfiguriert, um Ereignis- und Ablaufdaten zu sammeln und Berichte zu generieren. Wie erwähnt, kann ein Benutzer (z.B. ein SOC-Analyst) Verstöße untersuchen, um die Grundursache eines Netzwerkproblems zu ermitteln.
  • Verallgemeinernd stellen Werkzeuge zur Verwaltung von Sicherheitsinformationen und Ereignissen (SIEM) eine Reihe von Diensten zum Analysieren, Verwalten, Überwachen und Berichten von IT-Sicherheitsereignissen und Schwachstellen bereit. Derartige Dienste umfassen in der Regel eine Sammlung von Ereignissen in Bezug auf überwachte Zugriffe und unerwartete Vorkommnisse im Datennetzwerk und deren Analyse in einem korrelierenden Kontext, um ihren Beitrag zu profilierten Sicherheitsereignissen höherer Ordnung zu ermitteln. Sie können auch eine Analyse von Werkzeugen für Firewall-Konfigurationen, Netzwerktopologie und Verbindungsvisualisierung zum Anzeigen von aktuellen und potenziellen Netzwerkverkehrsmustern, einer Korrelation von Ressourcenschwachstellen mit Netzwerkkonfiguration und Verkehr umfassen, um aktive Angriffspfade und hoch riskante Ressourcen zu identifizieren und eine Überwachung der Richtlinieneinhaltung von Netzwerkverkehr, Enthüllungen von Topologie und Schwachstellen zu unterstützen. Einige SIEM-Werkzeuge haben die Fähigkeit, eine Topologie von verwalteten Netzwerkeinheiten wie zum Beispiel Router, Firewalls und Switches auf Grundlage einer Transformationsanalyse von Einheitenkonfigurationen aufzubauen, die über ein allgemeines Netzwerkinformationsmodell verarbeitet werden. Das Ergebnis ist eine ortsabhängige Organisation, die für Simulationen von Sicherheitsbedrohungen, betrieblichen Analysen von Firewall-Filtern und anderen Anwendungen verwendet werden kann.
  • 4 stellt ein Security Operation Center (SOC) dar, das eine Überwachung von Sicherheitsbedrohungen auf Ebene 1 unter Verwendung einer Analyseplattform 400 wie beispielsweise IBM QRadar bereitstellt. Die Plattform 400 empfängt Warnmeldungen (in Schritt (1)) von einer Vielfalt von Protokollquellen 402 wie zum Beispiel Firewalls, Eindringerfassungs- und -verhinderungssystemen, Virenschutzsystemen, Web-Proxies und anderen Systemen und Netzwerkeinheiten. In Schritt (2) werden die Warnmeldungen in einer Warnmeldungsdatenbank 404 gespeichert. In Schritt (3) werden die Warnmeldungen für eine Bedrohungsüberwachungskonsole 406 bereitgestellt, die mit einem Sicherheitsanalysten 408 besetzt ist. Bekanntermaßen wird ein SOC in der Regel durch Sicherheitsanalysten auf verschiedenen Ebenen besetzt. Ein Analyst 408 einer Ebene 1 (L1) ist für das Überwachen von gemeldeten Sicherheitsereignissen und für das Schließen oder Eskalieren dieser Ereignisse gemäß SOC-Regeln, -Richtlinien und -Prozeduren zuständig. Der Sicherheitsanalyst 408 interagiert in der Regel mit einem Client 410, bei dem es sich um die Unternehmensentität mit einer Anwendung handelt, die auf Sicherheitsbedrohungen überwacht wird. Obwohl nicht gezeigt, weist das SOC in der Regel eine oder mehrere zusätzliche Ebenen von Sicherheitsanalysten auf, wie zum Beispiel Analysten der Ebene 2 (L2) und der Ebene 3 (L3). In der Regel bearbeiten Sicherheitsanalysten Eskalationen von L1-Analysten und führen andere Administrations- und Verwaltungsfunktionen aus, wie zum Beispiel Überwachen der Leistung der L1-Analysten, um ein rechtzeitiges Bearbeiten von Sicherheitsereignissen, Mentoring und dergleichen sicherzustellen. Analysten der Ebene 3 bearbeiten weitere Eskalationen (von L2-Analysten) und stellen zusätzliche Administrations- und Verwaltungsfunktion in dem SOC auf höherer Ebene bereit. Selbstverständlich können die Anzahl von Ebenen und die verschiedenen Aufgaben, die jeder Ebene zugehörig sind, verändert werden und für eine Umsetzung spezifisch sein.
  • Wie dargestellt, kommt der L1-Analyst zu einer Erkenntnis in Bezug auf eine Warnmeldung, in der Regel mit einem Ziel, zu dieser Erkenntnis innerhalb von ungefähr 15 bis 20 Minuten nach Empfang der Warnmeldung zu gelangen. In der Regel schließt die Erkenntnis die Warnmeldung (Schritt 5(a)) als falsch positiv oder Eskalation der Warnmeldung (Schritt 5(b)) als möglichen Angriff. Die falsch positive Erkenntnis wird in der Warnmeldungsdatenbank 404 gespeichert. Die Angriffserkenntnis wird in der Regel an den Client 410 gemeldet, dessen Anwendung betroffen ist. Abhängig von der Umsetzung (z.B. der SOC-Richtlinie, der Client-Prozedur usw.) wird eine Korrektur- oder andere Maßnahme (Schritt 6(b)) ergriffen; alternativ kann der Client 410 angeben, dass die Warnmeldung tatsächlich falsch positiv ist und daher geschlossen werden sollte (Schritt 6(c)). Die Reaktionsmaßnahme 412 kann automatisiert (z.B. programmatisch), manuell oder durch eine Kombination von Automations- und manuellen Operationen ausgeführt werden. Die Maßnahme kann durch SOC-Personal, durch den Client oder eine Kombination von SOC-Personal und dem Client ausgeführt werden. Wie ebenfalls dargestellt, werden Informationen in Bezug zur Reaktion auf die Warnmeldung auch für ein Ticket-System 414 bereitgestellt, und derartige Informationen können anschließend an den Sicherheitsanalysten zurück gemeldet werden (Schritt 7(c)). Der Sicherheitsanalyst kann danach die Warnmeldungsdatenbank (in Schritt 8(c)) mit den Informationen dazu aktualisieren, wie die Warnmeldung bearbeitet (oder ansonsten geschlossen) wurde. Somit werden die Warnmeldung und die dazugehörigen Bearbeitungsinformationen in der Warnmeldungsdatenbank 404 gespeichert und sind als zukünftige Datenquelle verfügbar.
  • Cloud-Computing-Modell
  • Wie beschrieben wird, nutzen die Techniken dieser Offenbarung bevorzugt Datenverarbeitungselemente, die sich in einer Cloud-Computing-Umgebung befinden. Damit wird der folgende zusätzliche Hintergrund in Bezug auf Cloud-Computing bereitgestellt
  • Cloud Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen, wie insbesondere in „The NIST Definition of Cloud Computing“ von Peter Mell und Tim Grance, mit Datum vom September 2011 beschrieben und definiert wird.
  • Typische Eigenschaften sind insbesondere wie folgt:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Es gibt die folgenden typischen Dienstmodelle:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Es gibt die folgenden typischen Nutzungsmodelle:
    • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist. Ein repräsentativer Cloud-Computing-Knoten sieht wie oben in 2 veranschaulicht aus. Insbesondere ist in einem Cloud-Computing-Knoten ein Computersystem/Server vorhanden, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen von Universal- oder Sonder-Datenverarbeitungssystemen betriebsbereit ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit einem Computersystem/Server geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt. Das Computersystem/der Server kann in dem allgemeinen Kontext von Anweisungen beschrieben werden, die durch ein Computersystem ausführbar sind, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Arbeitsspeicher-Speichereinheiten enthalten.
  • In einer typischen Cloud-Computing-Umgebung wird ein Satz von funktionalen Abstraktionsschichten bereitgestellt. Diese umfassen eine Hardware- und Software-Schicht, eine Virtualisierungsschicht, eine Verwaltungsschicht und eine Arbeitslastenschicht.
  • Die Hardware- und Software-Schicht enthält Hardware- und Software-Komponenten. Beispiele für Hardware-Komponenten umfassen Mainframes, in einem Beispiel zSeries®-Systeme von IBM®; Server auf Grundlage von RISC- (Reduced Instruction Set Computer) Architektur, in einem Beispiel pSeries®-Systeme von IBM; xSeries®-Systeme von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten; Netzwerke und vernetzte Komponenten. Zu Beispielen für Software-Komponenten zählen Software für Netzwerk-Anwendungssoftware, in einem Beispiel WebSphere®-Anwendungsserver-Software von IBM; und Datenbank-Software, in einem Beispiel DB2®-Datenbanksoftware von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind eingetragene Marken der International Business Machines Corporation, die weltweit unter vielen Gerichtsbarkeiten registriert sind).
  • Die Virtualisierungsschicht stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • Die Verwaltungsschicht stellt verschiedene Verwaltungsfunktionen bereit. Die Ressourcenbereitstellung stellt zum Beispiel eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen bereit, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung stellen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
  • Die Arbeitslastenschicht stellt die Funktionalität bereit, für die die Cloud-Computing-Umgebung genutzt wird.
  • Somit weist eine repräsentative Cloud-Computing-Umgebung einen Satz von funktionalen Komponenten höchster Ebene auf, die einen Frontend Identity Manager, eine Funktionskomponente für Unternehmensunterstützungsdienste (BSS), eine Funktionskomponente für Betriebsunterstützungsdienste (OSS) und die Compute-Cloud-Komponente umfassen. Der Identity Manager ist für die Schnittstellenbildung mit anfordernden Clients zuständig, um eine Identitätsverwaltung bereitzustellen, und diese Komponente kann mit einem oder mehreren bekannten Systemen umgesetzt werden wie zum Beispiel dem Tivoli Federated Identity Manager (TFIM), der von der IBM Corporation in Armonk, New York, erhältlich ist. Unter entsprechenden Umständen kann TFIM zum Bereitstellen von föderiertem Single-Sign-On (F-SSO) für andere Cloud-Komponenten verwendet werden. Die Komponente für Unternehmensunterstützungsdienste stellt bestimmte administrative Funktionen wie beispielsweise Abrechnungsunterstützung bereit. Die Komponente für Betriebsunterstützungsdienste wird für die Bereitstellung und Verwaltung der anderen Cloud-Komponenten verwendet, wie zum Beispiel Instanzen von virtuellen Maschinen (VM). Eine virtuelle Maschine ist ein Betriebssystem oder eine Anwendungsumgebung, die auf Software installiert ist, aber eine Hardware-Maschine imitiert. Die Cloud-Komponente stellt die Haupt-Datenverarbeitungsressourcen dar, die in der Regel eine Mehrzahl von virtuellen Maschinen-Instanzen sind, die zum Ausführen einer Zielanwendung verwendet werden, wobei der Zugriff über die Cloud zur Verfügung gestellt wird. Eine oder mehrere Datenbanken werden zum Speichern von Verzeichnis-, Protokoll- und anderen Arbeitsdaten verwendet. Alle diese Komponenten (einschließlich der Frontend Identity Manager) befinden sich „innerhalb“ der Cloud, doch ist dies keine Anforderung. In einer alternativen Ausführungsform kann der Identity Manager außerhalb der Cloud betrieben werden. Der Diensteanbieter kann ebenfalls außerhalb der Cloud betrieben werden.
  • Einige Clouds beruhen auf nicht traditionellen IP-Netzwerken. Damit kann eine Cloud zum Beispiel auf zweistufigen Netzwerken auf CLOS-Grundlage mit speziellem Einzelschicht-IP-Routing beruhen, das Hashwerte von MAC-Adressen verwendet. Die hierin beschriebenen Techniken können in derartigen nicht traditionellen Clouds verwendet werden.
  • Verallgemeinernd sorgt die Cloud-Computing-Infrastruktur für eine Hosting-Umgebung für virtuelle Maschinen, die Host-Maschinen aufweist (z.B. Server oder ähnliche physische Maschinen-Datenverarbeitungseinheiten), die über ein Netzwerk und einen oder mehrere Verwaltungsserver verbunden sind. In der Regel sind die physischen Server jeweils so angepasst, dass sie unter Verwendung von Virtualisierungstechnologie, wie zum Beispiel VMware ESX/ESXi, eine oder mehrere virtuelle Maschinen bereitstellen. Mehrere VMs können in eine einzelne Host-Maschine gestellt werden und CPU, Arbeitsspeicher und andere Ressourcen der Host-Maschine gemeinsam nutzen, wodurch die Auslastung des Rechenzentrums einer Organisation verbessert wird. Neben anderen Aufgaben überwacht der Verwaltungsserver die Infrastruktur und bearbeitet die VM-Platzierung nach Bedarf, z.B. durch Verschieben von virtuellen Maschinen zwischen Hosts.
  • In einer nicht einschränkenden Umsetzung sind repräsentative Plattform-Technologien ohne Einschränkung System x®-Server von IBM mit VMware vSphere 4.1 Update 1 und 5.0
  • Bedrohungsinformationen auf Cloud-Grundlage
  • Wie oben angemerkt, gibt es eine Vielfalt von vorhandenen Werkzeugen zur Bedrohungsüberwachung, um ein breites Spektrum von Datenquellen zu analysieren, um Muster, die für Bedrohungen, Sicherheitsrichtlinie und Anomalien von Kontrolle indikativ sind, zu identifizieren, und die es Unternehmen ermöglichen, Bedrohungsinformationen zu erforschen, zusammenzuarbeiten und auf diese zu reagieren. Ein derartiges Werkzeug ist IBM® X-Force® Exchange, das eine Plattform für Bedrohungsinformationen auf Cloud-Grundlage ist, die Benutzern die Inanspruchnahme, gemeinsame Nutzung und Reaktion auf Bedrohungsinformationen ermöglicht. Die Plattform wird in einer Cloud-Computing-Umgebung wie oben beschrieben gehostet und Benutzern im Unternehmen in einem Software as a Service- (SaaS) Modell angezeigt. Allgemeiner ausgedrückt stellt dieser Dienst eine Plattform für eine gemeinsame Nutzung von Bedrohungsinformationen auf Cloud-Grundlage bereit, die es Benutzern ermöglicht, die neuesten Sicherheitsbedrohungen schnell zu untersuchen, relevante Informationen zu aggregieren und mit Kollegen zusammenzuarbeiten.
  • Insbesondere stellt IBM X-Force Exchange eine offene Plattform bereit, die Kontext zu Indicators of Compromise (IOC) (Kompromittierungsindikatoren) mit einer Mischung von durch Menschen oder Maschinen generierten Erkenntnissen hinzufügt. Sie liefert zeitnahe Bedrohungsinformationen, die dynamisch aktualisiert werden. Die Software liefert eine Überwachung von Web-Bedrohungen für Milliarden von Webseiten und wird durch eine Datenbank für eine große Anzahl von Schwachstellen unterstützt. Sie bietet tiefgreifende Informationen über Millionen von Spam- und Phishing-Angriffen und überwacht Reputationsdaten mit bösartigen IP-Adressen. Die Plattform vereinfacht eine Zusammenarbeit, indem sie Benutzern ermöglicht, sich mit Kollegen aus der Branche in Verbindung zu setzen, um Ergebnisse zu validieren, eine IOC-Sammlung gemeinsam zu nutzen, um forensische Untersuchungen zu unterstützen, oder Kontext zu Bedrohungen durch Zusammenarbeit mit Kollegen über private Gruppen und gemeinsam genutzte Sammlungen hinzuzufügen. Die Lösung ist für eine Integration von Drittsystemen mit Unterstützung für Structured Threat Information Expression (STIX) (strukturierter Ausdruck von Bedrohungsinformationen) und Trusted Automated Exchange of Indicator Information (TAXII) (vertrauenswürdiger automatisierter Austausch von Indikatorinformationen) ausgelegt, die etablierte Standards für automatisierte gemeinsame Nutzung von Bedrohungserkenntnissen sind. Sie ermöglicht die Integration zwischen Produkten von IBM Security und auf X-Force Exchange bezogene relevante Informationen. Eine Anwendungsprogrammierschnittstelle (API) wird bereitgestellt, um es Unternehmen zu ermöglichen, Bedrohungsinformationen mit Sicherheitsprodukten zu verbinden. Unter Verwendung der Plattform können Unternehmen Kompromittierungsindikatoren untersuchen, Sicherheitsuntersuchungen ausführen und auf Schwachstellen auf Zieltechnologien in ihrer Infrastruktur achten, indem in der Regel nur eine Liste mit zu überwachenden Schlüsselwörtern oder Produkten verwaltet wird. Wenn neue Schwachstellen offengelegt werden, die mit Schlüsselwörtern oder Produkte auf einer Beobachtungsliste übereinstimmen, werden automatische Benachrichtigungen bereitgestellt. Um ein Ergreifen von Maßnahmen zu diesen Schwachstellen zu unterstützen, fügt sie das Unternehmen einfach zu einer Sammlung hinzu und importiert sie entweder über die API oder unter Verwendung von STIX/TAXII-Protokollen in eine SIEM. Außerdem vereinfacht ein Bedrohungs-Feed-Manager in X-Force Exchange die Aufgabe, Daten aus verschiedenen Quellen und in eine View abzurufen. Diese Quellen für Bedrohungsinformationen von Drittsystemen können direkt auf der Plattform aktiviert werden, indem für diese Anbieter Berechtigungsnachweise bereitgestellt werden, und die Plattform integriert die Daten anschließend direkt in X-Force Exchange. Die neueste Untersuchung von Bedrohungsinformationen wird über öffentliche Sammlungen in Form von neuen Informationen zu Malware-Kampagnen und neuen Bedrohungsvektoren kontinuierlich zu der Plattform hinzugefügt. Diese Sammlungen werden von X-Force-Sicherheitsexperten zusammengestellt, um menschlichen Kontext zu Kompromittierungsindikatoren auf der Plattform hinzuzufügen. Zu Details zählen TLP-Bewertungen, Zeitrahmen, Zielbereiche, Kampagnendetails und Verknüpfungen zu dazugehörigen weiterführenden Referenzen. Benutzer können der Sammlung folgen, um über Aktualisierungen benachrichtigt zu werden, wenn neue Informationen zur Verfügung stehen.
  • Der oben beschriebene kommerzielle Dienst wird nur zu Erläuterungszwecken angegeben, da die Technik dieser Offenbarung nicht auf eine Verwendung mit diesem Dienst beschränkt ist.
  • Erfassen von unangemessener Aktivität in Anwesenheit von nicht authentifizierten API-Anforderungen unter Verwendung von Kl
  • Vor dem Hintergrund des Vorgenannten wird im Folgenden die Technik dieser Offenbarung beschrieben.
  • Die grundlegende Betriebsumgebung ist in 5 dargestellt. Wie dargestellt, interagieren Endbenutzer 500 mit einer Anwendung (z.B. einer Web-Anwendung 502 auf Grundlage von Software as a Service (SaaS), die eine Anwendung ist, die APIs verwendet (z.B. RESTfuI APIs 505). Die APIs werden in der Regel durch einen API-Server 504 unterstützt, und sie sind im Regelfall über JavaScript-Anwendungen direkt für die Browser der Benutzer verfügbar. API-Zugriffsanforderungen werden als Protokolldaten 506 überwacht und gespeichert. Häufig werden eine oder mehrere APIs auf dem API-Server 504 als nicht authentifizierte Endpunkte gehostet, was bedeutet, dass auf sie zugegriffen werden kann und sie (über API-Anforderungen) von Benutzern verwendet werden können, deren Identitäten unbekannt sind. Im Idealfall authentifizieren alle Endpunkte ihre Benutzer, jedoch kann es aus verschiedenen Gründen für ein Unternehmen erforderlich sein, nicht authentifizierende Endpunkte für bestimmte Funktionen der Anwendung zu verwenden (oder kann diese einfach anderweitig verwenden). Wie oben erwähnt, stellt dies eine Sicherheitsschwachstelle für das System dar. Falls und wenn ein Benutzer einen nicht authentifizierten Endpunkt erfasst und direkt verwendet, z.B. über programmatischen Zugriff auf die API, muss das Verhalten als unangemessen erachtet werden, auch wenn es technisch möglich ist.
  • Wie beschrieben und in 6 dargestellt wird, nutzt die Technik dieser Offenbarung künstliche Intelligenz (Kl) zum Erfassen von derartiger unangemessener Aktivität bei Vorhandensein von nicht authentifizierten API-Anforderungen. Wie dargestellt, interagieren Endbenutzer 600 mit einer Web-Anwendung 602 auf SaaS-Grundlage, die RESTfuI APIs 605 verwendet, die durch den API-Server 604 unterstützt werden, wobei Zugriffsdaten 606 protokolliert werden. Wie ebenfalls dargestellt, erweitert der Ansatz hierin die oben beschriebene Betriebsumgebung durch Verwenden von künstlicher Intelligenz, bevorzugt in Form eines neuronalen Netzwerks (NN). Wie dargestellt, ist in diesem Ansatz ein Klassifizierer 608 eines neuronalen Netzwerks (NN) integriert und wird anhand der Protokolldaten 606 sowie von Daten geschult, die durch das System generiert werden, um Zugriffsanforderungen zu simulieren, die gegen eine Richtlinie verstoßen (z.B. ein Satz von „Nutzungsbedingungen“, die dem Zugriff auf die Web-Anwendung zugehörig sind). Wenn die Benutzer 600 die Web-Anwendung 602 verwenden, werden die an den API-Server 604 gesendeten API-Anforderungen im Allgemeinen und zur Datensammlung somit in den Dateien 606 ausgeloggt, und die Protokolle werden durch die Schulungsmethodik (wie im Folgenden ausführlich beschrieben) verarbeitet, um Schulungsdaten für das neuronale Netzwerk 608 zu erstellen.
  • Gemäß dieser Offenbarung wird somit ein Klassifizierer eines neuronalen Netzwerks geschult (z.B. an Zugriffsprotokollen und anderen Daten), der ein „angemessenes“ und „unangemessenes“ Verhalten wiedergibt, wie durch eine Richtlinie festgelegt. Was angemessenes oder unangemessenes Verhalten ausmacht, ist in der Regel unternehmensspezifisch, und ein Unternehmen konfiguriert eine Sicherheitsrichtlinie zum Identifizieren eines besonderen Benutzerverhaltens, das auf die eine oder andere Weise gekennzeichnet ist, schult das neuronale Netzwerk entsprechend und instantiiert anschließend das geschulte neuronale Netzwerk, das abgefragt werden soll (z.B. bei jeder Zugriffsanforderung), um zu bestimmen, ob die Anforderung als angemessen oder unangemessen erachtet wird. Die Bestimmung durch das neuronale Netzwerk (dass eine besondere Anforderung angemessen oder unangemessen ist) wird anschließend verwendet, um eine Zugriffskontrollentscheidung zu vereinfachen, wie insgesamt im Folgenden ausführlicher beschrieben wird.
  • Gemäß diesem Ansatz wird die folgende Logik genutzt. Insbesondere werden nicht authentifizierte API-Anforderungen, die direkt auf API-Endpunkte zugreifen und durch den Benutzer im „Kontext“ der Web-Anwendung initiiert werden, bevorzugt als angemessenes Benutzerverhalten definiert, wogegen nicht authentifizierte API-Anforderungen, die direkt auf diese Endpunkte zugreifen, aber außerhalb dieses Kontexts initiiert werden, als unangemessen definiert werden. Die Bezeichnungen „angemessen“ und „unangemessen“ sind nicht als eingeschränkt aufzufassen. Was den „Kontext“ der Anwendung ausmacht, hängt vom Anwendungstyp und insbesondere vom Benutzerverhalten der API-Anforderung ab. In einem nicht einschränkenden Beispiel ist die API-Anwendung eine Benutzeroberfläche (UI) auf Web-Grundlage, die eine Berichtsseite anzeigt, die mehrere verschiedene Berichtselemente aufweist, von denen jedes in der UI aus verschiedenen Endpunkten erhalten wird, die über die API zugänglich sind. Die Benutzererfahrung ist, dass die gesamte Seite im Browser gerendert wird. Wenn das Benutzerverhalten rechtmäßig ist, ruft ein Seiten-Controller die Inhaltsendpunkte für jedes Seitenelement ab, um diesen Abschnitt (und damit alle Abschnitte der Seite) zu rendern, doch erfolgen diese Abrufe (wenn die gesamte Aktivität rechtmäßig ist) in großer zeitlicher Nähe zueinander. Einzelne Zugriffsanforderungen, die keinen derartigen Zeitablauf aufweisen, befinden sich nicht innerhalb des erwarteten „Kontexts‟ (in diesem Beispiel eine Endpunktzuordnung einer UI-Anwendung) und werden somit als unangemessen erachtet.
  • Wenn das neuronale Netzwerk geschult wird, um angemessenes oder unangemessenes Verhalten zu erkennen (aufgrund der besonderen Anwendung, der Unternehmensrichtlinie und des bzw. der zugehörigen Verhalten auf Kontext-Grundlage), wird das neuronale Netzwerk bevorzugt als Middleware auf dem API-Server verwendet. Diese Anordnung ist in 7 dargestellt, die einen API-Server 704 zeigt, der ein neuronales Netzwerk 708 als Middleware-Schicht integriert, über die API-Anforderungen anschließend verarbeitet werden. Wenn Benutzer 700 eine Web-Anwendung 702 durchsuchen, werden nicht authentifizierte API-Anforderungen (die irgendeiner Aktivität zugehörig sind) bevorzugt über einen bestimmten Zeitraum (z.B. eine Sekunde) gesammelt und anschließend in einen Merkmalssatz übersetzt, der in das neuronale Netzwerk 708 eingegeben wird. Auf Grundlage dieser Schulung trifft das neuronale Netzwerk 708 eine Vorhersage darüber, ob nicht authentifizierte API-Zugriffsanforderungen (z.B. Seitenelement-Endpunkte, auf die in großer zeitlicher Nähe zueinander zugegriffen wird, um eine Ul-Berichtsseite zu erstellen), die dieser Benutzeraktivität zugehörig sind, rechtmäßiges Benutzerverhalten darstellen (oder nicht), und gibt eine entsprechende Bewertung aus. Die Vorhersage wird anschließend an ein Zugriffskontrollsystem oder -verfahren weitergeleitet, das in einem Block 710 dargestellt wird. Der besondere Typ und/oder die Operation des Zugriffskontrollsystems oder - verfahrens 710 stellt keine Einschränkung dar. In der Regel weist die Zugriffskontrolle eine Anzahl von primären Aktionen auf (z.B. Erlauben, Ablehnen, Prüfen usw.), die für die Umsetzung spezifisch sind.
  • Anders ausgedrückt, der Ansatz verwendet hierin das neuronale Netzwerk als einen Entscheidungspunkt (in der Regel in Bezug auf ein Zugriffskontrollverfahren oder -system) für die Aktivität (in der Regel nicht authentifizierte API-Zugriffsanforderungen), die von nicht authentifizierten Clients/Endbenutzern initiiert werden. Wie vorher erwähnt und in einer Ausführungsform erfolgt die Bewertung binär und insbesondere ist eine bestimmte Aktivität (und ihre dazugehörigen API-Zugriffsanforderungen) - in Bezug auf eine Richtlinie - angemessen oder stattdessen unangemessen. Obwohl die Klassifizierung des neuronalen Netzwerks in der Regel binär erfolgt, stellt dies keine Einschränkung dar, da mehrere Klassifizierungen vorhanden sein können (z.B. angemessen, unangemessen, unbestimmt usw.).
  • Verallgemeinernd und gemäß dieser Offenbarung wird ein Klassifizierer eines neuronalen Netzwerks gemäß einer Richtlinie geschult, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht authentifizierten Endpunkte zu unterscheiden. Die erste Verhaltensklasse wird in der Richtlinie als angemessene Aktivität bezeichnet, und die zweite Verhaltensklasse wird in der Richtlinie als unangemessene Aktivität bezeichnet. Im Anschluss an die Schulung wird das neuronale Netzwerk verwendet, um eine Operation zur Zugriffskontrolle zu vereinfachen. Zu diesem Zweck und in Reaktion auf eine API-Zugriffsanforderung von einem nicht authentifizierten Client wird der Klassifizierer des neuronalen Netzwerks auf die API-Zugriffsanforderung angewendet. Nach einer Bestimmung durch den Klassifizierer des neuronalen Netzwerks, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der ersten Verhaltensklasse liegt, ist die API-Zugriffsanforderung zulässig (erlaubt). Nach einer Bestimmung durch den Klassifizierer des neuronalen Netzwerks, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der zweiten Verhaltensklasse liegt, wird eine bestimmte Maßnahme ergriffen. Die Art der bestimmten Maßnahme hängt von der Richtlinie ab; repräsentative Maßnahmen umfassen ohne Einschränkung ein Blockieren der API-Zugriffsanforderung, ein Prüfen der API-Zugriffsanforderung und ein Blacklisting des nicht authentifizierten Clients.
  • Somit nutzt der Ansatz hierin bevorzugt eine eingehende API-Analyse in Anwesenheit von nicht authentifizierten API-Anforderungen, um das neuronale Netzwerk zu schulen. In der Regel besteht der Merkmalssatz, der zum Schulen des neuronalen Netzwerks verwendet wird, aus einzelnen API-Endpunkten, und die Identität dieser Endpunkte ist kontextabhängig (und zwar auf Grundlage des besonderen Benutzerverhaltens, das unterschieden werden soll).
  • 8 stellt ein beispielhaftes Szenario dar, das nicht als einschränkend aufgefasst werden soll. Insbesondere stellt 8 eine Benutzeroberflächen- (Ul) Anzeige 800 dar, die eine Berichtsseite aufweist, die aus mehreren verschiedenen Berichtselementen 802, 804, 806 und 808 besteht. In diesem Beispiel wird jedes der Berichtselemente von einem anderen API-Serverendpunkt erhalten. Somit wird der Detailabschnitt 802 von einer API-Anforderung an .../ ipr/ : ip/details erhalten, der WHOIS-Datensatz 804 wird von einer API-Anforderung an .../ ipr/ : ip/whois erhalten, der Kategorieabschnitt 806 wird von einer API-Anforderung an .../ ipr/ : ip/categories erhalten, und die passiven DNS-Daten werden von einer API-Anforderung an .../ ipr / : ip/pdns erhalten. In diesem Beispiel ruft ein Seiten-Controller (z.B. ein im Client-Browser ausgeführtes JavaScript) den Inhaltsendpunkt für jedes Seitenelement ab, um diesen Abschnitt zu rendern. Diese grundlegende Operation wird in dem oberen Teil von 9 dargestellt, der eine angemessene nicht authentifizierte Anforderung an die Client-UI des Web-Diensts 902 und die nachfolgenden oder zugehörigen Anforderungen 904 an die API des Web-Diensts 905 darstellt. Eine „angemessene“ nicht authentifizierte Anforderung an die Seite enthält somit die einzelnen Zugriffsanforderungen an die Endpunkte des Seitenelements in großer zeitlicher Nähe zueinander. Im Gegensatz dazu werden in dem unteren Teil der Zeichnung eine oder mehrere „unangemessene“ Anforderungen 908 dargestellt, da diese Anforderungen der API des Web-Diensts 906 ohne zeitliche Nähe zu irgendeiner Anforderung für die Seite selbst bereitgestellt wurden. Anders ausgedrückt, in diesem Beispiel werden einzelne Benutzeranforderungen, die in zeitlicher Nähe (der obere Teil der Zeichnung) zu zugehörigen Ul-Anwendungsendpunkten liegen, als angemessen erachtet, wogegen einzelne Benutzeranforderungsereignisse, die keine Zuordnung von UI-Anwendungsendpunkten aufweisen, als unangemessen erachtet werden. Wie vorher erwähnt hängt die besondere Definition dessen, was als angemessenes Verhalten gilt oder nicht, von Anwendung und Kontext ab, was in der Regel von der Richtlinie bestimmt wird.
  • In der beispielhaften Ausführungsform sind einzelne Benutzer nicht authentifiziert und werden in der Regel nur durch einen Datensatz identifiziert, wie zum Beispiel {Quell-IP-Adresse, Benutzer-Agent und Accept-Language}, da diese Daten in der Regel in einer Ereignisreihe (Protokolldaten) bereitgestellt werden. In diesem Zusammenhang wird der nicht authentifizierte Benutzer hierin manchmal als logischer Benutzer bezeichnet, wobei der Datensatz eine logische Benutzerkennung für den nicht authentifizierten Benutzer aufweist. Wie oben angemerkt und in einer Ausführungsform wird das neuronale Netzwerk geschult, um zu identifizieren, ob eine besondere nicht authentifizierte Anforderung (und zwar eine Anforderung, die einem derartigen Datensatz zugehörig ist) ausreichend nahe an anderen Ereignissen liegt (die zusammen einen Kontext (ein Verhalten) von Interesse definieren). Eine positive Bestimmung kann danach ausgegeben oder in eine Operation „zulassen“ oder „erlauben“ übersetzt werden, wogegen eine negative Bestimmung in eine Operation „blockieren“ oder „prüfen“ oder dergleichen ausgegeben oder übersetzt werden kann.
  • 10 stellt einen repräsentativen Anforderungs-Antwort-Workflow in einer API eines nicht authentifizierten API-Zugriffskontrollverfahrens dieser Offenbarung dar. In diesem Beispiel, das dem unteren Teil von 9 entspricht, erstellt ein nicht authentifizierter Client/Benutzer 1000 einen Satz von API-Zugriffsanforderungen, die an einen Satz von APIs 1002 gerichtet sind (und zwar api0, api1, ..., apiN), aber die einzelnen Anforderungen werden nicht in Anwesenheit von anderen Anforderungen gestellt, d.h. sie erfüllen den erforderlichen Richtlinienkontext für das Verhalten nicht. Wie ebenfalls dargestellt, enthält das System ein neuronales Netzwerk 1004, das geschult worden ist, um einen binären Klassifizierer zum Vereinfachen der Zugriffskontrolle bereitzustellen. In diesem Beispiel werden zwei (2) mögliche Szenarien dargestellt, ein erstes Betriebsszenario, in dem der Benutzer-Browser ein Token erhalten hat, und ein zweites Betriebsszenario, in dem der Benutzer kein Token erhalten hat. Ein Token kann durch die Cloud-Umgebung, die Web-Anwendung oder einen zugehörigen Mechanismus generiert werden. Das Token impliziert nicht, dass der Client/Benutzer notwendigerweise authentifiziert ist. In dem ersten Szenario ermöglicht die Einbindung des Tokens, dass die ursprüngliche Anforderung (an api0) als angemessen bearbeitet wird, wie durch NN 1004 bestimmt, wobei die zugehörigen Anforderungen anschließend von NN 1004 als unangemessen befunden werden. Diese Operation wird bei 1006 gezeigt. Wenn das Token nicht angezeigt wird, werden alle Anforderungen durch den NN 1004 jedoch als unangemessen erachtet, und eine Rückgabe der angeforderten Inhaltselemente ist nicht erlaubt. Diese Operation wird bei 1008 gezeigt.
  • Im Folgenden wird ein repräsentatives Schulungsverfahren für das neuronale Netzwerk beschrieben. Diese Schulung geht davon aus, dass Ereignisse in der Regel in Form von Protokollen aus einer SIEM oder aus einem anderen Protokollierungsmechanismus von der Web-Anwendung auf SaaS-Grundlage gesammelt werden, wie oben beschrieben. Bevorzugt werden die Protokolle zuerst analysiert, um Ereignisse zu identifizieren, die dem direkten einzelnen Zugriff auf einen oder mehrere sensible Endpunkte entsprechen. Unter Weiterführung des obigen Beispielszenarios wären derartige Ereignisse solche (z.B. aus einem „abnormalen“ Protokoll entnommen), die nach einzelnen Kontrollelementen suchen, im Gegensatz zu der gesamten Ul-Anzeigeseite selbst. Die Schulung wird dann bevorzugt mit zwei Sätzen von Daten ausgeführt, einem ersten Satz, der Live-Daten entspricht, die positive Indikatoren darstellen (d.h. in denen die einzelnen Anforderungen als angemessen befunden wurden), und einem zweiten Satz, der Simulationsdaten entspricht, die negative Indikatoren darstellen (d.h. in denen eine Sammlung von einzelnen Anforderungen simuliert wird, um eine Situation einer „abgelehnten“ Richtlinie darzustellen, da derartige Anforderungen als unangemessen erachtet werden). Mit anderen Worten werden „positive“ Indikatoren bevorzugt von aktuellem Verkehr abgeleitet, wogegen die „negativen“ Indikatoren simuliert werden. Die negativen Indikatoren (die zu einer Richtlinie für „abgelehntes“ Resultat führen) können auch tatsächlichem Verkehr (Protokollen) entnommen werden, obwohl der bevorzugte Ansatz darin besteht, diese Resultate für Schulungszwecke zu simulieren. Zu diesem Zweck wird eine Web-Scraper-Routine bereitgestellt, um den Benutzer zu simulieren, der Software schriftlich ausarbeitet oder schreibt, um Daten direkt von einzelnen Endpunkten in der Regel unter Verstoß gegen die Richtlinie der Anwendung abzurufen (z.B. wie unter „Nutzungsbedingungen“ dargelegt). Diese Operationen können z.B. unter Verwendung eines CURL-Skripts umgesetzt werden, das wiederholt einen einzelnen Endpunkt, aber in Abwesenheit von anderen Aufrufen an zugehörige Endpunkte aufruft, von denen andernfalls erwartet würde, dass sie bei angemessenem Verhalten aufgerufen würden. Mit anderen Worten, das CURL-Skript setzt eine Aktivität um, die gegen den Richtlinienkontext verstößt.
  • Zum Schulen des neuronalen Netzwerks wird das Benutzerverhalten bevorzugt als ein Zeitraum definiert, der alle API-Anforderungen enthält, die von einem einzelnen Benutzer innerhalb einer (beliebigen) Zeit initiiert wurden, z.B. ein Ein-(1)-Sekunden-Fenster. Ein Merkmalssatz für das neuronale Netzwerk besteht dann aus einer Anordnung, deren Länge eine Anzahl von Elementen in dem Merkmalssatz von Nullen (0) und Einsen (1) ist. Eine Eins gibt an, dass der zugehörige Endpunkt ein Treffer ist, und eine Null gibt an, dass kein Treffer aufgezeichnet wurde. Ein positiver Merkmalsvektor wie zum Beispiel [1101000000000] gibt an, dass das rechtmäßige Verhalten drei (3) verschiedene Endpunkte betrifft. Ein negativer Merkmalsvektor wie zum Beispiel [1000000000000] gibt an, dass das unrechtmäßige Verhalten nur einen Datenendpunkt betrifft. Die Schulungsdaten weisen bevorzugt eine Matrix mit Zeiträumen als Zeilen zusammen mit einer Beschriftung [1,0] auf, die ein rechtmäßiges Verhalten angibt, und wobei die Beschriftung [0,1] ein unrechtmäßiges Verhalten angibt. Wenn das neuronale Netzwerk geschult ist, wie oben erwähnt, wird es in dem Anforderungs-Antwort-Workflow der API instantiiert. Wenn der Benutzer anschließend mit der Anwendung interagiert, werden eine oder mehrere Anforderungen in Zeiträumen mit der für die Schulung verwendeten Zeitspanne gesammelt, in einen bzw. mehrere Merkmalssätze übersetzt und anschließend als Eingabe für das neuronale Netzwerk angewendet. Im Betrieb stellt das neuronale Netzwerk eine dieser beiden Bewertungen bereit, und zwar entweder [1,0] oder [0,1], wenn die binäre Klassifizierung verwendet wird. In einem repräsentativen Anwendungsfall mit [1,0] als Bewertung (Vorhersage) werden alle Anforderungen einwandfrei verarbeitet. Mit [0,1] als Bewertung wird die Anforderung bzw. werden die Anforderungen (oder einige von ihnen) zurückgewiesen. Abhängig davon, wie die Zugriffskontrolle umgesetzt ist, können außerdem andere Maßnahmen ergriffen werden. Somit kann der Benutzer zum Beispiel zu einer temporären schwarzen Liste hinzugefügt werden mit dem Ergebnis, dass alle nachfolgenden API-Anforderungen von dieser ebenfalls zurückgewiesen werden.
  • Somit umfasst das Schulen des Klassifizierers des neuronalen Netzwerks gemäß dieser Offenbarung ein Definieren eines Merkmalssatzes, der einen Satz von Elementen aufweist, die einen Satz von Endpunkten darstellen, die einer besonderen API-Zugriffsanforderung von einem Client zugehörig sind. Ein Endpunkt von Interesse wird bevorzugt in Bezug auf ein bestimmtes Zeitfenster definiert, und wobei dem Element, das dem Endpunkt von Interesse zugehörig ist, ein Wert zugewiesen wird, der eine Funktion dessen ist, ob der Treffer eine angemessene Aktivität oder eine unangemessene Aktivität darstellt. Merkmalssätze werden in eine Matrix kombiniert/aggregiert, und die Ausgabebewertungen werden jedem Vektor (einer Zeile in der Matrix) zugewiesen. Auf diese Weise erfasst das neuronale Netzwerk zeitliche Abweichungen zwischen den API-Zugriffsanforderungen wesentlich nuancierter als dies unter Verwendung von Ansätzen auf Grundlage von Regeln oder anderen deterministischen Ansätzen erreicht werden kann. Die sich daraus ergebende Zugriffskontrolle, die diese künstliche Intelligenz nutzt, ist dann wesentlich feingranularer.
  • 12 stellt ein repräsentatives Beispiel dar, wie Schulungsdaten zum Generieren der positiven und negativen Merkmalssätze verwendet werden. In der Regel sind die aus dem Protokoll erhaltenen Informationen ein Ereignisdatensatz. Eine repräsentative eingehende Anforderung hat einen zugehörigen Ereignisdatensatz 1200, wie gezeigt. Zum Vereinfachen eines Generierens des Schulungsdatensatzes und wie oben beschrieben werden bevorzugt Client-IP-Adresse, Benutzer-Agent und Accept-Language-Werte aus dem Ereignisdatensatz extrahiert. Das Ergebnis wird bei 1202 dargestellt. Anschließend verwendet der Web-Scraper bevorzugt die extrahierten Informationen zum Generieren von zwei Anforderungen von demselben Benutzer (einem logischen Benutzer) innerhalb des Zeitfensters mit der vollständigen Liste von Endpunkten zum Vergleich (mit Informationsfeldern in dem Ereignisdatensatz 1200), ein positiver Merkmalssatz 1204 wird erstellt (in diesem Beispiel als [10100000...00], wobei „1“ dem Endpunkttreffer für „ip/“ und „url/“ zugeordnet ist. Ein negativer Merkmalssatz 1206 kann dann [10000000...00] sein, der eine künstlich erstellte Richtlinie für eine Operation „abgelehnt“ darstellt, die für die Schulung auf das neuronale Netzwerk angewendet wird. Somit verwendet das Schulungssystem in einer Ausführungsform Informationen von einem tatsächlich eingehenden Anforderungsereignis-Datensatz, um sowohl den (realen) positiven Merkmalssatz als auch den (künstlichen) negativen Merkmalssatz zu generieren. Wie angemerkt, ermöglicht dieser Ansatz zum Erstellen von negativen Beispielen (mit abgelehnter Richtlinie) dem System unter Verwendung von künstlichen Beispielen (über die Web-Scraper-Routine), nützliche Schulungsdaten zu generieren, im Grunde die positiven Merkmalsschulungsdaten auszugleichen, und somit, dass das neuronale Netzwerk ausreichend geschult ist (und um so Verzerrungen zu vermeiden).
  • 11 ist eine Prozessablaufdarstellung, die die Ende-Ende-Operation eines Systems darstellt, das die oben beschriebene Methodik umfasst. Die Schulung beginnt in Schritt 1100 durch Empfangen des Simulationsdatensatzes (negative Indikatoren) und des Live-Datensatzes (positive Indikatoren. In Schritt 1102 werden die API-Ereignisse in ein Zeitfenster von Interesse (z.B. eine (1) Sekunde) auf Grundlage der Benutzerkennungen aggregiert. In Schritt 1104 werden die Endpunkt-Punkte (z.B. API URL) extrahiert, um einen Merkmalssatz zu erstellen. In Schritt 1106 wird ein Ereignis (in einem Merkmalssatz) an das neuronale Netzwerk weitergeleitet. Bevorzugt wird ein Ereignis (in einem Merkmalssatz) an das neuronale Netzwerk zusammen mit einer vordefinierten Klasse ([0,1] oder [1,0]) weitergeleitet, um überwachtes Lernen zu ermöglichen. Mit anderen Worten, die Schulung wird durch Bereitstellen sowohl von Merkmal als auch Beschriftung für das neuronale Netzwerk ausgeführt. In Schritt 1108 wird die Antwort des neuronalen Netzwerks (angemessen/unangemessen) für das in Schritt 1106 weitergeleitete Ereignis abgerufen. Die Schritte 1106 und 1108 werden wiederholt, bis alle relevanten API-Ereignisse in dem Zeitraum verarbeitet sind, und der sich daraus ergebende Vektor wird in Schritt 1110 generiert.
  • In dem beispielhaften Szenario in 8 identifiziert die Routine für jede UI-Komponente, die sich aus mehreren Endpunkten zusammensetzt, jeden erforderlichen Endpunkt (/a, /b, ...), vergleicht jeden Endpunkt mit einer Anwendungs-Endpunktliste und leitet den Merkmalssatz [ep0, ep1, ..., epN] ab, wobei jedes Endpunktelement eine „1“ (vorhanden) oder „0“ (nicht vorhanden) ist. Diese Verarbeitung wird für die Schulungsdaten wiederholt, um die überwachte Schulung auf Lerngrundlage des neuronalen Netzwerks abzuschließen. In Schritt 1112 werden die Matrix und die dazugehörigen Bewertungen auf Zeilengrundlage (für jeden Vektor) instantiiert. Zwar wird der oben beschriebene Schulungsansatz bevorzugt, aber auch andere Schulungstechniken, z.B. auf Grundlage von nicht überwachtem Lernen, können eingesetzt werden.
  • Eine Laufzeitoperation beginnt in Schritt 1114, indem z.B. das neuronale Netzwerk (wie in den Schritten 1100 bis 1112 geschult) in Verbindung mit dem API-Server umgesetzt wird. In Schritt 1116 wird eine logische Benutzeranforderung empfangen. Wie oben angemerkt, ist die logische Benutzeranforderung in der Regel eine Kennung, die eine Verkettung von Benutzerattributen aufweist, z.B. IP-Adresse (Quell-IP), Benutzer-Agent und Accept-Language. Andere Daten wie beispielsweise ein Zeitstempel können enthalten sein. In Schritt 1118 und für jedes nicht authentifizierte API-Ereignis erfasst die Laufzeitroutine die Benutzerattribute, leitet das Ereignis an das neuronale Netzwerk weiter und empfängt die Antwortbewertung. In Schritt 1120 wird bzw. werden die Bewertung(en) anschließend für das Zugriffskontrollverfahren oder -system bereitgestellt. In Schritt 1122 wird die Zugriffskontrollmaßnahme ausgeführt, um die Verarbeitung abzuschließen.
  • Die Zugriffskontrolle kann ohne Einschränkung in einem Richtlinien-Entscheidungspunkt (PDP) und/oder einem Richtlinien-Durchsetzungspunkt (PEP) umgesetzt werden. In der Regel antwortet ein Richtlinien-Entscheidungspunkt (PDP) auf eine Richtlinien-Abfrage, die von dem Richtlinien-Durchsetzungspunkt (PEP) empfangen wird, um eine Richtlinie zu einer Thematik und in Bezug auf eine besondere Maßnahme durchzusetzen, die durch die Thematik initiiert wurde. Der PDP setzt die Richtlinien-Entscheidung um. In einer gewerblichen Umsetzung wird der PDP in einem Laufzeit-Sicherheitsdienst umgesetzt, und der PEP wird als Plug-in für einen Anwendungsserver umgesetzt, wie zum Beispiel den IBM WebSphere® Application Server.
  • Wie oben angemerkt, kann der Klassifizierer des neuronalen Netzwerks zur Verwendung in oder in Verbindung mit dem API-Server geschult und instantiiert werden. Wenn gegebenenfalls weitere Schulungsdaten protokolliert und/oder simuliert werden, kann das neuronale Netzwerk aktualisiert oder eine neue Version davon instantiiert werden, um eine aktualisierte oder anderweitig verbesserte Vorhersagefunktion bereitzustellen.
  • Die Technik hierin bietet erhebliche Vorteile. Im Allgemeinen stellt der Ansatz eine Möglichkeit bereit, um eine unangemessene Aktivität in Anwesenheit von nicht authentifizierten API-Anforderungen oder allgemeiner ausgedrückt von nicht authentifizierten Benutzern zu erfassen. Das System stellt unter Verwendung des neuronalen Netzwerks eine effektive Unterscheidung in Bezug auf nicht authentifiziertes Benutzerverhalten bereit, und es ermöglicht, dass Zugriffskontrollen in Bezug auf Benutzer effektiver durchgesetzt werden, die die Anwendung nicht gemäß der Sicherheitsrichtlinie des Unternehmens verwenden. Der Ansatz auf Grundlage eines neuronalen Netzwerks stellt im Vergleich mit deterministischen Lösungen auf Regel-Grundlage (selbst denjenigen auf Grundlage von Gleitfenstern), die insbesondere in dynamischen Umgebungen eine sehr niedrige Abdeckung bereitstellen, weitaus mehr genaue Ergebnisse bereit. Durch Schulen des neuronalen Netzwerks, ein bzw. mehrere Muster hinter einem regulären Benutzerverhalten zu erkennen, ermöglicht der Ansatz eine robuste Zugriffskontrolle in Bezug auf nicht authentifizierte Benutzer. Generell vereinfacht der Ansatz eine Zugriffskontrolle, die insgesamt oder in Teilen auf API-Interaktionen mit einer Anwendung beruht, bei der die Identität der Personen, die den Zugriff ausführen, unbekannt ist oder notwendigerweise feststellbar ist.
  • Zwar ist der Ansatz insbesondere mit RESTfuI APIs nützlich, er stellt aber keine Einschränkung dar. Die Technik ist tatsächlich nicht auf eine API beschränkt, da dieser Ansatz auf jede Schnittstelle verallgemeinert werden kann, die ein Protokoll- oder protokollähnliches Verhalten aufweist (z.B. ein SDK, eine generische API, eine proprietäre API, eingebettete Software, die Transaktionsdefinitionen bereitstellt, eine Netzwerkschnittstelle, eine Firewall, jeder andere API-Typ, der eine zugängliche Zugriffskontroll-Richtlinie verwendet und dergleichen). Zwar ist der Ansatz insbesondere mit RESTfuI APIs nützlich, er stellt aber ebenfalls keine Einschränkung dar. Ferner besteht keine Anforderung, dass die Technik in Verbindung mit Anfragen an eine Web-Anwendung umgesetzt werden muss, das Ziel der Client-Anfragen kann jede Anwendung, jede Ressource oder ein anderer über das Netzwerk zugänglicher Dienst sein.
  • Das neuronale Netzwerk kann anfänglich geschult werden und anschließend periodisch, kontinuierlich oder bei einem bestimmten Vorkommnis oder Ereignis aktualisiert werden.
  • In einer bevorzugten Ausführungsform ist das neuronale Netzwerk ein neuronales Netzwerk auf Grundlage von Vorwärtsregelung (z.B. ein zweischichtiges) neuronales Netzwerk mit einer ausgeblendeten Schicht und einer Ausgabeschicht. Die Größe der Eingabe des neuronalen Netzwerks entspricht in der Regel der Größe der Endpunktliste. Wenn also z.B. 38 Endpunkte vorhanden sind, sind 38 Eingabeknoten vorhanden. Die ausgeblendete Schicht umfasst eine Anzahl von Knoten, die in der Regel der Anzahl von verschiedenen „Kontexten“ entspricht, für deren Unterscheidung das Netzwerk geschult wird. Somit kann es z.B. 20 Knoten in der ausgeblendeten Schicht geben, die diese Kontexte repräsentieren. Die Ausgabeschicht umfasst in der Regel nur zwei Ausgabeknoten, die der angemessenen oder unangemessenen Ausgabebestimmung entsprechen. Das neuronale Netzwerk verwendet eine Aktivierungsfunktion (z.B. einen Gleichrichter, wobei Einheiten darin gleichgerichtete lineare Einheiten (ReLUs) sind). Ein Näherungswert für den Gleichrichter ist eine Analysefunktion mit einem Gradienten (z.B. Softmax), der in der Ausgabeschicht nützlich ist. Wenn die Schulungsdaten dem neuronalen Netzwerk zugeführt werden, wird bevorzugt ein stochastisches Gradientenabstiegsverfahren in dem Schulungsprozess verwendet. Die Verlustfunktion wird als Mean Square Error (MSE) (mittlerer quadratischer Fehler) definiert.
  • Obwohl ein neuronales Netzwerk bevorzugt wird, können andere Typen von künstlicher Intelligenz (Maschinenlernen) verwendet werden. Ein anderer KI-Typ ist eine Regression auf Grundlage von komplexen Kurven.
  • In einer Ausführungsform wird das neuronale Netzwerk in der Cloud-Datenverarbeitungsinfrastruktur gehostet.
  • Der besondere Typ und der Speicherplatz des Zugriffskontrollsystems oder -verfahrens können unterschiedlich sein. Ein typischer Speicherplatz ist die Cloud-Datenverarbeitungsumgebung, doch ist diese keine Anforderung.
  • Die Web-Anwendung kann auf einer Anwendung oder einem Web-Server gehostet werden, der wiederum auf einer Cloud beruht.
  • In einer gemeinsam genutzten Tenant-Umgebung wird erwartet, dass Unternehmen verschiedene Web-Anwendungen betreiben, und somit wird von einem besonderen Tenant erwartet, dass er einen Klassifizierer eines neuronalen Netzwerks hat, der eindeutig (auf seine Daten) geschult ist und auf seine besonderen Anforderungen auf Richtlinien-Grundlage abgestimmt ist. Der Cloud-Dienst kann jedoch eine Schulung für ein neuronales Netzwerk „as a service" für mehrere Tenants bereitstellen, wobei jeder seine jeweiligen Web-Anwendungen in anderer Weise in der Cloud-Datenverarbeitungsumgebung gehostet haben kann.
  • Das System auf Grundlage von künstlicher Intelligenz hierin stellt bedeutende Vorteile bereit. Der Ansatz ermöglicht unter Verwendung eines neuronalen Netzwerks, das auf die beschriebene Weise geschult wurde, eine robuste Erfassung von Anomalien, die sich in Netzwerkaktivitäten oder im Benutzerverhalten zeigen. Der Ansatz ist feingranular, effizient und skalierbar und kann problemlos an Änderungen in der Unternehmensrichtlinie angepasst werden. Allgemeiner ausgedrückt stellt die Technik hierin eine verbesserte Netzwerkaktivität und ein System zur Analyse des Benutzerverhaltens bereit, das Insider-Bedrohungen erfassen kann, wodurch Sicherheitsanalysten beim Erfassen von anomalem oder bösartigem Verhalten unterstützt werden, das auf dem Netzwerk auftritt.
  • Dieser Erfindungsgegenstand kann insgesamt oder in Teilen in Form von „as a Service“ umgesetzt werden. Die Maschinenlern- (ML) Funktionalität kann als eigenständige Funktion bereitgestellt werden oder Funktionalität von anderen Produkten und Diensten auf ML-Grundlage nutzen.
  • In einem typischen Anwendungsfall ist mit einer SIEM oder einem anderen Sicherheitssystem eine Benutzerschnittstelle verbunden, die zum visuellen Rendern der Warnmeldung, zum Suchen und Abrufen von relevanten Informationen von der Warnmeldungsdatenbank und zum Ausführen von anderen bekannten Eingabe- und Ausgabefunktionen in Bezug auf diese verwendet werden können.
  • Wie oben angemerkt, ist der Ansatz hierin dafür ausgelegt, auf automatisierte Weise in oder in Verbindung mit einem Sicherheitssystem wie beispielsweise einer SIEM verwendet zu werden.
  • Die in dieser Offenbarung beschriebene Funktionalität kann als insgesamt oder in Teilen als eigenständiger Ansatz umgesetzt werden, kann z.B. als eine Funktion auf Software-Grundlage durch einen Hardware-Prozessor ausgeführt werden, oder sie kann als verwalteter Dienst (einschließlich eines Web-Dienstes über eine SOAP/XML-Schnittstelle) zur Verfügung stehen. Die besonderen Umsetzungsdetails für Hardware und Software, die hierin beschrieben wurden, dienen allein zu veranschaulichenden Zwecken und sollen den Schutzumfang des beschriebenen Erfindungsgegenstands nicht einschränken.
  • Allgemeiner ausgedrückt sind Datenverarbeitungseinheiten im Kontext des offenbarten Erfindungsgegenstands jeweils ein Datenverarbeitungssystem (wie beispielsweise in 2 gezeigt), das Hardware und Software aufweist, und diese Entitäten tauschen über ein Netzwerk untereinander Daten aus, wie zum Beispiel das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes andere Datenübertragungsmedium oder jede andere Datenübertragungsverbindung.
  • Das hierin beschriebene Schema kann in oder in Verbindung mit verschiedenen serverseitigen Architekturen umgesetzt werden, einschließlich einfachen n-stufigen Architekturen, Web-Portalen, föderierten Systemen und dergleichen. Die Techniken hierin können in einer lose verbundenen Server-Umgebung (einschließlich auf „Cloud“-Grundlage) ausgeübt werden.
  • Noch allgemeiner ausgedrückt kann der hierin beschriebene Erfindungsgegenstand die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform oder einer Ausführungsform annehmen, die sowohl Software- als auch Hardware-Elemente enthält. In einer bevorzugten Ausführungsform wird die Funktion in Software umgesetzt, wozu Firmware, residente Software, Mikrocode und dergleichen gehören, sie ist aber nicht darauf beschränkt. Ferner, wie oben angemerkt, kann die Funktionalität der Zugriffskontrolle auf Identitätskontext-Grundlage die Form eines Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren oder durch einen Computer lesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung durch einen oder in Verbindung mit einem Computer oder jedem Anweisungsausführungssystem bereitstellt. Für die Zwecke dieser Beschreibung kann ein durch einen Computer verwendbares oder durch einen Computer lesbares Speichermedium jede Vorrichtung sein, die das Programm zur Verwendung durch ein oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann. Das Medium kann ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (oder -Vorrichtung oder -Einheit) sein. Beispiele für ein durch einen Computer lesbares Medium umfassen einen Halbleiter- oder Solid-State-Arbeitsspeicher, ein Magnetband, eine entfernbare Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen Festmagnetplattenspeicher und ein optisches Plattenlaufwerk. Aktuelle Beispiele für optische Plattenlaufwerke umfassen CD-ROM (Compact Disk - Read Only Memory), CD-R/W (Compact Disk - Read/Write) und DVD. Das durch einen Computer lesbare Medium ist ein konkretes Element.
  • Das Computerprogramm kann ein Produkt mit Programmanweisungen (oder Programmcode) zum Umsetzen von einer oder mehreren der beschriebenen Funktionen sein. Diese Anweisungen bzw. dieser Code können bzw. kann in einem durch einen Computer lesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert werden, nachdem sie bzw. er über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurden. Oder diese Anweisungen bzw. dieser Code können bzw. kann in einem durch einen Computer lesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert und angepasst werden, um über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem zur Verwendung in einem durch einen Computer lesbaren Speichermedium in dem entfernt angeordneten System heruntergeladen zu werden.
  • In einer repräsentativen Ausführungsform werden die Techniken zur Löschung und Modellierung der Bedrohung in einem Spezialcomputer umgesetzt, bevorzugt in Software, die durch einen oder mehrere Prozessoren ausgeführt wird. Die Software wird in einem oder mehreren Datenspeichern oder Arbeitsspeichern verwaltet, die dem einen oder den mehreren Prozessoren zugehörig sind, und die Software kann als ein oder mehrere Computerprogramme umgesetzt werden. Diese Sonderzweck-Hardware und -Software weist gemeinsam die oben beschriebene Funktionalität auf.
  • Während das Vorgenannte eine besondere Reihenfolge von Operationen beschreibt, die von bestimmten Ausführungsformen der Erfindung ausgeführt werden, sollte klar sein, dass eine derartige Reihenfolge beispielhaft ist, da alternative Ausführungsformen die Operationen in einer anderen Reihenfolge ausführen, bestimmte Operationen kombinieren, bestimmte Operationen überlappen können oder dergleichen. Verweise in der Patentschrift auf eine bestimmte Ausführungsform geben an, dass die beschriebene Ausführungsform ein besonderes Merkmal, eine besondere Struktur oder Eigenschaft umfassen kann, aber nicht jede Ausführungsform das besondere Merkmal, die besondere Struktur oder Eigenschaft notwendigerweise umfassen muss.
  • Während bestimmte Komponenten des Systems separat beschrieben worden sind, wird einem Fachmann letztlich klar sein, dass einige der Funktionen in bestimmten Anweisungen, Programmsequenzen, Codeabschnitten und dergleichen kombiniert oder gemeinsam genutzt werden können.
  • Die Techniken hierin stellen Verbesserungen für eine weitere Technologie bzw. ein technisches Gebiet bereit, z.B. Zugriffskontrollsysteme und -verfahren, andere Sicherheitssysteme sowie Verbesserungen an Cyber-Sicherheitsanalysen auf Grundlage von Automatisierung.
  • Nach der Beschreibung der Erfindung wird Folgendes beansprucht.

Claims (25)

  1. Verfahren zur Zugriffskontrolle in einer Datenverarbeitungsumgebung, in der Clients mit einer Anwendung zumindest teilweise unter Verwendung von Anforderungen auf Grundlage einer Anwendungsprogrammierschnittelle (API) interagieren, die einen oder mehrere nicht authentifizierte Endpunkte haben, aufweisend: in Reaktion auf einen Empfang einer API-Zugriffsanforderung von einem nicht authentifizierten Client, Anwenden eines Klassifizierers auf die API-Zugriffsanforderung, wobei der Klassifizierer durch Schulen eines neuronalen Netzwerks gemäß einer Richtlinie generiert worden ist, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht authentifizierten Endpunkte zu unterscheiden, wobei die erste Verhaltensklasse in der Richtlinie als angemessene Aktivität angegeben wird, und die zweite Verhaltensklasse in der Richtlinie als unangemessene Aktivität angegeben wird; nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der ersten Verhaltensklasse liegt, Zulassen der API-Zugriffsanforderung; und nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der zweiten Verhaltensklasse liegt, Ergreifen einer bestimmten Maßnahme.
  2. Verfahren nach Anspruch 1, ferner aufweisend ein Schulen des Klassifizierers des neuronalen Netzwerks.
  3. Verfahren nach Anspruch 2, wobei das Schulen des Klassifizierers des neuronalen Netzwerks ein Definieren eines Merkmalssatzes umfasst, der einen Satz von Elementen aufweist, die einen Satz von Endpunkten darstellen, die einer besonderen API-Zugriffsanforderung von einem Client zugehörig sind.
  4. Verfahren nach Anspruch 3, wobei ein Endpunkt in Bezug auf ein bestimmtes Zeitfenster definiert wird, und wobei dem Element, das dem Endpunkt zugehörig ist, ein Wert zugewiesen wird, der eine angemessene Aktivität oder eine unangemessene Aktivität darstellt.
  5. Verfahren nach Anspruch 4, wobei der Merkmalssatz von Protokolldaten abgeleitet wird, die API-Zugriffsanforderungen zugehörig sind, die für zulässig befunden wurden, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine angemessene Aktivität zuordnet.
  6. Verfahren nach Anspruch 4, wobei der Merkmalssatz durch Simulieren von mindestens einigen Endpunktwerten abgeleitet wird, die gegen die Richtlinie verstoßen, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine unangemessene Aktivität zugeordnet hat.
  7. Verfahren nach Anspruch 1, wobei die API eine RESTful API ist.
  8. Verfahren nach Anspruch 1, wobei die bestimmte Maßnahme eines von Folgendem ist: Erlauben der API-Zugriffsanforderung, Blockieren der API-Zugriffsanforderung, Initiieren einer Prüfungsoperation, die einem Erlauben oder Blockieren der API-Zugriffsanforderung zugehörig ist, und Eintragen des nicht authentifizierten Clients in eine schwarze Liste.
  9. Vorrichtung, aufweisend: einen Hardware-Prozessor; und Computer-Arbeitsspeicher, der Computerprogrammanweisungen enthält, die durch den Hardware-Prozessor zur Zugriffskontrolle in einer Datenverarbeitungsumgebung ausgeführt werden, in der Clients zumindest teilweise mit einer Anwendung unter Verwendung von Anforderungen auf Grundlage einer Anwendungsprogrammierschnittelle (API) interagieren, die einen oder mehrere nicht authentifizierte Endpunkte haben, wobei die Computerprogrammanweisungen konfiguriert sind, um: in Reaktion auf einen Empfang einer API-Zugriffsanforderung von einem nicht authentifizierten Client, einen Klassifizierer auf die API-Zugriffsanforderung anzuwenden, wobei der Klassifizierer durch Schulen eines neuronalen Netzwerks gemäß einer Richtlinie generiert worden ist, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht authentifizierten Endpunkte zu unterscheiden, wobei die erste Verhaltensklasse in der Richtlinie als angemessene Aktivität angegeben wird, und die zweite Verhaltensklasse in der Richtlinie als unangemessene Aktivität angegeben wird; nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der ersten Verhaltensklasse liegt, die API-Zugriffsanforderung zuzulassen; und nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der zweiten Verhaltensklasse liegt, eine bestimmte Maßnahme zu ergreifen.
  10. Vorrichtung nach Anspruch 9, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um den Klassifizierer des neuronalen Netzwerks zu schulen.
  11. Vorrichtung nach Anspruch 8, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um einen Merkmalssatz zu definieren, der einen Satz von Elementen aufweist, die einen Satz von Endpunkten darstellen, die einer besonderen API-Zugriffsanforderung von einem Client zugehörig sind.
  12. Vorrichtung nach Anspruch 11, wobei ein Endpunkt in Bezug auf ein bestimmtes Zeitfenster definiert wird, und wobei dem Element, das dem Endpunkt zugehörig ist, ein Wert zugewiesen wird, der eine angemessene Aktivität oder eine unangemessene Aktivität darstellt.
  13. Vorrichtung nach Anspruch 12, wobei der Merkmalssatz von Protokolldaten abgeleitet wird, die API-Zugriffsanforderungen zugehörig sind, die für zulässig befunden wurden, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine angemessene Aktivität zuordnet.
  14. Vorrichtung nach Anspruch 12, wobei der Merkmalssatz durch Simulieren von mindestens einigen Endpunkten abgeleitet wird, die gegen die Richtlinie verstoßen, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine unangemessene Aktivität zuordnet.
  15. Vorrichtung nach Anspruch 9, wobei die API eine RESTful API ist.
  16. Vorrichtung nach Anspruch 9, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um die bestimmte Maßnahme zu ergreifen, die eines von Folgendem ist: Erlauben der API-Zugriffsanforderung, Blockieren der API-Zugriffsanforderung, Initiieren einer Prüfungsoperation, die einem Erlauben oder Blockieren der API-Zugriffsanforderung zugehörig ist, und Eintragen des nicht authentifizierten Clients in eine schwarze Liste.
  17. Computerprogrammprodukt in einem nicht flüchtigen, durch einen Computer lesbaren Medium zur Zugriffskontrolle in einer Datenverarbeitungsumgebung, in der Clients zumindest teilweise mit einer Anwendung unter Verwendung von Anforderungen auf Grundlage einer Anwendungsprogrammierschnittelle (API) interagieren, die einen oder mehrere nicht authentifizierte Endpunkte haben, wobei das Computerprogrammprodukt Computerprogrammanweisungen enthält, die bei Ausführung durch ein Datenverarbeitungssystem konfiguriert sind, um: in Reaktion auf einen Empfang einer API-Zugriffsanforderung von einem nicht authentifizierten Client, einen Klassifizierer auf die API-Zugriffsanforderung anzuwenden, wobei der Klassifizierer durch Schulen eines neuronalen Netzwerks gemäß einer Richtlinie generiert worden ist, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht authentifizierten Endpunkte zu unterscheiden, wobei die erste Verhaltensklasse in der Richtlinie als angemessene Aktivität angegeben wird, und die zweite Verhaltensklasse in der Richtlinie als unangemessene Aktivität angegeben wird; nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der ersten Verhaltensklasse liegt, die API-Zugriffsanforderung zuzulassen; und nach einer Bestimmung durch den Klassifizierer, dass die API-Zugriffsanforderung von dem nicht authentifizierten Client innerhalb der zweiten Verhaltensklasse liegt, eine bestimmte Maßnahme zu ergreifen.
  18. Computerprogrammprodukt nach Anspruch 17, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um den Klassifizierer des neuronalen Netzwerks zu schulen.
  19. Computerprogrammprodukt nach Anspruch 18, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um einen Merkmalssatz zu definieren, der einen Satz von Elementen aufweist, die einen Satz von Endpunkten darstellen, die einer besonderen API-Zugriffsanforderung von einem Client zugehörig sind.
  20. Computerprogrammprodukt nach Anspruch 19, wobei ein Endpunkt in Bezug auf ein bestimmtes Zeitfenster definiert wird, und wobei dem Element, das dem Endpunkt zugehörig ist, ein Wert zugewiesen wird, der eine angemessene Aktivität oder eine unangemessene Aktivität darstellt.
  21. Computerprogrammprodukt nach Anspruch 20, wobei der Merkmalssatz von Protokolldaten abgeleitet wird, die API-Zugriffsanforderungen zugehörig sind, die für zulässig befunden wurden, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine angemessene Aktivität zuordnet.
  22. Computerprogrammprodukt nach Anspruch 21, wobei der Merkmalssatz durch Simulieren von mindestens einigen Endpunkten abgeleitet wird, die gegen die Richtlinie verstoßen, wobei der Klassifizierer des neuronalen Netzwerks dem Merkmalssatz eine unangemessene Aktivität zugeordnet hat.
  23. Computerprogrammprodukt nach Anspruch 17, wobei die API eine RESTful API ist.
  24. Computerprogrammprodukt nach Anspruch 17, wobei die Computerprogrammanweisungen ferner konfiguriert sind, um die bestimmte Maßnahme zu ergreifen, die eines von Folgendem ist: Erlauben der API-Zugriffsanforderung, Blockieren der API-Zugriffsanforderung, Initiieren einer Prüfungsoperation, die einem Erlauben oder Blockieren der API-Zugriffsanforderung zugehörig ist, und Eintragen des nicht authentifizierten Clients in eine schwarze Liste.
  25. Software as a service, umgesetzt in einer durch ein Netzwerk zugreifbaren Cloud-Datenverarbeitungsinfrastruktur, die Hardware und Software aufweist, aufweisend: eine über ein Netzwerk zugreifbare Anwendung; ein neuronales Netzwerk, das in Verbindung mit einem Satz von Schnittstellenendpunkten bereitgestellt wird, die durch einen nicht authentifizierten Client, der Zugriff auf die über ein Netzwerk zugreifbare Anwendung sucht, zugreifbar sind, wobei das neuronale Netzwerk gemäß einer Richtlinie geschult wird, um mindestens eine erste und eine zweite Verhaltensklasse in Bezug auf einen programmatischen Zugriff auf den einen oder die mehreren nicht Schnittstellenendpunkte zu unterscheiden; einen Dienst in Reaktion auf einen Empfang einer Mehrzahl von Schnittstellen-Zugriffsanforderungen an die über ein Netzwerk zugreifbare Anwendung während eines bestimmten Zeitraums, um das neuronale Netzwerk zum Ausführen einer Bestimmung anzuwenden, ob die Mehrzahl von Schnittstellen-Zugriffsanforderungen einen Richtlinienkontext erfüllen, und um eine Zugriffskontrolle auf Grundlage der Bestimmung anzuwenden.
DE112019004913.5T 2018-12-26 2019-12-16 Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz Pending DE112019004913T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/232,337 2018-12-26
US16/232,337 US11303659B2 (en) 2018-12-26 2018-12-26 Detecting inappropriate activity in the presence of unauthenticated API requests using artificial intelligence
PCT/IB2019/060828 WO2020136497A1 (en) 2018-12-26 2019-12-16 Detecting inappropriate activity in the presence of unauthenticated api requests using artificial intelligence

Publications (1)

Publication Number Publication Date
DE112019004913T5 true DE112019004913T5 (de) 2021-06-17

Family

ID=71123413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019004913.5T Pending DE112019004913T5 (de) 2018-12-26 2019-12-16 Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz

Country Status (6)

Country Link
US (1) US11303659B2 (de)
JP (1) JP7369501B2 (de)
CN (1) CN113302609B (de)
DE (1) DE112019004913T5 (de)
GB (1) GB2594217B (de)
WO (1) WO2020136497A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972740B2 (en) 2018-03-06 2021-04-06 Forcepoint, LLC Method for bandwidth reduction when streaming large format multi-frame image data
US11140190B2 (en) 2018-10-23 2021-10-05 Forcepoint, LLC Automated user module assessment
US11048611B2 (en) * 2018-11-29 2021-06-29 Forcepoint, LLC Web extension JavaScript execution control by service/daemon
US11397832B2 (en) * 2018-12-04 2022-07-26 Dhiraj Sharan Virtual data lake system created with browser-based decentralized data access and analysis
US11132973B2 (en) 2019-02-01 2021-09-28 Forcepoint, LLC System for capturing images from applications rendering video to a native platform with a graphics rendering library
GB2581996B (en) * 2019-03-07 2021-10-20 F Secure Corp Method of threat detection in a computer network security system
US10917382B2 (en) 2019-04-03 2021-02-09 Forcepoint, LLC Virtual point of presence in a country to allow for local web content
US11431743B2 (en) 2020-02-03 2022-08-30 Forcepoint, LLC Cross domain dynamic data protection intermediary message transform platform
US11425155B2 (en) * 2020-03-12 2022-08-23 The Aerospace Corporation Monitoring the integrity of a space vehicle
US10917401B1 (en) * 2020-03-24 2021-02-09 Imperva, Inc. Data leakage prevention over application programming interface
US20220164457A1 (en) * 2020-11-24 2022-05-26 International Business Machines Corporation Automatically adjusting data access policies in data analytics
US20220179908A1 (en) * 2020-12-03 2022-06-09 Institute For Information Industry Information security device and method thereof
US11652828B1 (en) 2021-01-11 2023-05-16 Wells Fargo Bank, N.A. Systems and methods for automated anomalous behavior detection and risk-scoring individuals
US11727077B2 (en) * 2021-02-05 2023-08-15 Microsoft Technology Licensing, Llc Inferring information about a webpage based upon a uniform resource locator of the webpage
CN113536302A (zh) * 2021-07-26 2021-10-22 北京计算机技术及应用研究所 一种基于深度学习的接口调用者安全评级方法
US20230073891A1 (en) * 2021-09-09 2023-03-09 Beijing Bytedance Network Technology Co., Ltd. Multifunctional application gateway for security and privacy
US20230177430A1 (en) * 2021-12-07 2023-06-08 International Business Machines Corporation Streamlining project requests for information
US20230401308A1 (en) * 2022-06-14 2023-12-14 Unbiased Security Ltd. Interactive security orchestration
CN115086075B (zh) * 2022-07-21 2022-12-27 深圳市永达电子信息股份有限公司 一种行为可信的强制访问控制方法及装置
WO2024028803A1 (en) * 2022-08-04 2024-02-08 DALVI, Suhas Ramkrishna Method and system for preventing application programming interface attacks via channel for transmission of data

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158407A1 (en) 2007-12-13 2009-06-18 Fiberlink Communications Corporation Api translation for network access control (nac) agent
US8955133B2 (en) * 2011-06-09 2015-02-10 Microsoft Corporation Applying antimalware logic without revealing the antimalware logic to adversaries
EP2737437A2 (de) 2011-07-28 2014-06-04 Au10tix Limited System und verfahren für computergestütze, auf maschinellem lernen basierte authentifizierung elektronischer dokumente einschliesslich der verwendung von linearprogrammierung zur klassifizierung
JP5825595B2 (ja) 2012-01-16 2015-12-02 Kddi株式会社 Api実行制御装置およびプログラム
US9386078B2 (en) * 2014-05-30 2016-07-05 Ca, Inc. Controlling application programming interface transactions based on content of earlier transactions
US10264016B2 (en) * 2014-07-10 2019-04-16 Metacert, Inc. Methods, systems and application programmable interface for verifying the security level of universal resource identifiers embedded within a mobile application
WO2016043734A1 (en) * 2014-09-17 2016-03-24 Hewlett Packard Enterprise Development Lp Neural network verification
US9853996B2 (en) * 2015-04-13 2017-12-26 Secful, Inc. System and method for identifying and preventing malicious API attacks
US20190258818A1 (en) * 2016-02-08 2019-08-22 Consumerinfo.Com, Inc. Smart access control system for implementing access restrictions of regulated database records based on machine learning of trends
US9762611B2 (en) * 2016-02-16 2017-09-12 Cylance Inc. Endpoint-based man in the middle attack detection using machine learning models
US10652254B2 (en) 2016-02-23 2020-05-12 Zenedge, Inc. Analyzing web application behavior to detect malicious requests
US20180018459A1 (en) * 2016-07-15 2018-01-18 Trustlook Inc. Notification of Maliciousness Categorization of Application Programs for Mobile Devices
CN106650418A (zh) 2016-12-21 2017-05-10 天津大学 基于多策略的Android访问控制系统及方法
CN107315950B (zh) 2017-05-03 2020-10-09 北京大学 一种云计算平台管理员权限最小化的自动化划分方法及访问控制方法
US10581873B2 (en) * 2017-07-11 2020-03-03 Cisco Technology, Inc. Securing micro-services
US10282241B1 (en) * 2017-07-19 2019-05-07 Vinyl Development LLC Data driven API conversion
US10887333B1 (en) * 2017-08-03 2021-01-05 Amazon Technologies, Inc. Multi-tenant threat intelligence service
US10565372B1 (en) * 2017-08-03 2020-02-18 Amazon Technologies, Inc. Subscription-based multi-tenant threat intelligence service
CN111247565B (zh) * 2017-09-06 2022-06-03 瑞士再保险有限公司 用于移动远程信息处理装置的电子日志记录和跟踪检测系统及其对应方法
US10956573B2 (en) * 2018-06-29 2021-03-23 Palo Alto Networks, Inc. Dynamic analysis techniques for applications
US10733292B2 (en) * 2018-07-10 2020-08-04 International Business Machines Corporation Defending against model inversion attacks on neural networks
US10997291B2 (en) * 2018-07-19 2021-05-04 Juniper Networks, Inc. Extending dynamic detection of malware using static and dynamic malware analyses
US11574051B2 (en) * 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
US10880328B2 (en) * 2018-11-16 2020-12-29 Accenture Global Solutions Limited Malware detection

Also Published As

Publication number Publication date
GB202110462D0 (en) 2021-09-01
WO2020136497A1 (en) 2020-07-02
US20200213336A1 (en) 2020-07-02
CN113302609B (zh) 2023-04-18
CN113302609A (zh) 2021-08-24
JP7369501B2 (ja) 2023-10-26
GB2594217B (en) 2023-01-04
US11303659B2 (en) 2022-04-12
JP2022515007A (ja) 2022-02-17
GB2594217A (en) 2021-10-20

Similar Documents

Publication Publication Date Title
DE112019004913T5 (de) Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz
US10938845B2 (en) Detection of user behavior deviation from defined user groups
EP3641225B1 (de) Richtlinien-getriebene konformität
US11238366B2 (en) Adaptive object modeling and differential data ingestion for machine learning
CN110730156A (zh) 用于异常检测的分布式机器学习
US11979422B1 (en) Elastic privileges in a secure access service edge
US9154507B2 (en) Automated role and entitlements mining using network observations
JP2020114016A (ja) マルチテナント環境のためのネットワークフローログ
US20220232024A1 (en) Detecting deviations from typical user behavior
US20220232025A1 (en) Detecting anomalous behavior of a device
Uzunov et al. Securing distributed systems using patterns: A survey
Sundaramurthy et al. A tale of three security operation centers
US11792284B1 (en) Using data transformations for monitoring a cloud compute environment
US11765249B2 (en) Facilitating developer efficiency and application quality
US20220303295A1 (en) Annotating changes in software across computing environments
US20220224707A1 (en) Establishing a location profile for a user device
DE112021003315T5 (de) Schnelles identifizieren von verstössen und angriffen in netzwerkverkehrsmustern
US10192262B2 (en) System for periodically updating backings for resource requests
Miloslavskaya Designing blockchain-based SIEM 3.0 system
Muñoz et al. Analyzing the traffic of penetration testing tools with an IDS
Zolkin et al. Research of problems of computer networks expert systems
Patil et al. KS-DDoS: Kafka streams-based classification approach for DDoS attacks
WO2023034444A1 (en) Generating user-specific polygraphs for network activity
Sai Charan Abnormal user pattern detection Using semi-structured server log file analysis
US20240106846A1 (en) Approval Workflows For Anomalous User Behavior

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence