DE112019005729T5 - Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente - Google Patents

Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente Download PDF

Info

Publication number
DE112019005729T5
DE112019005729T5 DE112019005729.4T DE112019005729T DE112019005729T5 DE 112019005729 T5 DE112019005729 T5 DE 112019005729T5 DE 112019005729 T DE112019005729 T DE 112019005729T DE 112019005729 T5 DE112019005729 T5 DE 112019005729T5
Authority
DE
Germany
Prior art keywords
container
security
test
procedure according
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019005729.4T
Other languages
English (en)
Inventor
Giuseppe Ciano
Luigi Pichetti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019005729T5 publication Critical patent/DE112019005729T5/de
Pending legal-status Critical Current

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die vorliegende Offenbarung bezieht sich auf zugehörige Verfahren, Systeme und Medien, die Anweisungen zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente enthalten, die in einer Laufzeitumgebung auf Container-Grundlage implementierbar ist. Das Verfahren weist ein Empfangen eines Auslösers auf, wobei der Auslöser angibt, dass eine Schicht eines Containers innerhalb der Laufzeitumgebung auf Container-Grundlage auf Sicherheitsrisiken zu prüfen ist. Eine Prüfschicht des Containers, die auf Sicherheitsrisiken zu prüfen ist, wird identifiziert. Es wird ermittelt, dass für die Prüfschicht gemäß einem Prüfkriterium zuvor keine Prüfung auf Sicherheitsrisiken durchgeführt wurde, und als Reaktion auf diese Ermittlung wird ermittelt, dass eine Sicherheitsanalyse ein Sicherheitsrisiko angibt. Als Reaktion auf diese Ermittlung kann eine Korrekturmaßnahme eingeleitet werden.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das Gebiet von digitalen Computersystemen und im Besonderen auf ein Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll.
  • Infolge von technologischen Entwicklungen hat Technologie zur Virtualisierung von Ressourcen an Bedeutung gewonnen. Zusätzlich zu installierten, gängigen nativen Anwendungen enthält der Computer eines Benutzers häufig Produkte, die in Virtualisierungsumgebungen verfügbar sind. Diese virtuellen Umgebungen können auf einer Desktop-Oberfläche des Computers anzeigbar sein und können in Kategorien wie z.B. virtuelle Maschinen, Container und virtuelle Appliances zusammengefasst werden. Allerdings ist das Überwachen der Container eine schwierige Aufgabe.
  • KURZDARSTELLUNG
  • Einige Ausführungsformen der vorliegenden Offenbarung lösen die technische Problemstellung, die darin besteht, die Effizienz eines Betriebs von Laufzeitumgebungen auf Container-Grundlage zu verbessern. Die hier offenbarte technische Lösung stellt ein System und ein zugehöriges Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente bereit, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll. Vorteilhafte Ausführungsformen werden im Folgenden beschrieben. Ausführungsformen der vorliegenden Erfindung können frei miteinander kombiniert werden, sofern sie sich nicht gegenseitig ausschließen.
  • Bei einem Aspekt wird ein durch einen Computer realisiertes Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente bereitgestellt, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll. Das Verfahren kann ein Empfangen eines Auslösers aufweisen, wobei der Auslöser angibt, dass eine Schicht eines Containers innerhalb der Laufzeitumgebung auf Container-Grundlage auf Sicherheitsrisiken zu prüfen ist. Das Verfahren kann des Weiteren ein Identifizieren einer Prüfschicht des Containers aufweisen, die auf Sicherheitsrisiken zu prüfen ist. Das Verfahren kann ermitteln, dass für die Prüfschicht gemäß einem Prüfkriterium zuvor keine Prüfung auf Sicherheitsrisiken durchgeführt wurde, woraufhin es als Reaktion auf das Ermitteln, dass die Prüfung auf Sicherheitsrisiken zuvor nicht durchgeführt wurde, ermitteln kann, dass eine Sicherheitsanalyse ein Sicherheitsrisiko angibt. Als Reaktion auf das Ermitteln, dass die Sicherheitsanalyse das Sicherheitsrisiko angibt, kann das Verfahren des Weiteren eine Korrekturmaßnahme einleiten.
  • Ein weiterer Aspekt enthält ein Computersystem zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll. Das Computersystem kann einen Prozessor eines Container-Schwachstellen-Advisors (Container Vulnerability Advisors, CVA) aufweisen, der konfiguriert wird, um Anweisungen auszuführen, die bei Ausführung in dem Prozessor den CVA veranlassen, einen Auslöser zu empfangen, wobei der Auslöser angibt, dass eine Schicht des Containers auf Sicherheitsrisiken zu prüfen ist. Der Prozessor kann des Weiteren konfiguriert werden, um Anweisungen auszuführen, die eine Prüfschicht des Containers angeben, welche auf Sicherheitsrisiken zu prüfen ist, und gemäß einem Prüfkriterium ermitteln, wann für die Prüfschicht zuvor eine Prüfung auf Sicherheitsrisiken durchgeführt wurde. Wenn die Ermittlung negativ ausfällt, können die Anweisungen den Prozessor veranlassen, eine Sicherheitsanalyse für die Prüfschicht durchzuführen. Wenn die Sicherheitsanalyse ein Sicherheitsrisiko angibt, können die Anweisungen den Prozessor veranlassen, eine Korrekturmaßnahme einzuleiten. Wenn die Sicherheitsanalyse kein Sicherheitsrisiko angibt, können die Anweisungen den Prozessor veranlassen, die Einleitung der Korrekturmaßnahme zu überspringen. Wenn die Ermittlung positiv ausfällt, können die Anweisungen den Prozessor veranlassen, die Durchführung der Sicherheitsanalyse für die Prüfschicht zu überspringen.
  • Bei einem weiteren Aspekt kann ein Computerprogrammprodukt bereitgestellt werden, das ein durch einen Computer lesbares Speichermedium aufweist, auf dem durch einen Computer lesbarer Programmcode enthalten ist, wobei der durch einen Computer lesbare Programmcode konfiguriert wird, um verschiedene hier beschriebene Verfahrensoperationen durchzuführen.
  • Figurenliste
  • Die in der vorliegenden Offenbarung enthaltenen Zeichnungen sind in die Beschreibung eingebettet und bilden einen Bestandteil hiervon. Sie veranschaulichen Beispiel-Ausführungsformen der vorliegenden Offenbarung und erläutern neben der Beschreibung verschiedene Grundsätze der Offenbarung. Die Zeichnungen veranschaulichen lediglich typische Ausführungsformen und bilden keine Beschränkung der Offenbarung.
    • 1 ist ein Blockschaubild eines Beispiels für ein auf einen Computer gestütztes System gemäß einigen Ausführungsformen der vorliegenden Offenbarung, das für eines oder mehrere Verfahrenselemente verwendet werden kann.
    • 2 ist ein Ablaufplan eines Beispielverfahrens gemäß einigen Ausführungsformen der vorliegenden Offenbarung, das zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente verwendet werden kann, die in einer Laufzeitumgebung auf Container-Grundlage implementierbar ist.
    • 3 ist ein Blockschaubild eines Beispiels für ein Container-Verwaltungssystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung, das für eine Erkennung und Beseitigung von Sicherheitsschwachstellen der in Containern installierten Anwendungen verwendet werden kann.
  • Obwohl die hier beschriebenen Ausführungsformen für verschiedene Abwandlungen und alternative Formen offen sind, wurden Besonderheiten hiervon in den Zeichnungen beispielhaft gezeigt und werden im Folgenden detailliert beschrieben. Die unten beschriebenen bestimmten Ausführungsformen sind nicht in einem beschränkenden Sinne zu verstehen. Vielmehr sollen alle Abwandlungen, Entsprechungen und Alternativen abgedeckt sein, die unter den gedanklichen Wesensgehalt und Geltungsbereich der Erfindung fallen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung beziehen sich im Allgemeinen auf das Gebiet von digitalen Computersystemen und im Besonderen auf ein Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll. Obwohl die vorliegende Offenbarung nicht notwendigerweise auf solche Anwendungen beschränkt ist, lassen sich verschiedene Aspekte der Offenbarung besser würdigen, indem die verschiedenen Beispiele in diesem Kontext erörtert werden.
  • Einige Ausführungsformen des Verfahrens können eine Erkennung einer Sicherheitsgefährdung während der Laufzeit ermöglichen, wenn eine Container-Instanz erstellt wird, ohne dass hierfür innerhalb des Containers ein wie auch immer gearteter Agent installiert werden muss. Einige Ausführungsformen des Verfahrens können verhindern, dass der Agent innerhalb des Containers verwendet wird, und können somit eine Überprüfung der Container ermöglichen, ohne dass ihr schlanker Entwurf beeinträchtigt wird und ohne dass mehrere, miteinander konkurrierende Prozesse/Agenten innerhalb eines Containers ausgeführt werden. Entsprechend der erkannten Gefährdung kann eine geeignete Maßnahme ergriffen werden, um den Container (und seine künftigen Ausführungen) zu verwalten, wodurch Sicherheitsprobleme auf ein Mindestmaß verringert werden.
  • Im Gegensatz zu einer herkömmlichen Herangehensweise, bei der Schwachstellenprüfungen auf Grundlage eines manuellen Aufrufs durchgeführt werden, können einige Ausführungsformen des Verfahrens Schwachstellenprüfungen ermöglichen, indem sie einen Publish/Subscribe-Ansatz verwenden, der auf Grundlage von externen, als Auslöser dienenden Ereignissen ausgelöst werden kann.
  • Docker® ist ein von Docker, Inc. bereitgestellter Container-Verwaltungsdienst, um Anwendungen einfach zu entwickeln und sie in Container zu packen, die ohne Weiteres implementiert werden können. Eine Dockerfile-Datei ist ein Textdokument, das Konfigurationsinformationen und Befehle zum Erstellen eines Container-Images enthält. In einem Docker-System sind Docker-Images Nur-Lese-Vorlagen, aus denen heraus Docker-Container gestartet werden können; jedes Docker-Image kann eine Abfolge von Schichten enthalten. Diese Schichten können von allen Containern geteilt werden, die auf ein und demselben System installiert sind. Die Container können eine Instanz eines Container-Images sein. Das Container-Image kann zum Beispiel ein Docker-Image sein. Wenn diese Schichten bereits auf Schwachstellen analysiert wurden, werden sie während einer Implementierung oder einem Start eines neuen Containers aus demselben Image heraus nicht erneut geprüft. Anders ausgedrückt müssen Sicherheitsrisiken, die für mindestens eine Schicht eines bestimmten Containers bereits geprüft wurden, für einen weiteren Container, der eine Instanz desselben Container-Images wie der bestimmte Container ist, nicht erneut geprüft werden. Dies kann die Leistung von Umgebungen auf Container-Grundlage verbessern.
  • Einige Ausführungsformen des Verfahrens können eine rechtzeitige Erkennung von Gefährdungen der in den Containern installierten Anwendungen und eine Behebung der in den Containern entdeckten Sicherheitsgefährdungen ermöglichen. Dies kann besonders vorteilhaft sein, da die Container kurzlebige Elemente sein können und eine herkömmliche, durch einen Zeitplan gesteuerte Durchsuchung vermutlich nicht in der Lage sein dürfte, in derart kurzlebigen Containern Sicherheitsrisiken zu erkennen.
  • Der Begriff „Container“ kann sich auf einen Software-Container beziehen, der ein virtuelles Software-Objekt ist, welches alle Elemente umfasst, die notwendig sind, damit eine Anwendung innerhalb eines Betriebssystems ausgeführt werden kann. Der Container kann zum Beispiel eine Instanz eines Container-Images wie z.B. ein Docker-Image sein. Der Container kann die Abfolge von Schichten des betreffenden Container-Images aufweisen. Sobald das Container-Image startet, können ein oder mehrere Container ausgeführt werden. Container, die aus demselben Image erhalten werden, sind hinsichtlich ihres Anwendungscodes und ihrer Laufzeitabhängigkeiten identisch. Ohne hierauf beschränkt zu sein, enthalten Beispiele von Containern Docker-Container, bei denen es sich um Instanzen von Docker-Images handelt, die unter Verwendung eines „docker run“-Befehls ausgeführt werden können. Die Laufzeitumgebung auf Container-Grundlage kann ein Computersystem sein, das die Verwendung, Ausführung und die Erzeugung der Container ermöglicht.
  • Gemäß einigen Ausführungsformen kann der Auslöser von einer Verwaltungsentität der Laufzeitumgebung auf Container-Grundlage als Reaktion darauf empfangen werden, dass die Verwaltungsentität erkennt, dass ein neuer Container zu implementieren ist. Dies kann eine rechtzeitige Reaktion auf potenzielle Sicherheitsrisiken ermöglichen.
  • Gemäß einigen Ausführungsformen kann das Verfahren ein Erkennen eines in der Schicht vorhandenen Software-Produkts und ein Ermitteln aufweisen, ob eine Prüfung von Sicherheitsrisiken bereits durchgeführt wurde. Diese Prüfung kann auf Grundlage eines Abfragens eines Registers der virtuellen Umgebung (Virtual Environment Registry, VER) erfolgen, wobei Informationen verwendet werden, die das erkannte Software-Produkt identifizieren. Das VER kann eine zentralisierte Quelle von Informationen ermöglichen, die - insbesondere bei vielen Containern - Ressourcen einsparen kann, welche andernfalls notwendig wären, wenn die Informationen auf die Datenbank eines jeden Containers aufgeteilt werden würden.
  • Gemäß einigen Ausführungsformen kann die Sicherheitsanalyse ein Prüfen von mindestens einer Wissensdatenbank aufweisen, die Informationen zu bekannten Sicherheitsschwachstellen eines bestimmten Software-Produkts enthält. Dies kann eine genaue und konsistente Verarbeitung mehrerer Images und Container ermöglichen.
  • Gemäß einigen Ausführungsformen enthält die Laufzeitumgebung auf Container-Grundlage das Docker-System, und der Auslöser beruht auf einem „docker attach“-Ereignis, das durch das Docker-System erzeugt wird. Diese Ausführungsform kann eine nahtlose Integration einiger Ausführungsformen des vorliegenden Verfahrens in bestehende Systeme ermöglichen.
  • Obwohl Aspekte der vorliegenden Offenbarung unter Bezugnahme auf Docker-Container, Dockerfile-Dateien, Docker-Images und andere Befehle auf Docker-Grundlage erörtert werden, sollte klar sein, dass diese Ausführungsformen zum Zwecke der Veranschaulichung und nicht als Beschränkung bereitgestellt werden. Andere Container-Umgebungen weisen ähnliche Befehle und eine ähnliche Funktionalität auf, und Ausführungsformen der vorliegenden Offenbarung können auch in diesen anderen Container-Umgebungen realisiert werden. Zum Beispiel können andere Container-Umgebungen eine Funktionalität ähnlich dem „docker attach“-Ereignis aufweisen, wobei die standardmäßigen Eingabe-, Ausgabe- und/oder Fehlerströme eines Terminals mit einem ausgeführten Container verbunden werden können, was bei Ausführungsformen als Auslöser dienen kann. Die hier offenbarten verschiedenen Verfahren, Systeme und Programmprodukte können gemeinsam mit jedem geeigneten Container (z.B. Containern mit ähnlicher Funktionalität) und/oder Container-System realisiert werden, und die vorliegende Offenbarung sollte nicht auf die offenbarten Ausführungsformen beschränkt werden.
  • Darüber hinaus sollte klar sein, dass die oben erwähnten Vorteile Beispielvorteile sind und nicht als Beschränkung verstanden werden sollten. Ausführungsformen der vorliegenden Offenbarung können alle, einige oder keinen der oben erwähnten Vorteile enthalten und dennoch unter den gedanklichen Wesensgehalt und Geltungsbereich der vorliegenden Offenbarung fallen.
  • 1 ist ein Blockschaubild eines auf einen Computer gestützten allgemeinen Beispielsystems 100, das verwendet werden kann, um einige Ausführungsformen eines Verfahrens wie hier dargelegt zu realisieren.
  • Die hier beschriebenen Verfahren können teilweise nicht interaktiv und durch auf einen Computer gestützte Systeme automatisiert werden, wie beispielsweise Server oder eingebettete Systeme. In Beispiel-Ausführungsformen können die hier beschriebenen Verfahren in einem (teilweise) interaktiven System realisiert werden. Diese Verfahren können des Weiteren in einer Software 112, 122 (z.B. der Firmware 122), einer Hardware (Prozessor) 105 oder einer Kombination hiervon realisiert werden. In Beispiel-Ausführungsformen werden die hier beschriebenen Verfahren als ein ausführbares Programm in Software realisiert und durch einen digitalen Spezial- oder Universal-Computer wie z.B. einen Personal Computer, einen Arbeitsplatzrechner, einen Minicomputer oder einen Mainframe Computer ausgeführt. Das allgemeinste System 100 kann somit einen Universal-Computer 101 enthalten.
  • Wie in 1 gezeigt, enthält der Computer 101 in Beispiel-Ausführungsformen in Bezug auf die Hardware-Architektur einen Prozessor 105, einen Arbeitsspeicher (Hauptarbeitsspeicher) 110, der mit einem Arbeitsspeicher-Controller 115 verbunden wird, und eine oder mehrere Eingabe- und/oder Ausgabe(E/A)-Einheiten (oder Peripherieeinheiten) 10, 145, die über einen lokalen Eingabe/Ausgabe-Controller 135 kommunikativ verbunden werden. Bei dem Eingabe/Ausgabe-Controller 135 kann es sich um einen oder mehrere Busse oder andere kabelgebundene oder kabellose Verbindungen nach dem Stand der Technik handeln, ohne jedoch darauf beschränkt zu sein. Der Eingabe/Ausgabe-Controller 135 kann zusätzliche Elemente aufweisen, auf die aus Gründen der Einfachheit verzichtet wurde, wie beispielsweise Controller, Puffer (Caches), Treiber, Repeater und Empfänger, um eine Datenübertragung zu ermöglichen. Des Weiteren kann die lokale Schnittstelle Adress-, Steuerungs- und/oder Datenverbindungen enthalten, um eine geeignete Datenübertragung zwischen den oben erwähnten Komponenten zu ermöglichen. Wie hier beschrieben, können die E/A-Einheiten 10, 145 im Allgemeinen jede allgemeine Verschlüsselungskarte oder Smartcard enthalten, die nach dem Stand der Technik bekannt ist.
  • Der Prozessor 105 ist eine Hardware-Einheit zum Ausführen von Software, insbesondere von Software, die in dem Arbeitsspeicher 110 gespeichert wird. Der Prozessor 105 kann ein speziell hergestellter oder gewerblich erhältlicher Prozessor, eine Zentraleinheit (Central Processing Unit, CPU), ein Hilfsprozessor von mehreren dem Computer 101 zugehörigen Prozessoren, ein Mikroprozessor auf Halbleitergrundlage (in Form eines Mikrochips oder Chipsatzes), ein Makroprozessor oder allgemein jede Einheit oder Mehrzahl von Einheiten (z.B. in einer verteilten Architektur) zum Ausführen von Software-Anweisungen sein.
  • Der Arbeitsspeicher 110 kann ein beliebiges flüchtiges Arbeitsspeicherelement oder Kombinationen von flüchtigen Arbeitsspeicherelementen (z.B. einen Direktzugriffsspeicher (Random Access Memory, RAM) wie beispielsweise einen DRAM, SRAM, SDRAM usw.)) und nicht flüchtigen Arbeitsspeicherelementen (z.B. einen ROM, einen löschbaren, programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM), einen elektronisch löschbaren, programmierbaren Nur-Lese-Speicher (Electronically Erasable Programmable Read-Only Memory, EEPROM), einen programmierbaren Nur-Lese-Speicher (Programmable Read-Only Memory, PROM) enthalten. Der Arbeitsspeicher 110 kann eine verteilte Architektur aufweisen, bei der verschiedene Komponenten räumlich entfernt voneinander angeordnet sind, wobei der Prozessor 105 jedoch auf sie zugreifen kann.
  • Die Software in dem Arbeitsspeicher 110 kann ein oder mehrere getrennte Programme enthalten, von denen jedes eine geordnete Liste von ausführbaren Anweisungen zum Realisieren von logischen Funktionen aufweist, insbesondere von Funktionen, die in einigen Ausführungsformen enthalten sind. In dem Beispiel aus 1 enthält Software in dem Arbeitsspeicher 110 die Anweisungen 112, z.B. Anweisungen, um Datenbanken wie beispielsweise ein Datenbankverwaltungssystem zu verwalten.
  • Die Software in dem Arbeitsspeicher 110 kann auch ein geeignetes Betriebssystem (Operating System, OS) 111 enthalten. Das OS 111 kann die Ausführung anderer Computerprogramme steuern, z.B. der Software 112, um verschiedene Verfahren wie hier beschrieben zu realisieren.
  • Die hier beschriebenen Verfahren können in Form eines Quellprogramms 112, ausführbaren Programms (Objektcode), Skripts oder jeder anderen Entität vorliegen, die einen Satz von Anweisungen 112 aufweist, welche ausgeführt werden sollen. Beim Verwenden eines Quellprogramms kann das Programm dann über einen Compiler, Assembler, Interpreter oder dergleichen, der innerhalb des Arbeitsspeichers 110 enthalten sein kann, übersetzt werden, um in Verbindung mit dem OS 111 einwandfrei zu funktionieren. Darüber hinaus können die Verfahren als eine objektorientierte Programmiersprache geschrieben werden, die Klassen von Daten und Verfahren aufweist, oder als eine prozedurale Programmiersprache, die Routinen, Teilroutinen und/oder Funktionen aufweist.
  • In verschiedenen Beispiel-Ausführungsformen können eine herkömmliche Tastatur 150 und Maus 155 mit dem Eingabe/Ausgabe-Controller 135 verbunden werden. Andere Ausgabeeinheiten wie z.B. die E/A-Einheiten 145 können Eingabeeinheiten wie beispielsweise einen Drucker, einen Scanner, ein Mikrofon und dergleichen enthalten. Schließlich können die E/A-Einheiten 10, 145 des Weiteren Einheiten enthalten, die sowohl Eingaben als auch Ausgaben übertragen, z.B. eine Netzwerkschnittstellenkarte (Network Interface Card, NIC) oder einen Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), einen Hochfrequenz(HF-) oder anderweitigen Transceiver, eine Telefonschnittstelle, eine Bridge, einen Router und dergleichen.
  • Bei den E/A-Einheiten 10, 145 kann es sich um jede allgemeine Verschlüsselungskarte oder Smartcard handeln, die nach dem Stand der Technik bekannt ist. Das System 100 kann des Weiteren einen Anzeige-Controller 125 enthalten, der mit einer Anzeige 130 verbunden wird. Bei verschiedenen Beispiel-Ausführungsformen kann das System 100 des Weiteren eine Netzwerkschnittstelle zum Verbinden mit einem Netzwerk 165 enthalten. Das Netzwerk 165 kann ein Netzwerk auf IP-Grundlage zur Datenübertragung zwischen dem Computer 101 und einem beliebigen externen Server, Client und Ähnlichem über eine Breitbandverbindung sein. Das Netzwerk kann Daten zwischen dem Computer 101 und externen Systemen 30 übertragen und empfangen, die enthalten sein können, um einen Teil oder alle der hier dargelegten Verfahrensoperationen durchzuführen. In Beispiel-Ausführungsformen kann das Netzwerk 165 ein verwaltetes IP-Netzwerk sein, das durch einen Diensteanbieter administriert wird. Das Netzwerk 165 kann auf drahtlose Art und Weise realisiert werden, z.B. unter Verwendung von Drahtlosprotokollen und - technologien wie WLAN, WiMAX usw. Das Netzwerk 165 kann auch ein Netzwerk mit Paketvermittlung sein, z.B. ein lokales Netzwerk (Local Area Network, LAN), ein Weitverkehrsnetzwerk (Wide Area Network, WAN), ein Hochgeschwindigkeitsnetzwerk, das Internet-Netzwerk oder eine andere ähnliche Art von Netzwerkumgebung. Das Netzwerk 165 kann ein Fixed-Wireless-Netzwerk, ein drahtloses lokales Netzwerk (LAN), ein drahtloses Weitverkehrsnetzwerk (WAN), ein persönliches Netzwerk (Personal Area Network, PAN), ein virtuelles privates Netzwerk (Virtual Private Network, VPN), ein Intranet oder ein anderes geeignetes Netzwerksystem sein und kann Einrichtungen zum Empfangen und Übertragen von Signalen enthalten.
  • Wenn der Computer 101 ein PC, ein Arbeitsplatzrechner, eine intelligente Einheit oder dergleichen ist, kann die Software in dem Arbeitsspeicher 110 des Weiteren ein Basic Input Output System (BIOS) 122 enthalten. Das BIOS ist ein Satz von wesentlichen Softwareroutinen, der die Hardware beim Hochfahren initialisiert und prüft, das OS 111 startet und die Übertragung von Daten zwischen den Hardware-Einheiten ermöglicht. Das BIOS kann im ROM gespeichert werden, so dass es ausgeführt werden kann, wenn der Computer 101 aktiviert wird.
  • Wenn der Computer 101 in Betrieb ist, wird der Prozessor 105 so konfiguriert, dass er in dem Arbeitsspeicher 110 gespeicherte Software 112 ausführt, um Daten an den und von dem Arbeitsspeicher 110 zu übertragen und allgemein Operationen des Computers 101 gemäß der Software zu steuern. Anweisungen zum vollständigen oder teilweisen Ausführen der hier beschriebenen Verfahren und des OS 111 können durch den Prozessor 105 gelesen werden, wobei sie unter Umständen innerhalb des Prozessors 105 zwischengespeichert und dann ausgeführt werden.
  • Wenn die hier beschriebenen Systeme und Verfahren wie in 1 gezeigt in der Software 112 realisiert werden, kann die Software zum Realisieren der Verfahren in einem beliebigen durch einen Computer lesbaren Medium gespeichert werden, z.B. in einem Speicher 120, um durch oder in Verbindung mit einem beliebigen System oder Verfahren verwendet zu werden, das mit einem Computer in Zusammenhang steht. Der Speicher 120 kann einen Plattenspeicher wie z.B. einen HDD-Speicher aufweisen.
  • 2 ist ein Blockschaubild eines Beispiels für ein Container-Verwaltungssystem 200, das für eine Erkennung und Beseitigung von Sicherheitsschwachstellen der in Containern installierten Anwendungen verwendet werden kann.
  • Das Container-Verwaltungssystem 200 kann ein Register der virtuellen Umgebung (VER) 201 aufweisen, das Informationen zu den Containern/virtuellen Maschinen (VMs) 212A, B (zusammengenommen bzw. beispielhaft 212) und Schichten enthält, die in der VM 212 und den Containern 216 verfügbar sind. Das VER 201 enthält Informationen dazu, ob eine Schicht eines der Container bereits verarbeitet und untersucht wurde, um eine Sicherheitsanalyse der Schicht durchzuführen. Das Container-Verwaltungssystem 200 kann des Weiteren ein Register 202 von virtuellen Container-Richtlinien (Virtual Container Policies, VCPs) aufweisen, das Richtlinien enthält, die angewendet werden können, um eine erkannte Gefährdung oder ein Sicherheitsrisiko zu beseitigen. Das Container-Verwaltungssystem 200 kann des Weiteren einen Container-Schwachstellen-Advisor (CVA) 205 wie z.B. das System 100 aufweisen, der Schwachstellen in Zusammenhang mit den Containern erkennt und auf Grundlage des entdeckten Sicherheitsrisikos und der verfügbaren Richtlinien die geeignete Maßnahme ergreift. Das Container-Verwaltungssystem 200 kann des Weiteren ein Repository 207 von Sicherheits-Wissensdatenbanken (Security Knowledge Bases, SKBs) aufweisen, das Informationen zu Gefährdungen und Risiken enthält, die aus mehreren in 2 gezeigten SKBs wie z.B. der Wissensdatenbank (Knowledge Base, KB) IBM Security AppScan® 208 und der KB Common Vulnerabilities and Exposures (CVE®) 209 der MITRE Corporation gesammelt werden.
  • Das Container-Verwaltungssystem 200 kann des Weiteren einen Container-Verwalter 210 aufweisen, der als eine Verwaltungsentität für die Container dienen kann. Der Container-Verwalter 210 wird in 2 als eine von dem CVA 205 getrennte Komponente gezeigt, in einer weiteren Beispiel-Ausführungsform kann der Container-Verwalter 210 jedoch Teil des CVAs 205 sein, und somit lassen sich bestimmte hier beschriebene Operationen und strukturelle Aspekte in Bezug auf den CVA 205 auch als in Zusammenhang mit dem Container-Verwalter 210 stehend auffassen. Der Container-Verwalter 210 kann konfiguriert werden, um über eine Verbindung wie eine Kabelverbindung oder eine Netzwerkverbindung mit dem CVA 205 Daten auszutauschen, wenn der Container-Verwalter 210 und der CVA 205 physisch getrennte Entitäten sind, sowie über einen Systembus oder über Nachrichten oder anderweitige interne Datenübertragungsschemata, wenn sie physisch kombinierte Entitäten sind. Der Container-Verwalter 210 kann konfiguriert werden, um den Betrieb von Laufzeitumgebungen auf Container-Grundlage (VMs) 212 zu überwachen und/oder zu steuern. Die Laufzeitumgebung auf Container-Grundlage 212 kann ein virtualisiertes System aufweisen, um einen Betrieb einer virtualisierten Datenverarbeitungsressource zu ermöglichen, z.B. indem über zugeteilte und/oder diskrete Container 216 und/oder VMs eine Partition von Hardware-Ressourcen (z.B. C1, C2 und C3) verwendet wird.
  • Ein Container-Register 211 des Container-Verwaltungssystems 200 kann zum Beispiel Informationen zu den Laufzeitumgebungen 212 auf Container-Grundlage aufweisen. Wie in 2 gezeigt, können die Umgebungen 212 auf Container-Grundlage die Container 216 aufweisen.
  • Das Container-Verwaltungssystem 200 kann konfiguriert werden, um eine Sicherheitsgefährdung beim Ausführen eines bestimmten Containers 216 (oder ein Sicherheitsrisiko des Containers 216 selbst) zu erkennen und eine geeignete Korrektur anwenden, wie unten beschrieben.
  • In einer (durch das Sechseck angegebenen) Operation 1 kann der Start eines bestimmten Containers 216 oder ein beliebiges anderweitiges konfigurierbares Ereignis z.B. durch den CVA 205 erkannt werden. Eine solche Erkennung kann ein Empfangen eines Auslösers von dem Container-Verwalter 210 durch den CVA 205 aufweisen. Diese Erkennung kann ein Untersuchen des bestimmten Containers 216 z.B. durch den CVA 205 aufrufen. Die Erkennung kann zum Beispiel mit einem Ereignis-Empfangsprogramm realisiert werden, das bei einer Docker-Engine registriert wird und in der Lage ist, einen reaktiven „docker attach“-Befehl für einen gestarteten Container 216 auszuführen.
  • In einer Operation 2 können die Produktinformationen zu dem bestimmten Container durch den CVA 205 abgerufen werden, wobei dies über den Container-Verwalter 210 erfolgen kann. Eine oder mehrere Schichten 216a des Containers 216 können durch den CVA 205 untersucht werden, um die Produktinformationen zu Produkten, die innerhalb der Schicht verwendet werden, zu sammeln oder zu verifizieren. Die Produktinformationen können zum Beispiel Informationen zu Produkten wie z.B. Versionsnummern, Datumsangaben zum Release oder zu ausführbaren Dateien und dergleichen bereitstellen, die in den Schichten 216a des Containers 216 vorhanden sind und/oder ausgeführt werden. Für die eine oder die mehreren Container-Schichten 216a des bestimmten Containers 216 können auch weitere Informationen zu der bestimmten Container-Schicht 216a aus dem VER 201 abgerufen werden, um anschließend verarbeitet zu werden.
  • Die Container-Schichten 216a können zum Beispiel Schicht für Schicht wie folgt verarbeitet werden. Wenn eine aktuelle Container-Schicht 216a des bestimmten Containers 216 vor einem konfigurierbaren Zeitraum oder gemäß einem vordefinierten Kriterium untersucht wurde (z.B., um Sicherheitsrisiken der Schicht zu ermitteln), kann diese Schicht 216a übersprungen werden, und eine nächste Container-Schicht 216a kann verarbeitet werden. Wenn eine Container-Schicht 216a zuvor nicht untersucht wurde, können andere Informationen wie z.B. Produktbezeichner aus der Container-Schicht 216a extrahiert und in dem VER 201 gespeichert werden. In einer Beispielsituation, in der Docker-Container verwendet werden, kann dies realisiert werden, indem eine aktuelle Liste von Software-Identifikationstags nach ISO 19770-2 bzw. SWID-Tags (z.B. unter Verwendung eines Befehls „cp -R *.swidtag“) abgerufen und in einem privaten Speicher (z.B. „/common/<container-id>/...“) gespeichert wird.
  • Für jedes identifizierte (z.B. aus einem XML-Feld des SWID-Tags geparste) Produkt lässt sich in einer Operation 3 auf Grundlage eines Bezeichners ermitteln, ob ein Sicherheitsrisiko oder ein CVE (Common Vulnerabilities and Exposures, Allgemeine Schwachstellen und Auffälligkeiten) für den in dem VER 201 gespeicherten Produktbezeichner gemeldet wurde.
  • Für jedes identifizierte Produkt kann in einer Operation 4 auf Grundlage des Bezeichners wie z.B. des Software-Komponentenbezeichners ermittelt werden, ob für das identifizierte Produkt in den SKBs 207 ein CVE gemeldet wurde.
  • Wenn eine Gefährdung erkannt (z.B. ein CVE gemeldet) wird, kann in einer Operation 5 eine geeignete Korrekturmaßnahme, die durchzuführen ist und sich auf die Gefährdung bezieht, aus dem VCP-Register 202 abgerufen werden, z.B. können die Richtlinien, die dem erkannten Sicherheitsrisiko zugehörig sind, aus dem VCP-Register 202 gelesen werden. Diese Richtlinien oder Maßnahmen können durchgeführt werden, um das erkannte Sicherheitsrisiko zu beseitigen. Zum Beispiel kann das System wie beispielsweise der CVA 205 als Korrekturmaßnahme den ausgeführten Container 216 (den bestimmten Container) stoppen und/oder in Quarantäne stellen, verhindern, dass aus demselben ursprünglichen einleitenden Element (z.B. einer Dockerfile-Datei) des bestimmten Containers 216 neue Container generiert werden, eine Maßnahme auslösen, um das einleitende Ursprungselement (z.B. eine Dockerfile-Datei) neu zu erstellen und/oder zu patchen, und die Container 216, die aus dem einleitenden Element hervorgegangen sind, neu starten usw. Wenn eine Container-Schicht 216a erfolgreich untersucht wird, kann eine Aktualisierung der zugehörigen Informationen für diese Schicht 216a in dem VER 201 durchgeführt werden. Eine Dockerfile-Datei kann verwendet werden, um Container-Images zu erstellen, die dann die Grundlage der ausgeführten Container 216 werden. Obwohl eine Dockerfile-Datei ein Beispiel für ein einleitendes Element ist, können auch andere Arten eines einleitenden Elements mit ähnlichen Fähigkeiten (d.h. Assemblieren von Container-Images) verwendet werden (z.B. binäre oder nicht textuelle Elemente).
  • 3 ist ein Ablaufplan eines Beispielprozesses 300 zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente in einer Laufzeitumgebung auf Container-Grundlage.
  • In einer Operation 301 kann z.B. durch den Container-Verwalter 210 (der den CVA 205 enthalten kann) ein Auslöser empfangen werden, wie weiter oben beschrieben wird. Der Auslöser kann angeben, dass ein bestimmter Container 216 oder eine bestimmte Schicht 216a innerhalb des Containers auf Sicherheitsrisiken geprüft werden muss. Wie oben beschrieben, kann der Container 216 zum Beispiel eine Instanz eines Container-Images wie z.B. eines Docker-Images sein. Sobald das Container-Image startet, können ein oder mehrere der Container 216 ausgeführt werden. Die Container 216, die aus demselben Image erhalten werden, sind hinsichtlich ihres Anwendungscodes und ihrer Laufzeitabhängigkeiten identisch.
  • In Operation 303 kann ein Satz der Schichten 216a des Containers 216 identifiziert werden. Dies kann zum Beispiel durchgeführt werden, indem z.B. der Container-Verwalter 210 eine Datenbank wie beispielsweise das VER 201 abfragt, die Informationen zu den Containern 216 der Laufzeitumgebung 212 auf Container-Grundlage enthält.
  • Wenn in einer Operation 305 eine Prüfung auf Sicherheitsrisiken z.B. durch den Container-Verwalter 210 für mindestens eine Schicht 216a des identifizierten Satzes von Schichten bereits durchgeführt wurde (305: JA), kann eine Sicherheitsanalyse dieser Schicht in Operation 307 übersprungen werden. Diese Ermittlung bezüglich der „bereits erfolgten Durchführung“ kann ein oder mehrere Prüfkriterien enthalten. Zum Beispiel können die Prüfkriterien Zeitinformationen wie eine Zeitspanne (z.B. wurde die Prüfung innerhalb des letzten Monats durchgeführt, oder wurde die Prüfung irgendwann einmal in der Vergangenheit durchgeführt) oder Ereignisinformationen verwenden (z.B. wurde die Prüfung auf Grundlage einer ausdrücklichen Benutzer- oder Administratoranforderung durchgeführt). Wenn dies nicht der Fall ist (305: NEIN), kann die Sicherheitsanalyse in einer Operation 308 z. B. durch den Container-Verwalter 210 durchgeführt werden. Die Anfrage-Operation 305 kann zum Beispiel auf Grundlage einer vordefinierten Zeitspanne (z.B. die letzte Woche beginnend mit dem Zeitpunkt, an dem die Operation 305 ausgeführt wird) oder gemäß einem anderen vordefinierten Untersuchungskriterium durchgeführt werden, indem eine Datenbank wie z.B. das VER 301 abgefragt wird, die Informationen zu jeder Schicht 216a und zu anderen Produkten der Container 216 enthält. Diese Informationen können enthalten, ob die Schicht 216a während der vordefinierten Zeitspanne oder gemäß anderen Untersuchungskriterien untersucht wurde. Ein Überspringen der zuvor verarbeiteten Schichten 216a kann Verarbeitungsressourcen einsparen, die andernfalls benötigt würden, um diese Schichten 216a zu verarbeiten.
  • In einer Operation 309 können auf Grundlage von Ergebnissen der Sicherheitsanalyse, die für die mindestens eine Schicht 216a durchgeführt wurde, Sicherheitsrisiken erkannt werden. Die Sicherheitsanalyse kann zum Beispiel für jedes identifizierte Produkt der gerade geprüften Schicht aufweisen: Ermitteln auf Grundlage der Produktkennung des identifizierten Produkts, ob ein Sicherheitsrisiko- oder ein Container-Schwachstellen-Ereignis für die Produktkennung in einer gegebenen Datenbank wie z.B. den Sicherheits-KBs 207 gemeldet wurde.
  • In einer Operation 310 können z.B. durch den CVA 205 oder den Container-Verwalter 210 Korrekturmaßnahmen zur Beseitigung der erkannten Sicherheitsrisiken eingeleitet werden. Die Einleitung der Korrekturmaßnahmen kann mindestens eines aus einem Bereitstellen einer Angabe, dass ein Sicherheitsrisiko- oder ein Container-Schwachstellen-Ereignis erkannt wurde, einem Einleiten einer Routine, die das Risiko oder die Schwachstelle in dem VCP-Register 202 lokalisiert aufweisen oder leitet eine Anwendung einer Richtlinie ein, die dem Risiko oder der Schwachstelle zugehörig ist. In einem weiteren Beispiel können die Operationen 301 bis 310 für ein Container-Image anstatt für einen Container durchgeführt werden. Die zu ergreifenden Korrekturmaßnahmen können in dem VCP-Register 202 enthalten sein, wie weiter oben beschrieben. Obwohl die Korrekturmaßnahmen durch den CVA 205 oder den Container-Verwalter 210 eingeleitet werden können, können verschiedene Elemente der Korrekturmaßnahmen durch andere Elemente entweder innerhalb der Laufzeitumgebungen 212 auf Container-Grundlage oder außerhalb hiervon ausgeführt und/oder auf diese angewendet werden (z.B. Elemente, mit denen die darin enthaltenen virtuellen Maschinen, Container oder Schichten erzeugt werden).
  • Das vorliegende Verfahren kann auch auf Container-Images angewendet werden. In einem Beispiel wird ein Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente bereitgestellt, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll. Das Verfahren kann aufweisen: Empfangen eines Auslösers, wobei der Auslöser angibt, dass ein bestimmtes Container-Image auf Sicherheitsrisiken geprüft werden muss; Identifizieren eines Satzes von Schichten, aus denen sich das Container-Image zusammensetzt; Ermitteln, ob für mindestens eine Schicht des identifizierten Satzes von Schichten bereits eine Prüfung durchgeführt wurde, und wenn dies der Fall ist, Überspringen einer Sicherheitsanalyse dieser Schicht und andernfalls Durchführen der Sicherheitsanalyse; und Erkennen von Sicherheitsrisiken auf Grundlage von Ergebnissen der Sicherheitsanalyse, die für die mindestens eine Schicht durchgeführt wurde.
  • Wie hier ausführlicher erörtert, soll denkbar sein, dass einige oder alle der Operationen von einigen der Ausführungsformen von hier beschriebenen Verfahren in alternativen Reihenfolgen durchgeführt oder auch überhaupt nicht durchgeführt werden; darüber hinaus können mehrere Operationen gleichzeitig oder als ein diesem innewohnender Bestandteil eines größeren Prozesses stattfinden.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit darauf durch einen Computer lesbaren Programmanweisungen enthalten, 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 Anweisungsausführungseinheit enthalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein RAM, ein ROM, ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. 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, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, 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 Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche 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 letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (Local Area Network, LAN) oder ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken der Ablaufpläne und/oder 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 Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die 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 Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die hier verwendete Begrifflichkeit dient lediglich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Beschränkung der verschiedenen Ausführungsformen gedacht. Im hier verwendeten Sinne sollen die Singularformen „ein/e/r,“ und „der/die/das“ auch die Pluralformen enthalten, sofern der Kontext dies nicht eindeutig anders vorgibt. Des Weiteren wird darauf verwiesen, dass die Begriffe „enthält“ und/oder „enthaltend“ in dieser Beschreibung das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, ohne jedoch das Vorhandensein oder die Hinzufügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen derselben auszuschließen. In der obigen ausführlichen Beschreibung von Beispiel-Ausführungsformen der verschiedenen Ausführungsformen wurde auf die beigefügten Zeichnungen verwiesen (bei denen gleichlautende Bezugsziffern für identische Elemente stehen), die einen Teil hiervon bilden und in denen zum Zwecke der Veranschaulichung spezifische Beispiel-Ausführungsformen gezeigt werden, in denen die verschiedenen Ausführungsformen realisiert werden können. Diese Ausführungsformen wurden in ausreichender Detailgenauigkeit beschrieben, um dem Fachmann die Realisierung der Ausführungsformen zu ermöglichen, wobei jedoch andere Ausführungsformen verwendet und logische, mechanische, elektrische und andere Änderungen vorgenommen werden können, ohne vom Geltungsbereich der verschiedenen Ausführungsformen abzuweichen. In der obigen Beschreibung wurden zahlreiche spezifische Einzelheiten dargelegt, um ein gründliches Verständnis der verschiedenen Ausführungsformen bereitzustellen. Allerdings können die beschriebenen Ausführungsformen auch ohne diese spezifischen Einzelheiten realisiert werden. In anderen Fällen wurden bekannte Schaltungen, Strukturen und Methoden nicht im Detail gezeigt, um die Ausführungsformen nicht unverständlich zu machen.
  • Verschiedene Vorkommen des Worts „Ausführungsform“, die innerhalb dieser Beschreibung auftreten, beziehen sich nicht notwendigerweise auf dieselbe Ausführungsform, können dies jedoch tun. Alle hier veranschaulichten oder beschriebenen Daten und Datenstrukturen sind lediglich Beispiele, und in anderen Ausführungsformen können andere Mengen von Daten, Arten von Daten, Felder, Zahlen und Arten von Fehlern, Feldnamen, Zahlen und Arten von Zeilen, Datensätze, Einträge oder Organisationsformen von Daten verwendet werden. Zusätzlich können alle Daten mit Logik kombiniert werden, so dass eine separate Datenstruktur unter Umständen nicht notwendig ist. Die vorangegangene ausführliche Beschreibung ist somit nicht in einem beschränkenden Sinne zu verstehen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zwecke der Veranschaulichung vorgelegt und sind nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen. Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne von Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Begrifflichkeit wurde gewählt, um die Grundsätze der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber marktgängigen Technologien bestmöglich zu erläutern bzw. anderen Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen.
  • Obwohl die vorliegende Erfindung mit Blick auf spezifische Ausführungsformen beschrieben wurde, ist davon auszugehen, dass Änderungen und Abwandlungen hiervon für den Fachmann offensichtlich sein werden. Aus diesem Grund sind die folgenden Ansprüche so auszulegen, dass sie alle derartigen Änderungen und Abwandlungen umfassen, die innerhalb des tatsächlichen gedanklichen Wesensgehalts und Geltungsbereich der Erfindung liegen.

Claims (20)

  1. Durch einen Computer realisiertes Verfahren zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll, wobei das Verfahren durch Verwenden eines Prozessors eines Container-Schwachstellen-Advisors (Container Vulnerability Advisor, CVA) aufweist: Empfangen eines Auslösers, wobei der Auslöser angibt, dass eine Schicht eines Containers innerhalb der Laufzeitumgebung auf Container-Grundlage auf Sicherheitsrisiken zu prüfen ist; Identifizieren einer Prüfschicht des Containers, die auf Sicherheitsrisiken zu prüfen ist; Ermitteln, dass für die Prüfschicht gemäß einem Prüfkriterium zuvor keine Prüfung auf Sicherheitsrisiken durchgeführt wurde; als Reaktion auf das Ermitteln, dass die Prüfung auf Sicherheitsrisiken zuvor nicht durchgeführt wurde, Ermitteln, dass eine Sicherheitsanalyse ein Sicherheitsrisiko angibt; und als Reaktion auf das Ermitteln, dass die Sicherheitsanalyse das Sicherheitsrisiko angibt, Einleiten einer Korrekturmaßnahme.
  2. Verfahren nach Anspruch 1, wobei der Auslöser von einem Container-Verwalter für die Laufzeitumgebung auf Container-Grundlage als Reaktion darauf empfangen wird, dass der Container-Verwalter erkennt, dass ein neuer Container zu implementieren ist.
  3. Verfahren nach Anspruch 1, des Weiteren aufweisend Erkennen eines in der Schicht vorhandenen Software-Produkts, wobei das Ermitteln, wann die Prüfung auf Sicherheitsrisiken bereits durchgeführt wurde, ein Abfragen eines Registers (VER) unter Verwendung von Produktinformationen zu dem erkannten Software-Produkt aufweist.
  4. Verfahren nach Anspruch 3, wobei die Produktinformationen mindestens eines von Versionsnummern, eines Release-Datums oder eines Datums einer ausführbaren Datei aufweisen.
  5. Verfahren nach Anspruch 3, des Weiteren aufweisend Aktualisieren des VERs, um anzugeben, dass die Sicherheitsanalyse für die Schicht durchgeführt wurde.
  6. Verfahren nach Anspruch 1, wobei die Sicherheitsanalyse ein Prüfen einer Sicherheits-Wissensdatenbank aufweist, wobei die Sicherheits-Wissensdatenbank Informationen zu bekannten Sicherheitsschwachstellen von Software-Produkten in der Schicht aufweist.
  7. Verfahren nach Anspruch 6, wobei die Wissensdatenbank (Knowledge Base, KB) mindestens eine der KB IBM Security AppScan® und der KB Common Vulnerabilities and Exposures (CVE®) der MITRE Corporation ist.
  8. Verfahren nach Anspruch 1, wobei die Laufzeitumgebung auf Container-Grundlage ein Docker®-System aufweist und wobei der Auslöser auf einem „docker attach“-Ereignis beruht, das durch das Docker®-System erzeugt wird.
  9. Verfahren nach Anspruch 1, wobei der Empfang des Auslösers automatisch das Identifizieren, das Ermitteln, dass die Prüfung auf Sicherheitsrisiken zuvor nicht durchgeführt wurde, und das Ermitteln einleitet, dass eine Sicherheitsanalyse ein Sicherheitsrisiko angibt.
  10. Verfahren nach Anspruch 1, des Weiteren aufweisend Bereitstellen von mindestens einem aus einer Warnung, die das erkannte Sicherheitsrisiko angibt, oder einem Bereitstellen einer Angabe der Korrekturmaßnahme des erkannten Sicherheitsrisikos.
  11. Verfahren nach Anspruch 1, des Weiteren aufweisend Wiederholen des Identifizierens, des Ermittelns, dass die Prüfung auf Sicherheitsrisiken zuvor nicht durchgeführt wurde, und des Ermittelns, dass eine Sicherheitsanalyse für alle Schichten eines Containers ein Sicherheitsrisiko angibt.
  12. Verfahren nach Anspruch 1, wobei das Prüfkriterium Zeitinformationen oder Ereignisinformationen verwendet.
  13. Verfahren nach Anspruch 1, wobei die Korrekturmaßnahme mindestens eines aus einem Stoppen des Containers, wenn er ausgeführt wird, einem in Quarantäne Stellen des Containers, einem Verhindern, dass ein neuer Container aus demselben einleitenden Ursprungselement des Containers generiert wird, einem Durchführen oder Auslösen einer Neuerstellung oder einem Patchens desselben einleitenden Ursprungselements oder einem erneuten Starten der Container aus demselben einleitenden Ursprungselement ist.
  14. Verfahren nach Anspruch 1, wobei das Einleiten der Korrekturmaßnahme mindestens eines aus einem Bereitstellen einer Angabe, dass ein Sicherheitsrisiko- oder ein Container-Schwachstellen-Ereignis erkannt wurde, einem Einleiten einer Routine, die das Risiko oder die Schwachstelle in einem Speicher von virtuellen Container-Richtlinien lokalisiert, aufweist oder eine Anwendung einer Richtlinie einleitet, die dem Risiko oder der Schwachstelle zugehörig ist.
  15. Verfahren nach Anspruch 1, des Weiteren aufweisend: Ermitteln, dass die Prüfung auf Sicherheitsrisiken für die Prüfschicht gemäß dem Prüfkriterium zuvor durchgeführt wurde; und als Reaktion auf das Ermitteln, dass eine Prüfung auf Sicherheitsrisiken zuvor durchgeführt wurde, Überspringen des Durchführens der Sicherheitsanalyse für die Prüfschicht.
  16. Verfahren nach Anspruch 1, des Weiteren aufweisend: Ermitteln, dass die Sicherheitsanalyse das Sicherheitsrisiko nicht angibt; als Reaktion auf das Ermitteln, dass die Sicherheitsanalyse das Sicherheitsrisiko nicht angibt, Überspringen des Einleitens der Korrekturmaßnahme.
  17. Verfahren nach Anspruch 1, wobei der CVA außerhalb des Containers angesiedelt ist.
  18. Computersystem zum Erkennen von Sicherheitsrisiken in Zusammenhang mit einer Software-Komponente, die in einer Laufzeitumgebung auf Container-Grundlage implementiert werden soll, wobei das Computersystem einen Prozessor eines Container-Schwachstellen-Advisors (CVA) aufweist, der konfiguriert wird, um Anweisungen auszuführen, die bei Ausführung in dem Prozessor, den CVA veranlassen: einen Auslöser zu empfangen, wobei der Auslöser angibt, dass eine Schicht des Containers auf Sicherheitsrisiken zu prüfen ist; eine Prüfschicht des Containers zu identifizieren, die auf Sicherheitsrisiken zu prüfen ist; zu ermitteln, wann für die Prüfschicht gemäß einem Prüfkriterium zuvor eine Prüfung auf Sicherheitsrisiken durchgeführt wurde; wenn die Ermittlung negativ ausfällt: eine Sicherheitsanalyse für die Prüfschicht durchführen; wenn die Sicherheitsanalyse ein Sicherheitsrisiko angibt, eine Korrekturmaßnahme einleiten; und wenn die Sicherheitsanalyse kein Sicherheitsrisiko angibt, die Einleitung der Korrekturmaßnahme überspringen; und wenn die Ermittlung positiv ausfällt, die Durchführung der Sicherheitsanalyse für die Prüfschicht überspringen.
  19. System nach Anspruch 18, wobei die Anweisungen den CVA des Weiteren veranlassen: ein in der Schicht vorhandenes Software-Produkt zu erkennen, wobei die Ermittlung, wann die Prüfung auf Sicherheitsrisiken bereits durchgeführt wurde, ein Abfragen eines Registers (VER) unter Verwendung von Produktinformationen zu dem erkannten Software-Produkt aufweist.
  20. Computerprogrammprodukt, aufweisend ein durch einen Computer lesbares Speichermedium mit darin enthaltenem durch einen Computer lesbaren Programmcode, wobei der durch einen Computer lesbare Programmcode konfiguriert wird, um bei Ausführung in einem Prozessor eines Container-Schwachstellen-Advisors (CVAs): einen Auslöser zu empfangen, wobei der Auslöser angibt, dass eine Schicht des Containers auf Sicherheitsrisiken zu prüfen ist; eine Prüfschicht des Containers zu identifizieren, die auf Sicherheitsrisiken zu prüfen ist; zu ermitteln, wann für die Prüfschicht gemäß einem Prüfkriterium zuvor eine Prüfung auf Sicherheitsrisiken durchgeführt wurde; wenn die Ermittlung negativ ausfällt: eine Sicherheitsanalyse für die Prüfschicht durchführen; wenn die Sicherheitsanalyse ein Sicherheitsrisiko angibt, eine Korrekturmaßnahme einleiten; und wenn die Sicherheitsanalyse kein Sicherheitsrisiko angibt, die Einleitung der Korrekturmaßnahme überspringen; und wenn die Ermittlung positiv ausfällt, die Durchführung der Sicherheitsanalyse für die Prüfschicht überspringen.
DE112019005729.4T 2018-11-15 2019-10-22 Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente Pending DE112019005729T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/192,288 US10885200B2 (en) 2018-11-15 2018-11-15 Detecting security risks related to a software component
US16/192,288 2018-11-15
PCT/IB2019/058984 WO2020099960A1 (en) 2018-11-15 2019-10-22 Detecting security risks related to a software component

Publications (1)

Publication Number Publication Date
DE112019005729T5 true DE112019005729T5 (de) 2021-07-29

Family

ID=70728135

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005729.4T Pending DE112019005729T5 (de) 2018-11-15 2019-10-22 Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente

Country Status (6)

Country Link
US (1) US10885200B2 (de)
JP (1) JP7316726B2 (de)
CN (1) CN112868007A (de)
DE (1) DE112019005729T5 (de)
GB (1) GB2589518B (de)
WO (1) WO2020099960A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102186009B1 (ko) * 2019-03-08 2020-12-04 한국전자통신연구원 컨테이너 인스턴스의 보안 프로파일 생성 시스템 및 방법
US11290491B2 (en) * 2019-03-14 2022-03-29 Oracle International Corporation Methods, systems, and computer readable media for utilizing a security service engine to assess security vulnerabilities on a security gateway element
US11062022B1 (en) * 2019-05-01 2021-07-13 Intuit Inc. Container packaging device
US11874929B2 (en) * 2019-12-09 2024-01-16 Accenture Global Solutions Limited Method and system for automatically identifying and correcting security vulnerabilities in containers
KR102386617B1 (ko) 2020-06-15 2022-04-15 한국전자통신연구원 어플리케이션 컨테이너에 대한 시스템 콜 화이트리스트 생성 장치 및 방법, 어플리케이션 컨테이너에 대한 시스템 콜 제어 방법
US11973770B1 (en) 2020-12-09 2024-04-30 Wiz, Inc. Techniques for multi-tenant vulnerability scanning
CN113504971B (zh) * 2021-07-20 2024-02-13 华云数据控股集团有限公司 基于容器的安全拦截方法及系统
CN113901435B (zh) * 2021-12-13 2022-03-01 广东电网有限责任公司 面向容器的可信软件授权验证方法
TWI811893B (zh) * 2021-12-15 2023-08-11 中華電信股份有限公司 雲工作負載安全防護系統及其方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US8572741B2 (en) 2010-10-14 2013-10-29 Moka5, Inc. Providing security for a virtual machine by selectively triggering a host security scan
US8819832B2 (en) 2011-08-26 2014-08-26 Rapid7, Llc Systems and methods for performing vulnerability scans on virtual machines
US9591003B2 (en) 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
US9117081B2 (en) 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US10140453B1 (en) * 2015-03-16 2018-11-27 Amazon Technologies, Inc. Vulnerability management using taxonomy-based normalization
US9652612B2 (en) 2015-03-25 2017-05-16 International Business Machines Corporation Security within a software-defined infrastructure
US10943014B2 (en) * 2015-10-01 2021-03-09 Twistlock, Ltd Profiling of spawned processes in container images and enforcing security policies respective thereof
US10586042B2 (en) 2015-10-01 2020-03-10 Twistlock, Ltd. Profiling of container images and enforcing security policies respective thereof
US10915628B2 (en) 2015-10-01 2021-02-09 Twistlock, Ltd. Runtime detection of vulnerabilities in an application layer of software containers
US10296745B2 (en) 2016-06-23 2019-05-21 International Business Machines Corporation Detecting vulnerable applications
US10169056B2 (en) 2016-08-31 2019-01-01 International Business Machines Corporation Effective management of virtual containers in a desktop environment

Also Published As

Publication number Publication date
CN112868007A (zh) 2021-05-28
GB2589518B (en) 2021-11-17
WO2020099960A1 (en) 2020-05-22
GB2589518A (en) 2021-06-02
US10885200B2 (en) 2021-01-05
JP7316726B2 (ja) 2023-07-28
US20200159933A1 (en) 2020-05-21
GB202102332D0 (en) 2021-04-07
JP2022504030A (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
DE112019005729T5 (de) Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112012000526T5 (de) Malware - Erkennung
DE112020004623T5 (de) Ml-basierte ereignishandhabung
DE112011103048B4 (de) Ein Verfahren zum Beglaubigen einer Vielzahl von Datenverarbeitungssystemen
DE112018005011T5 (de) Ausführen eines kognitiven lern-workflows
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112011103829T5 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112012000512T5 (de) Aktualisieren von Software
DE112012005051T5 (de) Korrekturbereitstellungssystem
DE102021109767A1 (de) Systeme und methoden zur vorausschauenden sicherheit
DE112019001121T5 (de) Erkennen von malware
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE102016204698A1 (de) Verbessern des Erkennens von Steganographie am Perimeter
DE112019001433T5 (de) Datenanonymisierung
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112018001524T5 (de) Gesundheitsdaten-analysesystem-verwaltung
DE112018000525T5 (de) Systeme und Verfahren für die Authentifizierung von Platform Trust bzw. Plattform-Vertrauen in einerNetzwerkfunktions-Virtualisierungsumgebung
DE112011105098T5 (de) Virtuelles BIOS
DE112020002552T5 (de) System und verfahren für eine siem-regel-sortierung und bedingte ausführung
DE112020003578B4 (de) Mindern von bedrohungen von arbeitslasten auf grundlage von containern
DE112016005867T5 (de) Live-Pipeline-Vorlagen - Erstellung und Erweiterbarkeit der Vorlagen
DE102016204594A1 (de) Abgleichen von datenquellen ohne tags mit datenanalyseanwendungen ohne tags
DE112020004992T5 (de) Aufrechterhalten der sicherheit eines systems
DE112020004647T5 (de) Automatisierte techniken zum erkennen der nutzung von softwareanwendungen in einer datenverarbeitungsumgebung mithilfe von konfigurationsobjekten

Legal Events

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