Einführung
Im heutigen digitalen Zeitalter kann die schiere Menge an Daten, die von Geräten und Systemen generiert werden, sowohl eine Herausforderung als auch eine Chance für Sicherheitsexperten sein. Die Analyse einer großen Datenmenge, um wertvolle oder umsetzbare Erkenntnisse über Trends bei Cyberangriffen zu gewinnen, erfordert präzise Tools und Methoden.
Bevor Sie sich mit der Datenanalyse befassen, fragen Sie sich vielleicht:
- Welche konkreten Fragen möchte ich beantworten und verfüge ich über die notwendigen Daten?
- Wo befinden sich alle relevanten Daten?
- Wie kann ich auf diese Daten zugreifen?
- Welche Schritte sind beim Zugriff auf die Daten erforderlich, um sie zu verstehen und zu organisieren?
- Welche Tools eignen sich am effektivsten zum Extrahieren, Interpretieren oder Visualisieren der Daten?
- Soll ich die Rohdaten sofort analysieren oder warten, bis sie verarbeitet wurden?
- Und vor allem: Welche umsetzbaren Erkenntnisse lassen sich aus den Daten ableiten?
Wenn diese Fragen bei Ihnen Anklang finden, sind Sie auf dem richtigen Weg. Willkommen in der Welt von Google Cloud, in der wir uns mit diesen Fragen befassen und Sie durch den Prozess der Erstellung eines umfassenden Berichts führen.
Unser Ansatz umfasst mehrere Schritte in der folgenden Reihenfolge:
Erforschung: Wir beginnen damit, die uns zur Verfügung stehenden Daten gründlich zu verstehen. In dieser Phase geht es darum, potenzielle Erkenntnisse zu identifizieren, die wir aufdecken wollen, und die Verfügbarkeit der erforderlichen Daten zu überprüfen.
Extraktion: Hier sammeln wir die notwendigen Daten und konzentrieren uns auf die relevantesten und aktuellsten Informationen für unsere Analyse.
Vorverarbeitung und Transformation: In dieser Phase bereiten wir die Daten für die Analyse vor. Dabei werden die Daten normalisiert (bereinigt, organisiert und strukturiert), um die Bereitschaft zur weiteren Verarbeitung sicherzustellen.
Trendanalyse: Die meisten unserer Bedrohungsergebnisse und -beobachtungen stammen aus diesen Bemühungen. Wir analysieren die verarbeiteten Daten auf Muster, Trends und Anomalien. Techniken wie Zeitreihenanalyse und -aggregation werden eingesetzt, um die Entwicklung von Bedrohungen im Laufe der Zeit zu verstehen und signifikante Cyberangriffe auf verschiedenen Plattformen hervorzuheben.
Reduktion: In diesem Schritt destillieren wir die Daten auf ihre wichtigsten Elemente und konzentrieren uns dabei auf die wichtigsten und aufschlussreichsten Aspekte.
Präsentation: Im letzten Schritt geht es darum, unsere Ergebnisse zu präsentieren. Mit den Tools von Google Workspace möchten wir unsere Erkenntnisse klar, prägnant und visuell ansprechend darstellen.
Schlussfolgerung: Wenn wir über diese Reise nachdenken, werden wir darüber sprechen, wie wichtig es ist, die richtigen Analysetools zu haben. Wir zeigen, wie die Google Cloud Platform (GCP) eine ideale Umgebung für die Analyse von Cyber-Bedrohungsdaten bietet und es uns ermöglicht, Rohdaten in aussagekräftige Erkenntnisse umzuwandeln.
Exploration: Ermittlung verfügbarer Daten
Bevor wir uns in anspruchsvolle Analysen stürzen, ist es notwendig, sich vorzubereiten, indem wir ein Verständnis für die Datenlandschaft entwickeln, die wir untersuchen wollen.
Hier ist unser Ansatz:
- Identifizierung verfügbarer Daten: Der erste Schritt besteht darin, festzustellen, welche Daten zugänglich sind. Dazu können Malware-Phänomene, Endpunktanomalien, Cloud-Signale usw. gehören. Es ist wichtig, die Verfügbarkeit dieser Datentypen zu bestätigen.
- Suchen der Datenspeicher: Bestimmung des genauen Standorts unserer Daten. Wenn Sie wissen, wo sich unsere Daten befinden – ob in Datenbanken, Data Lakes oder anderen Speicherlösungen – können Sie den nachfolgenden Analyseprozess optimieren.
- Zugriff auf die Daten: Es ist wichtig, sicherzustellen, dass wir über die erforderlichen Berechtigungen oder Anmeldeinformationen verfügen, um auf die benötigten Datensätze zuzugreifen. Wenn dies nicht der Fall ist, müssen wir versuchen, den Ressourcenbesitzer zu identifizieren und Zugriff von ihm anzufordern.
- Grundlegendes zum Datenschema: Das Verständnis der Struktur unserer Daten ist von entscheidender Bedeutung. Die Kenntnis des Schemas hilft bei der effektiven Planung des Analyseprozesses.
- Bewertung der Datenqualität: Wie bei jeder gründlichen Analyse ist auch die Bewertung der Qualität der Daten von entscheidender Bedeutung. Wir prüfen, ob die Daten segmentiert und detailliert genug für eine aussagekräftige Trendanalyse sind.
In dieser Phase geht es darum, sicherzustellen, dass unsere Analyse auf einer soliden und realistischen Grundlage basiert. Für einen Bericht wie den Global Threat Report stützen wir uns auf umfangreiche und relevante Datensätze wie:
- Daten von Cloud-Signalen: Dazu gehören Daten aus globalen SIEM-Warnungen (Security Information and Event Management), insbesondere mit Schwerpunkt auf Cloud-Plattformen wie AWS, GCP und Azure. Diese Daten stammen häufig aus öffentlichen Erkennungsregeln.
- Daten zu Endpunktwarnungen: Daten, die aus den globalen Elastic Defend-Warnungen gesammelt werden, einschließlich einer Vielzahl von Verhaltensregeln für öffentliche Endpunkte.
- Malware-Daten: Dabei handelt es sich um Daten aus globalen Elastic Defend-Warnungen, die mit MalwareScore und öffentlichen YARA-Regeln angereichert sind.
Jedes Dataset wird kategorisiert und für den Kontext mit Frameworks wie MITRE ATT&CK, Elastic Stack-Details und Kundeneinblicken angereichert. Speicherlösungen der Google Cloud Platform, wie z. B. BigQuery und Google Cloud Storage (GCS)-Buckets, bieten eine robuste Infrastruktur für unsere Analysen.
Es ist auch wichtig, einen Schwellenwert für die "Aktualität" der Daten festzulegen, der Daten ausschließt, die für einen Jahresbericht nicht älter als 365 Tage sind, um Relevanz und Genauigkeit zu gewährleisten.
Denken Sie schließlich daran, Daten zu wählen, die eine unvoreingenommene Perspektive bieten. Das Ausschließen oder Einbeziehen interner Daten sollte eine bewusste, strategische Entscheidung sein, die auf ihrer Relevanz für Ihre Sichtbarkeit basiert.
Zusammenfassend lässt sich sagen, dass die Auswahl der richtigen Tools und Datensätze für die Erstellung einer umfassenden und aufschlussreichen Analyse von grundlegender Bedeutung ist. Jede Entscheidung trägt auf einzigartige Weise zur Gesamteffektivität der Datenanalyse bei und stellt sicher, dass die endgültigen Erkenntnisse sowohl wertvoll als auch wirkungsvoll sind.
Extraktion: Der erste Schritt in der Datenanalyse
Nachdem wir die erforderlichen Daten identifiziert und lokalisiert haben, besteht der nächste Schritt auf unserer analytischen Reise darin, diese Daten aus unseren Speicherlösungen zu extrahieren. Diese Phase ist von entscheidender Bedeutung, da sie die Voraussetzungen für die anschließende eingehende Analyse bildet.
Tools und Techniken zur Datenextraktion
Für die Datenextraktion können verschiedene Tools und Programmiersprachen verwendet werden, darunter Python, R, Go, Jupyter Notebooks und Looker Studio. Jedes Werkzeug bietet einzigartige Vorteile, und die Wahl hängt von den spezifischen Anforderungen Ihrer Analyse ab.
Bei unserer Datenextraktion haben wir den größten Erfolg mit einer Kombination aus BigQuery, Colab Notebooks, Buckets und Google Workspace erzielt, um die erforderlichen Daten zu extrahieren. Colab Notebooks, ähnlich wie Jupyter Notebooks, arbeiten in der Cloud-Umgebung von Google und bieten eine nahtlose Integration mit anderen Google Cloud-Diensten.
BigQuery für Daten-Staging und -Abfrage
Ein wichtiger Schritt bei der Analyse besteht darin, unsere Datasets mit BigQuery zu "inszenieren". Dazu gehört die Verwendung von BigQuery-Abfragen zum Erstellen und Speichern von Objekten, wodurch sie wiederverwendbar und in unserem Team gemeinsam nutzbar gemacht werden. Dies erreichen wir durch die Verwendung der CREATE TABLE-Anweisung, die es uns ermöglicht, mehrere Datensätze wie Endpunktverhaltenswarnungen, Kundendaten und Regeldaten in einem einzigen, umfassenden Datensatz zu kombinieren.
Dieses konsolidierte Dataset wird dann in einer eigens dafür vorgesehenen BigQuery-Tabelle gespeichert. In diesem Beispiel wird es als Dataset "Globaler Bedrohungsbericht" bezeichnet. Dieser Ansatz wird konsistent auf verschiedene Datentypen angewendet, einschließlich Cloud-Signale und Malware-Datensätze.
Die neu erstellte Datentabelle kann z.B. den Namen elastic.global_threat_report.ep_behavior_raw
haben. Diese von BigQuery definierte Namenskonvention hilft bei der effektiven Organisation und Lokalisierung der Datasets, was für die nachfolgenden Phasen des Extraktionsprozesses von entscheidender Bedeutung ist.
Ein Beispiel für eine BigQuery-Abfrage, die in diesem Prozess verwendet wird, könnte wie folgt aussehen:
CREATE TABLE elastic.global_threat_report.ep_behavior_raw AS
SELECT * FROM ...
Diagramm für eine BigQuery-Abfrage in eine exportierte Datasettabelle
Wir verwenden die Anweisung EXPORT DATA in BigQuery auch, um Tabellen an andere GCP-Dienste zu übertragen, z. B. um sie im Parquet-Dateiformat in Google Cloud Storage (GCS)-Buckets zu exportieren.
EXPORT DATA
OPTIONS (
uri = 'gs://**/ep_behavior/*.parquet',
format = 'parquet',
overwrite = true
)
AS (
SELECT * FROM `project.global_threat_report.2023_pre_norm_ep_behavior`
)
Colab Notebooks zum Laden von gestaffelten Datensätzen
Colab Notebooks sind maßgeblich an der Organisation unseres Datenextraktionsprozesses beteiligt. Sie ermöglichen den einfachen Zugriff und die Verwaltung von Datenskripten, die auf Plattformen wie GitHub und Google Drive gespeichert sind.
Für die Authentifizierung und Autorisierung verwenden wir Google Workspace-Anmeldedaten, um den Zugriff auf verschiedene Google Cloud-Dienste zu vereinfachen, darunter BigQuery und Colab Notebooks. Hier ist ein grundlegendes Beispiel für die Handhabung der Authentifizierung:
Diagramm für die Authentifizierung und Autorisierung zwischen Google Cloud-Diensten
Für diejenigen, die noch nicht mit Jupyter Notebooks oder Datenrahmen vertraut sind, ist es von Vorteil, sich mit diesen Tools vertraut zu machen. Sie sind grundlegend für das Toolkit eines jeden Datenanalysten und ermöglichen eine effiziente Codeverwaltung, Datenanalyse und Strukturierung. Die Beherrschung dieser Tools ist der Schlüssel zu einer effektiven Datenanalyse.
Nachdem wir ein Notizbuch in Google Colab erstellt haben, sind wir bereit, unsere benutzerdefinierten Tabellen zu extrahieren (z. B. project.global_threat_report.ep_behavior_raw) aus BigQuery. Diese Daten werden dann in Pandas Dataframes geladen, eine Python-Bibliothek, die die Datenmanipulation und -analyse erleichtert. Während der Umgang mit großen Datensätzen mit Python eine Herausforderung sein kann, bietet Google Colab robuste virtuelle Computing-Ressourcen. Bei Bedarf können diese Ressourcen über den Google Cloud Marketplace oder die Google Cloud Console skaliert werden, um sicherzustellen, dass auch große Datensätze effizient verarbeitet werden können.
Unverzichtbare Python-Bibliotheken für die Datenanalyse
In unserem Datenanalyseprozess verwenden wir verschiedene Python-Bibliotheken, die jeweils einem bestimmten Zweck dienen:
Bibliothek | Beschreibung |
---|---|
DatumUhrzeit | Unerlässlich für die Abwicklung aller Vorgänge im Zusammenhang mit Datum und Uhrzeit in Ihren Daten. Es ermöglicht Ihnen, Datums- und Uhrzeitinformationen für die Analyse zu bearbeiten und zu formatieren. |
google.auth | Verwaltet Authentifizierungs- und Zugriffsberechtigungen und gewährleistet so einen sicheren Zugriff auf Google Cloud-Dienste. Es ist der Schlüssel, um zu kontrollieren, wer auf Ihre Daten und Dienste zugreifen kann. |
google.colab.auth | Bietet Authentifizierung für den Zugriff auf Google Cloud-Dienste in Google Colab-Notebooks und ermöglicht so eine sichere Verbindung zu Ihren Cloud-basierten Ressourcen. |
google.cloud.bigquery | Ein Tool zum Verwalten großer Datensätze im BigQuery-Dienst von Google Cloud. Es ermöglicht die effiziente Verarbeitung und Analyse riesiger Datenmengen. |
google.cloud.storage | Wird zum Speichern und Abrufen von Daten in Google Cloud Storage verwendet. Es ist eine ideale Lösung für den Umgang mit verschiedenen Datendateien in der Cloud. |
gspread | Erleichtert die Interaktion mit Google Spreadsheets und ermöglicht eine einfache Bearbeitung und Analyse von Tabellenkalkulationsdaten. |
gspread.dataframe.set_with_dataframe | Synchronisiert Daten zwischen Pandas-Datenrahmen und Google Spreadsheets und ermöglicht so eine nahtlose Datenübertragung und Aktualisierung zwischen diesen Formaten. |
matplotlib.pyplot.plt | Ein Modul in der Matplotlib-Bibliothek zum Erstellen von Diagrammen und Grafiken. Es hilft bei der Visualisierung von Daten in einem grafischen Format und erleichtert so das Verständnis von Mustern und Trends. |
pandas | Ein grundlegendes Werkzeug für die Datenmanipulation und -analyse in Python. Es bietet Datenstrukturen und Operationen zur Manipulation von numerischen Tabellen und Zeitreihen. |
pandas.gbq.to_gbq | Ermöglicht die Übertragung von Daten aus Pandas-Datenrahmen direkt in Google BigQuery und optimiert so den Prozess der Datenverschiebung in diese Cloud-basierte Analyseplattform. |
geschenke.parquet.pq | Ermöglicht das effiziente Speichern und Abrufen von Daten im Parquet-Format, einem spaltenbasierten Speicherdateiformat, das für die Verwendung mit großen Datasets optimiert ist. |
Seeborn | Eine auf Matplotlib basierende Python-Visualisierungsbibliothek, die eine High-Level-Schnittstelle zum Zeichnen attraktiver und informativer statistischer Grafiken bietet. |
Als Nächstes authentifizieren wir uns bei BigQuery und erhalten die Berechtigung für den Zugriff auf unsere Datasets, wie bereits gezeigt. Durch die Verwendung von Google Workspace-Anmeldedaten können wir problemlos auf BigQuery und andere Google Cloud-Dienste zugreifen. Der Prozess umfasst in der Regel einen einfachen Codeausschnitt für die Authentifizierung:
from google.colab import auth
from google.cloud import bigquery
auth.authenticate_user()
project_id = "PROJECT_FROM_GCP"
client = bigquery.Client(project=project_id)
Wenn die Authentifizierung abgeschlossen ist, können wir dann auf unsere Daten zugreifen und diese manipulieren. Die Integration von Google Colab in die Google Cloud-Dienste vereinfacht diesen Prozess und macht ihn effizient und sicher.
Organisieren von Colab-Notizbüchern vor der Analyse
Wenn Sie mit Jupyter Notebooks arbeiten, ist es besser, Ihr Notebook im Voraus zu organisieren. Es sind verschiedene Phasen des Umgangs und der Manipulation von Daten erforderlich, und wenn Sie organisiert bleiben, können Sie einen wiederholbaren, umfassenden Prozess erstellen.
In unseren Notebooks verwenden wir Jupyter Notebook-Header, um den Code systematisch zu organisieren. Diese Struktur ermöglicht eine klare Unterteilung und die Erstellung von zusammenklappbaren Abschnitten, was besonders vorteilhaft ist, wenn es sich um komplexe Datenoperationen handelt, die mehrere Schritte erfordern. Diese methodische Organisation hilft bei der effizienten Navigation im Notebook und stellt sicher, dass jeder Schritt im Datenextraktions- und Analyseprozess leicht zugänglich und überschaubar ist.
Darüber hinaus mag der Workflow in einem Notizbuch zwar linear erscheinen, ist aber oft dynamischer. Datenanalysten betreiben häufig Multitasking und springen je nach Bedarf zwischen verschiedenen Abschnitten, basierend auf den Daten oder Ergebnissen, auf die sie stoßen. Darüber hinaus können neue Erkenntnisse, die in einem Schritt entdeckt werden, den Prozess eines anderen Schritts beeinflussen, was zu einigem Hin und Her führt, bevor das Notebook fertiggestellt wird. |
Extrahieren unserer BigQuery-Datasets in Datenrahmen
Nachdem wir die Struktur unseres Notebooks etabliert und uns erfolgreich mit BigQuery authentifiziert haben, besteht unser nächster Schritt darin, die erforderlichen Datensätze abzurufen. Dieser Prozess bildet die Grundlage für den Rest des Berichts, da die Informationen aus diesen Quellen die Grundlage unserer Analyse bilden, ähnlich wie bei der Auswahl der Schlüsselkomponenten, die für eine umfassende Studie erforderlich sind.
Hier sehen Sie ein Beispiel dafür, wie wir Daten aus BigQuery abrufen können:
import datetime
current_year = datetime.datetime.now().year
reb_dataset_id = f'project.global_threat_report.{current_year}_raw_ep_behavior'
reb_table = client.list_rows(reb_dataset_id)
reb_df = reb_table.to_dataframe()
Dieser Codeausschnitt veranschaulicht einen typischen Datenabrufprozess. Zuerst definieren wir den Datensatz, an dem wir interessiert sind (mit dem Global Threat Report, project.global_threat_report.ep_behavior_raw
für das laufende Jahr). Anschließend verwenden wir eine BigQuery-Abfrage, um die Daten aus diesem Datensatz auszuwählen und in einen Pandas-DataFrame zu laden. Dieser DataFrame dient als Grundlage für unsere nachfolgenden Datenanalyseschritte.
Colab Notebook-Snippet für die Datenextraktion aus BigQuery in den Pandas-Datenrahmen
Dieser Vorgang markiert den Abschluss der Extraktionsphase. Wir haben erfolgreich in BigQuery navigiert, um die erforderlichen Datasets auszuwählen und abzurufen und sie in unseren Notebooks in Datenrahmen zu laden. Die Extraktionsphase ist von entscheidender Bedeutung, da sie nicht nur das Sammeln der Daten umfasst, sondern auch die Grundlage für eine tiefergehende Analyse bildet. Es ist der erste Schritt auf einer größeren Entdeckungsreise, die in die Transformationsphase führt, in der wir detailliertere Erkenntnisse aus den Daten gewinnen werden.
Zusammenfassend lässt sich sagen, dass es bei diesem Teil unserer Datenreise um mehr geht als nur um das Sammeln von Datensätzen. Es geht darum, sie strukturell auf die folgende tiefgehende Analyse vorzubereiten. Dieser akribische Ansatz bei der Organisation und Durchführung der Extraktionsphase schafft die Grundlage für die transformativen Erkenntnisse, die wir in den nachfolgenden Phasen unserer Datenanalyse gewinnen wollen.
Vorverarbeitung und Transformation: Die kritische Phase der Datenanalyse
Der Übergang von Rohdaten zu umsetzbaren Erkenntnissen umfasst eine Reihe entscheidender Schritte in der Datenverarbeitung. Nach dem Extrahieren von Daten verlagert sich unser Fokus auf die Verfeinerung für die Analyse. Cybersicherheitsdatensätze enthalten oft verschiedene Formen von Rauschen, wie z. B. Fehlalarme und Anomalien, die behoben werden müssen, um eine genaue und relevante Analyse zu gewährleisten.
Wichtige Phasen bei der Datenvorverarbeitung und -transformation:
- Datenbereinigung: Diese Phase umfasst das Füllen von NULL-Werten, das Korrigieren von Datenfehlausrichtungen und das Validieren von Datentypen, um die Integrität des Datasets sicherzustellen.
- Datenanreicherung: In diesem Schritt wird dem Dataset zusätzlicher Kontext hinzugefügt. Die Einbeziehung von Daten von Drittanbietern, wie z. B. Malware-Reputationen aus Quellen wie VirusTotal, erhöht beispielsweise die Analysetiefe.
- Normalisierung: Dieser Prozess standardisiert die Daten, um Konsistenz zu gewährleisten, was besonders wichtig für unterschiedliche Datensätze wie Endpunkt-Malware-Warnungen ist.
- Erkennung von Anomalien: Das Identifizieren und Beheben von Ausreißern oder falsch positiven Ergebnissen ist entscheidend, um die Genauigkeit des Datensatzes zu erhalten.
- Extraktion von Merkmalen: Der Prozess der Identifizierung aussagekräftiger, konsistenter Datenpunkte, die für die Analyse weiter extrahiert werden können.
Die Kunst der Datenbereinigung
Die Datenbereinigung ist ein grundlegender Schritt bei der Vorbereitung von Datensätzen für eine umfassende Analyse, insbesondere im Bereich der Cybersicherheit. Dieser Prozess umfasst eine Reihe von technischen Überprüfungen, um die Integrität und Zuverlässigkeit der Daten zu gewährleisten. Hier sind die spezifischen Schritte:
-
Mapping auf das MITRE ATT&CK-Framework: Stellen Sie sicher, dass alle Erkennungs- und Reaktionsregeln im Datensatz genau den entsprechenden Taktiken und Techniken im MITRE ATT&CK-Framework zugeordnet sind. Diese Überprüfung umfasst die Suche nach NULL-Werten oder Inkonsistenzen in der Ausrichtung der Daten mit dem Framework.
-
Validierung des Datentyps: Vergewissern Sie sich, dass die Datentypen innerhalb des Datasets angemessen und konsistent sind. Zeitstempel sollten z. B. in einem standardisierten datetime-Format vorliegen. Dieser Schritt kann das Konvertieren von Zeichenfolgenformaten in datetime-Objekte oder das Überprüfen der korrekten Formatierung von numerischen Werten umfassen.
-
Vollständigkeit kritischer Daten: Stellen Sie sicher, dass keine wichtigen Informationen im Datensatz fehlen. Dazu gehört auch die Überprüfung auf das Vorhandensein wesentlicher Elemente wie SHA256-Hashes oder ausführbarer Dateinamen in Endpunktverhaltensprotokollen. Das Fehlen solcher Daten kann zu unvollständigen oder verzerrten Analysen führen.
-
Standardisierung über Datenformate hinweg: Bewerten und implementieren Sie die Standardisierung von Datenformaten im gesamten Datensatz, um die Einheitlichkeit zu gewährleisten. Dies kann die Normalisierung von Textformaten, die Sicherstellung einer konsistenten Großschreibung oder die Standardisierung von Datums- und Zeitdarstellungen umfassen.
-
Identifizierung doppelter Eintrage: Identifizieren und entfernen Sie doppelte Einträge, indem Sie eindeutige IDs wie XDR-Agent-IDs oder Cluster-IDs untersuchen. Dieser Prozess kann die Verwendung von Funktionen zum Erkennen und Entfernen von Duplikaten beinhalten, um die Eindeutigkeit jedes Dateneintrags sicherzustellen.
-
Ausschluss irrelevanter interner Daten: Suchen und entfernen Sie alle internen Daten, die möglicherweise versehentlich in das Dataset aufgenommen wurden. Dieser Schritt ist entscheidend, um zu verhindern, dass interne Verzerrungen oder irrelevante Informationen die Analyse beeinflussen.
Es ist wichtig zu beachten, dass die Datenbereinigung oder das "Bereinigen der Daten" ein kontinuierlicher Aufwand in unserem gesamten Arbeitsablauf ist. Während wir die Schichten unserer Daten weiter abschälen und nach verschiedenen Erkenntnissen ringen, wird erwartet, dass wir weitere Veränderungen feststellen.
Verwendung von Pandas zur Datenbereinigung
Die Pandas-Bibliothek in Python bietet mehrere Funktionalitäten, die besonders nützlich für die Datenbereinigung in Cybersicherheitskontexten sind. Einige dieser Methoden umfassen:
DataFrame.isnull()
oderDataFrame.notnull()
, um fehlende Werte zu identifizieren.DataFrame.drop_duplicates()
, um doppelte Zeilen zu entfernen.- Datentypkonvertierungsmethoden wie
pd.to_datetime()
zur Standardisierung von Zeitstempelformaten. - Verwendung der booleschen Indizierung, um irrelevante Daten basierend auf bestimmten Kriterien herauszufiltern.
Ein gründliches Verständnis des Datensatzes ist unerlässlich, um die richtigen Reinigungsmethoden zu bestimmen. Es kann erforderlich sein, den Datensatz vorab zu untersuchen, um bestimmte Bereiche zu identifizieren, die bereinigt oder transformiert werden müssen. Weitere hilfreiche Methoden und Workflows finden Sie in diesem Real Python-Blog.
Extraktion und Anreicherung von Funktionen
Die Extraktion und Anreicherung von Merkmalen sind zentrale Schritte in der Datenanalyse, insbesondere im Zusammenhang mit der Cybersicherheit. Diese Prozesse umfassen das Transformieren und Erweitern des Datensatzes, um seinen Nutzen für die Analyse zu verbessern.
- Erstellen Sie neue Daten aus vorhandenen: Hier ändern wir vorhandene Daten oder verwenden sie, um zusätzliche Spalten oder Zeilen hinzuzufügen.
- Fügen Sie neue Daten von 3rd-Party hinzu: Hier verwenden wir vorhandene Daten als Abfragereferenz für RESTful-APIs von Drittanbietern, die mit zusätzlichen Daten antworten, die wir den Datensätzen hinzufügen können.
Extraktion von Merkmalen
Schauen wir uns ein konkretes Beispiel an. Stellen Sie sich vor, wir erhalten eine Fülle von öffentlich zugänglichen YARA-Signaturen, die Elastic mit seiner Community teilt . Diese Signaturen lösen einige der Endpunkt-Malware-Warnungen in unserem Datensatz aus. Basierend auf dem Regelnamen, der natürlich in den Rohdaten auftaucht, wurde eine konsistente Namenskonvention eingehalten: OperationsSystem_MalwareCategory_MalwareFamily
. Diese Namen können dekonstruiert werden, um spezifischere Einblicke zu erhalten. Durch die Nutzung von Pandas können wir die Daten fachmännisch aufschlüsseln. Wenn Sie dies lieber während der Dataset-Staging-Phase mit BigQuery tun möchten, kann die Kombination aus SPLIT - und OFFSET-Klauseln zu ähnlichen Ergebnissen führen:
df[['OperatingSystem', 'MalwareCategory', 'MalwareFamily']] = df['yara_rule_name'].str.split('_', expand=True)
Merkmalsextraktion mit unseren YARA-Daten
Es gibt zusätzliche Ansätze, Methoden und Prozesse, um die Extraktion in der Datenanalyse zu erfassen. Wir empfehlen, die Wünsche/Bedürfnisse Ihrer Stakeholder zu konsultieren und Ihre Daten zu untersuchen, um festzustellen, was für die Extraktion erforderlich ist und wie.
Datenanreicherung
Die Datenanreicherung verbessert die Tiefe und den Kontext von Cybersicherheitsdatensätzen. Ein effektiver Ansatz ist die Integration externer Datenquellen, um zusätzliche Perspektiven auf die vorhandenen Daten zu bieten. Dies kann besonders wertvoll sein, um Cybersicherheitswarnungen zu verstehen und zu interpretieren.
Beispiel für die Datenanreicherung: Integration von VirusTotal-Reputationsdaten Eine gängige Methode der Datenanreicherung im Bereich der Cybersicherheit ist die Einbeziehung von Reputationsbewertungen von externen Threat-Intelligence-Diensten wie VirusTotal (VT ). Dieser Prozess umfasst in der Regel:
- Abrufen von Reputationsdaten: Mit einem API-Schlüssel von VT können wir Reputationsdaten basierend auf eindeutigen Identifikatoren in unserem Datensatz abfragen, z. B. SHA256-Hashes von Binärdateien.
import requests
def get_reputation(sha256, API_KEY, URL):
params = {'apikey': API_KEY, 'resource': sha256}
response = requests.get(URL, params=params)
json_response = response.json()
if json_response.get("response_code") == 1:
positives = json_response.get("positives", 0)
return classify_positives(positives)
else:
return "unknown"
Bei dieser Funktion handelt es sich classify_positives
um eine benutzerdefinierte Funktion, die die Reputation basierend auf der Anzahl der Antivirenmodule klassifiziert, die die Datei als bösartig gekennzeichnet haben.
- Hinzufügen von Reputationsdaten zum Dataset: Die von VirusTotal abgerufenen Reputationsdaten werden dann in den vorhandenen Datensatz integriert. Dies geschieht durch Anwenden der Funktion
get_reputation
auf jeden relevanten Eintrag im DataFrame.
df['reputation'] = df['sha256'].apply(lambda x: get_reputation(x, API_KEY, URL))
Hier wird dem Datenrahmen eine neue Spalte mit dem Namen reputation
hinzugefügt, die eine zusätzliche Informationsebene zu jeder Binärdatei basierend auf ihrer Erkennungsrate in VirusTotal bereitstellt.
Diese Methode der Datenanreicherung ist nur eine von vielen Möglichkeiten, um Daten zu Cybersicherheitsbedrohungen zu verbessern. Durch die Verwendung robuster Hilfsfunktionen und die Anzapfung externer Datenspeicher können Analysten ihre Datensätze erheblich anreichern. Diese Anreicherung ermöglicht ein umfassenderes Verständnis der Daten, was zu einer fundierteren und nuancierteren Analyse führt. Die hier demonstrierten Techniken sind Teil einer breiteren Palette fortschrittlicher Datenmanipulationsmethoden, die die Datenanalyse im Bereich der Cybersicherheit weiter verfeinern können.
Normalisierung
Insbesondere beim Umgang mit unterschiedlichen Datensätzen in der Cybersicherheit, wie z. B. Endpunktwarnungen und Cloud-SIEM-Benachrichtigungen, kann eine Normalisierung erforderlich sein, um das Beste aus Ihren Daten herauszuholen.
Normalisierung verstehen: Im Kern geht es bei der Normalisierung darum, Werte, die auf verschiedenen Skalen gemessen werden, an eine gemeinsame Skala anzupassen, sicherzustellen, dass sie proportional dargestellt werden, und Redundanzen zu reduzieren. Im Kontext der Cybersicherheit bedeutet dies, Ereignisse oder Warnungen so darzustellen, dass ihre Bedeutung nicht unbeabsichtigt verstärkt oder verringert wird.
Betrachten Sie unseren Endpoint-Malware-Datensatz. Bei der Analyse von Trends, z. B. Infektionen, die auf Malware-Familien oder -Kategorien basieren, streben wir eine genaue Darstellung an. Eine einzelne Malware-Infektion auf einem Endpunkt kann jedoch je nach XDR-System (Extended Detection and Response) mehrere Warnungen auslösen. Wenn dies nicht kontrolliert wird, könnte dies unser Verständnis der Bedrohungslandschaft erheblich verzerren. Um dem entgegenzuwirken, betrachten wir die elastischen Agents, die als Teil der XDR-Lösung bereitgestellt werden. Jeder Endpunkt verfügt über einen eindeutigen Agenten, der eine einzelne Infektionsinstanz darstellt, wenn Malware erkannt wird. Um diesen Datensatz zu normalisieren, würden wir ihn daher basierend auf eindeutigen Agenten-IDs "abflachen" oder anpassen. Das bedeutet, dass wir für unsere Analyse die Anzahl der eindeutigen Agenten-IDs berücksichtigen, die von einer bestimmten Malware-Familie oder -Kategorie betroffen sind, und nicht die reine Anzahl der Warnungen.
Beispielvisualisierung der Normalisierung von Malware-Warnungen durch eindeutige Agenten
Wie in der obigen Abbildung dargestellt, würden unsere wichtigsten Ergebnisse, wenn wir uns dafür entscheiden, die Malware-Daten zur Vorbereitung der Trendanalyse nicht zu normalisieren, ungenaue Informationen darstellen. Diese Ungenauigkeit könnte auf eine Vielzahl von Dateninkonsistenzen zurückzuführen sein, wie z. B. generische YARA-Regeln, programmatische Operationen, die wiederholt auf einem einzelnen Endpunkt gekennzeichnet wurden, und vieles mehr.
Diversifizierung des Ansatzes: Auf der anderen Seite kann sich unser Normalisierungsansatz beim Umgang mit Warnungen zum Endpunktverhalten oder Cloud-Warnungen (von Plattformen wie AWS, GCP, Azure, Google Workspace und O365) unterscheiden. Diese Datensätze können ihre eigenen Nuancen aufweisen und erfordern möglicherweise nicht die gleiche "Flattening"-Technik, die für Malware-Warnungen verwendet wird.
Konzeptualisierung von Normalisierungsoptionen: Denken Sie daran, dass das Ziel der Normalisierung darin besteht, die Redundanz in Ihren Daten zu reduzieren. Stellen Sie sicher, dass Ihre Abläufe so atomar wie möglich bleiben, falls Sie später zurückgehen und sie optimieren müssen. Dies gilt insbesondere dann, wenn sowohl die Normalisierung als auch die Standardisierung durchgeführt wird. Manchmal kann es schwierig sein, diese zu trennen, und Sie müssen möglicherweise zwischen den beiden hin und her wechseln. Analysten haben dafür eine Fülle von Optionen. Von der Min-Max-Skalierung , bei der die Werte verschoben und neu skaliert werden, um einen Bereich zwischen 0 und 1 zu erreichen, bis hin zur Z-Score-Normalisierung (oder Standardisierung), bei der die Werte um Null und Standardabweichungen vom Mittelwert zentriert sind. Die Wahl der Technik hängt von der Art der Daten und den spezifischen Anforderungen der Analyse ab.
Im Wesentlichen stellt die Normalisierung sicher, dass unsere Cybersicherheitsanalyse auf gleichen Wettbewerbsbedingungen basiert und den Beteiligten einen genauen Überblick über das Bedrohungsumfeld ohne übermäßige Verzerrungen erhält. Dies ist ein kritischer Schritt vor der Trendanalyse.
Anomalieerkennung: Verfeinerung des Prozesses der Datenanalyse
Im Bereich der Cybersicherheitsanalytik gibt es keinen einheitlichen Ansatz für die Erkennung von Anomalien. Der Prozess hängt stark von den spezifischen Eigenschaften der vorliegenden Daten ab. Das Hauptziel besteht darin, Ausreißer zu identifizieren und zu beheben, die die Analyse möglicherweise verzerren könnten. Dies erfordert eine dynamische und anpassungsfähige Methodik, bei der das Verständnis der Nuancen des Datensatzes entscheidend ist.
Die Erkennung von Anomalien in der Cybersicherheit umfasst die Erforschung verschiedener Techniken und Methoden, die jeweils für unterschiedliche Arten von Datenunregelmäßigkeiten geeignet sind. Die Strategie besteht nicht darin, starr eine einzige Methode anzuwenden, sondern ein tiefes Verständnis der Daten zu nutzen, um die für jede Situation am besten geeignete Technik auszuwählen. Der Schwerpunkt liegt auf Flexibilität und Anpassungsfähigkeit, um sicherzustellen, dass der gewählte Ansatz die klarsten und genauesten Einblicke in die Daten liefert.
Statistische Methoden – Das Rückgrat der Analyse:
Die statistische Analyse ist immer ein optionaler Ansatz zur Erkennung von Anomalien, insbesondere bei Cybersicherheitsdaten. Indem wir die inhärente Verteilung und die zentralen Tendenzen unserer Daten verstehen, können wir Werte hervorheben, die von der Norm abweichen. Eine einfache, aber leistungsstarke Methode, der Z-Score, misst den Abstand eines Datenpunkts vom Mittelwert in Form von Standardabweichungen.
import numpy as np
# Derive Z-scores for data points in a feature
z_scores = np.abs((df['mitre_technique'] - df['mitre_technique'].mean()) / df['mitre_technique'].std())
outliers = df[z_scores > 3] # Conventionally, a Z-score above 3 signals an outlier
Warum das wichtig ist: Diese Methode ermöglicht es uns, die Bedeutung der Abweichung eines Datenpunkts quantitativ zu messen. Solche Ausreißer können aggregierte Metriken wie den Mittelwert stark verzerren oder sogar das Training von Machine Learning-Modellen nachteilig beeinflussen. Denken Sie daran, dass Ausreißer nicht immer entfernt werden sollten. Es dreht sich alles um den Kontext! Manchmal suchen Sie vielleicht sogar gezielt nach den Ausreißern.
Schlüsselbibliothek: Während wir NumPy oben verwenden, kann SciPy auch für komplizierte statistische Operationen eingesetzt werden.
Aggregationen und Sortierungen – Schichten entwirren:
Daten werden oft in Schichten dargestellt. Indem wir mit einer allgemeinen Sicht beginnen und allmählich in die Einzelheiten eintauchen, können wir Ungereimtheiten oder Anomalien lokalisieren. Wenn wir nach Kategorien wie der MITRE ATT&CK-Taktik aggregieren und dann tiefer eintauchen, decken wir nach und nach die feineren Details und potenziellen Anomalien auf, während wir von der Technik zur Regellogik und zum Alarmkontext übergehen.
# Aggregating by tactics first
tactic_agg = df.groupby('mitre_tactic').size().sort_values(ascending=False)
Von hier aus können wir die gängigsten Taktiken identifizieren und die Taktik mit der höchsten Anzahl auswählen. Anschließend filtern wir unsere Daten nach dieser Taktik, um die häufigste Technik zu identifizieren, die mit der gängigsten Taktik verbunden ist. Techniken sind oft spezifischer als Taktiken und geben daher mehr Erklärungen darüber, was wir beobachten könnten. Nach dem gleichen Ansatz können wir dann nach dieser speziellen Technik filtern, nach Regel aggregieren und diese Erkennungsregel auf mehr Kontext überprüfen. Das Ziel hier ist es, "verrauschte" Regeln zu finden, die unseren Datensatz verzerren könnten, und daher müssen zugehörige Warnungen entfernt werden. Dieser Zyklus kann so lange wiederholt werden, bis Ausreißer entfernt werden und die Prozentsätze genauer erscheinen.
Warum das wichtig ist: Dieser mehrschichtige Analyseansatz stellt sicher, dass kein Stein auf dem anderen bleibt. Indem wir vom Allgemeinen zum Spezifischen navigieren, sortieren wir Ungereimtheiten systematisch aus.
Schlüsselbibliothek: Pandas bleibt der Held, der in der Lage ist, datenverarbeitende Aufgaben mit Finesse zu bewältigen.
Visualisierung – Die Linse der Klarheit:
Manchmal kann das menschliche Auge, wenn es mit der richtigen visuellen Darstellung unterstützt wird, intuitiv erkennen, was selbst die komplexesten Algorithmen übersehen könnten. Ein Boxplot zum Beispiel zeigt nicht nur die zentrale Tendenz und Streuung von Daten, sondern markiert auch deutlich Ausreißer.
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
sns.boxplot(x='Malware Family', y='Malware Score', data=df)
plt.title('Distribution of Malware Scores by Family')
plt.show()
Beispielvisualisierung von Bewertungen der Malware-Verteilung nach Familie aus einem Beispieldataset
Warum das wichtig ist: Visualisierung verwandelt abstrakte Daten in greifbare Erkenntnisse. Es bietet eine Perspektive, die je nach Bedarf sowohl ganzheitlich als auch granular ist.
Schlüsselbibliothek: Seaborn, das auf Matplotlib aufbaut, zeichnet sich dadurch aus, dass es Daten in visuelle Geschichten verwandelt.
Maschinelles Lernen – Die Avantgarde:
Wenn herkömmliche Methoden nicht ausreichen, kommt maschinelles Lernen zum Einsatz und bietet eine prädiktive Linse für Anomalien. Während viele Algorithmen darauf ausgelegt sind, bekannte Muster zu klassifizieren, lernen einige, wie Autoencoder im Deep Learning, "normale" Daten nachzubilden und jede Abweichung als Anomalie zu markieren.
Warum das wichtig ist: Mit zunehmender Datenkomplexität verschwimmen die Grenzen dessen, was eine Anomalie ausmacht. Maschinelles Lernen bietet adaptive Lösungen, die sich mit den Daten weiterentwickeln.
Schlüsselbibliotheken: Scikit-learn ist eine Fundgrube für benutzerfreundliche, klassische Techniken des maschinellen Lernens, während PyTorch die Leistungsfähigkeit von Deep Learning auf den Tisch bringt.
Die Perfektionierung der Anomalieerkennung in der Datenanalyse ähnelt der Verfeinerung einer komplexen Fähigkeit durch Übung und Iteration. Der Prozess beinhaltet oft Versuch und Irrtum, wobei jede Iteration die Vertrautheit des Analysten mit dem Datensatz verbessert. Dieses fortschrittliche Verständnis ist der Schlüssel, um sicherzustellen, dass die abschließende Analyse sowohl robust als auch aufschlussreich ist. Bei der Datenanalyse ist die Reise der Erkundung und Verfeinerung genauso wertvoll wie das Endergebnis selbst.
Bevor Sie mit einer eingehenden Trendanalyse fortfahren, ist es sehr wichtig, sicherzustellen, dass die Daten gründlich vorverarbeitet und transformiert werden. So wie Präzision und Zuverlässigkeit bei jeder akribischen Aufgabe unerlässlich sind, sind sie bei der Datenanalyse ebenso wichtig. Die Schritte zum Bereinigen, Normalisieren, Anreichern und Entfernen von Anomalien von der Grundlage dienen der Ableitung aussagekräftiger Erkenntnisse. Ohne diese sorgfältigen Vorbereitungen kann die Analyse von leicht ungenau bis hin zu erheblich irreführend reichen. Nur wenn die Daten richtig verfeinert und frei von Verzerrungen sind, können sie ihren wahren Wert offenbaren, was zu zuverlässigen und umsetzbaren Erkenntnissen in der Trendanalyse führt.
Trendanalyse: Muster in Daten aufdecken
Im dynamischen Bereich der Cybersicherheit, in dem Bedrohungsakteure ihre Taktiken, Techniken und Verfahren (TTPs) ständig weiterentwickeln, ist es von entscheidender Bedeutung, neuen Bedrohungen einen Schritt voraus zu sein. Die Trendanalyse ist in dieser Hinsicht ein wichtiges Instrument, das eine Möglichkeit bietet, Muster und Verhaltensweisen bei Cyberbedrohungen im Laufe der Zeit zu erkennen und zu verstehen.
Durch die Verwendung des MITRE ATT&CK-Frameworks verfügen Cybersicherheitsexperten über einen strukturierten und standardisierten Ansatz zur Analyse und Kategorisierung dieser sich entwickelnden Bedrohungen. Dieses Framework hilft bei der systematischen Identifizierung von Mustern in Angriffsmethoden und ermöglicht es Verteidigern, Veränderungen im Verhalten von Angreifern effektiv zu antizipieren und darauf zu reagieren.
Die Trendanalyse durch die Linse des MITRE ATT&CK-Frameworks verwandelt rohe Cybersicherheitstelemetrie in verwertbare Informationen. Es ermöglicht Analysten, die Entwicklung von Angriffsstrategien zu verfolgen und ihre Abwehrmechanismen entsprechend anzupassen, um eine proaktive Haltung im Cybersicherheitsmanagement zu gewährleisten.
Beginnend mit einem breiten Überblick: Aggregation und Sortierung
Es ist von größter Bedeutung, unsere Analyse aus der Vogelperspektive zu beginnen. Diese Panoramaperspektive ermöglicht es uns, zunächst die umfassenderen Taktiken zu bestimmen, bevor wir uns mit den detaillierteren Techniken und den zugrunde liegenden Erkennungsregeln befassen.
Top-Taktiken: Durch die Aggregation unserer Daten auf der Grundlage von MITRE ATT&CK-Taktiken können wir die übergreifenden Strategien erkennen, zu denen sich Angreifer neigen. Dies zeichnet ein Bild ihrer primären Ziele, sei es der erste Zugriff, die Ausführung oder die Exfiltration.
top_tactics = df.groupby('mitre_tactic').size()
.sort_values(ascending=False)
Heranzoomen in Techniken: Sobald wir eine prominente Taktik identifiziert haben, können wir unsere Aufmerksamkeit auf die Techniken lenken, die mit dieser Taktik verbunden sind. Dies offenbart den spezifischen Modus Operandi der Gegner.
chosen_tactic = 'Execution'
techniques_under_tactic = df[df['mitre_tactic'] == chosen_tactic]
top_techniques = techniques_under_tactic.groupby('mitre_technique').size()
.sort_values(ascending=False)
Erkennungsregeln und -logik: Da wir uns auf eine bestimmte Technik konzentrieren, ist es an der Zeit, tiefer einzutauchen und die Erkennungsregeln zu identifizieren, die Warnungen ausgelöst haben. Dies zeigt nicht nur, was erkannt wurde, sondern durch die Überprüfung der Erkennungslogik erhalten wir auch ein Verständnis für die genauen Verhaltensweisen und Muster, die gekennzeichnet wurden.
chosen_technique = 'Scripting'
rules_for_technique = techniques_under_tactic[techniques_under_tactic['mitre_technique'] == chosen_technique]
top_rules = rules_for_technique
.groupby('detection_rule').size().sort_values(ascending=False)
Dieser hierarchische, kaskadierende Ansatz ist vergleichbar mit dem Schälen einer Zwiebel. Mit jeder Schicht legen wir kompliziertere Details frei, verfeinern unsere Perspektive und schärfen unsere Einblicke.
Die Macht der Zeit: Zeitreihenanalyse
Im Bereich der Cybersicherheit ist Zeit nicht nur eine Kennzahl; Es ist eine Erzählung. Zeitstempel, die oft übersehen werden, sind eine Goldgrube für Erkenntnisse. Die Zeitreihenanalyse ermöglicht es uns, Ereignisse im Zeitverlauf darzustellen und Muster, Spitzen oder Flauten aufzudecken, die auf gegnerische Kampagnen, bestimmte Angriffswellen oder Ruhephasen hinweisen könnten.
Durch die Darstellung von Malware-Warnungen an Endpunkten im Zeitverlauf können beispielsweise die Betriebszeiten eines Angreifers aufgedeckt oder ein synchronisierter Multi-Vektor-Angriff ins Rampenlicht gerückt werden:
import matplotlib.pyplot as plt
# Extract and plot endpoint alerts over time
df.set_index('timestamp')['endpoint_alert'].resample('D').count().plot()
plt.title('Endpoint Malware Alerts Over Time')
plt.xlabel('Time')
plt.ylabel('Alert Count')
plt.show()
Die Zeitreihenanalyse beleuchtet nicht nur das "Wann", sondern gibt oft auch Einblicke in das "Warum" hinter bestimmten Spitzen oder Anomalien. Es hilft bei der Korrelation externer Ereignisse (wie der Veröffentlichung eines neuen Exploits) mit internen Datentrends.
Korrelationsanalyse
Das Verständnis der Beziehungen zwischen verschiedenen Datensätzen kann wertvolle Erkenntnisse liefern. Zum Beispiel könnte ein Anstieg einer Art von Warnung mit einer anderen Art von Aktivität im System korrelieren, was Aufschluss über mehrstufige Angriffskampagnen oder Ablenkungsstrategien gibt.
# Finding correlation between an increase in login attempts and data exfiltration activities
correlation_value = df['login_attempts'].corr(df['data_exfil_activity'])
Diese Analyse mit Hilfe von Pandas corr kann dabei helfen, zu erkennen, ob mehrere scheinbar isolierte Aktivitäten Teil einer koordinierten Angriffskette sind.
Die Korrelation muss auch nicht metrikgetrieben sein. Bei der Analyse von Bedrohungen ist es einfach, Mehrwert und neue Erkenntnisse zu gewinnen, indem man ältere Ergebnisse mit den neuen vergleicht.
Maschinelles Lernen und Anomalieerkennung
Bei der riesigen Datenmenge wird eine manuelle Analyse unpraktisch. Maschinelles Lernen kann dabei helfen, Muster und Anomalien zu identifizieren, die dem menschlichen Auge entgehen könnten. Algorithmen wie Isolation Forest oder K-Nearest Neighbor(KNN) werden häufig verwendet, um Abweichungen oder Cluster von häufig verwandten Daten zu erkennen.
from sklearn.ensemble import IsolationForest
# Assuming 'feature_set' contains relevant metrics for analysis
clf = IsolationForest(contamination=0.05)
anomalies = clf.fit_predict(feature_set)
Hier kennzeichnet die Variable Anomalien Datenpunkte, die von der Norm abweichen, und hilft Analysten, ungewöhnliches Verhalten schnell zu erkennen.
Verhaltensmuster & Endpunkt-Datenanalyse
Die Analyse von Endpunktverhaltensdaten, die aus Erkennungsregeln gesammelt werden, ermöglicht es uns, übergreifende Muster und Trends aufzudecken, die auf breitere Bedrohungslandschaften, Cyberkampagnen oder sich entwickelnde TTPs von Angreifern hinweisen können.
Muster des taktischen Fortschritts: Durch die Überwachung der Abfolge der erkannten Verhaltensweisen im Laufe der Zeit können wir Muster in der Art und Weise erkennen, wie sich Angreifer durch ihre Angriffskette bewegen. Wenn es beispielsweise einen anhaltenden Trend gibt, bei dem auf die Techniken des ersten Zugriffs die Ausführung und dann die laterale Bewegung folgt, ist dies ein Hinweis darauf, dass ein gängiges Angreifer-Playbook verwendet wird.
Trendanalyse in der Befehlszeile: Selbst innerhalb bösartiger Befehlszeilenargumente können bestimmte Muster oder Sequenzen entstehen. Die Überwachung der am häufigsten erkannten bösartigen Argumente kann Einblicke in bevorzugte Angriffstools oder Skripte geben.
Beispiel:
# Most frequently detected malicious command lines
top_malicious_commands = df.groupby('malicious_command_line').size()
.sort_values(ascending=False).head(10)
Trends bei der Prozessinteraktion: Während einzelne Beziehungen zwischen übergeordneten und untergeordneten Prozessen bösartig sein können, kann das Erkennen von Trends in diesen Interaktionen auf weit verbreitete Malware-Kampagnen oder TTPs von Angreifern hinweisen. Wenn beispielsweise eine große Teilmenge von Endpunkten die gleiche ungewöhnliche Prozessinteraktion aufweist, kann dies auf eine gemeinsame Bedrohung hindeuten.
Zeitliche Verhaltensmuster: Genau wie bei anderen Datentypen kann der zeitliche Aspekt von Endpunktverhaltensdaten aufschlussreich sein. Die Analyse der Häufigkeit und des Zeitpunkts bestimmter bösartiger Verhaltensweisen kann auf die Betriebszeiten oder die Dauer von Kampagnen des Angreifers hinweisen.
Beispiel:
# Analyzing frequency of a specific malicious behavior over time
monthly_data = df.pivot_table(index='timestamp', columns='tactic', values='count', aggfunc='sum').resample('M').sum()
ax = monthly_data[['execution', 'defense-evasion']].plot(kind='bar', stacked=False, figsize=(12,6))
plt.title("Frequency of 'execution' and 'defense-evasion' Tactics Over Time")
plt.ylabel("Count")
ax.set_xticklabels([x.strftime('%B-%Y') for x in monthly_data.index])
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Hinweis: Dieses Bild stammt aus Beispieldaten und nicht aus dem Global Threat Report
Durch die Aggregation und Analyse von Endpunkt-Verhaltensdaten auf Makroebene identifizieren wir nicht nur isolierte Bedrohungen, sondern können auch Wellen, Trends und aufkommende Muster erkennen. Diese breitere Perspektive ermöglicht es Cybersicherheitsteams, groß angelegte Cyberbedrohungen effektiver zu antizipieren, sich darauf vorzubereiten und ihnen zu begegnen.
Dies sind zwar einige Beispiele für die Durchführung von Trendanalysen, aber es gibt keinen richtigen oder falschen Ansatz. Jeder Analyst hat seine eigenen Vorlieben oder Fragen, die er oder seine Stakeholder stellen möchten. Hier sind einige zusätzliche Fragen oder Fragen, die Analysten bei der Durchführung von Trendanalysen zu Cybersicherheitsdaten haben können.
- Was sind die drei wichtigsten Taktiken, die von Angreifern in diesem Quartal eingesetzt werden?
- Welche Erkennungsregeln werden am häufigsten ausgelöst, und gibt es einen roten Faden?
- Gibt es zeitbasierte Muster in Endpunktwarnungen, die möglicherweise auf die Zeitzone eines Angreifers hinweisen?
- Wie haben sich Cloud-Warnungen mit der Migration von mehr Diensten in die Cloud entwickelt?
- Welche Malware-Familien sind immer häufiger und was könnte die Ursache sein?
- Deuten die Datenmuster auf eine Saisonalität hin, wie z. B. erhöhte Aktivitäten gegen Jahresende?
- Gibt es Korrelationen zwischen externen Ereignissen und Spitzen bei Cyberaktivitäten?
- Wie unterscheiden sich die Wochentagsdaten von den Wochentagsdaten in Bezug auf Warnungen und Angriffe?
- Welche organisatorischen Ressourcen sind am stärksten betroffen, und sind ihre Abwehrmaßnahmen auf dem neuesten Stand?
- Gibt es Anzeichen für interne Bedrohungen oder ungewöhnliche Verhaltensweisen bei privilegierten Konten?
Die Trendanalyse in der Cybersicherheit ist ein dynamischer Prozess. Obwohl wir einige grundlegende Techniken und Fragen festgelegt haben, gibt es unzählige Möglichkeiten, sich diesem riesigen Bereich zu nähern. Jeder Analyst mag seine Vorlieben, Tools und Methoden haben, und das ist völlig in Ordnung. Das Wesentliche liegt in der kontinuierlichen Weiterentwicklung und Anpassung an unseren Ansatz, während wir uns der sich ständig verändernden Bedrohungslandschaft für jedes Ökosystem, das Bedrohungen ausgesetzt ist, bewusst sind.
Reduktion: Rationalisierung für mehr Klarheit
Nachdem wir die Anfangsphasen unserer Datenanalyse durchlaufen haben, treten wir nun in die nächste Phase ein: die Reduktion. In diesem Schritt geht es darum, unsere umfassenden Daten in ein besser verdauliches und fokussierteres Format zu verfeinern und zu konzentrieren.
Zusammenfassung der bisherigen Analysereise:
- Extraktion: In der Anfangsphase haben wir unsere Google Cloud-Umgebung eingerichtet und relevante Datensätze für unsere Analyse ausgewählt.
- Vorverarbeitung und Transformation: In dieser Phase wurden die Daten in unseren Colab-Notebooks extrahiert, verarbeitet und transformiert, um sie für eine detaillierte Analyse vorzubereiten.
- Trendanalyse: Diese Phase lieferte detaillierte Einblicke in Taktiken, Techniken und Malware von Cyberangriffen und bildete den Kern unserer Analyse.
Während die detaillierten Daten in unseren Colab Notebooks für einen Analysten umfangreich und informativ sind, könnten sie für ein breiteres Publikum zu komplex sein. Daher konzentriert sich die Reduktionsphase darauf, diese Informationen in eine prägnantere und zugänglichere Form zu bringen. Ziel ist es, die Erkenntnisse klar und verständlich zu machen, damit sie effektiv über verschiedene Abteilungen oder Stakeholder hinweg kommuniziert und genutzt werden können.
Auswählen und Aggregieren von Schlüsseldatenpunkten
Um unsere Ergebnisse effektiv zu kommunizieren, müssen wir die Präsentation auf die Bedürfnisse des Publikums zuschneiden. Nicht jeder Stakeholder benötigt die volle Tiefe der gesammelten Daten. Viele bevorzugen eine zusammengefasste Version, die die umsetzbarsten Punkte hervorhebt. Hier kommt die Datenauswahl und -aggregation ins Spiel, wobei man sich auf die wichtigsten Elemente konzentriert und sie in einem zugänglichen Format präsentiert.
Im Folgenden finden Sie ein Beispiel für die Verwendung von Pandas zum Aggregieren und Verdichten eines Datensatzes, wobei der Schwerpunkt auf den wichtigsten Aspekten des Endpunktverhaltens liegt:
required_endpoint_behavior_cols = ['rule_name','host_os_type','tactic_name','technique_name']
reduced_behavior_df = df.groupby(required_endpoint_behavior_cols).size()
.reset_index(name='count')
.sort_values(by="count", ascending=False)
.reset_index(drop=True)
columns = {
'rule_name': 'Rule Name',
'host_os_type': 'Host OS Type',
'tactic_name': 'Tactic',
'technique_name': 'Technique',
'count': 'Alerts'
}
reduced_behavior_df = reduced_behavior_df.rename(columns=columns)
Ein bemerkenswerter Aspekt dieses Codes und Prozesses ist die Flexibilität, die er bietet. Zum Beispiel können wir unsere Daten nach verschiedenen Datenpunkten gruppieren, die auf unsere Bedürfnisse zugeschnitten sind. Sind Sie daran interessiert, beliebte Taktiken zu identifizieren, die von Angreifern verwendet werden? Gruppieren Sie nach der MITRE ATT&CK-Taktik. Möchten Sie Licht ins Dunkel bringen, wenn es darum geht, bösartige Binärdateien zu maskieren? Überprüfen Sie die Extraktion, um weitere ECS-Felder (Elastic Common Schema) hinzuzufügen, z. B. Dateipfad, Filter nach Defense Evasion und Aggregieren, um die häufig betretenen Pfade anzuzeigen. Dieser Ansatz stellt sicher, dass wir Datensätze erstellen, die sowohl aufschlussreich als auch nicht überwältigend reichhaltig sind und auf Stakeholder zugeschnitten sind, die die Ursprünge unserer Analysen verstehen möchten.
Bei diesem Prozess werden die Daten nach relevanten Kategorien wie Regelname, Hostbetriebssystemtyp und MITRE ATT&CK-Taktiken und -Techniken gruppiert und dann die Vorkommen gezählt. Diese Methode hilft bei der Identifizierung der am weitesten verbreiteten Muster und Trends in den Daten.
Diagrammbeispiel für die Datenaggregation, um einen reduzierten Datensatz zu erhalten
Exportieren reduzierter Daten nach Google Tabellen für die Barrierefreiheit
Die reduzierten Daten, die jetzt als Datenrahmen im Arbeitsspeicher gespeichert sind, können exportiert werden. Wir verwenden Google Sheets als Plattform, um diese Erkenntnisse zu teilen, da es eine breite Zugänglichkeit und eine benutzerfreundliche Oberfläche bietet. Der Prozess des Exportierens von Daten in Google Sheets ist dank der Integration mit Google Cloud-Diensten unkompliziert und effizient.
Hier ist ein Beispiel dafür, wie die Daten mit Python aus unserem Colab-Notebook in Google Sheets hochgeladen werden können:
auth.authenticate_user()
credentials, project = google.auth.default()
gc = gspread.authorize(credentials)
workbook = gc.open_by_key("SHEET_ID")
behavior_sheet_name = 'NAME_OF_TARGET_SHEET'
endpoint_behavior_worksheet = workbook.worksheet(behavior_sheet_name)
set_with_dataframe(endpoint_behavior_worksheet, reduced_behavior_df)
Mit ein paar einfachen Codezeilen haben wir unsere Datenanalyseergebnisse effektiv in Google Sheets übertragen. Dieser Ansatz ist aufgrund seiner Zugänglichkeit und Benutzerfreundlichkeit weit verbreitet. Es gibt jedoch mehrere andere Methoden zum Präsentieren von Daten, die jeweils für unterschiedliche Anforderungen und Zielgruppen geeignet sind. Zum Beispiel könnten sich einige für eine Plattform wie Looker entscheiden, um die verarbeiteten Daten in einem dynamischeren Dashboard-Format darzustellen. Diese Methode ist besonders nützlich, um interaktive und visuell ansprechende Präsentationen von Daten zu erstellen. Es stellt sicher, dass selbst Beteiligte, die mit den technischen Aspekten der Datenanalyse nicht vertraut sind, wie z. B. diejenigen, die mit Jupyter Notebooks arbeiten, die Erkenntnisse leicht verstehen und daraus einen Nutzen ziehen können.
Dieser optimierte Prozess der Datenreduzierung und -darstellung kann auf verschiedene Arten von Datensätzen angewendet werden, z. B. Cloud-SIEM-Warnungen, Warnungen zum Endpunktverhalten oder Malware-Warnungen. Das Ziel bleibt dasselbe: die Daten zu vereinfachen und zu konzentrieren, um klare und umsetzbare Erkenntnisse zu gewinnen.
Präsentation: Präsentation der Erkenntnisse
Nachdem wir unsere Datensätze akribisch verfeinert haben, konzentrieren wir uns nun auf die letzte Phase: die Präsentation. Hier nehmen wir unsere Datensätze, die jetzt übersichtlich auf Plattformen wie Google Sheets oder Looker organisiert sind, und transformieren sie in ein Format, das sowohl informativ als auch ansprechend ist.
Pivot-Tabellen für eine detaillierte Analyse
Anhand von Pivot-Tabellen können wir einen umfassenden Überblick über die Ergebnisse unserer Trendanalyse erstellen. Diese Tabellen ermöglichen es uns, Daten mehrdimensional darzustellen und Einblicke in verschiedene Aspekte der Cybersicherheit zu bieten, wie z. B. die vorherrschenden MITRE ATT&CK-Taktiken, ausgewählte Techniken und bevorzugte Malware-Familien.
Unser Ansatz zur Datenvisualisierung umfasst:
- Breiter Überblick mit MITRE ATT&CK-Taktiken: Beginnend mit einer allgemeinen Perspektive verwenden wir Pivot-Tabellen, um einen Überblick über die verschiedenen Taktiken zu geben, die bei Cyberbedrohungen eingesetzt werden.
- Detaillierte Aufschlüsselung: Von dieser Panoramaansicht aus tauchen wir tiefer ein, erstellen separate Pivot-Tabellen für jede beliebte Taktik und verzweigen uns dann in detaillierte Analysen für jede Technik und spezifische Erkennungsregel.
Dieser methodische Prozess hilft dabei, die Feinheiten der Erkennungslogik und der Warnungen aufzudecken und die Geschichte der Cyber-Bedrohungslandschaft effektiv zu erzählen.
Diagramm, das den Aggregationstrichter in kontextbezogene Berichtsinformationen zeigt
Zugänglichkeit für alle Zielgruppen: Unsere Datenpräsentationen richten sich an ein breites Publikum, von denen, die sich intensiv mit Data Science auskennen, bis hin zu denen, die ein einfacheres Verständnis bevorzugen. Das Google Workspace-Ökosystem erleichtert den Austausch dieser Erkenntnisse, sodass Pivot-Tabellen, reduzierte Datensätze und andere Elemente für alle am Berichtserstellungsprozess Beteiligten leicht zugänglich sind.
Visualisierungen in Berichte integrieren: Bei der Erstellung eines Berichts, z. B. in Google Docs, ist die Integration von Diagrammen und Tabellen aus Google Tabellen nahtlos. Diese Integration stellt sicher, dass alle Änderungen an den Datensätzen oder Pivot-Tabellen im Bericht leicht aktualisiert werden können, wodurch die Effizienz und Kohärenz der Präsentation erhalten bleibt.
Die Präsentation auf das Publikum zuschneiden: Bei der Präsentation von Data Insights geht es nicht nur um die Vermittlung von Informationen; Es geht darum, dies auf visuell ansprechende und verdauliche Weise zu tun. Für ein technisch versierteres Publikum ist ein interaktives Colab Notebook mit dynamischen Diagrammen und Funktionen ideal. Im Gegensatz dazu ist für Marketing- oder Designteams ein gut gestaltetes Dashboard in Looker möglicherweise besser geeignet. Entscheidend ist, dass die Präsentation klar, prägnant und visuell ansprechend ist und auf die spezifischen Vorlieben und Bedürfnisse des Publikums zugeschnitten ist.
Fazit: Reflexion über die Reise zur Datenanalyse
Abschließend ist es wertvoll, über das Gebiet nachzudenken, in dem wir uns bei der Analyse von Cyber-Bedrohungsdaten bewegt haben. Diese Reise umfasste mehrere wichtige Phasen, von denen jede wesentlich zu unseren endgültigen Erkenntnissen beitrug.
Eine Reise durch das Cloud-Ökosystem von Google
Unser Weg führte uns durch mehrere Google Cloud-Dienste, darunter GCP, GCE, Colab Notebooks und Google Workspace. Jeder von ihnen spielte eine entscheidende Rolle:
Erkundung von Daten: Wir begannen mit einer Reihe von cyberbezogenen Fragen, die wir beantworten wollten, und untersuchten, welche riesigen Datensätze uns zur Verfügung standen. In diesem Blog haben wir uns ausschließlich auf die Verfügbarkeit von Telemetriedaten in BigQuery konzentriert. Datenextraktion: Wir begannen mit der Extraktion von Rohdaten und nutzten BigQuery, um große Datenmengen effizient zu verarbeiten. Die Extraktion erfolgte sowohl in BigQuery als auch in unseren Colab-Notebooks. Datenverarbeitung und -verarbeitung: Die Leistungsfähigkeit von Python und der Pandas-Bibliothek wurde genutzt, um diese Daten zu bereinigen, zu aggregieren und zu verfeinern, ähnlich wie ein Koch, der geschickt Zutaten zubereitet. Trendanalyse: Anschließend führten wir eine Trendanalyse unserer reformierten Datensätze mit verschiedenen Methoden durch, um wertvolle Einblicke in die Taktiken, Techniken und Verfahren der Angreifer im Laufe der Zeit zu gewinnen. Reduktion: Ausgehend vom Rückgrat unserer Trendanalyse haben wir unsere verschiedenen Datensätze durch gezielte Datenpunkte aggregiert, um sie Stakeholdern und Kollegen zu präsentieren. Übergang zur Präsentation: Die Leichtigkeit, mit der wir von der Datenanalyse zur Präsentation in einem Webbrowser wechseln können, unterstreichen die Agilität unserer Tools und ermöglichen einen nahtlosen Arbeitsablauf.
Modularität und Flexibilität im Workflow
Ein wesentlicher Aspekt unseres Ansatzes war die Modularität unseres Workflows. In jeder Phase, von der Datenextraktion bis zur Präsentation, wurden im Google Cloud-Ökosystem austauschbare Komponenten verwendet, die es uns ermöglichten, den Prozess an die spezifischen Bedürfnisse anzupassen:
Vielseitige Werkzeuge: Die Google Cloud Platform bot eine Vielzahl von Tools und Optionen, die Flexibilität bei der Datenspeicherung, -analyse und -präsentation ermöglichten. Kundenspezifischer Analysepfad: Abhängig von den spezifischen Anforderungen unserer Analyse können wir verschiedene Werkzeuge und Methoden anpassen und auswählen, um einen maßgeschneiderten Ansatz für jeden Datensatz zu gewährleisten. Authentifizierung und Autorisierung: Da unsere Unternehmen im Google Cloud-Ökosystem untergebracht sind, war der Zugriff auf verschiedene Tools, Websites, Daten und mehr problemlos, was einen reibungslosen Übergang zwischen den Diensten gewährleistete.
Orchestrierung und Tool-Synchronisierung
Die Synergie zwischen unseren technischen Fähigkeiten und den gewählten Tools war entscheidend. Diese Harmonisierung stellte sicher, dass der Analyseprozess nicht nur für dieses Projekt effektiv war, sondern legte auch den Grundstein für effizientere und aufschlussreichere zukünftige Analysen. Die Tools wurden verwendet, um unsere Fähigkeiten zu erweitern, wobei der Fokus auf der Ableitung aussagekräftiger Erkenntnisse lag, anstatt sich in technische Komplexitäten zu verstricken.
Zusammenfassend lässt sich sagen, dass diese Reise durch die Datenanalyse die Bedeutung eines gut durchdachten Ansatzes, der Nutzung der richtigen Tools und Techniken sowie die Anpassungsfähigkeit unterstreicht, um die Anforderungen der Datenanalyse von Cyberbedrohungen zu erfüllen. Das Endergebnis ist nicht nur eine Reihe von Erkenntnissen, sondern eine verfeinerte Methodik, die auf zukünftige Datenanalysebemühungen im sich ständig weiterentwickelnden Bereich der Cybersicherheit angewendet werden kann.
Call to Action: Begeben Sie sich auf Ihre eigene Reise zur Datenanalyse
Ihr analytischer Arbeitsbereich ist fertig! Welche innovativen Ansätze oder Erfahrungen mit Google Cloud oder anderen Datenanalyseplattformen können Sie einbringen? Der Bereich der Datenanalyse ist riesig und vielfältig, und obwohl jeder Analyst eine einzigartige Note mitbringt, sind die zugrunde liegenden Methoden und Prinzipien universell.
Das Ziel besteht nicht nur darin, in Ihren aktuellen Analyseprojekten zu glänzen, sondern Ihre Techniken kontinuierlich zu verbessern und anzupassen. Diese kontinuierliche Verfeinerung stellt sicher, dass Ihre zukünftigen Bemühungen in der Datenanalyse noch produktiver, aufschlussreicher und wirkungsvoller werden. Tauchen Sie ein und erkunden Sie die Welt der Datenanalyse mit Google Cloud!
Wir freuen uns über jegliches Feedback und Engagement für dieses Thema! Wenn Sie dies bevorzugen, können Sie sich gerne im öffentlichen Slack-Kanal von Elastic #security engagieren.