DE202012013609U1 - System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben - Google Patents

System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben Download PDF

Info

Publication number
DE202012013609U1
DE202012013609U1 DE202012013609.7U DE202012013609U DE202012013609U1 DE 202012013609 U1 DE202012013609 U1 DE 202012013609U1 DE 202012013609 U DE202012013609 U DE 202012013609U DE 202012013609 U1 DE202012013609 U1 DE 202012013609U1
Authority
DE
Germany
Prior art keywords
task
computer
module
agent
distributed
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.)
Expired - Lifetime
Application number
DE202012013609.7U
Other languages
English (en)
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of DE202012013609U1 publication Critical patent/DE202012013609U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Abstract

Computersystem zum Betrieb in einem verteilten Rechensystem, in dem sicherheitsbezogene Aufgaben delegiert werden, wobei das Computersystem umfasst:Rechen-Hardware, umfassend einen Prozessor (904), eine Speichereinrichtung (906), eine Benutzerschnittstelle (908, 914) und eine Kommunikationsschnittstelle (912);ein verteiltes Rechendienstmodul (110), das für Folgendes ausgelegt ist: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; und Delegieren jedes der Vielzahl getrennter Aufgabenteile an einen anderen von multiplen entfernten Agent-Computern (100) zur Ausführung als Reaktion auf eine Geeignetheitsbestimmung darüber, ob jeder der multiplen entfernten Agent-Computer (100) geeignet ist, die Ausführung des entsprechenden getrennten Aufgabenteils durchzuführen; undBestimmen von Rechenkapazitäts-Anforderungen zur Durchführung jedes der getrennten Aufgabenteile, die an die entsprechenden entfernten Agent-Computer (100) zur Ausführung delegiert werden sollen; wobei das verteilte Rechendienstmodul (110) umfasst:ein Ergebnisanalysemodul (598), das für Folgendes ausgelegt ist: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 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; undBestimmen, ob die unbekannte Datei Schadprogramme aufweist, wenn bestimmt wird, dass die sicherheitsbezogene Aufgabe abgeschlossen ist, und auf der Grundlage der erzielten Ergebnisse,ein Aufgaben-Annahmemodul (540) für jeden Agent-Computer (100), das dafür ausgelegt ist, eine Geeignetheitsbestimmung des Agent-Computers (100) zu berechnen, um eine Delegierung des wenigstens einen getrennten Aufgabenteils über das verteilte Rechendienstmodul (110) anzunehmen, wobei die Bestimmung umfasst: Erhalten der Rechenkapazitäts-Anforderungen, die durch das verteilte Rechendienstmodul (110) bestimmt werden, 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; undein Aufgaben-Ausführungsmodul (550) für jeden Agent-Computer (100), das mit dem wenigstens einen Aufgaben-Annahmemodul (540) gekoppelt ist und dafür ausgelegt ist, einen entsprechenden getrennten Aufgabenteil von dem verteilten Rechendienstmodul (110) als Reaktion auf die Bestimmung der Geeignetheit des entsprechenden Agent-Computers (100) zu erhalten und den delegierten getrennten Aufgabenteil auszuführen.

Description

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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:
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.
    6. 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
    • EP 2388727 A1 [0009]
  • 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]

Claims (7)

  1. Computersystem zum Betrieb in einem verteilten Rechensystem, in dem sicherheitsbezogene Aufgaben delegiert werden, wobei das Computersystem umfasst: Rechen-Hardware, umfassend einen Prozessor (904), eine Speichereinrichtung (906), eine Benutzerschnittstelle (908, 914) und eine Kommunikationsschnittstelle (912); ein verteiltes Rechendienstmodul (110), das für Folgendes ausgelegt ist: 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; und Delegieren jedes der Vielzahl getrennter Aufgabenteile an einen anderen von multiplen entfernten Agent-Computern (100) zur Ausführung als Reaktion auf eine Geeignetheitsbestimmung darüber, ob jeder der multiplen entfernten Agent-Computer (100) geeignet ist, die Ausführung des entsprechenden getrennten Aufgabenteils durchzuführen; und Bestimmen von Rechenkapazitäts-Anforderungen zur Durchführung jedes der getrennten Aufgabenteile, die an die entsprechenden entfernten Agent-Computer (100) zur Ausführung delegiert werden sollen; wobei das verteilte Rechendienstmodul (110) umfasst: ein Ergebnisanalysemodul (598), das für Folgendes ausgelegt ist: 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 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, ein Aufgaben-Annahmemodul (540) für jeden Agent-Computer (100), das dafür ausgelegt ist, eine Geeignetheitsbestimmung des Agent-Computers (100) zu berechnen, um eine Delegierung des wenigstens einen getrennten Aufgabenteils über das verteilte Rechendienstmodul (110) anzunehmen, wobei die Bestimmung umfasst: Erhalten der Rechenkapazitäts-Anforderungen, die durch das verteilte Rechendienstmodul (110) bestimmt werden, 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; und ein Aufgaben-Ausführungsmodul (550) für jeden Agent-Computer (100), das mit dem wenigstens einen Aufgaben-Annahmemodul (540) gekoppelt ist und dafür ausgelegt ist, einen entsprechenden getrennten Aufgabenteil von dem verteilten Rechendienstmodul (110) als Reaktion auf die Bestimmung der Geeignetheit des entsprechenden Agent-Computers (100) zu erhalten und den delegierten getrennten Aufgabenteil auszuführen.
  2. Computersystem nach Anspruch 1, wobei das verteilte Rechendienstmodul (110) dafür ausgelegt ist, auf eine Initiierung einer Kommunikationssitzung durch wenigstens einen der multiplen entfernten Agent-Computer (100) zu reagieren, 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.
  3. Computersystem nach Anspruch 1, wobei das Ergebnisanalysemodul (598) weiterhin dafür ausgelegt ist, Ergebnisse von getrennten Aufgabenteilen zu erhalten, die von wenigstens einem der multiplen entfernten Agent-Computer (100) verarbeitet werden, und mehrere unterschiedliche 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, zu verbinden und in Einklang zu bringen.
  4. Computersystem nach Anspruch 1, wobei das Ergebnisanalysemodul (598) weiterhin dafür ausgelegt ist, Ergebnisse von den getrennten Aufgabenteilen zu erhalten, die von den multiplen entfernten Agent-Computern (100) verarbeitet werden, und mehrere unterschiedliche Ergebnisse für multiple getrennte Aufgabenteile, die von den multiplen Agent-Computern (100) durchgeführt werden und mit dem gemeinsamen Ziel in Zusammenhang stehen, zu verbinden und in Einklang zu bringen.
  5. Computersystem nach Anspruch 1, wobei das Ergebnisanalysemodul (598) weiterhin dafür ausgelegt ist, Ergebnisse von getrennten Aufgabenteilen zu erhalten, die von einem der multiplen entfernten Agent-Computer (100) verarbeitet werden, und die erlangten Ergebnisse an einen Abschnitt der übrigen entfernten Agent-Computer (100) zu verbreiten.
  6. Computersystem nach Anspruch 1, weiterhin umfassend einen Satz von Schutzmodulen (200) auf den jeweiligen multiplen entfernten Agent-Computern (100), wobei die Schutzmodule (200) für Folgendes ausgelegt sind: Durchführen verschiedener sicherheitsbezogener Operationen für einen Benutzer des Computersystems; und Erhalten wenigstens eines getrennten Aufgabenteils von dem entfernten verteilten Rechendienst (110) als Reaktion auf eine Bestimmung der Verfügbarkeit des Computersystems, eine Delegierung wenigstens eines auszuführenden getrennten Aufgabenteils anzunehmen, und den empfangenen wenigstens einen getrennten Aufgabenteil über wenigstens eines der Vielzahl von Schutzmodulen (200) auszuführen.
  7. Computersystem nach Anspruch 1, wobei das verteilte Rechendienstmodul (110) dafür ausgelegt ist, Netzwerk-Analyseaufgaben zur Erfassung schädlicher Websites so zu verteilen, dass jeder der multiplen entfernten Agent-Computer (100) einen anderen Teil des World Wide Web oder Internets durchsucht.
DE202012013609.7U 2011-11-24 2012-04-20 System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben Expired - Lifetime DE202012013609U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2011147540 2011-11-24
RU2011147540/08A RU2494453C2 (ru) 2011-11-24 2011-11-24 Способ распределенного выполнения задач компьютерной безопасности

Publications (1)

Publication Number Publication Date
DE202012013609U1 true DE202012013609U1 (de) 2018-05-18

Family

ID=46000951

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202012013609.7U Expired - Lifetime DE202012013609U1 (de) 2011-11-24 2012-04-20 System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben

Country Status (5)

Country Link
US (1) US9582335B2 (de)
EP (1) EP2597569A1 (de)
CN (1) CN103023983B (de)
DE (1) DE202012013609U1 (de)
RU (1) RU2494453C2 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10708431B2 (en) 2008-01-28 2020-07-07 Afiniti Europe Technologies Limited Techniques for hybrid behavioral pairing in a contact center system
US10750023B2 (en) 2008-01-28 2020-08-18 Afiniti Europe Technologies Limited Techniques for hybrid behavioral pairing in a contact center system
US20140280962A1 (en) * 2013-03-15 2014-09-18 Openpeak Inc. Method and system for delegating functionality based on availability
CN103428212A (zh) * 2013-08-08 2013-12-04 电子科技大学 一种恶意代码检测及防御的方法
US9390513B2 (en) * 2013-10-29 2016-07-12 Hua Zhong University Of Science Technology Simultaneous metadata extraction of moving objects
US9948493B2 (en) 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
US10225327B2 (en) * 2014-08-13 2019-03-05 Centurylink Intellectual Property Llc Remoting application servers
US10148589B2 (en) * 2014-09-29 2018-12-04 Pearson Education, Inc. Resource allocation in distributed processing systems
US9560074B2 (en) * 2014-10-07 2017-01-31 Cloudmark, Inc. Systems and methods of identifying suspicious hostnames
CN104536809B (zh) * 2014-11-26 2018-01-19 上海瀚之友信息技术服务有限公司 一种基于客户端、服务器系统的分布式定时任务调度系统
CN104598816B (zh) * 2014-12-22 2017-07-04 安一恒通(北京)科技有限公司 一种文件扫描方法及装置
US20160260095A1 (en) * 2015-03-02 2016-09-08 Dell Products, Lp Containerized Computational Task Execution Management Using a Secure Distributed Transaction Ledger
US9882833B2 (en) 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
US9858410B2 (en) * 2015-10-26 2018-01-02 Symantec Corporation Techniques for automated application analysis
US9740601B2 (en) 2015-12-01 2017-08-22 International Business Machines Corporation Globalization testing management service configuration
BR112018011027A2 (pt) * 2015-12-01 2018-11-21 Afiniti Europe Tech Ltd técnicas para alocação de casos
US9767011B2 (en) 2015-12-01 2017-09-19 International Business Machines Corporation Globalization testing management using a set of globalization testing operations
US10652319B2 (en) * 2015-12-16 2020-05-12 Dell Products L.P. Method and system for forming compute clusters using block chains
CN115391749A (zh) * 2016-02-23 2022-11-25 区块链控股有限公司 使用分布式散列表和区块链保护计算机软件的方法及系统
CN107133086B (zh) 2016-02-29 2020-09-04 阿里巴巴集团控股有限公司 基于分布式系统的任务处理方法、装置和系统
CN109076097B (zh) * 2016-03-14 2021-06-29 电子湾有限公司 用于委托内容处理的系统和方法
RU2634184C2 (ru) * 2016-03-28 2017-10-24 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Способ верификации безопасного распределения пользовательских задач по узлам грид-системы
EP3373216A1 (de) * 2016-04-18 2018-09-12 Afiniti Europe Technologies Limited Verfahren zum bewerten von paarungsstrategien in einem kontaktcentersystem
RU2628923C1 (ru) * 2016-05-20 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки
CN106874320A (zh) * 2016-06-20 2017-06-20 阿里巴巴集团控股有限公司 分布式流式数据处理的方法和装置
CN109690516A (zh) * 2016-09-09 2019-04-26 传感器有限公司 一种向用户提供产品和/或服务而不损害其隐私的基于软件的开关
US10951521B2 (en) * 2017-09-01 2021-03-16 Maxlinear, Inc. Method for scheduling a computational task, a method for processing a computational task, a computer readable storage medium, a computer program, a residential gateway, and a server
CN108829508B (zh) * 2018-03-30 2020-10-27 北京趣拿信息技术有限公司 任务处理方法和装置
CN108509798A (zh) * 2018-03-31 2018-09-07 河南牧业经济学院 一种计算机软件分析系统
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2714602C1 (ru) * 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
CN109976912A (zh) * 2019-03-27 2019-07-05 湖南理工学院 一种基于fpga的分布式计算的实现方法及系统
US11979334B2 (en) * 2019-07-22 2024-05-07 International Business Machines Corporation Internet activity compartmentalization
CN110798454B (zh) * 2019-10-18 2020-10-27 中国科学院信息工程研究所 一种基于攻击组织能力评估对攻击进行防御的方法及系统
US11144546B2 (en) * 2020-02-13 2021-10-12 International Business Machines Corporation Dynamically selecting a data access path to improve query performance
CN111711598B (zh) * 2020-04-23 2022-07-05 中国电子科技网络信息安全有限公司 一种面向大规模ssl/tls加密会话流的敏感数据检测系统
CN112414473A (zh) * 2020-12-04 2021-02-26 合肥科博软件技术有限公司 一种对设备进行点检的方法及点检系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2388727A1 (de) 2010-05-18 2011-11-23 Kaspersky Lab Zao Teamsicherheit für Informationsvorrichtungen

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4964077A (en) 1987-10-06 1990-10-16 International Business Machines Corporation Method for automatically adjusting help information displayed in an online interactive system
US5522070A (en) 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
US5388198A (en) 1992-04-16 1995-02-07 Symantec Corporation Proactive presentation of automating features to a computer user
JP2543324B2 (ja) 1993-03-23 1996-10-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タアプリケ―ションソフトウェアの機能をユ―ザに提示する方法及びコンピュ―タシステム
SG94330A1 (en) 1999-07-24 2003-02-18 Kent Ridge Digital Labs Mobile computing system and method for a network
US6785822B1 (en) 1999-09-16 2004-08-31 International Business Machines Corporation System and method for role based dynamic configuration of user profiles
US8688797B2 (en) * 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6665805B1 (en) 1999-12-27 2003-12-16 Intel Corporation Method and apparatus for real time monitoring of user presence to prolong a portable computer battery operation time
US8463839B2 (en) 2000-03-28 2013-06-11 Cybernet Systems Corporation Distributed computing environment
US7003547B1 (en) * 2000-03-30 2006-02-21 United Devices, Inc. Distributed parallel processing system having capability-based incentives and associated method
US20110173247A1 (en) 2000-03-30 2011-07-14 Hubbard Edward A Massively Distributed Processing System Architecture, Scheduling, Unique Device Identification and Associated Methods
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
JP2002024194A (ja) 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
US6650322B2 (en) 2000-12-27 2003-11-18 Intel Corporation Computer screen power management through detection of user presence
US7243373B2 (en) * 2001-07-25 2007-07-10 Mcafee, Inc. On-access malware scanning
US7487348B2 (en) 2003-04-25 2009-02-03 Gateway Inc. System for authenticating and screening grid jobs on a computing grid
US7962914B2 (en) 2003-11-25 2011-06-14 Emc Corporation Method and apparatus for load balancing of distributed processing units based on performance metrics
CN1556615A (zh) * 2003-12-30 2004-12-22 港湾网络有限公司 分布式网管平台的安全分权管理系统
US7752629B2 (en) * 2004-05-21 2010-07-06 Bea Systems Inc. System and method for application server with overload protection
US7810099B2 (en) * 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
US8037527B2 (en) 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US8438499B2 (en) * 2005-05-03 2013-05-07 Mcafee, Inc. Indicating website reputations during user interactions
US7891001B1 (en) 2005-08-26 2011-02-15 Perimeter Internetworking Corporation Methods and apparatus providing security within a network
CN1776703A (zh) 2005-12-12 2006-05-24 陆舟 基于软件保护装置的软件分发方法
US20090210244A1 (en) 2006-02-04 2009-08-20 Tn20 Incorporated Trusted acquaintances network system
US7770114B2 (en) 2006-03-03 2010-08-03 Cadcorporation.Com Inc. System and method for using virtual environments
US20070233827A1 (en) 2006-03-29 2007-10-04 Mcknight Lee W Ad hoc distributed resource coordination for a wireless grid
US7930749B2 (en) * 2006-05-11 2011-04-19 Eacceleration Corp. Accelerated data scanning
KR100831361B1 (ko) 2006-06-09 2008-05-21 (주)내셔널그리드 그리드 컴퓨팅을 이용한 이메일 필터링 시스템 및 방법
US20070300312A1 (en) 2006-06-22 2007-12-27 Microsoft Corporation Microsoft Patent Group User presence detection for altering operation of a computing system
US7555621B1 (en) 2006-08-01 2009-06-30 Kaspersky Lab, Zao Disk access antiblocking system and method
US7657493B2 (en) 2006-09-28 2010-02-02 Microsoft Corporation Recommendation system that identifies a valuable user action by mining data supplied by a plurality of users to find a correlation that suggests one or more actions for notification
US20080091613A1 (en) 2006-09-28 2008-04-17 Microsoft Corporation Rights management in a cloud
US20080109245A1 (en) 2006-11-03 2008-05-08 Sezwho Inc. Method and system for managing domain specific and viewer specific reputation on online communities
JP4606404B2 (ja) * 2006-12-01 2011-01-05 富士通株式会社 計算資源管理プログラムおよび計算資源管理装置
US20080141335A1 (en) 2006-12-08 2008-06-12 Novell, Inc. Provisioning software with policy-appropriate capabilities
US8312536B2 (en) 2006-12-29 2012-11-13 Symantec Corporation Hygiene-based computer security
US20080195597A1 (en) * 2007-02-08 2008-08-14 Samsung Electronics Co., Ltd. Searching in peer-to-peer networks
US8150904B2 (en) * 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
EP2145362A4 (de) 2007-04-23 2012-01-25 Scrutiny Inc Datenverarbeitungs-infrastruktur
US8762984B2 (en) 2007-05-31 2014-06-24 Microsoft Corporation Content distribution infrastructure
US8205208B2 (en) * 2007-07-24 2012-06-19 Internaitonal Business Machines Corporation Scheduling grid jobs using dynamic grid scheduling policy
US9811849B2 (en) 2007-09-28 2017-11-07 Great-Circle Technologies, Inc. Contextual execution of automated workflows
JP4936551B2 (ja) * 2007-11-16 2012-05-23 キヤノン株式会社 管理装置、管理方法、及びコンピュータプログラム
US20090178131A1 (en) 2008-01-08 2009-07-09 Microsoft Corporation Globally distributed infrastructure for secure content management
CN100538650C (zh) * 2008-02-01 2009-09-09 清华大学 基于组件的网格中间件互交互方法
US8196175B2 (en) 2008-03-05 2012-06-05 Microsoft Corporation Self-describing authorization policy for accessing cloud-based resources
US8127038B2 (en) 2008-03-11 2012-02-28 International Business Machines Corporation Embedded distributed computing solutions
US20090254998A1 (en) 2008-04-07 2009-10-08 Plura Processing, Lp Web-browser based grid computing system
JP4560115B2 (ja) 2008-04-10 2010-10-13 株式会社日立製作所 配布管理方法、配布管理システム、および配布管理サーバ
US8443363B1 (en) * 2008-05-30 2013-05-14 Symantec Corporation Coordinated virtualization activities
US8200896B2 (en) * 2008-06-06 2012-06-12 Microsoft Corporation Increasing remote desktop performance with video caching
WO2009155574A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20090328034A1 (en) 2008-06-25 2009-12-31 International Business Machines Corporation Establishing a bi-directional grid computing network
US8238256B2 (en) 2008-09-08 2012-08-07 Nugent Raymond M System and method for cloud computing
US7636764B1 (en) 2008-09-29 2009-12-22 Gene Fein Cloud resource usage in data forwarding storage
EP2180444A1 (de) 2008-10-22 2010-04-28 Deutsche Telekom AG System und Verfahren zur Bestimmung einer anonymen auf die Benutzer fokussierten Reputation über Communitys hinweg
US8010085B2 (en) 2008-11-19 2011-08-30 Zscaler, Inc. Traffic redirection in cloud based security services
US20110231934A1 (en) 2008-11-25 2011-09-22 Agent Smith Pty Ltd Distributed Virus Detection
US9210173B2 (en) 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
US8291414B2 (en) * 2008-12-11 2012-10-16 International Business Machines Corporation Shared resource service provisioning using a virtual machine manager
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8117317B2 (en) 2008-12-31 2012-02-14 Sap Ag Systems and methods for integrating local systems with cloud computing resources
US20100179856A1 (en) 2009-01-14 2010-07-15 Yahoo! Inc. Conditional incentive presentation, tracking and redemption
US8621553B2 (en) 2009-03-31 2013-12-31 Microsoft Corporation Model based security for cloud services
US20100287280A1 (en) 2009-05-08 2010-11-11 Gal Sivan System and method for cloud computing based on multiple providers
US20110035248A1 (en) 2009-08-07 2011-02-10 Loic Juillard Distributed Service Platform Computing with a Guaranteed Quality of Service
RU91202U1 (ru) * 2009-10-01 2010-01-27 ЗАО "Лаборатория Касперского" Система обнаружения неизвестных вредоносных программ
RU92551U1 (ru) 2009-11-23 2010-03-20 Закрытое акционерное общество "Лаборатория Касперского" Система тестирования и исправления тестовых баз данных антивирусного приложения
US8233408B2 (en) 2009-12-10 2012-07-31 Wei Lu Mobile cloud architecture based on open wireless architecture (OWA) platform
US8627309B2 (en) 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
RU101229U1 (ru) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" Система обновления, основанная на различиях версий
WO2011117243A1 (en) 2010-03-23 2011-09-29 Sony Corporation Reducing power consumption by masking a process from a processor performance management system
JP5809238B2 (ja) 2010-04-16 2015-11-10 シスコ テクノロジー,インコーポレイテッド 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法
US8397087B1 (en) * 2010-05-31 2013-03-12 Symantec Corporation Systems and methods for individually managing the power usage of software applications
RU2454714C1 (ru) 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
US8949857B2 (en) * 2011-07-15 2015-02-03 Microsoft Corporation Value provider subscriptions for sparsely populated data objects
US20130074088A1 (en) * 2011-09-19 2013-03-21 Timothy John Purcell Scheduling and management of compute tasks with different execution priority levels
US8799365B2 (en) * 2011-09-28 2014-08-05 Verizon Patent And Licensing Inc. Broker-based management of mobile devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2388727A1 (de) 2010-05-18 2011-11-23 Kaspersky Lab Zao Teamsicherheit für Informationsvorrichtungen

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ISBN: 978-0-73-842796-6
Luis Ferreira et al. „Introduction to Grid Computing with Globus", ibm.com/redbooks, 1 September 2003
R. Y. Camargo et al., „Grid: An Architectural Pattern", the 11th Conference on Pattern Languages of Programs (PLoP’2004), Monticello, USA, 12 Sept. 2004

Also Published As

Publication number Publication date
US9582335B2 (en) 2017-02-28
US20130139165A1 (en) 2013-05-30
CN103023983B (zh) 2015-08-26
CN103023983A (zh) 2013-04-03
RU2011147540A (ru) 2013-05-27
RU2494453C2 (ru) 2013-09-27
EP2597569A1 (de) 2013-05-29

Similar Documents

Publication Publication Date Title
DE202012013609U1 (de) System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben
JP6522707B2 (ja) マルウェアに対処するための方法及び装置
CN102932323B (zh) 对计算机网络中安全相关事故的自动分析
DE112010003454B4 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
DE202013012765U1 (de) System zum Schutz von Cloud-Diensten vor nicht autorisiertem Zugriff und Schadsoftware-Angriff
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
DE202013102441U1 (de) System zur Überprüfung digitaler Zertifikate
US11777981B1 (en) Risk scoring based on compliance verification test results in a local network
US8635079B2 (en) System and method for sharing malware analysis results
DE112012004114T5 (de) Bewerten des sozialen Risikos aufgrund des von verbundenen Kontakten ausgehenden Gefahrenpotenzials
DE202012013734U1 (de) System zum Filtern von Spam-Nachrichten auf der Grundlage derBenutzerreputation
DE102011056502A1 (de) Verfahren und Vorrichtung zur automatischen Erzeugung von Virenbeschreibungen
DE202010018642U1 (de) System zur Erfassung zuvor unbekannter Schadsoftware
DE112020002552T5 (de) System und verfahren für eine siem-regel-sortierung und bedingte ausführung
DE112021005862T5 (de) Selbstprüfende blockchain
US11831670B1 (en) System and method for prioritizing distributed system risk remediations
DE112021001639T5 (de) Schutz von computeranlagen vor bösartigen angriffen
DE112020004992T5 (de) Aufrechterhalten der sicherheit eines systems
DE112021004115T5 (de) Sicherheitssystem für eine Segmentierung von Computerdatei-Metadaten
US9779237B2 (en) Detection of non-volatile changes to a resource
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
JP6441742B2 (ja) セキュリティレベル管理システム、セキュリティレベル管理装置、セキュリティレベル管理方法およびプログラム
RU2571725C2 (ru) Система и способ управления параметрами приложений на компьютерных устройствах пользователя
CN107562930B (zh) 操作行为数据的处理方法及装置
WO2023079186A1 (de) Verfahren und zugehörige computersysteme zur sicherung der integrität von daten

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: V. FUENER EBBINGHAUS FINCK HANO, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R151 Utility model maintained after payment of second maintenance fee after six years
R207 Utility model specification
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right