Ein Anfängeransatz zur Nutzung von maschinellem Lernen für die Vorfallanalyse
Der Anfang
In großen Datensätzen können maschinelle Lernalgorithmen Muster erkennen und Anomalien erkennen. Wir können Modelle erstellen, die aus historischen Daten lernen und Abweichungen vom typischen Verhalten erkennen, indem wir ML auf die Erkennung von Sicherheitsereignissen anwenden. Mehrere Datenquellen wie Protokolle, Netzwerkverkehr, Benutzerzugriffsmuster und mehr können von ML-Modellen gleichzeitig analysiert werden. Die Modelle können darauf trainiert werden, eine Vielzahl von Sicherheitsereignissen zu erkennen, darunter Malware-Ausbrüche, unbefugte Zugriffsversuche, Datenexfiltration und unregelmäßiges Netzwerkverhalten. Ja, das sind zu viele Daten für mich. Egal, wie sehr Sie Absätze in Ihren WhatsApp-DMs von Ihrer Lieblingsperson lieben, diese Absätze sind verwirrend.
Wir müssen einen methodischen Ansatz verwenden, der Datenvorbereitung und -erfassung, Characteristic-Engineering und -Auswahl, Modelltraining und -bewertung, Alarmerzeugung und Reaktion umfasst, um effektive Playbooks für die Erkennung von Sicherheitsereignissen zu erstellen.
Characteristic Engineering und Datenerfassung
Der erste Schritt besteht darin, relevante Sicherheitsereignisdaten aus zahlreichen Quellen zu sammeln, darunter Cloud SCC, Cloud Logging und Cloud Monitoring. Um diese Daten für das ML-Modelltraining geeignet zu machen, sind Vorverarbeitung und Formattransformation erforderlich. Beispielsweise können irrelevante Merkmale entfernt, fehlende Werte behandelt und kategoriale Variablen im Rahmen der Datenvorverarbeitung kodiert werden. Im Grunde geht es darum, Ihre Daten für die Verwendung in weiteren Schritten freizugeben. Genauso wie Sie offene Gespräche nicht mögen, hasst eine Maschine auch unsaubere Daten.
Der Prozess des Characteristic-Engineerings wandelt unstrukturierte Daten in informative Options um, die Sicherheitsvorfälle genau widerspiegeln. Das Erstellen zeitbasierter Options, das Aggregieren von Daten mit unterschiedlicher Granularität und das Extrahieren statistischer Merkmale sind einige Beispiele für die Aufgaben, die in diesem Schritt anfallen können. Die relevantesten Merkmale für das Coaching des ML-Modells können mithilfe von Merkmalsauswahlansätzen wie Korrelationsanalyse und Merkmalswichtigkeitsschätzung ermittelt werden.
Nächste Schritte?
Modellschulung und -bewertung: Auf den vorverarbeiteten und merkmalsselektierten Daten werden in diesem Schritt ML-Modelle trainiert. Entscheidungsbäume, Random Forests, Assist Vector Machines und Deep-Studying-Modelle wie neuronale Netze sind nur einige Beispiele für die vielen ML-Techniken, die eingesetzt werden können. Unter Verwendung relevanter Bewertungskriterien wie Genauigkeit, Präzision, Erinnerung und F1-Rating werden die trainierten Modelle bewertet. Kreuzvalidierung und Hyperparameter-Tuning sind Methoden, die die Generalisierung und Leistung von Modellen verbessern.
Alarmierung und Reaktion: Die ML-Modelle können verwendet werden, um Warnungen für gefundene Sicherheitsvorfälle zu erstellen, sobald diese trainiert und bewertet wurden. Diese Warnungen können an bestimmte Sicherheitsteams verteilt oder mit bereits installierten Incident-Response-Instruments verknüpft werden. Die Maßnahmen und Reaktionen, die entsprechend der Schwere und Artwork der beobachteten Sicherheitsvorfälle durchgeführt werden sollten, sind in ordnungsgemäß erstellten Playbooks festgelegt.
Nehmen wir einige Beispiele
Datensammlung: Importieren von zu analysierenden Protokolldaten aus dem Cloud-Protokollierungsdienstprogramm für unser Projekt in einem bestimmten Zeitstempel und Senden der neu erfassten Daten an den Präprozessor, um den sauberen Datenrahmen zurückzugeben, wodurch unnötige Unordnung und Felder aus den Daten entfernt werden
# Import vital libraries
from google.cloud import logging# Create a shopper for Cloud Logging
shopper = logging.Shopper()
# Retrieve logs from the required time vary and filter primarily based on log sorts
logs = shopper.list_entries(filter_='timestamp >= TIMESTAMP("2023-06-01T00:00:00Z") AND logName="initiatives/your-project-name/logs/cloudaudit.googleapis.compercent2Factivity"')
# Preprocess and rework the logs right into a pandas DataFrame
# Carry out vital knowledge cleansing, characteristic engineering, and encoding
# Return the preprocessed DataFrame
def preprocess_logs(logs):
# Code for preprocessing the logs
return preprocessed_logs
# Name the preprocessing operate on the retrieved logs
preprocessed_logs = preprocess_logs(logs)
Characteristic-Engineering: Hier verwenden wir den Chi-Quadrat-Check und SelectKBest, um die Bereinigung des erhaltenen Datensatzes zu erleichtern und Felder zu entfernen, die wir nicht benötigen, indem wir Datenfeldbeschriftungen manuell eingeben, wodurch die Daten in einen verarbeiteten Datenrahmen umgewandelt werden, mit dem wir jetzt arbeiten können!
import pandas as pd
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2# Outline the characteristic engineering and choice operate
def feature_engineering_selection(preprocessed_logs):
# Carry out characteristic engineering duties
# Create new options, combination knowledge, extract statistical options, and so forth.
# Choose essentially the most related options utilizing SelectKBest and chi-squared check
X = preprocessed_logs.drop(columns=['label'])
y = preprocessed_logs['label']
selector = SelectKBest(chi2, ok=10)
selected_features = selector.fit_transform(X, y)
# Return the preprocessed logs with chosen options
return selected_features
# Name the characteristic engineering and choice operate
selected_features = feature_engineering_selection(preprocessed_logs)
Coaching unseres Modells: Ah ja, jetzt ist unsere Arbeit hier erledigt, lasst den Pc arbeiten. Mithilfe eines einfachen train_test_split-Ansatzes mit RandomForestClassifier trainieren wir die Daten, um Ereignisse zu erkennen, die unter „Kritisch“, „Hoch“ oder einer anderen Schweregradkategorie fallen, die durch Beschriftungen im Cloud-Audit erwähnt werden, und protokollieren angepasste Daten, die wir im vorherigen Schritt generiert haben. Sie können das Modell jederzeit anpassen, um die gewünschte Genauigkeit zu erzielen.
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# Cut up the dataset into coaching and testing units
X_train, X_test, y_train, y_test = train_test_split(
selected_features, preprocessed_logs['label'], test_size=0.2, random_state=42)
# Practice a Random Forest classifier
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.match(X_train, y_train)
# Consider the mannequin on the check set
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Mannequin accuracy:", accuracy)
Alarmierung und Reaktionsgenerierung: Jetzt senden wir endlich eine Warnung an unser Modell und lassen es in diesem Fall über Vorfälle mit hohem Schweregrad entscheiden. Geben Sie einfach Ihre eigenen Daten ein und machen Sie es besser.
# Generate alerts primarily based on the skilled mannequin's predictions
def generate_alerts(X_test, y_pred):
alerts = []
for i in vary(len(X_test)):
if y_pred[i] == 1:
alert = {
'event_id': X_test[i]['event_id'],
'severity': 'Excessive',
'description': 'Potential safety occasion detected.',
'timestamp': X_test[i]['timestamp']
}
alerts.append(alert)
return alerts# Name the alert era operate
alerts = generate_alerts(X_test, y_pred)
# Carry out applicable actions and responses primarily based on the generated alerts
# For instance, ship alerts to the safety workforce, set off incident response workflows, and so forth.
Falls Sie den Prozess mit VertexAI rationalisieren möchten
A. Konsolidieren Sie die Abhängigkeiten und den Code für maschinelles Lernen in einem Python-Modul.
B. Legen Sie das Trainingsskript und alle zusätzlichen Setup-Einstellungen fest, wenn Sie einen benutzerdefinierten AI Platform-Job auf Vertex AI erstellen.
C. Richten Sie den Job so ein, dass er bei Bedarf die erforderlichen Hardwarebeschleuniger und die Laufzeitversion für maschinelles Lernen verwendet.
D. Geben Sie Vertex AI den Auftrag, und es richtet die erforderlichen Ressourcen ein und beginnt mit dem Trainingsprozess.
e. Verfolgen Sie die Entwicklung der Aufgabe und rufen Sie nach Abschluss der Aufgabe das trainierte Modell ab.
Wir werden in diesem Weblog nicht tief in den Prozess mit VertexAI eintauchen, werden aber sicherlich in einem späteren Artikel auf die Nutzung des erstaunlichen Instruments zurückkommen 😉
Anwendungsfälle
Es magazine etwas eigenartig erscheinen, diesen Ansatz zum Erstellen von Warnungen und zum Verwalten von Daten zu verwenden, wenn Safety Command Heart und andere Cloud-native-Ansätze dies problemlos tun können. Der besprochene Ansatz wird häufig verwendet, um Ergebnisse für benutzerdefinierten Datenverkehr auf Ports und Diensten zu empfehlen, die nicht standardmäßige Betriebsports nutzen. Auch in kleineren Anwendungsfällen wie:
- Erkennung von Netzwerkverkehrsanomalien: Anomalien wie ungewöhnliche Kommunikationsmuster, unerwartete Datenübertragungen oder verdächtige IP-Adressen können mithilfe von Netzwerkverkehrsprotokollen und mithilfe von ML-Modellen gefunden werden.
- Erkennung böswilliger Aktivitäten in Benutzerzugriffsprotokollen: Um potenzielle Sicherheitsverstöße zu identifizieren, können ML-Modelle ungewöhnliche Benutzerzugriffsmuster erkennen, wie zum Beispiel wiederholte fehlgeschlagene Anmeldeversuche, unbefugte Zugriffsversuche oder verdächtige Kontoaktivitäten.
- Erkennung unberechtigter Zugriffe auf wise Daten: Unbefugte Zugriffsversuche auf wise Daten in Datenbanken oder Dateispeichersystemen können durch die Überwachung von Zugriffsprotokollen und den Einsatz von ML-Algorithmen entdeckt werden.
Auch wenn Protokolle aus Quellen eingehen, die nicht besonders bekannt sind, wie z. B. externe Instruments, nutzen integrierte Infrastruktur und benutzerdefinierte Protokollsenken solche Lösungen, um die besten Ergebnisse zu erzielen.
Schlussfolgern
Unternehmen können mögliche Angriffe proaktiv erkennen und schnell reagieren, indem sie Playbooks zur Erkennung von Sicherheitsereignissen in Google Cloud entwickeln. Durch den Einsatz von ML-Algorithmen können wir große Datenmengen sofort analysieren, automatisch Anomalien erkennen und Warnungen für eine gründlichere Untersuchung erstellen. Ausgehend von den angebotenen Codebeispielen und Erklärungen können Google Cloud-Nutzer eine ML-basierte Erkennung von Sicherheitsereignissen entwickeln. Um den sich ändernden Sicherheitsrisiken immer einen Schritt voraus zu sein, ist es entscheidend, diese Strategien an die jeweiligen Bedürfnisse anzupassen und die Modelle kontinuierlich weiterzuentwickeln. Denn selbst wenn Sie es nicht verstehen können, kann es eine Maschine, vorausgesetzt, Sie verstehen es auch. Ah, es ist eine Rekursion, Tschüss!