> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirespeed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Windows

> Microsoft-Windows-Telemetrie zentralisieren und weiterleiten

## Erste Schritte

Wirespeed unterstützt die Erfassung von Windows-Protokollen und -Telemetrie mit einer kostenlosen, agentenlosen Architektur:

1. [WEF](#wef-windows-event-forwarding) (Windows Event Forwarding) auf Endgeräten mit den gewünschten Protokollen
2. [WEC](#wec-windows-event-collection) (Windows Event Collector) auf einem einzelnen Server
3. [Winlogbeat](#winlogbeat): zum Lesen der WEC-Protokolle (z. B. aus dem Protokoll `ForwardedEvents`) und zum Senden an Logstash
4. [Logstash](#logstash): zum Weiterleiten der Protokolle von Winlogbeat an Wirespeed über HTTPS

WEF (viele Hosts) sendet Protokolle → WEC (ein einzelner Server) sammelt und leitet Protokolle weiter → Logstash → Wirespeed

Bevor Sie Logstash konfigurieren, folgen Sie der gemeinsamen Anleitung [Log-Forwarder](https://docs.wirespeed.co/de/integrations/log-forwarders.md), um **Windows Event Logs** hinzuzufügen und die **Forwarder-Details** zu öffnen. Verwenden Sie den dort angezeigten HTTPS-Listener als Ziel für Logstash.

> [!NOTE]
>
> Weitere Informationen zu WEF/WEC finden Sie in [diesem Microsoft-Artikel](https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/use-windows-event-forwarding-to-assist-in-intrusion-detection).

### WEF (Windows Event Forwarding)

**WEF** ist die native Methode von Microsoft (kein Agent erforderlich), um Windows-Protokolle und -Telemetrie zu sammeln und an einen zentralen Ort zu senden. In der Regel stammen diese von Windows-Servern vor Ort oder in einer Private Cloud, es können aber auch hochwertige Windows-Endgeräte einbezogen werden. Im Kontext dieser Dokumentation bezeichnen wir diese Systeme als **Quellsysteme**.

### WEC (Windows Event Collection)

**WEC** ist die native Methode von Microsoft (kein Agent erforderlich), um Protokolle von Quellsystemen zentral zu sammeln. In einer einfachen Architektur gibt es einen einzelnen Server in der lokalen oder Private-Cloud-Umgebung, der als WEC-Server dient. Dieser sollte kein Domänencontroller sein (Domänencontroller sind stattdessen WEF-Quellsysteme).

### Winlogbeat

**Winlogbeat** ist einer von vielen [Beats](https://www.elastic.co/beats), die Elastic für den Datenversand bereitstellt. Winlogbeat sendet Windows-Ereignisprotokolle an Elasticsearch oder Logstash und kann als Windows-Dienst installiert werden.

### Logstash

Logstash ist eine serverseitige Open-Source-Datenverarbeitungspipeline, die Daten aus einer Vielzahl von Quellen erfassen, transformieren und anschließend an einen „Stash“ senden kann.

## Windows Event Forwarder konfigurieren

Es gibt mehrere Möglichkeiten, WEF + WEC bereitzustellen. Unsere Empfehlung nutzt Group Policy, um Windows-Hosts anzuweisen, Telemetrie an den WEC-Server zu senden (Push), anstatt sie abzurufen (Pull). Sie können gerne die Pull-Methode verwenden, diese wird in dieser Dokumentation jedoch nicht behandelt.

1. Group Policy Management öffnen
   1. Führen Sie auf einem Domänencontroller oder einer Administrator-Workstation gpmc.msc aus.
2. Ein neues GPO (Group Policy Object) erstellen
   1. Klicken Sie mit der rechten Maustaste auf die OU, in der sich Ihre Server befinden (z. B. `Servers OU`) → **Create a GPO in this domain, and Link it here**.
   2. Name: `Windows Event Forwarding`.
   3. Klicken Sie mit der rechten Maustaste auf das GPO > **Edit**.
3. WinRM-Dienst aktivieren (ohne Remote Management)
   1. Computer Configuration > Policies > Windows Settings > Security Settings > System Services.
      1. Setzen Sie Windows Remote Management (WS-Management) auf **Automatic**.
      2. \*\*\[OPTIONAL] \*\*Wirespeed empfiehlt, eingehenden WinRM-Netzwerkverkehr auf allen Windows-Endgeräten zu blockieren, auf denen er nicht benötigt wird, da er Angreifern einen Weg für laterale Bewegung eröffnet. Auf dem WEC-Server muss er jedoch aktiviert sein. Wenn Sie diese Änderung vornehmen, verschieben Sie Ihren WEC-Server daher in eine separate OU, auf die sich diese Group-Policy-Einstellung nicht auswirkt.
         1. Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Remote Management (WinRM) > WinRM Service.
         2. Auf **Disabled** setzen
4. Adresse des WEC-Servers festlegen
   1. Computer Configuration > Policies > Administrative Templates > Windows Components > Event Forwarding.
   2. Aktivieren Sie die Einstellung und tragen Sie Folgendes in das Feld **Option** ein: `Server=http://WEC-Server01.domain.local:5985/wsman/SubscriptionManager/WEC,Refresh=60`
   3. Ersetzen Sie `WEC-Server01.domain.local` durch den FQDN Ihres WEC-Servers. Port `5985` ist der Standard für WinRM über HTTP. Port `5986` ist der Standard für WinRM über HTTPS. Dafür ist jedoch eine ordnungsgemäß intern bereitgestellte TLS-Zertifizierungsstelle in Ihrer Active-Directory-Umgebung erforderlich, damit alle Endgeräte den HTTPS-Zertifikaten vertrauen können. Ohne eine ordnungsgemäße PKI belassen Sie den Wert bei `5985` über HTTP.
5. PowerShell-Protokollierung und -Transkription aktivieren
   1. Computer Configuration > Policies > Administrative Templates > Windows Components > Windows PowerShell
   2. Aktivieren Sie **Turn on PowerShell Script Block Logging**
      1. Aktivieren Sie `Log script block invocation start/stop events` (4105/4106)
   3. Aktivieren Sie **Turn on Module Logging**
      1. Setzen Sie `Module Names` auf `*`
   4. Aktivieren Sie **Turn on PowerShell Transcription**
      1. **Transcription Output Directory**: **Leer lassen** (Standard ist `%UserProfile%\Documents\PowerShell_transcripts`)
      2. Aktivieren Sie **Include invocation headers**.
   5. Aktivieren Sie **Turn on PowerShell Remoting Transcription** (falls verfügbar)
      1. **Transcription Output Directory**: **Leer lassen** (Standard ist `%UserProfile%\Documents\PowerShell_transcripts`)
      2. Aktivieren Sie **Include invocation headers**.
6. **Befehlszeilenprotokollierung aktivieren**
   1. Computer Configuration > Policies > Administrative Templates > System > Audit Process Creation
   2. Aktivieren Sie **„Include command line in process creation events“**
      1. Dadurch wird das Feld CommandLine in Security Event ID 4688 für alle Prozesserstellungen befüllt
7. Mindestprotokollierung festlegen
   1. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Detailed Tracking
      1. Aktivieren Sie **Audit Process Creation**
         1. Auf **Success** setzen (Event ID 4688 für PowerShell-Aufrufe)
   2. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Account Logon
      1. Aktivieren Sie **Audit Kerberos Authentication Service**
         1. Auf **Success** und **Failure** setzen (Event IDs 4768, 4771)
      2. Aktivieren Sie **Audit Kerberos Service Ticket Operations**
         1. Auf **Success** und **Failure** setzen (Event ID 4769)
      3. Aktivieren Sie **Audit Other Account Logon Events**
         1. Auf **Success** und **Failure** setzen (Event ID 4776)
   3. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Logon/Logoff
      1. Aktivieren Sie **Audit Logoff**
         1. Auf **Success** setzen (Event ID 4634 für das Beenden von Sitzungen)
      2. Aktivieren Sie **Audit Other Logon/Logoff Events**
         1. Auf **Success** und **Failure** setzen (Event IDs 4648, 4778, 4779, 4800, 4801)
   4. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies
      1. **Audit Logon**: Aktivieren Sie **Success** und **Failure**, um lokale, interaktive und Remote-Anmeldetypen (z. B. RDP, Netzwerk) abzudecken.
      2. **Audit Account Lockout**: Aktivieren Sie **Success** und **Failure**
      3. **Audit Special Logon**: Aktivieren Sie **Success** (privilegierte Anmeldungen, z. B. Administratorrechte)
      4. **Audit User Account Management**: Aktivieren Sie **Success** und **Failure** (Erstellung und Änderung von Benutzern)
      5. **Audit Security Group Management**: Aktivieren Sie **Success** und **Failure** (Erstellung und Änderung von Gruppen)
      6. **Audit Audit Policy Change**: Aktivieren Sie **Success** und **Failure** (Änderungen an Überwachungsrichtlinien)
      7. **Audit Security System Extension**: Aktivieren Sie **Success** und **Failure** (Änderungen an Protokolleinstellungen)
      8. **Privilege Use**: \[Empfehlung] Deaktiviert oder nur **Failure** (Event IDs 4673, 4674)
      9. **Process Creation**: \[Empfehlung] **Success** aktiviert (Schritt 6, Event ID 4688)
      10. **File and Registry Access (Object Access)**: \[Empfehlung] **Disabled** oder nur **Failure** (Event IDs 4656, 4663)
          1. \[Optional] Bei Bedarf selektiv über SACLs für bestimmte Objekte aktivieren (nicht Gegenstand dieser Anleitung)
8. **Task-Scheduler-Protokollierung aktivieren**
   1. Computer Configuration > Policies > Administrative Templates > Windows Components > Task Scheduler
   2. Aktivieren Sie **„Turn On logging for task registration“**
      1. Dadurch werden Ereignisse für das Erstellen, Ändern und Ausführen geplanter Aufgaben erzeugt (Event IDs 106, 200, 201)

## Windows Event Collector konfigurieren

1. Bestimmen Sie einen Server (er sollte dem oben in der Group Policy festgelegten Server entsprechen), auf dem eine unterstützte Windows-Server-Version laufen muss (Server 2016 oder neuer).
   \[!WARNING] Wenn Sie unseren obigen Empfehlungen folgen und eingehenden WinRM-Verkehr auf den überwachten Windows-Hosts deaktivieren, stellen Sie sicher, dass diese Einstellung NICHT für den WEC-Server gilt, da WEC sonst nicht funktioniert.
2. Laden Sie `WEC-Setup.ps1` aus dem GitHub-Repository von Wirespeed herunter: [https://github.com/WirespeedSecurity/utils/](https://github.com/WirespeedSecurity/utils/)
3. Erstellen Sie das Verzeichnis `C:/Program Files/Wirespeed` und verschieben Sie das Skript dorthin. Öffnen Sie in diesem Verzeichnis ein PowerShell-Terminal als Administrator und führen Sie das Skript mit `./WEC-Setup.ps1` aus. Dieses Skript:
   1. Aktiviert und konfiguriert den Dienst Windows Remote Management (WinRM), eine Voraussetzung für WEC.
   2. Setzt den Dienst Windows Event Collector (`wecsvc`) auf automatischen Start und startet ihn sofort mit `wecutil qc`.
   3. Fügt das Konto `NT AUTHORITY\Network Service` der lokalen Gruppe `Event Log Readers` hinzu, um die erforderlichen Berechtigungen für die Ereigniserfassung sicherzustellen.
   4. Erstellt Firewall-Regeln, die eingehenden Verkehr auf den Ports 5985 (WinRM über HTTP) und 5986 (WinRM über HTTPS) für die WEF-Kommunikation zulassen.
   5. Konfiguriert den WEC-Server so, dass er seine eigenen Windows-Ereignisse über HTTP auf Port 5985 an sich selbst (localhost) weiterleitet, und ermöglicht so die Selbstüberwachung, indem der Registrierungsschlüssel `HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager` gesetzt wird.
   6. Erstellt ein quellinitiiertes WEC-Abonnement namens „Security and PowerShell Events“, das Ereignisse aus den Protokollen Security, Microsoft-Windows-PowerShell/Operational, Windows PowerShell, System und Application über HTTP sammelt und im Protokoll ForwardedEvents speichert.
4. So überprüfen Sie die Konfiguration:
   1. Prüfen Sie das Protokoll `ForwardedEvents` in der Ereignisanzeige (`eventvwr.msc`) auf dem WEC-Server, um zu bestätigen, dass Ereignisse von den Quellsystemen (und vom WEC-Server selbst) gesammelt werden.
   2. Prüfen Sie das Setup-Protokoll unter `C:\Program Files\Wirespeed\collector.log` auf Fehler oder Bestätigungen erfolgreicher Konfigurationsschritte.
   3. Erzeugen Sie auf einem Quellsystem ein Testereignis (z. B. `eventcreate /Id 500 /D "Test event" /T ERROR /L System`) und prüfen Sie, ob es im Protokoll `ForwardedEvents` des WEC-Servers erscheint.
      \[!NOTE] Alle Aktionen und Fehler des Skripts werden in einer Protokolldatei unter `C:\Program Files\Wirespeed\collector.log` aufgezeichnet, falls eine weitere Überprüfung oder Fehlersuche erforderlich ist.

## Protokollweiterleitung konfigurieren

> [!NOTE]
>
> Weitere Informationen finden Sie in der offiziellen Dokumentation zu [Winlogbeat](https://www.elastic.co/docs/reference/beats/winlogbeat/) und [Logstash](https://www.elastic.co/docs/reference/logstash).

### Winlogbeat installieren und konfigurieren

Die Installation basiert auf der offiziellen [Winlogbeat-Installationsanleitung](https://www.elastic.co/docs/reference/beats/winlogbeat/winlogbeat-installation-configuration) von Elastic.

1. Winlogbeat herunterladen und installieren
   1. Laden Sie die ZIP-Datei von der [Download-Seite](https://www.elastic.co/downloads/beats/winlogbeat) herunter
   2. Entpacken Sie den Inhalt nach `C:\Program Files`
   3. Benennen Sie das Verzeichnis `winlogbeat-<version>` in `Winlogbeat` um
   4. Öffnen Sie eine PowerShell-Eingabeaufforderung als Administrator (Rechtsklick auf das PowerShell-Symbol und Run As Administrator auswählen)
   5. Führen Sie in der PowerShell-Eingabeaufforderung die folgenden Befehle aus, um den Dienst zu installieren
      1. `cd 'C:\Program Files\Winlogbeat'`
      2. `.\install-service-winlogbeat.ps1`

> [!NOTE]
>
> Wenn die Skriptausführung auf Ihrem System deaktiviert ist, müssen Sie die Ausführungsrichtlinie für die aktuelle Sitzung so festlegen, dass das Skript ausgeführt werden darf. Zum Beispiel: `PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1`.

1. Winlogbeat konfigurieren
   1. Ersetzen Sie in `winlogbeat.yml` den vorhandenen Inhalt durch die folgende Konfiguration:
   ```yaml theme={null}
   winlogbeat.event_logs:
     - name: Security
       ignore_older: 72h
     - name: System
       ignore_older: 72h
     - name: Application
       ignore_older: 72h
     - name: Microsoft-Windows-PowerShell/Operational
       ignore_older: 72h
     - name: ForwardedEvents
       ignore_older: 72h
   output.logstash:
     hosts: ["localhost:5044"]
     ssl.enabled: false
     codec.json:
       pretty: false
   ```

> [!NOTE]
>
> Dies ist eine sehr einfache Konfiguration. Wir empfehlen, sich mit den Konfigurationsoptionen von Winlogbeat vertraut zu machen und die obige Konfiguration an Ihre spezifischen Anforderungen anzupassen. Alle verfügbaren Konfigurationsoptionen finden Sie in der [offiziellen Dokumentation von Elastic](https://www.elastic.co/docs/reference/beats/winlogbeat/configuring-howto-winlogbeat).

### Logstash installieren und konfigurieren

> [!WARNING]
>
> Logstash erfordert eine der folgenden Versionen:
>
> * Java 17
> * Java 21

1. Logstash herunterladen und installieren
   1. Laden Sie die ZIP-Datei von der [Download-Seite](https://www.elastic.co/downloads/logstash) herunter
   2. Entpacken Sie den Inhalt nach `C:\Program Files`
   3. Benennen Sie das Verzeichnis `logstash-<version>` in `Logstash` um
   4. Wechseln Sie in das Verzeichnis `C:\Program Files\Logstash\config\`

2. Logstash konfigurieren
   1. Öffnen Sie die **Forwarder-Details** Ihrer Windows-Event-Logs-Integration und kopieren Sie die HTTPS-Domain und den Listener-Port
   2. Bearbeiten Sie `logstash.conf`, damit Ereignisse von Winlogbeat gesammelt und an Wirespeed gesendet werden:
      1. Ersetzen Sie den Inhalt der vorhandenen `logstash.conf` durch den folgenden Inhalt (oder erstellen Sie die Datei, falls sie nicht existiert):
         ```
         input { 
           beats { 
             port => 5044 
             ssl_enabled => false
           } 
         }
         filter { 
           # Fix the field reference - use winlog.event_id for Windows events
           if [winlog][event_id] { 
             mutate { 
               add_field => { "event_id" => "%{[winlog][event_id]}" } 
             } 
           }
           # Alternative field paths depending on your beat version
           if [event][code] { 
             mutate { 
               add_field => { "event_id" => "%{[event][code]}" } 
             } 
           }
         }
         output {
           http {
             url => "https://<WIRESPEED_DOMAIN>:<WIRESPEED_PORT>"
             http_method => "post"
             codec => "json"
           }
         }
         ```
      2. Ersetzen Sie `<WIRESPEED_DOMAIN>` und `<WIRESPEED_PORT>` durch die Werte aus den **Forwarder-Details**
   3. Bearbeiten Sie `logstash.yml`, damit die neue Konfiguration standardmäßig verwendet wird
      1. Hängen Sie die folgenden Zeilen an die Datei an, speichern Sie sie und schließen Sie sie:
         ```yaml theme={null}
         config.reload.automatic: true  # Automatically reload config if logstash.conf changes
         path.config: "C:\\Program Files\\Logstash\\config\\logstash.conf"  # Sets the default config file
         ```
         > [!NOTE]
         >
         > Dies ist eine sehr einfache Konfiguration. Wir empfehlen, sich mit den Konfigurationsoptionen von Logstash vertraut zu machen und die obige Konfiguration an Ihre spezifischen Anforderungen anzupassen. Alle verfügbaren Konfigurationsoptionen finden Sie in der [offiziellen Dokumentation von Elastic](https://www.elastic.co/docs/reference/logstash).
   4. Logstash als Dienst installieren
      \[!WARNING] Wir empfehlen, Logstash zunächst manuell auszuführen, um sicherzustellen, dass die Konfiguration gültig ist, bevor Sie es als Dienst betreiben. Weitere Informationen finden Sie hier: [Running Logstash Manually](https://www.elastic.co/docs/reference/logstash/running-logstash-windows#running-logstash-windows-manual)
      \[!NOTE] **Empfohlen:** Weitere Informationen zu dieser Einrichtung finden Sie hier: [Running Logstash as a service with NSSM](https://www.elastic.co/docs/reference/logstash/running-logstash-windows#running-logstash-windows-nssm)
      1. NSSM herunterladen und installieren
         1. [https://nssm.cc/download](https://nssm.cc/download) und `nssm.exe` aus `nssm-<version.number>\win64\nssm.exe` nach `Logstash\bin\` extrahieren
      2. Logstash-Dienst mit NSSM erstellen
         1. Öffnen Sie ein PowerShell-Terminal als Administrator und führen Sie die folgenden Befehle aus, um Logstash als Dienst zu installieren:
            1. `cd "C:\Program Files\Logstash\bin"`
            2. `.\nssm.exe install logstash`
         2. Sobald das Fenster `NSSM service installer` erscheint, geben Sie auf der Registerkarte `Application` die folgenden Parameter an:
            1. **Path**: `C:\Program Files\Logstash\bin\logstash.bat`
            2. **Startup Directory**: `C:\Program Files\Logstash\bin`
         3. Klicken Sie auf **Install Service** und dann auf **Ok**
   5. Logstash und Winlogbeat starten:
      1. `Start-Service logstash`
      2. `Start-Service winlogbeat`
      3. Prüfen Sie mit den folgenden Befehlen, ob die Dienste laufen
         1. `Get-Service Logstash`
         2. `Get-Service winlogbeat`
   6. Wenden Sie sich über den Chat in der Plattform oder per E-Mail an [support@wirespeed.co](mailto:support@wirespeed.co) an einen Wirespeed-Techniker, um sicherzustellen, dass die Protokolle wie erwartet übertragen werden


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.