
Linux-Systemaufruf-Monitor auf Basis von ptrace zur Verfolgung von Datei-, Prozess-, Netzwerk- und Speicheraktivität, mit Namespace-Isolation und maschineller Lernklassifikation für die verhaltensbasierte Sicherheitsanalyse.
Ein Linux-Werkzeug zur Systemaufruf-Überwachung und verhaltensbasierten Sicherheitsanalyse, das ptrace-basiertes Tracing, leichte Namespace-Isolation und Klassifikation durch maschinelles Lernen kombiniert.
SysTrace beobachtet das Laufzeitverhalten eines Zielprogramms auf Systemaufruf-Ebene, extrahiert Verhaltensmerkmale und klassifiziert die beobachtete Aktivität mithilfe eines trainierten Random-Forest-Modells als gutartig oder bösartig. Es ist hauptsächlich in C für Tracing und Isolation auf niedriger Ebene geschrieben, mit einer Python/scikit-learn-Komponente für Klassifikation und Berichterstattung.
SysTrace verfolgt einen Zielprozess mithilfe von ptrace und erfasst Systemaufrufe in Bezug auf Dateizugriff, Prozesserstellung, Netzwerkaktivität und Speicheroperationen. Das erfasste Verhalten wird zu Syscall-Statistiken und einem Merkmalsvektor zusammengefasst, der einem trainierten Random-Forest-Klassifikator übergeben wird, um eine Gutartig/Bösartig-Vorhersage zu erzeugen. Die Ergebnisse werden in einem strukturierten HTML-Sicherheitsbericht zusammengestellt.
Das Projekt enthält außerdem eine leichte Sandbox-Schicht auf Basis von Linux-Namespaces, die verwendet wird, um den Zielprozess während des Tracings zu isolieren.

ptrace, um Zielprozesse anzuhängen und zu untersuchen, einschließlich Syscall-Argumenten und Registern.open/openat, read, close, chmodexecve, fork, clone, killsocket, connectmmap, mprotectHeuristische Regeln kennzeichnen verdächtige Verhaltensmuster, darunter:
mmap/mprotect-Nutzung)Eine Isolationsschicht, die direkt auf Linux-Namespace-Primitiven aufbaut:
clone() mit CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNSMS_PRIVATEpivot_root und umount2tmpfs-Basis, zur Laufzeit unter /tmp/systrace-root erstelltDies bietet eine grundlegende Prozess-, PID- und Mount-Isolation für das getracete Ziel — es ist kein Ersatz für eine Container-Laufzeit.
file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill, labelRandomForestClassifier (scikit-learn) wird auf diesen Vektoren trainiert, um gutartiges von bösartigem Verhalten zu unterscheiden.ml/syscall_model.pkl serialisiert.DATASETfeatures.json (Roh-Feature-Daten) und report.html (menschenlesbarer Bericht).[file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill]
[15, 2, 0, 0, 0, 2, 1, 10, 4, 14, 6, 0]
linux-syscall-monitor/
├── include/
├── src/
│ ├── tracer.c # Core ptrace-based syscall tracer
│ ├── syscall.c # Syscall interception/handling
│ ├── namespace.c # Namespace/clone setup
│ ├── set_root.c # pivot_root / minimal rootfs setup
│ ├── file_monitor.c # File operation monitoring
│ ├── process_monitor.c # Process creation/execution monitoring
│ ├── network_monitor.c # Network activity monitoring
│ ├── memory_monitor.c # Memory-related activity monitoring
│ ├── fd_tables.c # File descriptor tracking
│ ├── rules.c # Rule-based detection logic
│ ├── alert.c # Security alert generation
│ ├── stat.c # Syscall statistics aggregation
│ └── dataset.c # Feature vector / dataset generation
├── ml/
│ ├── train.py # Random Forest training script
│ ├── predict.py # Classification / inference script
│ └── syscall_model.pkl # Trained model
├── dashboard/ # Report/dashboard assets
├── tests/
├── Makefile
├── dataset.csv
└── README.md
ptrace-basiertes Tracing verursacht beobachtbaren Overhead und kann von hinreichend ausgefeilter Malware erkannt und umgangen werden.SysTrace ist ein Forschungs- und Lernprojekt, das Linux-Interna, Systemaufruf-Tracing, Namespace-basierte Isolation und verhaltensbasierte Malware-Erkennung mittels maschinellem Lernen untersucht. Es ist kein zertifiziertes oder produktionsreifes Sicherheitswerkzeug und sollte nicht als einzige Verteidigung gegen bösartige Software verwendet werden. Nur in isolierten, kontrollierten Umgebungen einsetzen.
Dieses Projekt wurde entwickelt, um Folgendes zu untersuchen und zu demonstrieren:
ptraceclone, pivot_root, Mount-Namespaces)| Kategorie | Stack |
|---|
| Kern-Tracer | C, Linux-ptrace |
| Isolation | Linux-Namespaces, clone, Mount-Namespaces, pivot_root, tmpfs |
| Maschinelles Lernen | Python, scikit-learn, Random Forest |
| Daten / Ausgabe | JSON, HTML |
| Build | Make |