Die Sicherheitsüberwachung von Windows-Systemen erfordert eine präzise und umfassende Erfassung von Ereignisprotokollen. Zu den wertvollsten Quellen gehören Sysmon und PowerShell-Protokolle. Diese Tools ermöglichen eine tiefgehende Analyse von System- und Benutzeraktivitäten sowie von potentiell schadhafter PowerShell-Nutzung. Der Einsatz dieser Werkzeuge sollte daher eine hohe Priorität haben, um verdächtige Aktivitäten zu identifizieren und zu verfolgen.

Sysmon bietet einen detaillierten Einblick in Systemaktivitäten und Benutzerverhalten. Um Sysmon zu installieren, lädt man zunächst die neueste Version von der Sysinternals-Website herunter. Die ZIP-Datei enthält sowohl 32- als auch 64-Bit-Versionen des Programms. Nach dem Entpacken der Dateien wird eine XML-Konfigurationsdatei benötigt, um erweiterte Funktionen wie DNS-Query-Logging zu aktivieren. Eine empfohlene Konfigurationsdatei kann von GitHub heruntergeladen werden, die von Olaf Hartong, einem niederländischen Sicherheitsexperten, gepflegt wird. Diese Datei wurde so angepasst, dass sie eine ausgewogene und sinnvolle Erfassung von Systemereignissen ermöglicht.

Die Installation erfolgt über PowerShell, indem das Sysmon-Verzeichnis in den Ordner „Program Files“ kopiert wird. Danach wird Sysmon mit der entsprechenden Konfigurationsdatei installiert. Einmal konfiguriert, sendet Sysmon kontinuierlich Protokolle, die durch Winlogbeat an ein zentrales System wie Logstash weitergeleitet werden. Auf diese Weise können Sysmon-Daten in einem umfassenden Sicherheitsüberwachungs-Setup integriert werden.

Ein zusätzliches Augenmerk sollte auf die Möglichkeit gelegt werden, Sysmon auf mehreren Maschinen eines Netzwerks zu installieren. Dies kann über Gruppenrichtlinien auf Windows-Domänen oder durch das Bereitstellen von Sysmon in einer „Gold-Image“-Konfiguration für Cloud- oder virtuelle Desktop-Systeme erfolgen. Auf diese Weise lässt sich Sysmon zentral installieren, ohne dass die Konfigurationsdateien manuell auf jedem Host abgelegt werden müssen.

Neben Sysmon ist das vollständige Erfassen von PowerShell-Aktivitäten ebenfalls von Bedeutung. PowerShell-Blockprotokolle liefern wertvolle Hinweise darauf, welche Skripte und Befehle auf einem System ausgeführt werden. Angreifer nutzen oft verschleierte oder obfuskierte Skripte, um ihre Aktivitäten zu tarnen. Durch die vollständige Aktivierung des PowerShell-Skripterfassungsmechanismus können diese verschlüsselten oder kodierten Befehle in einem entschlüsselten Format im Protokoll angezeigt werden, was die Nachverfolgbarkeit erheblich verbessert.

Standardmäßig protokolliert Windows nur verdächtige PowerShell-Befehle. Um eine vollständige Erfassung zu gewährleisten, muss die PowerShell-Skripterfassung explizit über die Windows-Registry aktiviert werden. Hierzu wird ein einfaches PowerShell-Skript verwendet, das die erforderlichen Registrierungseinträge vornimmt. Ein alternativer Ansatz besteht darin, diese Funktion über Gruppenrichtlinien in einer Domäne zu aktivieren, was eine zentralisierte Verwaltung für große Netzwerke ermöglicht. Die Aktivierung des Blockprotokolls in PowerShell gibt eine detailliertere Sicht auf die ausgeführten Skripte und deren Parameter.

Ein weiterer Aspekt der PowerShell-Überwachung betrifft die Modulprotokollierung. Diese Protokolle zeichnen auf, welche PowerShell-Module und -Befehle aufgerufen werden, was zusätzliche Einblicke in die Aktionen von Angreifern bietet. Ein großer Vorteil der Modulprotokollierung ist die Erkennung von obfuskierten oder versteckten Befehlen, die ansonsten in den Skripterfassungsprotokollen nicht sichtbar wären. Auch diese Funktion kann über die Windows-Registry oder Gruppenrichtlinien aktiviert werden.

Es ist jedoch wichtig, dass man sich der möglichen Auswirkungen auf die Speichernutzung bewusst ist, da die Aktivierung von Modulprotokollen zu einer hohen Anzahl an Protokolleinträgen führen kann. Daher sollte vor der Aktivierung eine sorgfältige Planung erfolgen, insbesondere im Hinblick auf den Speicherplatz und die Archivierung der Protokolle.

Abschließend lässt sich sagen, dass die Integration von Sysmon und PowerShell-Logging in ein Sicherheitsüberwachungssetup eine leistungsstarke Methode zur Überwachung und Analyse von Windows-Systemen darstellt. Die Nutzung dieser Werkzeuge trägt dazu bei, verdächtige Aktivitäten schneller zu identifizieren und auf potenzielle Sicherheitsverletzungen frühzeitig zu reagieren. Diese Schritte sollten jedoch immer mit Bedacht und unter Berücksichtigung der Infrastruktur und Speicheranforderungen implementiert werden.

Wie man Netzwerkereignisse mit Integrationen und Agenten effizient verfolgt

Um Netzwerkprotokolle effizient zu überwachen, bietet das Menü „Change defaults“ eine zentrale Möglichkeit, verschiedene Netzwerkprotokolle auszuwählen oder auszuschließen. Dabei ist besonders wichtig, dass die Schaltfläche „Monitor Processes“ für diverse Protokolle aktiviert werden kann, um Prozessnamen jedem Netzwerkereignis zuzuordnen. Diese Funktion ist äußerst nützlich, da sie hilft, verdächtige Netzwerkverkehrsprotokolle mit dem Hostprozess zu verknüpfen, der sie erzeugt hat. Es wird empfohlen, alle verfügbaren Protokolle und Prozessnamen zu aktivieren, um den Hostprozess hinter jeder Netzwerkverbindung zu sehen – ein wertvolles Werkzeug für die Forensik. Zusätzlich können Listen von Ports für jede Dienstleistung erstellt werden, wenn auf nicht-standardisierten Ports gearbeitet wird, etwa ein Webserver auf Port 12345.

Nachdem die gewünschten Einstellungen vorgenommen wurden, kann der Agent durch Auswahl von „Agent policy 1“ auf der Registerkarte „Existing hosts“ angepasst werden. Dies sorgt dafür, dass der Agent auf der ersten Elastic-VM diese neue Integration empfängt. Ein Klick auf „Save and continue“ und „Save and deploy changes“ im Bestätigungs-Popup sorgt dafür, dass die Änderungen im System übernommen werden. Die Netzwerkprotokolle werden nun in Kibana unter der Kategorie „event.category: 'network'“ angezeigt, was bedeutet, dass die Integration erfolgreich angewendet wurde. Wenn die Ereignisse nicht sofort erscheinen, sollte man einen Moment warten, da die Änderungen etwa eine Minute benötigen, um wirksam zu werden.

Ein weiterer nützlicher Aspekt für die Netzwerküberwachung ist die Integration von Iptables-Protokollen. Diese Funktion liest Iptables-Firewall-Protokolle auf Linux-Hosts aus. Die Integration wird durch Hinzufügen eines neuen Moduls in die Agent-Policy aktiviert, wobei man in den Einstellungen sicherstellt, dass die UDP- und TCP-Netzwerk-Inputs deaktiviert und die Option für journald aktiviert ist. In Kibana können diese Protokolle durch die Eingabe von „event.category: 'network' AND event.dataset: 'iptables.log'“ abgefragt werden. Es besteht auch die Möglichkeit, die UFW-Protokollierung zu erhöhen, um mehr Ereignisse zu erfassen, was in vielen Fällen bei der Analyse von Netzwerkaktivitäten hilfreich ist.

Es ist wichtig, die Anzahl der verwendeten Integrationen zu begrenzen, um Speicherplatz in Elasticsearch zu sparen, da jede Integration zusätzliche Daten hinzufügt, was in Produktionsumgebungen teuer werden kann. In einer Umgebung mit mehreren Agenten ist es nicht erforderlich, dass alle Agenten dieselben Integrationen verwenden. Einige Agenten, die Daten von Netzwerkgeräten oder APIs abrufen, können mit spezielleren Integrationen versehen werden, während andere Agenten mit grundlegenden Sammlungsrichtlinien auskommen. So können zum Beispiel Integrationen, die für die Vorfallreaktion und -verhinderung zuständig sind, unabhängig von anderen Überwachungsrichtlinien angewendet werden.

Im Falle einer Infektion durch Malware oder eines Sicherheitsvorfalls können Agenten schnell angepasst werden, um relevante Daten für die Analyse bereitzustellen. Zum Beispiel könnte das Hinzufügen einer Packet Capture-Integration für einen bestimmten Bürostandort oder eine Abteilung entscheidende Informationen liefern, um die Verbreitung des Angriffs zu verfolgen und zu isolieren. Wenn der Vorfall eingedämmt ist, kann diese Integration wieder entfernt werden.

Es gibt jedoch auch Situationen, in denen Agenten nicht benötigt werden. Viele wichtige Integrationen, wie etwa das Auslesen von Host-Protokollen und das Nachverfolgen von Netzwerkereignissen, werden bereits durch Beats-Module wie Filebeat und Packetbeat abgedeckt. Die Installation von Filebeat ist oft einfacher als die eines Elastic-Agenten, und in vielen Compliance-Szenarien reicht es aus, die Ereignisse von Filebeat’s Systemmodul zu überwachen. Während Beats auch in vielen Fällen nützlich sind, bieten Agenten eine schnellere Möglichkeit, Richtlinien zu aktualisieren, da Änderungen über die GUI vorgenommen werden können, ohne die Konfigurationsdateien manuell bearbeiten zu müssen.

In einigen Netzwerkkonfigurationen, in denen Hosts durch Firewalls oder Bastionen isoliert sind, ist es möglicherweise nicht möglich, die Agenten direkt mit Elasticsearch oder dem Fleet zu verbinden. In solchen Fällen kann ein Standalone-Agent genutzt werden. Dieser Agent kann Daten sammeln und über Logstash oder Kafka an das zentrale System übermittelt werden. Der Standalone-Agent muss dabei in der Lage sein, sich mit einem Logstash-Server zu verbinden, um die gesammelten Daten zu Elasticsearch zu senden. Ein wichtiger Schritt hierbei ist die Erstellung eines API-Schlüssels, der Logstash den notwendigen Zugriff gewährt, um die gesammelten Daten zu speichern.

Für die Einrichtung eines Standalone-Agents muss zunächst der bestehende Agent von einem Host deinstalliert werden, falls dieser bereits installiert ist. Anschließend werden die notwendigen TLS-Zertifikate heruntergeladen und die Konfigurationsdateien angepasst, um den neuen Standalone-Agenten mit Logstash zu verbinden. Dabei ist es wichtig, sicherzustellen, dass die Netzwerkkonfiguration und die Verbindungen korrekt eingerichtet sind, um eine reibungslose Datenübertragung zu gewährleisten. Ein Standalone-Agent bietet jedoch nicht die gleichen Vorteile wie die Verwendung eines Agenten innerhalb des Fleet, etwa automatische Richtlinienaktualisierungen, und erfordert manuelle Konfigurationen für jede Anpassung.

Die Integration von verschiedenen Protokollen und die genaue Überwachung von Netzwerkereignissen ist unerlässlich, um Netzwerksicherheit und schnelle Reaktionsfähigkeit zu gewährleisten. Die Nutzung von Tools wie Elastic-Agenten und Kibana zur Sammlung, Analyse und Visualisierung von Netzwerkdaten hilft, verdächtige Aktivitäten frühzeitig zu identifizieren und auf Sicherheitsvorfälle schnell zu reagieren. Dabei sollten die Anforderungen an Speicherplatz und Datenfluss im Auge behalten werden, um die Effizienz und Kosteneffizienz der Implementierung zu maximieren.

Wie man Bedrohungsintelligenz-Daten im Cache speichert und vergleicht

Im heutigen digitalen Zeitalter, in dem Cyberangriffe immer raffinierter werden, ist es entscheidend, schnell auf Bedrohungsinformationen zuzugreifen, um Sicherheitsmaßnahmen effektiv zu ergreifen. Eine effektive Methode zur Verwaltung und Analyse von Bedrohungsindikatoren ist die Nutzung von Caching-Technologien wie Memcached. Durch den Einsatz von Logstash, einem leistungsstarken Open-Source-Werkzeug zur Verarbeitung von Logdaten, lassen sich Bedrohungsindikatoren in einem Cache speichern und später effizient abgleichen. Dieser Prozess ist ein wichtiger Bestandteil moderner Sicherheitsinfrastrukturen, insbesondere in Umgebungen, in denen Echtzeit-Bedrohungsintelligenz erforderlich ist.

Der grundlegende Ablauf bei der Arbeit mit Bedrohungsdaten ist das Speichern von Indikatoren, die durch verschiedene Quellen wie Filebeat und Logstash bereitgestellt werden. Diese Indikatoren können unterschiedliche Formen annehmen, etwa Hashes, IP-Adressen, URLs oder benutzerdefinierte Indikatoren. Ein häufiger Schritt in diesem Prozess ist die Standardisierung der Indikatorwerte, um Inkonsistenzen zu vermeiden. Dazu wird der Wert eines jeden Indikators, der in den Cache aufgenommen wird, auf Kleinbuchstaben umgewandelt. Dies ist besonders wichtig, da der Cache in einer einheitlichen Form abgefragt werden muss, um alle möglichen Übereinstimmungen schnell und zuverlässig zu finden.

Ein entscheidender Aspekt dieses Prozesses ist die Verwendung des Memcached-Systems, das für seine Schnelligkeit und Skalierbarkeit bekannt ist. Durch das Setzen von Einträgen im Cache können Bedrohungsindikatoren gespeichert werden, sodass sie später leicht abgerufen und verglichen werden können. Der Memcached-Filter in Logstash wird dazu genutzt, den jeweiligen Wert eines Indikators (z. B. eine IP-Adresse oder ein Hash-Wert) als Schlüssel zu setzen, während die zugehörige Bedrohungsnachricht als Wert gespeichert wird. Diese Konfiguration ist besonders nützlich, wenn große Mengen an Bedrohungsdaten verarbeitet werden müssen, da sie eine schnelle Suche nach bereits bekannten Bedrohungen ermöglicht.

Für die Abfrage dieser gespeicherten Indikatoren wird eine weitere Logstash-Konfiguration erstellt, die den abgerufenen Wert mit den aktuellen Ereignisdaten vergleicht. In diesem Fall wird der Memcached-Filter so konfiguriert, dass er nach den gespeicherten Bedrohungsindikatoren sucht und bei Übereinstimmung entsprechende Tags hinzufügt. Dies hilft, eine schnelle Identifikation von Bedrohungen zu ermöglichen, die mit den gespeicherten Indikatoren übereinstimmen. Zum Beispiel kann eine Übereinstimmung mit einer IP-Adresse das Tag „cti_source.ip“ erhalten, um die Quelle der Bedrohung zu kennzeichnen.

Ein weiteres wichtiges Thema bei der Arbeit mit Bedrohungsdaten ist die Möglichkeit von "Drift". Drift tritt auf, wenn ein Datenknoten aufgrund von Wartungsarbeiten oder Ausfällen nicht mit dem zentralen System synchronisiert wird. In solchen Fällen könnten Bedrohungsindikatoren fehlen oder veraltet sein. Eine Lösung hierfür könnte darin bestehen, ein benutzerdefiniertes Skript zu entwickeln, das fehlende Indikatoren nachträglich in den Cache einspeist, um sicherzustellen, dass keine Bedrohungen übersehen werden. Dies könnte in regelmäßigen Wartungsabläufen oder bei Bedarf automatisch geschehen, indem vergangene Zeiträume auf fehlende Indikatoren überprüft und entsprechende Daten nachgeladen werden.

Wenn Bedrohungsindikatoren von Analysten manuell eingereicht werden, beispielsweise über eine HTTP-Schnittstelle in Logstash, muss eine zusätzliche Herausforderung bewältigt werden: die Validierung und Integration dieser Daten in den bestehenden Datenfluss. Eine häufige Methode zur Eingabe von Indikatoren ist das Hochladen von CSV-Dateien, die von Analysten erstellt wurden. Diese Dateien können jedoch unvollständige oder unerwartete Daten enthalten, die verarbeitet und korrekt in den Cache integriert werden müssen.

Für eine reibungslose Handhabung von Analysten-Uploads sollten diese Daten auf ihre Integrität und Konsistenz geprüft werden. Hierbei ist es von großer Bedeutung, dass fehlerhafte oder unvollständige Einträge nicht den gesamten Prozess blockieren, sondern dass die Verarbeitung flexibel genug ist, um mit solchen Ausnahmen umzugehen.

Darüber hinaus ist es entscheidend, dass alle Daten, die in den Cache gelangen, korrekt mit den bestehenden Indikatoren in Elasticsearch abgeglichen werden. Durch den Einsatz von Elasticsearch als primäres Repository für Bedrohungsdaten können doppelte Einträge und Konflikte vermieden werden. Dies stellt sicher, dass der Cache nur die aktuellsten und relevantesten Informationen enthält, die bei der Analyse von Bedrohungen verwendet werden können.

Neben der Verwaltung und dem Vergleich von Bedrohungsdaten ist es ebenfalls wichtig, eine solide Wartungsstrategie zu entwickeln, um sicherzustellen, dass der Cache jederzeit aktuell ist. Dabei kann es hilfreich sein, regelmäßig die Konsistenz und Vollständigkeit des Caches zu überprüfen und gegebenenfalls eine Aktualisierung oder Nachbearbeitung von Daten durchzuführen. Gerade in hochdynamischen Sicherheitsumgebungen ist dies unerlässlich, um keine Bedrohung zu verpassen.

Die Nutzung von Memcached in Kombination mit Logstash stellt eine effiziente Möglichkeit dar, Bedrohungsintelligenz-Daten zu speichern und schnell auf diese zuzugreifen. Diese Technik kann einen wesentlichen Beitrag zur Erhöhung der Sicherheit und zur Optimierung von Sicherheitsprozessen in Unternehmen leisten. Die Herausforderung besteht nicht nur darin, die Daten korrekt zu speichern und abzugleichen, sondern auch darin, sicherzustellen, dass diese Informationen jederzeit zuverlässig und in Echtzeit verfügbar sind.