Eksploit, buffer overflow dan shellcode adalah tiga saudara kandung. Semua berawal dari keteledoran sang programmer sehingga programnya mengandung vulnerability yang dapat dieksploit untuk membuat program tersebut menjalankan code apapun yang diinginkan hacker (arbitrary code execution), code ini disebut dengan shellcode. Shellcode adalah kunci keberhasilan eksploitasi buffer overflow (hole/lubang keamanan yang paling rentan) dan lubang keamanan lainnya yang berorientasi memori.
Dihubungkan dengan pembahasan di bab pendahuluan, shellcode merupakan program yang akan mengambil alih suatu sistem sesaat setelah eksploit memanfaatkan buffer overflow lalu membuat sistem tersebut 'crash'. Shellcode dapat diibaratkan seperti telur yang di bungkus oleh eksploit, saat eksploit berhasil meng-buffer-overflow-kan suatu sistem maka telur yang ada didalamnya akan segera mengambil alih sistem tersebut.
Penerapan dalam prinsip dasar cara kerja komputer, prosesor hanya akan melakukan satu buah instruksi dalam satu waktu. Yang memberikan instruksi tersebut adalah program (contoh program: winamp, notepad, dan sebagainya). Saat program akan dieksekusi (misal : kita klik icon winamp), maka program winamp yang semula ada di hardisk akan diload ke suatu lokasi di memori komputer, dan kemudian prosesor akan mengeksekusi kode-kode program winamp tersebut. Ini artinya saat eksploit berhasil merusak program winamp tersebut, eksploit akan menempatkan shellcode di lokasi memori pada mesin target, selanjutnya eksploit akan membuat prosesor menuju lokasi memori tempat shellcode telah ditanam dan kemudian akan mengeksekusinya yaitu mengacaukan program winamp sesuai yang diinginkanya. Kesimpulannya, mekanisme ini berhubungan langsung dengan prosesor dan memori, itu sebabnya shellcode dibuat agar dapat langsung ditanam pada memori sehingga bentuknya cukup aneh.
Friday, June 7, 2013
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment