Beberapa waktu belakangan ini perbincangan hangat tentang dunia security linux tidak terlepas dari persoalan linux capabilities. Linux capabilities adalah sebuah system atau metode yang memungkinkan sebuah applikasi jalan dengan privileges root sesuai dengan keperluan. Sangat jelas bahwa tujuan dibuatnya Linux Capabilities system ini untuk keperluan agar, penggunaan hak akses setingkat dengan root bisa digunakan secara lebih efisien, dalam artian bahwa, alih-alih memberikan semua privileges root ke program tertentu, Linux Capabilities membaginya ke beberapa bagian terntentu sehingga jauh lebih secure. Daftar dari Linux Capabilites bisa anda lihat di /usr/include/linux/capability.h, pada linux kernel 2.6.35.8, terdapat 33 Caps, penjelasan mengenai kegunaan Caps tersebut bisa anda lihat di header file yang berikan diatas. Contoh implementasi Linux Capabilities Seperti anda ketahui, ping adalah salah satu command yang ketika di-execute oleh user biasa akan menjalankan proses dengan uid dan gid root, ini tentu akan berimplikasi terhadap security ketika ping itu sendiri punya kelemahan, dan atau kalau anda lihai melihat bahwa ping ini juga dimanfaatkan sebagai backdoor karena punya privalge root tersebut( bisa anda lihat di last byteskrew collection sebagai contoh).
[email protected]:~$ ping -c 3 google.com PING google.com (74.125.235.18) 56(84) bytes of data. 64 bytes from 74.125.235.18: icmp_seq=1 ttl=253 time=21.7 ms 64 bytes from 74.125.235.18: icmp_seq=2 ttl=253 time=19.5 ms 64 bytes from 74.125.235.18: icmp_seq=3 ttl=253 time=21.0 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 19.558/20.793/21.792/0.934 ms
[email protected]:~$ stat /bin/ping File: `/bin/ping' Size: 30856 Blocks: 64 IO Block: 4096 regular file Device: 801h/2049d Inode: 262234 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2011-01-12 09:43:11.000000000 +0700 Modify: 2007-12-11 00:33:50.000000000 +0700 Change: 2010-12-29 22:21:59.000000000 +0700
[email protected]:~$ Dan ketika ping kita rubah menjadi non-Set-UID program, maka:
[email protected]:/home/elz# chmod u-s /bin/ping
[email protected]:~$ stat /bin/ping File: `/bin/ping' Size: 30856 Blocks: 64 IO Block: 4096 regular file Device: 801h/2049d Inode: 262234 Links: 1 Access: (0755/-rwxr-xr-x) Uid:...