EagleEye - hostbasiertes IDS- und Netzwerküberwachungssystem
Dieses Projekt braucht noch viel Arbeit, um einsatzbereit zu sein, da es mein Abschlussprojekt ist. Es ist also nicht benutzerfreundlich, nur für erfahrene Benutzer gedacht, eine Betaversion, und ich habe es nur zu Bildungszwecken veröffentlicht/erstellt!

- EagleEye besteht aus zwei Teilen:
- Client (geschrieben in Golang)
- Zweck: Erfasst jedes Paket auf dem Gerät und extrahiert wichtige Details aus bekannten Protokollen und sendet schließlich alle gesammelten Daten an den Master, falls dieser online ist!
- Verwendung: Er sollte auf jedem Gerät installiert werden, das du überwachen möchtest (z. B. Mitarbeitergeräte für Unternehmen).
- Master: (geschrieben in Python und Bootstrap)
- Zweck: Empfängt jedes von den Clients gesendete Paket, zeigt es organisiert in der GUI-Überwachungstabelle an, zeigt Informationen zu verbundenen Geräten wie aktuellen Systembenutzer/Systeminformationen an, vergleicht die erfassten Daten mit den bereits zuvor geschriebenen Bedrohungsmodellen und warnt schließlich den Master-Benutzer vor möglichen Sicherheitsbedrohungen im Netzwerk – wie es ein typisches IDS-System tun würde!
- Verwendung: Er sollte auf einem Server im selben Netzwerk wie die Clients laufen (z. B. möglicherweise ein Server, der von der IT-Abteilung oder dem Blue-Hacking-Team des Unternehmens verwaltet wird).
Für weitere Informationen musst du dich über (I)ntrusion (D)etection (S)ystems und deren Typen informieren. Ich empfehle den NIST-Leitfaden.
Screenshots
Haupt-GUI


Überwachungstabelle
Beachte, dass die Schaltflächen in der Tabelle dir die Möglichkeit geben, die Tabelle als (CSV, Excel, PDF) zu exportieren, Tabellendaten in die Zwischenablage zu kopieren und die Tabellendaten bei Bedarf zu drucken.
Suche in der Überwachungstabelle
Einfache Suche
Detaillierte Suche
Wie du siehst, bietet die Suche hier die Möglichkeit, nach allem zu suchen, was in der Tabelle dargestellt wird.
Tabelle der verbundenen Geräte
Wenn ein neuer Client mit dem Client verbunden wird
Beachte, dass die Tabelle automatisch alle 5s oder bei Seitenaktualisierung aktualisiert wird!
Tabelle der Bedrohungen
Wenn eine Bedrohung erkannt wurde
Details zu allen möglichen erkannten Bedrohungen + Referenz beim Klicken


Desktop-Benachrichtigung bei Bedrohungen
Beachte, dass die Tabelle automatisch alle 5s oder bei Seitenaktualisierung aktualisiert wird!
Installationsanleitung
Der Client
Voraussetzungen
- Unterstützt derzeit nur Windows-Systeme (wegen der aus der Registrierung gelesenen Daten; das muss geändert werden).
- Die folgenden Anweisungen
Installationsanleitung
- Stelle sicher, dass Golang installiert ist.
- Installiere die gopacket-Bibliothek mit diesem Befehl:
go get github.com/google/gopacket
- Lade npcap von hier herunter und installiere es.
- Ändere die folgenden Variablen im Code nach deinen Bedürfnissen:
- Zeile 57: Ändere die Variable url zu deiner aktuellen Master-URL
- Zeile 59: Ändere die Variable device zu der Netzwerkschnittstelle, auf der du lauschen möchtest. Für Windows benötigst du diesen Artikel!
- Zeile 66: Ändere die Variable filter zu dem Filter, den du beim Erfassen von Netzwerkpaketen verwenden möchtest, oder lasse sie leer, wie sie ist (falls du alle Pakete erfassen möchtest). Die Filtersyntax ist BPF, die gleiche wie bei der Wireshark-Suche. Du kannst sie in diesem Leitfaden lernen. Ich habe auch einige Beispiele in den Kommentaren hinterlassen, falls sie jemand verwenden möchte.
- Navigiere in CMD zum Client-Verzeichnis, natürlich.
- Jetzt kannst du den Client als Skript mit diesem Befehl ausführen:
go run main.go
- Zum Kompilieren/Builden kannst du den folgenden Befehl verwenden:
go build -o client.exe main.go, vielleicht benötigst du diesen Leitfaden.
- Wenn du das alles geschafft hast, geh raus und hab ein Leben, Kumpel 😆 (Scherz)
Der Master
Voraussetzungen
- Jedes Betriebssystem.
- Die folgenden Anweisungen – es ist viel einfacher als beim Client, keine Sorge LOL!
Installationsanleitung
- Stelle sicher, dass Python 3 (Version 3.5 oder höher) und pip installiert sind.
- Navigiere in CMD zum Master-Ordner und installiere dann die Anforderungen mit diesem Befehl:
pip install -r requirements.txt oder python -m pip install -r requirements.txt
- Wenn du unter Windows arbeitest und dir farbige Ausgaben in CMD wichtig sind, führe diesen Befehl aus:
pip install -r coloring-requirements.txt oder python -m pip install -r coloring-requirements.txt
- Jetzt ein paar Variablen, die du nach deinen Bedürfnissen ändern kannst 😆
- Zeile 21: Ändere die Variable host_port auf den Port, auf dem du den Dienst bereitstellen möchtest (Standard: 8000)
- Zeile 23: Ändere die Variable serve_localhost auf True, wenn du den Master nur auf dem lokalen Host ausführen möchtest (Standard: True)
- Zeile 24: Ändere die Variable view_browser auf True, wenn der Master die Serving-URL automatisch im Browser öffnen soll (Standard: True)
- Jetzt kannst du den Master mit
python interface.py ausführen.
- Viel Spaß :)