TDCTF Academy Logo TDCTF ACADEMY

Process Security

Pendahuluan

Process security mencakup mekanisme yang melindungi proses dari gangguan, penyusupan, dan kebocoran informasi. Sistem operasi modern menggunakan berbagai teknik isolasi dan pembatasan untuk memastikan setiap proses hanya dapat mengakses sumber daya yang diizinkan.

Process Isolation

Isolasi Berbasis UID

Setiap proses di Linux dijalankan dengan User ID (UID) tertentu. Proses dengan UID berbeda tidak dapat saling mengganggu secara langsung:

  • Proses root (UID 0) memiliki akses penuh.
  • Proses user biasa hanya dapat memanipulasi proses dengan UID yang sama.
  • Signal, ptrace, dan debug hanya diizinkan untuk user yang sama (atau root).

PID Namespaces

PID namespace memungkinkan setiap container memiliki ruang PID independen. Proses di dalam container hanya melihat prosesnya sendiri, dengan PID mulai dari 1. Ini adalah komponen fundamental dari containerisasi Linux.

Linux Capabilities

Linux capabilities membagi hak istimewa root menjadi unit-unit kecil yang independen. Alih-alih memberikan akses root penuh, administrator dapat memberikan capability spesifik:

Capability Fungsi
CAP_NET_BIND_SERVICE Mengikat port di bawah 1024
CAP_SYS_ADMIN Berbagai operasi admin (powerful - gunakan hati-hati)
CAP_DAC_OVERRIDE Melewati permission file
CAP_KILL Mengirim sinyal ke proses mana pun
CAP_SETUID Mengubah UID proses

Menggunakan setcap untuk memberikan capability ke binary:

setcap cap_net_bind_service=+ep /usr/bin/myapp

Seccomp

Seccomp (Secure Computing Mode) adalah fitur kernel Linux yang membatasi syscall yang dapat dilakukan proses. Mode:

  • Seccomp strict - hanya read, write, exit, sigreturn yang diizinkan.
  • Seccomp filter (BPF) - aturan kustom menggunakan BPF (Berkeley Packet Filter) untuk mengontrol syscall dan argumennya.

Seccomp digunakan secara luas di container runtime (Docker, containerd) dan browser (Chrome).

Namespaces

Namespaces adalah fitur Linux yang mengisolasi dan memvirtualisasi sumber daya sistem. Tipe namespace:

Namespace Sumber daya yang diisolasi
PID Proses ID
Network Interface jaringan, routing, iptables
Mount Mount point filesystem
User UID dan GID (termasuk mapping UID non-root ke root di namespace)
UTS Hostname dan domain
IPC System V IPC, POSIX message queues
Cgroup Hierarki cgroup

Containers dan Cgroups

Container menggabungkan namespaces (isolasi) dan cgroups (resource control):

  • cgroups - membatasi penggunaan CPU, memori, I/O disk, dan jaringan per grup proses.
  • cgroups v2 - hierarki tunggal yang lebih sederhana dan aman.
  • Container runtime menggunakan cgroup untuk mencegah satu container menghabiskan seluruh sumber daya host.

Process Monitoring

Pemantauan proses secara real-time sangat penting untuk mendeteksi aktivitas mencurigakan:

Perintah Fungsi
ps aux Menampilkan snapshot semua proses
ps auxf Menampilkan proses dalam format pohon
top Monitoring real-time interaktif
htop Top dengan antarmuka yang lebih kaya (warna, scrolling)
lsof Menampilkan file yang dibuka oleh proses
lsof -i :80 Menampilkan proses yang menggunakan port 80
strace -p PID Melacak syscall yang dilakukan proses
pstree Menampilkan hierarki proses

Penggunaan: lsof -i dapat mendeteksi backdoor yang mendengarkan port, ps aux dapat menemukan proses mencurigakan dengan nama aneh.

Defense Against Process Injection

Memory Injection

Process injection adalah teknik memasukkan kode jahat ke dalam proses yang sedang berjalan. Vektor umum:

  • DLL injection (Windows) - memuat DLL jahat ke proses target.
  • Ptrace injection (Linux) - menggunakan ptrace untuk memodifikasi memori proses.
  • Shellcode injection - menyuntikkan kode mesin langsung ke memori proses.

Mitigasi

  • ASLR (Address Space Layout Randomization) - mengacak alamat memori proses.
  • NX bit (No-Execute) - menandai halaman memori tertentu sebagai non-eksekusi.
  • SELinux/AppArmor - membatasi antarmuka ptrace dan /proc access.
  • Yama Security Module - membatasi ptrace hanya ke proses anak (via ptrace_scope).
  • Windows Defender Exploit Guard - Controlled Folder Access, Network Protection.
  • CFG (Control Flow Guard) - melindungi indirect call di Windows.

Kesimpulan

Process security adalah area yang kompleks dan terus berkembang. Isolasi melalui UID dan namespaces, pembatasan melalui capabilities dan seccomp, monitoring proaktif, serta pertahanan terhadap injection adalah komponen kunci. Containerisasi adalah contoh nyata penerapan semua prinsip ini secara terintegrasi.

PADA HALAMAN INI