
Монитор системных вызовов Linux, использующий ptrace для отслеживания активности файлов, процессов, сети и памяти, с изоляцией пространств имён (namespace) и классификацией на основе машинного обучения для поведенческого анализа безопасности.
Инструмент мониторинга системных вызовов Linux и поведенческого анализа безопасности, сочетающий трассировку на основе ptrace, лёгкую изоляцию пространств имён и классификацию с помощью машинного обучения.
SysTrace наблюдает за поведением целевой программы во время выполнения на уровне системных вызовов, извлекает поведенческие признаки и классифицирует наблюдаемую активность как безопасную или вредоносную с помощью обученной модели Random Forest. Инструмент написан в основном на C для низкоуровневой трассировки и изоляции, с компонентом на Python/scikit-learn для классификации и формирования отчётов.
SysTrace трассирует целевой процесс с помощью ptrace, перехватывая системные вызовы, связанные с доступом к файлам, созданием процессов, сетевой активностью и операциями с памятью. Перехваченное поведение агрегируется в статистику системных вызовов и вектор признаков, который передаётся обученному классификатору Random Forest для вынесения прогноза «безопасно/вредоносно». Результаты оформляются в структурированный HTML-отчёт по безопасности.
Проект также включает лёгкий слой песочницы, построенный на пространствах имён Linux и используемый для изоляции целевого процесса во время трассировки.

ptrace для подключения к целевым процессам и их инспекции, включая аргументы системных вызовов и регистры.open/openat, read, close, chmodexecve, fork, clone, killsocket, connectmmap, mprotectЭвристические правила помечают подозрительные поведенческие паттерны, в том числе:
mmap/mprotect)Слой изоляции, построенный непосредственно на примитивах пространств имён Linux:
clone() с CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNSMS_PRIVATEpivot_root и umount2tmpfs, создаваемая во время выполнения в /tmp/systrace-rootЭто обеспечивает базовую изоляцию процессов, PID и точек монтирования для трассируемой цели — это не замена контейнерной среды выполнения.
file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill, labelRandomForestClassifier (scikit-learn) обучается на этих векторах, чтобы различать безопасное и вредоносное поведение.ml/syscall_model.pkl.DATASETfeatures.json (исходные данные признаков) и report.html (отчёт для чтения человеком).[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 создаёт заметные накладные расходы и может быть обнаружена/обойдена достаточно сложными вредоносными программами.SysTrace — это исследовательский и учебный проект, изучающий внутреннее устройство Linux, трассировку системных вызовов, изоляцию на основе пространств имён и поведенческое обнаружение вредоносных программ с помощью машинного обучения. Это не сертифицированный или готовый к промышленному использованию инструмент безопасности, и на него нельзя полагаться как на единственную защиту от вредоносного ПО. Используйте только в изолированных, контролируемых средах.
Этот проект создан для изучения и демонстрации:
ptraceclone, pivot_root, пространств имён монтирования)| Категория | Стек |
|---|
| Базовый трассировщик | C, Linux ptrace |
| Изоляция | Linux namespaces, clone, mount namespaces, pivot_root, tmpfs |
| Машинное обучение | Python, scikit-learn, Random Forest |
| Данные / вывод | JSON, HTML |
| Сборка | Make |