![]() |
![]() |
Pada masa komputerisasi saat ini, password merupakan sesuatu hal yang sangat berharga dan sensitif. Password juga merupakan salah satu sasaran yang sering diincar oleh para hacker untuk menembus suatu sistem. Memahami metode authentikasi dan penyimpanan password pada sistem operasi yang anda gunakan adalah syarat mutlak untuk mengamankan sistem dan jaringan anda.
Berikut ini adalah tulisan yang akan menjelaskan kepada anda bagaimana sistem LINUX menyimpan password, hal-hal yang mungkin mengancam keamanan metode yang digunakan. Tulisan ini juga memberikan gambaran singkat tentang beberapa usaha yang dapat dilakukan untuk memecahkan password pada sistem Linux.
Akhirnya selamat membaca dan bekerja lebih baik.
Salam,
Hendra & Susan Dewichan
Author: Kript0n
Sesuatu hal yang penting bagi kita adalah memahami bagaimana cara kerja dari
/etc/passwd ?. Pada suatu sistem unix anda membutuhkan hal berikut: suatu field
untuk UID's, atau GID's (untuk group names mapping), satu lagi
untuk password dan lainnya untuk informasi pemakai.
File /etc/passwd dapat secara langsung diakses dengan sejumlah operasi, misalnya. ls. ketika anda melakukan ls pada direktori home, atau /etc/passwd, dan yang lainnya. Hal ini tentu saja menimbulkan pertanyaan :
?: Bagaimana akibatnya kalau file tersebut dapat dibaca oleh semua orang dan
semua program bukankah password kita berada disana ? Bukankah hal tersebut tidak
aman ?
Baiklah, banyak sekali solusi untuk mengamankan password kita salah satunya
adalah menyimpan password-password tersebut dalam keadaan acak dalam file /etc/passwd
Ketika pemakai memasukkan password, maka password yang dimasukkan tersebut
diacak juga, dan dibandingkan dengan password yang tersimpan pada file /etc/passwd.
Jika keduanya sama (hasil acak dengan yang tersimpan dalam /etc/passwd), berarti
password yang dimasukkan adalah benar. Rasanya metode ini cukup logis, tetapi
metode ini menjadi tidak layak sejak kehadiran sejumlah program yang dapat
melakukan bruteforce untuk mencari kombinasi hasil simbol acak sampai dapat, dan
... sistem menerimanya.
Kemudian orang berpikir bagaimana cara mencegah metode cracking password secara bruteforce ?
Hal yang pertama terpikir adalah menggunakan algoritma pengacakan yang lebih baik. Algoritma MD5 menyediakan suatu password acak yang lebih baik dari pada yang normal, jadi merupakan pilihan yang lebih baik digunakan.
Solusi lainnya adalah meletakkan file password di tempat yang tidak diketahui user. Tetapi tentu saja program harus mengetahuinya bukan ? Hal ini dapat menjadi masalah bagi program dan OS yang tidak dipersiapkan untuk hal tersebut.
Kedua solusi ini sekarang banyak diterapkan pada distribusi Linux umumnya (perhatikan bahwa "tempat" baru password berada di /etc/shadow) dan MD5 sekarang juga telah diterapkan.
Sebenarnya bagaimana persisnya cara kerja metode /etc/shadow?
Baiklah... pada dasarnya, password yang terenkripsi berada di /etc/passwd, dan anda akan melihat suatu "x" dimana menyebabkan sistem akan memeriksa /etc/shadow.
Dan sekarang anda mungkin bertanya "tapi, kita dapat mengakses /etc/shadow juga bukan?"
dan saya akan menjawab bahwa "tidak, anda tidak bisa" :)
hal ini terjadi karena hanya root yang dapat melihat isi dari /etc/shadow. Jadi
sekarang kita telah mendapatkan suatu permulaan dari password yang aman.
Disinilah letak kehebatan PAM... Dengan mengunakan PAM, anda hanya perlu mengedit file conf dari program yang perlu mengakses password (pikir login, telnet, dll..) dan mengubah satu baris untuk mendukung modul authentikasi tersebut. Cukup mudah dan cepat diterapkan.
PAM adalah singkatan dari Pluggable Authentication Modules dan merupakan suatu himpunan dari pustaka bersama (shared libraries) yang memungkinkan administrator sistem mengatur bagaimana suatu authentikasi dilakukan oleh aplikasi. Marilah kita mulai dari dasar (basic). Ketika anda login ke suatu sistem, baik melalui jaringan serial ataupun network, getty ataupun telnet (salah satu) akan membangkitkan program login yang mana menanyakan kombinasi user/password yang kemudian akan diperiksa pada file /etc/passwd.
Sejauh ini masih baik. Sekarang coba bayangkan bahwa anda ingin menerapkan
suatu suatu metode authentikasi yang baru pada sistem anda, misalnya
authentikasi dengan kartu magnetik (ini hanya suatu contoh, tetapi yang terbaik
:). Anda perlu melakukan perubahan terhadap login dan semua aplikasi yang
menggunakannya (seperti getty, telnet dan ssh) agar metode authentikasi baru
tersebut dapat digunakan. Dalam hal ini administrator sistem telah berbuat
kesalahan yang akan menyebabkan seluruh sistem berada dalam keadaan berbahaya,
baik secara lokal dan remote, bukankah begitu ?
Semua ini adalah latar belakang dibuatnya PAM. PAM menyediakan suatu
"interface" antara program yang membutuhkan authentikasi dengan metode
authentikasi yang benar. Lebih jauh, setiap metode authentikasi tunggal didukung
oleh PAM, dan didukung oleh program yang mana anda menggunakannya. PAM dapat
juga digunakan untuk mengatur sesi dan login dengan mudah, dan dapat melakukan
pembatasan, misalnya jangka waktu login untuk seorang user(ini hanya suatu
contoh). Tetapi hal tersebut adalah benar-benar mungkin dilakukan. Anda dapat
juga memikirkan suatu authentikasi alternatif dan hi-tech seperti palm analysis
dan retinal scanning (asyik, bukan?)
Dewasa ini, banyak distribusi yang mendukung PAM dan benar-benar telah
diterapkan. Seperti distribusi SuSE, Debian, RedHat, Caldera, dll...
Pada suatu sistem yang mendukung PAM diatas, untuk menerapkan password shadow,
yang perlu anda lakukan adalah konversi password dan group file serta mengubah
PAM conf files (mudah bukan?).
Satu dari kemungkinan lain adalah modul authentikasi yang dapat disisipkan,
misalnya menggunakan authentikasi NT domain, sehingga pemakai tidak usah membeli
NIS / NIS+ for NT.
Link ke modul PAM:
.PAM cryptocard module
http://www.jdimedia.nl/igmar/pam/
.PAM smartcard module
http://www.linuxnet.com/applications/applications.html
.PAM smb (samba) module
http://rpmfind.net/linux/RPM/pam_smb.html
http://www.csn.ul.ie/~airlied/pam_smb/
Sekarang anda mungkin bertanya, bagaimana seorang penyerang mendapatkan
password pada sistem baru ini (/etc/shadow). Hal ini membuatnya sedikit agak
sulit. Pada tulisan sebelumnya disebutkan penyerang mengunakan metode cracking
password secara bruteforce, mengacak daftar kata-kata dan menbandingkan hasil
acak dengan password acak anda, tetapi sekarang password acak tersebut berada
dalam /etc/shadow, yang hanya dapat dibaca oleh root. Tetapi jangan berpikir
bahwa tidak ada penyerang yang dapat membaca file tersebut selamanya, penyerang
dapat menggunakan program yang memiliki bug, seperti, cgi scripts, dll yang
mengunakan batasan root, selanjutnya menbuatnya mampu mendapatkan /etc/shadow
untuk selanjutnya di "cracking".
Dan dewasa ini, program cracking password baru dapat membaca/menganalisa secara
parallel dengan beberapa mesin yang meningkatkan waktu proses. Hal ini dapat
menjadi sesuatu ancaman bagi administrator sistem. Sekarang mari kita lihat
program yang dapat digunakan untuk "crack" password:
.John the Ripper
Ini adalah tool password cracking yang paling terkenal, digunakan oleh semua
pseudo hackers dan banyak black hats, karena mudah digunakan dan cepat .
Homepage >> http://www.false.com/security/john/
.Crack
tool Password cracking yang pertama yang benar-benar didefinsikan sebagai hal
tersebut :)
Homepage >> http://www.users.dircon.co.uk/~crypto/
Saya berharap file ini merupakan suatu cara untuk menunjukkan pada anda bahwa
anda tidak pernah aman, bagaimanapun anda tetap dapat berjalan menuju ke tujuan
ini. Bergembiralah.
Jika anda ada keraguan atau pertanyaan, , mail saya:
kript0n@phyber.dhis.dee.uc.pt [home - always on]
kript0n@antionline.org [when in a unsafe place] :)