Episode pamungkas: membandingkan seccomp dengan AppArmor, SELinux, capabilities, Landlock, dan virtual machine; kapan harus memilih seccomp; rekap perjalanan 23 episode; checklist produksi; dan sumber belajar untuk melangkah lebih jauh.

Setelah di episode 21 kita menengok fitur modern libseccomp dan roadmap ke depan, tibalah episode pamungkas. Kita tidak menambah tool baru; kita meletakkan seccomp pada tempatnya dalam ekosistem keamanan Linux yang lebih luas, membandingkannya dengan alternatif nyata, merekap seluruh perjalanan dari episode 0 sampai 21, dan menutup dengan checklist produksi serta peta belajar lanjutan. Ini adalah peta akhir dari seri 23 episode ini.
Linux menyediakan banyak alat pengaman yang bekerja pada lapisan berbeda. Masing-masing menjawab pertanyaan yang berbeda.
| Mekanisme | Lapisan Kerja | Membatasi Apa | Kekuatan Utama |
|---|---|---|---|
| Seccomp | Kernel, per syscall | Syscall yang boleh dipanggil | Murah, universal, tepat untuk container |
| AppArmor | LSM, path-based | Akses objek berbasis path | Cepat dipahami, cocok untuk satu aplikasi |
| SELinux | LSM, label-based | Akses objek berbasis label | Paling detail, kuat untuk multi-tenant |
| Capabilities | Kernel, hak istimewa | Hak yang dimiliki proses root | Memangkas hak superuser menjadi kecil-kecil |
| Landlock | LSM, path-based | Akses filesystem tanpa root | Penguncian filesystem yang simpel dan aman |
| VM / sandbox | Di atas kernel | Seluruh permukaan kernel virtual | Isolasi terkuat untuk kode tidak tepercaya |
Penjelasan singkat masing-masing:
CAP_NET_BIND_SERVICE. Ia tidak mengontrol akses objek, melainkan hak istimewa proses.Kesalahan paling umum adalah memperlakukan mekanisme ini sebagai pesaing yang saling menggantikan. Kenyataannya mereka berlapis: seccomp membatasi syscall di lapisan bawah, capabilities memangkas hak root, AppArmor atau SELinux membatasi akses objek, dan Landlock mengunci filesystem — semuanya bisa aktif bersamaan.
Analogi yang pas: seccomp adalah satpam di gerbang gedung, capabilities adalah daftar kunci yang dibawa setiap pegawai, AppArmor atau SELinux adalah kartu akses per ruangan, dan virtual machine adalah gedung yang benar-benar terpisah. Memasang satpam tidak menggantikan kartu akses — keduanya bekerja untuk menutup kesalahan masing-masing.
Skenario paling aman di dalam container menggunakan semuanya: seccomp memblokir syscall berbahaya, capabilities memangkas hak root, filesystem dibuat read-only, dan AppArmor atau SELinux mengunci akses objek.
Dengan semua opsi itu, kapan seccomp adalah jawaban yang tepat?
Jika kebutuhan kalian justru kontrol akses objek yang detail, AppArmor atau SELinux adalah pilihan yang jujur. Jika kode benar-benar tidak tepercaya, sandbox penuh atau virtual machine adalah jawabannya. Tidak ada paksaan memakai seccomp di mana-mana — keputusan yang benar adalah keputusan yang sesuai konteks.
Dua puluh dua episode sebelum ini dibangun berlapis, seperti halnya filter seccomp itu sendiri. Berikut peta singkatnya:
| Rentang | Tema | Isi Inti |
|---|---|---|
| 0–3 | Fondasi | Setup, sejarah kernel 2.6.12, konsep seccomp-bpf, modes dan return actions |
| 4–7 | API dan Filter | libseccomp dasar, argfilter dan arsitektur, NOTIFY, debugging dan testing |
| 8–12 | Integrasi | Profile Docker dan runc, systemd, Kubernetes, aplikasi dan daemon, kombinasi capabilities |
| 13–17 | Pendalaman | Blocking attack surfaces, CVE dan patch 2.6.1, audit dan monitoring, kernel interface dan prctl, advanced filter design |
| 18–21 | Produksi dan Arah | Performa, sandboxing projects, policy-as-code, fitur modern dan roadmap |
Perhatikan pola yang berulang sepanjang seri ini: selalu mulai dari pengamatan (syscall apa yang benar-benar dipakai), lalu sempitkan izin seminimal mungkin, lalu verifikasi (denial hilang, aplikasi tetap jalan). Pola itu adalah keterampilan paling berharga yang kalian bawa keluar dari seri ini.
Sebelum menganggap sebuah sistem "selesai", jalankan checklist ini:
| Item | Keterangan |
|---|---|
| libseccomp terbaru | Versi 2.6.1 ke atas; tabel syscall sinkron dengan kernel (episode 21) |
| Profile minimal dan tervalidasi | Daftar syscall dikurasi, lulus validasi CI (episode 20) |
| NOTIFY dan LOG terpasang | Syscall berisiko memakai NOTIFY, periode observasi LOG terjadwal |
| Kubernetes RuntimeDefault | Atau localhost untuk profile custom, bukan unconfined (episode 10) |
| Kombinasi lapisan | capabilities + seccomp + filesystem read-only aktif bersamaan |
| Pemantauan denial | Spike denial menjadi alarm dini, terhubung ke monitoring (episode 15) |
Verifikasi cepat yang bisa kalian jalankan sekarang:
grep Seccomp /proc/self/status
pkg-config --modversion libseccomp
scmp_sys_resolver -tCek filter yang terpasang pada proses penting dengan grep Seccomp /proc/<pid>/status' dan pantau denial melalui audit log seperti yang kalian pelajari di episode 15.
Note
Checklist ini bukan alat penghakiman, melainkan alat perbaikan — persis seperti yang kami tekankan di sepanjang seri. Tidak ada sistem yang lahir sempurna; yang ada adalah sistem yang dipelihara menuju kesempurnaan. Jalankan checklist ini berkala, tandai yang belum lolos, dan buat rencana menutup gap-nya.
Perjalanan kalian dengan seccomp tidak berhenti di episode 22. Berikut sumber yang kami rekomendasikan:
man seccomp, man seccomp_notify, dan man libseccomp adalah referensi paling akurat dan paling dekat.Documentation/userspace-api/seccomp_filter.rst menjelaskan filter, arsitektur, dan flag secara resmi.default.json di repositori moby adalah contoh profile produksi yang bisa kalian pelajari dan tiru.Dan inilah titik akhirnya. Selama 23 episode — dari episode 0 sampai 22 — kalian telah membangun pemahaman seccomp dari nol: mengapa kernel 2.6.12 melahirkan mode pertama, bagaimana BPF bekerja sebagai filter, bagaimana menulis filter dengan libseccomp, mengoperasikan NOTIFY, mengurus profile di Docker, Kubernetes, dan systemd, mengombinasikan dengan capabilities, memblokir permukaan serangan, mengikuti patch keamanan 2.6.1, mengukur performa, melihat seccomp bekerja di proyek sandboxing, mengelola profile sebagai kode, meninjau roadmap, dan kini menempatkannya dalam ekosistem yang lebih luas. Itu adalah perjalanan yang lengkap — bukan sekadar kumpulan perintah, melainkan cara berpikir.
Mari kita tutup dengan tiga pesan yang paling penting.
Pertama, seccomp adalah alat, bukan tujuan. Ia menjawab pertanyaan "operasi kernel apa yang boleh dilakukan proses ini" dengan cara yang murah, pasti, dan berlapis bersama mekanisme lain. Di container ia adalah standar; di daemon ia adalah pengaman murah; di sandbox ia adalah gerbang terdalam. Keahlian sejati adalah memilih dan memadukan alat yang sesuai konteks.
Kedua, keamanan dibangun dari pengamatan dan iterasi, bukan dari keberanian. Seluruh seri ini mengajarkan satu pola: catat syscall yang nyata, izinkan seminimal mungkin, verifikasi, lalu perketat. Tidak ada satu deny pun yang "langsung dibenarkan tanpa dibaca" — dan pola itulah yang akan menyelamatkan kalian di produksi, berkali-kali.
Ketiga, teruslah praktik. Filter seccomp yang sehat adalah filter yang diuji dan dipelihara, bukan yang ditulis sekali lalu dilupakan. Buat lab, simulasikan insiden, ukur overhead, uji rollback, dan perbarui libseccomp secara rutin. Keterampilan ini langka dan sangat berharga — di dunia DevOps, SRE, dan keamanan infrastruktur, praktisi yang memahami seccomp adalah aset yang tidak tergantikan.
Terima kasih sudah menemani seri ini sampai akhir. Kalian sekarang memiliki peta lengkap untuk tidak hanya mengerti seccomp, tetapi juga mengelolanya dengan percaya diri. Bangun sesuatu yang aman, catat apa yang kalian pelajari, dan bagikan kembali ke komunitas. Sampai jumpa di seri belajar berikutnya — dan selamat berkarya sebagai praktisi keamanan Linux!