
Monitor de llamadas al sistema de Linux que utiliza ptrace para rastrear la actividad de archivos, procesos, red y memoria, con aislamiento de namespaces y clasificación mediante aprendizaje automático para el análisis de seguridad conductual.
Una herramienta de monitoreo de llamadas al sistema y análisis de seguridad conductual para Linux que combina rastreo basado en ptrace, aislamiento ligero de namespaces y clasificación con aprendizaje automático.
SysTrace observa el comportamiento en tiempo real de un programa objetivo a nivel de llamadas al sistema, extrae características de comportamiento y clasifica la actividad observada como benigna o maliciosa utilizando un modelo Random Forest entrenado. Está construido principalmente en C para el rastreo y aislamiento de bajo nivel, con un componente de Python/scikit-learn para la clasificación y generación de informes.
SysTrace rastrea un proceso objetivo usando ptrace, capturando llamadas al sistema relacionadas con acceso a archivos, creación de procesos, actividad de red y operaciones de memoria. El comportamiento capturado se agrega en estadísticas de syscalls y un vector de características, que se pasa a un clasificador Random Forest entrenado para producir una predicción benigna/maliciosa. Los resultados se compilan en un informe de seguridad HTML estructurado.
El proyecto también incluye una capa ligera de sandbox construida sobre namespaces de Linux, utilizada para aislar el proceso objetivo durante el rastreo.

ptrace de Linux para adjuntarse e inspeccionar procesos objetivo, incluidos argumentos de syscalls y registros.open/openat, read, close, chmodexecve, fork, clone, killsocket, connectmmap, mprotectLas reglas heurísticas señalan patrones de comportamiento sospechosos, incluyendo:
mmap/mprotect)Una capa de aislamiento construida directamente sobre primitivas de namespaces de Linux:
clone() con CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNSMS_PRIVATEpivot_root y umount2tmpfs, construido en tiempo de ejecución bajo /tmp/systrace-rootEsto proporciona aislamiento básico de procesos, PID y montaje para el objetivo rastreado — no es un reemplazo de tiempo de ejecución de contenedores.
file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill, labelRandomForestClassifier (scikit-learn) se entrena con estos vectores para distinguir el comportamiento benigno del malicioso.ml/syscall_model.pkl.CONJUNTO DE DATOSfeatures.json (datos de características sin procesar) y report.html (informe legible por humanos).[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 introduce una sobrecarga observable y puede ser detectado/evadido por malware suficientemente sofisticado.SysTrace es un proyecto de investigación y aprendizaje que explora los internals de Linux, el rastreo de llamadas al sistema, el aislamiento basado en namespaces y la detección conductual de malware mediante aprendizaje automático. No es una herramienta de seguridad certificada ni lista para producción y no debe utilizarse como única defensa contra software malicioso. Úselo solo en entornos aislados y controlados.
Este proyecto fue construido para explorar y demostrar:
ptraceclone, pivot_root, namespaces de montaje)| Categoría | Stack |
|---|
| Rastreador principal | C, ptrace de Linux |
| Aislamiento | namespaces de Linux, clone, namespaces de montaje, pivot_root, tmpfs |
| Aprendizaje automático | Python, scikit-learn, Random Forest |
| Datos / salida | JSON, HTML |
| Compilación | Make |