DE102021127631A1 - Auf speichersuche basierende prozessüberwachung - Google Patents

Auf speichersuche basierende prozessüberwachung Download PDF

Info

Publication number
DE102021127631A1
DE102021127631A1 DE102021127631.4A DE102021127631A DE102021127631A1 DE 102021127631 A1 DE102021127631 A1 DE 102021127631A1 DE 102021127631 A DE102021127631 A DE 102021127631A DE 102021127631 A1 DE102021127631 A1 DE 102021127631A1
Authority
DE
Germany
Prior art keywords
heartbeat
operating system
controller
hardware
management controller
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
DE102021127631.4A
Other languages
English (en)
Inventor
Geoffrey Ndu
Nigel John Edwards
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021127631A1 publication Critical patent/DE102021127631A1/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
    • 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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine Technik beinhaltet einen Betriebssystem-Agenten eines Computersystems, der einen Prozess überwacht, um zu erkennen, ob die Integrität des Prozesses beeinträchtigt wurde. Die Überwachung umfasst das Scannen einer Datenstruktur durch den Betriebssystem-Agenten. Der Prozess wird in einem Benutzerraum ausgeführt, und die Datenstruktur ist Teil des Kernelraums des Betriebssystems. Die Technik umfasst einen Hardware-Controller des Computersystems, der auf einen Heartbeat wartet, der vom Betriebssystem-Agenten erzeugt wird. Der Hardware-Controller ergreift eine Korrekturmaßnahme als Reaktion auf mindestens eines der folgenden Ereignisse: Der Hardware-Controller stellt eine Unterbrechung des Heartbeats fest, oder der Betriebssystem-Agent übermittelt dem Hardware-Controller eine Sicherheitswarnung für den Prozess.

Description

  • HINTERGRUND
  • Eine Computerplattform (z. B. ein Server) kann einem Sicherheitsangriff ausgesetzt sein, bei dem eine externe Einheit versucht, auf Informationen zuzugreifen, die auf der Computerplattform gespeichert sind, oder Komponenten der Computerplattform zu schädigen. Um Sicherheitsangriffe zu verhindern oder zumindest das Ausmaß des durch Sicherheitsangriffe verursachten Schadens zu begrenzen, kann die Computerplattform über verschiedene Schutzstufen verfügen. So kann die Computerplattform beispielsweise über verschiedene Mechanismen zur Zugangsbeschränkung verfügen, wie Firewalls, Passwörter, Schlüssel usw. Ein weiteres Beispiel ist eine Software zum Schutz vor Malware, die Verzeichnisse nach Malware-Agenten durchsucht. Als weitere Beispiele kann die Computerplattform regelmäßig ihre Softwarekomponenten messen, so dass die Messungen analysiert werden können (z. B. durch Analysetools auf einem entfernten Server), um festzustellen, ob eine Manipulation stattgefunden hat; Ereignisse (Login-Passwortfehler, Website-Zugriffe usw.), die auf der Computerplattform auftreten, können mit einem Systeminformations- und Ereignisverwaltungssystem (SIEM) überwacht werden usw.
  • Figurenliste
    • 1 ist ein schematisches Diagramm einer Computerplattform, die einen auf dem Kernel des Betriebssystems basierenden Prozessmonitor zur Überwachung der Integritäten von Benutzerraumprozessen gemäß einer Beispielimplementierung enthält.
    • 2 ist eine Illustration der Prozessüberwachung durch den Prozessmonitor von 1, einschließlich der Erweiterung der Prozessüberwachung durch einen Baseboard-Management-Controller der Computerplattform gemäß einer Beispielimplementierung.
    • 3 ist ein Flußdiagramm, das die Durchsuchung einer kernelraumbasierten Datenstruktur eines Benutzerraumprozesses nach verdächtigen gemeinsamen Bibliotheksobjekten gemäß einer Beispielimplementierung zeigt.
    • 4 ist ein Flußdiagramm, das das Scannen einer Kernel-Spacebasierten Datenstruktur eines User-Space-Prozesses zeigt, um nach Copy-on-Write (COW) ausführbaren Seiten gemäß einer Beispielimplementierung zu suchen.
    • Fig. ist5 ein Flussdiagramm, das die Weitergabe eines Heartbeat-Seeds oder -Schlüssels an ein Betriebssystem der Computerplattform gemäß einer Beispielimplementierung zeigt.
    • 6 ist ein Flussdiagramm, in dem eine Technik dargestellt ist, die vom Prozessmonitor verwendet wird, um eine Heartbeat-Meldung zu erstellen und an den Baseboard-Management-Controller zu senden, gemäß einer Beispielimplementierung.
    • Fig. ist7 ein Flussdiagramm, in dem ein Verfahren zur Überwachung des Herzschlags dargestellt ist, das von der Prozessüberwachung gemäß einer Beispielimplementierung verwendet wird.
    • 8 ist ein Flussdiagramm, in dem eine Technik dargestellt ist, die von der Basisplatinen-Verwaltungssteuerung zur Authentifizierung von Heartbeat-Nachrichten gemäß einer Beispielimplementierung verwendet wird.
    • 9 ist ein Flussdiagramm, in dem eine Technik dargestellt ist, die von der Grundplatinen-Verwaltungssteuerung verwendet wird, um auf eine Warnmeldung vom Prozessmonitor zu reagieren und auf eine Heartbeat-Unterbrechung vom Prozessmonitor gemäß einer Beispielimplementierung zu reagieren.
    • 10 ist ein Flussdiagramm, das eine Technik zur Überwachung eines Benutzerraumprozesses unter Verwendung eines Betriebssystem-Agenten und eines Hardware-Controllers gemäß einer Beispielimplementierung darstellt.
    • 11 ist eine Illustration eines nicht-transitorischen Speichermediums, das maschinenlesbare Anweisungen speichert, um eine Maschine zu veranlassen, einen Prozess gemäß einer Beispielimplementierung zu überwachen.
    • 12 ist ein schematisches Diagramm, das eine Computerplattform zeigt, die eine Betriebssystem-Kernel-Erweiterung und einen Baseboard-Management-Controller zur Überwachung eines Prozesses gemäß einer Beispielimplementierung verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine Computerplattform (z. B. ein Server, ein tragbarer Computer, ein Tablet-Computer usw.) kann über eine Vielzahl von Benutzerraumprozessen verfügen, wie z. B. Benutzerraumprozesse, die Sicherheitsdienste für die Computerplattform bereitstellen. In diesem Zusammenhang bezieht sich ein „Prozess“ auf eine Instanz eines ausgeführten Programms, wie z. B. eine Instanz einer Anwendung. Ein bestimmter Prozess kann single-threaded (d. h. einem einzelnen Thread) oder multithreaded (d. h. mehreren Threads) sein, wobei sich ein „Thread“ auf eine Einheit von ausführbaren Programmanweisungen bezieht. So können beispielsweise mehrere Threads parallel von mehreren Prozessorkernen der Computerplattform ausgeführt werden, um eine bestimmte Aufgabe oder eine Reihe von Aufgaben für die Computerplattform zu erfüllen.
  • Der Speicherbereich der Computerplattform kann in einen Kernelbereich und einen Benutzerbereich unterteilt werden. Der „Kernel-Space“ bezieht sich auf den Speicherbereich der Computerplattform, in dem der Kernel-Code des Betriebssystems gespeichert ist und ausgeführt wird, und der „User-Space“ bezieht sich auf den Speicherbereich der Computerplattform, der von Nicht-Betriebssystem-Kernel-Prozessen (oder „User-Space-Prozessen“), wie z. B. Anwendungsprozessen, genutzt wird. Der Kernel-Space hat die höchste Privilegstufe und kann von User-Space-Prozessen nicht betreten werden. Kernel-Prozesse können sowohl auf den Kernel-Space als auch auf den User-Space zugreifen. Ein Beispiel für einen Benutzerraumprozess, der Sicherheitsdienste für eine Computerplattform bereitstellt, ist die Instanz einer ausgeführten Anwendung zum Schutz vor Malware. Ein Linux-Kernel und ein Windows NT-Kernel sind Beispiele für Betriebssystem-Kernel.
  • Da sich Prozesse, die Sicherheitsdienste für das Computersystem bereitstellen, im Benutzerbereich befinden können, sind diese Prozesse unter Umständen anfällig für Sicherheitsangriffe durch Malware. In diesem Zusammenhang bezieht sich „Malware“ im Allgemeinen auf jede Software, die mit dem Ziel entwickelt wurde, ein Computersystem (z. B. eine einzelne Computerplattform oder ein Netz von Computerplattformen) absichtlich zu beschädigen und/oder Informationen aus dem Computersystem zu extrahieren. Malware gibt es in verschiedenen Formen, z. B. als Viren, Ransomware, Würmer, Trojanische Pferde usw.
  • Malware (z. B. Robin Hood Ransomware) kann die mit den Sicherheitsdiensten im Benutzerraum verbundenen Prozesse anhalten oder abschalten, um im Verborgenen zu bleiben und tiefer in das Computersystem eines Unternehmens einzudringen. Das Beenden dieser sicherheitsdienstbezogenen Benutzerraumprozesse kann mit herkömmlichen Malware-basierten Angriffen (z. B. Injektionsangriffen, Angriffen zur Aushöhlung von Prozessen usw.) kombiniert werden, um Abwehrmaßnahmen zu umgehen und möglicherweise die Berechtigungen der Malware-Agenten zu erhöhen.
  • Gemäß den hier beschriebenen Beispielimplementierungen enthält ein Computersystem, z. B. eine Computerplattform, einen Betriebssystem-Kernelagenten, der als „Prozessmonitor“ bezeichnet wird und Benutzerraumprozesse (z. B. Prozesse, die Sicherheitsdienste bereitstellen) überwacht, um festzustellen, ob die Integrität dieser Prozesse beeinträchtigt wurde. In Übereinstimmung mit Beispielimplementierungen scannt der Prozessmonitor Datenstrukturen im Kernelraum (z. B. virtuelle Speicherbereiche (VMAs)), die Informationen über entsprechende Teile des Adressraums eines überwachten Benutzerprozesses enthalten. Durch die Überwachung der Kernel-Space-Datenstrukturen kann die Prozessüberwachung einen bestimmten Zustand des Speicherzustands des Prozesses erkennen, der mit der Integrität des gefährdeten Prozesses vereinbar ist. So kann die Prozessüberwachung beispielsweise einen Prozessspeicherzustand erkennen, der darauf hindeutet, dass der überwachte Prozess einer Prozessaushöhlung unterzogen wurde oder dass Code in den Prozess injiziert wurde.
  • Da der Prozessmonitor Teil des Betriebssystemkerns ist und sich die überwachten Datenstrukturen im Kernelbereich befinden, ist die Überwachung der Prozesse im Benutzerbereich sehr widerstandsfähig gegen Manipulationen. In Übereinstimmung mit Beispielimplementierungen wird die Überwachung durch den Prozessmonitor durch die Hardware der Computerplattform verbessert, um die Überwachung durch den Prozessmonitor gegen einen potenziell mächtigen Angreifer weiter zu verstärken. Genauer gesagt, in Übereinstimmung mit einigen Implementierungen, erzeugt der Prozessmonitor einen Heartbeat; und ein Hardware-Controller (z.B. ein Baseboard-Management-Controller) der Computerplattform hört auf den Heartbeat. Wenn der Hardware-Controller eine Unterbrechung des Heartbeat erkennt, kann der Hardware-Controller davon ausgehen, dass die Integrität des Betriebssystemkerns (und der Prozessüberwachung) beeinträchtigt wurde, und Abhilfe- oder Korrekturmaßnahmen ergreifen. Wie weiter unten beschrieben, können die Abhilfemaßnahmen das Herunterfahren der Computerplattform, den Neustart der Computerplattform, die Benachrichtigung eines Remote-Management-Servers usw. umfassen. In diesem Zusammenhang bezieht sich ein „Heartbeat“ auf eine sich wiederholende Folge von Signalen, Pings oder Anzeigen, wie z. B. Nachrichten, die einem bestimmten Zeitplan (z. B. einem periodischen Zeitplan) folgen, um darzustellen, dass die Einheit, die den Heartbeat sendet oder erzeugt, in einem akzeptablen Zustand arbeitet. Folglich entspricht die Unterbrechung des Heartbeat (z. B. ein fehlendes Signal, Ping oder eine fehlende Anzeige des Heartbeat) dem Umstand, dass sich die Einheit nicht in einem akzeptablen Zustand befindet.
  • Gemäß Beispielimplementierungen erhält der Hardware-Controller eine Warnung von der Prozessüberwachung, wenn diese einen Speicherzustand eines überwachten Userspace-Prozesses feststellt, der mit einer Gefährdung der Integrität des Prozesses vereinbar ist. Der Hardware-Controller kann als Reaktion auf eine solche Warnung Korrekturmaßnahmen ergreifen (z. B. Herunterfahren der Computerplattform, Neustart der Computerplattform, Benachrichtigung eines Remote-Management-Servers usw.).
  • Wie hier weiter beschrieben, kann der Prozessmonitor in Übereinstimmung mit Beispielimplementierungen auf den Heartbeat eines überwachten Userspace-Prozesses hören, so dass, wenn der Userspace-Prozess aufhört zu funktionieren (z. B. aufgrund von Malware, die den Prozess beendet), dieses Ereignis durch den Prozessmonitor über das festgestellte Fehlen des Heartbeats erkannt werden kann. Daher kann es gemäß einigen Implementierungen eine Hierarchie von Heartbeats für die überwachten User-Space-Prozesse geben: eine erste hierarchische Ebene von Heartbeats, die von überwachten Prozessen gesendet werden, die verwendet werden können, um Manipulationen an den Prozessen zu erkennen; und eine zweite hierarchische Ebene, die einen von der Prozessüberwachung gesendeten Heartbeat enthält, der verwendet werden kann, um Manipulationen an der Prozessüberwachung (und folglich an dem Betriebssystemkern) zu erkennen. Wie hier weiter beschrieben, kann das Senden eines Heartbeats (und die entsprechende Überwachung des Heartbeats) durch einen bestimmten überwachten User-Space-Prozess optional sein, wodurch die auf Speicherabtastung basierende Überwachung auch für einen Legacy-User-Space-Prozess verwendet werden kann, der die Erzeugung eines Heartbeats nicht unterstützt.
  • Bezug nehmend auf 1, als spezifischeres Beispiel, kann eine Computerplattform 100 in Übereinstimmung mit einigen Implementierungen einen oder mehrere Prozessoren 110 (z.B. eine oder mehrere Zentraleinheiten (CPUs), einen oder mehrere CPU-Verarbeitungskerne und so weiter) und einen Systemspeicher 114 umfassen. Der Systemspeicher 114 und andere hier erörterte Speicher sind nichttransitorische Speichermedien, die aus Halbleiterspeichervorrichtungen, Memristor-basierten Speichervorrichtungen, magnetischen Speichervorrichtungen, Phasenänderungsspeichervorrichtungen, einer Kombination von Vorrichtungen aus einer oder mehreren dieser Speichertechnologien usw. gebildet werden können. Der Systemspeicher 114 kann eine Sammlung von Speichern aus flüchtigen und nichtflüchtigen Speichervorrichtungen sein.
  • In Übereinstimmung mit Beispielimplementierungen umfassen die Speicherplätze des Systemspeichers 114 einen Benutzerraum 115 und einen Kernelraum 117. Der Kernelraum 117 stellt Speicherplätze des Systemspeichers 114 dar, in denen der Betriebssystem-Kernelcode, der einem Betriebssystem-Kernel 104 entspricht, gespeichert ist und ausgeführt wird; und der Benutzerraum 115 bezieht sich auf den Speicherraum des Systemspeichers 114, der von den Nicht-Betriebssystem-Kernelprozessen (oder „Benutzerraum-Prozessen“) verwendet wird, wie z. B. Prozessen, die ausführenden Instanzen von Anwendungen 111 entsprechen. Wie hierin weiter beschrieben, kann ein bestimmter Benutzerraumprozess ein überwachter Benutzerraumprozess 108 sein (hier auch als „überwachter Prozess 108“ oder „Prozess 108“ bezeichnet).
  • Die Computerplattform 100 ist nur ein Beispiel für eine Reihe verschiedener potenzieller Architekturen in Übereinstimmung mit den vielen möglichen Implementierungen. Im Allgemeinen handelt es sich bei der Computerplattform unabhängig von ihrer besonderen Architektur um ein prozessorbasiertes elektronisches Gerät, das über ein Betriebssystem mit einem zugehörigen Kernel- und Benutzerbereich verfügt. Bei der Computerplattform 100 kann es sich beispielsweise um einen eigenständigen Server, ein rackmontiertes Servermodul, ein rackmontiertes Edge-Processing-Modul, ein Server-Blade, ein Blade-Gehäuse mit einem oder mehreren Server-Blades, einen Client, einen Thin Client, einen Desktop-Computer, einen tragbaren Computer, einen Laptop-Computer, ein Notebook, einen Tablet-Computer, ein Smartphone, einen tragbaren Computer usw. handeln.
  • Gemäß Beispielimplementierungen enthält die Computerplattform 100 einen Betriebssystem-Agenten für den Kernelbereich, der als „Prozessmonitor 106“ bezeichnet wird (hier auch als „Betriebssystem-Kernel-basierter Prozessmonitor 106“ bezeichnet), der einen von mehreren Benutzerbereichsprozessen 108 überwachen kann, um zu erkennen oder zu bestimmen, ob die Integrität der Prozesse 108 beeinträchtigt wurde (d. h. um zu erkennen, ob eine Manipulation stattgefunden hat). In Übereinstimmung mit Beispielimplementierungen kann der Prozessmonitor 106 eine Erweiterung des Betriebssystemkerns 104 sein, wie z. B. ein ladbares Kernelmodul (LKM) für ein Linux-Betriebssystem, das dem Code 135 entspricht, der während der Installation des Betriebssystems geladen wird; und nach der Installation des Betriebssystems wird der Prozessmonitor 106 Teil des Betriebssystemkerns 104.
  • Wie hierin weiter beschrieben, stellt der Prozessmonitor 106 in Übereinstimmung mit Beispielimplementierungen eine Anwendungsprogrammierschnittstelle (API) 109 bereit, die es einer Anwendung 111 ermöglicht, einen Benutzerraumprozess zu registrieren, der einer Instanz der Anwendung 111 entspricht, so dass der Prozess, wenn er registriert ist, ein registrierter Benutzerraumprozess 108 wird, der vom Prozessmonitor 106 überwacht wird.
  • In Übereinstimmung mit einigen Implementierungen kann die API 109 eine register()-Funktion bereitstellen, die aufgerufen wird, um einen Prozess zu registrieren (um ein entsprechender überwachter Prozess 108 zu werden) und neben anderen Parametern eine Prozessidentifikation (ID) für den Prozess erhält. Die API 109 kann auch eine ping()-Funktion bereitstellen, die aufgerufen werden kann, um eine optionale Überwachung eines Heartbeats von dem Prozess 108 auszuwählen. Neben anderen Parametern kann die ping()-Funktion einen Parameter erhalten, der eine Timeout-Periode für den Heartbeat darstellt. Die API 109 kann auch eine Funktion unregister() bereitstellen, mit der die Registrierung des Prozesses als überwachter Prozess 108 aufgehoben wird. Es wird darauf hingewiesen, dass die Überwachung eines Heartbeats eines überwachten Prozesses 108 in Übereinstimmung mit Beispielimplementierungen optional sein kann, um die Unfähigkeit eines Legacy-Prozesses, den Heartbeat zu erzeugen, zu berücksichtigen.
  • 2 ist eine Illustration 200 der Überwachung von Prozessen 108 durch den Prozessmonitor 106 in Übereinstimmung mit Beispielimplementierungen. Unter Bezugnahme auf 2 in Verbindung mit 1 scannt der Prozessmonitor 106 in Übereinstimmung mit Beispielimplementierungen einen Teil des Kernelraums 117, der mit dem überwachten Benutzerraumprozess 108 verbunden ist, um entsprechende Speicherscandaten 224 zu erfassen. Genauer gesagt kann der Prozessmonitor 106 in Übereinstimmung mit einigen Implementierungen regelmäßig eine oder mehrere Betriebssystem-Kernelraum-Datenstrukturen 119 (hier auch als „Kernelraum-Datenstrukturen 119“ und „Datenstrukturen 119“ bezeichnet) abfragen, die entsprechende Benutzerraum-Speicherbereiche (z. B. virtuelle Speicherbereiche) des überwachten Prozesses 108 beschreiben. Die Kernel-Space-Datenstrukturen 119 werden vom Betriebssystem-Kernel 104 verwendet, um den Benutzer-Speicherbereich des überwachten Prozesses 108 zu verfolgen und zu verwalten. Beispielsweise kann der Betriebssystemkern 104 die Datenstrukturen 119 verwenden, um Seitenrückgewinnung, Copy-on-Writes (COWs), Speicherzuordnung von Dateien, Paging-Anforderungen usw. zu verwalten. In Übereinstimmung mit Beispielimplementierungen kann der überwachte Prozess 108 mehrere Kernelspace-Datenstrukturen 119 haben, wobei jede Kernelspace-Datenstruktur 119 einem anderen zusammenhängenden virtuellen Speicherraum des Prozesses 108 entspricht und der zusammenhängende virtuelle Speicherraum gemeinsame Eigenschaften aufweist.
  • Beispielsweise kann die Kernel-Datenstruktur 119 gemäß einigen Implementierungen für ein Linux-Betriebssystem ein virtueller Speicherbereich (VMA) sein, der Zeiger auf die virtuellen Start- und Endadressen eines entsprechenden zusammenhängenden Segments des virtuellen Speichers enthält; Flags, die anzeigen, ob die jeweiligen Seiten nur lesbar sind; Flags, die anzeigen, ob die jeweiligen Seiten verschmutzt sind; Flags, die anzeigen, ob die jeweiligen Seiten ausführbar sind; Daten, die eine Sicherungsspeicherressource darstellen; Daten, die Umkehrabbildungsstrukturen darstellen, und so weiter. Ein gegebener benutzerraumüberwachter Prozess 108 kann gemäß Beispielimplementierungen über mehrere VMAs verfügen, z. B. eine VMA für den entsprechenden Programmcode, eine weitere VMA für jeden Datentyp, eine VMA für jede unterschiedliche Speicherabbildung usw.
  • Gemäß Beispielimplementierungen kann die Prozessüberwachung 106 die Kernel-Space-Datenstruktur(en) 119 für einen bestimmten überwachten User-Space-Prozess 108 von Zeit zu Zeit scannen (z. B. Scannen in regelmäßigen Intervallen, kontinuierliches Scannen und erneutes Scannen, Scannen in Intervallen gemäß einem vordefinierten Zeitplan usw.), um auf der Grundlage der beobachteten Daten, die in der/den Datenstruktur(en) 119 gespeichert sind, zu bestimmen, ob der überwachte User-Space-Prozess 108 einen bestimmten Speicherzustand aufweist, der anzeigt oder darstellt, dass die Integrität des Prozesses 108 beeinträchtigt wurde. Diese Bestimmung kann beinhalten, dass festgestellt wird (wie weiter unten in Verbindung mit 3 beschrieben), ob der überwachte Benutzerraumprozess 108 irgendwelche gemeinsam genutzten Bibliotheksobjekte (hier als „verdächtige Bibliotheksobjekte“ bezeichnet) aufweist, die auf den Versuch hinweisen, eine bösartige Bibliothek im Kontext eines Prozesses zu laden; und/oder die Bestimmung kann beinhalten, dass festgestellt wird (wie weiter unten in Verbindung mit 4 beschrieben), ob der überwachte Benutzerraumprozess 108 irgendwelche Copy-on-Write (COW)-Ausführungsseiten aufweist, was mit der Injektion von bösartigem Code vereinbar wäre.
  • Bezieht man sich weiterhin auf 2 in Verbindung mit 1, so sendet die Prozessüberwachung 106 in dem Fall, dass das Scannen der Kernel-Space-Datenstruktur(en) 119 eines Prozesses einen Speicherzustand offenbart, der eine Integritätsbeeinträchtigung des Prozesses 108 anzeigt oder darstellt, in Übereinstimmung mit Beispielimplementierungen eine Warnung 240 (z. B. eine Nachricht) an einen Hardware-Controller der Computerplattform, wie z. B. den Baseboard-Management-Controller 170. Im Allgemeinen identifiziert die Warnmeldung 240 einen bestimmten überwachten Benutzerraumprozess 108 und stellt ein bestimmtes Integritätskompromittierungsproblem für den Prozess 108 dar, das von der Prozessüberwachung 106 erkannt oder festgestellt wurde.
  • Gemäß Beispielimplementierungen wird die Prozessüberwachung und - berichterstattung durch das Senden von Warnmeldungen (240) an die Hardware, wie z. B. den Baseboard-Management-Controller 170, weiter gegen die Beeinträchtigung durch einen Malware-Agenten geschützt. Wie hierin weiter beschrieben, kann der Baseboard-Management-Controller 170 gemäß einigen Implementierungen eine Silizium-Vertrauenswurzel (SRoT) für die Computerplattform 100 enthalten; und als solche dient der Baseboard-Management-Controller 170 als hochgradig vertrauenswürdige Instanz, um als Reaktion auf eine Warnung 240 eine entsprechende Warnung 250 (z. B. eine Nachricht) an den Remote-Management-Server 194 zu senden. In Übereinstimmung mit Beispielimplementierungen kann die Warnmeldung 250, ähnlich wie die Warnmeldung 240, beispielsweise eine Kennung für den fraglichen Benutzerraumüberwachungsprozess 108 enthalten, zusammen mit anderen Informationen, die Einzelheiten über die Art der vom Prozessmonitor 106 erkannten Integritätsverletzung darstellen. Wie hier weiter beschrieben, kann eine bestimmte Warnmeldung 520 auch verwendet werden, um einem entfernten Verwaltungsserver 194 mitzuteilen, dass der Betriebssystemkern 104 kompromittiert wurde.
  • Der Baseboard-Management-Controller 170 kann als Reaktion auf den Empfang eines Alarms 240 vom Prozessmonitor 106 zusätzliche und/oder andere Korrektur- oder Abhilfemaßnahmen (außer dem Senden des Alarms 250) ergreifen, je nach der jeweiligen Implementierung. Beispielsweise kann der Baseboard-Management-Controller 170 in Übereinstimmung mit einigen Implementierungen die Computerplattform 100 als Reaktion auf den Empfang einer Warnung 240 ausschalten und ein Passwort, einen Schlüssel oder eine andere Berechtigung (z. B. eine Berechtigung, die über einen Remote-Management-Server 194 bereitgestellt wird) verlangen, bevor er der Computerplattform 100 einen Neustart erlaubt. Als weiteres Beispiel kann der Baseboard-Management-Controller 170 in Übereinstimmung mit einigen Implementierungen die Computerplattform 100 als Reaktion auf den Empfang einer Warnung 240 neu starten (d. h. einen Power-On-Reset durchführen). Gemäß einigen Implementierungen können die bestimmten Abhilfemaßnahmen, die von der Basisplatinen-Verwaltungssteuerung 170 ergriffen werden, auf einer vordefinierten Benutzerrichtlinie basieren.
  • Wie ebenfalls in 2 dargestellt, kann der Prozessmonitor 106 in Übereinstimmung mit einigen Implementierungen einen Heartbeat 230 an den Baseboard Management Controller 170 senden. Beispielsweise kann der Heartbeat 230 einer Folge von Nachrichten entsprechen (z. B. Peripheral Component Interconnect express (PCIe)-Nachrichten), wobei jede Nachricht einer bestimmten Heartbeat-Anzeige oder einem Ping des Heartbeat 230 entspricht. Der Basisplatinen-Verwaltungscontroller 170 wartet auf den Heartbeat 230, so dass der Basisplatinen-Verwaltungscontroller 170 im Falle einer Unterbrechung des Heartbeat 230 (z. B. wenn der Basisplatinen-Verwaltungscontroller 170 innerhalb einer bestimmten Zeitspanne keine Heartbeat-Anzeige oder keinen Ping empfängt) in Übereinstimmung mit Beispielimplementierungen eine entsprechende Warnung 250 an den Remote-Management-Server 194 senden und/oder zusätzliche oder andere Abhilfemaßnahmen gemäß einer vordefinierten Benutzerrichtlinie ergreifen kann.
  • Durch das Abhören des Heartbeats 230 kann die Basisplatinen-Verwaltunqssteuerunq 170 erkennen, ob die Integrität des Prozessmonitors 106 und folglich die Integrität des Betriebssystemkerns 104 beeinträchtigt wurde. Dies schützt die Prozessüberwachung vor einem relativ mächtigen Gegner, der möglicherweise den Betriebssystemkern 104 manipuliert und andernfalls (ohne den Heartbeat-Mechanismus 230) die Überwachung durch den Prozessmonitor 106 deaktivieren könnte, ohne dass diese Deaktivierung von der Basisplatinen-Verwaltungssteuerung 170 erkannt werden könnte. Es wird darauf hingewiesen, dass die Computerplattform 100 in Übereinstimmung mit Beispielimplementierungen eine oder mehrere zusätzliche Maßnahmen (d. h. Maßnahmen zusätzlich zur Überwachung des Heartbeat 230) anwenden kann, um zu bestimmen oder zu erkennen, ob die Integrität des Betriebssystemkerns 104 beeinträchtigt worden ist. Beispielsweise kann der Basisplatinen-Verwaltungscontroller 170 in Übereinstimmung mit einigen Implementierungen eine Scan-Engine enthalten (z. B. eine Engine, die aus Hardware, maschinenausführbaren Befehlen oder einer Kombination davon besteht), wie die Scan-Engine, die in der US-Patentanmeldungsveröffentlichung Nr. 2019/0384918 beschrieben ist, die Kernel-Datenstrukturen, Kernel-Code und ladbare Kernel-Module (wie den Prozessmonitor 106) scannen kann, um sicherzustellen, dass der Betriebssystem-Kernel 104 und seine Erweiterungen nicht verändert wurden. Die Scan-Engine ist ein Beispiel, da die Computerplattform 100 gemäß weiteren Implementierungen einen oder mehrere unterschiedliche und/oder zusätzliche Mechanismen zur Überwachung der Integrität des Betriebssystemkerns 104 enthalten kann.
  • Der Baseboard-Management-Controller 170 kann andere Prozessüberwachungsinformationen als die Warnmeldungen 250 an einen entfernten Management-Server 194 übermitteln. Wie in 2 dargestellt, kann der Prozessmonitor 106 beispielsweise in Übereinstimmung mit einigen Implementierungen nicht alarmierende Berichtsmeldungen 244 an den Baseboard-Management-Controller 170 senden, die Daten über die Ergebnisse der Speicherabtastung enthalten; und der Baseboard-Management-Controller 170 kann die Daten kompilieren und entsprechende Berichtsmeldungen 260 an den Remote-Management-Server 194 senden, um die Ergebnisse zu melden.
  • Beispielsweise kann der Prozessmonitor 106 in Übereinstimmung mit einigen Implementierungen eine Berichtsnachricht 244 an den Baseboard-Management-Controller 170 senden, die Daten enthält, die die gemeinsam genutzten Bibliotheksobjekte für einen bestimmten überwachten Benutzerraumprozess 108 darstellen, der als Ergebnis der Überprüfung der entsprechenden Kernelraum-Datenstrukturen 119 gefunden wurde. Die Berichtsmeldung 244 kann auch die entsprechenden Dateipfade der gemeinsam genutzten Bibliotheksobjekte enthalten. Durch die Meldung (über die Berichtsnachrichten 260) der gemeinsam genutzten Bibliotheksobjekte und Dateipfade an den Fernverwaltungsserver 194 können die Sicherheitsüberprüfungswerkzeuge auf dem Server 194 (oder einer anderen Einheit) beispielsweise die Dateipfade der gemeinsam genutzten Bibliotheksobjekte mit den Dateipfaden vergleichen, die in einem Integrity Measurement Architecture (IMA)-Protokoll für die Computerplattform 100 aufgezeichnet sind. Die bei diesem Vergleich festgestellten Diskrepanzen zwischen den Dateipfaden können zum Beispiel zeigen, dass die Integrität bestimmter Softwarekomponenten der Computerplattform 100 beeinträchtigt wurde.
  • Als weiteres Beispiel kann gemäß einigen Implementierungen die Computerplattform 100 einer aus einer Flotte von Servern sein; die Daten aus den Speicher-Scan-Berichten, die von den Servern der Flotte bereitgestellt werden, können statistisch analysiert werden (z. B. durch Tools auf einem Remote-Management-Server 194 oder einer anderen Komponente); und eine Warnung für einen bestimmten Server der Flotte kann als Reaktion auf eine Statistik des bestimmten Servers erzeugt werden, die einen Ausreißer in Bezug auf entsprechende Statistiken vom Rest der Flotte darstellt.
  • 2 zeigt auch die Prozessüberwachung 106, die Heartbeats 210 überwacht, die von den jeweiligen überwachten Benutzerraumprozessen 108 erzeugt werden. In Übereinstimmung mit Beispielimplementierungen kann eine Anwendung 111 (1) über die API 109 die Heartbeat-Überwachung für einen bestimmten überwachten Benutzerraumprozess 108 zusammen mit einer bestimmten Zeitspanne für den Heartbeat 210 auswählen. Wenn der Prozessmonitor 106 eine Unterbrechung des Heartbeats 210 feststellt (d. h. keine Heartbeat-Anzeige oder keinen Ping innerhalb der Timeout-Periode für den Heartbeat 210 feststellt), kann der Prozessmonitor 106 eine entsprechende Warnung 240 an den Baseboard-Management-Controller 170 senden, so dass der Controller 170 dann die entsprechenden Abhilfe- oder Korrekturmaßnahmen ergreifen kann (z. B. Neustart, Übermittlung einer Warnung 250 an einen Remote-Management-Server 194 usw.). Es wird darauf hingewiesen, dass in Übereinstimmung mit Beispielimplementierungen die Heartbeat-Überwachung für die überwachten Userspace-Prozesse 108optional ist, was es beispielsweise einem Legacy-User-Space-Prozess 108 ermöglicht, seinen Speicher durch den Prozessmonitor 106 abtasten zu lassen, während auf die Heartbeat-Überwachung für den Prozess 108 verzichtet wird.
  • Bei einigen Implementierungen kann die API 109 eine API im Socket-Stil sein, wie z. B. eine Netlink-API für das Linux-Betriebssystem. Eine API im Socket-Stil kann im Allgemeinen einfacher zu verwenden sein als beispielsweise eine API, die mit nicht standardmäßigen Systemaufrufen oder Mechanismen auf der Grundlage von ioclt-Systemaufrufen für das Linux-Betriebssystem implementiert ist. In Übereinstimmung mit Beispielimplementierungen kann sich der Benutzerraumprozess 108 an einen Socket binden, wodurch der Prozess 108 von der Prozessüberwachung 106 überprüft werden kann. Nachdem der Prozess die Verifizierung bestanden hat, kann der Prozessmonitor 106 das Scannen der mit dem Prozess 108 verbundenen Kernel-Space-Datenstrukturen 119 durchführen und den Heartbeat 210 des Prozesses überwachen (falls diese Option ausgewählt ist).
  • In Übereinstimmung mit einigen Implementierungen bietet die Computerplattform 100 keinen zusätzlichen Mechanismus zum Schutz gegen Spoofing der Heartbeats 210, da ein Socket-Messaging-System wie Netlink ausreichende Kontextinformationen für die Authentifizierung des Heartbeats 210 liefert. In dieser Hinsicht sendet der Benutzerraumprozess 108 seine jeweilige Prozess-ID, die der Prozessmonitor 106 verwenden kann, um die Quelle des Heartbeats 210 sicher zu identifizieren. Darüber hinaus unterstützt das Socket-Messaging-System gemäß Beispielimplementierungen die Duplex-Kommunikation, so dass der Prozessmonitor 106 einem Userspace-Prozess 108 eine Nachricht senden kann, um weitere Informationen von dem Prozess 108 anzufordern, um die Quelle des Heartbeats 210 zu überprüfen.
  • In Übereinstimmung mit weiteren Implementierungen kann die API 109 keine Socket-API sein und kann über Systemaufrufe aufgerufen werden.
  • Die Funktionen des Prozessmonitors 106 können mithilfe einer Arbeitswarteschlange 228 (z. B. einer Linux-Warteschlange) implementiert werden. Im Allgemeinen kann ein Scheduler des Prozessmonitors 106 Arbeitseinheiten 229 für die Arbeitswarteschlange 228 bereitstellen, wobei jede Arbeitseinheit 229 eine bestimmte Aufgabe oder Funktion darstellen kann, die von einem entsprechenden Kernel-Thread ausgeführt werden soll. Im Allgemeinen ermöglicht die Verwendung der Arbeitswarteschlange 228 einen Multithreading-Ansatz zur Ausführung der Funktionen des Prozessmonitors 106. Als Beispiele können diese Funktionen die Registrierung eines Userspace-Prozesses für die Überwachung der 108Speicherabtastung, die Registrierung eines Userspace-Prozesses 108 für die Überwachung des Heartbeats 210, die Durchführung einer Speicherabtastung von Datenstrukturen 119, die einem Userspace-Prozess 108 entsprechen, das Abhören eines Heartbeats 210 von einem Userspace-Prozess 108, das Erzeugen von Pings (z. B. Nachrichten) für den Heartbeat 230, das Regulieren des Sendens von Warnungen 240 an den Baseboard-Management-Controller 170, das Senden von Berichtsnachrichten 244 an den Baseboard-Management-Controller 170, das Aufheben der Registrierung eines Userspace-Prozesses 108 für die Überwachung usw. umfassen.
  • Zurück zu 1: In Übereinstimmung mit Beispielimplementierungen kann die Computerplattform 100 zusätzlich zu dem/den Prozessor(en) 110, dem Systemspeicher 114 und dem Baseboard-Management-Controller 170 verschiedene andere Hardwarekomponenten aufweisen, wie z. B. eine Input/Output (I/O)-Brücke oder einen Plattform-Controller-Hub (PCH) 118; ein oder mehrere Massenspeichergeräte 130; einen nichtflüchtigen Speicher 184 (z. B., Flash-Speicher), der die Firmware 176 speichert; eine oder mehrere Netzwerkschnittstellenkarten (NICs) 113; ein vertrauenswürdiges Plattformmodul (TPM) 188; E/A-Geräte (z. B. eine Tastatur, eine Maus, ein Trackpad, ein Display usw.); PCIe-Optionskarten und so weiter.
  • Der Baseboard-Management-Controller 170, die NIC(s) 113, das TPM 188 und die Prozessoren 110 können gemäß Beispielimplementierungen über den PCH 118 kommunizieren; und das/die Speichergerät(e) 130 kann/können über den PCH 118 mit den Prozessoren 110 verbunden werden. Wie in 1 dargestellt, kann (können) die Speichervorrichtung(en) 130 gemäß einigen Implementierungen ein Betriebssystem-Image 132 (entsprechend einem Betriebssystem), einen Betriebssystem-Bootloader-Code 134 (entsprechend einem Betriebssystem-Bootloader), einen Prozessüberwachungscode 135 (entsprechend dem Prozessmonitor 106) und einen Anwendungscode 136 (entsprechend den Anwendungen 111) speichern. In der Beispielimplementierung von 1 koppelt ein NIC 113 den PCH 118 an die Netzwerkstruktur 190, um dem Baseboard-Management-Controller 170 die Kommunikation mit einem Management-Netzwerk zu ermöglichen, einschließlich des dargestellten Remote-Management-Servers 194. In Übereinstimmung mit weiteren Beispielimplementierungen kann der Baseboard-Management-Controller 170 einen Netzwerkschnittstellen-Controller enthalten, der mit der Netzwerkstruktur 190 kommuniziert.
  • Im Allgemeinen kann die Netzwerkstruktur 190 mit einem oder mehreren Typen von Kommunikationsnetzwerken verbunden sein, wie (als Beispiele) Fibre-Channel-Netzwerke, iSCSI-Netzwerke, ATA-over-Ethernet-Netzwerke (AoE), HyperSCSI-Netzwerke, Gen-Z-Fabrics, dedizierte Verwaltungsnetzwerke, lokale Netzwerke (LANs), Weitverkehrsnetzwerke (WANs), globale Netzwerke (z. B. das Internet), drahtlose Netzwerke oder eine beliebige Kombination davon.
  • Das TPM 188 ist ein Beispiel für eine Sicherheitskomponente der Computerplattform 100, die über einen sicheren Speicher verfügt, der zum Speichern sicherer Informationen (z. B. die sicheren Boot-Variablen, Hashes zur Überprüfung der Integritätsmessung, Schlüssel usw.) für die Computerplattform 100 verwendet werden kann. Beispiele für TPMs, die verwendet werden können, sind im Handel von Anbietern wie Infineon Technologies, Nuvoton und STMicroelectronics erhältlich. Gemäß weiteren Ausführungsbeispielen kann die Computerplattform 100 auch eine andere Sicherheitskomponente als ein TPM enthalten. Darüber hinaus kann es sich bei dem TPM in weiteren Implementierungen um ein virtuelles TPM (vTPM) handeln. Je nach der jeweiligen Implementierung kann das TPM in Firmware, Software oder Hardware implementiert sein. In Übereinstimmung mit weiteren Implementierungen kann die Computerplattform 100 kein TPM enthalten.
  • Gemäß Beispielimplementierungen kann der Baseboard-Management-Controller 170 ein eingebettetes System sein, das auf einer Hauptplatine der Plattform 100 montiert ist. Abhängig von der jeweiligen Implementierung kann der Baseboard-Management-Controller 170 ein oder mehrere Halbleiterpakete (oder „Chips“) und ein oder mehrere Halbleiterchips enthalten. In Übereinstimmung mit weiteren Implementierungen kann der Baseboard-Management-Controller 170 eine Erweiterungskarte sein, die mit einem Steckplatz auf der Hauptplatine verbunden ist. In weiteren Ausführungsformen kann der Baseboard-Management-Controller 170 keine auf der Hauptplatine montierten Halbleiterpakete enthalten oder sich auf einer Erweiterungskarte befinden. Unabhängig von seiner besonderen Form oder Implementierung kann der Baseboard-Management-Controller 170 im Allgemeinen einen oder mehrere eingebettete Mehrzweck-Verarbeitungskerne 154 (z. B. CPU-Verarbeitungskerne) enthalten, die maschinenausführbare Befehle ausführen können, um einen Alarmmonitor 172 für den Baseboard-Management-Controller 170 bereitzustellen. Im Allgemeinen kann der Alarmmonitor 172, wie hierin weiter beschrieben, verschiedene Funktionen im Zusammenhang mit der hierin beschriebenen Prozessüberwachung ausführen, wie z. B. das Abhören des Heartbeats 230 (2); Authentifizierung von Nachrichten, die Heartbeat-Anzeigen oder Pings des Heartbeats 230 entsprechen; Reaktion auf eine erkannte Unterbrechung des Heartbeats 230; Ergreifen von Korrektur- oder Abhilfemaßnahmen als Reaktion auf das Versäumnis, den Heartbeat 230 zu erkennen; Empfangen von Warnungen 240 vom Prozessmonitor 106; Ergreifen von Korrektur- oder Abhilfemaßnahmen als Reaktion auf die Warnungen 240; Senden von Warnungen 250 an einen Fernverwaltungsserver 194; Empfangen von Berichtsnachrichten 244 vom Prozessmonitor 106; Senden von Berichtsnachrichten 260 an einen Fernverwaltungsserver 194; und so weiter.
  • Ein „Baseboard-Management-Controller“ ist ein spezialisierter Dienstprozessor, der den physischen Zustand eines Servers oder anderer Hardware mit Hilfe von Sensoren überwacht und mit einem Verwaltungssystem über ein Verwaltungsnetz kommuniziert. Der Baseboard-Management-Controller 170 kann mit Anwendungen, die auf der Betriebssystemebene ausgeführt werden, über einen IOCTL-Schnittstellentreiber, eine REST-Anwendungsprogrammschnittstelle (API) oder einen anderen Systemsoftware-Proxy kommunizieren, der die Kommunikation zwischen dem Baseboard-Management-Controller 170 und Anwendungen erleichtert. Der Baseboard-Management-Controller 170 kann auf Hardware-Ebene auf Hardware-Geräte zugreifen, die sich in einem Servergehäuse befinden, einschließlich des Systemspeichers. Der Baseboard-Management-Controller 170 kann in der Lage sein, die Hardware-Geräte direkt zu verändern. Der Baseboard-Management-Controller 170 kann unabhängig vom Betriebssystem der Computerplattform 100 arbeiten. Der Baseboard-Management-Controller 170 kann sich auf der Hauptplatine oder der Hauptplatine des Servers oder eines anderen zu überwachenden Geräts befinden. Die Tatsache, dass ein Baseboard-Management-Controller auf einer Hauptplatine des verwalteten Servers/der verwalteten Hardware montiert oder anderweitig mit dem verwalteten Server/der verwalteten Hardware verbunden oder daran angebracht ist, verhindert nicht, dass der Baseboard-Management-Controller als „getrennt“ von dem Server/der Hardware betrachtet wird. Wie hierin verwendet, verfügt ein Baseboard-Management-Controller über Verwaltungsfunktionen für Teilsysteme eines Computergeräts und ist von einer Verarbeitungsressource getrennt, die ein Betriebssystem eines Computergeräts ausführt. So ist der Baseboard-Management-Controller 170 von dem/den Prozessor(en) 110 getrennt, die das High-Level-Betriebssystem für die Computerplattform 100 ausführen.
  • In Übereinstimmung mit Beispielimplementierungen kann der Basisplatinen-Verwaltungscontroller 170 eine Verwaltungsebene und eine separate Sicherheitsebene haben. Über seine Verwaltungsebene kann der Basisplatinen-Verwaltungscontroller 170 verschiedene Verwaltungsdienste für die Computerplattform 100 bereitstellen. Zusätzlich zu den hier beschriebenen Aktionen, die sich auf die Überwachung der Integritäten der Prozesse 108 und des Betriebssystemkerns 104 beziehen, kann der Basisplatinen-Verwaltungscontroller 170 verschiedene andere Verwaltungsdienste bereitstellen, wie z. B. die Überwachung von Sensoren (z. B. Temperatursensoren, Sensoren für die Lüfterdrehzahl), die Überwachung des Betriebssystemstatus, die Überwachung des Energiestatus, die Protokollierung von Ereignissen auf der Computerplattform 100, die Bereitstellung von ferngesteuerten Verwaltungsfunktionen für die Computerplattform 100 und so weiter. Über seine Sicherheitsebene stellt der Baseboard-Management-Controller 170 gemäß Beispielimplementierungen Sicherheitsfunktionen oder -dienste für die Computerplattform 100 bereit, z. B. Schlüsselverwaltung (z. B. Funktionen in Bezug auf das Speichern und Laden kryptografischer Schlüssel), Firmware-Image-Validierung, Abruf der kryptografischen Identität der Plattform, Laden von Messungs-Hashes, Abruf von Messungs-Hashes und so weiter.
  • Wie weiter unten beschrieben, kann der Basisplatinen-Verwaltungscontroller 170 gemäß einigen Implementierungen als Teil seiner Sicherheitsebene einen Seed oder einen Schlüssel speichern, den der Basisplatinen-Verwaltungscontroller 170 zur Authentifizierung von Nachrichten verwenden kann, die den Pings des Heartbeat 230 entsprechen (2). Die Authentifizierung der Heartbeat-Nachrichten ist eine Sicherheitsmaßnahme, die verhindert, dass ein mächtiger Gegner die Heartbeat-Nachrichten fälscht. Wie weiter unten beschrieben, kann die Basisplatinen-Verwaltungssteuerung 170 den Seed oder Schlüssel an den Prozessmonitor 106 als Teil des Hochfahrens oder Einschaltens der Computerplattform 100 übermitteln; und der Prozessmonitor 106 kann den Seed oder Schlüssel verwenden, um Nachrichten zu erzeugen, die den Pings des Heartbeat 230 entsprechen.
  • Die Sicherheitsebene der Basisplatinen-Verwaltungssteuerung 170 wird gemäß Beispielimplementierungen durch eine sichere Enklave der Steuerung 170 gebildet, die einen Sicherheitsprozessor 173 (z. B. einen CPU-Verarbeitungskern), einen nichtflüchtigen Speicher 156 (z. B. einen Speicher zum Speichern kryptografischer Schlüssel, einer kryptografischen Identität, Seeds usw.), einen flüchtigen Speicher 155 (z. B, ein Speicher zum Speichern von Firmware, die in den flüchtigen Speicher 155 geladen und vom Sicherheitsprozessor 173 ausgeführt wird); eine sichere Brücke (nicht dargestellt), um den Zugang in die sichere Enklave zu kontrollieren und die ausgehende Kommunikation aus der sicheren Enklave zu steuern; kryptografiebezogene Peripheriegeräte (nicht dargestellt), wie kryptografische Beschleuniger, ein Zufallszahlengenerator, eine Schaltung zur Erkennung von Manipulationen usw.; und eine Hardware- oder „Silizium“-Root-of-Trust (RoT)-Engine, hier „SRoT-Engine 174“ genannt. In Übereinstimmung mit Beispielimplementierungen validiert die SRoT-Engine 174 die vom Sicherheitsprozessor 173 auszuführende Firmware, bevor die SRoT-Engine 174 die Firmware in den flüchtigen Speicher 155 der sicheren Enklave lädt und dem Sicherheitsprozessor 173 die Ausführung der Firmware ermöglicht.
  • Wie bereits erwähnt, umfasst der Basisplatinen-Verwaltungscontroller 170 Allzweckverarbeitungskerne 154. Der (die) Verarbeitungskern(e) 154 führt (führen) Firmware-Befehle aus einem nichtflüchtigen Speicher 164 aus, um verschiedene Verwaltungsdienste für den Controller 170 als Teil der Verwaltungsebene des Controllers bereitzustellen. Als Teil der Verwaltungsdienste 54kann/können der/die Allzweckverarbeitungskern(e) 1 Firmware-Befehle ausführen, um den Alarmmonitor 172 bereitzustellen.
  • In Übereinstimmung mit Beispielimplementierungen kann der Basisplatinen-Verwaltungscontroller 170 Firmware 176 validieren, die beispielsweise maschinenausführbaren Anweisungen und Daten entsprechen kann, die von der Computerplattform 100 ausgeführt werden, um eine Vielzahl verschiedener Funktionen für die Plattform 100 bereitzustellen. Beispielsweise kann die Firmware 176 ein Bootcode-Image enthalten, das von einem bestimmten Bootprozessor 110 ausgeführt wird, um die Computerplattform 100 hochzufahren; maschinenausführbare Anweisungen, die einem Verwaltungsstapel entsprechen, der von der Basisplatinen-Verwaltungssteuerung 170 ausgeführt wird, um eine Vielzahl verschiedener Verwaltungsdienste für die Computerplattform 100 bereitzustellen; maschinenausführbare Anweisungen, die vom Sicherheitsprozessor 173 ausgeführt werden, um verschiedene Sicherheitsdienste für die Computerplattform 100 bereitzustellen; und so weiter. Gemäß Beispielimplementierungen kann die Firmware 176 in dem nichtflüchtigen Speicher 184 gespeichert werden, und der Basisplatinen-Verwaltungscontroller 170 kann mit dem nichtflüchtigen Speicher 184 über einen Bus 183 (z. B. einen SPI-Bus (Serial Peripheral Interface)) kommunizieren. In Übereinstimmung mit weiteren Beispielimplementierungen kann der Baseboard-Management-Controller 170 die Firmware 176 nicht validieren, und die Validierung kann durch ein separates Sicherheits-Halbleiterpaket erfolgen, das beispielsweise zwischen dem Baseboard-Management-Controller 170 und dem nichtflüchtigen Speicher 184 angeordnet ist.
  • Bei Beispielimplementierungen, bei denen der Basisplatinen-Verwaltungscontroller 170 die Firmware 176 validiert, hält der Basisplatinen-Verwaltungscontroller 170 im Allgemeinen als Reaktion auf einen Einschalt-Reset der Computerplattform 100 den/die Allzweckverarbeitungskern(e) 154 des Controllers 170 im Reset. Nach der Durchführung anfänglicher Root-of-Trust-Sicherheitsprüfungen sowie anderer Prüfungen (z. B. Hardware-Fehlerprüfungen) gibt der Basisplatinenverwaltungs-Controller 170 den/die Mehrzweckverarbeitungskern(e) 154 aus dem Reset frei.
  • Gemäß Beispielimplementierungen speichert der Baseboard-Management-Controller 170 einen unveränderlichen Fingerabdruck, der von der SRoT-Engine 174 verwendet wird, um maschinenausführbare Anweisungen zu validieren. Genauer gesagt validiert die SRoT-Engine 174 in Übereinstimmung mit Beispielimplementierungen als Reaktion auf das Zurücksetzen beim Einschalten einen anfänglichen Teil der Firmware (der 176ursprünglich im nichtflüchtigen Speicher 184 gespeichert war) und lädt ihn dann in den Speicher 155, so dass diesem Firmware-Teil nun vertraut werden kann. Der Sicherheitsprozessor 173 kann booten und die geladenen Firmware-Anweisungen ausführen. Durch die Ausführung der Firmware-Befehle kann der Sicherheitsprozessor 173 dann einen anderen Teil der Firmware176 validieren, der einem Teil des Management-Firmware-Stacks des Basisplatinen-Verwaltungscontrollers entspricht; und nach dieser Validierung kann der Sicherheitsprozessor 173 dann diesen Teil der Firmware 176 in den Speicher 155 laden, bevor der Speicher 155 gesperrt wird, um weitere Änderungen zu verhindern. Der Sicherheitsprozessor 173 kann auch, in Übereinstimmung mit Beispielimplementierungen, einen anderen Teil der Firmware176 validieren, der dem Boot-Image entspricht; und nach der Validierung kann das Boot-Image in den Systemspeicher 114 geladen werden, so dass ein Boot-Prozessor 110 Anweisungen des Images ausführen kann, um die Computerplattform 100 zu starten. Das Booten der Computerplattform 100 kann ein sicheres Booten (z. B. ein sicheres Booten über die Unified Extensible Firmware Interface (UEFI)) oder ein nicht sicheres Booten sein, abhängig von der jeweiligen Implementierung. Der Bootvorgang endet mit dem Laden des Bootloader-Codes 134 des Betriebssystems und der Übertragung der Kontrolle über die Computerplattform 100 an das Betriebssystem.
  • Zurück zu 2: In Übereinstimmung mit Beispielimplementierungen erkennt das Scannen der Kernel-Space-Datenstrukturen 119 durch den Prozessmonitor 106 die Injektion von Shared-Library-Objektcode zur Laufzeit. Diese Injektion von gemeinsam genutztem Bibliotheksobjektcode kann das Ergebnis der Verwendung von dynamisch geladenen Funktionen sein, um bösartige gemeinsam genutzte Bibliotheksobjekte zu laden, sowie der Injektion von gemeinsam genutztem Bibliothekscode während der Ladezeit, bei der ein Angreifer Umgebungsvariablen (z. B. eine Umgebungsvariable LD_PRELOAD) und Systemdateien (z. B. „/etc/ld.so.preload“) verwendet, um bösartige gemeinsam genutzte Objekte zu laden. Im Allgemeinen kann die Speicherabtastung durch die Prozessüberwachung 106 auch eine chirurgische Prozesscode-Injektion erkennen, bei der ein Angreifer Code in den Prozess 108 injiziert, ohne den Teil des Prozessspeichers zu stören, der sich auf das Senden des Heartbeat 210 bezieht.
  • In Übereinstimmung mit Beispielimplementierungen geht die Prozessüberwachung 106 durch Kernelspace-Datenstrukturen 119, die dem überwachten Prozess 108 entsprechen, um nach verdächtigen gemeinsam genutzten Bibliotheksobjekten zu suchen. Bei einem gemeinsam genutzten Bibliotheksobjekt kann es sich beispielsweise um ein speicherzugeordnetes gemeinsam genutztes Bibliotheksobjekt, ein gelöschtes gemeinsam genutztes Bibliotheksobjekt, ein gemeinsam genutztes Bibliotheksobjekt außerhalb der traditionellen Betriebssystemverzeichnisse, ein gemeinsam genutztes Objekt mit Speicherdateiverzeichnissen und so weiter handeln. In diesem Zusammenhang bezieht sich ein „verdächtiges“ gemeinsam genutztes Bibliotheksobjekt auf ein gemeinsam genutztes Bibliotheksobjekt, das einen zugehörigen Dateipfad aufweist, der in Kombination mit dem Typ oder der Kategorie des gemeinsam genutzten Bibliotheksobjekts darauf schließen lässt, dass das Objekt mit Malware in Verbindung steht.
  • Genauer gesagt, unter Bezugnahme auf 3 in Verbindung mit 2, kann die Prozessüberwachung 106 in Übereinstimmung mit Beispielimplementierungen eine Technik durchführen, um300 die Kernel-Space-Datenstruktur(en) 119 für einen bestimmten überwachten User-Space-Prozess 108 nach verdächtigen Shared-Library-Objekten zu scannen. Gemäß Block3 04 durchsucht die Prozessüberwachung 106 die Datenstruktur(en) 119 und identifiziert verdächtige gemeinsam genutzte Bibliotheksobjekte auf der Grundlage der Dateipfade der gemeinsam genutzten Bibliotheksobjekte. Beispielsweise können sich die gemeinsam genutzten Bibliotheksobjekte in einem temporären Verzeichnis, in einem Benutzer-Home-Verzeichnis usw. befinden. Der Prozessmonitor 106 kann gemäß Block3 08 die identifizierten verdächtigen Kandidaten für gemeinsam genutzte Bibliotheksobjekte zu einer Kandidatenliste hinzufügen.
  • Die Prozessüberwachung 106 kann dann, wie in den Blöcken 312 bis 3 von 324Fig. 3 dargestellt, einen iterativen Prozess beginnen, um jedes verdächtige gemeinsame Bibliotheksobjekt zu bewerten. Als Teil dieses iterativen Prozesses bestimmt der Prozessmonitor 106 gemäß Entscheidungsblock3 12, ob das verdächtige gemeinsame Bibliotheksobjekt in einer Referenzlistendatei enthalten ist. In Übereinstimmung mit Beispielimplementierungen enthält die Referenzlistendatei genehmigte gemeinsame Bibliotheksobjekte und ihre entsprechenden vollständigen Dateipfade. Abhängig von der jeweiligen Implementierung kann die Referenzlistendatei mit Informationen gefüllt werden, die von Experten geliefert werden, mit Referenzen, die von Informationen geliefert werden, die im Rahmen der Prozessüberwachung gesammelt wurden, und so weiter. Darüber hinaus können Einträge in der Referenzlistendatei entfernt und gegebenenfalls hinzugefügt werden, wenn im Laufe der Zeit Informationen über Malware-Agenten und ihr entsprechendes Verhalten bekannt werden. In Übereinstimmung mit einigen Implementierungen können eine oder mehrere Anwendungen 111 (1) auf einem separaten Sicherheitscomputersystem ausgeführt werden; gemeinsam genutzte Bibliotheksobjekte und entsprechende Dateipfade können auf dem separaten Sicherheitscomputersystem beobachtet werden; und eine Referenzlistendatei kann dann mit den beobachteten gemeinsam genutzten Bibliotheksobjekten und entsprechenden Dateipfaden zur Verwendung auf einer anderen Computerplattform, wie der Computerplattform 100, gefüllt werden. Wenn der Prozessmonitor 106 gemäß Entscheidungsblock3 16 feststellt, dass das entsprechende gemeinsam genutzte Bibliotheksobjekt in der Referenzlistendatei denselben vollständigen Dateipfad hat wie das verdächtige gemeinsam genutzte Bibliotheksobjekt, dann entfernt der Prozessmonitor 106 gemäß Block 320 das verdächtige gemeinsam genutzte Bibliotheksobjekt von der Kandidatenliste. Wenn es mehr verdächtige gemeinsame Bibliotheksobjekte in der Kandidatenliste gibt, die zu bewerten sind, kehrt die Steuerung gemäß Entscheidungsblock3 24 zum Entscheidungsblock3 12 zurück, um eine weitere Iteration durchzuführen.
  • Nachdem die verdächtigen gemeinsam genutzten Bibliotheksobjekte ausgewertet wurden, stellt der Prozessmonitor 106 gemäß Entscheidungsblock3 28 fest, ob noch verdächtige gemeinsam genutzte Bibliotheksobjekte in der Kandidatenliste verbleiben. Wenn dies der Fall ist, sendet der Prozessmonitor gemäß Block 332 eine Warnmeldung (d. h. eine Warnung 240) an den Baseboard Management Controller 170. In Übereinstimmung mit Beispielimplementierungen kann die Warnmeldung beispielsweise den entsprechenden überwachten Benutzerraumprozess 108, die fraglichen gemeinsam genutzten Bibliotheksobjekte, die Dateipfade dieser gemeinsam genutzten Bibliotheksobjekte, Zeitstempel, die den Zeitpunkten entsprechen, zu denen die Entdeckungen gemacht wurden, und so weiter identifizieren.
  • In Übereinstimmung mit Beispielimplementierungen kann der Prozessmonitor 106 die Kernelspace-Datenstrukturen 119 scannen, um alle ausführbaren COW-Seiten zu identifizieren. Im Allgemeinen sind ausführbare Seiten von gemeinsam genutzten Bibliotheksobjekten unveränderlich, d. h., sie haben einen Nur-Lese-Status und werden vom Betriebssystemkern 104 für alle Prozesse gemeinsam genutzt. Daher werden gemäß den Beispielimplementierungen COW-Ausführungsseiten verwendet, um ein Verhalten zu erkennen, das mit Malware übereinstimmt, da ein nicht manipulierter Prozess kein gemeinsam genutztes Bibliotheksobjekt mit einer COW-Ausführungsseite haben sollte, d. h. eine Seite mit privaten Änderungen. Das Einschleusen von Code mit ptrace und anderen Tools löst COW aus, da der Kernel des Betriebssystems 104 sicherstellt, dass Änderungen für andere Prozesse, die dieselbe gemeinsam genutzte Bibliotheksobjektdatei abbilden, nicht sichtbar sind und nicht in die zugrunde liegende Datei zurückgeschrieben werden. Der von der Prozessüberwachung 106 verwendete Ansatz erkennt die Code-Einspeisung ohne Messungen und stützt sich nicht auf den tatsächlichen Inhalt von Nutzerspeicherseiten, die z. B. verschlüsselt sein können.
  • Um zu verhindern, dass Malware persistent wird, kann das Betriebssystem alle ausführbaren Seiten einer nativen Binärdatei, die von einer Datei unterstützt wird, als „privat“ und schreibgeschützt kennzeichnen. In diesem Fall bedeutet „privat“, dass Aktualisierungen für andere Prozesse, die dieselbe Datei abbilden, nicht sichtbar sind und nicht in die zugrunde liegende Datei zurückgeschrieben werden. Dies bedeutet, dass das Einfügen von Code in die ausführbaren Seiten einer dateigestützten Binärdatei effektiv eine COW auslöst. Daher erkennt die Speicherabtastung durch die Prozessüberwachung 106 in Übereinstimmung mit Beispielimplementierungen Code, der auf andere Weise als über gemeinsam genutzte Bibliotheksobjekte injiziert wird.
  • Unter Bezugnahme auf 4 in Verbindung mit 2 kann die Prozessüberwachung 106 gemäß Beispielimplementierungen eine Technik 400 durchführen, um die Kerneldatenstruktur(en) 119 nach einem zugehörigen, im Benutzerraum überwachten Prozess 108 zu scannen, um ausführbare COW-Seiten zu identifizieren und als Reaktion darauf einen Alarm zu erzeugen. Genauer gesagt, kann der Prozessmonitor 106 gemäß der Technik4 00 die Datenstrukturen 119 durchlaufen (Block4 04) und nach COW-Ausführungsseiten suchen. Zum Beispiel kann der Prozessmonitor 106 für ein Linux-Betriebssystem, in dem die Datenstrukturen 119 VMAs sind, eine COW-ausführbare Seite identifizieren, wenn ein VMA für den überwachten Benutzerraumprozess 108 die folgenden Flags für die Seite hat: ein R-Flag, das auf „1“ gesetzt ist, was anzeigt, dass die Seite nur gelesen werden kann; ein D-Flag, das auf „1“ gesetzt ist, was anzeigt, dass die Seite schmutzig ist; und ein E-Flag, das auf „1“ gesetzt ist, was anzeigt, dass die Seite ausführbar ist. Wenn gemäß Entscheidungsblock4 08 irgendwelche COWausführbaren Seiten gefunden werden, sendet der Prozessmonitor 106 eine Warnmeldung (d. h. eine Warnmeldung 240) an die Basisplatinen-Verwaltungssteuerung 170 gemäß Block In412. Übereinstimmung mit Beispielimplementierungen kann diese Meldung eine Kennung für den Prozess 108, Informationen für die identifizierte(n) COW-ausführbare(n) Seite(n), die gefunden wurde(n), Zeitstempel, die den Zeiten der Entdeckungen entsprechen, usw. enthalten.
  • 7 zeigt ein Beispielverfahren 700, das z. B. regelmäßig ausgelöst werden kann, damit der Prozessmonitor 106 überprüft, ob eine Zeitüberschreitung des Heartbeat 210 für einen bestimmten überwachten Benutzerprozess 108 aufgetreten ist. So stellt der Prozessmonitor 106 gemäß Entscheidungsblock 704 fest, ob eine Zeitüberschreitung des Heartbeats aufgetreten ist; und wenn dies der Fall ist, sendet der Prozessmonitor 106 gemäß Block 708 eine Warnmeldung an den Baseboard Management Controller 170. Die Warnmeldung 240 kann beispielsweise einer Nachricht entsprechen, die Informationen zur Identifizierung des bestimmten überwachten User-Space-Prozesses 108, für den die Heartbeat-Zeitüberschreitung aufgetreten ist, einen Zeitstempel, der die Zeit angibt, zu der die Zeitüberschreitung erkannt wurde, usw. enthält. Es wird darauf hingewiesen, dass, wie hier beschrieben, die Technik 700 für einen bestimmten Prozess 108 optional sein kann.
  • Wie bereits erwähnt, ist es möglich, dass ein mächtiger Angreifer die von der Prozessüberwachung 106 gelieferten Heartbeat-Meldungen 230 fälscht oder nachahmt. Daher werden in Übereinstimmung mit Beispielimplementierungen Maßnahmen ergriffen, die es dem Basisplatinenmanagement-Controller7 10 ermöglichen, Nachrichten zu authentifizieren, die als „Heartbeat-Nachrichten“ erscheinen, d. h. Nachrichten, die Heartbeat-Angaben oder Pings des Heartbeat 230 entsprechen. Je nach Implementierung kann eine von vielen Arten von Authentifizierungsverfahren verwendet werden.
  • Gemäß einigen Implementierungen kann der Prozessmonitor 106 beispielsweise einen Heartbeat 230 erzeugen, indem er eine Nachricht generiert, die einen Nachrichtenkopf enthält, der angibt, dass es sich bei der Nachricht um eine „Heartbeat-Nachricht“ handelt, und die auch einen Zählwert enthält, der verwendet werden kann, um die Nachrichten als tatsächlich eine Heartbeat-Nachricht zu authentifizieren. Der Zählwert kann z. B. durch einen monoton ansteigenden Zähler erzeugt werden, der sich um einen vorgegebenen Inkrementwert erhöht. Der Baseboard-Management-Controller 170 kann ebenfalls einen monoton ansteigenden Zähler enthalten, der sich um denselben vorbestimmten Inkrementwert erhöht. Der Prozessmonitor 106 und der Baseboard-Management-Controller 170 können die von ihren Zählern gespeicherten Anfangszählwerte synchronisieren, so dass die beiden Zähler im Gleichschritt arbeiten. Auf diese Weise kann der Prozessmonitor 106, um eine bestimmte Heartbeat-Meldung an den Basisplatinenmanagement-Controller 170 zu senden, beispielsweise seinen Zähler um den vorbestimmten Inkrementwert erhöhen, um einen Zählwert abzuleiten, und dann den Zählwert in die Heartbeat-Meldung aufnehmen. Die Heartbeat-Meldung kann beispielsweise auch Header-Informationen enthalten, die anzeigen, dass die Meldung eine Heartbeat-Meldung ist. Der Basisplatinen-Verwaltungscontroller 170 kann dann (über den Alarmmonitor 172 von 1) die Heartbeat-Nachricht empfangen und den Zähler des Basisplatinen-Verwaltungscontrollers 170 um den vordefinierten Inkrementwert erhöhen, um einen Zählwert abzuleiten. Der Basisplatinenmanagement-Controller 170 kann dann die Nachricht authentifizieren, indem er diesen Zählwert mit dem Zählwert der empfangenen Nachricht vergleicht.
  • Um ein höheres Maß an Sicherheit zu erreichen, können der Prozessmonitor 106 und der Baseboard-Management-Controller 170 in Übereinstimmung mit weiteren Implementierungen Pseudozufallsgeneratoren enthalten, die jeweils eine Ausgabe auf der Grundlage derselben Polynomfunktion erzeugen. Wie hierin weiter beschrieben, kann ein anfänglicher Seed für den Pseudozufallsgenerator als Eingabe für beide Pseudozufallsgeneratoren beim Booten der Computerplattform 100 bereitgestellt werden. Mit dem Seed sind für die erste Heartbeat-Nachricht die entsprechenden Ausgaben beider Polynomgeneratoren gleich. Daher kann der Baseboard-Management-Controller 170 dann (über den Alert-Monitor 172 von 1) die erste Heartbeat-Nachricht empfangen und eine in der Nachricht eingebettete Zahl mit der Ausgabe seines Pseudozufallsgenerators vergleichen, um die Nachricht zu authentifizieren. Die nächste Ausgabe des Pseudozufallsgenerators kann z. B. durch Anwendung der aktuellen Ausgabe als Eingabe erzeugt werden. Unabhängig davon, wie die Eingaben für die Pseudozufallsgeneratoren erzeugt werden, arbeiten beide Pseudozufallsgeneratoren im Allgemeinen im Gleichschritt, so dass die Ausgaben der Pseudozufallsgeneratoren zum Senden und Authentifizieren von Heartbeat-Nachrichten verwendet werden können.
  • In Übereinstimmung mit weiteren Implementierungen kann ein noch höherer Grad an Sicherheit für die Heartbeat-Nachrichten die Verwendung eines Nachrichtenauthentifizierungscodes (MAC) beinhalten. Im Allgemeinen ist der MAC eine Markierung, die in eine Nachricht eingefügt werden kann und auf der Grundlage eines Inhalts der Nachricht und eines Schlüssels erzeugt wird. Wie weiter unten beschrieben, kann der Schlüssel sowohl dem Prozessmonitor 106 als auch dem Baseboard-Management-Controller 170 beim Hochfahren der Computerplattform 100 zur Verfügung gestellt werden, so dass der MAC einer angenommenen Heartbeat-Nachricht vom Baseboard-Management-Controller 170 zur Authentifizierung der Nachricht verwendet werden kann.
  • 5 zeigt ein Beispiel für eine Boot-Technik 500, die veranschaulicht, wie ein Seed oder Schlüssel für die Heartbeat-Nachricht als Teil des Bootvorgangs der Computerplattform 100 an den Prozessmonitor 106 verteilt werden kann. In diesem Beispiel verfügt der Baseboard-Management-Controller 170 bereits über den Heartbeat-Seed oder -Schlüssel, da der Baseboard-Management-Controller 170 den Heartbeat-Seed oder -Schlüssel in seinem Speicher speichert (z. B. speichert er Daten, die den Seed oder Schlüssel darstellen, im nichtflüchtigen Speicher 156 des Baseboard-Management-Controllers 170).
  • Wie aus 5 in Verbindung mit 1 hervorgeht, kann der Baseboard-Management-Controller 170 als Teil dieser Boot-Technik 500 den Heartbeat-Schlüssel oder Heartbeat-Seed in einer SMBIOS-Tabelle (System Management Basic Input/Output Operating System) speichern (Block 508). Im Allgemeinen kann die SMBIOS-Tabelle vom Betriebssystem-Kernel 104 gelesen werden, nachdem der Kernel 104 geladen und initialisiert wurde. Das Verfahren 500 umfasst das Laden (Block 512) des Betriebssystem-Bootloader-Codes 134; und folglich lädt der Betriebssystem-Bootloader das Betriebssystem gemäß Block 516. Wie in Block 520 dargestellt, liest der Prozessmonitor 106 als Teil der Betriebssysteminitialisierung den Heartbeat-Schlüssel oder Heartbeat-Seed aus der SMBIOS-Tabelle aus (Block 520) und löscht den Schlüssel/Seed. Das Betriebssystem hat dann die Kontrolle über die Computerplattform 100, wie in Block 524 dargestellt.
  • Wenn der Heartbeat-Schlüssel zur Authentifizierung der Heartbeat-Nachricht verwendet wird, kann der Betriebssystem-Kernel 104 den Heartbeat-Schlüssel als Teil der Betriebssystem-Initialisierung in den Kernel-Schlüsselring einlesen. Darüber hinaus kann der Bootloader des Betriebssystems gemäß weiteren Implementierungen den Heartbeat-Schlüssel indirekt in den Kernel Key Ring laden.
  • In Übereinstimmung mit weiteren Implementierungen kann der Heartbeat-Seed oder Heartbeat-Key in den Prozessmonitor 106 als Kernel-Parameter zur Boot-Zeit injiziert werden. Darüber hinaus kann bei diesen Implementierungen der Heartbeat-Seed oder Heartbeat-Schlüssel dem Baseboard-Management-Controller 170 über eine API des Baseboard-Management-Controllers 170 zum Hinzufügen des Seeds/Schlüssels bereitgestellt werden.
  • Unter Bezugnahme auf 6 in Verbindung mit 1 1 kann der Prozessmonitor 106 in Übereinstimmung mit einigen Implementierungen eine Technik 600 zum Senden einer Nachricht verwenden, die dem Heartbeat 230 entspricht (d. h. zum Senden eines Pings des Heartbeat 230). Gemäß Block 604 konstruiert die Prozessüberwachung 106 eine Nachricht, die dem Heartbeat 230 entspricht, einschließlich der Erzeugung eines MAC für die Nachricht auf der Grundlage eines Heartbeat-Schlüssels. Dann sendet der Prozessmonitor 106 gemäß Block608 die Nachricht über den Baseboard Management Controller 170. Es wird darauf hingewiesen, dass das Verfahren 600 in Übereinstimmung mit Beispielimplementierungen durch eine Unterbrechung gemäß einem periodischen Zeitplan ausgelöst werden kann. In Übereinstimmung mit einigen Implementierungen kann der Prozessmonitor 106 die Nachricht über eine PCIe-Verbindung an den Baseboard-Management-Controller 170 übermitteln.
  • In 8 ist allgemein eine Technik 800 dargestellt, die vom Alarmmonitor 172 (1) des Basisplatinenmanagement-Controllers 170 verwendet werden kann, um eine Nachricht zu verarbeiten, deren Kopfzeile anzeigt, dass es sich bei der Nachricht um eine Heartbeat-Nachricht handelt. Unter Bezugnahme auf 8 in Verbindung mit 1 1 bestimmt der Basisplatinen-Verwaltungscontroller 170 gemäß der Technik 800 nach dem Entscheidungsblock 804, ob der Nachrichtenkopf anzeigt, dass die potenzielle Heartbeat-Nachricht vom Prozessmonitor 106 stammt, und wenn nicht, verarbeitet der Basisplatinen-Verwaltungscontroller 170 die Nicht-Heartbeat-Nachricht gemäß Block 810. Andernfalls, wenn der Nachrichtenkopf anzeigt, dass die Nachricht eine Heartbeat-Nachricht ist, bestimmt der Basisplatinenmanagement-Controller 170 gemäß Entscheidungsblock 814, ob die Nachricht authentifiziert wurde, und wenn nicht, meldet er die Nachricht gemäß Block 818. Beispielsweise kann der Basisplatinen-Verwaltungscontroller 170 auf der Grundlage einer in der Nachricht enthaltenen MAC und eines kryptografischen Schlüssels feststellen, ob die Kandidaten-Heartbeat-Nachricht authentifiziert ist.
  • Wenn die Nachricht authentifiziert ist, protokolliert (Block 822) der Basisplatinen-Verwaltungscontroller 170 den Heartbeat 230, d. h., der Basisplatinen-Verwaltungscontroller 170 protokolliert den Heartbeat-Ping, der der authentifizierten Heartbeat-Nachricht entspricht.
  • 9 zeigt eine Technik 900, die vom Alarmmonitor 172 (1) des Basisplatinenmanagement-Controllers 170 verwendet werden kann, um periodisch (oder nach einem anderen Zeitplan) zu prüfen, ob eine Zeitüberschreitung des Heartbeats 230 vorliegt. Unter Bezugnahme auf Fig. in9 Verbindung mit 1 stellt der Basisplatinenmanagement-Controller 170 gemäß dem Verfahren 900 fest (Entscheidungsblock 910), ob eine Zeitüberschreitung des Heartbeats 230 oder eine Warnmeldung vom Prozessmonitor 106 vorliegt. Wenn dies der Fall ist, sendet der Baseboard-Management-Controller 170 gemäß Block 914 eine Warnmeldung an den Remote-Management-Server 194 und führt möglicherweise eine oder mehrere zusätzliche Abhilfemaßnahmen durch, wie z. B. das Einleiten (Block 918) eines Power-On-Resets der Computerplattform 100. In Übereinstimmung mit weiteren Beispielimplementierungen kann der Basisplatinen-Verwaltungscontroller 170 andere und/oder andere Abhilfemaßnahmen ergreifen, wie z. B. das Sperren eines nachfolgenden Startvorgangs der Computerplattform 100, bis er durch entsprechende Berechtigungsnachweise autorisiert wird, usw.
  • Es sind auch andere Varianten denkbar, die in den Anwendungsbereich der beigefügten Ansprüche fallen. In Übereinstimmung mit weiteren Implementierungen kann die Prozessüberwachung 106 beispielsweise den Heartbeat 230 (2) und alle Warnmeldungen 240 an einen anderen Hardware-Controller als einen Baseboard-Management-Controller senden, z. B. an eine Grafikverarbeitungseinheit (GPU), einen Netzwerkprozessor oder einen Mikrocontroller, der keine Verwaltungsdienste für die Computerplattform 100 bereitstellt. In Übereinstimmung mit weiteren Implementierungen kann der Schlüssel oder Seed für den Heartbeat 230 in einem anderen sicheren Speicher als dem Speicher des Baseboard-Management-Controllers 170 gespeichert sein. Beispielsweise kann der Schlüssel oder das Seed in einem Speicher des TPM 188 (1) gespeichert sein. In Übereinstimmung mit weiteren Implementierungen kann der Baseboard-Management-Controller 170 keine Hardware-Vertrauensbasis enthalten und die Firmware 176 nicht validieren. In Übereinstimmung mit weiteren Implementierungen kann das Scannen des Kernelspacespeichers durch den Prozessmonitor 106 auch nach anderen Informationen als denen über gemeinsam genutzte Bibliotheksobjekte und ausführbare COW-Seiten suchen.
  • Darüber hinaus kann in Übereinstimmung mit weiteren Implementierungen das Scannen des Kernelspeichers durch den Prozessmonitor 106 kein Scannen nach verdächtigen gemeinsam genutzten Bibliotheksobjekten und kein Scannen nach ausführbaren COW-Seiten beinhalten; und Aspekte des Scannens können in Übereinstimmung mit Beispielimplementierungen als Teil der Registrierung eines Prozesses für das Scannen ausgewählt werden.
  • Obwohl hier beispielhaft auf das Linux-Betriebssystem Bezug genommen wird, kann die Computerplattform 100 in Übereinstimmung mit weiteren Implementierungen ein anderes Betriebssystem (z. B. ein Windows NT-Betriebssystem) als ein Linux-Betriebssystem haben, und für diese Implementierungen kann die Computerplattform 100 eine geeignete Betriebssystemerweiterung haben, die dem Prozessmonitor 106 entspricht.
  • Benutzerraumprozesse, die nicht mit sicherheitsrelevanten Prozessen zusammenhängen, können überwacht werden und können daher gemäß Beispielimplementierungen überwachte Benutzerraumprozesse 108 sein, die von der Prozessüberwachung 106 überwacht werden. Zu den überwachten Benutzerraumprozessen 108 können beispielsweise Prozesse gehören, die mit der Instanziierung von Containern, der Bereitstellung von Containern usw. zusammenhängen. In Übereinstimmung mit einigen Implementierungen kann der Baseboard-Management-Controller 170 eine Richtlinie für die Computerplattform 100 erhalten; und eine Überwachungsschnittstelle für den Baseboard-Management-Controller 170 kann es ermöglichen, die Identitäten der überwachten Benutzerraumprozesse 108 aus der Ferne zu beobachten, wodurch die Liste der überwachten Benutzerraumprozesse 108 im Laufe der Zeit aktualisiert werden kann und es einem Kunden ermöglicht, zu überprüfen, ob ein bestimmter Prozess überwacht wird. Darüber hinaus kann der Baseboard-Management-Controller 170 gemäß einigen Implementierungen eine Schnittstelle für Überwachungsmeldungen und Berichte bereitstellen, die beispielsweise über eine grafische Web-Benutzeroberfläche (GUI), eine Redfish-API, ein Simple Network Management Protocol (SNMP) usw. geprüft werden kann.
  • Wie in 10 gezeigt, 0umfasst ein Verfahren 100 gemäß Beispielimplementierungen einen Betriebssystemagenten eines Computersystems, der einen Prozess überwacht (Block 1004), um festzustellen, ob die Integrität des Prozesses beeinträchtigt wurde. Die Überwachung umfasst das Scannen einer Datenstruktur durch den Betriebssystem-Agenten. Der Prozess wird in einem Benutzerraum ausgeführt, und die Datenstruktur ist Teil des Kernelraums des Betriebssystems. Das Verfahren 1000 umfasst einen Hardware-Controller des Computersystems, der auf einen Heartbeat wartet (Block 1008), der vom Betriebssystemagenten erzeugt wird. Darüber hinaus beinhaltet das Verfahren 1000, dass der Hardware-Controller eine Korrekturmaßnahme ergreift (Block 1012), wenn der Hardware-Controller eine Unterbrechung des Heartbeats feststellt oder wenn der Betriebssystem-Agent dem Hardware-Controller eine Sicherheitswarnung für den Prozess übermittelt.
  • Bezug nehmend auf 11 speichert ein nicht-transitorisches Speichermedium 1100 maschinenlesbare Anweisungen 1104, die, wenn sie von einer Maschine ausgeführt werden, die Maschine veranlassen, einen Kernel-Speicherraum zu scannen, der mit einem Prozess verbunden ist, um einen Speicherzustand zu erkennen, der dem Prozess entspricht, der durch einen Sicherheitsangriff gefährdet ist. Die Anweisungen 1104 veranlassen, wenn sie von der Maschine ausgeführt werden, ferner die Maschine, einen ersten Heartbeat an einen Hardware-Controller zu senden; und als Reaktion auf die Erkennung des Speicherzustands eine Warnung an den Hardware-Controller zu übermitteln, um den Hardware-Controller zu veranlassen, korrigierende Maßnahmen zu ergreifen.
  • Wie in 12 gezeigt, umfasst eine Computerplattform 1200 einen Basisboard-Management-Controller 1204, einen Hardware-Prozessor 1208 und einen Speicher 1212, der Anweisungen 1216 speichert. Der Baseboard-Management-Controller 1204 soll einen ersten Heartbeat überwachen, der von einer ladbaren Betriebssystem-Kernel-Erweiterung bereitgestellt wird, und als Reaktion auf eine erkannte Unterbrechung des ersten Heartbeats oder eine Übermittlung einer Sicherheitsmeldunq vom Betriebssystem-Kernel-Modul eine Aktion zur Behebung der Sicherheitsmeldung einleiten. Die Anweisungen 1216 veranlassen den Hardwareprozessor 1208, wenn er von dem Hardwareprozessor 1208 ausgeführt wird, auf einen zweiten Heartbeat zu warten, der von dem Prozess erzeugt wird; einen mit dem Prozess assoziierten Kernel-Speicherraum zu scannen, um einen Speicherzustand zu erkennen, der einer gefährdeten Integrität des Prozesses entspricht; und den ersten Heartbeat an den Baseboard-Management-Controller 1204 zu senden. Die Anweisungen 1216 veranlassen den Hardwareprozessor 1208, wenn sie von dem Hardwareprozessor 1208 ausgeführt werden, als Reaktion auf mindestens eines der folgenden Ereignisse, nämlich einen Fehler bei der Erkennung des zweiten Heartbeats oder die Erkennung des Speicherzustands, die Sicherheitsmeldung an den Baseboard-Management-Controller 1204 zu übermitteln.
  • Gemäß Beispielimplementierungen registriert eine Anwendung den Prozess bei dem Betriebssystem-Agenten, und der Betriebssystem-Agent beginnt als Reaktion auf die Registrierung mit der Überwachung des Prozesses. Ein besonderer Vorteil ist, dass Anwendungen die zu überwachenden Prozesse auswählen können.
  • In Übereinstimmung mit Beispielimplementierungen umfasst die Registrierung die Anwendung, die die Heartbeat-Überwachung des Prozesses durch den Betriebssystemagenten ermöglicht. Ein besonderer Vorteil ist, dass das Scannen des Speichers ohne Heartbeat-Überwachung für ältere Anwendungen verwendet werden kann, die die Bereitstellung eines Heartbeats nicht unterstützen.
  • Gemäß Beispielimplementierungen umfasst das Ergreifen von Abhilfemaßnahmen durch den Hardware-Controller mindestens eines der folgenden Elemente: der Hardware-Controller initiiert einen Neustart des Computersystems oder der Hardware-Controller übermittelt eine Sicherheitswarnung an einen Verwaltungsserver. Ein besonderer Vorteil ist, dass Abhilfemaßnahmen in Echtzeit oder nahezu in Echtzeit als Reaktion auf erkannte Malware-Aktivitäten ergriffen werden können.
  • In Übereinstimmung mit Beispielimplementierungen hört der Hardware-Controller auf den Heartbeat, indem er eine Nachricht vom Betriebssystem-Agenten empfängt und bestimmt, ob die Nachricht den Heartbeat repräsentiert, basierend auf einem vorbestimmten Seed oder Schlüssel, der mit dem Heartbeat verbunden ist. Ein besonderer Vorteil ist, dass Angreifer daran gehindert werden können, den Heartbeat zu fälschen.
  • Gemäß Ausführungsbeispielen speichert der Hardware-Controller in einer Vor-Betriebssystem-Umgebung des Computersystems den vorbestimmten Seed oder Schlüssel in einer SMBIOS-Tabelle (System Management Basic Input Output System); der Betriebssystem-Agent liest den vorbestimmten Seed oder Schlüssel aus der SMBIOS-Tabelle; und der vorbestimmte Seed oder Schlüssel wird aus der SMBIOS-Tabelle gelöscht. Ein besonderer Vorteil ist, dass ein gewisser Grad an Sicherheit für die Übermittlung des vorbestimmten Schlüssels oder Seeds an den Betriebssystem-Agenten gegeben ist.
  • In Übereinstimmung mit Beispielimplementierungen wird als Reaktion auf eine Initialisierung eines Betriebssystems des Computersystems der abgerufenen Seed oder Schlüssel in einen Schlüsselring des Betriebssystems injiziert. Ein besonderer Vorteil besteht darin, dass ein höheres Maß an Sicherheit verwendet wird, um den Seed oder Schlüssel vor dem Zugriff durch einen Angreifer zu schützen.
  • Gemäß Implementierungsbeispielen kann eine Anwendung den vorbestimmten Schlüssel oder Seed dem Betriebssystem-Agenten als Kernel-Parameter mitteilen; und der vorbestimmte Seed oder Schlüssel kann dem Hardware-Controller über eine Anwendungsprogrammierschnittstelle (API) mitgeteilt werden. Ein besonderer Vorteil besteht darin, dass die Boot-Firmware nicht geändert werden muss, um den Seed oder Schlüssel bereitzustellen.
  • In Übereinstimmung mit Beispielimplementierungen wird als Reaktion auf eine Registrierung des Prozesses mit einer Heartbeat-Überwachungsoption ein vom Prozess erzeugter Heartbeat überwacht. Bei Erkennung dieses Heartbeats wird eine Warnung an den Hardware-Controller übermittelt, um diesen zu veranlassen, korrigierende Maßnahmen zu ergreifen. Ein besonderer Vorteil ist, dass der Heartbeat eine weitere Möglichkeit bietet, zu überwachen, ob die Integrität eines Prozesses beeinträchtigt wurde.
  • Obwohl die vorliegende Offenbarung in Bezug auf eine begrenzte Anzahl von Implementierungen beschrieben wurde, werden Fachleute, die über die Vorteile dieser Offenbarung verfügen, zahlreiche Modifikationen und Variationen davon erkennen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen und Variationen abdecken.

Claims (20)

  1. Ein Verfahren, das Folgendes umfasst: einen Betriebssystem-Agenten eines Computersystems, der einen Prozess überwacht, um zu erkennen, ob eine Integrität des Prozesses beeinträchtigt wurde, wobei die Überwachung das Scannen einer Datenstruktur durch den Betriebssystem-Agenten umfasst, der Prozess in einem Benutzerraum ausgeführt wird und die Datenstruktur Teil eines Betriebssystem-Kernelraums ist; einen Hardware-Controller des Computersystems, der auf einen vom Betriebssystem-Agenten erzeugten „Heartbeat“ wartet; und der Hardware-Controller eine Korrekturmaßnahme als Reaktion auf mindestens eines der folgenden Elemente ergreift: der Hardware-Controller erkennt eine Unterbrechung des Heartbeats, oder der Betriebssystem-Agent übermittelt dem Hardware-Controller eine Sicherheitswarnung für den Prozess.
  2. Das Verfahren nach Anspruch 1 umfasst ferner: eine Anwendung, die den Prozess bei dem Betriebssystem-Agenten registriert, wobei der Betriebssystem-Agent die Überwachung des Prozesses in Reaktion auf die Registrierung beginnt.
  3. Verfahren nach Anspruch 2, wobei die Registrierung die Anwendung umfasst, die eine Heartbeat-Überwachung des Prozesses durch den Betriebssystem-Agenten ermöglicht.
  4. Verfahren nach Anspruch 1, wobei die Hardware-Steuerung, die die Korrekturmaßnahme ergreift, mindestens einen der folgenden Schritte umfasst: die Hardware-Steuerung veranlasst einen Neustart des Computersystems, oder die Hardware-Steuerung übermittelt eine Sicherheitswarnung an einen Management-Server.
  5. Verfahren nach Anspruch 1, wobei der Hardware-Controller, der auf den Heartbeat hört, den Hardware-Controller umfasst: Empfangen einer Nachricht vom Betriebssystem-Agenten; und Bestimmen, ob die Nachricht den Heartbeat repräsentiert, basierend auf einem vorbestimmten Seed oder Schlüssel, der mit dem Heartbeat verbunden ist.
  6. Das Verfahren nach Anspruch 5 umfasst ferner: in einer Vorbetriebssystemumgebung des Computersystems speichert der Hardware-Controller den vorbestimmten Seed oder Schlüssel in einer SMBIOS-Tabelle (System Management Basic Input Output System); der Betriebssystem-Agent liest den vorbestimmten Seed oder Schlüssel aus der SMBIOS-Tabelle; und Löschen des vorgegebenen Seeds oder Schlüssels aus der SMBIOS-Tabelle.
  7. Das Verfahren nach Anspruch 5 umfasst ferner: als Reaktion auf die Initialisierung eines Betriebssystems des Computersystems, Injektion des abgerufenen Seeds oder Schlüssels in einen Schlüsselring des Betriebssystems.
  8. Das Verfahren nach Anspruch 5 umfasst ferner: eine Anwendung, die den vorbestimmten Schlüssel oder Seed als Kernel-Parameter an den Betriebssystem-Agenten übermittelt; und Übermittlung des vorbestimmten Seeds oder Schlüssels an das Hardware-Steuergerät unter Verwendung einer Anwendungsprogrammierschnittstelle (API).
  9. Ein nicht-übertragbares Speichermedium, das maschinenlesbare Anweisungen speichert, die, wenn sie von einer Maschine ausgeführt werden, die Maschine veranlassen,: einen mit einem Prozess verbundenen Kernel-Speicherraum zu scannen, um einen Speicherzustand zu erkennen, der dem Prozess entspricht, der durch einen Sicherheitsangriff gefährdet ist; einen ersten Heartbeat an einen Hardware-Controller senden; und als Reaktion auf die Erkennung des Speicherzustands eine Warnung an den Hardware-Controller zu übermitteln, um den Hardware-Controller zu veranlassen, korrigierende Maßnahmen zu ergreifen.
  10. Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von der Maschine ausgeführt werden, die Maschine außerdem dazu veranlassen,: als Reaktion auf eine Registrierung des Prozesses mit einer Heartbeat-Überwachungsoption auf einen zweiten Heartbeat warten, der von dem Prozess erzeugt wird; und als Reaktion auf einen Fehler bei der Erkennung des zweiten Herzschlags eine Warnung an den Hardware-Controller zu übermitteln, um den Hardware-Controller zu veranlassen, korrigierende Maßnahmen zu ergreifen.
  11. Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von der Maschine ausgeführt werden, die Maschine ferner veranlassen, den Speicherzustand auf der Grundlage der Identifizierung eines gemeinsam genutzten Bibliotheksobjekts und eines Orts des gemeinsam genutzten Bibliotheksobjekts zu erkennen.
  12. Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von der Maschine ausgeführt werden, die Maschine ferner veranlassen, den Speicherzustand auf der Grundlage der Erkennung einer ausführbaren Speicherseite, die mit dem Prozess verbunden ist, der eine Copy-on-Write-Seite ist, zu erkennen.
  13. Speichermedium nach Anspruch 12, wobei die Befehle, wenn sie von der Maschine ausgeführt werden, die Maschine ferner veranlassen, den Speicherzustand auf der Grundlage mindestens eines der Speicherseite zugeordneten Statusflags zu erkennen.
  14. Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von der Maschine ausgeführt werden, die Maschine außerdem dazu veranlassen,: ein bestimmtes gemeinsam genutztes Bibliotheksobjekt, das mit dem Prozess verbunden ist, und einen Pfad, der mit dem bestimmten gemeinsam genutzten Bibliotheksobjekt verbunden ist, identifizieren; Vergleichen des gegebenen gemeinsamen Bibliotheksobjekts mit einer Referenzliste einer Vielzahl von genehmigten gemeinsamen Bibliotheksobjekten und Dateipfaden, die mit der Vielzahl von genehmigten gemeinsamen Bibliotheksobjekten verbunden sind; und auf der Grundlage des Vergleichs zu bestimmen, ob der Speicherzustand, der dem durch einen Sicherheitsangriff beeinträchtigten Prozess entspricht, erkannt wurde.
  15. Eine Computerplattform, die Folgendes umfasst: einen Baseboard-Management-Controller zu: einen ersten Heartbeat überwachen, der von einer ladbaren Betriebssystem-Kernel-Erweiterung bereitgestellt wird; und als Reaktion auf eine erkannte Unterbrechung des ersten Heartbeats oder eine Übermittlung einer Sicherheitswarnung vom Kernelmodul des Betriebssystems eine Aktion zur Behebung der Sicherheitswarnung einleiten; einen anderen Hardware-Prozessor als den Baseboard-Management-Controller; und einen Speicher zum Speichern von Befehlen, die der Betriebssystem-Kernel-Erweiterung entsprechen, wobei die Befehle, wenn sie von dem Hardware-Prozessor ausgeführt werden, den Hardware-Prozessor veranlassen,: auf einen zweiten Heartbeat des Prozesses warten; einen mit dem Prozess verbundenen Kernel-Speicherraum zu scannen, um einen Speicherzustand zu erkennen, der einer beeinträchtigten Integrität des Prozesses entspricht; Senden des ersten Heartbeats an den Baseboard-Management-Controller; und als Reaktion auf mindestens eines von beiden, nämlich die Nichterfassung des zweiten Heartbeats oder die Erfassung des Speicherzustands, die Sicherheitswarnung an den Baseboard-Management-Controller zu übermitteln.
  16. Computerplattform nach Anspruch 15, wobei die Anweisungen, wenn sie von dem Hardware-Prozessor ausgeführt werden, den Hardware-Prozessor ferner veranlassen, die Speicherabtastung zu verwenden, um festzustellen, ob der Prozess mindestens einem von Prozess-Hollowing oder Code-Injektion unterzogen wurde.
  17. Computerplattform nach Anspruch 15, wobei der Prozess einen aus einer Vielzahl von Prozessen umfasst und die Anweisungen, wenn sie von dem Hardware-Prozessor ausgeführt werden, den Hardware-Prozessor ferner veranlassen: auf eine Vielzahl von Herzschlägen hören, die von der Vielzahl von Prozessen erzeugt werden; und als Reaktion auf eine erkannte Unterbrechung eines bestimmten Heartbeats aus der Vielzahl der Heartbeats eine Sicherheitswarnung an den Baseboard-Management-Controller übermitteln.
  18. Die Computerplattform nach Anspruch 15, wobei: die Anweisungen, wenn sie von dem Hardware-Prozessor ausgeführt werden, den Hardware-Prozessor außerdem dazu veranlassen: Bestimmen einer Vielzahl von gemeinsam genutzten Bibliotheksobjekten, die mit dem Prozess verbunden sind, und für jedes gemeinsam genutzte Bibliotheksobjekt der Vielzahl von gemeinsam genutzten Bibliotheksobjekten, Bestimmen eines Dateipfades des gemeinsam genutzten Bibliotheksobjekts; Übermittlung der mehreren gemeinsam genutzten Bibliotheksobjekte und der Dateipfade an den Baseboard-Management-Controller; und den Baseboard-Management-Controller, um die mehreren gemeinsam genutzten Bibliotheksobjekte und die Dateipfade zum Baseboard-Management-Controller an einen Remote-Management-Server zu übermitteln.
  19. Computerplattform nach Anspruch 15, wobei die Anweisungen, wenn sie von dem Hardware-Prozessor ausgeführt werden, den Hardware-Prozessor ferner veranlassen, Nachrichten zu erzeugen, die dem ersten Heartbeat auf der Grundlage eines vorbestimmten Seed oder Schlüssels entsprechen, der mit dem Baseboard-Management-Controller geteilt wird.
  20. Computerplattform nach Anspruch 15, wobei die Anweisungen, wenn sie von dem Hardwareprozessor ausgeführt werden, den Hardwareprozessor außerdem veranlassen, den Speicherzustand auf der Grundlage von mindestens einem der folgenden Punkte zu erkennen: eine Bestimmung einer ausführbaren Speicherseite, die mit dem Prozess verbunden ist, als eine Copy-on-Write-Seite; oder Erkennung eines gemeinsam genutzten Bibliotheksobjekts, das mit dem Prozess verbunden ist, und eines Dateipfads für das gemeinsam genutzte Bibliotheksobjekt.
DE102021127631.4A 2020-12-11 2021-10-25 Auf speichersuche basierende prozessüberwachung Pending DE102021127631A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/118,698 US11636214B2 (en) 2020-12-11 2020-12-11 Memory scan-based process monitoring
US17/118,698 2020-12-11

Publications (1)

Publication Number Publication Date
DE102021127631A1 true DE102021127631A1 (de) 2022-06-15

Family

ID=81749971

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021127631.4A Pending DE102021127631A1 (de) 2020-12-11 2021-10-25 Auf speichersuche basierende prozessüberwachung

Country Status (3)

Country Link
US (2) US11636214B2 (de)
CN (1) CN114625600A (de)
DE (1) DE102021127631A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698969B1 (en) * 2021-06-25 2023-07-11 Amazon Technologies, Inc. Boot security of integrated circuit device
CN117785591B (zh) * 2024-02-27 2024-04-26 北京壁仞科技开发有限公司 用于计算设备的计算内核的调试方法、计算设备、计算机可读存储介质和计算机程序产品

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918115B2 (en) 2001-02-16 2005-07-12 Microsoft Corporation Method and apparatus for synchronization of periodic processes
US7206309B2 (en) 2001-03-27 2007-04-17 Nortel Networks Limited High availability packet forward apparatus and method
US7233877B2 (en) 2003-08-29 2007-06-19 Sun Microsystems, Inc. System health monitoring
US9298423B2 (en) * 2012-07-24 2016-03-29 Ternarylogic Llc Methods and systems for determining characteristics of a sequence of n-state symbols
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US8949797B2 (en) * 2010-04-16 2015-02-03 International Business Machines Corporation Optimizing performance of integrity monitoring
US8863283B2 (en) * 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US20130312099A1 (en) * 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9043903B2 (en) * 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9800547B2 (en) 2015-04-16 2017-10-24 International Business Machines Corporation Preventing network attacks on baseboard management controllers
US10289513B2 (en) * 2015-09-14 2019-05-14 Dynatrace Llc Method and system for automated injection of process type specific in-process agents on process startup
US10528740B2 (en) * 2017-06-15 2020-01-07 International Business Machines Corporation Securely booting a service processor and monitoring service processor integrity
EP3646220B1 (de) * 2017-06-29 2023-06-07 Hewlett-Packard Development Company, L.P. Überwachung von computervorrichtungen über agent-anwendungen
US11138315B2 (en) * 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US10944649B2 (en) * 2018-05-21 2021-03-09 Dish Network L.L.C. CRM integrated chat with authorization management
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
CN109062718B (zh) * 2018-07-12 2021-08-17 联想(北京)有限公司 一种服务器及数据处理方法
US10936324B2 (en) * 2018-08-02 2021-03-02 Dell Products L.P. Proactive host device access monitoring and reporting system

Also Published As

Publication number Publication date
US20230222226A1 (en) 2023-07-13
CN114625600A (zh) 2022-06-14
US20220188423A1 (en) 2022-06-16
US11636214B2 (en) 2023-04-25

Similar Documents

Publication Publication Date Title
US11663031B2 (en) Techniques for securing virtual cloud assets at rest against cyber threats
US10509906B2 (en) Automated code lockdown to reduce attack surface for software
US9934376B1 (en) Malware detection appliance architecture
US7810091B2 (en) Mechanism to check the malicious alteration of malware scanner
US20240054234A1 (en) Methods and systems for hardware and firmware security monitoring
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
US11714910B2 (en) Measuring integrity of computing system
US20160191550A1 (en) Microvisor-based malware detection endpoint architecture
US20180211033A1 (en) Detecting threats in big data platforms based on call trace and memory access patterns
US20090271863A1 (en) Identifying unauthorized privilege escalations
US20070261120A1 (en) Method & system for monitoring integrity of running computer system
US10742603B2 (en) System and method for monitoring and protecting an untrusted operating system by means of a trusted operating system
US20080244747A1 (en) Network context triggers for activating virtualized computer applications
DE102021127631A1 (de) Auf speichersuche basierende prozessüberwachung
US20220217148A1 (en) Techniques for protecting cloud native environments based on cloud resource access
US8862730B1 (en) Enabling NAC reassessment based on fingerprint change
DE102021109189B4 (de) Verifikationsprüfung durchführen als Antwort auf Änderung im Basisregister der Seitentabelle
CN100353277C (zh) 一种利用代理技术实现计算机病毒防治的方法
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
CN117472514A (zh) 容器权限管理方法、装置、电子设备和可读存储介质
DE102021127718A1 (de) Bestimmung der korruption von datenelementen, die von einem build-server verwendet werden
Hölzner et al. Managing vulnerabilities and achieving compliance for Oracle databases in a modern ERP environment
Ibrahim et al. Virtual Machines Security in IaaS Platform
Preethi et al. Dual Protecting Mechanism For Multitier Web Application

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US

R012 Request for examination validly filed