DE112020003578B4 - Mindern von bedrohungen von arbeitslasten auf grundlage von containern - Google Patents

Mindern von bedrohungen von arbeitslasten auf grundlage von containern Download PDF

Info

Publication number
DE112020003578B4
DE112020003578B4 DE112020003578.6T DE112020003578T DE112020003578B4 DE 112020003578 B4 DE112020003578 B4 DE 112020003578B4 DE 112020003578 T DE112020003578 T DE 112020003578T DE 112020003578 B4 DE112020003578 B4 DE 112020003578B4
Authority
DE
Germany
Prior art keywords
containers
active
pool
container
contamination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112020003578.6T
Other languages
English (en)
Other versions
DE112020003578T5 (de
Inventor
Nathaniel Gibbs
Michael TREADWAY
Matthew Mitchell Lobbes
Brian James Snitzer
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.)
Kyndryl Inc
Original Assignee
Kyndryl Inc
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 Kyndryl Inc filed Critical Kyndryl Inc
Publication of DE112020003578T5 publication Critical patent/DE112020003578T5/de
Application granted granted Critical
Publication of DE112020003578B4 publication Critical patent/DE112020003578B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Durch einen Computer (400) umgesetztes Verfahren, das aufweist:Erkennen (302) eines Angriffs auf eine Hosting-Umgebung (100, 104) von Containern, wobei der Angriff eine potenzielle Kontaminierungsbedrohung (110) für gehostete Container der Hosting-Umgebung (100, 104) von Containern darstellt, wobei die Hosting-Umgebung (100, 104) von Containern einen Pool (208) von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool (206) von Reserve-Containern mit Reserve-Containern umfasst, die für eine Bereitstellung in dem Pool (208) von aktiven Containern bereit sind;Identifizieren (304), auf Grundlage des Erkennens (302) des Angriffs, einer Zeit bis zur Kontaminierung, wobei die Zeit bis zur Kontaminierung als Zeitraum für einen aktiven Container des Pools (208) von aktiven Containern angenommen wird, um infolge des Angriffs kontaminiert zu werden;Bereitstellen (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit einer bestimmten Rate, die auf der identifizierten Zeit bis zu Kontaminierung beruht; undkontinuierliches Entfernen (310), aus dem Pool (208) von aktiven Containern, von aktiven Containern, die die Arbeitslast bedienen, und gleichzeitiges Bereitstellen von Reserve-Containern aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern, um die entfernten aktiven Container zu ersetzen und ein Bedienen der Arbeitslast zu übernehmen.

Description

  • HINTERGRUND
  • Container sind virtuelle Umgebungen, die für eine bzw. mehrere gekapselte Umgebungen Portierbarkeit bereitstellen. Verschiedene Virtualisierungsumgebungen auf Container-Grundlage sind verfügbar und werden weit verbreitet verwendet. Ein Container wird durch eine Container-Engine oder einen Host, die bzw. der eine Laufzeitumgebung für das Abbild bereitstellt, aus einem Container-Abbild instantiiert. Ähnlich wie eine virtuelle Maschine kann ein Container im Bedarfsfall angehalten und gestartet werden. Container sind im Allgemeinen kompakter als virtuelle Maschinen. Eine typische Praxis besteht darin, in einem einzelnen Container nur auszuführen, was für ein Ausführen von einer oder mehreren gewünschten Anwendungen erforderlich ist.
  • Die US 2018 / 0 027 009 A1 offenbart Systeme, Verfahren und computerlesbare Speichermedien zur Bestimmung von Richtlinien zur Bedrohungsabschwächung und zum Einsatz von getesteten Sicherheitskorrekturen. Einige Beispiele umfassen das Sammeln von Bedrohungsdaten, das Identifizieren einer Sicherheitsbedrohung, das Identifizieren eines Anwendungscontainers, der von der Sicherheitsbedrohung betroffen ist, das Bestimmen einer Bedrohungsstufe für die Sicherheitsbedrohung des Anwendungscontainers, das Anwenden einer Bedrohungsminderungsrichtlinie auf den betroffenen Anwendungscontainer, das Erzeugen eines Klons des betroffenen Anwendungscontainers, das Testen des Klons mit einer oder mehreren Sicherheitsbehebungen und das Bereitstellen des Klons des betroffenen Containers als Ersatz für den betroffenen Container.
  • Die WO 2018 / 224 242 A1 offenbart einen Webserver, der in einem Container betrieben wird und über Ressourcen- und Netzwerkgrenzen verfügt, um eine zusätzliche Sicherheitsebene zu schaffen. Wenn ein Monitor feststellt, dass sich die Ressourcennutzung des Containers diesen Grenzen nähert, was auf einen DDoS-Angriff hindeutet, oder Verkehrsquellen identifiziert, die ein verdächtiges Verhalten zeigen, begrenzt eine Beschränkungsfunktion die vom ursprünglichen Webserver-Container erlaubten Ressourcen, um Server, die in anderen Containern laufen, davor zu schützen, gemeinsam genutzte Ressourcen zu überlasten. Eine Duplizierfunktion startet Replikat-Container mit denselben Ressourcenbeschränkungen und eine Lastausgleichsfunktion leitet dann den eingehenden Verkehr zu diesen Überlauf-Containern. Der Verkehr aus verdächtigen Quellen wird zu speziell konfigurierten Containern zur Angriffsbewertung geleitet, in denen ein „Dummy“-Webserver arbeitet. Das Verhalten dieser Quellen wird von einer Verhaltensüberwachungsfunktion analysiert.
  • Die US 9 223 966 B1 offenbart ein Verfahren zum Replizieren von Computersystemumgebungen, das Folgendes umfasst: Identifizieren jeder auf einer Vielzahl von Computersystemen installierten Anwendung; Erzeugen von virtuellen Containern innerhalb eines virtuellen Maschinenabbilds, die jede auf der Vielzahl von Computersystemen installierte Anwendung speichern; Bestimmen, dass eine potenziell schädliche Datei an ein Zielcomputersystem innerhalb der Vielzahl von Computersystemen gerichtet ist; Identifizieren jeder auf dem Zielcomputersystem installierten Anwendung; als Reaktion auf die Feststellung, dass die Datei an das Ziel-Computersystem gerichtet ist, Replizieren einer Konfiguration des Ziel-Computersystems innerhalb des Abbilds der virtuellen Maschine, indem für jede auf dem Ziel-Computersystem installierte Anwendung ein virtueller Container aktiviert wird, der die Anwendung speichert; und Bestimmen, wie die Datei das Ziel-Computersystem beeinflussen würde, indem die Datei an das Abbild der virtuellen Maschine gesendet und analysiert wird, wie die Datei das Abbild der virtuellen Maschine beeinflusst.
  • Der Journalartikel „From Patches to Honey-Patches: Lightweight Attacker Misdirection, Deception, and Disinformation“ von F. Araujo et al., erschienen 2014 in CCS '14: Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, S. 942 - 953 schlägt eine Methodik zur Umformulierung einer breiten Klasse von Sicherheits-Patches in Honey-Patches vor, die gleichwertige Sicherheit bieten, aber Angreifern die Möglichkeit nehmen, festzustellen, ob ihre Angriffe erfolgreich waren oder nicht. Wenn ein Ausnutzungsversuch entdeckt wird, leitet der Honey-Patch den Angreifer auf transparente und effiziente Weise zu einem ungepatchten Täuschungsmanöver um, bei dem der Angriff erfolgreich sein kann. Das Täuschungsmanöver kann aggressive Software-Monitore enthalten, die wichtige Angriffsinformationen sammeln, sowie Täuschungsdateien, die Angreifer in die Irre führen. Eine Implementierung für drei produktive Webserver, darunter Apache HTTP, zeigt, dass Honey-Patching für große, leistungskritische Softwareanwendungen mit geringem Overhead realisiert werden kann.
  • Der Journalartikel „Replay without recording of production bugs for service oriented applications“ von N. Arora et al., erschienen 2018 in Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, S. 452 - 463 berichtet über die Erkenntnis, dass in Systemen für dienstorientierte Anwendungen (SOA) viele Fehler (z. B. viele semantische und Leistungsfehler) automatisch reproduziert werden können, indem Netzwerkpakete an Repliken verdächtiger Dienste weitergeleitet werden. Diese Erkenntnis wird durch eine manuelle Untersuchung von 16 echten Fehlern in fünf verschiedenen Systemen validiert. In dem Beitrag wird „Parikshan“ vorgestellt, ein Framework zur Anwendungsüberwachung, das die Virtualisierung des Benutzerraums und Netzwerk-Proxy-Technologien nutzt, um eine Sandbox-„Debug“-Umgebung bereitzustellen. In dieser „Debug“-Umgebung können Entwickler Debugger und Analysetools einsetzen, ohne die Leistung oder Korrektheit der Produktionsumgebung zu beeinträchtigen. Im Vergleich zu bestehenden Überwachungslösungen, die Produktionsanwendungen verlangsamen können, ermöglicht Parikshan eine Anwendungsüberwachung bei geringem Overhead.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines Verfahrens, das bei Erkennen eines Angriffs auf eine Hosting-Umgebung von Containern eine Abwehr des Angriffs so lange ermöglicht, bis für die durch den Angriff ausgenutzte Sicherheitslücke ein Patch verfügbar wird.
  • Unzulänglichkeiten des Stands der Technik werden behoben, und zusätzliche Vorteile werden durch die Bereitstellung eines durch einen Computer umgesetzten Verfahrens ermöglicht. Das Verfahren erkennt einen Angriff auf eine Hosting-Umgebung von Containern. Der Angriff stellt eine potenzielle Kontaminierungsbedrohung für gehostete Container der Hosting-Umgebung von Containern dar. Die Hosting-Umgebung von Containern umfasst einen Pool von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool von Reserve-Containern mit Reserve-Containern, die für eine Bereitstellung in dem Pool von aktiven Containern bereit sind. Das Verfahren identifiziert auf Grundlage eines Erkennens des Angriffs eine Zeit bis zur Kontaminierung. Die Zeit bis zur Kontaminierung wird als Zeitraum angenommen, in dem ein aktiver Container des Pools von aktiven Containern infolge des Angriffs kontaminiert wird. Das Verfahren stellt neue Container in dem Pool von Reserve-Containern mit einer bestimmten Rate bereit, die auf der identifizierten Zeit bis zur Kontaminierung beruht. Außerdem entfernt das Verfahren kontinuierlich aktive Container aus dem Pool von aktiven Containern, die die Arbeitslast bedienen, und stellt zeitgleich Reserve-Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereit, um die entfernten aktiven Container zu ersetzen und das Bedienen der Arbeitslast zu übernehmen.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei das Entfernen der aktiven Container, die die Arbeitslast bedienen, und das zeitgleiche Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, das ferner ein Bestimmen der Rate aufweist, mit der neue Container in dem Pool von Reserve-Containern bereitgestellt werden sollen, wobei das Bestimmen auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast und einem Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern beruht.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die bestimmte Rate als Z/Y * X bestimmt wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen sind.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, das ferner auf Grundlage einer Anzahl von Reserve-Containern in dem Pool von Reserve-Containern ein Erreichen eines Schwellenwerts zu einem Zeitpunkt aufweist, wobei das Bereitstellen von neuen Containern in dem Pool von Reserve-Containern mit der bestimmten Rate temporär eingestellt wird, wobei der Schwellenwert auf einer Anzahl von aktiven Containern in dem Pool von aktiven Containern zu dem Zeitpunkt beruht.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, das ferner ein Wiederaufnehmen des Bereitstellens von neuen Containern in dem Pool von Reserve-Containern mit der bestimmten Rate auf Grundlage der Anzahl von Reserve-Containern in dem Pool von Reserve-Containern aufweist, die der Anzahl von aktiven Containern in dem Pool von aktiven Containern entspricht.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Korrigieren auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  • Bevorzugt stelle die vorliegende Erfindung ein Verfahren bereit, das ferner ein Überwachen während des kontinuierlichen Entfernens und zeitgleichen Bereitstellens aufweist, ob aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs kontaminiert sind.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei auf Grundlage des Überwachens ein Erkennen, dass aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs kontaminiert sind, eine Rate erhöht wird, mit der aktive Container aus dem Pool von aktiven Containern durch kontinuierliches Entfernen entfernt werden, wobei das Erhöhen die Rate so erhöht, dass sie der bestimmten Rate entspricht, mit der neue Container in dem Pool von Reserve-Containern bereitgestellt werden.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, wobei auf Grundlage von mindestens einer Auswahl aus der Gruppe, die (i) aus dem Überwachen, das erkennt, dass aktive Container des aktiven Pools von Containern infolge des erkannten Angriffs nicht kontaminiert sind, wobei das Erkennen, dass die aktiven Containers des Pools von aktiven Containern nicht kontaminiert sind, auf einem Konfigurieren der aktiven Container mit einer Korrektur des erkannten Angriffs beruht, und (ii) dem Erkennen besteht, dass der Angriff eingestellt wurde, wobei eine Rate, mit der aktive Container aus dem Pool von aktiven Containern entfernt werden, durch das kontinuierliche Entfernen verringert wird.
  • Bevorzugt stellt die vorliegende Erfindung ein Verfahren bereit, das ferner ein Ausführen eines ordnungsgemäßen Herunterfahrens eines entfernten aktiven Containers aufweist, wobei das ordnungsgemäße Herunterfahren ein Speichern eines Zustands des entfernten aktiven Containers aufweist, wobei ein zum Ersetzen des entfernten aktiven Containers bereitgestellter Reserve-Container die Arbeitslastverarbeitung durch Verwenden des gespeicherten Zustands des entfernten aktiven Containers wieder aufnimmt.
  • Ferner wird ein Computersystem bereitgestellt, das einen Arbeitsspeicher und einen Prozessor umfasst, der mit dem Arbeitsspeicher in Datenübertragung steht, wobei das Computersystem konfiguriert ist, um ein Verfahren auszuführen. Das Verfahren erkennt einen Angriff auf eine Hosting-Umgebung von Containern. Der Angriff stellt eine potenzielle Kontaminierungsbedrohung für die gehosteten Container der Hosting-Umgebung von Containern dar. Die Hosting-Umgebung von Containern umfasst einen Pool von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool von Reserve-Containern mit Reserve-Containern, die für eine Bereitstellung in dem Pool von aktiven Containern bereit sind. Das Verfahren identifiziert auf Grundlage eines Erkennens des Angriffs eine Zeit bis zur Kontaminierung. Die Zeit bis zur Kontaminierung wird als Zeitraum angenommen, in dem ein aktiver Container des Pools von aktiven Containern infolge des Angriffs kontaminiert wird. Das Verfahren stellt neue Container in dem Pool von Reserve-Containern mit einer bestimmten Rate bereit, die auf der identifizierten Zeit bis zur Kontaminierung beruht. Außerdem entfernt das Verfahren kontinuierlich aktive Container aus dem Pool von aktiven Containern, die die Arbeitslast bedienen, und stellt zeitgleich Reserve-Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereit, um die entfernten aktiven Container zu ersetzen und das Bedienen der Arbeitslast zu übernehmen.
  • Bevorzugt stellt die vorliegende Erfindung ein Computersystem bereit, wobei das Entfernen der aktiven Container, die die Arbeitslast bedienen, und das zeitgleiche Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  • Bevorzugt stellt die vorliegende Erfindung ein Computersystem bereit, wobei das Verfahren ferner ein Bestimmen der Rate aufweist, mit der neue Container in dem Pool von Reserve-Containern bereitgestellt werden sollen, wobei das Bestimmen auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleich aktiven Containern zum Bedienen der Arbeitslast, und einem Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern beruht, wobei die bestimmte Rate als Z/Y * X bestimmt wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleich aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen sind
  • Bevorzugt stellt die vorliegende Erfindung ein Computersystem bereit, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Korrigieren auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  • Bevorzugt stellt die vorliegende Erfindung ein Computersystem bereit, wobei das Verfahren ferner aufweist: Überwachen, während des kontinuierlichen Entfernens und des zeitgleichen Bereitstellens, ob aktive Container des Pools von aktiven Containern infolge des Angriffs kontaminiert sind, auf Grundlage von mindestens einer Auswahl aus der Gruppe, die (i) aus dem Überwachen, das erkennt, dass aktive Container des aktiven Pools von Containern infolge des erkannten Angriffs nicht kontaminiert sind, wobei das Erkennen, dass die aktiven Containers des Pools von aktiven Containern nicht kontaminiert sind, auf einem Konfigurieren der aktiven Container mit einer Korrektur des erkannten Angriffs beruht, und (ii) dem Erkennen besteht, dass der Angriff eingestellt wurde, wobei eine Rate, mit der aktive Container aus dem Pool von aktiven Containern entfernt werden, durch das kontinuierliche Entfernen verringert wird.
  • Des Weiteren wird ein Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium umfasst, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen für eine Ausführung durch die Verarbeitungsschaltung speichert, zum Ausführen eines Verfahrens bereitgestellt. Das Verfahren erkennt einen Angriff auf eine Hosting-Umgebung von Containern. Der Angriff stellt eine potenzielle Kontaminierungsbedrohung für gehostete Container der Hosting-Umgebung von Containern dar. Die Hosting-Umgebung von Containern umfasst einen Pool von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool von Reserve-Containern mit Reserve-Containern, die für eine Bereitstellung in dem Pool von aktiven Containern bereit sind. Das Verfahren identifiziert auf Grundlage eines Erkennens des Angriffs eine Zeit bis zur Kontaminierung. Die Zeit bis zur Kontaminierung wird als Zeitraum angenommen, in dem ein aktiver Container des Pools von aktiven Containern infolge des Angriffs kontaminiert wird. Das Verfahren stellt neue Container in dem Pool von Reserve-Containern mit einer bestimmten Rate bereit, die auf der identifizierten Zeit bis zur Kontaminierung beruht. Außerdem entfernt das Verfahren kontinuierlich aktive Container aus dem Pool von aktiven Containern, die die Arbeitslast bedienen, und stellt zeitgleich Reserve-Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereit, um die entfernten aktiven Container zu ersetzen und das Bedienen der Arbeitslast zu übernehmen.
  • Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das Entfernen der aktiven Container, die die Arbeitslast bedienen, und das zeitgleiche Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  • Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das Verfahren ferner ein Bestimmen der Rate aufweist, mit der neue Container in dem Pool von Reserve-Containern bereitgestellt werden sollen, wobei das Bestimmen auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast, und einem Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern beruht, wobei die bestimmte Rate als Z/Y * X bestimmt wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen sind,
  • Bevorzugt stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Korrigieren auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  • Weitere Merkmale und Vorteile werden durch die hierin beschriebenen Konzepte verwirklicht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Hierin beschriebene Aspekte werden besonders hervorgehoben und eindeutig als Beispiele in den Ansprüchen am Ende der Patentschrift beansprucht. Das Vorgenannte und weitere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen offenkundig, wobei:
    • 1 eine beispielhafte Umgebung zum Integrieren und Verwenden von hierin beschriebenen Aspekten darstellt;
    • 2 eine konzeptuelle Darstellung für eine automatisierte Antwort auf eine Erkennung von Bedrohungen von Cloud-Containern gemäß hierin beschriebenen Aspekten darstellt;
    • 3A bis 3C Beispielprozesse zum Mindern von Bedrohungen von Arbeitslasten auf Container-Grundlage gemäß hierin beschriebenen Aspekten darstellen;
    • 4 ein weiteres Beispiel für ein Computersystem und zugehörige Einheiten zum Integrieren und/oder Verwenden von hierin beschriebenen Aspekten darstellt;
    • 5 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
    • 6 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die meisten Angriffe auf angreifbare Systeme werden innerhalb von nur Minuten ausgeführt, und für sie ist in der Regel ein Patch oder eine Umgehung erforderlich, der bzw. die auf in Ausführung befindliche Knoten oder Container angewendet werden muss, um die Auswirkungen der Angriffe zu mindern. Bestehende Verfahren zum Korrigieren eines kompromittierten Systems bedeuten in der Regel eine Stillstandszeit für eine Anwendung oder eine schlechtere Leistung, während das System gepatcht oder heruntergefahren wird, um neu erstellt zu werden. Oft ist der Angreifer in der Lage, für eine bestimmte Zeit einen Zugriff auf ein kompromittiertes System aufrechtzuerhalten, bevor es korrigiert wird, und/oder der Angreifer ist fähig, das System erneut effektiv zu infizieren oder neue Systeme zu infizieren, während sich Administratoren mit Bedrohungs-Korrekturmaßnahmen befassen.
  • Container stellen eine einmalige Gelegenheit bereit, dieses Paradigma zu ändern. Hierin werden Ansätze zum Ersetzen von aktiven Containern durch neu bereitgestellte Container mit einer Rate beschrieben, die die Rate übertrifft, mit der aktive Container durch eine erkannte Bedrohung kompromittiert/kontaminiert werden können. Dies kann dabei helfen, Auswirkungen des Angriffs zu mindern, bis eine dauerhafte Lösung geschaffen werden kann. Wie beschrieben, wird ein Angriff als etwas erkannt, das eine potenzielle oder erkannte Kontaminationsbedrohung für gehostete Container einer Container-Umgebung darstellt. Mit Grund zur Annahme, dass ein Angriff im Gange ist, wird eine geschätzte oder tatsächliche Zeit für ein Eindringen des Angriffs in die Umgebung und Erreichen der betreffenden Container bestimmt. Damit wird eine Rate angezeigt, mit der neue Container auf kontinuierlicher Grundlage bereitgestellt werden müssen, um vorhandene Container zu ersetzen, die kompromittiert worden sind oder als einer vorhandenen Kontaminierungsbedrohung ausgesetzt identifiziert werden.
  • Aspekte nutzen die schnellen Zeiten zum „Hochfahren“ und „Herunterfahren“ oder Container und deren „unberührten“ Zustand („vanilla“ state) beim Bereitstellen bei der Darstellung von Ansätzen zum Mindern von Angriffen auf angreifbare Systeme, bis ein dauerhafter Patch oder eine Umgehung geschaffen werden kann. In einigen Ausführungsformen werden Container rasch durchlaufen, d.h. sie werden für einen aktiven Pool bereitgestellt und haben darin eine relative kurze Lebensdauer, bevor sie durch andere unberührte Container ersetzt werden. In einigen Ausführungsformen wird ein Container, nachdem er für einen festgelegten Zeitraum in einem Pool von aktiven Containern aktiv gewesen ist, der Datenverkehr oder eine andere Bedienung von Arbeitslast bearbeitet, aus dem Pool von aktiven Containern entfernt und durch einen „sauberen“, neu bereitgestellten Container ersetzt. Aufgrund der Unveränderlichkeit von Containern können neu bereitgestellte Container auf Grundlage einer bekannten guten Konfiguration bereitgestellt werden. Das Durchlaufen (Cycling) von aktiven Containern kann kontinuierlich erfolgen, d.h. auf einer ständigen Grundlage erfolgen, damit der Pool von aktiven Containern von Kompromittierungen freigehalten wird und normal arbeitet.
  • Die Container in dem aktiven Pool können zustandsorientiert, zustandslos oder eine Kombination davon sein. Ein Arbeiten mit zustandslosen Containern ermöglicht, dass sie abrupt beendet und durch einen nächsten Container ersetzt werden können, ohne auf einem Zustand zu beharren. Wenn ein Container alternativ einen Zustand enthält, der gespeichert werden soll, kann dieser herausgeschrieben (gespeichert) werden, bevor der Container heruntergefahren wird. Zusätzlich oder alternativ können einige oder alle Container, die aus einem aktiven Zustand entfernt werden, einem „ordnungsgemäßen‟ (graceful) Herunterfahren/Aufheben der Bereitstellung unterzogen werden, wodurch sie die Gelegenheit erhalten, alles Wünschenswerte beizubehalten.
  • Außerdem können einige Ausführungsformen eine Kopie des Abbilds eines Containers vor einem Aufheben der Bereitstellung des Containers erfassen. Dieses Abbild kann für zukünftige forensische Analysen oder andere Zwecke verwendet werden, falls gewünscht.
  • Dementsprechend nutzen Aspekte ein Container-Bereitstellungsmodell zum Vermindern einer Angriffsfläche durch Verkürzen der Zeit, in der ein Container aktiv ist. Ein Prozess durchläuft kontinuierlich aktive Container, um kontaminierte Container herunterzufahren und/oder in erster Linie eine Kontaminierung von Containern zu verhindern. In Ausführungsformen werden Container mit aktiver Verwendung schnell genug durchlaufen, sodass sie nur für eine Zeit verwendet werden, die kurz genug ist, bevor ein Angriff die Container kompromittieren (infizieren, durchdringen, modifizieren usw.) kann.
  • Eine Berechnung einer Kontaminierungszeit wird offenbart und verwendet, um eine Zeitdauer zu optimieren, während der ein Container aktiv und nicht kompromittiert bleibt. Eine Überkapazitätsberechnung wird ebenfalls verwendet, um eine Anzahl von „Bereitschafts“- (ready) Containern vorzugeben, die vorrätig zu halten ist.
  • 1 stellt eine beispielhafte Umgebung 100 zum Integrieren und Verwenden von hierin beschriebenen Aspekten dar. Die Umgebung 100 ist in diesem Beispiel eine Container-Umgebung. Zu beispielhaften Container-Angeboten zählen OpenShift®, angeboten von Red Hat, Inc. (Raleigh, Nord-Carolina; wobei OPENSHIFT eine eingetragene Marke ist), und Docker® (angeboten von Docker Inc, San Francisco, Kalifornien, U.S.A.; wobei DOCKER eine eingetragene Marke ist), obwohl auch andere bekannt sind.
  • Obwohl die Umgebung von 1 eine Container-Umgebung darstellt und Beispiele hierin in dem Kontext von Container-Technologie dargestellt werden, sollte klar sein, dass hierin beschriebene Aspekte auch mit anderen Typen von virtueller Umgebungstechnologie arbeiten, beispielsweise als virtuelle Maschinen (VMs), die auf VM-Hosts ausgeführt werden.
  • Unter Bezugnahme auf 1 umfasst die Umgebung 100 Container-Hosts 102, die Einrichtungen für mindestens eine Container-Ausführung und Hosting von Container-Pools und in einigen Fällen ein Repository/eine Registry für Container-Abbilder bereitstellen. Die Container-Hosts 102 selbst werden in einer Cloud-Umgebung 104 oder einer anderen Netzwerk-Infrastruktur gehostet. In einer Ausführungsform hostet bzw. hosten ein Container-Host oder mehrere Container-Hosts einen Container-Pool von Bereitschafts/Reserve-Containern und einen Container-Pool von Containern mit aktiver Verwendung. Ein Steuersystem 106 steht mit dem bzw. den Container-Hosts 102 über das Internet oder ein oder mehrere andere Netzwerke in Datenübertragung, um die Instantiierung/Bereitstellung von Containern auf den Container-Hosts aus Container-Abbildern sowie das Bereitstellen in oder Entfernen von Containern aus verschiedenen Pools zu verwalten.
  • Während der Container-Ausführung kann der bzw. können die Container externen Bedrohungen 110 ausgesetzt sein. Die Bedrohungen können in der Form von Angriffen auf die Hosting-Umgebung von Containern/Container-Hosts 102 vorliegen.
  • Die Komponenten in 1 bilden ein oder mehrere drahtgebundene oder drahtlose Netzwerke von Einheiten, und die Datenübertragung zwischen den Einheiten erfolgt über drahtgebundene oder drahtlose Datenübertragungsverbindungen 112, um Daten zwischen den Einheiten zu übertragen. 1 ist nur ein Beispiel für eine Umgebung, in die hierin beschriebene Aspekte integriert und in der diese verwendet werden können; viele andere Beispiele sind möglich und werden als mit den hierin beschriebenen Fähigkeiten kompatibel erachtet.
  • In einem typischen Beispiel liest das Steuersystem 106 eine Konfiguration 108 zum Bereitstellen von Containern in dem bzw. den Container-Hosts 102. Die Konfiguration kann Merkmale vorgeben, beispielsweise wie oft ein neuer Container bereitgestellt werden muss und wie oft einer oder mehrere vorhandene Container mit aktiver Verwendung unter Quarantäne gestellt/deren Bereitstellung aufgehoben werden soll oder sollen. Das Steuersystem 106 kann Container-Abbilder identifizieren, von denen aus die Instantiierung von Containern und die Platzierung in dem entsprechenden Pool zu initiieren ist. In einem speziellen Beispiel wird der Container für einen Bereitschafts/Reserve-Pool bereitgestellt, bei dem es sich um einen Pool zum Aufnehmen von instantiierten Containern handelt, die bereit sind, aber noch nicht in aktive Verwendung zum Bedienen einer Arbeitslast versetzt worden sind. Das Initiieren der Container-Instantiierung kann ein Senden eines Aufrufs oder eines anderen Befehls von dem Steuersystem 106 an einen Container-Host 102 oder ein entsprechendes Verwaltungssystem umfassen. Der Aufruf/Befehl kann den Container-Host anweisen, den Container in dem Container-Host aus dem Container-Abbild zu instantiieren. In einigen Beispielen erhält der Container-Host das Abbild aus einem Repository, das lokal oder entfernt zu dem Container-Host angeordnet ist. Die Konfiguration 108 könnte Parameter angeben, die beim Instantiieren von einem oder mehreren Containern verwendet werden sollen.
  • Das Steuersystem 106 steuert auch das Aufheben der Bereitstellung/das Entfernen von aktiven Containern aus dem Pool von aktiven Containern in einem Bereitstellungsaufhebungs- oder Quarantäne-Zustand, indem sie eine Arbeitslast nicht mehr aktiv verarbeiten. In einigen Beispielen wird ein Container mit aufgehobener Bereitstellung beendet, und seine Ressourcen werden wieder für den Pool von verfügbaren Ressourcen des Hosts freigegeben.
  • In einigen Beispielen ist oder umfasst das Steuersystem 106 eine Bereitstellungs-/Quarantäne-Engine, die hierin erörtert wird,
  • Die Konfiguration 108 verweist auf die Prozesse, Anweisungen, Informationen, Befehle und/oder Spezifikationen, die das Bereitstellen und Aufheben der Bereitstellung von Containern sowie ihre Verschiebung aus dem Reserve-Pool in den aktiven Pool gemäß hierin beschriebenen Aspekten vorgeben.
  • Das Beispiel von 1 stellt mehrere Komponenten dar, die durch/auf einem oder mehreren Computersystemen umgesetzt werden können, beispielsweise als Software, die darauf ausgeführt wird.
  • 2 stellt eine konzeptuelle Darstellung für eine automatisierte Antwort auf eine Erkennung von Bedrohungen von Cloud-Containern gemäß hierin beschriebenen Aspekten dar. Ein Schritt 202 stellt eine Sammlung von Containern und ihren Verlauf von einer Bereitstellung 204 in einen Reserve/Bereitschafts-Container-Pool 206 von Reserve-Containern dar, die für eine Bereitstellung bereit sind. Danach werden die Container für eine aktive Verwendung in einem Pool von aktiven Containern 208 von Containern bereitgestellt, die Arbeitslast(en) bedienen (z.B. verarbeiten). Gemäß hierin beschriebenen Aspekten werden Container aus dem Pool von aktiven Containern 208 in einen Quarantäne-/ Bereitstellungsaufhebungs-Bereich 210 entfernt, um durch Reserve-Container ersetzt zu werden.
  • Weitere Komponenten von 2 umfassen einen Schwachstellen-Scanner/Bedrohungsdetektor 212, einen Kontaminierungszeit-Rechner 216, eine Datenbank 214 mit geschätzten Kontaminierungszeiten für jede von mehreren Schwachstellen, einen Überkapazitäts-Rechner 218 und eine Bereitstellungs-/Quarantäne-Engine 220, die das Bereitstellen von Containern, die Quarantäne/Bereitstellungsaufhebung von Containern und das Verschieben von Containern zwischen Pools in der Sammlung 202 steuert.
  • In einer Beispielsequenz von Ereignissen führt der Bedrohungsdetektor 212 bei „1“ einen Echtzeit-Scanvorgang und eine Bedrohungserkennung in der Umgebung aus, einschließlich einer Erkennung von Bedrohungen von Containern in dem Pool von aktiven Containern 208. Der Bedrohungsdetektor 212 erkennt einen Angriff auf die Hosting-Umgebung von Containern. Das Erkennen des Angriffs könnte auf Grundlage aller gewünschten Faktoren erkannt oder ausgelöst werden. Was als ein Angriff betrachtet wird, der spätere Aspekte der Sequenz auslöst, kann konfigurierbar gestaltet werden. Dies könnte zum Beispiel von Faktoren wie der gewünschten Sicherheitsebene, der Sensibilität der Informationen, die von den Containern verarbeitet werden, Besonderheiten der Hosting-Umgebung, der beteiligten Technologie und/oder bewerteten Ebenen von laufender Bedrohungsaktivität abhängen. Im Allgemeinen stellt ein erkannter Angriff eine potenzielle oder tatsächliche Kontaminierungsbedrohung für gehostete Container der Hosting-Umgebung von Containern dar.
  • Die Bedrohungserkennung kann daher Bedrohungen erkennen, die sich auf die aktiven Container auswirken und eine tatsächliche Kontaminierung von Containern erfassen könnten. In diesem Rahmen kann sie die Zeitpunkte einer Kontaminierung und Bedrohungserkennung erfassen und protokollieren. In einigen Ausführungsformen umfasst dieses Erkennen ein Identifizieren einer speziellen Bedrohung und ein Erfassen von Informationen über die Bedrohung, zum Beispiel deren Angriffsvektor, betroffene Ports/Adressen, Datendateien, Prozess(e) und dergleichen. Der Bedrohungsdetektor übergibt relevante Informationen über die Bedrohung an einen Kontaminierungszeit-Rechner.
  • In der Sequenz empfängt der Kontaminierungszeit-Rechner unter „2“ die Informationen von dem Bedrohungsdetektor 212 und verweist sie auf die Datenbank 214 für eine Schätzung der Zeit bis zur Kontaminierung, z.B. eine Schätzung der Zeit, die die Bedrohung zum Kontaminieren eines sauberen Containers braucht. In einem Beispiel wird diese Datenbank als eine Tabelle mit ungefähren Kompromittierungszeiten für verschiedene Bedrohungen umgesetzt. Wenn die Bedrohung nicht ausreichend identifiziert werden kann, weil sie zum Beispiel neu ist oder nicht erkannt wird, kann eine Standardschätzung der Kompromittierungszeit verwendet werden. Eine beispielhafte Standard-Kompromittierungszeit, die verwendet werden kann, ist 30 Sekunden.
  • Die Datenbank stellt eine geschätzte Mindestzeit bis zur Kontaminierung bereit, die auf eine Schätzung der Zeit verweist, in der ein Angriff die aktiven Container erreicht und sie kontaminiert. Einige Angriffe können vor einer tatsächlichen Kontaminierung eines Angriffsziels eines Containers mit aktiver Verwendung erkannt werden. Zwischen einem anfänglichen Einbruch (am Frontend) und der Kontaminierung des Backends könnte ein Zeitfenster vorhanden sein. Zum Beispiel könnte ein Angriff an einer Frontend-Komponente (Container oder Sonstiges) darüber informieren, dass ein Angriff vorliegt, und dass für Backend-Komponenten (z.B. Backend-Container, die eine Arbeitslast bedienen) eine Bedrohung vorhanden ist. Eine anfängliche Zeit bis zur Kontaminierung in diesem Beispiel kann als eine Schätzung des Zeitpunkts angenommen werden, an dem der Angriff erkannt wurde, bis zu einem Zeitpunkt, an dem Container kompromittiert sind. Die Schätzung der Kontaminierungszeit könnte eine geschätzte Zeitdauer des Angriffs sein, die dieser zum Durchdringen des Frontends und Kontaminieren des Backends benötigt. Dies erfolgt ohne Berücksichtigung dessen, ob das Backende tatsächlich kompromittiert ist oder kompromittiert worden ist.
  • Anschließend kann der Kontaminierungszeit-Rechner neue Container überwachen („3“), die von „Bereitschaft/Reserve“ in „aktive Verwendung“ verschoben wurden und den Zeitpunkt für sie bestimmen, wann sie tatsächlich kontaminiert wurden (wenn die Bedrohung sie tatsächlich kontaminiert), um eine tatsächliche Mindestzeit zu bestimmen, in der ein „unberührter“ Container kompromittiert werden kann. Dies kann zum Eingrenzen der Schätzung des mindesten Kontaminierungszeitpunkts aus „2“ verwendet werden. Jeder beobachtete tatsächliche mindeste Kontaminierungszeitpunkt kann in der Datenbank gespeichert werden, um die Schätzung auf Tabellengrundlage einzugrenzen, wenn der beobachtete Mindestzeitpunkt kleiner als der geschätzte Zeitpunkt ist, der in der Datenbank angegeben ist.
  • Somit kann der Rechner 216 den Pool von aktiven Containern überwachen, um zu beobachten, wann Container in aktiver Verwendung eingesetzt werden, und auf Grundlage des Beobachtens des aktiven Pools und/oder des Empfangens von Angaben von dem Bedrohungsdetektor 212 Zeiten zu identifizieren, die zum Kompromittieren von aktiven Containern erforderlich sind.
  • Dementsprechend wird auf Grundlage eines Erkennens eines Angriffs eine Zeit bis zur Kontaminierung identifiziert. Die Zeit bis zur Kontaminierung wird als Zeitraum angenommen, in dem ein aktiver Container des Pools von aktiven Containern infolge des Angriffs kontaminiert wird. In einigen Beispielen, wie oben erklärt, wird die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt, der vorab festgelegt und aus einer Datenbank als eine geschätzte Zeit bis zur Kontaminierung auf Grundlage von Informationen über den erkannten Angriff entnommen wurde, wie durch den Bedrohungsdetektor bereitgestellt. Diese anfängliche Zeit bis zur Kontaminierung könnte anschließend auf Grundlage eines Erkennens von tatsächlicher Kontaminierung eines aktiven Containers des Pools von aktiven Containern korrigiert werden. Somit könnte sie auf die Zeitdauer zwischen einem ersten Zeitpunkt (an dem der aktive Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitgestellt wurde) und einem zweiten Zeitpunkt korrigiert werden (an dem der aktive Container infolge des Angriffs kontaminiert wurde).
  • Wenn eine Bedrohung erkannt wird, beginnen hierin beschriebene Aspekte mit einem Prozess zum proaktiven Entfernen von Containern mit aktiver Verwendung aus dem Pool von aktiven Containern 208 in den „Quarantäne/Bereitstellungsaufhebung“-Pool. Gleichzeitig werden neue Container aus dem Bereitschafts/Reserve-Pool 206 zur aktiven Verwendung bereitgestellt (Pool 208), um die Verarbeitungsressource zu ersetzen, die durch den aufgehobenen vorherigen Container mit aktiver Verwendung bereitgestellt wurde. Die in dem Pool für aktive Verwendung bereitgestellten Container werden aus dem Bereitschafts/Reserve-Pool 206 bereitgestellt. Der Prozess bestimmt eine Rate zum Bereitstellen von neuen Containern in dem Pool von Reserve-Containern 206 auf Grundlage der identifizierten Zeit bis zur Kontaminierung, sodass eine gewünschte Anzahl von Containern bereit und in Reserve für ein Bereitstellen zur aktiven Verwendung (208) mit einer Rate verbleibt, die ausreichend ist, um eine Kontaminierung von Containern in dem Pool von aktiven Containern 208 zu verhindern. Ein Bestimmen dieser Rate zum Bereitstellen von neuen Containern für einen Reserve-Zustand wird durch einen Überkapazitäts-Rechner 218 erreicht. Der Überkapazitäts-Rechner 218 übernimmt (bei „4“) die Zeit bis zur Kontaminierung von dem Kontaminierungszeit-Rechner 216. Er übernimmt auch eine Gesamtanzahl von benötigten Containern mit aktiver Verwendung als Eingabe - d.h. eine Anzahl von zeitgleichen Containern mit aktiver Verwendung, die zum Bedienen der Arbeitslast als ausreichend erachtet werden - und die Hochfahrzeit für einen Container. Diese Informationen können von einem Benutzer, der Engine 220 oder jeder anderen Quelle bereitgestellt werden. Der Überkapazitäts-Rechner 218 bestimmt dann eine Rate, mit der neue Container hochgefahren/für den Bereitschafts/Reserve-Pool 206 bereitgestellt werden, um sicherzustellen, dass genügend Container hochgefahren sind und in dem Zustand „Bereitschaft/Reserve“ warten.
  • In einigen Ausführungsformen werden identische „Allzweck‟-Container verwendet, daher ist deren Hochfahrzeit dieselbe. In Ausführungsformen, die verschiedene Gruppen von spezialisierten Containern mit unterschiedlichen Attributen verwenden, sodass die Hochfahrzeiten unterschiedlich sind, kann die Sequenz von 2 für jede derartige Gruppe ausgeführt werden, um jeweilige Zeiten bis zur Kontaminierung und Überkapazitätsberechnungen zu bestimmen, und die aktiven Benutzer-Container jeder jeweiligen Gruppe entsprechend durchlaufen zu lassen.
  • Die Rate, mit der neue Container in dem Pool von Reserve-Containern bereitgestellt werden, kann auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast und einem Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern beruhen. So wird die Rate bestimmt:
    • - Es wird angenommen, dass alle Container mit aktiver Verwendung zur selben Zeit angegriffen werden könnten (schlimmster Fall);
    • - Es wird angenommen, dass X zeitgleiche Container mit aktiver Verwendung benötigt werden, um der Belastung gerecht zu werden;
    • - Die Mindestzeit bis zur Kontaminierung wird auf = Y gesetzt;
    • - Die Hochfahrzeit für die Container wird auf = Z gesetzt;
    • - Danach sollten X Container während eines Zeitraums Y in Bereitschaft/Reserve für ein Bereitstellen für aktive Verwendung vorhanden sein, sodass die Reserve-Container alle Container mit aktiver Verwendung vollständig ersetzen könnten, wenn ein schlimmster Fall angenommen wird, in dem alle Container mit aktiver Verwendung in einer Mindestzeit Y infiziert wurden.
  • Daher gibt eine Formel Z/Y * X die Anzahl von Knoten an, die alle Z Sekunden hochgefahren werden müssen, d.h. die bestimmte Rate.
  • Mit einem spezifischen Beispiel soll angenommen werden, dass die Hochfahrzeit 10 Sekunden beträgt, die Zeit bis zur Kontaminierung 20 Sekunden beträgt, und 10 aktive Knoten (Container) erforderlich sind, um die Arbeitslast zu bedienen. Die Rate beträgt dann 10 / 20 * 10 = 5. Dies ist die Anzahl von Knoten, die alle 10 Sekunden hochgefahren werden müssen. Dies führt alle 20 Sekunden zu einem Pool von 10 Reserveknoten, sodass sie 10 kontaminierte aktive Knoten ersetzen können.
  • Somit bestimmt der Überkapazitäts-Rechner 218 auf Grundlage der Kontaminierungszeit (die unter „4“ von dem Kontaminierungszeit-Rechner für den Überkapazitäts-Rechner bereitgestellt wird) und anderen Parametern, einschließlich der Anzahl von benötigten aktiven Containern und der Hochfahrzeit die Anzahl von Containern, die hochgefahren werden müssen und die Häufigkeit, mit der dies geschehen muss. Die jeweiligen Parameter der Formel könnten von jeder geeigneten Entität kommen. Zum Beispiel könnte die Bereitstellungs-/Quarantäne-Engine 220 auf Grundlage ihrer Bereitstellungsaktivität Kenntnis von der Hochfahrzeit haben. Die Anzahl von benötigten Containern mit aktiver Verwendung könnte zum Beispiel durch einen Benutzer angegeben werden und/oder durch einen Arbeitslast-Manager oder eine andere Komponente vorgegeben werden.
  • Die Bereitstellungs-/Quarantäne-Engine 220 kann die Aufgaben einer kontinuierlichen Bereitstellung von neuen Containern bearbeiten, sie in Bereitschaft/Reserve, anschließend zu aktiver Verwendung und (nach oder vor einer Kontaminierung) in den Quarantäne-Zustand verschieben, und danach die Bereitstellung aufheben. Somit verweist „6“ in der Folge von 2 auf ein kontinuierliches Entfernen, aus dem Pool von aktiven Containern, von aktiven Containern, die die Arbeitslast bedienen, und ein zeitgleiches Bereitstellen von Reserve-Containern aus dem Pool von Reserve-Containern für den Pool von aktiven Containern, um die entfernten aktiven Container zu ersetzen und das Bedienen der Arbeitslast zu übernehmen. Das Entfernen von einem oder mehreren Containern aus dem Pool von aktiven Containern 208 könnte nach einem Beobachten einer tatsächlichen Kontaminierung des einen oder der mehreren Container ausgeführt werden. Alternativ könnte das Entfernen von einem oder mehreren aktiven Containern in dem Pool von aktiven Containern, der bzw. die die Arbeitslast bedient bzw. bedienen, und ein Bereitstellen von neuen Containern in dem Pool von aktiven Containern ohne Berücksichtigung dessen ausgeführt werden, ob der oder die aktiven Container, der bzw. die entfernt wurde bzw. wurden, als kontaminiert erkannt wurden. Gleichzeitig kann die Engine 220 neue Container in dem Pool von Reserve-Containern 206 mit der bestimmten Rate bereitstellen, d.h. wie von dem Überkapazitäts-Rechner 218 bestimmt. Auf diese Weise kann die Bereitstellung/Bereitstellungsaufhebung auf Grundlage zumindest teilweise von der Rechnerkomponente 218 für überschüssige Zeit betrieben werden. In einigen Ausführungsformen wird das Entfernen von Containern aus dem Pool mit aktiver Verwendung und das Bereitstellen von neuen Containern für den Pool mit aktiver Verwendung mit der bestimmten Rate ausgeführt, mit der neue Container für Bereitschaft/Reserve bereitgestellt werden, und in dem Pool mit aktiver Verwendung wird keine tatsächliche Kompromittierung von Containern beobachtet, da die Container schneller durchlaufen werden als der Angriff sie kontaminieren kann.
  • In einigen Ausführungsformen kann die Engine 220 beim Entfernen eines aktiven Containers in den Zustand von Quarantäne/Bereitschaftsaufhebung ein ordnungsgemäßes' Herunterfahren des Containers erzwingen. Dies ist optional. In einigen Beispielen beruht dies darauf, ob der Container einen zu speichernden Zustand aufweist. Ist dies der Fall und ist ein ordnungsgemäßes Herunterfahren erforderlich, kann ein Zustand des entfernten aktiven Containers gespeichert werden. Ferner könnte ein zum Ersetzen des entfernten aktiven Containers bereitgestellter Reserve-Container, falls gewünscht, die Arbeitslast-Verarbeitung durch Verwenden des gespeicherten Zustands des entfernten aktiven Containers wieder aufnehmen.
  • Die laufende Verarbeitung kann ferner ein Überwachen umfassen, da Container kontinuierlich aus der aktiven Verwendung entfernt und durch neue Container ersetzt werden, die zeitgleich zur aktiven Verwendung bereitgestellt werden, ob aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs tatsächlich kontaminiert sind. Fall sie nicht tatsächlich kontaminiert sind, kann dies einen Anlass darstellen, das Durchlaufen von Containern zu verlangsamen, das die Inanspruchnahme von Leistung und anderen Ressourcen reduzieren kann. Wenn Container kontaminiert sind, kann dies darüber informieren, dass das Durchlaufen und somit auch die Rate beschleunigt werden sollte, mit der neue Container für den Zustand Bereitschaft/Reserve bereitgestellt werden. Somit kann die Verarbeitung auf Grundlage des Überwachens, das erkennt, dass aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs kontaminiert sind, die Rate erhöhen, mit der aktive Container durch kontinuierliches Entfernen aus dem Pool von aktiven Containern entfernt werden. Diese Rate kann so erhöht werden, dass sie zum Beispiel der bestimmten Rate entspricht, mit der neue Container für den Pool von Reserve-Containern bereitgestellt werden. Dadurch wird ein Beschleunigen des Kreislaufs ermöglicht. Unter der Annahme, dass die Zeit bis zur Kontaminierung genau ist, werden schließlich keine Container mit aktivierter Verwendung mehr durch die Bedrohung kontaminiert. Falls jedoch in dem Fall, dass aktive Container trotz eines Durchlaufens mit der durch den Überkapazitäts-Rechner bestimmten Rate kompromittiert werden, bedeutet dies, dass die Kontaminierung schneller erfolgt als die von 218 verwendete bestimmte Mindestzeit bis zur Kontaminierung. In diesem Fall würde der Bedrohungsdetektor 212 und/oder der Kontaminierungszeit-Rechner eine niedrigere Mindestzeit bis zur Kontaminierung aufnehmen und diese dem Überkapazitäts-Rechner 218 zum Aktualisieren der Rate zum Bereitstellen von Reserve-Containern zuführen. Außerdem kann die neue Mindestzeit bis zur Kontaminierung, falls gewünscht, in der Datenbank 214 gespeichert werden. Die Durchlaufrate zum Entfernen von aktiven Containern und Bereitstellen von neuen Containern kann erhöht werden (d.h. das Durchlaufen kann beschleunigt werden), um der neuen bestimmten Rate zu entsprechen. Das Beschleunigen des Durchlaufens eliminiert daher die Kontaminierung aus dem Pool mit aktiver Verwendung.
  • Im Gegensatz dazu kann die Durchlaufrate - die Rate, mit der aktive Container aus dem Pool von aktiven Containern entfernt werden, um durch neue Container ersetzt zu werden - in verschiedenen Situationen verringert (d.h. verlangsamt) werden. Eine derartige Situation liegt vor, wenn die Überwachung, ob aktive Container des Pools von aktiven Containern tatsächlich kontaminiert sind, erkennt, dass aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs nicht kontaminiert sind (oder die Kontaminierungsgeschwindigkeit Kontaminierungsrate sich verlangsamt hat). Dies könnte erkannt werden, wenn die neu bereitgestellten und eingesetzten aktiven Container zum Beispiel mit einer Korrektur des erkannten Angriffs konfiguriert sind. Außerdem oder alternativ kann die Durchlaufrate auf Grundlage des Erkennens verringert werden, dass der Angriff eingestellt wurde.
  • Die Größe einer Erhöhung oder Verringerung der Durchlaufrate und/oder eine Obergrenze oder Untergrenze für die Durchlaufrate könnten, falls gewünscht, voreingestellt werden. Zum Beispiel kann die Durchlaufrate verlangsamt werden, bis eine Schwellenwertrate erreicht und/oder eine Kontaminierung beobachtet wird. Wenn eine Kontaminierung beobachtet wird, könnte die Durchlaufrate erhöht werden, bis für eine Mindestzeitdauer keine Kontaminierungen mehr beobachtet werden.
  • Wenn Container nicht so schnell wie im Szenario des schlimmsten Falls angegriffen und/oder kompromittiert werden, kann der Prozessor aufhören, an einem voreingestellten „Abschalt“-Punkt für den Reserve-Pool neue Knoten bereitzustellen, beispielsweise wenn die Anzahl von Containern in dem Bereitschafts/Reserve-Pool 206 die Anzahl von aktiven Knoten in einem bestimmten Verhältnis erreicht oder überschreitet. Danach könnte die Bereitstellung für den Bereitschaft/Reserve-Pool 206 wieder aufgenommen werden, wenn die darin befindliche Anzahl von Containern eine bestimmte Anzahl in Bezug auf die Anzahl von Containern in dem Pool mit aktiver Verwendung 208 erreicht, wenn sie zum Beispiel gleich der Anzahl von aktiven Containern ist.
  • Dementsprechend kann die Engine 220, auf Grundlage einer Anzahl von Reserve-Containern, die in dem Pool von Reserve-Containern an einem Zeitpunkt einen Schwellenwert erreichen, vorübergehend die Bereitstellung von neuen Containern für den Pool von Reserve-Containern mit der bestimmten Rate (d.h. die durch den Überkapazitäts-Rechner 218 bestimmt wurde) einstellen. Der Schwellenwert kann zu diesem Zeitpunkt auf einer Anzahl von aktiven Containern in dem Pool von aktiven Containern beruhen, zum Beispiel einem Verhältnis der Anzahl von Containern in Bereitschaft/Reserve zu der Anzahl von aktiven Containern. Da diese Bereitstellungsrate möglicherweise nicht der Durchlaufrate entspricht (einem Entfernen aus und Bereitstellen für den aktiven Pool 208), könnte sich daraus ein Überschuss von Bereitschafts-Containern ergeben. Ein vorübergehendes Einstellen des Bereitstellens von neuen Containern kann verhindern, dass der Reserve-Pool zu groß wird. Danach kann das Bereitstellen von neuen Containern für den Pool von Reserve-Containern später, zum Beispiel mit der bestimmten Rate oder mit einer anderen Rate, auf Grundlage der Anzahl von Reserve-Containern in dem Pool von Reserve-Containern wieder aufgenommen werden, die abnimmt, um zum Beispiel der Anzahl von aktiven Containern in dem Pool von aktiven Containern zu entsprechen.
  • Hierin beschriebene Aspekte stellen ein Modell dar, das Container durchläuft, um eine Container-Kontaminierung zu mindern und/oder eine Kontaminierung in Bezug auf eine Bedrohung komplett zu vermeiden. Dies unterscheidet sich von Ansätzen, die nur eine Kontaminierung erkennen und arbeiten, um die betroffene Umgebung zu bereinigen und/oder vorbeugende Maßnahmen zu installieren. Dies unterscheidet sich auch von Ansätzen, die einen kompromittierten Container nur neu starten, um ihn zurückzusetzen, da der Angriff immer noch bestehen könnte und in Bezug auf den Container wieder aufgenommen werden könnte, sobald der Container wieder online ist.
  • 3A bis 3C stellen Beispielprozesse zum Mindern von Bedrohungen von Arbeitslasten auf Container-Grundlage gemäß hierin beschriebenen Aspekten dar. In einigen Beispielen werden die Prozesse durch ein oder mehrere Computersysteme wie den hierin beschriebenen ausgeführt, die ein Steuersystem, ein Computersystem von einer oder verbunden mit einer Hosting-Umgebung von Containern und/oder ein oder mehrere andere Computersysteme umfassen können.
  • Zunächst unter Bezugnahme auf 3A beginnt der Prozess mit einem Erkennen (302) eines Angriffs gegen eine Hosting-Umgebung von Containern. In einem Beispiel erfolgt diese Erkennung durch eine Sicherheitsverletzung einer Frontend-Komponente. Der Angriff könnte als eine potenzielle Kontaminierungsbedrohung für gehostete Container der Hosting-Umgebung von Containern erkannt werden. Die Hosting-Umgebung von Containern umfasst einen Pool von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool von Reserve-Containern mit Reserve-Containern, die für eine Bereitstellung in dem Pool von aktiven Containern bereit sind.
  • Auf Grundlage des Erkennens des Angriffs identifiziert (304) der Prozess eine Zeit bis zur Kontaminierung. Die Zeit bis zur Kontaminierung wird als Zeitraum angenommen, in dem ein aktiver Container des Pools von aktiven Containern infolge des Angriffs kontaminiert wird. In einigen Beispielen wird diese Zeit bis zur Kontaminierung zumindest anfänglich als ein Schätzwert angenommen. Die identifizierte Zeit bis zur Kontaminierung kann auf einen Anfangswert gesetzt werden, der als eine geschätzte Zeit bis zur Kontaminierung vorgegeben und auf Grundlage von Informationen über den erkannten Angriff identifiziert wird. Der Prozess könnte ferner ein Anpassen auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools von aktiven Containern aufweisen, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitgestellt wurde, und einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  • Der Prozess fährt mit einem Bestimmen (306) einer Rate zum Bereitstellen von neuen Containern für den Pool von Reserve-Containern auf Grundlage der identifizierten Zeit bis zur Kontaminierung und einem Bereitstellen (308) von neuen Containern in dem Pool von Reserve-Containern mit der bestimmten Rate fort. 3B, im Folgenden beschrieben, stellt einen Beispielprozess für ein Bestimmen einer derartigen Rate dar.
  • Außerdem fährt der Prozess von 3A mit einem Schritt 310 fort, in dem er aus dem Pool von aktiven Containern kontinuierlich aktive Container entfernt, die die Arbeitslast bedienen, und gleichzeitig Reserve-Container aus dem Pool von Reserve-Containern für den Pool von aktiven Containern bereitstellt, um die entfernten aktiven Container zu ersetzen und das Bedienen der Arbeitslast zu übernehmen. Das Entfernen der aktiven Container, die die Arbeitslast bedienen, und das zeitgleiche Bereitstellen kann ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, tatsächlich kontaminiert worden sind und/oder infolge des Angriffs als kontaminiert erkannt worden sind.
  • Der Prozess fährt während des kontinuierlichen Entfernens und des zeitgleichen Bereitstellens mit einem Überwachen (312), ob aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs kontaminiert sind, und einer optionalen Korrektur der Rate des Entfernens aus und des Bereitstellens in dem aktiven Pool fort. Somit kann das Korrigieren, zum Beispiel auf Grundlage des Überwachens, das erkennt, dass aktive Container des Pools von aktiven Containern infolge des erkannten Angriffs kontaminiert sind, eine Rate erhöhen, mit der aktive Container durch kontinuierliches Entfernen aus dem Pool von aktiven Containern entfernt werden. Das Erhöhen könnte die Rate so erhöhen, dass sie der bestimmten Rate entspricht, mit der zum Beispiel neue Container in dem Pool von Reserve-Containern bereitgestellt werden. Zusätzlich oder alternativ könnte der Prozess eine Rate verringern, mit der aktive Container aus dem Pool von aktiven Container entfernt werden durch das kontinuierliche Entfernen auf Grundlage von beispielsweise (i) dem Überwachen, das erkennt, dass aktive Container des Pools von aktiven Containern infolge des Angriffs nicht kontaminiert sind, wobei das Erkennen, dass die aktiven Container des Pools von aktiven Containern nicht kontaminiert sind, auf einem Konfigurieren der aktiven Container mit einer Korrektur des erkannten Angriffs beruht, und/oder (ii) dem Erkennen, dass der Angriff eingestellt wurde.
  • In einigen Ausführungsformen umfasst der Prozess ferner ein Ausführen eines ordnungsgemäßen Herunterfahrens eines entfernten aktiven Containers, wobei das ordnungsgemäße Herunterfahren ein Speichern eines Zustands des entfernten aktiven Containers umfasst, und ein zum Ersetzen des entfernten aktiven Containers bereitgestellter Reserve-Container die Arbeitslastverarbeitung durch Verwenden des gespeicherten Zustands des entfernten aktiven Containers wieder aufnimmt.
  • 3B stellt einen Beispielprozess für ein Bestimmen der Rate dar, mit der neue Container in dem Pool von Reserve-Containern bereitzustellen sind. Das Bestimmen kann auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast und einem Zeitraum zum Hochfahren und Bereitstellen eines neuen Containers in dem Pool von Reserve-Containern beruhen. Somit erhält (320) der Prozess diese Werte jeweils als Y, X und Z. Der Prozess bestimmt (322) anschließend die Rate als Z/Y * X = die Anzahl von Containern, die in jedem Zeitraum Z bereitzustellen sind.
  • 3C stellt eine beispielhafte Verarbeitung dar, die als Teil des kontinuierlichen Entfernens aus dem Pool von aktiven Containern und des Bereitstellens von Reserve-Containern für den Pool von aktiven Containern ausgeführt wird (310). Der Prozess überwacht (330) die Anzahl von Containern, die für den Pool von Bereitschaft/Reserve-Containern bereitgestellt werden. Der Prozess bestimmt (322), ob eine Anzahl von Reserve-Containern in dem Pool von Reserve-Containern an einem Zeitpunkt einen Schwellenwert erreicht. In Ausführungsformen beruht der Schwellenwert zu dem Zeitpunkt auf einer Anzahl von aktiven Containern in dem Pool von aktiven Containern. Auf Grundlage der Anzahl von Reserve-Containern, die in dem Pool von Reserve-Containern an einem Zeitpunkt den Schwellenwert erreichen (332, J), stellt der Prozess vorübergehend die Bereitstellung von neuen Containern für den Pool von Reserve-Containern mit der bestimmten Rate ein (334). Von Schritt 334 aus kehrt der Prozess zum Schritt 330 zurück, um mit der Überwachung der Anzahl von Reserve-Containern fortzufahren. Wenn in Schritt 332 bestimmt wurde, dass die Anzahl von Reserve-Containern einem Schwellenwert entspricht oder darüber liegt (332, N), fährt der Prozess mit einem Bestimmen (336) fort, ob die Anzahl von Reserve-Containern in dem Pool von Reserve-Containern der Anzahl von aktiven Containern in dem Pool von aktiven Containern entspricht. Ist dies der Fall (336, J), nimmt der Prozess die Bereitstellung von neuen Containern in dem Pool von Reserve-Containern mit der bestimmten Rate wieder auf. Von Schritt 338 aus, oder wenn in Schritt 336 bestimmt wurde, dass die Anzahl von Reserve-Containern nicht abgenommen hat, um der Anzahl von aktiven Containern zu entsprechen (336, N), kehrt der Prozess zum Schritt 330 zurück, um die Überwachung fortzusetzen.
  • Obwohl verschiedene Beispiele bereitgestellt werden, sind Variationen ohne Abweichen von einem Schutzumfang der Aspekte möglich.
  • Die hierin beschriebenen Prozesse können einzeln oder gemeinsam durch ein oder mehrere Computersysteme ausgeführt werden. 4 stellt ein weiteres Beispiel für ein derartiges Computersystem und zugehörige Einheiten zum Integrieren und/oder Verwenden von hierin beschriebenen Aspekten dar. Ein Computersystem kann hierin auch als Datenverarbeitungseinheit/-system, Datenverarbeitungseinheit/-system/-knoten oder einfach als Computer bezeichnet werden. Das Computersystem kann auf einer oder mehreren verschiedenen Systemarchitekturen und/oder Instruction-Set-Architecture-Anweisungen beruhen, wie zum Beispiel denjenigen, die beispielsweise von International Business Machines Corporation (Armonk, New York, USA) oder Intel Corporation (Santa Clara, Kalifornien, USA) angeboten werden.
  • 4 zeigt ein Computersystem 400 in Datenübertragung mit einer oder mehreren externen Einheiten 412. Das Computersystem 400 umfasst einen oder mehrere Prozessoren 402, zum Beispiel eine oder mehrere Zentraleinheiten (CPUs). Ein Prozessor kann Funktionskomponenten umfassen, die für die Ausführung von Anweisungen verwendet werden, wie zum Beispiel Funktionskomponenten zum Abrufen von Programmanweisungen aus Speicherplätzen wie Cache oder Haupt-Arbeitsspeicher, zum Decodieren von Programmanweisungen und Ausführen von Programmanweisungen, zum Zugreifen auf den Arbeitsspeicher zum Ausführen von Anweisungen und zum Schreiben von Ergebnissen der ausgeführten Anweisungen. Ein Prozessor 402 kann auch ein oder mehrere Register umfassen, die von einer oder mehreren der Funktionskomponenten zu verwenden sind. Das Computersystem 400 umfasst auch einen Arbeitsspeicher 404, Eingabe/Ausgabe- (E/A) Einheiten 408 und E/A-Schnittstellen 410, die mit dem bzw. den Prozessoren und miteinander über einen oder mehrere Busse und/oder andere Verbindungen verbunden sein können. Busverbindungen stellen einen oder mehrere von beliebigen Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeicher-Controllers, eines Peripheriebusses, eines Accelerated Graphics Ports (beschleunigter Grafikanschluss) und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen den Industry Standard Architecture- (ISA), den Micro Channel Architecture-(MCA), den Enhanced ISA- (EISA), den lokalen Video Electronics Standards Association-(VESA) Bus und den Peripheral Component Interconnect- (PCI) Bus.
  • Der Arbeitsspeicher 404 kann ein Haupt- oder System-Arbeitsspeicher (z.B. Direktzugriffsspeicher), der bei der Ausführung von Programmanweisungen verwendet wird, eine oder mehrere Speichereinheiten wie zum Beispiel eine oder mehrere Festplatten, Flash-Datenträger oder optische Datenträger und/oder Cachespeicher sein oder diese umfassen. Der Arbeitsspeicher 404 kann zum Beispiel einen Cache enthalten, wie beispielsweise einen gemeinsam genutzten Cache, der mit lokalen Caches (zu Beispielen zählen L1-Cache, L2-Cache usw.) des bzw. der Prozessoren 402 verbunden sein kann. Außerdem kann der Arbeitsspeicher 404 mindestens ein Computerprogrammprodukt mit einem Satz (z.B. mindestens einem) von Programm-Modulen, Anweisungen, Code oder dergleichen sein und diese umfassen, der bzw. die konfiguriert ist bzw. sind, Funktionen von hierin beschriebenen Ausführungsformen bei Ausführung durch einen oder mehrere Prozessoren auszuführen.
  • Der Arbeitsspeicher 404 kann ein Betriebssystem 405 und andere Computerprogramme 406 speichern, wie zum Beispiel ein oder mehrere Computerprogramme/Anwendungen, die ausgeführt werden, um hierin beschriebene Aspekten auszuführen. Insbesondere können Programme/Anwendungen durch einen Computer lesbare Programmanweisungen umfassen, die zum Ausführen von Funktionen von Ausführungsformen von hierin beschriebenen Aspekten konfiguriert sein können.
  • Beispiele für E/A-Einheiten 408 umfassen Mikrofone, Lautsprecher, globale Positionierungssystem- (GPS) Einheiten, Kameras, Leuchten, Beschleunigungsmesser, Gyroskope, Magnetometer, Sensoreinheiten, die zum Erfassen von Licht, Nähe, Herzfrequenz, Körper- und/oder Umgebungstemperatur, Blutdruck und/oder Hautwiderstand und Aktivitätsmonitore konfiguriert sind, sie sind aber nicht darauf beschränkt. Eine E/A-Einheit kann, wie gezeigt, in das Computersystem integriert sein, obwohl in einigen Ausführungsformen eine E/A-Einheit als eine externe Einheit (412) betrachtet werden kann, die über eine oder mehrere E/A-Schnittstellen 410 mit dem Computersystem verbunden ist.
  • Das Computersystem 400 kann mit einer oder mehreren externen Einheiten 412 über eine oder mehrere E/A-Schnittstellen 410 in Datenübertragung stehen. Beispielhafte externe Einheiten umfassen eine Tastatur, eine Zeige-Einheit, eine Anzeige und/oder alle anderen Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem 400 zu interagieren. Andere beispielhafte externe Einheiten umfassen alle Einheiten, die es dem Computersystem 400 ermöglichen, mit einem oder mehreren anderen Datenverarbeitungssystemen oder Peripherie-Einheiten Daten auszutauschen, wie zum Beispiel einem Drucker. Eine Netzwerkschnittstelle/ein Adapter ist eine beispielhafte E/A-Schnittstelle, die es dem Computersystem 400 ermöglicht, mit einem oder mehreren Netzwerken Daten auszutauschen, wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinem Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet), wodurch eine Datenübertragung mit anderen Datenverarbeitungseinheiten oder - systemen, Speichereinheiten und dergleichen bereitgestellt wird. Schnittstellen auf Ethernet-Grundlage (wie zum Beispiel WLAN) und Bluetooth®-Adapter sind nur Beispiele der derzeit verfügbaren Typen von Netzwerk-Adaptern, die in Computersystemen verwendet werden (BLUETOOTH ist eine eingetragene Marke der Bluetooth SIG, Inc., Kirkland, Washington, U.S.A.).
  • Die Datenübertragung zwischen E/A-Schnittstellen 410 und externen Einheiten 412 kann über eine oder mehrere drahtgebundene und/oder drahtlose Datenübertragungsverbindungen 411 erfolgen, wie zum Beispiel drahtgebundene oder drahtlose Verbindungen auf Ethernet-Grundlage. Zu Beispielen für drahtlose Verbindungen zählen zellulare, WLAN-, Bluetooth®-, auf Abstand beruhende, Nahbereichs- oder andere Typen von drahtlosen Verbindungen. Ganz allgemein kann eine Datenübertragungs-Verbindung bzw. können Datenübertragungs-Verbindungen 411 jede geeignete drahtlose und/oder drahtgebundene Datenübertragungs-Verbindung bzw. Datenübertragungs-Verbindungen zum Übertragen von Daten sein.
  • Eine bzw. mehrere spezielle externe Einheiten 412 können eine oder mehrere Datenspeichereinheiten umfassen, die ein oder mehrere Programme, eine oder mehrere durch einen Computer lesbare Programmanweisungen und/oder Daten usw. speichern kann bzw. können. Das Computersystem kann entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien (z.B. als externe Einheit des Computersystems) umfassen und/oder mit diesen verbunden sein und in Datenübertragung stehen. Zum Beispiel kann es ein nicht entfernbares, nicht flüchtiges magnetisches Medium (das in der Regel als „Festplattenlaufwerk“ bezeichnet wird), ein Magnetplattenlaufwerk zum Auslesen aus und Beschreiben von einer entfernbaren, nicht flüchtigen Magnetplatte (z.B. eine „Floppy Disk“) und/oder ein optisches Plattenlaufwerk zum Auslesen aus oder Beschreiben von einer entfernbaren, nicht flüchtigen optischen Platte, wie beispielsweise ein CD-ROM, DVD-ROM, oder einen anderen optischen Datenträger umfassen oder mit diesen verbunden sein.
  • Das Computersystem 400 kann mit zahlreichen weiteren Umgebungen oder Konfigurationen für Universal- oder Sonder-Datenverarbeitungssysteme betriebsfähig sein. Das Computersystem 400 kann in verschiedenen Formen vorliegen, wobei wohlbekannte Beispiele dafür Personal-Computer- (PC) Systeme, Servercomputersysteme wie beispielsweise Benachrichtigungsserver, Thin Clients, Thick Clients, Workstations, Laptops, Handheld-Einheiten, mobile Einheiten/Computer wie beispielsweise Smartphones, Tablets und Wearable-Einheiten, Multiprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Telefonie-Einheiten, Netzwerkvorrichtungen (wie beispielsweise Edge-Appliances), Virtualisierungseinheiten, Speicher-Controller, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen umfassen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen umfassen, ohne auf diese beschränkt zu sein.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud Computing ist ein Dienstbereitstellungsmodell 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 Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
  • Die Eigenschaften sind 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). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Die Dienstmodelle sind wie folgt:
  • Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten 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).
  • Die Nutzungsmodelle sind wie folgt:
  • 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 enthält.
  • Unter folgender Bezugnahme auf 5 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N, Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 5 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • Unter folgender Bezugnahme auf 6 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud Computing-Umgebung 50 (5) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 6 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und vernetzte Komponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 82 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. 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 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 84 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 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.
  • Eine Arbeitslastenschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lifecycle-Management 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und Minderung von Container-Bedrohungen 96.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, 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 eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen 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 CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, 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 andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene 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 Weitverkehrsnetzwerk 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, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, 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 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-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder 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 Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass 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 Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder 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 den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich als ein Schritt erreicht werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Zusätzlich zu Vorgenanntem können ein oder mehrere Aspekte durch einen Dienstanbieter bereitgestellt, angeboten, eingesetzt, verwaltet, gewartet werden usw., der eine Verwaltung von Umgebungen von Kunden anbietet. Zum Beispiel kann der Dienstanbieter Computercode und/oder eine Computer-Infrastruktur erstellen, pflegen, unterstützen usw., die einen oder mehrere Aspekte für einen oder mehrere Kunden ausführen. Im Gegenzug kann der Dienstanbieter zum Beispiel eine Bezahlung von dem Kunden unter einem Abonnement und/oder einer Gebührenvereinbarung erhalten. Zusätzlich oder alternativ kann der Dienstanbieter eine Bezahlung aus dem Verkauf von Werbeinhalten an einen oder mehrere Fremdanbieter erhalten.
  • In einem Aspekt kann eine Anwendung zum Ausführen von einer oder mehreren Ausführungsformen verwendet werden. Zum Beispiel weist die Verwendung einer Anwendung ein Bereitstellen einer Computer-Infrastruktur auf, die fähig ist, eine oder mehrere Ausführungsformen auszuführen.
  • Als weiterer Aspekt kann eine Datenverarbeitungs-Infrastruktur verwendet werden, die ein Integrieren von durch einen Computer lesbarem Code in ein Datenverarbeitungssystem aufweist, in dem der Code in Kombination mit dem Datenverarbeitungssystem fähig ist, eine oder mehrere Ausführungsformen auszuführen.
  • Als noch ein weiterer Aspekt kann ein Prozess zum Integrieren einer Datenverarbeitungs-Infrastruktur bereitgestellt werden, die ein Integrieren von durch einen Computer lesbarem Code in ein Computersystem aufweist. Das Computersystem weist ein durch einen Computer lesbares Medium auf, wobei das Computer-Medium eine oder mehrere Ausführungsformen aufweist. Der Code in Kombination mit dem Computersystem ist fähig, eine oder mehrere Ausführungsformen auszuführen.
  • Obwohl verschiedene Ausführungsformen oben beschrieben werden, sind dies nur Beispiele. Zum Beispiel können Datenverarbeitungsumgebungen von anderen Architekturen verwendet werden, um eine oder mehrere Ausführungsformen zu integrieren und zu verwenden.

Claims (20)

  1. Durch einen Computer (400) umgesetztes Verfahren, das aufweist: Erkennen (302) eines Angriffs auf eine Hosting-Umgebung (100, 104) von Containern, wobei der Angriff eine potenzielle Kontaminierungsbedrohung (110) für gehostete Container der Hosting-Umgebung (100, 104) von Containern darstellt, wobei die Hosting-Umgebung (100, 104) von Containern einen Pool (208) von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool (206) von Reserve-Containern mit Reserve-Containern umfasst, die für eine Bereitstellung in dem Pool (208) von aktiven Containern bereit sind; Identifizieren (304), auf Grundlage des Erkennens (302) des Angriffs, einer Zeit bis zur Kontaminierung, wobei die Zeit bis zur Kontaminierung als Zeitraum für einen aktiven Container des Pools (208) von aktiven Containern angenommen wird, um infolge des Angriffs kontaminiert zu werden; Bereitstellen (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit einer bestimmten Rate, die auf der identifizierten Zeit bis zu Kontaminierung beruht; und kontinuierliches Entfernen (310), aus dem Pool (208) von aktiven Containern, von aktiven Containern, die die Arbeitslast bedienen, und gleichzeitiges Bereitstellen von Reserve-Containern aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern, um die entfernten aktiven Container zu ersetzen und ein Bedienen der Arbeitslast zu übernehmen.
  2. Verfahren nach Anspruch 1, wobei das Entfernen (310) der aktiven Container, die die Arbeitslast bedienen, und das gleichzeitige Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  3. Verfahren nach Anspruch 1, das ferner ein Bestimmen (306) der Rate aufweist, mit der neue Container in dem Pool (206) von Reserve-Containern bereitgestellt (204, 308) werden, wobei das Bestimmen (306) auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast und einem Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern beruht.
  4. Verfahren nach Anspruch 3, wobei die bestimmte Rate als Z/Y * X bestimmt (322) wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen ist.
  5. Verfahren nach Anspruch 1, das ferner auf Grundlage dessen, dass eine Anzahl von Reserve-Containern in dem Pool (206) von Reserve-Containern zu einem Zeitpunkt einen Schwellenwert erreicht, ein temporäres Einstellen (334) des Bereitstellens (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit der bestimmten Rate aufweist, wobei der Schwellenwert auf einer Anzahl von aktiven Containern in dem Pool (208) von aktiven Containern zu dem Zeitpunkt beruht.
  6. Verfahren nach Anspruch 5, das ferner ein Wiederaufnehmen (338) des Bereitstellens (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit der bestimmten Rate auf Grundlage der Anzahl von Reserve-Containern in dem Pool (206) von Reserve-Containern aufweist, die der Anzahl von aktiven Containern in dem Pool (208) von aktiven Containern entspricht (336).
  7. Verfahren nach Anspruch 1, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Anpassen auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools (208) von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  8. Verfahren nach Anspruch 1, das ferner ein Überwachen (312) während des kontinuierlichen Entfernens (310) und gleichzeitigen Bereitstellens aufweist, ob aktive Container des Pools (208) von aktiven Containern infolge des erkannten Angriffs kontaminiert sind.
  9. Verfahren nach Anspruch 8, wobei auf Grundlage des Überwachens (312), das erkennt, dass aktive Container des Pools (208) von aktiven Containern infolge des erkannten Angriffs kontaminiert sind, eine Rate erhöht wird, mit der aktive Container aus dem Pool (208) von aktiven Containern durch kontinuierliches Entfernen (310) entfernt werden, wobei das Erhöhen die Rate so erhöht, dass sie der bestimmten Rate entspricht, mit der neue Container in dem Pool (206) von Reserve-Containern bereitgestellt (204, 308) werden.
  10. Verfahren nach Anspruch 8, wobei auf Grundlage von mindestens einer Auswahl aus der Gruppe, die (i) aus dem Überwachen (312), das erkennt, dass aktive Container des Pools (208) von aktiven Containern infolge des Angriffs nicht kontaminiert sind, wobei das Erkennen, dass die aktiven Container des Pools (208) von aktiven Containern nicht kontaminiert sind, auf einem Konfigurieren der aktiven Container mit einer Korrektur des erkannten Angriffs beruht, und (ii) dem Erkennen besteht, dass der Angriff eingestellt wurde, wobei eine Rate, mit der aktive Container aus dem Pool (208) von aktiven Containern entfernt werden, durch das kontinuierliche Entfernen (310) verringert wird.
  11. Verfahren nach Anspruch 1, das ferner ein Ausführen eines ordnungsgemäßen Herunterfahrens eines entfernten aktiven Containers aufweist, wobei das ordnungsgemäße Herunterfahren ein Speichern eines Zustands des entfernten aktiven Containers aufweist, wobei ein zum Ersetzen des entfernten aktiven Containers bereitgestellter Reserve-Container die Arbeitslastverarbeitung durch Verwenden des gespeicherten Zustands des entfernten aktiven Containers wieder aufnimmt.
  12. Computersystem (400), das aufweist: einen Arbeitsspeicher (404); und einen Prozessor (402), der mit dem Arbeitsspeicher (404) in Datenübertragung steht, wobei das Computersystem (400) konfiguriert ist, um ein Verfahren auszuführen, das aufweist: Erkennen (302) eines Angriffs auf eine Hosting-Umgebung (100, 104) von Containern, wobei der Angriff eine potenzielle Kontaminierungsbedrohung (110) für gehostete Container der Hosting-Umgebung (100, 104) von Containern darstellt, wobei die Hosting-Umgebung (100, 104) von Containern einen Pool (208) von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool (206) von Reserve-Containern mit Reserve-Containern umfasst, die für eine Bereitstellung in dem Pool (208) von aktiven Containern bereit sind; Identifizieren (304), auf Grundlage des Erkennens (302) des Angriffs, einer Zeit bis zur Kontaminierung, wobei die Zeit bis zur Kontaminierung als Zeitraum für einen aktiven Container des Pools (208) von aktiven Containern angenommen wird, um infolge des Angriffs kontaminiert zu werden; Bereitstellen (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit einer bestimmten Rate, die auf der identifizierten Zeit bis zu Kontaminierung beruht; und kontinuierliches Entfernen (310), aus dem Pool (208) von aktiven Containern, von aktiven Containern, die die Arbeitslast bedienen, und gleichzeitiges Bereitstellen von Reserve-Containern aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern, um die entfernten aktiven Container zu ersetzen und ein Bedienen der Arbeitslast zu übernehmen.
  13. Computersystem (400) nach Anspruch 12, wobei das Entfernen (310) der aktiven Container, die die Arbeitslast bedienen, und das gleichzeitige Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  14. Computersystem (400) nach Anspruch 12, wobei das Verfahren ferner ein Bestimmen (306) der Rate aufweist, mit der neue Container in dem Pool (206) von Reserve-Containern bereitgestellt (204, 308) werden sollen, wobei das Bestimmen (306) auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast und einem Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern beruht, wobei die bestimmte Rate als Z/Y * X bestimmt (322) wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen sind.
  15. Computersystem (400) nach Anspruch 12, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Korrigieren auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools (208) von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
  16. Computersystem (400) nach Anspruch 12, wobei das Verfahren ferner aufweist: Überwachen (312) während des kontinuierlichen Entfernens (310) und zeitgleichen Bereitstellens, ob aktive Container des Pools (208) von aktiven Containern infolge des erkannten Angriffs kontaminiert sind; auf Grundlage von mindestens einer Auswahl aus der Gruppe, die (i) aus dem Überwachen (312), das erkennt, dass aktive Container des aktiven Pools (208) von Containern infolge des erkannten Angriffs nicht kontaminiert sind, wobei das Erkennen, dass die aktiven Container des Pools (208) von aktiven Containern nicht kontaminiert sind, auf einem Konfigurieren der aktiven Container mit einer Korrektur des erkannten Angriffs beruht, und (ii) dem Erkennen besteht, dass der Angriff eingestellt wurde, wobei eine Rate, mit der aktive Container aus dem Pool (208) von aktiven Containern entfernt werden, durch das kontinuierliche Entfernen (310) verringert wird.
  17. Computerprogrammprodukt, das aufweist: ein durch einen Computer (400) lesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen (96, 406) für eine Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren auszuführen, das aufweist: Erkennen (302) eines Angriffs auf eine Hosting-Umgebung (100, 104) von Containern, wobei der Angriff eine potenzielle Kontaminierungsbedrohung (110) für gehostete Container der Hosting-Umgebung (100, 104) von Containern darstellt, wobei die Hosting-Umgebung (100, 104) von Containern einen Pool (208) von aktiven Containern mit aktiven Containern zum Bedienen einer Arbeitslast und einen Pool (206) von Reserve-Containern mit Reserve-Containern umfasst, die für eine Bereitstellung in dem Pool (208) von aktiven Containern bereit sind; Identifizieren (304), auf Grundlage des Erkennens (302) des Angriffs, einer Zeit bis zur Kontaminierung, wobei die Zeit bis zur Kontaminierung als Zeitraum für einen aktiven Container des Pools (208) von aktiven Containern angenommen wird, um infolge des Angriffs kontaminiert zu werden; Bereitstellen (204, 308) von neuen Containern in dem Pool (206) von Reserve-Containern mit einer bestimmten Rate, die auf der identifizierten Zeit bis zu Kontaminierung beruht; und kontinuierliches Entfernen (310), aus dem Pool (208) von aktiven Containern, von aktiven Containern, die die Arbeitslast bedienen, und gleichzeitiges Bereitstellen von Reserve-Containern aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern, um die entfernten aktiven Container zu ersetzen und ein Bedienen der Arbeitslast zu übernehmen.
  18. Computerprogrammprodukt nach Anspruch 17, wobei das Entfernen (310) der aktiven Container, die die Arbeitslast bedienen, und das zeitgleiche Bereitstellen ohne Rücksicht darauf ausgeführt werden, ob die aktiven Container, die entfernt werden, infolge des Angriffs als kontaminiert erkannt worden sind.
  19. Computerprogrammprodukt nach Anspruch 17, wobei das Verfahren ferner ein Bestimmen (306) der Rate aufweist, mit der neue Container in dem Pool (206) von Reserve-Containern bereitgestellt (204, 308) werden sollen, wobei das Bestimmen (306) auf der Zeit bis zur Kontaminierung, einer Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast, und einem Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern beruht, wobei die bestimmte Rate als Z/Y * X bestimmt (322) wird, wobei Z der Zeitraum zum Hochfahren und Bereitstellen (204, 308) eines neuen Containers in dem Pool (206) von Reserve-Containern ist, Y die Zeit bis zur Kontaminierung ist, und X die Gesamtanzahl von zeitgleichen aktiven Containern zum Bedienen der Arbeitslast ist, und die bestimmte Rate eine Anzahl von Containern ist, die in jedem Zeitraum Z bereitzustellen sind.
  20. Computerprogrammprodukt nach Anspruch 17, wobei die identifizierte Zeit bis zur Kontaminierung auf einen Anfangswert gesetzt wird, der auf Grundlage von Informationen über den erkannten Angriff als eine geschätzte Zeit bis zur Kontaminierung vorab festgelegt wird, und wobei das Verfahren ferner ein Korrigieren auf Grundlage eines Erkennens einer tatsächlichen Kontaminierung eines aktiven Containers des Pools (208) von aktiven Containern aufweist, wobei die identifizierte Zeit bis zur Kontaminierung ein Zeitraum zwischen (i) einem ersten Zeitpunkt, an dem der aktive Container aus dem Pool (206) von Reserve-Containern für den Pool (208) von aktiven Containern bereitgestellt wurde, und (ii) einem zweiten Zeitpunkt ist, an dem der aktive Container infolge des Angriffs kontaminiert wurde.
DE112020003578.6T 2019-09-11 2020-08-27 Mindern von bedrohungen von arbeitslasten auf grundlage von containern Active DE112020003578B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/567,401 2019-09-11
US16/567,401 US11093610B2 (en) 2019-09-11 2019-09-11 Mitigating threats to container-based workloads
PCT/IB2020/057997 WO2021048673A1 (en) 2019-09-11 2020-08-27 Mitigating threats to container-based workloads

Publications (2)

Publication Number Publication Date
DE112020003578T5 DE112020003578T5 (de) 2022-04-14
DE112020003578B4 true DE112020003578B4 (de) 2023-12-28

Family

ID=74849383

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020003578.6T Active DE112020003578B4 (de) 2019-09-11 2020-08-27 Mindern von bedrohungen von arbeitslasten auf grundlage von containern

Country Status (5)

Country Link
US (1) US11093610B2 (de)
JP (1) JP2022548234A (de)
DE (1) DE112020003578B4 (de)
GB (1) GB2601427B (de)
WO (1) WO2021048673A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11799901B2 (en) 2020-01-23 2023-10-24 Salesforce, Inc. Predictive rate limiting system for cloud computing services
US11977761B2 (en) * 2020-02-21 2024-05-07 Salesforce, Inc. Predictive allocation of ephemeral containers for cloud computing services
US20230034197A1 (en) * 2021-08-02 2023-02-02 Capital One Services, Llc Forensic isolation of a production cloud computing and storage environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US20180027009A1 (en) 2016-07-20 2018-01-25 Cisco Technology, Inc. Automated container security
WO2018224242A1 (en) 2017-06-08 2018-12-13 British Telecommunications Public Limited Company Denial of service mitigation

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078797A1 (en) * 2008-07-29 2011-03-31 Novell, Inc. Endpoint security threat mitigation with virtual machine imaging
CN102053873B (zh) 2011-01-13 2012-12-05 浙江大学 一种缓存感知的多核处理器虚拟机故障隔离保证方法
FR2977050A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de detection d'attaques et de protection
US9094449B2 (en) 2011-09-14 2015-07-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
CN102571746B (zh) 2011-11-23 2014-11-05 西安交通大学 一种面向云计算环境侧通道攻击防御的虚拟机部署方法
US9229759B2 (en) 2012-10-17 2016-01-05 Microsoft Technology Licensing, Llc Virtual machine provisioning using replicated containers
US9794275B1 (en) * 2013-06-28 2017-10-17 Symantec Corporation Lightweight replicas for securing cloud-based services
US9294504B1 (en) * 2014-08-29 2016-03-22 Uchicago Argonne, Llc Multiple operating system rotation environment moving target defense
US9699201B2 (en) 2014-09-25 2017-07-04 International Business Machines Corporation Automated response to detection of threat to cloud virtual machine
US10567411B2 (en) * 2015-10-01 2020-02-18 Twistlock, Ltd. Dynamically adapted traffic inspection and filtering in containerized environments
US10915628B2 (en) * 2015-10-01 2021-02-09 Twistlock, Ltd. Runtime detection of vulnerabilities in an application layer of software containers
CA3015911C (en) * 2016-03-04 2023-01-24 Bladelogic, Inc. Provisioning of containers for virtualized applications
US11138030B2 (en) 2016-11-17 2021-10-05 Red Hat, Inc. Executing code referenced from a microservice registry
US10148684B2 (en) * 2017-01-27 2018-12-04 Oracle International Corporation Method and system for placing a workload on one of a plurality of hosts
US10503922B2 (en) 2017-05-04 2019-12-10 Dell Products L.P. Systems and methods for hardware-based security for inter-container communication
US10885189B2 (en) * 2017-05-22 2021-01-05 Microsoft Technology Licensing, Llc Isolated container event monitoring
US11620145B2 (en) * 2017-06-08 2023-04-04 British Telecommunications Public Limited Company Containerised programming
US11503051B2 (en) * 2018-01-11 2022-11-15 Perspecta Labs Inc. Migration of traffic flows

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US20180027009A1 (en) 2016-07-20 2018-01-25 Cisco Technology, Inc. Automated container security
WO2018224242A1 (en) 2017-06-08 2018-12-13 British Telecommunications Public Limited Company Denial of service mitigation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARAUJO, Frederico [et al.]: From Patches to Honey-Patches: Lightweight Attacker Misdirection, Deception, and Disinformation. In: CCS '14: Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, November 2014, S. 942–953. DOI: 10.1145/2660267.2660329
ARORA, Nipun [et al.]: Replay without recording of production bugs for service oriented applications. In: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, September 2018, S. 452–463. DOI: 10.1145/3238147.3238186

Also Published As

Publication number Publication date
WO2021048673A1 (en) 2021-03-18
GB2601427A (en) 2022-06-01
US11093610B2 (en) 2021-08-17
DE112020003578T5 (de) 2022-04-14
GB2601427B (en) 2023-03-15
JP2022548234A (ja) 2022-11-17
US20210073379A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
DE112020000558B4 (de) Dynamisches ändern einer isolierung einer containerisierten arbeitslast in reaktion auf eine erfassung eines auslösenden faktors
DE112020003578B4 (de) Mindern von bedrohungen von arbeitslasten auf grundlage von containern
DE102017217971B4 (de) Ermöglichen von Debugging von serverlosen Anwendungen mittels Graph-Rewriting
DE112018003006T5 (de) Erkennung und entschärfung von angriffen von aussen bei der datenverarbeitung
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
EP2642395B1 (de) Verfahren und Vorrichtung zum Ausführen von Workflow-Skripten
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
DE202012013448U1 (de) Prozessormodussperre
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112020004699T5 (de) Schützen von arbeitslasten in kubernetes
DE112020000280T5 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE102016222861A1 (de) Transparentes, sicheres Durchführen von Abrufvorgängen
DE112020002189T5 (de) Container-basierte anwendungen
DE112020000912T5 (de) Verwalten von software-programmen
DE112018004465T5 (de) Systeme und Verfahren zum Überwachen eines Köders für den Schutz von Benutzern vor Sicherheitsbedrohungen
DE112016006308T5 (de) Erweiterte virtuelle Funktionsfähigkeiten in einer virtualisierten Netzwerkumgebung
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021001639T5 (de) Schutz von computeranlagen vor bösartigen angriffen
DE112018004284T5 (de) Dynamisches neuzusammenstellen von patch-gruppen unter verwendung von stream-clustering
DE102016122390A1 (de) Identifizierung und Entfernung von virtuellen Zombie-Maschinen
DE112012006736T5 (de) Empfangen eines Update-Moduls durch Zugreifen auf eine Netzwerkstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division