Rustinel: Unified Endpoint Detection untuk Windows, Linux & macOS
Rustinel: Unified Endpoint Detection untuk Windows, Linux & macOS

Open-source endpoint detection selama ini terpecah dua: tools khusus Windows yang dibangun di atas Sysmon, dan tools Linux yang pakai eBPF atau auditd. Defender di environment campuran terpaksa maintain dua pipeline, dua ruleset, dan dua beban maintenance terpisah. Rustinel lahir buat nyatuin semua itu ke satu codebase — dengan pendekatan yang sengaja dipilih: transparent userspace engine, bukan kernel driver.
1. Architecture & Scanning Pipeline
Arsitektur Rustinel mengalir dalam empat tahap berurutan: telemetry collection → normalization → detection → alert output. Setiap platform punya source telemetri native sendiri, tapi semua event dikonversi ke model yang sama sebelum dievaluasi.
[PIPELINE : TELEMETRY → ALERT]
1. Collect — ETW providers di Windows, eBPF programs di Linux, ESF + /dev/bpf di macOS (experimental).
2. Normalize — Raw event dari semua platform dikonversi ke satu NormalizedEvent model dengan Sysmon-style field names. In-flight enrichment: process context, DNS cache, SID resolution, connection aggregation.
3. Detect — Tiap normalized event dijalankan inline lewat Sigma engine + IOC matcher. Process-start event juga diantrekan ke background YARA workers. Rules bisa di-hot reload tanpa restart.
4. Alert — Detection hit ditulis sebagai ECS-shaped NDJSON ke disk, siap diingest ke Elastic, Splunk, OpenSearch, Sentinel, Wazuh, atau SIEM apapun yang bisa baca line-delimited JSON.
Telemetri per platform:
| Platform | Source Telemetri | Coverage |
|---|---|---|
| Windows | 9 ETW providers native | Process creation, image load, network, file, registry, DNS, PowerShell script body, WMI, service, scheduled task |
| Linux | eBPF via Aya (sched tracepoints + syscall kprobes) | Process, file, network, syscall-level events |
| macOS | Endpoint Security Framework (ESF) + /dev/bpf | Process, file, network, DNS — status: experimental |
Kenapa userspace, bukan kernel driver?
Ini pilihan arsitektur yang disengaja. Menurut Foucher, kernel driver memberikan tamper resistance dan early visibility yang lebih baik — tapi bug di kernel space bisa langsung crash host. Sebaliknya, bug di userspace process jauh lebih terkontrol dampaknya. Ditambah Rust’s memory safety yang mengeliminasi seluruh kelas defect secara default, trade-off ini dianggap worth it untuk use case transparansi dan stabilitas.
2. Coverage & Evidence Features
Rustinel dikirim dengan dua komponen terpisah: rustinel (engine) dan rustinel-rules (pack Sigma/YARA/IOC yang diload engine). Ini berarti lo bisa update rules tanpa rebuild engine, atau pakai rule pack lo sendiri.
- Sigma rules — Format deteksi standar industri, cross-platform, bisa langsung dipakai tanpa konversi. Rustinel load langsung dari folder yang di-point di
config.toml. - YARA signatures — Scan executable path di background workers setiap ada process-start event — asinkron biar nggak block pipeline utama.
- IOC indicators — Atomic indicators (hash, IP, domain) dievaluasi inline bareng Sigma di setiap normalized event.
- Hot reload — Edit Sigma/YARA/IOC file saat Rustinel jalan. Poller mendeteksi perubahan, rebuild detector yang terpengaruh, swap atomically — tanpa restart, tanpa missed event.
Output alert — ECS NDJSON:
{
“@timestamp”: “2026-05-11T08:23:14.512Z”,
“event.kind”: “alert”,
“rule.name”: “Suspicious PowerShell Download Cradle”,
“rule.category”: “execution”,
“process.name”: “powershell.exe”,
“process.command_line”: “IEX (New-Object Net.WebClient).DownloadString(…)”,
“host.os.type”: “windows”
}
Rule pack yang tersedia:
| Pack | Platform | Keterangan |
|---|---|---|
| default-linux | Linux | Low-noise, high-confidence. Safe pack buat mulai. |
| default-windows | Windows | Low-noise, high-confidence. Safe pack buat mulai. |
| extended packs | Cross-platform | Broader production & hunting coverage — butuh tuning lebih lanjut. |
Quick start:
curl -fsSL https://raw.githubusercontent.com/Karib0u/rustinel/main/scripts/install/install.sh | sh -s — –run
# Install (Windows — PowerShell)
Invoke-WebRequest https://raw.githubusercontent.com/Karib0u/rustinel/main/scripts/install/install.ps1 -OutFile install-rustinel.ps1
powershell -ExecutionPolicy Bypass -File .\install-rustinel.ps1 -Run
# Build dari source (Rust 1.92+ required)
git clone https://github.com/Karib0u/rustinel.git
cd rustinel
cargo build –release
sudo ./target/release/rustinel run
# Alert muncul di:
logs/alerts.json.<date> → ECS NDJSON, siap kirim ke SIEM
3. Roadmap & Use Case
Rustinel dengan sengaja tidak memposisikan dirinya sebagai replacement commercial EDR — tapi justru itu yang bikin scope-nya jelas dan proyeknya fokus. Berikut apa yang udah bisa, dan ke mana arahnya.
[USE CASE YANG COCOK]
Detection engineering & rule development: Hot reload bikin iterasi rule jadi cepat — tulis Sigma, trigger event, cek alert, perbaiki rule, tanpa restart sama sekali.
Blue team lab: Full telemetri di lab VM tanpa harus bayar enterprise EDR licensing. Ideal buat belajar atau simulasi red team exercise.
SIEM pipeline validation: Generate ECS NDJSON dari berbagai skenario buat validasi parsing dan alerting di SIEM stack lo sendiri.
Cross-platform detection research: Satu ruleset yang bisa verified behavior-nya identik di Windows dan Linux — relevan banget buat riset detection engineering yang serius.
- Kernel-level self-protection & anti-tamper
- Pre-execution blocking / behavioral blocking real-time
- Managed response (isolate host, remediate threat) secara otomatis
- Perlindungan terhadap kernel-mode rootkit
Roadmap pengembangan:
Tidak ada roadmap publik formal yang dirilis terpisah, tapi dari pola development yang terlihat, fokus utama ada di tiga area: ekspansi macOS dari experimental ke stable, perluasan rule pack catalog (terutama untuk hunting coverage), dan integrasi SIEM yang lebih seamless. Foucher juga mendorong komunitas buat berkontribusi Sigma/YARA rule pack baru — ini yang jadi growth engine utama project ini.
Docs: docs.rustinel.io | Blog: rustinel.io/blog
Sumber: Help Net Security (11 Mei 2026), rustinel.io official docs.