Langsung ke konten

Arsip

Keamanan Proses

4 artikel
Keamanan Siber 19 Sep 2026 4 min read

no_new_privs Memblokir Penambahan Privilege Saat Eksekusi

Sebuah service dapat perlu mengeksekusi program helper setelah menerima input yang tidak tepercaya. Jika salah satu program tersebut memiliki set-user-ID, set-group-ID, atau file capabilities, execve() biasa dapat melintasi batas privilege meskipun proses pemanggil tidak bermaksud memperoleh otoritas tambahan. Linux no_new_privs mengubah transisi tersebut: setelah atribut ini ditetapkan pada sebuah thread, pemanggilan execve() berikutnya tidak dapat memberikan privilege yang tidak dimiliki pemanggil pada saat eksekusi. Properti ini sengaja memiliki cakupan sempit. Ia membatasi penambahan privilege melalui eksekusi program; ia tidak menghapus otoritas yang sudah dimiliki proses. Perbedaan tersebut membuat no_new_privs berguna sebagai batas eksekusi satu arah, tetapi tidak cukup sebagai sandbox lengkap.

Linux 18 Sep 2026 5 min read

mseal Mengunci Tata Letak dan Permission Mapping Memori

Sebuah proses dapat membentuk mapping memori dengan alamat, ukuran, dan protection bit tertentu, lalu mengubah mapping itu melalui operasi seperti munmap(), mprotect(), atau mremap(). Linux mseal() menambahkan transisi state satu arah: virtual memory area terpilih dapat disegel sehingga sejumlah perubahan mapping berikutnya ditolak oleh kernel. Mekanisme ini melindungi struktur mapping, bukan byte yang tersimpan di dalamnya. Mapping writable yang disegel tetap dapat ditulis melalui store biasa. Sealing membatasi operasi yang dapat menghapus mapping, memindahkannya, menggantinya, atau mengubah atribut yang tercakup oleh aturan sealing.

Keamanan Siber 17 Sep 2026 5 min read

no_new_privs Membuat Peningkatan Privilege Saat Eksekusi Bersifat Irreversibel

no_new_privs Membuat Peningkatan Privilege Saat Eksekusi Bersifat Irreversibel Sebuah layanan Linux dapat dengan sengaja mengeksekusi program yang memiliki bit set-user-ID atau file capabilities sambil bermaksud tetap berada pada tingkat privilege yang sudah dimilikinya. Tanpa batas eksekusi eksplisit, execve() dapat menjadi transisi privilege: metadata pada executable dapat mengubah kredensial efektif atau menyumbangkan capability kepada program baru. Atribut task no_new_privs mengubah transisi tersebut. Setelah aktif, execve() yang berhasil tidak dapat memberikan privilege yang sebelumnya tidak dapat digunakan task sebelum pemanggilan itu. Atribut ini diwariskan kepada turunan, bertahan melewati eksekusi, dan tidak dapat dinonaktifkan. Sifat tersebut menjadikannya constraint satu arah pada garis keturunan proses, bukan opsi sementara untuk satu executable.

Keamanan Siber 17 Sep 2026 5 min read

execveat Mengikat Eksekusi Program ke Referensi File yang Sudah Dibuka

Sebuah launcher memilih executable dari suatu direktori, memeriksa atribut atau kontennya, lalu menjalankannya. Jika tahap pemilihan dan eksekusi masing-masing melakukan resolusi pathname secara terpisah, rename, perubahan symlink, atau penggantian direktori di antara kedua operasi dapat membuat objek yang dieksekusi berbeda dari objek yang diperiksa. Linux execveat() dapat memindahkan batas tersebut dari lookup pathname kedua ke referensi file yang sudah diperoleh. Dengan AT_EMPTY_PATH, pathname kosong memberi instruksi kepada kernel untuk mengeksekusi objek yang dirujuk oleh dirfd. Descriptor tersebut dapat dibuka dengan O_PATH. Keputusan eksekusi tetap melewati pemeriksaan permission dan format executable normal di kernel, tetapi pemilihan objek tidak lagi bergantung pada resolusi ulang pathname asal.