Tuesday, February 13, 2007

Bugs hunter vs Programmer

Sebelum dimulai topik ini, Sejujurnya gw belun nemuin referensi pasti tentang istilah bugs hunter (yang gw temuin malah "bug-hunter - a zoologist who studies insects" ref http://www.thefreedictionary.com/bug-hunter, hehehhe), mungkin dahulu kala sebelum opensource "booming", dan source code hanya untuk kalangan terbatas maka seinget gw pernah ada istilah "Beta tester", nah beta tester inilah yang akan memberi masukan tentang aplikasi tersebut (kemungkinan masih di pakai untuk aplikasi closed source lainnya) dan kemungkinan bisa kita anggap cikal-bakal bug hunters selain istilah "... auditor ... bla bla" :p (CMIIW)

Topik ini gw bahas karena sudah hampir lebih dari 5 tahun gw bergelut dengan bugs hunting dan lebih kurang 3 tahun untuk serius dalam melakukan "bugs hunting" yang umumnya gw lakukan pada aplikasi opensource (karena dengan melihat source codenya membuat proses ini lebih mudah dan tidak hanya melakukan "blackbox testing"). Seperti yang di tulis anonymous dalam rubrik "pseudo-random" di echo|zine issue 13
Melonjaknya jumlah vulnerabilities pada tahun 2005 sepertinya terjadi karena banyak ditemukan bugs yang mudah sekali ditemukan pada aplikasi web. Banyak orang menemukan vulnerabilities di dalam aplikasi sederhana -- distribusinya yang kecil dan mudah diinstal, seperti aplikasi guest book, blogging tools (dan juga plugins-nya), dan lain-lain. Saya pikir dengan kemampuan rata-rata (mengerti programming, dan mengenal karakteristik threat tipe aplikasi) seseorang dapat dengan mudah menemukan bugs pada aplikasi-aplikasi tersebut

Herannya lagi puluhan bahkan ratusan bug (tengok situs milw0rm.com yang tak pernah sepi menerima laporan celah keamanan pada aplikasi (advisory) ) ditemukan dalam hitungan hari, yang ironisnya bug tersebut hampir sama; sebut saja bug "Remote file inclusion" pada aplikasi CMS (content management system) misalkan yang berbasis php, umumnya terjadi karena tidak ada "pemenjaraan variabel" (unsanitized variable) serta kesalahan konfigurasi "engine php" itu sendiri dan dilengkapi oleh "tidak terkendalinya" Opsi dan module pada web server.

Mungkin secara gamblang seorang programmer memiliki visi "kemudahan" dan "kenyamanan" untuk user, sedangkan bagi seorang "bug-hunter" ini adalah celah yang hampir pasti akan di exploitasi, sebagaimana yang gw tulis pada artikel echo zine issue 13 yang berjudul 0second; meet the bug, disitu secara gamblang gw sebutkan beberapa cara untuk menemukan bug dan "ironisnya" cara itu sudah termasuk usang tetapi "lebih ironis" lagi cara itu masih berlaku sampai sekarang (baca 0day), lalu apakah ada yang salah dengan programmer? Apakah mereka tidak mempelajari bagaimana membuat "kode yang aman?".

Sebut saja Pendidikan tentang secure programming. Apakah ada? sebenarnya (menurut gw) kebutuhan akan keamanan timbul dari rasa paranoid, (bahkan ada sebuah buku yang berjudul "Only the Paranoid Survive" karangan Andrew Grove. ), Mungkin yang diperlukan adalah meningkatkan level "Security Awareness" para programmer, toh tidak sedikit bacaan di internet yang membahas tentang bagaimana membuat "kode yang aman", berikut link bagus yang gw temukan sewaktu gw melakukan pencarian tentang "secure programming" via search-engine, u may want to check it !.

Kebetulan, Baru saja gw abis ngebaca salah satu chapter di Stealing the Network How to Own a continent yang berjudul A Real Gullible Genius (bukan sambil nulis gw sambil baca, tapi tulisan ini sudah mengendap 2 hari sebagai draft di blog gw :P ), yang gw rasa bisa memberi suatu perkuatan untuk topik yang gw bahas kali ini, berikut potongan chapternya
Flir had been most surprised when, as he read the script, he learned that it used non-password-protected ssh public/private keypairs to check in application updates.

# !/bin/sh
#
# Description:
# This script scp's a CVS sandbox of the SIRAM (my.ptech.edu) application
# up to the server.
#
# Changelog:
#
# 2/21/03 - Over the objections of bstrobell, this script uses a non-
# passphrase-protected ssh key (id_rsa_siram) to authenticate to the
# server. Frieda requested this after Ben's sick day left her unable to
# push changes to the server. – bstrobell

Taken From Stealing The Network; How To Own a Continet; Chapter 4: A Real Gullible Genius (Day 5: Over 20,000 Social Security Numbers) By Jay Beale as "Flir"

Lihatlah notes pada "source code" yang bertuliskan Over the objections of bstrobell, this script uses a non-passphrase-protected ssh key (id_rsa_siram) to authenticate to the server. Frieda requested this after Ben's sick day left her unable to push changes to the server, dikarenakan salah satu code member (frieda) tidak dapat mengupdate "script" via CVS dikarenakan "pass-phrase" yang dimiliki oleh ben (bstrobell) yang sedang sakit, sehingga untuk "membuat nyaman" maka ben tidak menggunakan "pass phrase" dan hanya menggunakan "key file" yang dalam artikel ini bisa di dapatkan di tempat yang sama. Dan sampai pada pernyataan yang di tulis juga di chapter tersebut;
"users and systems administrators alike bypassing best security practices in the name of functionality and ease of use" .
Gw jadi teringat dengan sebuah thread di milis newbie_hacker soal "protes yang dilayangkan seorang member atas "lapisan security" yang harus dilalui untuk menjadi member forum echo" dan sudah secara gamblang gw jelaskan di milis juga, alasan mengapa disebut tidak "nyaman".

Hayo temen admin berapa kali kasih password di box menggunakan "ASDFGH", atau "QWERTY" ? (hehehhe), atau teman-teman programmer yang menggunakan user "root" untuk user mysql? (without password ?), atau para developer web yang lupa menghancurkan "session"

Hayo sekarang jadi pertanyaan ini soal "aman" atau "nyaman"?, siapa yang akan menang antara bugs hunter v.s programmer, gw sih lebih milih berada disisi satunya (kiri) ...

No comments:

Post a Comment