-
Gebiet der Erfindung
-
Die Erfindung betrifft ein Computersystem für einen Betrieb in einem verteilten Rechensystem, in dem sicherheitsbezogene Aufgaben gemäß Anspruch 1 delegiert werden.
-
Hintergrund der Erfindung
-
Gegenwärtig sehen sich Hersteller von Antivirus-Software mit der Tatsache konfrontiert, dass in den letzten Jahren die Zahl der Sicherheitsbedrohungen alle denkbaren Grenzen überschritten hat. Sicherheitsbedrohungen umfassen eine Vielzahl bösartiger Software wie Trojaner, Würmer, Viren und andere unerwünschte Software sowie Links, die zu Webseiten mit Schad- und anderer unerwünschter Software führen, Schwachpunkte bei der Software-Lizensierung usw. Die Kategorie der unerwünschten Software kann auch Programme umfassen, die auf das Begehen von Eigentumsdelikten („Crimeware“), das Verfolgen von Benutzeraktivitäten („Spyware“) oder das Blockieren von Daten oder der Leistung des Computers eines Opfers („Ransomware“) gerichtet sind.
-
Die Zahl neuer, einzigartiger Bedrohungen wächst exponentiell. Gleichzeitig sind die Fähigkeiten der Hersteller von Antivirus-Software sowohl bei den Hardware-Ressourcen als auch bei der Arbeitskraft (Fachanalysten) vergleichsweise eingeschränkt, so dass es unmöglich ist, sie mit der gleichen Geschwindigkeit zu erhöhen, mit der die Zahl der Bedrohungen steigt. Einer der Gründe für den Anstieg bei bösartiger Software ist die massive Entwicklung der Kommunikations-Infrastruktur, insbesondere des Internets, und der entsprechende rasche Anstieg der Zahl der Benutzer. Das wiederum bewirkt das Wachstum bei verschiedenen Dienstleistungen, die online angeboten werden: Internet-Banking, virtuelles Geld (wie WebMoney), Benachrichtigungen, Blogs, Software als Dienstleistung und Ähnliches. Die derzeitige Generation sogenannter Computer-Krimineller hat sich aus vorherigen Generationen von Vandalen und denjenigen, die durch ihre Aktivitäten politische Aussagen machen wollen, hin zu raffinierteren Eigentums-Straftätern entwickelt, die gelernt haben, bösartige Software zu entwickeln und Netzangriffe zu organisieren, um Gelder durch Diebstahl, Erpressung oder Betrug zu stehlen. In den letzten Jahren hat ihre Tätigkeit nicht nur den Banksektor (z.B. Trojan-Banker) betroffen, sondern auch auf den Diebstahl von Konten für beliebte Online-Spiele sowie auf Erpressung durch Programme wie Erpressungstrojaner umgeschaltet. Deren Erfolg und Wachstum werden mehreren Faktoren zugeschrieben: Unzureichender Schutz vieler Online-Dienstleistungen, unzureichende oder vollständig fehlende Gesetze über Internet-Straftaten in einigen Ländern, und manchmal schlichte Ignoranz bezüglich Computersicherheit seitens der Computer-Benutzer.
-
Bei Computersicherheits-Anwendungen kann die Verwendung herkömmlicher Bedrohungs-Erfassungsverfahren wie Signatur und heuristische Analyse einfach nicht mit der Wachstumsrate der Bedrohungen mitwachsen. Die konstant wachsende Zahl bösartiger Programme macht die Entwicklung und Verbreitung neuer Antivirus-Aufzeichnungen zur Entdeckung neuer Schadprogramme sehr schwierig. Ebensowenig kann eine herkömmliche Überwachung des Internets auf neu erstellte Sites, die bösartige Software verbreiten und Computer infizieren, mit der Erstellungsrate dieser bösartigen Sites mithalten.
-
Alle diese Probleme führen dazu, dass Antivirus-Anwendungen bösartige Software übersehen können (beispielsweise wenn die Schadprogramm-Datenbanken unvollständig oder veraltet sind), sowie zu falsch positiven und falsch negativen Befunden (d.h. eine vertrauenswürdige Anwendung kann falsch als Schadprogramm erfasst werden), usw. Auf der anderen Seite neigen Antivirus-Anwendungen, die dafür ausgelegt sind, mit der großen Masse potenzieller Bedrohungen fertigzuwerden, dazu, eine unverhältnismäßige Belastung der Rechenressourcen von Computersystemen zu bilden, was oft eine negative Erfahrung für den Benutzer bedeutet.
-
Zusammen mit dem Wachstum bösartiger Software wächst auch die Welt der legalen Software. Das bedeutet zusätzliche Herausforderungen bei der Überprüfung einer steigenden Zahl von Programmen, um sie als vertrauenswürdige Anwendungen für eine Whitelist einzustufen. Auch dies führt zu rasch steigenden Anforderungen an Antivirus-Anwendungen, die durch einfaches Mitwachsen nicht zu erfüllen sind.
-
Hersteller von Antivirus-Software machen sich in bestimmtem Maß ihr BenutzerNetzwerk zunutze. In einem typischen Beispiel werden Benutzer aufgerufen, dem Hersteller der Antivirus-Software die Ergebnisse der Erfassung von Schadprogrammen oder eine Analyse unbekannter Programme, die von ihren lokal laufenden Systemen durchgeführt wird, mitzuteilen. Diese Berichte werden anschließend analysiert, mit ähnlichen Berichten abgeglichen, und von dem Hersteller der Antivirus-Software in eine Schadprogramm-Datenbank eingefügt, die regelmäßig aktualisiert und an alle Benutzer ihrer Dienstleistung verbreitet wird. Bei diesem Grundmodell profitiert das gesamte Benutzernetzwerk davon, dass der erste Benutzer ein neues Schadprogramm-Element entdeckt. Dieser Nutzen wird jedoch durch das Berichten, Prüfen, Analysieren/Abgleichen und die Zeit bis zur zyklischen Aktualisierung der Datenbank zwischen dem Entdecken eines Schadprogramm-Elements durch den ersten Benutzer und dem schließlich verbreiteten Schutz gegen dieses Schadprogramm verzögert.
-
Eine wirksamere Lösung wird benötigt, um der Expansionsrate von Sicherheitsbedrohungen zu begegnen.
-
Das Dokument
EP 2 388 727 A1 offenbart eine tragbare Informationseinrichtung (portable information device, PID) mit einem Sicherheitsmodul, das sicherheitsbezogene Funktionen ausführt. Wenigstens einige der sicherheitsbezogenen Funktionen für die PID wird von einem Sicherheitsteam von wenigstens einer anderen PID bereitgestellt. In dem Fall, wenn die PID in einem Team-Verarbeitungs-Modus konfiguriert wird, können bestimmte der Sicherheitsfunktionen oder -komponenten, die für die PID arbeiten, in einer oder mehreren der Sicherheitsteam-Mitgliedseinrichtungen verarbeitet werden. Das Team der Einrichtungen tauscht sicherheitsbezogene Informationen aus, die als Ergebnis der Verarbeitung einer oder mehrerer sicherheitsbezogener Aufgaben durch eine einzelne Team-Mitgliedseinrichtung bestimmt wird.
-
Das Dokument R. Y. Camargo et al., „Grid: An Architectural Pattern", the 11th Conference on Pattern Languages of Programs (PLoP’2004), Monticello, USA, 12 Sept. 2004, XP55035492, präsentiert ein Verfahren zum Teilen von Rechenressourcen in heterogenen verteilten Systemen zur Verbesserung der Verfügbarkeit von Rechenressourcen für die Ausführung rechenintensiver Anwendungen. Das Gittermuster des Verfahrens ermöglicht das Teilen von Rechenressourcen wie Zentraleinheit, Speicher und Diskettenspeicherung auf effiziente und transparente Art.
-
Das Dokument Luis Ferreira et al. „Introduction to Grid Computing with Globus", ibm.com/redbooks, 1 September 2003, XP55053880, ISBN: 978-0-73-842796-6, betrifft ein allgemeines Konzept des Rechnens unter Verwendung eines Computer-Grids sowie eine besondere Implementierung dieses Konzepts mit Namen Globus.
-
Kurze Beschreibung der Erfindung
-
Ein Aspekt der Erfindung ist auf das verteilte Verarbeiten sicherheitsbezogener Aufgaben gerichtet. Gemäß verschiedener Ausführungsformen bekommt ein verteilter Rechendienst Aufgaben-Anfragen für Aufgaben, die für profitierende Computer auszuführen sind, und delegiert diese Aufgaben an einen oder mehrere entfernte Agent-Computer zur Verarbeitung. Die Aufgaben-Anfragen können von den profitierenden Computern selbst oder von einem oder mehreren anderen Computern, die im Auftrag der profitierenden Computer agieren, eingeleitet werden. Die Delegierung beruht auf einer Geeignetheits-Bestimmung darüber, ob jeder der entfernten Agent-Computer zur Ausführung der Verarbeitung geeignet ist. Die Geeignetheit kann auf einer Beurteilung von Parametern wie der Rechenleistung und aktuellen Verfügbarkeit der entfernten Agent-Computer gegenüber den verschiedenen auszuführenden Aufgaben und ihren entsprechenden Rechenressourcen-Anforderungen beruhen. Diese Beurteilung kann entsprechend verschiedenen Ausführungsformen durch die Agent-Computer, den verteilten Rechendienst oder eine Kombination daraus ausgeführt werden.
-
In einem verwandten Aspekt umfasst ein Computersystem für einen Betrieb in einem verteilten Rechensystem, bei dem sicherheitsbezogene Aufgaben delegiert werden, Rechen-Hardware (z.B. einen Prozessor, eine Speichereinrichtung, eine Benutzerschnittstelle und eine Kommunikationsschnittstelle), eine Vielzahl von Schutzmodulen, die Schnittstellen mit der Rechen-Hardware aufweisen und dafür ausgelegt sind, zu bewirken, dass die Rechen-Hardware verschiedene sicherheitsbezogene Operationen für einen Benutzer des Computersystems durchführt, sowie ein verteiltes Verarbeitungsmodul. Letzteres umfasst ein Aufgaben-Annahme-Modul, das dafür ausgelegt ist, Informationen zu sammeln, die für eine Bestimmung der Verfügbarkeit des Computersystems notwendig sind, um die Delegierung wenigstens einer Aufgabe anzunehmen, deren Durchführung zum Nutzen eines profitierenden Computers über einen verteilten Rechendienst angefragt wird; und ein AufgabenAusführungs-Modul, das dafür ausgelegt ist, die wenigstens eine Aufgabe, die von dem profitierenden Computer über den verteilten Rechendienst als Reaktion auf die Bestimmung der Verfügbarkeit des Computersystems zu erhalten und die wenigstens eine Aufgabe über wenigstens eines der Vielzahl von Schutzmodulen auszuführen.
-
In einem weiteren verwandten Aspekt umfasst ein Computersystem ein verteiltes Rechendienstmodul, das dafür ausgelegt ist, eine Anfrage für eine Verteilung sicherheitsbezogener Aufgaben zu empfangen, die zum Nutzen wenigstens eines entfernten profitierenden Computers durchzuführen sind, und die angefragten sicherheitsbezogenen Aufgaben an wenigstens einen entfernten Agent-Computer zu delegieren, um sie als Reaktion auf eine Geeignetheits-Bestimmung darüber auszuführen, ob jeder des einen oder der mehreren entfernten Agent-Computer geeignet ist, die Ausführung durchzuführen.
-
Für einige Ausführungsformen wird erwogen, dass ein einziges Computersystem ein verteiltes Verarbeitungsmodul und ein verteiltes Rechendienstmodul umfassen kann, obgleich andere Ausführungsformen diese Module nicht notwendigerweise kombiniert in einem einzigen Computersystem aufweisen.
-
Figurenliste
-
Die Erfindung ist unter Berücksichtigung der folgenden ausführlichen Beschreibung verschiedener Ausführungsformen der Erfindung in Verbindung mit den beigefügten Zeichnungen besser zu verstehen, in denen:
- 1 ein Diagramm ist, das ein verteiltes Rechensystem gemäß einer Ausführungsform der Erfindung darstellt, bei dem die Rechenressourcen Agent-Computer umfassen, die durchzuführende Aufgaben von einem verteilten Rechendienst empfangen;
- 2 ein Basis-Blockdiagramm ist, das verschiedene Schutzmodule einer Sicherheits-Suite darstellt, die auf einem Personal Computer läuft;
- 3A ein Flussdiagramm ist, das einen Prozess darstellt, der von einem Agent-Computer durchgeführt wird, um die Fähigkeit zur Durchführung von Aufgaben für andere Computer gemäß einer Ausführungsform zu bewerten;
- 3B ein Blockdiagramm ist, das einen Prozess der Bewertung der Ressourcen eines Computersystems gemäß einer Ausführungsform der Erfindung darstellt;
- 3C ein Flussdiagramm ist, das einen Prozess zur Bestimmung des gegenwärtigen Verbrauchs von Computerressourcen darstellt, der verwendet werden kann, um die Verfügbarkeit eines Agent-Computers für eine Annahme einer Verteilung von Aufgaben zu bestimmen;
- 3D ein Flussdiagramm ist, das einen beispielartigen Prozess zum Erhalten von Aufgaben-Anfragen darstellt, bei dem gemäß einer Ausführungsform der Agent-Computer 100 Aufgaben-Anfragen aus dem verteilten Rechendienst zieht;
- 3E ein Flussdiagramm ist, das einen weiteren beispielartigen Prozess zum Erhalten von Aufgaben-Anfragen darstellt, bei dem gemäß einer anderen Ausführungsform der verteilte Rechendienst Aufgaben-Anfragen dem Agent-Computer zuschiebt;
- 4 ein Blockdiagramm ist, das verschiedene Arten des Delegierens von Aufgaben an Benutzer eines verteilten Rechnens gemäß Ausführungsformen der Erfindung darstellt;
- 5A ein Blockdiagramm ist, das ein System des Auswählens und Delegierens von Aufgaben an Benutzer eines verteilten Rechendiensts gemäß einer Ausführungsform darstellt;
- 5B ein Blockdiagramm ist, das eine verwandte Ausführungsform darstellt, bei der ein oder mehrere kombinierte Computersysteme mit Modulen konfiguriert sind, die es ihnen ermöglichen, sowohl als Agent als auch als verteilter Rechendienst zu dienen;
- 6 ein Blockdiagramm ist, das ein beispielartiges System darstellt, bei dem Aufgaben entweder durch einen dafür vorgesehenen verteilten Rechendienst oder durch ein beliebiges von kombinierten Computersystemen, das dieselbe Grundfunktionalität eines verteilten Rechendienstes hat, gemäß verschiedenen Ausführungsformen an verschiedene Agent-Computer oder kombinierte Computersysteme delegiert werden;
- 7 ein Flussdiagramm ist, das einen Prozess zur Verteilung einer Aufgabenausführung an einen oder mehrere Agent-Computer verteilt, ausgeführt durch einen Verteilungsdienst gemäß einer beispielartigen Ausführungsform;
- 8 ein Flussdiagramm ist, das ein bestimmtes Beispiel einer verteilten Aufgabe zur Bestimmung der Schwere der Bösartigkeit eines unbekannten Programms gemäß einer Ausführungsform der Erfindung zeigt;
- 9 ein Blockdiagramm ist, das ein Computersystem darstellt, bei dem Aspekte der hier beschriebenen Erfindung gemäß verschiedenen Ausführungsformen durchgeführt werden können.
-
Während verschiedene Modifikationen und alternative Formen der Erfindung möglich sind, sind ihre Besonderheiten beispielartig in den Zeichnungen gezeigt und werden im Einzelnen beschrieben. Es sollte jedoch klar sein, dass nicht beabsichtigt ist, die Erfindung auf die beschriebenen bestimmten Ausführungsformen zu beschränken. Im Gegenteil deckt die Erfindung alle Modifikationen, Äquivalente und Alternativen ab, die in den Schutzbereich der Erfindung fallen, wie in den beigefügten Ansprüchen definiert.
-
Ausführliche Beschreibung der bevorzugten Ausführungsformen
-
1 ist ein Diagramm, das ein verteiltes Rechensystem gemäß einer Ausführungsform darstellt, bei dem die Rechenressourcen Agent-Computer 100 umfassen. Jeder dieser Agent-Computer 100 ist ein Mehrzweck-PC, auf dem eine Aufgabenausführungs-Anwendung installiert ist, um die Aufgaben auszuführen, die von einem verteilten Rechendienst 110 delegiert werden. Bei bestimmten Ausführungsformen der Erfindung ist die Aufgabenausführungs-Anwendung als Teil einer Sicherheits-Suite von Schutzmodulen eingebettet, wie bei dem in 2 dargestellten Beispiel. Die Aufgabenausführung wird zum Nutzen des profitierenden Computers 120 ausgeführt, der den Nutzen der verteilten Verarbeitung hat.
-
Bei einer Art der Ausführungsform fordert der profitierende Computer 120 die verteilte Verarbeitung aus verschiedenen Gründen an, beispielsweise einer Unfähigkeit, sich einem entdeckten Problem zu widmen, da der profitierende Computer 120 zu wenig verfügbare Ressourcen hat, z.B. weil der profitierende Computer 120 eine unzureichende Rechenleistung oder eine unzureichende Sicherheits-Funktionalität hat, um die notwendige Aufgabe durchzuführen, oder weil die bestehenden Ressourcen ausgelastet sind.
-
Bei einer Art der Ausführungsform kann ein einziger PC so ausgestattet sein, dass er in multiplen Rollen funktioniert, so dass beispielsweise bei einem ersten Mal der PC als ein profitierender Computer 120, bei einem zweiten Mal als ein verteilter Rechendienst 110 und bei einem dritten Mal als ein Agent-Computer 100 agieren kann, abhängig von den herrschenden Umständen bei jedem dieser Male.
-
Als Beispiele für eine geeignete Architektur zur Durchführung verteilter Technologien verwenden verschiedene Ausführungsformen Grid-Architektur oder eine Architektur auf der Grundlage von Peer-to-Peer- (P2P)-Netzen.
-
Grid-Technologie beruht auf dem Konzept der Bündelung von Ressourcen durch die Schaffung einer Computer-Infrastruktur für die globale Integration von Informations-Ressourcen auf der Basis von Standard-Netzwerk-Technologie, spezialisierter Software und einem Satz standardisierter Dienste, die geteilten Zugriff auf geografisch verteilte Ressourcen (Prozessoren, Langzeitspeicher, Speicher und Datenbanken) bieten. Die Verwendung von Grid-Technologie erfordert den Aufbau komplexer verteilter Strukturen, die eine hohe Qualität der Dienst-Anfragen sicherstellen müssen, entsprechend der universellen Verwendung standardisierter offener Protokolle und Schnittstellen. Die Verwendung von Grid-Technologie ist für die folgenden Aufgabenklassen geeignet: Massenverarbeitung großer Datenmengen, multivariate Datenanalyse, Modellierung an entfernten Supercomputern, realistische Visualisierung großer Datensätze, komplexe Geschäftsanwendungen mit großen Rechenleistungen.
-
Ein Modell der Verwendung von Grid-Technologie ist das Grid-System am CERN, das ein hierarchisches System mit vielen Ebenen hat. Die nullte Ebene sammelt Daten von Detektoren („rohe“ Daten), die erste Ebene speichert Kopien der Daten auf der ganzen Welt, während die zweite Ebene (implementiert als multiple Datenzentren) die Datenverarbeitung unter Verwendung einer Vielzahl von Rechenzentren durchführt.
-
Als Teil der Architektur, die auf Peer-to-Peer-(P2P)-Netzen beruht, beruhen diese wiederum auf der Gleichheit der Teilnehmer ohne speziell dafür vorgesehene Server, und jeder Knoten (Peer) ist sowohl Client als auch Server. Anders als eine Client-Server-Architektur kann diese Art Organisation in einem Netzwerk beliebiger Größe und mit beliebiger Kombination verfügbarer Knoten arbeiten. Die folgenden Eigenschaften sind wichtig für P2P-Architektur: Das Teilen von Computer-Ressourcen durch direkten Austausch ohne Hilfe von Vermittlern, die Fähigkeit, Instabilität und Volatilität der Verbindungen als Norm zu behandeln, ein automatisches Anpassen an Trennungsvorgänge und Versagen von Computern sowie die variable Zahl der Knoten.
-
2 ist ein Blockdiagramm, das verschiedene Schutzmodule einer Computer-Sicherheits-Suite 200 darstellt, die als Teil eines Computersystems implementiert sind. Der Begriff „Modul“, wie er hier verwendet wird, bedeutet eine real existierende Einrichtung, Komponente oder Anordnung von Komponenten, die unter Verwendung von Hardware implementiert sind, wie einen anwendungsspezifischen integrierten Schaltkreis (ASIC) oder ein Field Programmable Gate Array (FPGA), oder als eine Kombination aus Hardware und Software wie beispielsweise durch ein Mikroprozessorsystem und einen Satz von Instruktionen zur Implementierung der Funktionalität des Moduls, die (während sie ausgeführt werden) das Mikroprozessorsystem in ein Spezialgerät umwandeln. Ein Modul kann auch als Kombination der beiden implementiert werden, wobei bestimmte Funktionen allein durch Hardware ermöglicht werden und andere Funktionen durch eine Kombination aus Hardware und Software ermöglicht werden. Bei bestimmten Ausführungsformen kann wenigstens ein Teil des Moduls und in anderen Fällen das gesamte Modul in dem Prozessor (den Prozessoren) eines oder mehrerer Mehrzweckcomputer (wie dem unten im Einzelnen beschriebenen) ausgeführt werden, die ein Betriebssystem, Systemprogramme und Anwendungsprogramme ausführen, während das Modul auch durch Multitasking, Multithreading oder andere solche Techniken implementiert werden kann. Dementsprechend kann jedes Modul in einer Vielzahl geeigneter Konfigurationen verwirklicht werden und sollte nicht auf eine spezielle, hier beispielartig dargestellte Ausführungsform begrenzt werden.
-
Die Schutzmodule der Sicherheits-Suite 200 können aufgerufen werden, um im Auftrag des lokalen Benutzers des Computersystems zu operieren. Bei dem Agent-Computer 100 können die Schutzmodule auch aufgerufen werden, um im Auftrag des profitierenden Computers 120 zu operieren. Die Sicherheits-Suite 200 umfasst ein Datei-Antivirus-Modul 202, das verschiedene Techniken anwendet, um möglichen Schadcode in Dateien zu entdecken und entweder eine Datei zu reparieren, die verdächtigt wird, infiziert zu sein, oder die Datei zu isolieren, damit sie keinen Schaden verursachen kann. Das E-Mail-Antivirus-Modul 204 ist besonders darauf ausgerichtet, eingehende E-Mails auf Schadsoftware zu scannen. Das Sofortmitteilungs-Antivirus-Modul 208 ist in ähnlicher Weise dafür ausgelegt, unerwünschte Sofortmitteilungen zu scannen und zu blockieren. Das Host Based Intrusion Prevention System (HIPS)-Modul 210 steuert spezifische Systemereignisse (beispielsweise das Erstellen oder Löschen einer Datei), und jedesmal, wenn diese Ereignisse auftreten, wendet das HIPS 210 seinen Regelsatz an, um die Aktion zu erlauben oder zu blockieren. Das Firewall-Modul 212 steuert den Verkehr in das und aus dem Computersystem zusammen mit Zugriffsprivilegien für entfernte Benutzer. Das Anti-Spam-Modul 214 filtert eingehende E-Mails (und in einigen Fällen auch ausgehende E-Mails), um die Verbreitung von unerwünschten E-Mails (Spam) zu verhindern. Das Anti-Phishing-Modul 216 ist ein Inhaltsanalyse-System, das Phishing- und Pharming-Angriffe erkennt und angemessene Präventions- und Schutzmaßnahmen ergreift. Das proaktive Verteidigungsmodul 218 ist dafür ausgelegt, Systemverhalten zu analysieren, um auf der Grundlage von verdächtigen Verhaltensweisen unbekannte Bedrohungen zu entdecken, wie einen Eingriff in Systeme, das Setzen von Betriebssystem-Hooks, das Erstellen verdächtiger Registereinträge und Ähnliches. Das Anti-Banner-Modul 220 steuert und begrenzt wenn nötig die Aktionen von Banner-Anzeigen, die unerwünschte Werbung in einem Internet-Browser zeigen und bestimmte Benutzeraktivitäten einem Dritten mitteilen können (Spyware).
-
Das Management-Center-Modul 222 bietet eine zentralisierte Benutzer-Schnittstelle mit Steuerungen, um auf die Einstellungen für die verschiedenen anderen Module zuzugreifen. Jedes Modul hat üblicherweise seine eigene Interaktion mit dem Benutzer. So bietet beispielsweise ein Anti-Spam-Modul die Option, bestimmte Schutzfunktionen wie die Erstellung von Listen vertrauenswürdiger und blockierter Absender, Listen erlaubter und obszöner Ausdrücke usw. eigenständig zu erlernen. Das HIPS-Modul 210 ermöglicht dem Benutzer, die Zugriffsrechte auf Computerressourcen für spezifische Programme festzulegen und zu verändern, so dass eine Vielzahl von Programmen als vertrauenswürdig eingestuft wird, und Programmgruppen entsprechend ihrer Vertrauenswürdigkeit zu bilden. So hat jedes Modul seinen eigenen Grad, mit dem es bei dem Benutzer zusätzliche Informationen einfordert. Obwohl die Arbeit der meisten Module automatisch abläuft, erfordern einige Aktionen immer noch eine Entscheidung, die der Benutzer zu treffen hat.
-
Das Verschlüsselungsmodul 224 bietet kryptografische Werkzeuge für eine sichere Kommunikation und Dateisicherungsvorgänge. Das Managermodul 226 für persönliche Daten bietet eine sichere und praktische Datenspeicherung für persönliche Informationen wie Kontonummern, Benutzernamen und Passwörter. Das Aktualisierungsmodul 228 ist hauptsächlich dafür ausgelegt, die Antivirus-Datenbank 234 zu aktualisieren, was die Zuverlässigkeit ihrer Funktionalität sicherstellt. Die Antivirus-Datenbank 234 kann beispielsweise Signaturen bekannter Schadprogramme oder den Datensatz enthalten, der für das Funktionieren des Anti-Spam-Moduls 214 notwendig ist, usw. Außerdem sollten externe Dienste als Antivirus-Datenbanken angesehen werden, wie Datenbanken der Vertreiber von Antivirusprogrammen, die ein großes Wissensreservoir haben können, wie Datenbanken von Whitelists, die Informationen über vertrauenswürdige Anwendungen enthalten. Das Modul 230 für elterliche Kontrolle bietet ein selektives Filtern von Webbrowser-Inhalten und andere Funktionen, um einen Zugriff auf Inhalte zu verhindern, die für Kinder nicht geeignet sein können.
-
Einige der Module sind wesentlich für die Sicherheits-Suite, wie das Aktualisierungsmodul 228 oder das Datei-Antivirus-Modul 202. Abhängig von der Verwendung verschiedener Merkmale wie E-Mail oder Internet werden verschiedene andere Module benötigt wie ein E-Mail-Antivirus-Modul 204, ein Netz-Antivirus-Modul 206, ein IM-Antivirus-Modul 208 und ein Firewall-Modul 212. Andere sind ergänzende Werkzeuge: Ein Anti-Spam-Modul 214 zum Filtern eingehender E-Mails, ein Sicherungsmodul, ein Manager für persönliche Daten (der die Isolierung und Sicherheit kritischer Daten bietet), ein virtuelles Tastaturmodul 240, das eine sichere Eingabe ermöglicht und dadurch die Sorge vor Programmen wie Keylogger beseitigt.
-
Einige Module erfordern viel Zeit und Ressourcen für ihren Betrieb, können aber mit noch unbekannten Schadprogrammen und Angriffen fertigwerden. Diese Module umfassen das HIPS-Modul 210, das den Zugriff auf Computerressourcen für unbekannte Programme einschränkt, das proaktive Verteidigungsmodul 218, das die aktive Infektionsphase bestimmen kann (d.h. eine Zeit, wenn ein bösartiges Programm bereits in dem Computer zu arbeiten begonnen hat) sowie ein Emulatormodul 238 und ein virtuelles Maschinenmodul 236, das benötigt wird, um die unbekannten ausführbaren Dateien sicher auszuführen.
-
Moderne Antivirus-Anwendungen entdecken im Allgemeinen Bedrohungen, während sie bestimmte geplante Aufgaben ausführen (beispielsweise das Scannen der Festplatten), sowie während der aktiven Interaktion des Benutzers mit dem PC, beispielsweise wenn der Benutzer einen Web-Browser betreibt, um Internetseiten anzusehen, Anwendungen startet, Dateien überschreibt usw. Wenn der Benutzer nicht aktiv mit dem PC interagiert, sind die proaktiven Aktionen von Antivirus-Software allgemein auf das Herunterladen von Sicherheits-Aktualisierungen (z.B. Schadprogramme oder Spam-Signaturen) und periodische Funktionen (beispielsweise Disketten-Scannen) beschränkt. Aspekte der Erfindung erkennen, dass unter diesen Bedingungen die verfügbaren Rechenressourcen des PCs tendenziell zu wenig genutzt werden.
-
Die hier beschriebenen Ausführungsformen umfassen ein verteiltes Verarbeitungsmodul 250, das es der Sicherheits-Suite 200 ermöglicht, als Agent im Auftrag eines anderen Computers in einem solchen Netzwerk an der Ausführung dieser Verarbeitung teilzunehmen. Das Aufgaben-Delegierungs-Anfragemodul 252 erkennt automatisch eine Gelegenheit, von der Verteilung der Verarbeitung von sicherheitsbezogenen Aufgaben unter Verwendung eines Netzwerks von verfügbaren Computersystemen zu profitieren und initiiert eine Anfrage zur Delegierung von Aufgaben. Aufgaben, die von multiplen Prozessoren (oder Kernen eines Prozessors) eines oder mehrerer Computer (die ein Beispiel für parallele Datenverarbeitung sind) gelöst werden können, kommen in Betracht.
-
Beispiele für Computersicherheitsprobleme, die mit mehreren Computern durchgeführt werden können, können den folgenden Zielen dienen (es ist zu beachten, dass dies nur eine beispielartige Liste ist, die auf andere Aufgaben mit Bezug zur Computersicherheit ausgedehnt werden kann):
- 1. Sammeln von WHOIS-Informationen. Der Vorteil des Sammelns dieser Informationen ist, dass WHOIS-Informationen sehr wichtig für die Nachverfolgung des Ansehens der Domain sind, da diese Informationen sowohl E-Mail-Adressen und Telefonnummern von Domain-Eigentümern umfassen, die verwendet werden können, um neue Domains zu registrieren. In diesem Fall werden die WHOIS-Informationen als Registrierungsdaten bezüglich der Eigentümer von Domain-Namen, IP-Adressen und autonomen Systemen empfangen. Typischerweise werden solche Informationen von Registraren verwaltet, aber sie ermöglichen keine häufigen Abfragen ihrer WHOIS-Datenbanken von demselben Computer (IP-Adresse).
- 2. Erstellen und Aktualisieren der Liste vertrauenswürdiger Sites (Whitelist). Der Vorteil des Sammelns dieser Informationen liegt in der Globalisierung dieser Liste mit der Möglichkeit regionaler Listen.
- 3. Die Unterteilung der Datenbanken verschiedener Module der Antivirus-Anwendung in kleinere Teile, um sie klientenseitig zu testen. Der Vorteil dieses Testverfahrens ist die Verringerung der Zeitverzögerung, wenn die Datenbank auf neue Einträge überprüft wird. Außerdem können zusätzlich zu Datenbanken der Computer-Sicherheits-Suite 200 die Module selbst getestet werden.
- 4. Überprüfen der Sites auf das Vorhandensein von Schadprogrammen mit einem Skript-Emulator auf der Klientenseite. Testergebnisse (Link auf die Site, das Urteil) werden zentral in dem verteilten Rechendienst 110 gesammelt. Der Vorteil dieses Tests liegt in der ständigen Kontrolle über die Mehrheit bekannter Sites im Internet (auf der Grundlage einer Gruppierung nach Urteilen, d.h. einer Kategorisierung der Sites).
- 5. Periodische Prüfung von Sites unter Verwendung eines Moduls zur elterlichen Kontrolle, um einen Zugriff auf unangemessenen Inhalt zu verhindern. Der Vorteil dieses Tests ist die zeitnahe Korrektur falsch positiver Ergebnisse und eine schnelle Reaktion auf Änderungen auf den analysierten Sites.
- 6. Austausch von Antivirus-Datenbank-Aktualisierungen zwischen Benutzern durch Peer-to-Peer-Technologie. Der Vorteil dieses Austauschs: weniger Verkehr zwischen den autonomen Systemen und eine Verringerung der Belastung des Aktualisierungs-Diensts des Antivirusprogramm-Herstellers.
- 7. Lokaler Austausch von Informationen über Infektionen unter Benutzern (beispielsweise für ein lokales Netzwerk). Diese Aufgabe bietet Kapazitäten zum Senden unbekannter Dateien (oder Links zu diesen) zur Überprüfung an produktivere Benutzer (oder Module mit mehr Eigenschaften für die Computer-Sicherheits-Suite 200). Der Vorteil eines solchen Teilens von Informationen: eine Verringerung der Belastung des Servers des Antivirusproramm-Herstellers.
- 8. Erfassung unbekannter bösartiger Programme auf der Grundlage eines Vergleichs extrahierter Merkmale mit den Eigenschaften bekannter bösartiger Programme oder Dateien. Dieses Problem ist durch einen hohen Ressourcenverbrauch gekennzeichnet (das Vergleichen aller Eigenschaften bekannter bösartiger Programme mit der Datenbank kann Minuten oder Stunden dauern), aber zum Erzielen guter Ergebnisse kann die Datenbank aller Eigenschaften bekannter bösartiger Programme in mehrere Teile aufgeteilt werden, von denen jeder auf einem separaten Computer verarbeitet werden kann, was eine Verbesserung der Reaktionszeit auf wenige Sekunden ermöglicht.
-
Der verteilte Rechendienst 110 führt Operationen zur Feststellung der Anforderungen für die Ausführung jeder der angefragten Aufgaben und zum geeigneten Delegieren dieser Aufgaben an Agent-Computer 100 durch. Gemäß einer Art der Ausführungsform ist jede Aufgabe, die den oben genannten ähnlich ist, durch mehrere Parameter gekennzeichnet: die operationalen Parameter der Aufgabe selbst sowie deren durchschnittliche Ausführungszeit und bedingte Ressourcen-Anforderungen. Die bedingte Ressourcennutzung hängt von den dynamischen Parametern des Problems gemäß einer vorher bestimmten Formel ab (die üblicherweise empirisch beurteilt oder auf der Grundlage statistischer Daten bestimmt wird). Jeder der Parameter beeinflusst direkt oder indirekt die Ressourcennutzung, beispielsweise durch Erhöhen der Zahl der zu testenden Objekte. Der Ressourcenverbrauch kann in direktem Verhältnis zu der Zahl der Objekte steigen. Die durchschnittliche Ausführungszeit bestimmt die Dauer der Aufgabe in einem gegebenen Computer mit bekannter Kapazität. Typischerweise kann die durchschnittliche Zeit der Aufgabenausführung erhalten werden, indem die Aufgabe in einer Referenzmaschine mit bekannten Hardware- und Softwarekapazitäten ausgeführt wird und anschließend entweder beispielsweise durch Interpolation oder Extrapolation der Leistung auf der Grundlage der Unterschiede zwischen dem Computersystem, in dem die Aufgabe durchgeführt werden soll, und der Referenzmaschine approximiert wird.
-
Einer der zu bedenkenden Parameter ist die Zeit, die für die Ausführung der Aufgabe eingeräumt wird. Beispielsweise sollte die Erfassung unbekannter bösartiger Programme auf der Grundlage eines Vergleichs extrahierter Merkmale mit den Eigenschaften der bösartigen Software nicht länger als ein paar Sekunden dauern, da Benutzer nicht lange auf die Analyse eines unbekannten Programms warten wollen. Wenn also Computer gefunden werden, die die Parameter der spezifischen Aufgabe erfüllen, wird der Verbrauch an Computer-Ressourcen für die zeitliche Bestimmung der Aufgabe bewertet, und wenn eine weitere Aufgabe (oder ein Teil davon) über einen kurzen Zeitraum ausgeführt werden soll, wenn der Computer beschäftigt ist, wird der Computer nicht zur Durchführung der Aufgabe verwendet.
-
Die zu scannenden Dateien können als die operationalen Parameter der Aufgabe dienen, beispielsweise kann ein operationaler Parameter eine Liste von Adressen von Sites, die von dem Modul für elterliche Kontrolle überprüft werden sollen, oder ein Satz unbekannter Dateien sein, die mit der Datenbank von Eigenschaften bekannter bösartiger Programme abgeglichen werden sollen. Außerdem können Einstellungen als Parameter spezifiziert und mit der Aufgabe in Zusammenhang gesetzt werden.
-
Ein weiterer Parameter ist die Zahl der Computer, auf denen die Aufgabe ausgeführt werden kann. Die optimale Zahl von Computern wird auf der Grundlage der Rechenkapazität ermittelt, die gebraucht wird, um Aufgaben innerhalb der spezifizierten Zeit durchzuführen. Die Aufgabe kann als Teil einer verteilten Laufzeit durchgeführt werden, wobei eine optimale Zahl an spezifischen Computern verwendet wird, falls die optimale Zahl an Computern zur Erfüllung der Anforderungen der spezifischen Aufgabe kleiner ist als die gesamte Zahl verfügbarer Computer, die die Parameter der spezifischen Aufgabe erfüllen. Die Aufgabe kann als Teil einer verteilten Implementierung durchgeführt werden, wobei alle verfügbaren spezifischen Computer verwendet werden, falls die optimale Zahl an Computern, die die Anforderungen der spezifischen Aufgabe erfüllen, größer ist als die Zahl verfügbarer Computer. In einer verwandten Ausführungsform werden auch die Zeit und die Ressourcen berücksichtigt, die gebraucht werden, um die Aufgabe in separate Teile aufzuteilen, die in separaten Computern verarbeitet werden. Bestimmte Aufgaben können sich mehr für eine Aufteilung in eine bestimmte Zahl von Teilen eignen, so dass eine Aufteilung der Aufgabe in noch mehr Teile kontraproduktiv wäre.
-
Nachdem der Bereich der Aufgaben bestimmt wurde, berücksichtigt ein Aspekt der Erfindung mehrere Punkte im Zusammenhang mit der direkten Erfüllung dieser Aufgaben auf mehreren Agent-Computern 100, nämlich: Bestimmen der Rechenkapazität des Computers, Bestimmen der Verfügbarkeit von Computer-Ressourcen und Definieren von Aufgaben, die für eine Ausführung verfügbar sind. Diese Gesichtspunkte werden in verschiedenen Ausführungsformen kollektiv durch die Agent-Computer 100 und den verteilten Rechendienst 110 adressiert. Bei einer dieser Ausführungsformen bestimmen die Agent-Computer 100 ihre jeweiligen Rechenkapazitäten und ihre Verfügbarkeit, und das verteilte Rechenmodul 110 bestimmt die Rechenkapazitäts-Anforderungen für die verschiedenen Aufgaben, die verteilt werden können. Die Entscheidung, die für die Ausführung verfügbaren Aufgaben auf jedem Agent-Computer 100 zu bestimmen, kann durch den verteilten Rechendienst 110 durchgeführt werden, auf der Grundlage von Informationen von jedem Agent-Computer 100 betreffend seine Kapazität und Verfügbarkeit, oder bei einer anderen Ausführungsform kann jeder Agent-Computer die Bestimmung auf der Grundlage der Aufgaben-Anforderungen für eine vorgeschlagene Aufgabe vornehmen, die von dem verteilten Rechendienst 110 bereitgestellt wird.
-
3A stellt einen Prozess dar, der von einem Agent-Computer 100 ausgeführt wird, um die Fähigkeit zur Durchführung von Aufgaben für andere Computer gemäß einer Ausführungsform zu bewerten. Bei 302 werden Informationen über die Antivirus-Anwendung auf dem Agent-Computer 100 überprüft. Die Informationen über die aktuelle Antivirus-Anwendung umfasst Gegenstände wie die Version der Antivirus-Software, ihre genaue Identität, die Build-Nummer, die Identität des Patches, Lizenzinformationen usw. Lizenzinformationen können in einigen Fällen besonders wichtig sein, weil die Lizenz in direktem Zusammenhang mit der Nutzer-Lizenzvereinbarung (EULA) steht, die den Umfang der Rechte an einer Kopie der Anwendung definiert. Wenn ein Benutzer beispielsweise eine kostenpflichtige Antivirus-Anwendung kauft, erhält er eine Lizenz für einen bestimmten Zeitraum (z.B. ein Jahr), während die Nutzung einer kostenlosen Antivirus-Anwendung nicht auf allgemeine Bedingungen beschränkt ist. Zusätzlich kann die Nutzer-Lizenzvereinbarung auch den Umfang der Aktionen bestimmen, die mit den Daten auf dem Computer des Benutzers durchgeführt werden können, und insbesondere welche verteilten Aufgaben auf dem Computer des Benutzers durchgeführt werden können. In dem Fall, wenn beispielsweise die Lizenz keine Verwendung von Computerressourcen für eine verteilte Aufgabenbearbeitung erlaubt, endet der Prozess bei 312.
-
Bei 304 wird die Leistung des Agent-Computers überprüft. Viele Programme wie HD Tune, PCMark Vantage, 3DMark Vantage, SiSoftware Sandra und dergleichen können eine Vielzahl von Ressourcen auf einer Skala beurteilen, die berechneten Werten aus anerkannten Leistungstests entspricht. In verschiedenen Beispielen kann die Bewertung von Rechenleistung die Verarbeitungskapazität der Videokarte oder der Zentraleinheit, der Festplatte oder der Netzwerkverbindungs-Durchgangkapazität etc. umfassen. Es ist auch zu beachten, dass jüngere Versionen von Microsoft Windows auch eine Leistungsbeurteilung von Komponenten des Computers bieten.
-
So können durch Verwendung verschiedener Evaluierungsverfahren (oder aus den Herstellerangaben) Informationen über die Schlüsseleigenschaften der verschiedenen Ressourcen des Computers in einer geeigneten Maßeinheit erhalten werden. Beispielsweise werden gemäß einer Ausführungsform die folgenden verfügbaren Informationen verwendet:
- • Zentraleinheit (Rechenleistung, die Zahl der Kerne, Taktfrequenz, Architektur);
- • Speicher (Kapazität, Durchgang in MB/sek.);
- • Festplatte (Durchgangskapazität in KB/sek.);
- • Netzwerk (Verbindungsbandbreite in MB/sek.).
-
Bei einem vereinfachten Ansatz ist nur ein kritischer Parameter, der am wichtigsten ist, an jede Ressource gebunden. Beispielsweise kann für die Zentraleinheit (CPU) ein konditionaler Leistungsindex eingegeben werden, der von mehreren der oben aufgelisteten Parameter abhängt:
-
Die Leistung der Zentraleinheit kann unter Verwendung der folgenden Formel berechnet werden: (Koeffizient für die Zahl der Kerne)*(Taktfrequenz)*(Leistungszahl der Architektur).
-
Somit kann das System in Form eines geeigneten Ergebnisses für jede Ressource eingeschätzt werden. Beispielsweise kann bei einem Computer, der folgende Eigenschaften hat: (CPU: P4 3,0 Ghz, RAM: 512 MB, HDD: 500 Gb, 5200 U/min., NIC: 10 Mbit/sek) die Bewertung dargestellt werden als 3000/512/65000/10000. Für eine Core i7-Konfiguration von 2.66 Ghz/4096 Mb/SSD 160 Gb/30 Mbit kann das Ergebnis 10000/4096/200000/30000 sein. Diese Zahlen sind natürlich relativ willkürlich und dienen nur Illustrations- und Vergleichszwecken. Ein weiterer Faktor, der die Leistung beeinflusst, ist das Betriebssystem. Die Menge an verbrauchten Ressourcen ist ebenfalls bekannt, obgleich diese Werte für jeden Computer unterschiedlich sein können, es ist jedoch davon auszugehen, dass die Durchschnittswerte bekannt sind. Es kann auch abhängig von der Zahl installierter Aktualisierungen und Betriebssystem-Einstellungen eine Grenze für den Ressourcenverbrauch gesetzt werden.
-
Wenn das Produktivitätsergebnis des Systems als eine Zahl definiert wird, die die Leistung des Systems als Ganzes bestimmt, kann die ungefähre Ausführungszeit der gegebenen Aufgabe in einem System wie folgt berechnet werden:
-
Aufgabenausführungszeit für das gegebene System = (durchschnittliche Ausführungszeit) * (gegebene Systemleistung/Testsystemleistung)*(Aufgabenparameter-Modifikator), wobei die durchschnittliche Ausführungszeit die Dauer der Aufgabe mit gegebenen Parametern auf einem Computer mit bekannter Kapazität (Testsystem) bestimmt, und der Parameter-Modifikator die Komplexität der Aufgabe bestimmt.
-
3B stellt einen beispielartigen Prozess zur Bewertung der Ressourcen eines Computersystems dar, der bei 304 stattfindet. Bei 320 findet die Leistungsbeurteilung der Computerressourcen durch die oben genannten Verfahren statt. Ebenso wird das auf dem Computer installierte Betriebssystem bei 322 beurteilt. Die Beurteilung des Ressourcenverbrauchs durch verschiedene von dem Benutzer installierte Anwendungen wird bei 324 beurteilt.
-
Bei einer verwandten Ausführungsform wird ein Fuzzy-Logik-System verwendet. Das Fuzzy-Logik-System umfasst drei Stufen:
- 1. Fuzzifizierung - die Einführung der Fuzzyartigkeit. Um diese Operation durchzuführen, werden alle Eingangsvariablen durch sprachliche Variable definiert, für jede sprachliche Variable werden Bedingungssätze konstruiert und für jede Bedingung werden Mitgliedschaften genannt. Beispielsweise sieht für die sprachliche Variable „Prozessorkapazität“ der Bedingungssatz so aus: {„sehr niedrig“, „niedrig“, „mittel“, „hoch“, „sehr hoch“}, was es ermöglicht, ohne präzise numerische Werte auszukommen.
- 2. Erstellen und Verwenden einer Fuzzy-Wissensbasis. Die Fuzzy-Wissensbasis umfasst Produktionsregeln der Form WENN<Voraussetzung>DANN<Schlussfolgerung>. Beispielsweise kann die folgende Regel verwendet werden: „Wenn die Zentraleinheit hoch ist, ist die Leistung des Systems hoch“. Die Konstruktion solcher Regeln verursacht üblicherweise keine Schwierigkeiten, weil sie klar und eine Art „verbaler Codierung“ sind.
- 3. Entfuzzifizierung - Erhalt eines klaren Ausgangswerts, der in diesem Fall die Beurteilung der Computerleistung ist.
-
Jede Aufgabe, die auf einem Computer läuft, verwendet die Basisressourcen des Computers - insbesondere Zentraleinheits-Zeit, Speicher, Festplattenplatz. An einem bestimmten Punkt können eine oder mehrere laufende Aufgaben zu einem Mangel an Ressourcen und dadurch zu Frustration beim Benutzer führen. Daher berücksichtigt eine Ausführungsform nicht nur die Leistung des Computers insgesamt, sondern auch die Zeit, in der der Benutzer die Ressourcen des Computers für seine eigenen Zwecke nutzt, um zu der Zeit keine zusätzlichen Aufgaben zu laden.
-
Sobald bei 304 die Leistungsmessung(en) des Computers bestimmt wurde(n), findet bei 306 eine Computer-Beurteilung des Ressourcenverbrauchs durch die Benutzer selbst statt. Genauer gesagt, der Ressourcenbedarf der Anwendungen des Benutzers wird analysiert, um die Zeit zu bestimmen, die für die Durchführung aktiver Aufgaben benötigt wird.
-
Eine der Optionen zum Schätzen des Verbrauchs an Computerressourcen durch den Benutzer bietet eine Verfolgung der Benutzeraktivitäten an dem Computer. Jede von mehreren geeigneten Arten wird in Betracht gezogen, beispielsweise die Verwendung eines Detektors, einer Kamera oder Eingabeeinrichtungen, um die Benutzerpräsenz oder -aktivität zu bestimmen.
-
3C stellt einen beispielartigen Prozess zur Bestimmung des Verbrauchs an Computerressourcen für die zeitliche Einteilung der Aufgaben dar, die bei 306 auftreten. Die Schätzung der Dauer des Betriebs des Computers, d.h. der Zeit, während der der Computer eingeschaltet war, geschieht bei 330.
-
Als Nächstes wird bei 332 die Nutzungsart der Computerressourcen durch den Benutzer beurteilt, gemäß einer oder mehrerer der oben diskutierten Techniken. Bei 334 werden bei bestimmten Ausführungsformen Nutzungsmuster des Computers durch seinen Benutzer bestimmt. Zum Beispiel werden die Nutzungszeit-Trends für die Tages- oder Nachtzeit und der Wochentag, wenn der Benutzer üblicherweise den Computer benutzt, und Zeiten, zu denen der Computer tendenziell nicht benutzt wird, festgestellt. Bei einem Ansatz wird ein Verhältnis der Zeit der Nutzung der Computerressourcen durch den Benutzer zu der Betriebszeit des Computers sowie die ungenutzte Zeit, die zur Durchführung von Aufgaben genutzt werden kann, berechnet. Auf der Grundlage der bei 330-334 bestimmten Informationen werden bei 336 ein oder mehrere Aufgabenverteilungs-Zeitfenster für das Computersystem festgestellt. Diese Zeitfenster stellen bevorzugte Zeiten dar, während derer das spezielle Computersystem wahrscheinlich ein guter Kandidat dafür ist, Aufgaben durchzuführen, die ihm zugeteilt werden.
-
Wiederum mit Bezug auf die beispielartige Ausführungsform von Fig. 3A können zusätzliche Benutzerparameter bei 308 berücksichtigt werden wie: die Möglichkeit, dass eine hohe Zahl an Infektionen zu einem Versagen der Antivirus-Software führt, aufgrund von Versuchen durch bösartige Programme, die Prozesse aller bekannten Antivirus-Anwendungen zu beenden, eine Vielzahl von Informationen über Konflikte mit anderen Antivirus-SoftwareAnwendungen auf dem PC, die die Effektivität von Aufgaben beeinflussen können, usw. Auf der Grundlage der gesammelten Informationen bestimmt das System seine Fähigkeit zur Ausführung verschiedener Aufgaben.
-
Bei einer Art der Ausführungsform bestimmt jeder Agent-Computer 100 seine eigene Rechenleistung, Ressourcennutzung usw. Bei einer anderen Art der Ausführungsform sammelt und liefert jeder Agent-Computer Informationen, auf deren Grundlage eine Bestimmung der Rechenleistung durch eine entfernte Einrichtung, beispielsweise einen verteilten Rechendienst 110, erfolgen kann.
-
Bei 309 bekommt der Agent-Computer 100 eine oder mehrere Aufgaben-Anfragen von dem verteilten Rechendienst 110. 3D stellt einen beispielartigen Prozess für Block 309 gemäß einer Ausführungsform dar, bei der der Agent-Computer 100 Aufgaben-Anfragen aus dem verteilten Rechendienst 110 „zieht“. Bei 340 wird eine Verbindung zwischen dem Agent-Computer 100 und dem verteilten Rechendienst 110 initiiert. Diese Verbindung kann gemäß einer Ausführungsform von dem Agent-Computer 100 initiiert werden. Bei der Kommunikationssitzung, die eingerichtet wird, bietet der verteilte Rechendienst 110 eine Auflistung der zu verteilenden Aufgaben-Anfragen und ihre verschiedenen Anforderungen. Bei 342 liest der Agent-Computer 100 die Auflistung der Aufgaben-Anfragen.
-
3E stellt eine verwandte Ausführungsform von Block 309' dar, der eine Variante des oben genannten Blocks 309 ist. In Block 309' werden Aufgaben dem Agent-Computer 100 „zugeschoben“. Bei 350 wird eine Verbindung mit dem verteilten Rechendienst 110 eingerichtet. In dieser Phase können Aufgaben-Anfragen vorhanden sein oder nicht. Bei 352 informiert der Agent-Computer 100 den verteilten Rechendienst 110 über seine Verfügbarkeit. Dies kann in Form einer Registrierung geschehen, bei der der Agent-Computer 100 sein Vorhandensein meldet, und bei bestimmten Ausführungsformen zusätzlich seine Verarbeitungs- oder Aufgabenausführungskapazitäten, seine Verfügbarkeit oder beides meldet. Bei 354 horcht der Agent-Computer 100 auf nachfolgende Aufgaben-Anfragen, die an ihn gerichtet werden. Bei 356 wird eine eingehende Aufgaben-Anfrage entweder nicht erfasst oder erfasst. Wenn keine Aufgaben-Anfrage vorliegt, geht der Prozess in einer Schleife zurück zum Horchen bei 354; anderenfalls wird bei 358 die Aufgaben-Anfrage empfangen.
-
Wiederum unter Bezug auf 3A wird bei 310 eine Entscheidung über die Geeignetheit des Agent-Computers 100 zur Durchführung einer oder mehrerer der Aufgaben-Anfragen getroffen. Diese Entscheidung beruht auf den Parametern der angefragten Aufgabe(n) und den bei den Blöcken 304-308 bestimmten Parametern. Wenn eine geeignete Übereinstimmung gefunden wird, wird bei 314 dem Agent-Computer 100 die Aufgabe zur Ausführung zugeteilt. Die Entscheidung kann bei 310 von dem Agent-Computer 100 ausgeführt werden, wie dargestellt; bei anderen Ausführungsformen kann die Entscheidung jedoch von dem verteilten Rechendienst 110 auf der Grundlage der Fähigkeit und Verfügbarkeit der Informationen, die ihm von dem Agent-Computer 100 zur Verfügung gestellt werden, getroffen werden, oder die Entscheidung kann kollektiv getroffen werden, wobei bestimmte Abschnitte von dem verteilten Rechendienst 110 und andere Abschnitte von dem Agent-Computer 100 entschieden werden. Beispielsweise kann die Fähigkeit des Agent-Computers 100 zur Durchführung einer speziellen Aufgabe bei dem verteilten Rechendienst 110 bestimmt werden, während die gegenwärtige Verfügbarkeit des Agent 100 zur Übernahme des Prozesses durch den Agent-Computer 100 bestimmt werden kann.
-
Bei einer verwandten Ausführungsform findet die Ausführung der Aufgaben in Block 314 statt, während der Vorrang für die Nutzung von Ressourcen des Computers des Benutzers reserviert bleibt. Dies wird erzielt, indem die Priorität von Prozessen gesenkt wird, in denen die Aufgaben ausgeführt werden, während Benutzeranwendungen (Browser, Büroanwendungen, Spiele usw.) Anwendungen mit hoher Priorität bezüglich der Computer-Ressourcen sind.
-
4 stellt verschiedene Arten des Delegierens von Aufgaben an Nutzer des verteilten Rechnens gemäß Ausführungsformen der Erfindung dar. Die einfachste Ausführungsform umfasst ein direktes Delegieren von Aufgaben von dem verteilten Rechendienst 110 direkt an den Agent-Computer 100. Bei einer verwandten Ausführungsform wird ein Zwischencomputer 410 verwendet, um die Belastung der Bandbreite des verteilten Rechendiensts 110 zu reduzieren. Die Auswahl des Zwischencomputers 410 kann beispielsweise auf der Grundlage der Topologie des Netzwerks implementiert werden, das den Zwischencomputer 410 betreibt. Ein solcher Zwischencomputer 410 kann für bestimmte Funktionen des verteilten Rechendiensts 110, beispielsweise das Speichern von Aufgaben und der Ergebnisse der Verarbeitung, verwendet werden, wodurch der Verkehr zu dem verteilten Rechendienst 110 reduziert wird. Diesbezüglich kann der verteilte Rechendienst 110 selbst auf multiple getrennte Computersysteme verteilt werden. Bei verwandten Ausführungsformen kann der Zwischencomputer 410 zu verschiedenen Zeiten auch ein Agent-Computer 100 oder ein profitierender Computer 120 sein.
-
Bei einer verwandten Ausführungsform ist die Delegierung von Aufgaben für eine große Zahl von Rechenressourcen geeignet, wie spezielle Server 430, um verteilte Anwendungen zu implementieren. Zu diesem Zweck implementiert ein Zwischencomputer 420 den verteilten Rechendienst 110, der Aufgaben an spezielle Server 430 delegiert. Bei verwandten Ausführungsformen kann der Zwischencomputer 420 zu verschiedenen Zeiten auch ein Agent-Computer 100 oder ein profitierender Computer 120 sein.
-
Die Computer-Sicherheits-Suite 200, die auf diesen Computern installiert ist, hat vollen Zugriff auf Rechenressourcen und kann einen breiteren Bereich von Aufgaben ausführen, wie das Verwenden eines Antivirus-Softwaremoduls, das für einen maximalen Schutz konfiguriert ist, wodurch eine sehr vollständige Datensammlung unbekannter Objekte gewährleistet wird. Beispielsweise kann auf diese Art ein vollständiges Emulationsprotokoll des unbekannten Programms erstellt und analysiert werden.
-
5A stellt ein System des Auswählens und Delegierens von Aufgaben an Benutzer eines verteilten Rechendienstes gemäß einer Ausführungsform dar. Ein Computerbenutzer ist über die Benutzerschnittstelle 510 mit dem Agent-Computer 100 verbunden. Die Interaktion des Benutzers mit der Benutzerschnittstelle 510 wird von dem Benutzeraktivitäts-Verfolgungsmodul 520 verfolgt. Das Benutzeraktivitäts-Verfolgungsmodul 520 ist dafür ausgelegt, die Zeit aufzuzeichnen, die der Benutzer an dem Agent-Computer 100 verbringt, sowie den Grad der Nutzung von Rechenressourcen, beispielsweise unter Verwendung des oben unter Bezugnahme auf 3C beschriebenen Prozesses. Das Rechen-Bewertungsmodul 530 bestimmt die Stufe der Rechenkapazität des Agent-Computers 100 insgesamt sowie seiner einzelnen Komponenten (beispielsweise unter Verwendung des oben unter Bezugnahme auf 3B beschriebenen Prozesses) sowie den Verbrauch dieser Ressourcen durch andere Anwendungen, die der Benutzer ausführen kann. Daten, die von dem Benutzeraktivitäts-Verfolgungsmodul 520 und dem Rechen-Bewertungsmodul 530 erhalten werden, werden dem Aufgaben-Annahmemodul 540 zur Verfügung gestellt, das die Verfügbarkeit des Agent-Computers 100 für die Annahme der Delegierung von zu verarbeitenden Aufgaben bestimmt. Das Aufgaben-Annahmemodul 540 ist mit dem Aufgaben-Ausführungsmodul 550 gekoppelt, das dafür ausgelegt ist, die verteilten Aufgaben auf dem Agent-Computer 100 auszuführen. Bei einer Ausführungsform ist das Aufgaben-Ausführungsmodul 550 in einer isolierten Umgebung 555 implementiert, beispielsweise einer Sandbox oder einer virtuellen Maschine, die die anderen lokalen Prozesse und ihre Ressourcen von der verteilten Aufgabe und ihren Daten, die gefährliche Dateien enthalten könnten, isoliert und vor ihr schützt.
-
Bei der gezeigten Ausführungsform sind die Module 520, 530, 540 und 550 Komponenten des verteilten Verarbeitungsmoduls 250 der Computer-Sicherheitssuite 200. Es ist jedoch zu beachten, dass in anderen Ausführungsformen eines oder mehrere dieser Module als Teil einer oder mehrerer Anwendungen implementiert sein kann, die von der Computer-Sicherheitssuite 200 getrennt sind, jedoch die Fähigkeit haben, mit der Computer-Sicherheitssuite 200 zu interagieren, beispielsweise die Fähigkeit, eines oder mehrere ihrer Module aufzurufen.
-
Als Reaktion auf eine Feststellung durch das Aufgaben-Annahmemodul 540, dass der Agent-Computer 100 verfügbar ist, um Aufgaben zu erhalten, die an den Agent-Computer 100 delegiert werden sollen, sendet das Aufgaben-Annahmemodul 540 eine Verfügbarkeitsmeldung an das Aufgaben-Delegierungsmodul 560, die diese Verfügbarkeit anzeigt. Bei einer besonderen Ausführungsform umfasst die Meldung Parameter, die die Rechenkapazität und den Verfügbarkeitsplan des Agent-Computers 100 angeben. Bei einer verwandten Ausführungsform umfassen die Meldungs-Parameter Informationen, aus denen die Rechenkapazität und die Verfügbarkeit durch den verteilten Rechendienst 110 bestimmt werden können.
-
Das Aufgaben-Delegierungsmodul 560 ist eine Komponente des verteilten Rechendienstes 110. Das Aufgaben-Delegierungsmodul 560 wickelt die Kommunikation mit dem Aufgaben-Annahmemodul 540 ab und koordiniert die Weitergabe von Informationen bei dieser Kommunikation mit dem Aufgaben-Auswahlmodul 570. Bei einer solchen Ausführungsform werden Informationen von dem Aufgaben-Annahmemodul 540 an das Aufgaben-Auswahlmodul 570 weitergeleitet. Bei einer anderen Ausführungsform werden bestimmte Informationen aus der Meldung extrahiert und von dem Aufgaben-Delegierungsmodul 560 vor der Kommunikation mit dem Aufgaben-Auswahlmodul 570 verarbeitet. Bei einer verwandten Ausführungsform erhält das Aufgaben-Auswahlmodul 570 Informationen über die Verarbeitungskapazitäten des Agent-Computers und seine Komponenten und deren Konfiguration sowie Informationen über die Nutzung der Ressourcen des Agent-Computers durch den Benutzer. Diese Informationen werden durch Abfrage einer Aufgaben-Datenbank 580, die alle aufgabenbezogenen Daten enthält, die für die auszuführenden Aufgaben notwendig sind, sowie einer Datenbank der Ressourcen-Kapazitäten 590, die Informationen über die Anforderung an die Rechenressourcen jeder spezifischen Aufgabenart enthält, zur Bestimmung der durchzuführenden Aufgaben verwendet. Bei einem Beispiel werden die folgenden Parameter berücksichtigt:
- • Die Art der Aufgabe (z.B. Testen von Datenbanken verschiedener Module der Antivirus-Anwendung).
- • Die Anforderungen an die Leistung des Computers und an die einzelnen Komponenten. Diese Information wird mit Daten von dem Rechen-Bewertungsmodul 530 und dem Benutzeraktivitäts-Verfolgungsmodul 520 verglichen.
- • Die Anforderungen an die installierten Module der Computer-Sicherheits-Suite 200. Diese Daten können beispielsweise mit Daten von der Computer-Sicherheits-Suite 200 verglichen werden, die auf dem Computer 100 installiert ist.
- • Die Menge an Daten, die von der Aufgabe selbst und den speziellen Parametern der Aufgabe genutzt wird.
- • Die zeitliche Steuerung der Aufgabenausführung, die auf der Grundlage der Verfügbarkeit von Computerressourcen und der Zeit ihrer möglichen Verwendung berechnet werden kann.
-
Nachdem das Ziel der Aufgabe und die Anforderungen an ihre Ausführung definiert wurden, leitet das Aufgaben-Auswahlmodul 570 diese definierende Information an das Aufgaben-Delegierungsmodul 560 weiter, das die Aufgabe für eine entfernte Verarbeitung durch den Agent-Computer 100 verteilt. Verschiedene Arten der Verteilung der Verarbeitung von Aufgaben sind innerhalb des Schutzbereichs der Erfindung denkbar. Wie oben diskutiert können Aufgaben delegiert werden, indem sie durch das Aufgaben-Delegierungsmodul 560 dem Aufgaben-Annahmemodul 540 eines oder mehrerer Agent-Computer 100 „zugeschoben“ werden, oder Aufgaben können durch das Aufgaben-Delegierungsmodul 560 veröffentlicht werden, so dass sie von dem Aufgaben-Annahmemodul 540 eines oder mehrerer Agent-Computer 100 gelesen und „gezogen“ werden können.
-
Bei einer verwandten Ausführungsform können Aufgaben in Teile aufgeteilt werden, die parallel ausgeführt werden. Beispielsweise können multiple unterschiedliche Agent-Computer 100 aufgefordert werden, unterschiedliche, sich nicht überlagernde Abschnitte ihrer Antivirus-Datenbanken so anzuwenden, dass jede weniger Berechnungen durchführt und das Gesamtergebnis schneller vollendet werden kann. In einem anderen Beispiel können Netzanalyse-Aufgaben zur Erfassung schädlicher Websites so verteilt werden, dass jeder Agent-Computer 100 einen anderen Teil des World Wide Web oder Internet durchsucht.
-
Auf der Agent-Seite verifiziert das Aufgaben-Annahmemodul 540 als Reaktion auf den Erhalt einer Aufgabe ein gegenwärtiges Vorhandensein eines Zeitraums der Benutzer-Inaktivität und schickt die Aufgabe zur Verarbeitung an das Aufgaben-Ausführungsmodul 550. Sobald die Aufgabe erfüllt ist, sendet das Aufgaben-Ausführungsmodul 550 die Ergebnisse an das Aufnahmen-Annahmemodul 540, das wiederum die Ergebnisse der Ausführung an das Aufgaben-Delegierungsmodul 560 des verteilten Rechendienstes 110 sendet.
-
Bei dem verteilten Rechendienst 110 werden die Ergebnisse in einer Ergebnis-Datenbank 595 gespeichert und dem profitierenden Computer 120 gemeldet. Das Ergebnisanalysemodul 598 liest die Ergebnisse der Aufgabenverarbeitung, die von dem einen oder den mehreren Agent-Computern 100 an das Aufgaben-Delegierungsmodul zurückgesandt werden, und bestimmt, ob die Aufgabe erfolgreich erfüllt wurde. Bei einer Ausführungsform erfolgt diese Bestimmung auf der Grundlage eines Vergleichs der Ergebnisse und der Aufgabenparameter, von denen einer oder mehrere die Anforderungen an die Ergebnisse der Aufgabenverarbeitung spezifizieren können. Wenn beispielsweise eine Aufgabe in eine Vielzahl von Teilen aufgeteilt wird, die an multiple Agent-Computer 100 verteilt werden, bestätigt das Ergebnisanalysemodul 598, dass alle Teile erfüllt wurden. In einem weiteren Beispiel wird, wenn eine Aufgabe an multiple Agent-Computer 100 verteilt wird, mit dem Zweck, das schnellste Ergebnis zu erzielen, das zuerst erhaltene Ergebnis von dem Ergebnisanalysemodul 598 als das vollständige Ergebnis angesehen, und die anderen Agent-Computer 100 können angewiesen werden, das Verarbeiten der Aufgabe zu stoppen.
-
Bei einer verwandten Ausführungsform verbindet das Ergebnisanalysemodul 598 mehrere unterschiedliche Ergebnisse für multiple getrennte Aufgaben, die sich auf ein gemeinsames Ziel beziehen, und bringt sie miteinander in Einklang. Wo es beispielsweise ein Ziel ist, eine unbekannte Datei auf das Vorhandensein von Schadprogrammen zu analysieren, können multiple unterschiedliche Verfahren verwendet werden: Eine spezifische Signaturanalyse auf der Grundlage bekannter Schadprogramme, die aus einer Schadprogramm-Datenbank identifiziert werden können, generische Signaturen, die heuristische Verfahren nutzen, Sandboxing und andere Virtualisierungstechniken usw. Jedes der Schadprogramm-Analyseverfahren kann als eine oder mehrere Aufgaben verteilt werden, und die Ergebnisse der einzelnen Verfahren können verschieden sein. In diesem Fall kann das Ergebnisanalysemodul 598 dafür ausgelegt sein, die verschiedenen Ergebnisse zu vergleichen und eine Entscheidungslogik anzuwenden, um das beste Ergebnis zu identifizieren. Die Kriterien dafür, was das beste Ergebnis ist, können von Aufgabe zu Aufgabe unterschiedlich sein, je nach den Parametern jeder Aufgabe.
-
Bei einem verwandten Beispiel kann eine einzige Aufgabe auf multiple Agent-Computer verteilt sein, die zufällig unterschiedliche Versionen einer Antivirus-Datenbank haben. Das Ergebnisanalysemodul 598 bestimmt, dass das beste Ergebnis das eines Agent-Computers 100 ist, der die zuletzt aktualisierte Antivirus-Datenbank aufweist. Bei einer Variante dieser Ausführungsform wendet das Ergebnisanalysemodul 598 multiple konkurrierende Kriterien an, um ein bestes Ergebnis zu bestimmen. Beispielsweise kann bei dem letzten Beispiel das beste Ergebnis weiterhin durch zeitliche Kriterien festgelegt sein, so dass das beste verfügbare Ergebnis innerhalb eines vorher bestimmten Zeitfensters das beherrschende Ergebnis ist.
-
Bei einer Art der Ausführungsform werden die Ergebnisse bestimmter Aufgaben nicht nur an den profitierenden Computer 120 zurückgesandt, sondern werden unter multiplen anderen Agent-Computern 100 verbreitet, die an dem verteilten Verarbeitungssystem teilnehmen. So kann beispielsweise die Entdeckung eines neuen Schadprogramms oder einer schädlichen Website allen Agent-Computern 100 mitgeteilt werden, so dass alle teilnehmenden Computer von diesem neuen Wissen profitieren können.
-
5B ist ein Blockdiagramm, das eine verwandte Ausführungsform darstellt, bei der ein kombiniertes Computersystem (oder mehrere) 100' mit Modulen konfiguriert ist, die es ihm ermöglichen, sowohl als Agent als auch als verteilter Rechendienst 110 zu dienen. Bei dieser Ausführungsform sind das Aufgaben-Annahmemodul 540 und das Aufgaben-Delegierungsmodul 560 jeweils dazu geeignet, kommunizierend über eine Schnittstelle 565 mit einem zusätzlichen Verteilungsdienst 110 (nicht gezeigt) und einem anderen Agent-Computer 100 (nicht gezeigt) gekoppelt zu sein. Bei der in 5B dargestellten Ausführungsform ist der Verteilungsdienst 110 ein Modul, das in dem Computersystem 100' getrennt von der Sicherheits-Suite 200 implementiert ist. Bei einer verwandten Ausführungsform ist der Verteilungsdienst 110 ein Modul, das Teil eines verteilten Verarbeitungsmoduls 250 ist.
-
6 ist ein Diagramm, das eine beispielartige Ausführungsform des Systems darstellt, bei der Aufgaben an verschiedene Agent-Computer 100 oder kombinierte Computersysteme 100' delegiert werden, entweder durch einen spezialisierten verteilten Rechendienst 110 (beispielsweise durch einen internetbasierten, entfernt gehosteten Dienst) oder durch ein beliebiges der kombinierten Computersysteme 100', die dieselbe Grundfunktion haben. Bei einem Ansatz wird ein Zwischencomputer 410 (oben im Zusammenhang mit 4 diskutiert) verwendet, der bei einer Ausführungsform ein speziell dafür vorgesehener Zwischencomputer sein kann oder auch bei einer verwandten Ausführungsform mit einem Agent-Computer 100 implementiert sein kann. In dem Fall, wenn ein oder mehrere kombinierte Computersysteme 100' genutzt werden, können die Agent-Computer 100 direkt mit dem kombinierten Computersystem 100' interagieren, um die Delegierung von Aufgaben anzufordern und zu erhalten .
-
7 ist ein Flussdiagramm, das einen Prozess zur Verteilung der Aufgabenausführung auf einen oder mehrere Agenten darstellt, wie er von dem Verteilungsdienst 110 gemäß einer beispielartigen Ausführungsform ausgeführt wird. Wie oben beschrieben kann der Verteilungsdienst 110 als Dienst von einem Nicht-Agent-Computersystem implementiert sein, oder er kann als Teil eines kombinierten Computersystems 100' implementiert sein, das auch ein Agent ist.
-
In Block 710 wird die Aufgabe für eine verteilte Ausführung von dem profitierenden Computer 120 erhalten, der ein Computersystem sein kann, das eine Sicherheits-Suite 200 oder eine Untergruppe davon aufweist. Der profitierende Computer 120 kann ein Agent-Computer 100 sein oder kann nicht dafür konfiguriert sein, Prozesse im Auftrag eines anderen Computersystems auszuführen. Außerdem kann der profitierende Computer 120 ein Modul eines kombinierten Computersystems 100' sein, das mit einem lokal gehosteten Verteilungsdienst 110 kommuniziert.
-
Ein typisches Beispiel einer zu verteilenden Aufgabe ist die Aufgabe der Bestimmung der Schädlichkeit einer unbekannten Datei auf dem profitierenden Computer 120. Ein weiteres Beispiel einer zu verteilenden Aufgabe ist die Durchführung einer Aktualisierung, die besonders dringend sein kann, wenn der Server des Antivirusprogramm-Herstellers nicht rechtzeitig Aktualisierungen verbreiten kann (das könnte während eines Denial of Service (DoS)-Angriffs oder einer Blockierung des Zugriffs auf den Server des Antivirusprogramm-Herstellers durch ein unbekanntes Schadprogramm geschehen). Die Aufgabe kann in den Fällen, wenn das Problem nicht an dem profitierenden Computer 120 gelöst werden kann, zur Ausführung auf einen oder mehrere Agent-Computer 100 oder kombinierte Computer 100' verteilt werden. Der Kürze halber werden nachstehend kombinierte Computer 100', die in ihrer Eigenschaft als Agent wirken, einfach als Agent-Computer 100 bezeichnet.
-
Bei 720 werden Computer gesucht, die eine solche Aufgabe ausführen. Diese Suche könnte beispielsweise eine veröffentlichte Anfrage innerhalb des verfügbaren Segments des Netzwerks umfassen, um Computer zu erfassen, bei denen die Computer-Sicherheits-Suite 200 installiert ist und die gegenwärtig verfügbare Rechenressourcen haben, die für die Ausführung der Aufgabe ausreichen. Bei einer verwandten Ausführungsform wird das Mailslot-Protokoll verwendet, um diese Veröffentlichung zu bewirken. Reaktionen auf die Veröffentlichung werden gesammelt und analysiert. Bei einer verwandten Ausführungsform wird eine vorher bestimmte optimale Zahl von Computern zur Durchführung jeder Aufgabe auf der Grundlage der Aufgabenparameter gesucht.
-
Bei einer verwandten Ausführungsform hat jeder Agent-Computer 100 seinen Verfügbarkeitsplan und seine Kapazitäten zur Übernahme verteilter Aufgaben bei einem oder mehreren Verteilungsdiensten 110 registriert, so dass die Suche im Wesentlichen umfasst, dass der Verteilungsdienst 110 einfach sein Register verfügbarer Agent-Computer 100 prüft. Bei dieser Art der Ausführungsform wird vor der Delegierung der Aufgabe eine zusätzliche Prüfung durchgeführt, um die tatsächliche gegenwärtige Verfügbarkeit der registrierten Agent-Computer sicherzustellen, da ein bestimmter Agent-Computer 100 in Gebrauch sein kann, obgleich das nicht mit einem typischen Nutzungsplan übereinstimmt, der für diesen Agent-Computer 100 bestimmt wurde, so dass er als Agent für eine verteilte Aufgabenverarbeitung nicht zur Verfügung steht.
-
Bei der Verteilung der Aufgabe auf einen oder mehrere Agent-Computer 100 ist es sehr wahrscheinlich, dass ein oder mehrere Agent-Computer 100, die nicht der profitierende Computer 120 sind und zuerst den Bedarf der Durchführung einer Sicherheitsaufgabe entdeckt haben, die Aufgabe ausführen werden. Es ist jedoch auch möglich, dass der Verteilungsprozess, der allgemein eine Bestimmung der Geeignetheit und eines Zustands für die Durchführung der Aufgabe umfasst, feststellt, dass die Ausführung des Prozesses (oder eines Abschnitts des Prozesses) lokal auf dem Computer des profitierenden Computers 120 unter diesen Bedingungen die beste Handlungsweise ist. Diese Situation trifft bei Ausführungsformen zu, bei denen der profitierende Computer 120 auch ein Agent-Computer 100 ist.
-
Ob die Computer, die die Kriterien zur Durchführung einer spezifischen Aufgabe erfüllen, entdeckt werden, wird in Block 730 bestimmt. Die Kriterien können Anforderungen an die Leistung des Computers und seine Verfügbarkeit umfassen und sind in der Beschreibung oben im Einzelnen unter Bezugnahme auf 3-5 beschrieben. Wenn keine solchen Computer gefunden werden, endet das Verfahren in Block 740. Anderenfalls wird die Aufgabe in Block 750 aufgeteilt, um die verteilte Ausführung entsprechend der Zahl verfügbarer Computer durchzuführen. Sobald die Aufgabe auf die entdeckten Agent-Computer 100 aufgeteilt ist, wird sie durch die Agent-Computer ausgeführt, die jeweils ihre Ausgabe an den Verteilungsdienst 110 rückmelden. In Block 760 sammelt der Verteilungsdienst 110 die Ausgaben der einzelnen Agent-Computer 100.
-
Bei der Entscheidung 770 bestimmt der Verteilungsdienst 110, ob das Gesamtziel für die verteilte Aufgabe erreicht wurde. Die Kriterien für diese Bestimmung können je nach den Anforderungen der Aufgabe variieren. Um einige Aufgaben abzuschließen, wie das Überprüfen einer Datei auf alle bekannten Schadprogramme, wobei die Schadprogramm-Datenbank auf die verschiedenen Agent-Computer 100 verteilt ist, kann es beispielsweise notwendig sein, dass alle Agent-Computer 100 ihren Abschnitt der verteilten Aufgabe vollenden. Andere Aufgaben können zunächst erfordern, dass nur ein erster Agent-Computer 100 seine Aufgabe erfüllt; zu diesem Zeitpunkt können die anderen Agent-Computer abberufen werden. Ein Beispiel dieser Art von Aufgabe ist das Analysieren eines unbekannten Programms heuristisch in einer isolierten Sandbox-Umgebung. Verschiedene Maschinen und Analysetechniken können bei verschiedenen Agent-Computern 100 verwendet werden, wenn jedoch ein erster Agent-Computer 100 entdeckt, dass die Datei bösartig ist, können die anderen benachrichtigt werden, damit sie die Verarbeitung einstellen.
-
Bei Block 780 wird das Endergebnis zusammengestellt, je nachdem indem die Ausgaben der verschiedenen Agent-Computer 100 kombiniert werden, oder indem die erste oder passendste Ausgabe gewählt wird, und das Ergebnis dem profitierenden Computer 120 zur Verfügung gestellt wird.
-
Ein konkretes Beispiel für das Prüfen eines Programms auf unbekannte Schädlichkeit ist in 8 dargestellt. Ein unbekanntes Programm X wird auf einem ersten Computersystem 810 mit Hilfe einer lokalen Computer-Sicherheits-Suite 200 entdeckt; ob X jedoch ein bösartiges Programm ist, konnte nicht verifiziert werden (beispielsweise deshalb, weil die Schadprogramm-Datenbanken und Whitelists nicht nach einem vorher bestimmten Zeitraum aktualisiert wurden). Um die Schädlichkeit des Programms X zu bestimmen, wird das Programm oder eine Repräsentation davon (beispielsweise seine Hash-Summe, Größe, Art der ausführbaren Datei, aus der Header-Datei genommene Daten oder andere Metadaten oder Inhaltsangaben) auf Agent-Computer 100 transferiert. In diesem Fall ist der Computer 810 der profitierende Computer 120.
-
In diesem Beispiel ist jeder der Agent-Computer 100 dafür konfiguriert, eine Reihe von Techniken zum Testen eines unbekannten Programms auf der Grundlage entsprechender Kriterien auszuführen, die als A, B und C identifiziert sind und durch die festgestellt werden kann, ob das Programm X bösartig ist oder nicht. Beispielsweise kann ein Emulator oder eine virtuelle Maschine oder ein proaktives Verteidigungsmodul zum Testen des Programms verwendet werden. Bei einer anderen Ausführungsform kann ein Computer-Sicherheits-Suiten-Modul 200 verwendet werden, aber mit anderen Einstellungen. Bei noch einer weiteren Ausführungsform können sich A, B und C auf die verschiedenen Sätze von Merkmalen oder Teilen der Datenbank beziehen, die von den Antivirus-Software-Modulen 200 verwendet werden.
-
Bei einer verwandten Ausführungsform können die Ergebnisse der verteilten Verarbeitung auch an den Firmen-Server 850 des Herstellers des Antivirus-Dienstes gemeldet werden, der die Ergebnisse für eine weitere Analyse und für eine Aktualisierung der Antivirus-Software-Datenbanken des Herstellers des Antivirus-Programms selbst liefern kann, die bei der nächsten Aktualisierung an alle Benutzer verbreitet würden.
-
9 ist ein Diagramm, das ein Computersystem 900 detaillierter darstellt, in dem Aspekte der Erfindung, wie hier beschrieben, gemäß verschiedenen Ausführungsformen implementiert werden können. Das Computersystem 900 kann eine Recheneinrichtung wie einen Personal Computer 902 umfassen.
-
Der Personal Computer 902 umfasst eine oder mehrere Verarbeitungseinheiten 904, einen Systemspeicher 906, eine Videoschnittstelle 908, ein Ausgabe-Peripherieschnittstelle 910, eine Netzwerkschnittstelle 912, eine Benutzereingabeschnittstelle 914, entfernbare 916 und nicht entfernbare 918 Speicherschnittstellen und einen Systembus oder einen Hochgeschwindigkeits-Kommunikationskanal 920, der die verschiedenen Komponenten verbindet. Bei verschiedenen Ausführungsformen können die Verarbeitungseinheiten 904 multiple logische Kerne aufweisen, die Informationen verarbeiten können, die auf computerlesbaren Medien gespeichert sind, wie dem Systemspeicher 906 oder dem Speicher, der an die entfernbare 916 und die nicht entfernbare Speicherschnittstelle 918 angeschlossen ist. Der Systemspeicher 906 des Computers 902 kann einen nichtflüchtigen Speicher wie einen Festwertspeicher (ROM) 922 oder einen flüchtigen Speicher wie einen Arbeitsspeicher (RAM) 924 umfassen. Das ROM 922 kann ein Eingabe-/Ausgabe-System (BIOS) 926 umfassen, um bei der Kommunikation mit dem anderen Abschnitt des Computers 902 zu helfen. Das RAM 924 kann Abschnitte verschiedener Softwareanwendungen wie das Betriebssystem 928, Anwendungsprogramme 930 und andere Programmmodule 932 speichern. Weiterhin kann das RAM 924 andere Informationen wie Programm- oder Anwendungsdaten 934 speichern. Bei verschiedenen Ausführungsformen speichert das RAM 924 Informationen, die niedrige Latenzen und effizienten Zugriff erfordern, wie Programme und Daten, die manipuliert werden oder in die eingegriffen wird. Bei verschiedenen Ausführungsformen umfasst das RAM 924 einen Double-Data-Rate (DDR)-Speicher, einen Fehlerkorrektur-Speicher (ECC) oder andere Speichertechniken mit variierenden Latenzen und Konfigurationen wie RAMBUS oder DDR2 und DDR3. Auf diese Art kann bei verschiedenen Ausführungsformen der Systemspeicher 906 den Eingabedatenspeicher, den Zugriffsberechtigungs-Speicher, den Betriebsspeicher-Datenspeicher, den Instruktionssatz-Datenspeicher, den Analyseergebnis-Datenspeicher und den Betriebsspeicher-Datenspeicher speichern. Weiterhin können bei verschiedenen Ausführungsformen die Verarbeitungseinheiten 904 dafür konfiguriert sein, Instruktionen auszuführen, die den Zugriff auf die oben genannten Datenspeicher begrenzen, indem sie eine Zugriffsberechtigung anfordern, bevor der Zugriff auf die Informationen gewährt wird.
-
Die entfernbare 916 und die nicht entfernbare Speicherschnittstelle 918 können den Computer 902 mit Plattenlaufwerken 936 wie einem SSD oder Rotationsplattenlaufwerken verbinden. Diese Plattenlaufwerke 936 können weiteren Speicher für verschiedene SoftwareAnwendungen wie das Betriebssystem 938, Anwendungsprogramme 940 und andere Programmmodule 942 bereitstellen. Weiterhin können die Plattenlaufwerke 936 andere Informationen wie Programm- oder Anwendungsdaten 944 speichern. Bei verschiedenen Ausführungsformen speichern die Plattenlaufwerke 936 Informationen, die nicht die gleichen niedrigen Latenzen erfordern wie bei anderen Speichermedien. Weiterhin können das Betriebssystem 938, die Daten des Anwendungsprogramms 940, die Programmmodule 942 und die Programm- oder Anwendungsdaten 944 aus den gleichen Informationen bestehen wie die in dem RAM 924 in verschiedenen, oben genannten Ausführungsformen gespeicherten, oder sie können aus unterschiedlichen Daten bestehen, die potenziell aus den in dem RAM 924 gespeicherten Daten abgeleitet wurden.
-
Weiterhin kann die entfernbare, nichtflüchtige Speicherschnittstelle 916 den Computer 902 mit magnetischen, tragbaren Plattenlaufwerken 946 verbinden, die magnetische Medien wie die Diskette 948, Iomega®Zip oder Jazz, oder optische Plattenlaufwerke 950, die optische Medien 952 zur Speicherung computerlesbarer Medien wie Blu-Ray®, DVD-R/RW, CD-R/RW und andere ähnliche Formate verwenden. Weitere Ausführungsformen verwenden SSD oder Rotationsplatten, die in tragbaren Gehäusen untergebracht sind, um die Kapazität des entfernbaren Speichers zu erhöhen.
-
Der Computer 902 kann die Netzwerkschnittstelle 912 verwenden, um mit einem oder mehreren entfernten Computern 956 über ein lokales Netzwerk (LAN) 958 oder ein Weitverkehrs-Netzwerk (WAN) 960 zu kommunizieren. Die Netzwerkschnittstelle 912 kann eine Netzwerkschnittstellenkarte (NIC) oder eine andere Schnittstelle wie ein Modem 962 verwenden, um die Kommunikation zu ermöglichen. Das Modem 962 kann die Kommunikation über Telefonleitungen, koaxiale Leitungen, faseroptische Leitungen, Stromleitungen oder drahtlos ermöglichen. Der entfernte Computer 956 kann eine ähnliche Hardware- und Softwarekonfiguration aufweisen oder kann einen Speicher 964 haben, der entfernte Anwendungsprogramme 966 umfasst, die zusätzliche computerlesbare Instruktionen für den Computer 902 bereitstellen können. Bei verschiedenen Ausführungsformen kann der entfernte Computerspeicher 964 verwendet werden, um Informationen zu speichern, beispielsweise identifizierte Datei-Informationen, die später auf einen lokalen Systemspeicher 906 heruntergeladen werden können. Weiterhin kann in verschiedenen Ausführungsformen der entfernte Computer 956 ein Anwendungsserver, ein administrativer Server, Clientcomputer oder eine Netzwerkanwendung sein.
-
Ein Benutzer kann Informationen in den Computer 902 eingeben, wobei er Eingabeeinrichtungen verwendet, die mit der Benutzer-Eingabeschnittstelle 914 verbunden sind, wie eine Maus 968 und eine Tastatur 970. Zusätzlich kann die Eingabeeinrichtung ein Trackpad, ein Fingerabdruck-Scanner, ein Joystick, ein Barcode-Scanner, ein Medien-Scanner oder Ähnliches sein. Die Video-Schnittstelle 908 kann visuelle Informationen an ein Display wie einen Monitor 972 liefern. Die Video-Schnittstelle 908 kann eine eingebettete Schnittstelle oder eine getrennte Schnittstelle sein. Weiterhin kann der Computer eine Vielzahl von Video-Schnittstellen 908, Netzwerkschnittstellen 912 sowie entfernbare 916 und nicht entfernbare Schnittstellen 918 verwenden, um die Flexibilität des Computers 902 im Betrieb zu erhöhen. Weiterhin verwenden verschiedene Ausführungsformen mehrere Monitore 972 und mehrere Video-Schnittstellen 908, um die Leistung und Fähigkeiten des Computers 902 zu variieren. Andere Computer-Schnittstellen können an dem Computer 902 vorhanden sein, wie eine Ausgabe-Peripherieschnittstelle 910. Diese Schnittstelle kann mit einem Drucker 974 oder Lautsprechern 976 oder anderen Peripheriegeräten verbunden sein, um dem Computer 902 zusätzliche Funktionalität zu verleihen.
-
Verschiedene alternative Konfigurationen und Ausführungen des Computers 902 liegen innerhalb des Schutzbereichs der Erfindung. Diese Variationen können ohne Einschränkung zusätzliche Schnittstellen umfassen, die mit dem Systembus 920 verbunden sind, wie ein universeller serieller Bus (USB), ein Druckeranschluss, ein Gameport, ein PCI-Bus, ein PCI-Express oder Integrationen der verschiedenen oben beschriebenen Komponenten zu Chipsatz-Komponenten wie Northbridge oder Southbridge. Beispielsweise kann bei verschiedenen Ausführungsformen die Verarbeitungseinheit 904 einen eingebetteten Speicher-Controller (nicht gezeigt) umfassen, um eine effizientere Datenübertragung von dem Systemspeicher 906 zu ermöglichen, als sie möglicherweise der Systembus 920 liefert.
-
Die oben genannten Ausführungsformen sind illustrativ und nicht einschränkend zu verstehen. Zusätzliche Ausführungsformen liegen im Schutzbereich der Ansprüche. Obgleich Aspekte der Erfindung unter Bezugnahme auf bestimmte Ausführungsformen beschrieben wurden, wird dem Fachmann außerdem klar sein, dass Änderungen an Form und Einzelheiten vorgenommen werden können, ohne von dem Schutzbereich der Erfindung abzuweichen, wie er in den Ansprüchen definiert ist.
-
Der Durchschnittsfachmann auf dem einschlägigen Gebiet wird erkennen, dass die Erfindung möglicherweise weniger Merkmale aufweist, als in den einzelnen, oben beschriebenen Ausführungsformen dargestellt. Die hier beschriebenen Ausführungsformen sind nicht als umfassende Darstellung der Arten, wie die verschiedenen Merkmale der Erfindung kombiniert werden können, zu verstehen. Dementsprechend sind die Ausführungsformen keine sich gegenseitig ausschließenden Kombinationen von Merkmalen, sondern die Erfindung kann eine Kombination unterschiedlicher einzelner Merkmale umfassen, die aus unterschiedlichen einzelnen Ausführungsformen ausgewählt sind, wie dem Durchschnittsfachmann verständlich sein wird.
-
Jede Bezugnahme auf die oben genannten Dokumente ist insofern eingeschränkt, als sie keine Gegenstände betrifft, die im Gegensatz zu der expliziten Offenbarung hierin stehen. Jede Bezugnahme auf die oben genannten Dokumente ist weiterhin insofern eingeschränkt, als keine in den Dokumenten enthaltenen Ansprüche als Teil der Ansprüche dieser Anmeldung aufzufassen sind. Die Ansprüche jedes der Dokumente sind jedoch als Teil dieser Offenbarung aufzufassen, soweit dies nicht ausdrücklich ausgeschlossen ist. Jede Bezugnahme auf die oben genannten Dokumente ist weiterhin insofern eingeschränkt, als dass Definitionen, die in den Dokumenten enthalten sind, nicht Teil dieser Offenbarung sind, soweit sie hier nicht explizit eingeschlossen sind.
-
Das erfindungsgemäße System für einen Betrieb in einem verteilten Rechensystem, bei dem sicherheitsbezogene Aufgaben delegiert werden, kann in den folgenden Verfahren angewandt werden:
- a) Verfahren zum Betreiben eines Computersystems in einem verteilten Rechensystem, bei dem sicherheitsbezogene Aufgaben delegiert werden, wobei das Verfahren umfasst:
- Empfangen einer Anfrage zur Verteilung einer sicherheitsbezogenen Aufgabe zum Analysieren einer unbekannten Datei auf Schadprogramme;
- Einteilen der empfangenen sicherheitsbezogenen Aufgabe in eine Vielzahl getrennter Aufgabenteile zur Durchführung von sich nicht überschneidenden Arten der Antivirus-Analyse unter Verwendung entsprechender Schadprogramm-Datenbanken, um ein gemeinsames Ziel der Analyse der unbekannten Datei auf Schadprogramme zu erzielen;
- Bestimmen von Rechenkapazitäts-Anforderungen zur Durchführung jedes der getrennten Aufgabenteile;
- Berechnen einer Geeignetheitsbestimmung jedes von multiplen Agent-Computern (100), um eine Delegierung eines entsprechenden getrennten Aufgabenteils anzunehmen, einschließlich des Erhaltens der Rechenkapazitäts-Anforderungen zur Durchführung eines entsprechenden getrennten Aufgabenteils, Bestimmen der Rechenkapazität des Agent-Computers (100) auf der Grundlage verfügbarer Ressourcen, die Arten von Antivirus-Software umfassen, die die unbekannte Datei und die entsprechende Schadprogramm-Datenbank analysieren können, und Treffen einer Entscheidung, ob die Rechenkapazität des entsprechenden Agent-Computers (100) ausreicht, um die Rechenanforderungen zu erfüllen;
- Delegieren jedes der Vielzahl getrennter Aufgabenteile an einen anderen der multiplen entfernten Agent-Computer (100) zur Ausführung als Reaktion auf die berechnete Geeignetheitsbestimmung darüber, ob jeder der multiplen entfernten Agent-Computer (100) geeignet ist, die Ausführung des entsprechenden getrennten Aufgabenteils durchzuführen;
- Erhalten von Ergebnissen jedes der Vielzahl der getrennten Aufgabenteile, die jeweils von jedem der multiplen entfernten Agent-Computern (100) verarbeitet werden;
- Bestimmen, ob die sicherheitsbezogene Aufgabe abgeschlossen wurde, auf der Grundlage der erlangten Ergebnisse von jedem der multiplen entfernten Agent-Computer (100) und von Aufgabenparametern, die Anforderungen an Ergebnisse der Aufgabenverarbeitung spezifizieren, um zu bestimmen, ob jeder der Vielzahl der getrennten Aufgabenteile so abgeschlossen ist, dass das gemeinsame Ziel des Analysierens der unbekannten Datei erreicht wurde; und
- Bestimmen, ob die unbekannte Datei Schadprogramme aufweist, wenn bestimmt wird, dass die sicherheitsbezogene Aufgabe abgeschlossen ist, und auf der Grundlage der erzielten Ergebnisse.
- b) Verfahren nach Absatz a), weiterhin umfassend das Reagieren auf eine Initiierung einer Kommunikationssitzung durch wenigstens einen der multiplen entfernten Agent-Computer (100), indem eine Liste von Aufgaben-Anfragen dem wenigstens einen entfernten Agent-Computer (100) zur Verfügung gestellt wird, wobei jede der Aufgaben-Anfragen wenigstens einen der getrennten Aufgabenteile der angefragten sicherheitsbezogenen Aufgabe repräsentiert.
- c) Verfahren nach Absatz a), weiterhin umfassend das Erhalten von Ergebnissen von getrennten Aufgabenteilen, die von wenigstens einem der multiplen entfernten Agent-Computern (100) verarbeitet werden, und Verbinden und In-Einklang-Bringen mehrerer unterschiedlicher Ergebnisse für multiple getrennte Aufgabenteile, die von dem wenigstens einen entfernten Agent-Computer (100) durchgeführt werden und mit dem gemeinsamen Ziel in Zusammenhang stehen.
- d) Verfahren nach Absatz a), weiterhin umfassend:
- Durchführen verschiedener sicherheitsbezogener Operationen für einen Benutzer des Computersystems durch eine Vielzahl von Schutzmodulen (200); und
- Erhalten wenigstens eines getrennten Aufgabenteils von dem entfernten verteilten Rechendienst (110) als Reaktion auf eine Bestimmung der Verfügbarkeit des Computersystems, eine Delegierung von Aufgaben anzunehmen, die für die multiplen entfernten Agent-Computer (100) auszuführen sind, und den erhaltenen wenigstens einen getrennten Aufgabenteil über wenigstens eines der Vielzahl von Schutzmodulen (200) auszuführen.
- e) Verfahren nach Absatz a), weiterhin umfassend das Verteilen der Netzwerk-Analyseaufgaben zur Erfassung schädlicher Websites so, dass jeder der multiplen Agent-Computer (100) einen anderen Teil des World Wide Web oder Internets durchsucht.
- f) Computerlesbares Speichermedium, das eine Vielzahl von Computer-Codes speichert, die von einem Computer ausführbar sind, um die Schritte der Absätze a) bis e) zu implementieren.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- R. Y. Camargo et al., „Grid: An Architectural Pattern“, the 11th Conference on Pattern Languages of Programs (PLoP’2004), Monticello, USA, 12 Sept. 2004 [0010]
- Luis Ferreira et al. „Introduction to Grid Computing with Globus“, ibm.com/redbooks, 1 September 2003 [0011]
- ISBN: 978-0-73-842796-6 [0011]