Immutable file, mungkin kamu pernah mendengarnya atau bahkan menggunakannya, atau malahan belum pernah dengar samasekali. Artikel ini akan membahas tentang seluk beluk immutable flag. Bagi yang sudah paham dan familier mungkin artikel ini hanya sebagai knowledge-refreshment, dan saya butuh masukkan apabila terdapat kesalahan atau kekurangan dalam membahasnya. Bagi yang belum pernah mendengar atau sudah tahu namun masih belum paham benar mudah2an artikel ini bermanfaat.
'immutable' adalah salah satu attribut yang terdapat dalam filesystem ext2 dan ext3 (file system yang banyak digunakan oleh Linux OS). Trus klo di benak kamu ada pertanyaan gini, "Apa sih gunanya attribut immutable itu?" atau gini "Attribut?? Kok saya gak liat tuh klo 'man chmod'??" Ada baiknya kamu baca terus artikel ini.
Immutable flag adalah salah satu attribut yang apabila sebuah file/direktori di set flagnya immutable maka tak seorangpun dapat memodifikasi, delete, rename, link, overwrite, append, dsb yang mengakibatkan file tsb termanipulasi datanya. Bahkan seorang root sekalipun tidak berguna pangkatnya. Wow....fantastis.
Eittt....script-kiddie jangan senang dulu. Jangan langsung nanya "klo gitu, backd00r gw gak bakalan bisa di del donG klo gw set immutable?". Maka jawabannya "Wrong-Fully Accused". Hehehe...... (aku jg script-kiddie :P~) Klo si root itu tau (admin/root yang baik pasti tau) immutable flag, maka ya tinggal tunggu tanggal 'rm -rf'nya aja. "Lah terus apa gunanya klo gitu?" tanya si script-kiddide tadi. Ya gunanya biar script-kiddie yang laen (yang gak ngerti immutable flag) gak ngacak-ngacak backd00r and xpl0its atau bahkan sniFFer kamu. Hihihih.....
Immutable itu tidak termasuk dalam atrributnya chmod, makanya kamu gak nemuin tentang ini klo 'man chmod'. Flag yang satu ini masuk kedalam attributnya 'chattr'. Coba deh 'man chattr'. Trus klo mau liat suatu file itu di set immutable atau nggak, tinggal 'lsattr' aja di shell kamu.
Berikut ini adalah contoh proofing-nya:
[root@tvm etc]# ls -al <--- root menemukan direktori yg mencurigakan di /etc drwxr-xr-x 5 root root 4096 Jan 6 19:19 .log/ [root@tvm etc]# rm -rf .log <--- root mencoba menghapusnya rm: cannot chdir from `.log/.' to `log': Not a directory <--- hehehe....gagal [root@tvm etc]# cd .log <--- root mencoba masuk ke direktori .log [root@tvm .log]# ls -a <--- root penasaran akan isinya total 23 drwxr-xr-x 5 root root 4096 Jan 6 19:19 ./ drwxr-xr-x 74 root root 8192 Jan 6 19:19 ../ -rwxr-xr-x 1 root root 171380 Aug 16 15:23 log [root@tvm .log]# rm log <--- root berniat menhapus isinya rm: remove write-protected regular empty file `log'? y rm: cannot remove `log': Operation not permitted <--- hiks....gagal lagi [root@tvm .log]# cp /dev/null log <--- root mengcopykan /dev/null ke isi file log cp: overwrite `log', overriding mode 0644? y cp: cannot create regular file `log': Permission denied <--- hiyaaa....gagal lagiii.... :) [root@tvm .log]# > log <--- root langsung pake kekerasan
bash: log: Permission denied <--- :P~ kasiannnn deh luuuuu....
[root@tvm .log]# ln log /root/log <--- root membuat hard link ke home dir nya
ln: creating hard link `/root/log' to `log': Operation not permitted <--- root pingsan hehehehe.....
[root@tvm .log]# lsattr <--- root dapat ide setelah tanya sana-sini
---i---------- ./log
[root@tvm .log]# chattr -i log <--- root mulai senyam senyum
[root@tvm .log]# rm -rf log <--- senyum root semakin lebar
[root@tvm .log]# cd .. <--- sambil tertawa girang dia ke dir /etc
[root@tvm etc]# rm -rf .log <--- there is no excuse my friend kata si root
[root@tvm etc]#
Hingga artikel ini dibuat, masih banyak attribut2 lain yang masih dalam tahap pengembangan di dalam ext filesystem. Keep open your eyes, your ears and your mind.
Buat para 'admin/root', ada baiknya untuk membuat beberapa file penting system anda menjadi immutable. Sehingga script-kiddies yang masuk ke box anda tidak dapat menjalankan 'rootkits' yang umumnya dapat merusak system anda. Karena banyak sekali script-kiddies yang hanya taunya sekedar menjalankan 'rootkits' saja bukan memahami benar bagaimana cara kerja 'rootkits' itu sehingga mereka bisa mendapatkan akses 'r00t'.
Sekian artikel saya ini (masih dalam tahap belajar). Knowledge is belong to the world. So, share it d00d. Keep the Open-Source spirit UP. Any advices are welcome to fruziwall.blogspot.com