Belajar NetBSD - Security Features & PaX
Episode 15 of 23

Belajar NetBSD - Security Features & PaX

Memperkuat NetBSD dari dalam: memahami mekanisme PaX seperti ASLR dan W^X, mengelola flags keamanan per-binary dengan paxctl, serta menerapkan pengaturan sysctl dan best practice keamanan server.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 14 sebelumnya kita telah mengamankan komunikasi dengan TLS dan sertifikat. Kini kita masuk lebih dalam — ke dalam sistem itu sendiri. Pada episode ini kita akan memperkuat NetBSD dari dalam: security features dan PaX — memahami mekanisme PaX seperti ASLR dan W^X, mengelola flags keamanan per-binary dengan paxctl, serta menerapkan pengaturan sysctl dan best practice keamanan server.

Firewall dan TLS melindungi dari luar; PaX melindungi dari dalam. Jika sebuah program berhasil diretas — misalnya lewat buffer overflow — PaX adalah lapisan terakhir yang membuat serangan itu gagal. NetBSD membawa tradisi ini sejak lama, dan memahaminya adalah bagian penting menjadi administrator NetBSD yang matang.

Apa itu PaX?

PaX adalah rangkaian teknik hardening yang membuat eksploitasi jauh lebih sulit. Inti mekanismenya ada dua:

MekanismeCara Kerja
ASLRAcak alamat memori (stack, heap, library) setiap proses dijalankan — penyerang tidak tahu di mana menaruh/menemukan kode
W^XHalaman memori tidak boleh Writeable dan EXecutable bersamaan — kode injeksi tidak bisa ditulis lalu dieksekusi

Dengan ASLR, serangan return-to-libc dan ROP menjadi jauh lebih sulit karena alamat selalu berubah. Dengan W^X, halaman yang bisa dieksekusi tidak bisa ditulis — jadi menyuntikkan kode tidak akan berfungsi.

Status PaX di NetBSD

Cek pengaturan PaX global lewat sysctl -a | grep pax:

Melihat pengaturan PaX
sysctl -a | grep pax
Contoh output
proc.pax.flags = 0x0
paxtype = 0x0
security.pax.aslr.enabled = 1
security.pax.mprotect.enabled = 1

Nilai 1 berarti ASLR dan mprotect (bagian dari W^X) aktif secara global. Ini default yang aman di NetBSD modern.

Mengelola Flags per-Binary dengan paxctl

Tidak semua program cocok dengan seluruh proteksi PaX. Kadang sebuah binary — misalnya Java VM atau emulator — butuh pengecualian. NetBSD menyediakan paxctl untuk mengatur flags per-binary.

Melihat Flags

Melihat flags PaX sebuah binary
paxctl /usr/pkg/bin/java
Contoh output
PaX flags on /usr/pkg/bin/java (default = enabled):
    X:  noexec-protected         (enabled)
    S:  segvguard-protected      (enabled)
    A:  aslr-protected           (enabled)
    M:  mprotect-enabled         (enabled)
    E:  emutramp-enabled         (enabled)

Setiap huruf mewakili satu proteksi: A untuk ASLR, M untuk mprotect, S untuk segvguard, X untuk noexec, E untuk emutramp.

Mengubah Flags

Jika sebuah binary bermasalah dengan ASLR (misalnya crash acak), matikan proteksi ASLR:

Menonaktifkan ASLR untuk satu binary
paxctl -A /usr/pkg/bin/problematic
Verifikasi perubahan
paxctl -v /usr/pkg/bin/problematic

Penjelasan opsi singkat:

OpsiEfek
-ANonaktifkan ASLR untuk binary ini
-aAktifkan ASLR (nilai default)
-MNonaktifkan mprotect
-sTampilkan status flags

Warning

Jangan menonaktifkan proteksi PaX tanpa alasan kuat dan pengujian. Proteksi ini adalah pertahanan terakhir jika program dieksploitasi. Sebaiknya cari akar masalahnya — seperti flag build yang salah — daripada melemahkan keamanan.

Konfigurasi Keamanan dengan sysctl

Berikut pengaturan sysctl yang relevan dengan keamanan:

Melihat pengaturan keamanan kernel
sysctl security
Contoh output pengamanan kernel
security.models.extensions.securelevel = 0
security.pax.aslr.enabled = 1
security.pax.mprotect.enabled = 1

Securelevel

NetBSD memiliki konsep securelevel — level keamanan yang membatasi operasi saat sistem berjalan. Semakin tinggi level, semakin ketat:

LevelPembatasan
0Normal (default)
1Sekurel: immutable file flags aktif, /dev/mem terbatas
2Lebih ketat: /dev/mem baca-saja, raw disk terbatas

Naikkan level secara permanen lewat rc.conf:

Set securelevel di /etc/rc.conf
sysctl_security_models_extensions_securelevel=1
Naikkan securelevel secara live
sysctl -w security.models.extensions.securelevel=1

Warning

Securelevel tidak bisa diturunkan tanpa reboot. Mulailah dari level 1 dan uji layanan kalian sebelum naik lebih tinggi — beberapa operasi admin (seperti perubahan flags file penting) akan ditolak pada level tinggi.

Pengaturan Keamanan Network Lainnya

Pengaturan keamanan jaringan
sysctl -w net.inet.ip.forwarding=0
sysctl -w net.inet.tcp.rfc1948=1
Contoh verifikasi
net.inet.ip.forwarding: 0 -> 0
net.inet.tcp.rfc1948: 0 -> 1

rfc1948 mengacak initial sequence number — menyulitkan prediksi koneksi. forwarding=0 berarti sistem tidak meneruskan paket (bukan router) — kecuali jika kalian memang ingin jadi router.

Veriexec: Integrity Checking (nbgc)

NetBSD juga punya veriexec — sistem yang mengecek integritas file executable terhadap database checksum. Tool untuk mengelolanya adalah nbgc (NetBSD signed manifest). Ini opsional tetapi sangat kuat untuk lingkungan yang ketat:

Membuat database veriexec
veriexec -z /etc/signatures
Contoh output veriexec
Veriexec signatures database generated

Dengan veriexec aktif, perubahan pada binary sistem akan terdeteksi dan dicegah. Implementasinya rumit — jadikan ini proyek lanjutan, bukan langkah pertama keamanan.

Best Practice Keamanan Server

PraktikDetail
Minimal installInstal hanya package yang dibutuhkan
Patch rutinUpdate base system dan pkgsrc terjadwal
Firewall aktifnpf dengan default deny (episode 12)
SSH terkunciKey only, tanpa root (episode 13)
PaX aktifBiarkan default; gunakan paxctl hanya untuk kasus khusus
Securelevel sesuai kebutuhanUji sebelum menaikkan level
Backup dan restore terujiJika terlanjur diserang, pemulihan cepat (episode 11)

Penutup

Pada episode 15 ini, kalian telah memperkuat NetBSD dari dalam: memahami mekanisme PaX seperti ASLR dan W^X, mengelola flags keamanan per-binary dengan paxctl, menerapkan pengaturan sysctl dan securelevel, serta mengenal veriexec dan best practice keamanan server.

Inti yang harus dibawa pulang:

  • PaX = ASLR (acak alamat) + W^X (tulis dan eksekusi terpisah) — pertahanan terakhir terhadap eksploitasi.
  • Kelola flags per-binary dengan paxctl — jangan matikan tanpa alasan dan pengujian.
  • sysctl security menampilkan pengaturan keamanan kernel; naikkan securelevel bertahap dan uji.
  • net.inet.tcp.rfc1948=1 mengacak ISN — aktifkan.
  • veriexec (nbgc) adalah integrity checking opsional untuk lingkungan ketat.

Di episode 16 selanjutnya kita akan menaklukkan protokol masa depan: IPv6 dan advanced networking — autoconfiguration dengan SLAAC, DHCPv6, tunneling 6to4/6in4, firewall IPv6 dengan npf, dan konsep routing lanjutan. Sampai jumpa di episode 16!

Belajar NetBSD - Security Features & PaX | Belajar NetBSD