Langsung ke konten

Arsip

Keamanan Proses

3 artikel
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.