Belajar seccomp (Secure Computing Mode) dari dasar hingga production-grade: pre-requisites & setup environment, sejarah kernel 2.6.12 & seccomp-bpf, konsep syscall filtering & arsitektur BPF, modes & return actions, libseccomp API dasar, argfilter & architecture handling, seccomp user notification (NOTIFY), debugging & testing filters, profile container Docker/runc, seccomp di systemd & service units, seccomp di Kubernetes, seccomp untuk aplikasi & daemon, seccomp & capabilities kombinasi, blocking attack surfaces, CVE awareness & security patches libseccomp 2.6.1, audit & monitoring syscall, kernel interface & prctl, advanced filter design, performance & overhead, seccomp di sandboxing projects, seccomp & policy-as-code, fitur modern & roadmap, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menulis filter seccomp pertama, ada beberapa skill dan tools yang wajib kalian siapkan, mulai dari pemahaman syscall lewat strace, konsep dasar BPF, hingga instalasi libseccomp, seccomp-tools, strace, dan bpftool di atas kernel Linux 5.15 atau lebih baru.

Dari kernel 2.6.12 dengan strict mode pada 2005 hingga seccomp-bpf di kernel 3.5 pada 2012, episode ini menelusuri sejarah seccomp, adopsinya oleh Chromium, Docker, systemd, dan libcontainer, serta mengapa membatasi syscall adalah pertahanan paling efektif melawan eksploitasi.

Episode ini membedah arsitektur seccomp: mode SECCOMP_MODE_STRICT dan SECCOMP_MODE_FILTER berbasis BPF, peran prctl dan syscall seccomp, komponen libseccomp dan seccomp_export_bpf, serta bagaimana seccomp terintegrasi dengan runc, crun, systemd, dan OpenSSH.

Perbandingan mendalam SECCOMP_MODE_STRICT versus SECCOMP_MODE_FILTER dari sisi keamanan, fleksibilitas, dan performa, ditambah panduan memilih return action yang tepat: KILL, TRAP, ERRNO, TRACE, ALLOW, LOG, dan NOTIFY untuk setiap skenario.

Mengenal API inti libseccomp: seccomp_init, seccomp_rule_add, seccomp_load, seccomp_reset, dan seccomp_export_bpf, lalu mempraktikkan filter C pertama yang memblokir execve dengan default action allow.

Memahami seccomp_rule_add dengan SCMP_CMP untuk menyaring syscall berdasarkan argumennya, plus menangani multi-arsitektur x86_64, i386, dan arm64 beserta bahaya syscall multiplexing x32.

Mempelajari mekanisme SECCOMP_RET_USER_NOTIF: syscall tidak diputuskan oleh kernel secara statis, melainkan ditengahi proses supervisor lewat listener fd dan ioctl SECCOMP_IOCTL_NOTIF. Lengkap dengan contoh kode supervisor dan kapan sebaiknya memakai mekanisme ini.

Membongkar filter BPF dengan seccomp-tools dump dan asm, mengamati syscall asli dengan strace, serta memakai SECCOMP_RET_LOG dan auditd untuk mencatat pelanggaran. Termasuk strategi test suite deny behavior dan fallback yang aman bila filter keliru.

Menjelajahi profil seccomp bawaan Docker (docker-default), daftar syscall yang diblokir, dan perilaku container yang melanggarnya. Termasuk format profil JSON untuk runtime OCI serta pembuatan profil kustom allowlist lewat --security-opt.

Mengamankan service unit dengan sandboxing seccomp bawaan systemd: SystemCallFilter, SystemCallArchitectures, dan RestrictAddressFamilies. Dipadukan dengan NoNewPrivileges dan ProtectSystem, penguatan dilakukan dari unit file tanpa mengubah kode aplikasi.
