RawonGuard
Architecture & Internals
Dokumentasi teknis lengkap: arsitektur sistem, mekanisme stealth 10 lapis, self-healing, komunikasi panel-agent, dan semua fitur v4.9.5.
Arsitektur Sistem
Dua komponen utama: Panel (server pusat) dan Agent (binary stealth di server target) — berkomunikasi via HTTPS dengan autentikasi JWT.
- REST API + WebSocket relay untuk terminal
- Auth JWT + session management (7 hari)
- PostgreSQL 16 persistence (agents, events, users)
- OTA update orchestration + binary staging
- Alert routing: Telegram bot + email webhook
- Web-based file manager + port scanner
- Heartbeat HTTPS setiap 30 detik ke panel
- PTY relay untuk web terminal (creack/pty)
- Stealth: proc hide, net hide, log wipe, ts-spoof
- Self-healing goroutine supervisor + init multi
- Offline event queue (flush saat reconnect)
- OTA pull + ELF validation + atomic swap + canary
Mekanisme Panel
Panel adalah server Go yang meng-expose REST API dan WebSocket endpoint. Semua request authenticated via JWT Bearer token.
| Endpoint | Method | Fungsi |
|---|---|---|
| /api/agents | GET | List semua agent yang terdaftar |
| /api/agents/:id | GET | Detail agent (status, OS, uptime) |
| /api/agents/:id/command | POST | Kirim command ke agent via WebSocket queue |
| /api/events | GET | Event log dengan filter severity & agent |
| /api/alerts/config | GET/POST | Konfigurasi Telegram bot & threshold |
| /api/ota/push | POST | Upload binary baru untuk OTA update |
| /ws/terminal/:id | WS | PTY relay — raw byte stream bidirectional |
| /ws/events | WS | Real-time event stream ke dashboard |
pty.Start() dan forward output ke panel via WebSocket. Latency overhead: <5ms pada lokal, <50ms via Cloudflare Tunnel.Mekanisme Agent
Agent adalah binary Go statik yang berjalan di server target. Didesain untuk invisible, resilient, dan autonomous — 17 internal packages.
mainEntry point, init sequence, goroutine supervisorstealthProc hide, net hide, log sanitization, ts-spoofheartbeatHTTPS ping ke panel setiap 30s + offline queueterminalPTY spawn, resize handling, WebSocket relayfilemanagerUpload/download/delete via panel APImetricsCPU, RAM, disk, network, SSH session counteventsEvent collector, severity classification, dedupalertsTelegram notif, threshold check, rate limitotaPull binary, ELF validate, atomic swap, restartgsrescueGS-Netcat tunnel untuk akses daruratportscannerInternal port scan, service detectionsyslogSyslog reader, filter, forward ke panelinitDeteksi & inject ke systemd/OpenRC/SysV/runitcanaryToken embed di binary, burn-on-copy detectionconfigPanel URL, token, retry paramscryptoTLS config, certificate pinningutilLogger, retry backoff, signal handlerAlur Kerja Lengkap
Instalasi Agent
Binary di-download ke server target, rename ke proses kernel, init injection otomatis, stealth layers aktif, first heartbeat dikirim ke panel.
Operasi Normal
Agent heartbeat setiap 30s, metrics dikumpulkan, events diqueue. Panel update status real-time via WebSocket. Alert dikirim jika threshold terlampaui.
Recovery Event
Jika agent mati (kill signal, OOM, crash), goroutine supervisor atau init system restart dalam kurang dari 1-5 detik. Offline events di-flush saat reconnect.
OTA Update
Panel push binary baru, agent pull + validasi ELF header + atomic swap + restart. Downgrade otomatis jika validasi gagal. Canary token baru di-inject.
Stealth & Zero-Trace System
10 mekanisme independen yang bekerja secara berlapis — kompromi satu layer tidak expose keseluruhan sistem.
Binary timpa argv[0] dengan nama kernel thread seperti [kworker/u2:2], [migration/0], [ksoftirqd/1]. prctl(PR_SET_NAME) + argv overwrite via /proc/self/mem.
PR_SET_DUMPABLE=0 mencegah ptrace attach dari non-root. Disable core dump (RLIMIT_CORE=0). OOM score -1000 agar survive OOM killer.
Inject libprocesshider.so via /etc/ld.so.preload (system-wide). Hook readdir()/readdir64() di libc — install dir tidak muncul di ls, find, atau file manager apapun.
Service bernama systemd-sysconf dengan Description "System Configuration Service". Install dir di path seperti /opt/.cache/.systemd-private/ — terlihat seperti artifact systemd bawaan.
Terminal web spawn bash dengan --noprofile --init-file /dev/shm/.XXXXXXXX. HISTFILE=/dev/null, HISTSIZE=0, HISTCONTROL=ignoreboth. Init file self-destruct 2 detik setelah spawn.
Tidak ada .wget-hsts, tidak ada file temp di /tmp, tidak ada entry di apt/yum/dnf log. Download binary ke pipe langsung, tulis ke install dir dengan rename atomic. WGETRC=/dev/null, unset HISTFILE.
Modul crash di-restart in-process via runModule() supervisor (recover() + 5s restart). Binary tidak exit — tidak ada systemd restart log, tidak ada journald entry yang mencurigakan.
Salinan binary di lokasi stealthy (/var/lib/systemd/coredump/, package cache, /var/cache/ldconfig/). Dilindungi chattr +i — rm gagal meski sebagai root. Auto-restore jika binary utama dihapus dalam <30 detik.
systemd-conf-recover.service loop setiap 60s — restart primary service jika mati. Install di /lib/systemd/system/ (terlihat seperti service bawaan package manager). Cron mudah terdeteksi; service ini tidak.
Auto-detect init system: systemd (Debian/RHEL/Arch), OpenRC (Alpine/Gentoo), SysVinit (CentOS 5), rc.local (universal fallback). Semua operasi idempoten — aman dipanggil berulang kali.
Visibilitas per Perspektif
Self-Healing Architecture
Sistem berlapis untuk recovery otomatis dari berbagai kondisi kegagalan — dari kill signal hingga disk penuh.
Recovery Timeline
Terminal & Akses Darurat
Web terminal berbasis PTY relay — shell penuh langsung di browser, encrypted end-to-end, tanpa SSH client. Fallback via GS-Rescue jika tunnel down.
PTY Relay Chain
xterm.js:8000pty.Start()Aktif jika Cloudflare Tunnel down. GS-Netcat membuka encrypted P2P tunnel langsung ke agent — tanpa port forwarding atau public IP. Process agent diberi nama [kworker/u4:2], tidak terlihat di ps aux.
gs-netcat -s TOKEN[kworker/u4:2]OTA Update System
Update binary agent tanpa restart manual atau SSH access — sepenuhnya dikelola dari panel.
Push dari Panel
Operator upload binary baru via panel UI atau API. Panel simpan ke staging area dan notify agent via WebSocket command.
Pull & Validate
Agent download binary, validasi ELF header (magic bytes, arch, entrypoint), cek SHA-256. Jika gagal → rollback ke versi sebelumnya.
Atomic Swap
Binary baru di-rename atomically menggantikan binary lama. Canary token baru di-inject. Agent restart dirinya sendiri via unix.Exec.
Confirm & Alert
Agent online kembali, kirim heartbeat dengan versi baru. Panel update database, kirim alert "Update sukses" ke Telegram.
Semua Fitur v4.9.5
Roadmap
- Kernel module rootkit (eBPF-based)
- Multi-panel federation
- Automated red team scenarios
- AI-powered anomaly detection
- Distributed agent mesh
- Hardware fingerprint auth
- Container escape module
- Supply chain integrity monitor
- Quantum-resistant crypto