Sabtu, 21 November 2009

PRINSIP SEORANG HACKER"
Kami adalah sekumpulan individu yang ingin bebas memacu kinerja otak dan adrenalin di tubuh kami; ingin bebas melakukan hal-hal menarik yang sulit terpecahkan bahkan mustahil sekalipun; ingin bebas meneliti untaian kode yang ada, mencari kelemahan bukan untuk melemahkan; ingin bebas menemukan keasyikan menelusuri elektron dan baud tanpa batasan waktu; ingin bebas bergerak dalam aliran pulsa yang terhantar bebas keseluruh titik di dunia; ingin bebas menentukan sendiri apa yang Kami butuhkan dan Kami percayai; ingin bebas berkomunikasi, menjelajah dan menikmati ini dengan bebas tanpa ada perbedaan, ingin bebas bertukar, belajar dan berbagi semua kemurnian ilmu pengetahuan, bukan oleh aturan-aturan yang telah ditentukan dan dikendalikan ketamakan, bukan demi setumpuk kekayaan, kejayaan ataupun keabadian, bukan pula untuk merusak, menakuti atau bahkan menghancurkan, tetapi hanya demi kenyataan bahwa Kami sama
Kenapa mesti Punk???

Banyak dari antara kita yang pernah mendengar "Punk not death" atau "Punk for life" atau 1 kata sederhana yaitu Punk… bahkan tidak sedikit dari kita yang mengadopsi punk attitude..!. Tapi diluar itu semua, kita tidak memahami arti punk itu sendiri. Bagaimana punk itu bisa terlahir ke muka bumi ini, apa itu pedoman dan filosofi punk... di rubrik kali ini sedikit ingin saya ulas tentang asal – usul, filosofi dan arti dari semua atribut kehidupan tentang punk yang kebetulan pernah dan sedang menjalaninya.
Punk terlahir di Inggris pada awal tahun 80an. Dari awal lahir hingga sekarang Inggris tetap menjadi bassis terbesar di Dunia bagi komunitas Punk. Gerakan anak muda yang diawali oleh anak-anak kelas pekerja ini dengan segera merambah Inggris yang mengalami masalah ekonomi dan keuangan yang dipicu oleh kemerosotan moral oleh para tokoh politik yang memicu tingkat pengangguran dan kriminalitas yang tinggi. Punk berusaha menyindir para penguasa dengan caranya sendiri, melalui lagu-lagu dengan musik dan lirik yang sederhana namun terkadang kasar, beat yang cepat dan menghentak. Banyak yang menyalahartikan punk sebagai glue sniffer dan perusuh karena di Inggris pernah terjadi wabah penggunaan lem berbau tajam untuk mengganti bir yang tak terbeli oleh mereka. Banyak pula yang merusak citra punk karena banyak dari mereka yang berkeliaran di jalanan dan melakukan berbagai tindak kriminal.
Asal usul kenapa banyak orang memanggil mereka dengan sebutan "punk" adalah karena dandanan serta atribut mereka yang cenderung urakan, mirip banci yang dalam artian bertindik, celana baggie ketat, spike, rantai, lipstick dan rambut yang berwarna warni. Penampilan yang diadopsi dari kumpulan para seniman yang anti terhadap kehidupan kemapanan dan glamour. Kumpulan avant garde!. Pakaian yang compang camping, robek di sana sini. Hingga dengan gaya Mohicans (rambut Mohawk) yang sering diperagakan diambil dengan alasan menyindir Inggris sebagai negara Adikuasa dimana mereka datang selalu untuk menguasai tanah – tanah leluhur para suku Indian. Mungkin sampai saat ini masih banyak orang yang mengingat bagaimana perjuangan dan pengorbanan suku indian (apache, sioux, dan lain lain) yang membela tanah kekuasaan mereka, saat itu terlihat jelas suku indian yang menentang total kedatangan bangsa inggris yang berusaha menerapkan sistem pemerintahan mereka. Sebuah sistem pemerintahan yang mengharuskan suku indian tunduk. di situlah letak kharisma tatanan rambut mohawk. Filosofi sepatu boot, sangat berkaitan erat dengat perkembangan jaman. Dikala itu bermunculan jenis – jenis atau aliran musik yang mewakili kehidupan para Punker, karena banyak para musisinya juga serong yang mengidolakan bahkan menjalani hidup sebagai Punk.
Tahun berganti tahun, banyak bermunculan warna musik dengan dasar punk, muncul punk rock, reggae punk, dan lain – lainnya. Bahkan gaya hidup pun makin lama seperti tertata oleh jaman, dengan mewabahnya sebuah gaya baru dalam punk. Punk Street. Istilah yang diambil karena gaya hidup ini membawa kita untuk sering hidup atau lebih tepatnya hidup dari sudut – sudut jalanan. Entah itu terminal, halte stasiun, bahkan perempatan. Kehidupan yang sebenarnya Bukan tanpa Visi, punk street berkeliling dari satu tempat ke tempat lain demi membawa pesan moral mupun visi mereka yang sebenarnya. Sejatinya punk street adalah seorang bagpacker yang selalu berkeliling untuk mendapatkan teman dan pengalaman baru tanpa merusak maupun mengganggu siapapun yang ditemuinya. Gaya street punk yang unik, aneh, asing namun ada daya tarik (entah daya tarik buruk maupun bagus) membuat banyak ditiru oleh orang – orang yang melihat dan mungkin berinteraksi dengan punk street. Dari anak – anak kelas tinggi hingga anak – anak jalanan, mereka meniru dan meniru tanpa mau mengerti dasar filosofi semua peran yang dijalankan Punkers. Disinilah muncul sebuah penyamarataan arti atau stigma negatif orang – orang terhadap punk, terutama banyaknya anak jalanan yang meniru dandanan serta gaya punk dengan harapan menutupi kecuekan mereka atas tuntutan ekonomi yang menghimpit.
Ada perbedaan mencolok yang sebenarnya bisa ditelaah, para punk street tidak akan bisa menjadi anak jalanan karena mereka punya visi misi untuk terus menjalankan hidupnya dengan semakin maju sedangkan anak jalanan tidak akan mungkin bisa seperti punk streer. Tetapi anjal bisa berpenampilan ala punk. Seorang punk street selalu berpindah-pindah hunian dan selalu merasakan tempat scan (tempat berkumpul nya anak-anak punk) baru.
Rendahnya penghargaan mayoritas orang Indonesia terhadap sebuah hasil seni dan juga pandangan atau gaya hidup orang lain, menuntun punk street Indonesia bertahan hidup dengan cara mengamen. Dan karena itulah hanya di Indonesia kegiatan mengamen dilakukan. Diluar Indonesia kehidupan punk street bisa tertanggulangi dengan pengadaan konser – konser, akrobatik atau pameran – pameran lukisan yang semuanya mengakomodir hasil keahlian anggota punk.
Karena punk street tinggal di jalanan, untuk itulah demi kenyamanan dan keamanan mereka mengenakan sepatu boot yang akhirnya mewabah di segala komunitas punk. Mungkin sampe saat ini banyak orang yang menilai anak punk adalah biang rusuh dan anarki. Tidak sepenuhnya setuju, meski mungkin pernah ada dimana, tapi visi misi yang penulis rangkum diatas bisa dijadikan referensi pemahaman seperti apa sebenarnya punk. Don’t jugde a book by its cover.

TEKNIK SQL

Mungkin di antara Anda sudah banyak yang mengenal teknik serangan terhadap aplikasi yang dinamakan "SQL Injection". SQL Injection atau dalam bahasa Indonesia, artinya: Suntikan SQL (Structure Query Language), telah banyak memakan korban. Karena dengan mengetahui teknik serangan ini, Anda sudah bisa mengelabui aplikasi database. Untuk itu, bagi Anda yang baru mengenal teknik serangan ini, ada baiknya untuk menyimak ulasan berikut.



Untuk mengetahui secara mudah tentang dampak dari serangan ini, kita mengambil contoh pada proses "LOGIN". Proses "LOGIN" adalah proses yang paling vital dalam setiap aplikasi yang ada. Karena dengan adanya proses ini, masing-masing user dapat ditentukan haknya dalam mengakses suatu aplikasi. Contohnya pada aplikasi-aplikasi perkantoran, proses "LOGIN" sangat berguna untuk menentukan jabatan dan pekerjaan apa yang harus dilakukan seorang karyawan dalam aplikasi yang dibuat.

Dari pada kita membayang-bayangkan, lebih baik kita praktek langsung agar lebih mudah dicerna. Di sini kita bersama-sama membuat contoh aplikasi Visual Basic dengan Database Access. Untuk itu buatlah desain form seperti yang tampak pada gambar dibawah ini.




Biarkan Property Name pada masing-masing control apa adanya. Selanjutnya kita desain sebuah database sederhana. Buatlah database Microsoft Access dengan nama tabel "login" yang berisi kolom (field) "user" dan "password", lalu namakan databasenya "pegawai.mdb". Isikan dengan beberapa record.

Setelah semuanya selesai, pindah ke apliasi Visual Basic 6, tulislah code berikut pada Form1.
Kode::
Private Sub Command1_Click()
Data1.RecordSource = "SELECT * FROM LOGIN WHERE USER='" & Text1.Text & _
"' AND PASSWORD='" & Text2.Text & "'"
Data1.Refresh

If Data1.Recordset.RecordCount > 0 Then
MsgBox "Login Berhasil!"
Else
MsgBox "Login Salah!"
End If
End Sub

Private Sub Form_Load()
Data1.RecordSource = "SELECT * FROM LOGIN"
Data1.Refresh
End Sub


Sekarang, cobalah program tersebut. Lakukan pengujian dengan memasukkan user dan password yang salah. Jika Anda menemukan pesan "Login Salah!" maka proses berjalan dengan normal. Namun biar lebih memastikan bahwa program berjalan baik, coba juga dengan memasukkan user dan password yang benar. Jika Anda tidak salah memasukkan user dan password, maka pesan yang keluar adalah "Login Berhasil!". Artinya sampai saat ini pengujian program berjalan dengan baik. Terus apa lagi yang dipikirkan? Inilah suatu kecerobohan yang terkadang sering muncul dalam aplikasi yang dibuat para programmer. Para programmer sering lupa akan sisi keamanan aplikasi yang dibuat.

Untuk melihat dampak dari serangan ini. Jalankan kembali aplikasi yang kita buat, dan anggaplah Anda sebagai orang lain yang tidak mengetahui password untuk mengakses aplikasi tersebut. Namun dengan sedikit SQL Injection anda dapat memasuki ruang login hanya dengan memasukkan teks berikut "hack' or '1'='1" (tanpa tanda kutip) pada textbox input user dan/atau password. Maka Anda tidak akan melihat pesan "Login Salah!" melainkan "Login Berhasil!".

Terus, bagaimana ini bisa terjadi? padahal kita tidak memasukkan password sesungguhnya?

Ketika kita memasukkan user "meyer" dan password "tomero", maka query sql pada code diatas akan menjadi :
Kutipan::

SELECT * FROM LOGIN WHERE USER='meyer' AND PASSWORD='tomero'"


Karena SQL menggunakan kriteria berdasarkan user dan password tersebut, maka jika user dan password tidak cocok dengan yang ada dalam tabel secara otomatis aplikasi memunculkan pesan "Login Salah!". Tapi, jika kita memasukkan teknik SQL Injection pada query melalui input pada aplikasi misalkan user dan password "hack' or '1'='1", apa yang terjadi pada query sebenarnya?
Kutipan::

"SELECT * FROM LOGIN WHERE USER='hack' or '1'='1' " & _
AND PASSWORD='hack' or '1'='1'"


Kita dapat melihat, bahwa query SQL sudah berubah menjadi query yang tidak menampilkan filter terhadap user dan password. Itu dikarenakan pernyataan "OR 1=1" menyebabkan hasil execute query yang menghasilkan nilai True. Mengapa True? Dalam logika matematika, False Or True atau True Or True menghasilkan nilai True. Untuk hal ini saya tidak akan membicarakan panjang lebar. Anda bisa membacanya dalam pelajaran logika Matematika atau Pemrograman. Hasil pengembalian nilai True ini pada query tadi mengakibatkan seluruh record akan ditampilkan, karena semua kriteria berlaku pada semua record. Trik yang menyenangkan, bukan?

Dari percobaan yang sudah kita buat, kita dapat menggambarkan bagaimana cara untuk menghindari serangan ini. Selanjutnya kita akan membuat contoh sederhana prosedur untuk memfilter input yang dimasukkan oleh orang agar tidak bisa dicurangi dengan SQL Injection.
Kode::
Private Function FilterSQL(strInput As String) As String
strInput = Replace(strInput, "'", "''", 1, -1, 1)
strInput = Replace(strInput, "_xp", "", 1, -1, 1)
strInput = Replace(strInput, "--", "", 1, -1, 1)
strInput = Replace(strInput, ";", "", 1, -1, 1)

FilterSQL = strInput
End Function


Prosedur diatas akan mengubah semua karakter-karakter yang berdampak pada teknik SQL Injection ini. Untuk itu tambahkan prosedur tersebut dalam code sebelumnya dan gantilah query SQL untuk proses filter user dan password seperti code berikut.
Kode::
Data1.RecordSource = "SELECT * FROM SISWA WHERE NAMA='" & FilterSQL(Text1.Text) & _
"' AND ASAL='" & FilterSQL(Text2.Text) & "'"
Data1.Refresh

Akhir kata, sekian dulu tutorialnya untuk saat ini. Namun seperti biasa, sebelum saya menutup pelajaran hari ini, saya mau memberikan PR agar Anda dapat lebih memahami tutorial ini dengan baik dan lebih berhati-hati lagi saat membuat modul Login di aplikasi Anda. Untuk itu, silahkan Anda coba lakukan percobaan SQL Injection pada code yang belum di proteksi, agar dapat melakukan manipulasi record seperti "UPDATE" atau "DELETE".