-
GEBIET DER ERFINDUNG
-
Ausführungsformen
der Erfindung betreffen das Gebiet der Datenverarbeitung und insbesondere das
Klassifizieren des Verhaltens einer Anwendung auf der Grundlage
ihres Datenzugriffsmusters.
-
HINTERGRUND DER ERFINDUNG
-
Angestellte
einer modernen Organisation haben oft Zugriff auf Dateien mit Informationen,
die verschiedene bedeutende Geschäftsaspekte der Organisation
betreffen. Diese Informationen können
Daten über
Kunden (oder Patienten), Verträge,
Lieferungen, Vorräte,
Angestellte, Herstellung oder dergleichen umfassen. Bestehende Sicherheitstechniken
durchsuchen typischerweise Daten beim Verlassen eines Endpunktsystems,
um einen Verlust sensibler Information zu verhindern. Das oben genannte Durchsuchen
beruht auf der Fähigkeit
des Endpunktsystems, von einem Programm ausgegebene Daten abzufangen
und zu analysieren. In einigen Fällen kann
jedoch das Format der von dem Endpunktsystem abgefangenen Daten
unbekannt sein oder ein Programm kann die Daten vor dem Ausgeben
verschlüsseln.
Zusätzlich
kann das Endpunktsystem von einem Programm ausgegebene Daten nicht
immer abfangen.
-
Ein
Endpunktsystem kann auf die obigen Beschränkungen eingehen, indem bestimmte
Anwendungen daran gehindert werden, auf vertrauliche Informationen
enthaltende Dateien zuzugreifen. Zum Beispiel kann ein Endpunktsystem
den Zugriff auf vertrauliche Informationen enthaltende Dateien durch
Anwendungen, wie zum Beispiel CD- oder DVD-Brennanwendungen, Kompressions-
oder Fingerabdruckanwendungen etc. blockieren. Einen Dateizugriff
einer Anwendung zu blockieren, führt
jedoch einen Fehler erster Art ein. Insbesondere greift eine Anwendung
nicht immer mit der Absicht auf eine Datei zu, die Dateidaten zu manipulieren.
Stattdessen kann die Anwendung nur die Metadaten einer Datei durchsuchen,
ohne die Datei zum Betrachten oder Editieren zu öffnen (z. B. um die Dateieigenschaften
zu Zwecken der Verzeichnisdarstellung etc. zu ermitteln).
-
KURZFASSUNG DER ERFINDUNG
-
Es
wird ein Verfahren und eine Vorrichtung zum Klassifizieren eines
Verhaltens einer Anwendung auf der Grundlage ihrer Datenzugriffsmuster beschrieben.
In einem Ausführungsbeispiel
umfasst das Verfahren ein Überwachen
von einer Anwendung zugeordneter Dateizugriffsereignissen, und ein Ermitteln,
ob wenigstens eines der Dateizugriffsereignisse einen Versuch der
Anwendung angibt, Daten einer Datei zu manipulieren. Wenn wenigstens
ein Dateizugriffsereignis angibt, dass die Anwendung versucht, die
Daten in der Datei zu manipulieren, dann wird veranlasst, dass wenigstens eine
Maßnahme
durchgeführt
wird.
-
Kurze Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung wird vollständiger aus der nachstehend
angegeben detaillierten Beschreibung und aus den beigefügten Zeichnungen
zu verschiedenen Ausführungsbeispielen
der Erfindung verstanden, die jedoch nicht dazu dienen sollen, die Erfindung
auf spezielle Ausführungsbeispiele
zu beschränken,
sondern sind zur Erklärung
und dem Verständnis
angegeben.
-
1 veranschaulicht
eine beispielhafte Systemarchitektur, in der Ausführungsformen
der Erfindung laufen können.
-
2 und 3 veranschaulichen
beispielhafte Netzwerkarchitekturen, in denen Ausführungsbeispiele
der Erfindung laufen können.
-
4 ist
ein Blockdiagramm eines Ausführungsbeispiels
einer Überwachungsanwendung.
-
5 ist
ein Flussdiagramm eines Ausführungsbeispiels
eines Verfahrens zum Klassifizieren des Verhaltens einer Anwendung
auf der Grundlage ihrer Dateizugriffsmuster.
-
6 ist
ein Flussdiagramm eines Ausführungsbeispiels
eines Verfahrens zum Analysieren eines Datenzugriffsmusters einer
Anwendung.
-
7 ist
ein Blockdiagramm eines beispielhaften Computersystems, das ein
oder mehrere der hier beschriebenen Operationen durchführen kann.
-
DETAILLIERTE BESCHREIBUNG
DER VORLIEGENDEN ERFINDUNG
-
Es
wird ein System und ein Verfahren zum Klassifizieren eines Verhaltens
einer Anwendung auf der Grundlage ihrer Datenzugriffsmuster beschrieben.
Eine Anwendung kann zum Beispiel eine CD-Brennanwendung, eine DVD-Brennanwendung, eine
Kompressionsanwendung (z. B. zip-Kompression), ein Browser (z. B.
Internet Explorer®), eine Cloud-Speicheranwendung
(z. B. Live Mesh Dienst) etc. sein. In einem Ausführungsbeispiel
werden einer Anwendung zugeordnete Dateizugriffsereignisse überwacht,
um zu ermitteln, ob wenigstens eines dieser Dateizugriffsereignisse
einen Versuch der Anwendung angibt, Daten der Datei zu manipulieren. Die
Ermittlung kann zum Beispiel auf Leseblockgrößen der Dateizugriffsereignisse,
Lese-Offsets der Dateizugriffsereignisse, der Anzahl an Dateizugriffsereignissen
während
eines spezifizierten Zeitintervalls oder auf eine beliebige Kombination
der oben genannten Faktoren basieren. Die Dateidatenmanipulation
kann im Gegensatz zur Metadatenmanipulation zum Beispiel ein Editieren
von Dateidaten, ein Transformieren von Dateidaten, ein Schreiben
von Dateidaten auf ein entfernbares Speichermedium etc. umfassen.
-
Wenn
wenigstens ein Dateizugriffsereignis angibt, dass die Anwendung
versucht die Dateidaten zu manipulieren, wird eine einer derartigen
Manipulation zugeordnete Maßnahme
ausgelöst.
Eine beispielhafte ausgelöste
Maßnahme kann
ein Durchsuchen der Dateidaten nach vertraulicher Information umfassen,
und nach einem Detektieren vertraulicher Information Blockieren
des Zugriffs auf die Dateidaten durch die Anwendung und/oder Berichten
des Zugriffs der Anwendung auf die Dateidaten. Wenn anderenfalls
die Dateizugriffsereignisse angeben, dass die Anwendung versucht,
Dateimetadaten im Gegensatz zu Dateidaten zu durchsuchen, werden
die Dateizugriffsereignisse ignoriert.
-
In
der folgenden Beschreibung werden zahlreiche Details dargelegt.
Es ist jedoch für
einen Fachmann ersichtlich, dass die vorliegende Erfindung ohne
diese speziellen Details ausgeführt
werden kann. In einigen Fällen
werden bekannte Strukturen und Vorrichtungen eher in einer Blockdiagrammform gezeigt
anstatt in allen Einzelheiten, um eine Verschleierung der vorliegenden
Erfindung zu vermeiden.
-
Einige
Abschnitte der folgenden detaillierten Beschreibung werden in Form
von Algorithmen und symbolischen Wiedergaben von Operationen auf
Datenbits in einem Computerspeicher dargelegt. Diese algorithmischen
Beschreibungen und Darstellungen sind die Mittel von Fachleuten
auf dem Gebiet der Datenverarbeitung, um das Wesentliche ihrer Arbeit anderen
Fachleuten am effektivsten zu vermitteln. Ein Algorithmus wird hier,
und im Allgemeinen, als eine selbstkonsistente Sequenz von Schritten
aufgefasst, die zu einem gewünschten
Ergebnis führt.
Die Schritte sind die, die physische Manipulationen physischer Größen erfordern.
Gewöhnlich,
aber nicht notwendigerweise, nehmen diese Größen die Form elektrischer oder
magnetischer Signale an, die gespeichert, übertragen, kombiniert, verglichen
und auf andere Weise manipuliert werden. Es hat sich bisweilen als
geeignet erwiesen, prinzipiell aus Gründen gebräuchlicher Verwendung diese
Signale als Bits, Werte, Elemente, Symbole, Buchstaben, Ausdrücke, Zahlen
oder dergleichen zu bezeichnen.
-
Es
soll jedoch berücksichtigt
werden, dass alle diese und ähnliche
Ausdrücke
mit den geeigneten physikalischen Größen zu verknüpfen sind
und lediglich zweckmäßige auf
diese Größen angewandte
Kennzeichnungen sind. Sofern nicht speziell anders als aus der folgenden
Erläuterung
ersichtlich angegeben, ist es bevorzugt, dass in der ganzen Beschreibung
Erörterungen
Ausdrücke
wie zum Beispiel ”Verarbeiten”, ”Rechnen”, ”Berechnen”, ”Ermitteln”, ”Anzeigen” oder dergleichen
verwendet werden, die sich auf Maßnahmen und Prozesse eines Computersystems
oder einer ähnlichen
elektronischen Datenverarbeitungsvorrichtung beziehen, die als physikalische
(z. B. elektronische) Größen in den Computersystemregistern
und -speichern manipuliert und in andere Daten transformiert werden,
die in ähnlicher
Weise als physikalische Größen in Computersystemspeichern
oder -registern oder anderen solchen Informationsspeichern, Übertragungs-
oder Anzeigevorrichtungen dargestellt werden.
-
Die
vorliegende Erfindung betrifft außerdem eine Vorrichtung zum
Durchführen
der hier beschriebenen Operationen. Diese Vorrichtung kann speziell für die erforderlichen
Zwecke ausgelegt sein, oder sie kann einen Mehrzweckcomputer umfassen,
der wahlweise von einem auf dem Computer gespeicherten Computerprogramm
aktiviert oder neu konfiguriert werden kann. Ein derartiges Computerprogramm
kann auf einem computerlesbaren Speichermedium gespeichert sein,
wie beispielsweise, aber nicht beschränkend, einen beliebigen Typ
von Disk einschließlich
Disketten, optischen Disks, CD-ROMs und magnetooptische Disks, Festspeicher
(ROMs), Schreiblesespeicher (RAMs), EPROMs, EEPROMs, magnetische
oder optische Karten oder jedem anderen Medientyp gespeichert sein,
der zum Speichern elektronischer Anweisungen geeignet ist.
-
Die
hier vorgestellten Algorithmen und Anzeigen beziehen sich nicht
von sich aus auf irgendeinen speziellen Computer oder eine andere
Vorrichtung. Verschiedene andere Mehrzwecksysteme können mit
Programmen gemäß der hier
beschriebenen Lehre verwendet werden oder es kann sich als geeignet
erweisen, eine spezialisiertere Vorrichtung zu konstruieren, die
die erforderlichen Verfahrensschritte durchführt. Die erforderliche Struktur
für verschiedene
dieser Systeme geht aus der folgenden Beschreibung hervor. Außerdem wird
die vorliegende Erfindung nicht in Bezug auf eine einzelne Programmiersprache
beschrieben. Man erkennt, dass verschiedene Programmiersprachen
verwendet werden können,
um die Lehren der hier beschriebenen Erfindung zu implementieren.
-
1 ist
ein Blockdiagramm einer beispielhaften Systemarchitektur 100,
in der Ausführungsbeispiele
der Erfindung laufen können.
Das System 100 umfasst eine Rechenvorrichtung 120,
die ein Personalcomputer (PC), ein Laptop, ein Mobiltelefon, ein
Server oder eine beliebige andere Rechenvorrichtung sein kann. Auf
der Rechenvorrichtung 120 läuft ein Betriebsystem (OS) 120,
das Hardware und Software der Rechenvorrichtung 102 verwaltet.
Das OS 102 kann beispielsweise Microsoft® Windows® OS,
Linux, Mac OS, Solaris etc. sein. Anwendungen 108, 110 und 112 laufen
auf dem OS 102 und führen verschiedene
Funktionalitäten
durch, die ein Zugreifen auf Dateien 114 umfassen, die
sich auf dem Datenspeicher (z. B. Speicher oder Disklaufwerk) der Rechenvorrichtung 120 befinden.
Die Anwendungen 108 bis 112 können zum Beispiel eine CD-
oder DVD-Brennanwendung 108, eine Kompressionsanwendung 110,
einen Webbrowser 112 etc. umfassen.
-
Eine
Datei 114 kann Metadaten 118 (bekannt als Metainformationen)
und die tatsächlichen
Daten 116 (der übrige
Teil der Datei) umfassen. Die Metainformationen 118 können verschiedene
Dateieigenschaften, wie Format, Titel, Größe, Datum der Erstellung, Datum
der letzten Aktualisierung etc. spezifizieren. Die Anwendungen 108 bis 112 können die
Dateimetainformationen durchsuchen, ohne auf die eigentlichen Daten
der Datei zuzugreifen (z. B. ein Dateiverzeichnis anzuzeigen, zu
ermitteln, ob Hardware der Rechenvorrichtung 210 imstande
ist, eine bestimmte Videodatei anzuzeigen etc.). Alternativ können die
Anwendungen 108 bis 112 die eigentlichen Daten
der Datei lesen, um die Daten zu editieren, die Daten zu verschlüsseln, die
Daten auf ein entfernbares Speichermedium zu schreiben etc. In bestimmen Situationen
ist es wichtig, die Manipulation der Dateidaten durch die Anwendung
von einem Durchsuchen der Dateimetainformationen zu unterscheiden.
Beispielsweise muss ein Datenverlustverhinderungs-(DLP)-System die
CD- oder DVD-Brennanwendung 108 daran hindern können, Dateidaten,
die vertrauliche Informationen enthalten, auf ein entfernbares Speichermedium
zu schreiben, während
es der Anwendung 108 erlaubt, die Dateimetainformationen
zu durchsuchen, um ein Dateiverzeichnis darstellen zu können. Auf ähnliche
Weise muss ein DLP-System den Browser 112 daran hindern
können,
die Bilddatei zum Editieren zu öffnen,
während es
dem Browser 112 erlaubt, die Dateimetainformationen zu
durchsuchen, um zu ermitteln, ob die Hardware der Datenverarbeitungsvorrichtung 120 die Bilddaten
anzeigen kann.
-
In
einem Ausführungsbeispiel
hostet die Rechenvorrichtung 120 eine Überwachungsanwendung 106,
die den Anwendungen 108 bis 112 (”verdächtige Anwendungen”) zugeordnete
Dateizugriffsereignisse überwacht,
um zu ermitteln, ob diese verdächtige
Anwendungen versuchen, auf die Dateidaten oder die Dateimetainformation
zuzugreifen. Insbesondere kann die Überwachungsanwendung 106 mit
einem Filtertreiber 104 kommunizieren, um die Ausführung der
verdächtigen
Anwendungen zu detektieren und den verdächtigen Anwendungen zugeordnete
Dateizugriffsereignisse zu empfangen. In einem Ausführungsbeispiel
fungiert der Filtertreiber 104 als Teil des OS 102,
um ermitteln zu können,
welche Anwendungen mit der Ausführung
starten (z. B. durch Abfangen von OS-Aufrufen zur Prozesserzeugung),
und um E/A-Anfragen von ausführenden
Anwendungen zu sehen (z. B. unter Verwendung von Dateisystemhooks,
um alle Datei-E/A auf dem System zu sehen und E/A-Anfragepakete (IRPs)
zu empfangen). Der Filtertreiber 104 kann dann den verdächtigen
Anwendungen 108 bis 112 zugeordnete Dateizugriffsereignisse
an die Überwachungsanwendung 106 senden. Ein
Dateizugriffsereignis kann zum Beispiel Informationen umfassen,
die die zugegriffene Datei, die auf die Datei zugreifende Anwendung,
die von der Anwendung angefragte Leseblockgröße und/oder Lese-Offset etc.
identifizieren.
-
Nach
Empfang einer Dateizugriffsanfrage kann die Überwachungsanwendung 106 das
Ereignis analysieren, um zu ermitteln, ob es einem Metainformationslesemuster
oder einem Dateidatenlesemuster folgt. In einem Ausführungsbeispiel
führt die Überwachungsanwendung 106 diese
Analyse unter Verwendung eines Leseblockgrößen-Schwellwerts durch. Wenn
die Leseblockgröße in dem
empfangenen Dateizugriffsereignis den Schwellwertparameter überschreitet,
ermittelt die Überwachungsanwendung 106,
dass das empfangene Dateizugriffsereignis einem Dateidatenlesemuster
folgt. Wenn andererseits die Leseblockgröße in dem empfangenen Dateizugriffsereignis
unter dem Schwellwertparameter liegt, ermittelt die Überwachungsanwendung 106, dass
das empfangene Dateizugriffsereignis einem Metainformationslesemuster
folgt. In einem Ausführungsbeispiel
kann die Überwachungsanwendung 106 einen
Lese-Offset eines empfangenen Dateizugriffsereignisses mit einem
oder mehreren vorbestimmten Offsetparametern vergleichen, um das
Zugriffsmuster der verdächtigen
Anwendung zu prüfen. Der
Leseblockgrößen-Schwellwert
und die vorbestimmten Lese-Offsetparameter können für alle verdächtigen Anwendungen gleich
oder anwendungsspezifisch sein. Der Leseblockgrößen-Schwellwert und die vorbestimmten
Lese-Offsetparameter können
auf der Grundlage des Wissens weit verbreiteter Systembibliotheken
abgeleitet werden oder empirisch durch Beobachten des Verhaltens
einzelner Anwendungen ermittelt werden. Um zum Beispiel die Datei-Öffnen-Dialogbox
anzuzeigen und einem Benutzer zu ermöglichen, die Eigenschaften
aufgelisteter Dateien anzusehen, muss die CD-/DVD-Brennanwendung 108 eine
bestimmte vorgesehene DLL (dynamische Bibliothek) von Windows-OS
unter Verwendung von Blocklesevorgängen mit 2–64 Byte, 256 Byte und 512
Byte lesen. Wenn die CD-/DVD-Brennanwendung 108 jedoch
Dateidaten auf ein entfernbares Speichermedium schreibt, liest sie
Daten in Blockgrößen von
4096 Byte oder größer. In
einem weiteren Beispiel muss ein Webbrowser Metainformationen von
einer avi-Datei lesen, um zu bestimmen, ob die Hardware der Datenverarbeitungsvorrichtung 120 die
avi-Datei anzeigen kann. Avi-Metainformationen sind mit einem Offset
von 32 Byte vom Dateikopf und in einer Größe von 52 Byte gespeichert.
In diesem Fall wird der Webbrowser die Blockgröße von 52 Byte und den Offset
von 52 Byte verwenden. Wenn alternativ der Webbrowser versucht,
die avi-Datei zum Ansehen und Editieren zu öffnen, wird er Daten in Blockgrößen von
4096 Byte lesen.
-
In
einem Ausführungsbeispiel
verfolgt die Überwachungsanwendung 106 auch
die Anzahl von Dateizugriffsereignissen einer verdächtigen
Anwendung während
eines Zeitintervalls. Wenn diese Anzahl einen Schwellwert überschreitet
(d. h. die verdächtige
Anwendung erzeugt häufig
Dateizugriffsanfragen), entscheidet die Überwachungsanwendung 106,
dass die verdächtige
Anwendung versucht, die Daten der Datei zu manipulieren. Die Schwellwertlesezahl
kann empirisch auf der Grundlage des Verhaltens einzelner Anwendungen
ermittelt werden und kann dieselbe für alle Anwendungen oder unterschiedlich
für wenigstens
einige der Anwendungen sein.
-
Wenn
die Überwachungsanwendung 106 ermittelt,
dass das einer verdächtigen
Anwendung zugeordnete Dateizugriffsereignis einem Metainformationslesemuster
folgt, ignoriert die Überwachungsanwendung 106 dieses
Dateizugriffsereignis. Wenn alternativ die Überwachungsanwendung 106 ermittelt, dass
eine verdächtige
Anwendung versucht, die Dateidaten zu manipulieren, löst sie eine
oder mehrere Maßnahmen
aus, die diesen Versuch der verdächtigen
Anwendung verhindern oder einschränken können. Die Überwachungsanwendung 106 kann
zum Beispiel veranlassen, die Datei nach vertraulichen Informationen
zu durchsuchen, und wenn die Suche vertrauliche Informationen detektiert,
kann der Zugriff der verdächtigen
Anwendung auf die Datei blockiert oder berichtet werden. Diese Maßnahmen
können von
der Überwachungsanwendung 106 selbst
oder von einer mit der Überwachungsanwendung 106 kommunizierenden
DLP-Anwendung durchgeführt werden
und von der Rechenvorrichtung 120 oder von einer anderen
mit der Vorrichtung 120 über ein Netzwerk gekoppelten
(z. B. Lan oder Internet) Rechenvorrichtung gehostet werden.
-
In
einem weiteren Ausführungsbeispiel
ermittelt die Überwachungsanwendung 106 zuerst, welche
Dateien vertrauliche Informationen enthalten und überwacht
und analysiert dann nur Anwendungszugriffe auf die Dateien, die
vertrauliche Informationen enthalten. Wenn die Überwachungsanwendung 106 ermittelt,
dass eine verdächtige
Anwendung nur die Metainformationen einer vertrauliche Informationen
enthaltenden Datei durchsucht, erlaubt die Überwachungsanwendung 106 das
Durchsuchen fortzusetzen. Wenn alternativ die Überwachungsanwendung 106 ermittelt,
dass die verdächtige
Anwendung versucht, die Dateidaten zu lesen, dann löst die Überwachungsanwendung 106 eine
Maßnahme
aus, die diesen Versuch der verdächtigen
Anwendung verhindern, einschränken
oder berichten kann.
-
2 veranschaulicht
eine beispielhafte Netzwerkarchitektur 200, in der Ausführungsbeispiele
der Erfindung laufen können.
Gemäß der Netzarchitektur 200 sind
Clients 212 mit einem Datenspeichersystem 206 über ein
Netzwerk 210 (z. B. ein privates Netzwerk, wie beispielsweise
ein LAN oder ein öffentliches
Netzwerk, wie das Internet) gekoppelt. Jeder Client 212 kann
ein PC, ein Laptop, ein Mobiltelefon, ein persönlicher digitaler Assistent
etc. sein. Das Datenspeichersystem 206 kann zum Beispiel
ein Netzspeicher-(NAS)-System darstellen, das verschiedene Dateien 208 speichert.
-
Jeder
Client 212 hostet Anwendungen 214, die verschiedene
Funktionalitäten,
wie zum Beispiel CD-/DVD-Brennen, zip-Komprimieren, Browsen im Web
etc. durchführen.
Jede dieser verdächtigen
Anwendungen 214 kann auf Dateien 208 zugreifen,
die sich im Datenspeichersystem 206 befinden. Wie oben
erläutert,
können
die verdächtigen
Anwendungen 214 einfach Metainformationen der Dateien 208 durchsuchen
oder auf die tatsächlichen
Dateidaten zugreifen. Eine Überwachungsanwendung 204 arbeitet
auf ähnliche
Weise wie die Überwachungsanwendung 106,
um das Verhalten einer verdächtigen Anwendung 204 auf
der Grundlage ihrer Datenzugriffsmuster zu klassifizieren. In einem
Ausführungsbeispiel
befindet sich die Überwachungsanwendung 202 auf
einem Server 204, der mit den Clients 212 über das
Netz 210 gekoppelt ist, und empfängt den verdächtigen
Anwendungen 214 zugeordnete Dateizugriffsereignisse von
einer Netz-basierten Anwendung, die den Netzverkehr zwischen den
Clients 212 und dem Datenspeichersystem 206 snifft,
oder von einer von dem Datenspeichersystem 206 gehosteten Anwendung.
In einem weiteren Ausführungsbeispiel kann
die Überwachungsanwendung 204 vom
Datenspeichersystem 206 gehostet sein und kann die Dateizugriffsanfragen
der Anwendungen 214 abfangen, wenn sie von dem Datenspeichersystem 206 empfangen
werden.
-
3 veranschaulicht
eine weitere beispielhafte Netzwerkarchitektur 300, in
der Ausführungsbeispiele
der Erfindung laufen können.
Gemäß der Netzwerkarchitektur 300 sind
Clients 308 mit einer Cloud-Speicherdienstvorrichtung 302 über ein
Netzwerk 210 (z. B. ein privates Netz, wie ein LAN oder ein öffentliches
Netz, wie das Internet) gekoppelt. Jeder Client 308 kann
ein PC, ein Laptop, ein Mobiltelefon, ein persönlicher digitaler Assistent
etc. sein. Der Cloud-Speicherdienst 302 stellt die Abgabe
von Datenspeicher an die Clients 308 bereit. In einem Ausführungsbeispiel
stellt der Cloud-Speicherdienst 302 einen Microsoft® Live
Mesh Dienst dar, der den Dateien 312 der Clients 308 erlaubt,
gemeinsam genutzt und synchronisiert zu werden. Wenn die Anwendungen 310 des
Clients 1 zum Beispiel die Dateien 312 des Clients 1 modifizieren,
synchronisiert der Dienst 302 Dateien von Client 2 und
Client 3, um die Dateien von Client 1 abzugleichen.
-
Die
Anwendungen 310 können
Daten der Dateien 312 modifizieren oder sie können alternativ nur
die Metainformationen der Dateien 312 modifizieren. Eine Überwachungsanwendung 304 überwacht von
den Clients 308 empfangene Synchronisationsanfragen und
ermittelt, ob diese Anfragen nur die Metainformationen oder die
Dateidaten selbst betreffen. Wie oben in Bezug auf die Überwachungsanwendung 106 von 1 erläutert, kann
die Überwachungsanwendung 304 diese
Ermittlung auf der Grundlage der Leseblockgrößen, der Lese-Offsets, der
Anzahl von Synchronisationsanfragen pro Zeitintervall oder einer
beliebigen Kombination der obigen genannten Faktoren durchführen. Wenn
eine von einem Client 308 empfangene Anfrage auf eine Synchronisation
von Dateimetainformationen beschränkt ist, ignoriert die Überwachungsanwendung 304 diese Anfrage
und erlaubt ihr fortzufahren. Wenn alternativ die Clientanfrage
eine Transformation von Dateidaten umfasst, löst die Überwachungsanwendung 304 eine
oder mehrere Maßnahmen
aus, wie zum Beispiel ein Durchsuchen der Datei nach vertraulichen Informationen,
und verhindert, dass die Dateidaten synchronisiert werden, wenn
die Datei vertrauliche Informationen enthält.
-
4 ist
ein Blockdiagramm eines Ausführungsbeispiels
einer Überwachungsanwendung 400. Die Überwachungsanwendung 400 kann
optional einen Konfigurator 402 umfassen, der der Überwachungsanwendung 400 erlauben
kann, konfiguriert zu werden (z. B. über eine Benutzerschnittstelle),
um das Dateizugriffsverhalten von bestimmten verdächtigen
Anwendungen zu überwachen.
Zusätzlich
kann der Konfigurator 402 die Überwachungsanwendung 400 konfigurieren,
um bestimmte Parameter für
die Analyse des Dateizugriffsverhaltens von verdächtigen Anwendungen zu analysieren.
Die Parameter können
für alle
verdächtigen
Anwendungen gemeinsam oder speziell für einzelne Anwendungen vorgesehen
sein.
-
Die Überwachungsanwendung 400 kann auch
einen Anwendungsanfragenanalysator 404 und einen Maßnahmenverwalter 406 umfassen.
Der Anwendungsanfragenanalysator 404 kann einer verdächtigen
Anwendung zugeordnete Dateizugriffsereignisse überwachen und das Verhalten
der verdächtigen
Anwendung auf der Grundlage der Dateizugriffsereignisse klassifizieren.
-
Der
Maßnahmenverwalter 406 ignoriert
Dateizugriffsereignisse, die die Absicht der Anwendung angeben,
die Metainformationen der Datei zu durchsuchen. Wenn wenigstens
eines der Dateizugriffsereignisse der Anwendung angibt, dass es
seine Absicht ist, die Daten der Datei zu manipulieren, löst der Maßnahmenverwalter 406 eine
oder mehrere Maßnahmen
aus, die in Reaktion auf ein solches Ereignis durchzuführen sind.
Der Maßnahmenverwalter 406 kann
zum Beispiel veranlassen, dass die Datei nach vertraulichen Informationen
durchsucht wird, und wenn die Datei vertrauliche Informationen enthält, kann
der Zugriff der Anwendung auf die Datei blockiert oder berichtet
werden.
-
5 ist
ein Flussdiagramm eines Ausführungsbeispiels
eines Verfahrens 500 zum Klassifizieren des Verhaltens
einer Anwendung auf der Grundlage ihres Datenzugriffsmusters. Das
Verfahren 500 wird von einer Verarbeitungslogik durchgeführt, die Hardware
(Schaltung, dedizierte Logik etc.), Software (solche, die auf einem
Mehrzweckcomputersystem oder einer dedizierten Maschine läuft) oder
eine Kombination aus beiden umfasst. Das Verfahren 500 kann
von einer Datenverarbeitungsvorrichtung, wie zum Beispiel einer
Rechenvorrichtung 120 von 1, einem
Server 202 von 2 oder einer Cloud-Speicherdienstvorrichtung 302 von 3 ausgeführt werden.
-
Mit
Bezug auf 5 beginnt die Verarbeitungslogik
mit einem Überwachen
von einer Anwendung zugeordneten Dateizugriffsereignissen (Block 502).
Eine Anwendung kann zum Beispiel eine CD-Brennanwendung, eine DVD-Brennanwendung, eine
Kompressionsanwendung (z. B. zip-Kompression), ein Browser (z. B.
Internet Explorer®), eine Cloud-Speicheranwendung
(z. B. Live Mesh Service) etc. sein. Dateizugriffsereignisse können empfangen werden
von: einem Filtertreiber, der als Teil des OS fungiert, das auf
der Rechenvorrichtung läuft,
die die Dateien, auf die von der Anwendung zugegriffen wird, hostet,
von einer netzbasierten Anwendung, die einen Netzverkehr zwischen
einem Client und einem Datenspeichersystem snifft, das die Dateien
hostet, auf die von den Clientanwendungen zugegriffen wird, oder
von einem anderen Modul oder einer Anwendung, die Informationen
erhalten kann, die Dateizugriffsanfragen der Anwendungen betreffen.
-
Bei
Block 504 ermittelt die Verarbeitungslogik, ob wenigstens
eines dieser Dateizugriffsereignisse angibt, dass die Anwendung
versucht, Daten der Datei zu manipulieren. Die Ermittlung kann zum
Beispiel auf Leseblockgrößen der
Dateizugriffsereignisse, Lese-Offsets der Dateizugriffsereignisse,
der Anzahl an Dateizugriffsereignissen während eines spezifizierten
Zeitintervalls oder auf einer beliebigen Kombination der obigen
genannten Faktoren basieren. Die Dateidatenmanipulation kann im
Gegensatz zur Metainformationsdatenmanipulation zum Beispiel ein
Editieren von Dateidaten, Transformieren von Dateidaten, Schreiben
von Dateidaten auf ein entfernbares Speichermedium etc. umfassen.
-
Wenn
wenigstens ein Dateizugriffsereignis angibt, dass die Anwendung
versucht, die Dateidaten zu manipulieren, führt die Verarbeitungslogik
eine einer derartigen Manipulation zugeordnete Maßnahme durch
(Block 506). Eine beispielhafte Maßnahme kann ein Durchsuchen
der Dateidaten nach vertraulichen Informationen und nach Detektierung
vertraulicher Informationen ein Blockieren des Zugriffs auf die Dateidaten
durch die Anwendung und/oder ein Berichten des Anwendungszugriffs
auf die Dateidaten umfassen. Wenn anderenfalls die Dateizugriffsereignisse
angeben, dass die Anwendung versucht, die Dateimetadaten im Gegensatz
zu den Dateidaten zu durchsuchen, ignoriert die Verarbeitungslogik
die Dateizugriffsereignisse (Block 508).
-
In
einem weiteren Ausführungsbeispiel
ermittelt die Verarbeitungslogik zuerst, welche Dateien vertrauliche
Informationen enthalten und berücksichtigt
dann im Block 504 nur jene Dateizugriffsereignisse, die
zu Dateien gehören,
die vertrauliche Informationen enthalten. Wenn die Verarbeitungslogik
ermittelt, dass die Anwendung versucht, nur Metainformationen einer
Datei zu durchsuchen, die vertrauliche Informationen enthält, ignoriert
die Verarbeitungslogik das relevante Dateizugriffsereignis (Block 508). Wenn
alternativ die Verarbeitungslogik ermittelt, dass die Anwendung
versucht, die Dateidaten zu lesen, dann löst die Verarbeitungslogik eine
Maßnahme aus,
die diesen Versuch der verdächtigen
Anwendung verhindern, einschränken
oder berichten kann (Block 506).
-
6 ist
ein Flussdiagramm eines Ausführungsbeispiels
eines Verfahrens zum Analysieren eines Anwendungsdatenzugriffsmusters.
Das Verfahren 600 wird von einer Verarbeitungslogik ausgeführt, die
Hardware (Schaltung, dedizierte Logik etc.), Software (solche, die
auf einem Mehrzweckcomputersystem oder einer dedizierten Maschine)
oder einer Kombination aus beiden umfassen kann. Das Verfahren 600 kann
von einer Rechenvorrichtung, wie zum Beispiel einer Rechenvorrichtung 120 von 1,
einem Server 202 von 2 oder einer Cloud-Speicherdienstvorrichtung 302 von 3 durchgeführt werden.
-
Bezug
nehmend auf 6, beginnt die Verarbeitungslogik
mit einem Empfangen eines einer Anwendung zugeordneten Dateizugriffsereignisses (Block 602).
Das Dateizugriffsereignis kann eine Anwendung, eine von der Anwendung
zugegriffene Datei, die von der Anwendung angefragte Leseblockgröße, und
optional einen von der Anwendung angefragten Lese-Offset identifizieren.
Wie oben erläutert, kann
das Dateizugriffsereignis empfangen werden: von einem Filtertreiber,
der als Teil des OS fungiert, das auf der Rechenvorrichtung läuft, die
die Dateien hostet, auf die von der Anwendung zugegriffen wird, von
einer Netz-basierten
Anwendung, die den Verkehr zwischen einem Client und einem Datenspeichersystem
snifft, das die Dateien hostet, auf die von den Clientanwendungen
zugegriffen wird, oder von einem beliebigen anderen Modul oder einer
Anwendung, die Dateizugriffsanfragen der Anwendung betreffende Information
erhalten kann.
-
Bei
Block 604 ermittelt die Verarbeitungslogik die angefragte
Leseblockgröße durch
Parsen der Informationen der Dateizugriffsereignisse. Bei Block 606 ermittelt
die Verarbeitungslogik, ob die angefragte Blockgröße ein Dateidatenlesemuster
angibt. Wenn dies der Fall ist, löst die Verarbeitungslogik eine
oder mehrere DLP-Maßnahmen
aus (Block 614). Wenn nicht, kann die Verarbeitungslogik
in einem Ausführungsbeispiel
ferner prüfen,
dass das Dateizugriffsereignis einem Metainformationslesemuster
folgt, indem sie einen angefragten Lese-Offset mit vorbestimmten
Lese-Offsets vergleicht (Block 607). Wenn der angefragte
Lese-Offset mit einem vorbestimmten Lese-Offset übereinstimmt, geht die Verarbeitungslogik
weiter zu Block 608. Wenn nicht, löst die Verarbeitungslogik eine
oder mehrere DLP-Maßnahmen
aus (Block 614).
-
Bei
Block 608 inkrementiert die Verarbeitungslogik den Ereignisanzahlparameter.
Wenn der resultierende Ereignisanzahlparameter einen Anzahlschwellwert überschreitet
(Block 610), löst
die Verarbeitungslogik eine oder mehrere DLP-Maßnahmen
aus (Block 614). Alternativ ignoriert die Verarbeitungslogik
das Dateizugriffsereignis (Block 612).
-
7 veranschaulicht
ein Schaubilddarstellung, die eine Maschine in der beispielhaften
Form eines Computersystems 700 zeigt, in dem ein Satz von Anweisungen
ausgeführt
werden kann, um die Maschine zu veranlassen, eine oder mehrere der
hier erläuterten
Methodologien auszuführen.
In alternativen Ausführungsbeispielen
kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet,
einem Extranet oder dem Internet verbunden sein (z. B. vernetzt).
-
Die
Maschine kann unter der Aufsicht eines Servers oder einer Clientmaschine
in einer Client-Server-Netzumgebung oder als eine Peer-Maschine
in einer Peer-to-Peer-(oder
verteilten)-Netzumgebung laufen. Die Maschine kann ein Personalcomputer
(PC), ein Tablet-PC, eine Set-Top-Box (STB), ein persönlicher
digitaler Assistent (PDA), ein Mobiltelefon, eine Webanwendung,
ein Server, ein Netzwerkrouter, ein Switch oder Bridge, oder eine
beliebige andere Maschine sein, die einen Satz von Anweisungen bzw.
Befehlssatz (sequentiell oder auf andere Weise) ausführen kann,
die für
diese Maschine zu ergreifende Maßnahmen spezifizieren. Ferner
ist, da nur eine einzelne Maschine abgebildet ist, der Ausdruck ”Maschine” auch so
zu verstehen, dass er eine Sammlung von Maschinen umfasst, die einzeln oder
gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um
eine oder mehrere der hier erläuterten
Methodologien durchzuführen.
-
Das
beispielhafte Computersystem 700 umfasst eine Verarbeitungsvorrichtung
(Prozessor) 702, einen Hauptspeicher 704 (z. B.
Lesespeicher (ROM), Flash-Speicher,
dynamischer Schreiblesespeicher (DRAM), wie zum Beispiel synchrones
DRAM (SDRAM) oder Rambus DRAM (RDRAM), etc.), einen statischen Speicher 706 (z.
B. Flash-Speicher, statischer Schreiblesespeicher (SRAM), etc.)
und eine Datenspeichervorrichtung 708, die miteinander über einen
Bus 730 kommunizieren.
-
Der
Prozessor 702 stellt eine oder mehrere Mehrzweckverarbeitungsvorrichtung,
wie zum Beispiel einen Mikroprozessor, eine zentrale Verarbeitungseinheit
oder dergleichen dar. Insbesondere kann der Prozessor 702 ein
Mikroprozessor mit komplexem Befehlssatz (CISC), ein Mikroprozessor
mit reduziertem Befehlssatz (RISC), ein Mikroprozessor für sehr lange
Befehlssätze
(VLIW) oder ein Prozessor sein, der andere Befehlssätze implementiert
oder Prozessoren, die eine Kombination von Befehlssätzen implementieren.
Der Prozessor 702 kann auch eine oder mehrere Verarbeitungsvorrichtungen
für spezielle
Zwecke sein, wie zum Beispiel einer anwendungsspezifischen integrierten
Schaltung (ASIC), einem anwendungsprogrammierbaren Logikgatter (FPGA),
einem digitalen Signalprozessor (DSP), einem Netzprozessor oder
dergleichen. Der Prozessor 702 ist ausgelegt, die Verarbeitungslogik 726 zum
Durchführen
der hier beschriebenen Operationen und Schritte auszuführen.
-
Das
Computersystem 700 kann ferner eine Netzschnittstellenvorrichtung 708 umfassen.
Das Computersystem 700 kann außerdem eine Bildausgabeeinheit 710 (z.
B. ein Flüssigkristalldisplay (LCD)
oder eine Kathodenstrahlröhre
(CRT)), ein alphanumerisches Eingabegerät 712 (z. B. eine
Tastatur), eine Cursorsteuervorrichtung 714 (z. B. eine Maus)
und eine Signalerzeugungsvorrichtung 716 (z. B. einen Lautsprecher)
umfassen.
-
Die
Datenspeichervorrichtung 718 kann ein maschinenzugreifbares
Speichermedium 730 umfassen, auf dem ein oder mehrere Befehlssätze (z.
B. Software 722) gespeichert sind, die eine oder mehrere
der hier beschriebenen Methodologien und Funktionen verkörpern. Die
Software 722 kann sich vollständig oder wenigstens teilweise
im Hauptspeicher 704 und/oder im Prozessor 702 während ihrer
Ausführung
durch das Computersystem 700 befinden, wobei der Hauptspeicher 704 und
der Prozessor 702 außerdem
ein maschinenzugreifbares Speichermedium bilden. Die Software 722 kann
ferner über
ein Netz 702 über
die Netzschnittstellenvorrichtung 708 übertragen oder empfangen werden.
-
Während das
maschinenzugreifbare Speichermedium 730 in einem beispielhaften
Ausführungsbeispiel
als einzelnes Medium gezeigt ist, kann der Ausdruck ”maschinenzugreifbares
Speichermedium” auch
dahingehend verstanden werden, dass er ein einzelnes Medium oder
mehrere Medien (z. B. eine zentralisierte oder verteilte Datenbank
und/oder zugeordnete Zwischenspeicher und Server) umfasst, die die
ein oder mehreren Befehlssätze
speichern. Der Ausdruck ”maschinenzugreifbares
Speichermedium” kann
auch dahingehend verstanden werden, dass er ein beliebiges Medium
umfasst, das in der Lage ist, einen Befehlssatz der von einer Maschine ausgeführt wird
und der die Maschine veranlasst, ein oder mehrere Verfahren der
vorliegenden Erfindung durchzuführen,
speichern, codieren und tragen kann. Der Ausdruck ”maschinenzugreifbares
Speichermedium” kann
entsprechend dahingehend verstanden werden, dass er umfasst, aber
nicht beschränkt
ist auf Festkörperspeicher,
optische Medien und magnetische Medien.
-
Selbstverständlich ist
die obige Beschreibung als veranschaulichend und nicht beschränkend gedacht.
Viele weitere Ausführungsbeispiele
werden für
Fachleute beim Lesen und Verstehen der obigen Beschreibung ersichtlich.
Der Umfang der Erfindung soll somit in Bezug auf die beigefügten Ansprüche nebst
dem vollen Umfang an Äquivalenten,
die derartige Ansprüche
einräumen,
bestimmt sein.