DE102021122507A1 - Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen - Google Patents

Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen Download PDF

Info

Publication number
DE102021122507A1
DE102021122507A1 DE102021122507.8A DE102021122507A DE102021122507A1 DE 102021122507 A1 DE102021122507 A1 DE 102021122507A1 DE 102021122507 A DE102021122507 A DE 102021122507A DE 102021122507 A1 DE102021122507 A1 DE 102021122507A1
Authority
DE
Germany
Prior art keywords
user
authentication
container
computer
request processing
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
DE102021122507.8A
Other languages
English (en)
Inventor
Heng Wang
Xiao Ling CHEN
Chen Guang Liu
Wen Qi WQ Ye
Fei Tan
Lu Lu
Jing Li
Qing Yu Pei
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 DE102021122507A1 publication Critical patent/DE102021122507A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Facsimiles In General (AREA)

Abstract

Verfahren, Computerprogrammprodukte und/oder Systeme werden bereitgestellt, die die folgenden Operationen durchführen können: Empfangen einer Verbindungsanforderung von einer ersten Benutzereinheit; Erstellen eines Authentifizierungscontainers für die erste Benutzereinheit; Authentifizieren der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers; als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit erfolgreich ist, Erstellen eines ersten Benutzeranforderungs-Verarbeitungscontainers für die erste Benutzereinheit; und Verarbeiten von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein eine Verarbeitung von Benutzeranforderungen und insbesondere ein Vorsehen einer Isolierung von durch Zugriffsrechte getrennten Verbindungen von Clients beim Verarbeiten von Benutzeranforderungen, die von lokalen und/oder fernen Benutzereinheiten empfangen werden.
  • Derzeit werden immer mehr Services durch Netzwerkserver bereitgestellt. Servicebenutzer können durch verschiedene Arten von Netzwerkverbindungen zwischen Benutzereinheiten und den Netzwerkservern auf die Services zugreifen. Benutzeranforderungen können von den Benutzereinheiten gesendet und von den Netzwerkservern empfangen werden. Die Netzwerkserver können die Benutzeranforderungen verarbeiten und den Benutzereinheiten eine Antwort bereitstellen.
  • KURZDARSTELLUNG
  • Gemäß Aspekten der vorliegenden Erfindung wird ein durch einen Computer ausgeführtes Verfahren, ein Computerprogrammprodukt und/oder ein System bereitgestellt, das die folgenden Operationen (nicht unbedingt in der folgenden Reihenfolge) durchführt: Empfangen einer Verbindungsanforderung von einer ersten Benutzereinheit; Erstellen eines Authentifizierungscontainers für die erste Benutzereinheit; Authentifizieren der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers; als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit erfolgreich ist, Erstellen eines ersten Benutzeranforderungs-Verarbeitungscontainers für die erste Benutzereinheit; und Verarbeiten von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers.
  • Figurenliste
  • Durch die ausführlichere Beschreibung von einigen Ausführungsformen der vorliegenden Offenbarung in den beiliegenden Zeichnungen werden die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung offensichtlicher, wobei sich dieselbe Bezugszahl generell auf dieselben Komponenten in den Ausführungsformen der vorliegenden Offenbarung bezieht.
    • 1 stellt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
    • 2 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar;
    • 3 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
    • 4 ist eine schematische Darstellung einer Netzwerkumgebung zur Verarbeitung von Benutzeranforderungen gemäß einer Ausführungsform der vorliegenden Erfindung;
    • 5 stellt einen Ablaufplan eines beispielhaften Verfahrens zur Verarbeitung von Benutzeranforderungen, die durch einen Server ausgeführt wird, gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 6 stellt einen weiteren Ablaufplan eines beispielhaften Verfahrens zur Verarbeitung von Benutzeranforderungen gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Einige bevorzugten Ausführungsformen werden unter Bezugnahme auf die beiliegenden Zeichnungen ausführlicher beschrieben, in denen die Ausführungsformen der vorliegenden Offenbarung veranschaulicht sind. Die vorliegende Offenbarung kann jedoch auf verschiedene Arten ausgeführt werden und sollte folglich nicht als auf die hierin offenbarten Ausführungsformen beschränkt ausgelegt werden.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen weiteren Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • 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, Hauptspeicher, 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 umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • 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 der Dienste 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 Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • 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. auf dem Web beruhende E-Mail) 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, das Verarbeiten, 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 eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
    • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
    • 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 Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 1 ist eine schematische Darstellung eines Beispiels eines Cloud-Computing-Knotens 10 gezeigt. Der Cloud-Computing-Knoten 10 stellt lediglich ein Beispiel eines geeigneten Cloud-Computing-Knotens dar und soll keine Einschränkung hinsichtlich des Nutzungsumfangs oder der Funktionalität von hierin beschriebenen Ausführungsformen der Erfindung bedeuten. Ungeachtet dessen kann der Cloud-Computing-Knoten 10 ausgeführt werden und/oder jedwede der vorstehend dargelegten Funktionalität durchführen.
  • Der Cloud-Computing-Knoten 10 kann ein(en) Computersystem/Server 12 oder ein mobiles elektronisches Gerät wie beispielsweise eine Übertragungseinheit umfassen, die mit zahlreichen weiteren Universal- oder Spezial-Datenverarbeitungssystemumgebungen oder -konfigurationen betrieben werden kann. Zu Beispielen für hinlänglich bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die gegebenenfalls zur Verwendung mit dem Computersystem/Server 12 geeignet sind, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, tragbare oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten umfassen, und dergleichen.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen, wie zum Beispiel Programmmodulen, die durch ein Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter umfassen, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen ausführen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen in die Praxis umgesetzt werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die durch ein Übertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien eines Computersystems, zu denen auch Hauptspeichereinheiten gehören, befinden.
  • Wie in 1 gezeigt ist, ist das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/Servers 12 können, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 gehören, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet.
  • Der Bus 18 stellt eine oder mehrere von beliebigen Busstrukturen von mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder einen Speichercontroller, einen peripheren Bus, einen Accelerated Graphics Port und einen Prozessor- oder lokalen Bus, der beliebige einer Vielfalt an Busarchitekturen verwendet. Beispielhaft, und nicht als Einschränkung, gehören zu solchen Architekturen der Bus „Industry Standard Architecture (ISA)“, der Bus „Micro Channel Architecture (MCA)“, der Bus „Enhanced ISA (EISA)“, der lokale Bus „Video Electronics Standards Association (VESA)“ und der Bus „Peripheral Component Interconnect (PCI)“.
  • Das Computersystem/der Server 12 umfasst üblicherweise eine Vielfalt an durch ein Computersystem lesbaren Datenträgern. Bei diesen Datenträgern kann es sich um jedwede verfügbaren Datenträger handeln, auf die von dem Computersystem/Server 12 zugegriffen werden kann, und zu ihnen gehören sowohl flüchtige und nicht flüchtige als auch austauschbare und nicht austauschbare Datenträger.
  • Zum Systemspeicher 28 können durch ein Computersystem lesbare Datenträger in Form von flüchtigem Speicher, wie beispielsweise ein Direktzugriffsspeicher (RAM) 30 und/oder ein Cache 32, gehören. Das Computersystem/der Server 12 kann des Weiteren weitere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Speichermedien eines Computersystems umfassen. Lediglich als Beispiel kann das Speichersystem 34 für das Lesen von und das Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für das Lesen von und das Schreiben auf eine austauschbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für das Lesen von oder das Schreiben auf eine austauschbare, nicht flüchtige optische Platte, wie beispielsweise ein CD-ROM, DVD-ROM oder andere optische Datenträger, bereitgestellt werden. In diesen Fällen kann jedes Plattenlaufwerk durch eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie weiter dargestellt und nachstehend beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt enthalten, das über einen Satz (z.B. zumindest einen) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 40, das über einen Satz (zumindest einen) von Programmmodulen 42 verfügt, kann beispielhaft, und nicht als Einschränkung, im Speicher 28 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführung einer Netzwerkumgebung umfassen. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder die Vorgehensweisen von Ausführungsformen der Erfindung aus, die hierin beschrieben sind.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie beispielsweise einer Tastatur, einer Zeigereinheit, einem Bildschirm 24 usw.; mit einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über Ein-/Ausgabe-(E/A-)Schnittstellen 22 erfolgen. Dennoch kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Plattenlaufwerken, RAID-Systeme, Bandlaufwerke, Speichersysteme zur Datenarchivierung und/oder dergleichen.
  • Unter Bezugnahme auf 2 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie beispielsweise ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 3 ist ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Verarbeitung von Benutzeranforderungen 96.
  • Im Allgemeinen können Netzwerkserver einen nicht privilegierten untergeordneten Prozess verwenden, um Auswirkungen von Programmierungsfehlern einzudämmen und zu begrenzen. Ein Fehler in dem nicht privilegierten untergeordneten Prozess führt nicht zu einer Systembeeinträchtigung. Für einige können Sicherheitslücken in dem nicht privilegierten untergeordneten Prozess mögliche Sicherheitsauswirkungen auf die auf den Netzwerkservern gehosteten Services haben, wie beispielsweise Rechteausweitung, Erhalt sensibler Informationen, Endlosschleife und CPU-Belegung usw.
  • Durch Verwendung einiger Common Vulnerabilities and Exposures (CVEs) können Netzwerkangreifer jedoch eine Datenverarbeitungsressource von Servern verbrauchen, um böswillig eine Zugangsbehinderung (Denial of Service) zu veranlassen, um eine Benutzerberechtigung böswillig auszuweiten oder um einen unbefugten Zugriff auf die Server auszuführen.
  • Gemäß Aspekten der vorliegenden Offenbarung können Systeme und Verfahren bereitgestellt werden, um Serverressourcen zum Beispiel vor Angriffen auf Sicherheitslücken zu schützen, indem eine durch Zugriffsrechte getrennte Verbindung eines Client isoliert wird. Im Einzelnen können die Systeme und Verfahren der vorliegenden Offenbarung ein Erstellen eines isolierten Containers als Reaktion auf eine Verbindungsanforderung und ein Erstellen von Benutzerprozessen in dem Container vorsehen. Die Systeme und Verfahren der vorliegenden Offenbarung können auch ein Vorbereiten, Zuweisen und/oder Begrenzen von Datenverarbeitungsressourcen (z.B. Eingabe/Ausgabe, Datenträger, Speicher, CPU-Ressourcen usw.) für den Container vorsehen.
  • Unter Bezugnahme auf 4 ist eine beispielhafte Netzwerkumgebung 400 gemäß Ausführungsformen der vorliegenden Offenbarung dargestellt. Als ein Beispiel können sich Benutzereinheiten 401/402 mit einem Server 411 durch Datenübertragungsverbindungen verbinden. Bei den Benutzereinheiten 401/402 kann es sich um eine beliebige Art von Einheit (darunter physische oder virtuelle Einheiten) handeln, die zum Senden/Empfangen von Daten verwendet werden kann. Bei dem Server 411 kann es sich um eine beliebige Art von Einheit (darunter physische oder virtuelle Einheiten) handeln, die zum Verarbeiten von Benutzeranforderungen und Bereitstellen von Netzwerkservices verwendet werden kann. Der Server 411 kann mehrere Module aufweisen. Diese Module des Servers 411 können sich in einer gleichen physischen Einheit oder in verschiedenen physischen Einheiten befinden, die zu dem Server 411 gehört/gehören. Einige Module können sich auch in einer Einheit außerhalb des Servers 411 befinden, welche für diesen aber zugänglich ist. Die Datenübertragungsverbindungen zwischen den Benutzereinheiten 401/402 und dem Server 411 können direkt oder indirekt sein. Die Datenübertragungsverbindung kann eine drahtgebundene oder drahtlose Verbindung sein, die zum Datenaustausch zwischen Einheiten verwendet werden kann, wie beispielsweise eine Local-Area-Network-(LAN-)Verbindung, eine Wide-Area-Network-(WAN-)Verbindung, eine Internetverbindung, eine Mobilfunknetzverbindung und/oder dergleichen.
  • In einigen Ausführungsformen kann es ich bei dem Server 411 um einen Server handeln, der das OpenSSH-Protokoll, das SSH-Protokoll und/oder dergleichen unterstützt. In einigen Ausführungsformen kann es sich bei dem Server 411 auch um einen Apache-Webserver handeln. Es sollte klar sein, dass der Server 411 auch andere Arten von Netzprotokollen unterstützen kann, die jetzt bekannt oder in der Zukunft zu entwickeln sind. In einigen Ausführungsformen kann es sich bei den Benutzereinheiten 401/402 um einen Cloud-Computing-Knoten handeln, wie beispielsweise den in 1 und/oder in 2 gezeigten Cloud-Computing-Knoten 10.
  • Gemäß Aspekten der vorliegenden Offenbarung kann die Benutzereinheit 401 in einigen Ausführungsformen eine Verbindungsanforderung an den Server 411 senden. Als Beispiel kann die Verbindungsanforderung eine Nachricht oder ein Datenpaket sein. Die Verbindungsanforderung kann eine Internetprotokoll-(IP-)Adresse und/oder eine Medienzugriffssteuerungs-(MAC-)Adresse der Benutzereinheit 401 umfassen. Am Beispiel des OpenSSH-Protokolls kann die Verbindungsanforderung eine Nachricht sein, die eine SSH-(Secure-Shell-)Protokollaushandlung und eine Crypto-Aushandlung zwischen der Benutzereinheit 401 und dem Server 411 einleitet. Bei anderen Arten von Protokollen, die von dem Server 411 und der Benutzereinheit 401 unterstützt werden, kann es sich bei der Verbindungsanforderung um eine Nachricht handeln, die eine folgende Verarbeitung einleiten kann, um eine Verbindung zwischen dem Server 411 und der Benutzereinheit 401 herzustellen.
  • In einigen Ausführungsformen kann der Server 411 als Reaktion auf den Empfang der Verbindungsanforderung einen Authentifizierungsweiterleitungsprozess 421 erstellen, der mindestens zum Teil auf der empfangenen Verbindungsanforderung beruht. Als Beispiel kann es sich bei dem erstellen Authentifizierungsweiterleitungsprozess 421 um einen nicht privilegierten Prozess handeln, wenn der Server 411 feststellt, dass die empfangene Verbindungsanforderung in einem nicht privilegierten Prozess verarbeitet werden soll. Bei der Beschreibung von Grundgedanken der vorliegenden Offenbarung kann der Authentifizierungsweiterleitungsprozess 421 auch als der erste Weiterleitungsprozess bezeichnet werden. In einigen weiteren Ausführungsformen kann der Server 411 nach dem Empfang der Verbindungsanforderung den Authentifizierungsweiterleitungsprozess 421 als einen privilegierten Prozess erstellen. Als Beispiel kann eine Systemoperation oder ein Systemaufruf (wie beispielsweise „Verzweigen“) verwendet werden, um den Authentifizierungsweiterleitungsprozess 421 auf der Grundlage eines Prozesses zu erstellen, der gerade in dem Server 411 läuft. Der Prozess, der die Systemoperation oder den Systemaufruf (wie beispielsweise „Verzweigen“) einleitet, kann als übergeordneter Prozess und der neu erstellte Prozess als sein untergeordneter Prozess betrachtet werden. In einigen weiteren Ausführungsformen kann auch eine Systemoperation „Generieren“ zum Erstellen des Authentifizierungsweiterleitungsprozesses 421 verwendet werden. Es wird darauf hingewiesen, dass es sich bei den vorstehend erwähnten Systemoperationen lediglich um Beispiele handelt, um Ausführungsformen der vorliegenden Offenbarung zu beschreiben, und dass beliebige weitere Systemoperationen oder Systemaufrufe, die jetzt bekannt oder noch zu entwickeln sind, von dem Server 411 verwendet werden können, um den Authentifizierungsweiterleitungsprozess 421 zu erstellen.
  • Gemäß Aspekten der vorliegenden Offenbarung kann ein Authentifizierungscontainer 451 zum Beispiel durch eine Docker-Engine 441 des Servers 411 erstellt werden. Es sollte klar sein, dass die Abfolge des Erstellens des Authentifizierungsweiterleitungsprozesses 421 und des Erstellens des Authentifizierungscontainers 451 optional sein kann. Der Server 411 kann den Authentifizierungsweiterleitungsprozess 421 vor dem, parallel zum oder nach dem Erstellen des Authentifizierungscontainers 451 erstellen.
  • In einigen Ausführungsformen kann der Authentifizierungscontainer 451 der Benutzereinheit 401 fest zugeordnet sein. Verschiedene Benutzereinheiten können unter Verwendung von verschiedenen Authentifizierungscontainern authentifiziert werden. Zum Beispiel kann die Benutzereinheit 402 unter Verwendung eines anderen Authentifizierungscontainers authentifiziert werden, der sich von dem Authentifizierungscontainer 451 unterscheidet.
  • Ein Ressourcenmanager 431 des Servers 411 kann Datenverarbeitungsressourcen vorbereiten, die dem Authentifizierungscontainer 451 zugewiesen werden sollen. Zu den Datenverarbeitungsressourcen können, ohne darauf beschränkt zu sein, Eingabe/Ausgabe (E/A), Datenträger (Verzeichnisse), Verarbeitungseinheiten, Speicher und/oder dergleichen gehören. In einigen Ausführungsformen werden die dem Authentifizierungscontainer 451 zuzuweisenden Datenverarbeitungsressourcen von Administratoren des Servers 411 voreingestellt. In einigen Ausführungsformen können die dem Authentifizierungscontainer 451 zuzuweisenden Datenverarbeitungsressourcen auf der Grundlage von Merkmalen der Benutzereinheit 401 und/oder anderen Merkmalen, wie beispielsweise in dem Server 411 verfügbaren Datenverarbeitungsressourcen, Ressourcenanforderungen von anderen Benutzereinheiten und/oder dergleichen, festgestellt werden. In einigen Ausführungsformen können Container voneinander isoliert werden und ihre eigene Software, Bibliotheken, Dateien und/oder dergleichen haben.
  • In einigen weiteren Ausführungsformen kann der Authentifizierungscontainer 451 unter einer oder mehreren Benutzereinheiten (wie beispielsweise den Benutzereinheiten 401/402) freigegeben werden. Wenn erkannt wird, dass ein verfügbarer Authentifizierungscontainer in dem Server 411 vorhanden ist (wie beispielsweise ein Authentifizierungscontainer, der in dem Server 411 für die Benutzereinheit 402 erstellt wurde), kann der verfügbare Authentifizierungscontainer abgerufen und für die Benutzereinheit 401 angewendet werden. In diesem Beispiel kann das Erstellen des Authentifizierungscontainers 451 durch die Docker-Engine 441 ein Abrufen des verfügbaren Authentifizierungscontainers umfassen, wobei die abgerufene verfügbare Authentifizierung als der Authentifizierungscontainer 451 bezeichnet wird.
  • Nach dem Erstellen des Authentifizierungscontainers 451 kann dem Authentifizierungsweiterleitungsprozess 421 eine zu dem Authentifizierungscontainer 451 gehörende Kennung bereitgestellt werden. Als Beispiel kann die Kennung des Authentifizierungscontainers 451 eine Portnummer, ein Universally Unique Identifier (UUD), eine Seriennummer, ein Tag und/oder dergleichen sein, die/das zu dem Authentifizierungscontainer 451 gehört. Es sollte klar sein, dass auch weitere Arten von Kennungen in Ausführungsformen der vorliegenden Erfindung angewendet werden können. In einigen Ausführungsformen kann der Authentifizierungscontainer 451 einer Portnummer des Servers 411 zugeordnet werden und die Portnummer des Servers 411 kann auch als eine Kennung des Authentifizierungscontainers 451 verwendet werden. Der Authentifizierungsweiterleitungsprozess 421 kann dann die zu dem Authentifizierungscontainer 451 gehörende Kennung verwenden, um aus dem Authentifizierungscontainer abgerufene Daten an eine Einheit außerhalb des Servers 411 weiterzuleiten und/oder um von einer Einheit außerhalb des Servers 411 empfangene Daten an den Authentifizierungscontainer weiterzuleiten. In einigen Ausführungsformen kann der Authentifizierungsweiterleitungsprozess 421 unter verschiedenen Authentifizierungscontainern freigegeben werden und der Authentifizierungsweiterleitungsprozess 421 kann Kennungen von Authentifizierungscontainern abrufen, die jeweils für verschiedene Benutzereinheiten erstellt wurden.
  • Gemäß Aspekten der vorliegenden Offenbarung kann die Benutzereinheit 401 unter Verwendung des Authentifizierungscontainers 451 authentifiziert werden. Der Authentifizierungscontainer 451 kann dem Authentifizierungsweiterleitungsprozess 421 eine Authentifizierungsanforderung bereitstellen und dann kann der Authentifizierungsweiterleitungsprozess 421 die Authentifizierungsanforderung an die Benutzereinheit 401 weiterleiten. In einem Beispiel kann die Authentifizierungsanforderung durch den Authentifizierungsweiterleitungsprozess 421 abgerufen werden und der Authentifizierungsweiterleitungsprozess 421 kann die Authentifizierungsanforderung der zu dem Authentifizierungscontainer 451 gehörenden Kennung zuordnen. Die Authentifizierungsanforderung kann an die Benutzereinheit 401 gesendet werden, um die Benutzereinheit 401 um eine Bereitstellung von Authentifizierungsmaterial zu ersuchen, wie beispielsweise einem Konto und/oder Kennwort der Benutzereinheit 401 oder dergleichen.
  • Die Benutzereinheit 401 kann eine Authentifizierungsantwort an den Server 411 senden und die Authentifizierungsantwort kann unter Verwendung des Authentifizierungsweiterleitungsprozesses 421 empfangen werden. Der Authentifizierungsweiterleitungsprozess 421 kann die empfangene Authentifizierungsantwort der zu dem Authentifizierungscontainer 451 gehörenden Kennung zuordnen. Der Authentifizierungsweiterleitungsprozess 421 kann die Authentifizierungsantwort dann dem Authentifizierungscontainer 451 auf der Grundlage der Kennung des Authentifizierungscontainers 451, die der empfangenen Authentifizierungsantwort zugeordnet wurde, liefern. In einem Beispiel kann der Authentifizierungsweiterleitungsprozess 421 die Zuordnung der Portnummer des Servers 411 zu dem Authentifizierungscontainer 451 überwachen und die empfangene Authentifizierungsantwort dann dem Authentifizierungscontainer 451 auf der Grundlage der Portnummer des Servers 411 liefern.
  • In einigen Ausführungsformen kann der Authentifizierungscontainer 451 die Benutzereinheit 401 auf der Grundlage der empfangenen Authentifizierungsantwort authentifizieren. Wenn die Authentifizierung für die Benutzereinheit 401 erfolgreich ist (beispielsweise stellt die Benutzereinheit 401 ein gültiges Konto und/oder Kennwort bereit), kann die Benutzereinheit 401 für einen Zugriff auf durch den Server 411 bereitgestellte Services autorisiert werden. Wenn die Authentifizierung für die Benutzereinheit 401 fehlschlägt, wird die Benutzereinheit 401 nicht für einen Zugriff auf die Services autorisiert.
  • Gemäß Aspekten der vorliegenden Offenbarung kann als Reaktion darauf, dass die Authentifizierung für die erste Benutzereinheit erfolgreich ist, ein Benutzeranforderungs-Verarbeitungscontainer 461 durch die Docker-Engine 441 für die Benutzereinheit 401 erstellt werden. Benutzeranforderungen von der Benutzereinheit 401 können in dem Benutzeranforderungs-Verarbeitungscontainer 461 verarbeitet werden. Als Beispiel können zu den Benutzeranforderungen von der Benutzereinheit 401 Anforderungen gehören, die von der Benutzereinheit 401 gesendet werden, um auf durch den Server 411 bereitgestellte Services und/oder Dateien zuzugreifen.
  • Der Ressourcenmanager 431 kann Datenverarbeitungsressourcen vorbereiten, die dem Benutzeranforderungs-Verarbeitungscontainer 461 zugewiesen werden sollen. Zu den Datenverarbeitungsressourcen können, ohne darauf beschränkt zu sein, Eingabe/Ausgabe (E/A), Datenträger (Verzeichnisse), Verarbeitungseinheiten, Speicher usw. gehören. In einigen Ausführungsformen werden die dem Benutzeranforderungs-Verarbeitungscontainer 461 zuzuweisenden Datenverarbeitungsressourcen von Administratoren des Servers 411 voreingestellt. In einigen Ausführungsformen können die dem Benutzeranforderungs-Verarbeitungscontainer 461 zuzuweisenden Datenverarbeitungsressourcen auf der Grundlage von Merkmalen der Benutzereinheit 401 und/oder anderen Merkmalen, wie beispielsweise in dem Server 411 verfügbaren Datenverarbeitungsressourcen, Ressourcenanforderungen von anderen Benutzereinheiten und/oder dergleichen, festgestellt werden. Als Beispiel können dem Benutzeranforderungs-Verarbeitungscontainer 461 für die Benutzereinheit 401 ein Stammverzeichnis sowie Verzeichnisse (wie beispielsweise /Home/User1/.ssh/ oder dergleichen) zugewiesen werden.
  • In einigen Ausführungsformen kann der Server 411 einen Benutzeranforderungs-Weiterleitungsprozess 422 vor dem, parallel zum oder nach dem Erstellen des Benutzeranforderungs-Verarbeitungscontainers 461 erstellen. Bei der Beschreibung von Grundgedanken der vorliegenden Offenbarung kann der Benutzeranforderungs-Weiterleitungsprozess 422 auch als der zweite Weiterleitungsprozess bezeichnet werden. Als Beispiel kann eine Systemoperation oder ein Systemaufruf (wie beispielsweise „Verzweigen“) verwendet werden, um den Benutzeranforderungs-Weiterleitungsprozess 422 auf der Grundlage eines Prozesses zu erstellen, der gerade in dem Server 411 läuft. In einigen weiteren Ausführungsformen kann auch eine Systemoperation „Generieren“ zum Erstellen des Benutzeranforderungs-Weiterleitungsprozesses 422 verwendet werden. Es sollte klar sein, dass es sich bei den vorstehend erwähnten Systemoperationen lediglich um Beispiele handelt, um Ausführungsformen der vorliegenden Erfindung zu beschreiben, und dass eine beliebige weitere Systemoperation oder ein beliebiger weiterer Systemaufruf, die bzw. der jetzt bekannt oder noch zu entwickeln ist, von dem Server 411 verwendet werden kann, um den Benutzeranforderungs-Weiterleitungsprozess 422 zu erstellen.
  • Nach dem Erstellen des Authentifizierungscontainers 461 kann dem Benutzeranforderungs-Weiterleitungsprozess 422 eine zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehörende Kennung bereitgestellt werden. Als Beispiel kann die Kennung des Benutzeranforderungs-Verarbeitungscontainers 461 eine Portnummer, ein Universally Unique Identifier (UUD), eine Seriennummer, ein Tag und/oder dergleichen sein, die/das zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehört. Es sollte klar sein, dass auch weitere Arten von Kennungen in Ausführungsformen der vorliegenden Erfindung angewendet werden können. In einigen Ausführungsformen kann der Benutzeranforderungs-Verarbeitungscontainer 461 einer Portnummer des Servers 411 zugeordnet werden und die Portnummer des Servers 411 kann auch als eine Kennung des Benutzeranforderungs-Verarbeitungscontainers 461 verwendet werden. Der Benutzeranforderungs-Weiterleitungsprozess 422 kann die zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehörende Kennung dann verwenden, um durch den Benutzeranforderungs-Verarbeitungscontainer 461 bereitgestellte Datenpakete an die Benutzereinheit 401 weiterzuleiten und/oder um dem Benutzeranforderungs-Verarbeitungscontainer 461 von der Benutzereinheit 401 empfangene Datenpakete zu liefern. In einigen Ausführungsformen kann der Benutzeranforderungs-Weiterleitungsprozess 422 unter verschiedenen Benutzeranforderungs-Verarbeitungscontainern freigegeben werden und der Benutzeranforderungs-Weiterleitungsprozess 422 kann Kennungen von Benutzeranforderungs-Verarbeitungscontainern abrufen, die jeweils für verschiedene Benutzereinheiten erstellt wurden.
  • In einigen Ausführungsformen können, wenn die Benutzereinheit 401 Zugriff auf einen Service und/oder Dateien anfordert, der bzw. die von dem Server bereitgestellt wird/werden, die Benutzeranforderungen von der Benutzereinheit 401 unter Verwendung des Benutzeranforderungs-Weiterleitungsprozesses 422 empfangen werden. Der Benutzeranforderungs-Weiterleitungsprozess 422 kann die empfangenen Benutzeranforderungen der zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehörenden Kennung zuordnen. Der Benutzeranforderungs-Weiterleitungsprozess 422 kann die Benutzeranforderungen dann dem Benutzeranforderungs-Verarbeitungscontainer 461 auf der Grundlage der zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehörenden Kennung liefern. In einem Beispiel kann der Benutzeranforderungs-Weiterleitungsprozess 422 die Zuordnung der Portnummer des Servers 411 zu dem Benutzeranforderungs-Verarbeitungscontainer 461 überwachen und die empfangenen Benutzeranforderungen dann dem Benutzeranforderungs-Verarbeitungscontainer 461 auf der Grundlage der Portnummer des Servers 411 liefern. Die Benutzeranforderungen können in dem Benutzeranforderungs-Verarbeitungscontainer 461 verarbeitet werden. Die Benutzereinheit 401 kann nur auf Services und/oder Dateien zugreifen, die in den Ressourcen des Benutzeranforderungs-Verarbeitungscontainers 461 enthalten sind, welche durch den Ressourcenmanager 431 vorbereitet werden.
  • Der Benutzeranforderungs-Verarbeitungscontainer 461 kann von der Einheit 401 empfangene Benutzeranforderungen verarbeiten und dem Benutzeranforderungs-Weiterleitungsprozess 422 Antworten für die Benutzeranforderungen bereitstellen. In diesem Beispiel können die Antworten durch den Benutzeranforderungs-Weiterleitungsprozess 422 abgerufen werden. Der Benutzeranforderungs-Weiterleitungsprozess 422 kann die Antworten der zu dem Benutzeranforderungs-Verarbeitungscontainer 461 gehörenden Kennung zuordnen. In einigen Ausführungsformen kann ein nicht privilegierter Prozess in dem Benutzeranforderungs-Verarbeitungscontainer 461 gebildet werden, um die Benutzeranforderungen zu verarbeiten und die Antworten bereitzustellen. Dann kann der Benutzeranforderungs-Weiterleitungsprozess 422 die durch den Benutzeranforderungs-Verarbeitungscontainer 461 bereitgestellten Antworten an die Benutzereinheit 401 weiterleiten.
  • Gemäß Aspekten der vorliegenden Offenbarung ist der Benutzeranforderungs-Verarbeitungscontainer 461 der Benutzereinheit 401 fest zugeordnet und von einer weiteren Benutzereinheit (z.B. der Benutzereinheit 402) empfangene Benutzeranforderungen werden in einem weiteren Benutzeranforderungs-Verarbeitungscontainer (wie beispielsweise dem Benutzeranforderungs-Verarbeitungscontainer 462) verarbeitet, der sich von dem Benutzeranforderungs-Verarbeitungscontainer 461 unterscheidet. Als Beispiel kann, wenn die Benutzereinheit 402 als gültig authentifiziert wird, ein Benutzeranforderungs-Verarbeitungscontainer 462 für die Benutzereinheit 402 erstellt werden, um Benutzeranforderungen von der Benutzereinheit 402 zu verarbeiten. Die Benutzeranforderungs-Verarbeitungscontainer 461 und 462 können unterschiedliche Stammverzeichnisse sowie Verzeichnisse haben. Als Beispiel werden zugriffsbeschränkte, dem Benutzeranforderungs-Verarbeitungscontainer 461 zugewiesene Ressourcen nicht dem Benutzeranforderungs-Verarbeitungscontainer 462 zugewiesen. Zum Beispiel kann „/Home/User1/.ssh/“ als nur für die Benutzereinheit 401 zugänglich und „/Home/User2/.ssh/“ als nur für die Benutzereinheit 402 zugänglich festgelegt werden. Folglich kann die Benutzereinheit 401 nicht auf Verzeichnisse zugreifen, die nur für die Benutzereinheit 402 autorisiert sind (z.B. „/Home/User2/.ssh/“), und die Benutzereinheit 402 kann nicht auf Verzeichnisse zugreifen, die nur für die Benutzereinheit 401 autorisiert sind (z.B. „/Home/User1/.ssh/“). Selbst wenn ein böswilliger Benutzer sein Zugriffsrecht ausweitet, zum Beispiel durch Sicherheitslücken, wirkt sich dies daher im Allgemeinen nicht auf den Hostserver und andere Verbindungen und Benutzer aus. Ferner kann die Benutzereinheit 401 selbst im Fall einer Ausweitung bis zum Stammverzeichnis, zum Beispiel durch die Verwendung von einigen CVEs, nur auf das Stammverzeichnis des Benutzeranforderungs-Verarbeitungscontainers 461 und nicht auf das Stammverzeichnis des Servers 411 zugreifen.
  • Gemäß Aspekten der vorliegenden Offenbarung kann der Server 411 einen isolierten Benutzeranforderungs-Verarbeitungscontainer 461 erstellen, wenn eine Trennung von Zugriffsrechten stattfindet, kann dann einen Prozess oder Prozesse in dem Benutzeranforderungs-Verarbeitungscontainer 461 erstellen und dem Benutzeranforderungs-Verarbeitungscontainer 461 zugewiesene Ressourcen wie beispielsweise E/A, Datenträger, Speicher, CPU-Ressourcen und/oder dergleichen begrenzen. Die Verbindung zwischen der Benutzereinheit 401 und dem Prozess in dem Benutzeranforderungs-Verarbeitungscontainer 461 kann dann hergestellt werden. Daher können Ausführungsformen der vorliegenden Offenbarung für einen wirksameren Schutz von Netzwerkservern, zum Beispiel vor Angriffen auf Sicherheitslücken, sorgen.
  • 5 zeigt einen Ablaufplan von Operationen 500 für eine Verarbeitung von Benutzeranforderungen, die zum Beispiel durch einen Server (z.B. den Server 411 von 4 usw.) gemäß einer Ausführungsform der vorliegenden Offenbarung ausgeführt werden kann. Es sei angemerkt, dass die Operationen 500 zum Zweck der Erörterung veranschaulichend sind und keine Einschränkung hinsichtlich des Nutzungsumfangs oder der Funktionalität von Ausführungsformen der vorliegenden Erfindung bedeuten sollen.
  • Die Operationen beginnen am Block 510, wo der Server eine Verbindungsanforderung von einer Benutzereinheit empfängt. Die Operationen schalten zum Block 512, wo der Server als Reaktion auf den Empfang der Verbindungsanforderung einen Authentifizierungsweiterleitungsprozess erstellen kann, der mindestens zum Teil auf der empfangenen Verbindungsanforderung beruht. Die Operationen schalten zum Block 514, wo der Server einen Authentifizierungscontainer für die Benutzereinheit erstellen kann. Es sollte klar sein, dass die beschriebene Abfolge der Operationen am Block 512 und am Block 514 in einigen Ausführungsformen unterschiedlich sein kann. In alternativen Ausführungsformen kann der Server den Authentifizierungsweiterleitungsprozess vor dem, parallel zum oder nach dem Erstellen des Authentifizierungscontainers erstellen. Der Authentifizierungsweiterleitungsprozess kann eine zu dem Authentifizierungscontainer gehörende Kennung verwenden, um Daten aus dem Authentifizierungscontainer an die Benutzereinheit weiterzuleiten und/oder um Daten von der Benutzereinheit an den Authentifizierungscontainer weiterzuleiten.
  • Die Benutzereinheit kann dann unter Verwendung des erstellten Authentifizierungscontainers authentifiziert werden. Wenn die Authentifizierung für die Benutzereinheit am Block 516 fehlschlägt, können die Operationen enden, die Anforderungen von der Benutzereinheit können zurückgewiesen werden und die Benutzereinheit wird nicht für einen Zugriff auf durch den Server bereitgestellte Services und/oder Dateien autorisiert.
  • Wenn die Authentifizierung für die Benutzereinheit am Block 516 erfolgreich ist, schalten die Operationen zum Block 518, wo der Server einen Benutzeranforderungs-Weiterleitungsprozess für die Benutzereinheit erstellen kann. Die Operationen schalten zum Block 520, wo der Server einen Benutzeranforderungs-Verarbeitungscontainer für die Benutzereinheit erstellen kann. Es sollte klar sein, dass die beschriebene Abfolge der Operationen am Block 518 und am Block 520 in einigen Ausführungsformen unterschiedlich sein kann. In alternativen Ausführungsformen kann der Server den Benutzeranforderungs-Weiterleitungsprozess vor dem, parallel zum oder nach dem Erstellen des Benutzeranforderungs-Verarbeitungscontainers erstellen. In einigen Ausführungsformen kann der Benutzeranforderungs-Verarbeitungscontainer der Benutzereinheit fest zugeordnet sein. In diesen Ausführungsformen können von einer weiteren, anderen Benutzereinheit empfangene Benutzeranforderungen in einem weiteren Benutzeranforderungs-Verarbeitungscontainer verarbeitet werden, der sich von dem am Block 520 erstellten Benutzeranforderungs-Verarbeitungscontainer unterscheidet.
  • Die Operationen schalten zum Block 522, wo der Server von der Benutzereinheit empfangene Benutzeranforderungen unter Verwendung des erstellten Benutzeranforderungs-Verarbeitungscontainers verarbeiten kann. Der Benutzeranforderungs-Weiterleitungsprozess kann eine zu dem Benutzeranforderungs-Verarbeitungscontainer gehörende Kennung verwenden, um von der Benutzereinheit empfangene Benutzeranforderungen an den Benutzeranforderungs-Verarbeitungscontainer weiterzuleiten und/oder um durch den Benutzeranforderungs-Verarbeitungscontainer bereitgestellte Antworten für die Benutzeranforderung an die Benutzereinheit weiterzuleiten. In einigen Ausführungsformen kann ein nicht privilegierter Prozess in dem Benutzeranforderungs-Verarbeitungscontainer gebildet werden, um die Benutzeranforderungen zu verarbeiten und die Antworten bereitzustellen.
  • Wenn die Benutzeranforderungen von der Benutzereinheit am Block 524 abgeschlossen sind, enden die Operationen. Wenn die Benutzeranforderungen von der Benutzereinheit am Block 524 nicht abgeschlossen sind, können die Operationen für weitere zu verarbeitende Benutzeranforderungen zurück zum Block 522 schalten.
  • 6 zeigt einen Ablaufplan von Operationen 600 zur Verarbeitung von Benutzeranforderungen gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Operationen 600 können zum Beispiel durch das Computersystem/den Server 12 von 1, durch den Server 411 von 4 oder durch eine weitere in einer Netzwerkumgebung bereitgestellte Datenverarbeitungseinheit ausgeführt werden. Es sei angemerkt, dass die Operationen 600 lediglich veranschaulichend sind und keine Einschränkung hinsichtlich des Nutzungsumfangs oder der Funktionalität von Ausführungsformen der vorliegenden Erfindung bedeuten sollen.
  • Die Operationen beginnen am Block 610, wo ein Datenverarbeitungssystem eine Verbindungsanforderung von einer ersten Benutzereinheit empfängt. Die Operationen schalten zum Block 612, wo das Datenverarbeitungssystem einen Authentifizierungscontainer für die erste Benutzereinheit erstellt. Die Operationen schalten zum Block 614, wo das Datenverarbeitungssystem versuchen kann, die erste Benutzereinheit unter Verwendung des Authentifizierungscontainers zu authentifizieren. Als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit am Block 614 erfolgreich ist, schalten die Operationen zum Block 616, wo das Datenverarbeitungssystem einen ersten Benutzeranforderungs-Verarbeitungscontainer für die erste Benutzereinheit erstellen kann. Die Operationen schalten zum Block 618, wo das Datenverarbeitungssystem von der ersten Benutzereinheit empfangene Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers verarbeiten kann.
  • Gemäß Aspekten der vorliegenden Offenbarung kann der erstellte erste Benutzeranforderungs-Verarbeitungscontainer in einigen Ausführungsformen der ersten Benutzereinheit fest zugeordnet sein. Von einer zweiten Benutzereinheit empfangene Benutzeranforderungen können in einem zweiten Benutzeranforderungs-Verarbeitungscontainer verarbeitet werden, der sich von dem ersten Benutzeranforderungs-Verarbeitungscontainer unterscheidet.
  • Es sei angemerkt, dass die zur Verarbeitung von Benutzeranforderungen gehörenden Operationen gemäß Ausführungsformen der vorliegenden Offenbarung durch das Computersystem/den Server 12 von 1 ausgeführt werden könnten.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen Integrationsstufe technischer Details handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übermittelte elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, zustandssetzende Daten, Konfigurationsdaten für eine integrierte Schaltung oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt durchgeführt, gleichzeitig ausgeführt, im Wesentlichen gleichzeitig ausgeführt, in einer sich teilweise oder ganz zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Änderungen und Varianten sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlicher Technologien am besten zu erklären bzw. um anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (12)

  1. Durch einen Computer ausgeführtes Verfahren, das umfasst: Empfangen einer Verbindungsanforderung von einer ersten Benutzereinheit; Erstellen eines Authentifizierungscontainers für die erste Benutzereinheit; Authentifizieren der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers; als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit erfolgreich ist, Erstellen eines ersten Benutzeranforderungs-Verarbeitungscontainers für die erste Benutzereinheit; und Verarbeiten von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers.
  2. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, wobei der erste Benutzeranforderungs-Verarbeitungscontainer der ersten Benutzereinheit fest zugeordnet ist.
  3. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, das des Weiteren umfasst: Erstellen eines ersten Weiterleitungsprozesses; und Bereitstellen einer Kennung, die zu dem Authentifizierungscontainer gehört, für den ersten Weiterleitungsprozess.
  4. Durch einen Computer ausgeführtes Verfahren nach Anspruch 3, wobei ein Authentifizieren der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers des Weiteren aufweist: Weiterleiten einer durch den Authentifizierungscontainer bereitgestellten Authentifizierungsanforderung an die erste Benutzereinheit unter Verwendung des ersten Weiterleitungsprozesses; Empfangen einer Authentifizierungsantwort von der ersten Benutzereinheit unter Verwendung des ersten Weiterleitungsprozesses; und Bereitstellen der Authentifizierungsantwort für den Authentifizierungscontainer auf der Grundlage der zu dem Authentifizierungscontainer gehörenden Kennung.
  5. Durch einen Computer ausgeführtes Verfahren nach Anspruch 1, das des Weiteren umfasst: Erstellen eines zweiten Weiterleitungsprozesses; und Bereitstellen einer Kennung des ersten Benutzeranforderungs-Verarbeitungscontainers für den zweiten Weiterleitungsprozess.
  6. Durch einen Computer ausgeführtes Verfahren nach Anspruch 5, wobei ein Verarbeiten von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers des Weiteren aufweist: Empfangen der Benutzeranforderungen von der ersten Benutzereinheit unter Verwendung des zweiten Weiterleitungsprozesses; Bereitstellen der Benutzeranforderungen für den ersten Benutzeranforderungs-Verarbeitungscontainer auf der Grundlage der zu dem ersten Benutzeranforderungs-Verarbeitungscontainer gehörenden Kennung; und Weiterleiten von durch den ersten Benutzeranforderungs-Verarbeitungscontainer bereitgestellten Antworten für die Benutzeranforderungen an die erste Benutzereinheit unter Verwendung des zweiten Weiterleitungsprozesses.
  7. Durch einen Computer ausgeführtes Verfahren nach Anspruch 6, wobei dem ersten Benutzeranforderungs-Verarbeitungscontainer zugewiesene Datenverarbeitungsressourcen auf der Grundlage von Merkmalen der ersten Benutzereinheit festgestellt werden.
  8. Durch einen Computer ausgeführtes Verfahren nach Anspruch 7, wobei dem ersten Benutzeranforderungs-Verarbeitungscontainer zugewiesene zugriffsbeschränkte Ressourcen einem für eine zweite Benutzereinheit erstellten Benutzeranforderungs-Verarbeitungscontainer nicht zugewiesen werden.
  9. Durch einen Computer ausgeführtes Verfahren nach Anspruch 6, wobei die Antworten für die Benutzeranforderungen in einem nicht privilegierten Prozess in dem Benutzeranforderungs-Verarbeitungscontainer bereitgestellt werden, welcher zur Verarbeitung der Benutzeranforderungen gebildet wurde.
  10. Von einem Computer ausgeführtes Verfahren nach Anspruch 6, wobei es sich bei dem zweiten Weiterleitungsprozess um einen nicht privilegierten Prozess handelt.
  11. Computersystem, das aufweist: einen oder mehrere Prozessoren; und einen durch einen Computer lesbaren Speicher, der mit den Prozessoren verbunden ist, wobei der durch einen Computer lesbare Speicher Anweisungen enthält, die, wenn sie von den Prozessoren ausgeführt werden, Operationen des Empfangens einer Verbindungsanforderung von einer ersten Benutzereinheit; Erstellens eines Authentifizierungscontainers für die erste Benutzereinheit; Authentifizierens der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers; als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit erfolgreich ist, Erstellens eines ersten Benutzeranforderungs-Verarbeitungscontainers für die erste Benutzereinheit; und Verarbeitens von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers durchführen.
  12. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium aufweist, auf dem gespeichert sind: Programmanweisungen, die für ein Empfangen einer Verbindungsanforderung von einer ersten Benutzereinheit programmiert sind; Programmanweisungen, die für ein Erstellen eines Authentifizierungscontainers für die erste Benutzereinheit programmiert sind; Programmanweisungen, die für ein Authentifizieren der ersten Benutzereinheit unter Verwendung des Authentifizierungscontainers programmiert sind; Programmanweisungen, die für ein Erstellen, als Reaktion darauf, dass eine Authentifizierung für die erste Benutzereinheit erfolgreich ist, eines ersten Benutzeranforderungs-Verarbeitungscontainers für die erste Benutzereinheit programmiert sind; und Programmanweisungen, die für ein Verarbeiten von von der ersten Benutzereinheit empfangenen Benutzeranforderungen unter Verwendung des ersten Benutzeranforderungs-Verarbeitungscontainers programmiert sind.
DE102021122507.8A 2020-09-30 2021-08-31 Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen Pending DE102021122507A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/037,953 US11368459B2 (en) 2020-09-30 2020-09-30 Providing isolated containers for user request processing
US17/037,953 2020-09-30

Publications (1)

Publication Number Publication Date
DE102021122507A1 true DE102021122507A1 (de) 2022-03-31

Family

ID=78333028

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021122507.8A Pending DE102021122507A1 (de) 2020-09-30 2021-08-31 Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen

Country Status (4)

Country Link
US (1) US11368459B2 (de)
JP (1) JP2022058265A (de)
DE (1) DE102021122507A1 (de)
GB (1) GB2603238B (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022230997A1 (ja) 2021-04-28 2022-11-03 キヤノン株式会社 トナーおよび二成分現像剤

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
JP4552294B2 (ja) * 2000-08-31 2010-09-29 ソニー株式会社 コンテンツ配信システム、コンテンツ配信方法、および情報処理装置、並びにプログラム提供媒体
SG11201403482TA (en) * 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
US20130212653A1 (en) * 2012-02-09 2013-08-15 Indigo Identityware Systems and methods for password-free authentication
US9282100B2 (en) 2013-12-02 2016-03-08 Cisco Technology, Inc. Privilege separation
US11275861B2 (en) 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
US9380058B1 (en) * 2014-12-22 2016-06-28 University Of South Florida Systems and methods for anonymous authentication using multiple devices
US10756995B2 (en) 2015-07-27 2020-08-25 Datagrid Systems, Inc. Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques
US10706145B2 (en) 2015-10-01 2020-07-07 Twistlock, Ltd. Runtime detection of vulnerabilities in software containers
US9942042B1 (en) * 2016-03-18 2018-04-10 EMC IP Holding Company LLC Key containers for securely asserting user authentication
US10554663B2 (en) * 2017-03-23 2020-02-04 Ca, Inc. Self-destructing smart data container
IT201700073534A1 (it) 2017-06-30 2018-12-30 Mario Gaia Tappo a vite per bottiglie di vino
US10587697B2 (en) * 2018-03-21 2020-03-10 Salesforce.Com, Inc. Application-specific session authentication
US10360367B1 (en) * 2018-06-07 2019-07-23 Capital One Services, Llc Multi-factor authentication devices
CN110099044A (zh) 2019-03-28 2019-08-06 江苏通付盾信息安全技术有限公司 云主机安全检测系统及方法

Also Published As

Publication number Publication date
GB2603238B (en) 2023-04-05
JP2022058265A (ja) 2022-04-11
US20220103550A1 (en) 2022-03-31
US11368459B2 (en) 2022-06-21
GB202113552D0 (en) 2021-11-10
GB2603238A (en) 2022-08-03

Similar Documents

Publication Publication Date Title
DE102016222034A1 (de) Dynamische Kennworterzeugung
DE112020004699B4 (de) Schützen von arbeitslasten in kubernetes
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112018003006T5 (de) Erkennung und entschärfung von angriffen von aussen bei der datenverarbeitung
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020000535B4 (de) Fehlerbehebung innerhalb und außerhalb der eigenen Räumlichkeiten
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112020000223T5 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE112021002099T5 (de) Hypervisor-geschützter schlüssel
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112020005526T5 (de) Reservieren eines oder mehrerer sicherheitsmodule für einen sicheren gast
DE112020005373T5 (de) Mechanismus zur authentifizierung durch nutzung von positionsbestätigung
DE112016000790T5 (de) Instanziierung von Broadcast-Verschlüsselungsschemata zur Laufzeit
DE112022002736T5 (de) Übertragen von aufgabendaten zwischen edge-einheiten beim edge computing
DE112021005364T5 (de) Abwehr von gezielten datenbankangriffen durch dynamische generierung von honeypot-datenbankantworten
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs

Legal Events

Date Code Title Description
R012 Request for examination validly filed