
Monitor de chamadas de sistema Linux usando ptrace para rastrear atividades de arquivos, processos, rede e memória, com isolamento de namespace e classificação por aprendizado de máquina para análise comportamental de segurança.
Uma ferramenta de monitoramento de chamadas de sistema Linux e análise comportamental de segurança que combina rastreamento baseado em ptrace, isolamento leve de namespaces e classificação por aprendizado de máquina.
O SysTrace observa o comportamento em tempo de execução de um programa-alvo no nível de chamadas de sistema, extrai características comportamentais e classifica a atividade observada como benigna ou maliciosa usando um modelo Random Forest treinado. Ele é construído principalmente em C para rastreamento e isolamento de baixo nível, com um componente em Python/scikit-learn para classificação e geração de relatórios.
O SysTrace rastreia um processo-alvo usando ptrace, capturando chamadas de sistema relacionadas a acesso a arquivos, criação de processos, atividade de rede e operações de memória. O comportamento capturado é agregado em estatísticas de chamadas de sistema e em um vetor de características, que é passado a um classificador Random Forest treinado para produzir uma previsão benigna/maligna. Os resultados são compilados em um relatório de segurança HTML estruturado.
O projeto também inclui uma camada leve de sandboxing construída sobre namespaces Linux, usada para isolar o processo-alvo durante o rastreamento.

ptrace do Linux para anexar a processos-alvo e inspecioná-los, incluindo argumentos de chamadas de sistema e registradores.open/openat, read, close, chmodexecve, fork, clone, killsocket, connectmmap, mprotectRegras heurísticas sinalizam padrões comportamentais suspeitos, incluindo:
mmap/mprotect)Uma camada de isolamento construída diretamente sobre primitivas de namespaces do Linux:
clone() com CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNSMS_PRIVATEpivot_root e umount2tmpfs, construído em tempo de execução em /tmp/systrace-rootIsso fornece isolamento básico de processo, PID e montagem para o alvo rastreado — não é um substituto de runtime de contêineres.
file, process, network, fork, connect, execve, read, open, close, memory, chmod, kill, labelRandomForestClassifier (scikit-learn) é treinado nesses vetores para distinguir comportamento benigno de malicioso.ml/syscall_model.pkl.DATASETfeatures.json (dados brutos de características) e report.html (relatório legível 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 introduz sobrecarga observável e pode ser detectado/contornado por malware suficientemente sofisticado.O SysTrace é um projeto de pesquisa e aprendizado que explora os detalhes internos do Linux, o rastreamento de chamadas de sistema, o isolamento baseado em namespaces e a detecção comportamental de malware usando aprendizado de máquina. Não é uma ferramenta de segurança certificada ou pronta para produção e não deve ser usada como única defesa contra software malicioso. Utilize apenas em ambientes isolados e controlados.
Este projeto foi construído para explorar e demonstrar:
ptraceclone, pivot_root, namespaces de montagem)| Categoria | Stack |
|---|
| Tracer principal | C, Linux ptrace |
| Isolamento | Linux namespaces, clone, mount namespaces, pivot_root, tmpfs |
| Aprendizado de máquina | Python, scikit-learn, Random Forest |
| Dados / saída | JSON, HTML |
| Compilação | Make |