Teknik-teknik
Hacking pada Web aplikasi
Ada beberapa teknik hacking pada web aplikasi
diantaranya adalah sebagai berikut:
1.
Hidden Manipulation
Field-field tersembunyi sering digunakan untuk
menyimpan informasi tentang sesi klien, untuk menjaga kompleksitas database
pada server side. Seorang klien biasanya tidak melihat field tersembunyi dan
juga tidak berusaha untuk mengubahnya. Bagaimanapun juga memodifikasi form
field sangatlah sederhana. Sebagai contoh , marilah kita anggap bahwa harga
sebuah produk disimpan dalam field tersembunyi. Seorang hacker dapat mengubah
harganya, seperti berikut ini :
* Membuka sebuah halaman html dengan HTML
editor.
* Menempatkan sebuah field tersembunyi (contoh., “”)
* Menempatkan sebuah field tersembunyi (contoh., “”)
* Memodifikasi nilainya dengan nilai yang
berbeda (contoh. “”)
* Menyimpan file html ditempat itu dan
mem-browse-nya.
* Mengklik tombol “buy” untuk menampilkan e-shoplifting melalui hidden manipulation.
* Mengklik tombol “buy” untuk menampilkan e-shoplifting melalui hidden manipulation.
2.
Parameter Tampering (Perusakan Parameter)
Kegagalan untuk mengkonfirmasi kebenaran dari
parameter-parameter Common Gateway Interface (CGI) yang tersimpan dalam
hyperlink., dapat dengan mudah digunakan untuk mematahkan keamanan situs.
Seperti di bawah ini :
Search.exe?template=result.html&q=security
Dengan mengganti parameter template, seorang
hacker dapat memperoleh akses menuju file yang diinginkannya,
seperti /etc/passwd atau private key situs
contoh : Search.exe?template=/etc/passwd&q=security
3.
Cookie Poisoning
Umumnya Web aplikasi menggunakan cookie dengan
tujuan untuk menyimpan informasi (user id, time stamp, dan lain-lain.) pada
sisi klien. Sebagai contoh, ketika seorang user log ke beberapa situs, sebuah login
CGI memvalidasi user name-nya dan password-nya dan mengeset sebuah cookie
dengan identifier numerik-nya. Ketika user mengecek preference-nya kemudian,
CGI yang lain (sebut saja, preferences.asp) me-retrive cookie dan menampilkan
catatan-catatan user information sesuai dengan user-nya. Data-data yang
tersimpan dalam cookie tidaklah aman, seorang hacker dapat memodifikasi-nya,
jadi informasi yang terdapat pada cookie tersebut dapat dicuri dan dimanfaatkan
oleh hacker.
III.
Perampokan Acme Fashion, Inc.
Pada pertengahan th 1990an, ketika popularitas
Web sedang menanjak, wakil manajer pemasarannya memutuskan untuk membuat situs
www.acme-fashions.com bagi perusahaannya dan meletakkan dan meletakkan semua
katalog di sana. Tim marketing kemudian sibuk membuat halaman HTML dan
mengkonversi katalog-katalognya dalam bentuk elektronis.
Tetapi, begitu ada penjualan melalui situs Web
tersebut, muncul juga keluhan-keluhan pelanggan. Kebanyakan keluhan ditujukan
kepada departemen keuangan dan gudang. Departemen keuangan sering menerima
keluhan mengenai produk yang dijual berharga lebih rendah daripada harga yang
ditetapkan, padahal tidak ada diskon atau promosi yang ditawarkan. Karyawan di
bagian pengiriman sering bingung sewaktu mereka mendapat order pengiriman dengan
jumlah barang tertulis dalam angka negatif. Ketika kerugian hampir mencapai
100.000 dolar, akhirnya pihak direksi memanggil tim ahli sekuriti.
3.1.
Melacak Masalah
Toko Web Acme – www.acme-fashions.com – telah
menerapkan beberapa teknologi berikut ini:
Sistem Operasi Microsoft Windows NT 4.0
Web Server Microsoft Internet Information
Server (IIS) 4.0
Katalog Online Template dan Active Server Page
(ASP)
Database back-end Microsoft Access 2.0
Shopping Troli Shopcart.exe
Katalog HTML dibuat dengan menggunakan template
dan Active Server Pages. Tim pemasaran pernah menggunakan FoxPro untuk
database-nya dan menghasilkan halaman katalog HTML secara otomatis. Kemudian
database Fox-Pro itu dikonversi ke dalam database Microsoft Access dan
antarmukanya memakai ASP. Aplikasi trolli belanjanya, Shocart.exe, di setup
pada server, serta template ASP didesain untuk menghasilkan HTML yang terhubung
dengan aplikasi troli belanja. Troli belanja mengambil informasi produk dari
HTML tersebut. Saat itu, kelihatannya semua cara itu sangat mempermudah dan
mempercepat kesiapan toko elektronis dan bisa online sebelum deadline.
Shopcart.exe mempunyai sistem session
management-nya sendiri, untuk menjalankan sesi troli belanja, yang bergantung
pada cookie dan server-side session identifier. Karena tidak dimungkinkan untuk
memodifikasi Shopcart.exe, tugas-tugas untuk memvalidasi input diserahkan ke
JavaScript yang bekerja pada browser pelanggan.
3.2.
Bahaya Tersembunyi pada Field-Field Tersembunyi
Setelah dipelajari ternyata ditemukan sebuah
lubang pada cara penerapan sistem troli belanja. Dimana satu-satunya cara untuk
menghubungkan harga dengan produknya melalui tag-tag tersembunyi pada halaman
HTML. Gambar 3.1. menunjukkan halaman yang menampilkan baju-baju dan katalog di
http://www.sceme-fashions.com.
Setiap baju memiliki hubungan dengan form
penerimaan kuantitas baju yang dibeli dan terhubung juga dengan troli belanja.
Pada kode HTML seperti yang diperlihatkan pada gambar 3.2. juga dapat ditemukan
kelemahannya, yakni pada beberapa baris terakhir.
Source code berikut ini digunakan untuk
memanggil Shopchart.Exe:
Quantity:
Sewaktu user mengklik tombol Buy, browser
men-submit semua field input ke server, menggunakan request POST. Ada tiga
field tersembunyi pada baris 2, 3, dan 4 dari kode tersebut. Nilai-nilainya
juga terkirim bersama dengan request POST. Dengan demikian, sistem membuka
suatu kelemahan pada tingkat aplikasi, karena user bisa saja memanipulir nilai
dari field tersembunyi sebelum men-submit-nya ke form.
Untuk memahami situasi ini secara lebih baik,
maka dapat kita perhatikan secara seksama request HTTP yang berasal dari
browser ke server:
POST /cgi-bin/shopcart.exe/MYSTORE-AddItem
HTTP/1.0
Referer:
http://www.acme-fashions.com/shirtcatalog/shirts2.asp
Connection: Keep-Alive
User-Agent: Mozilla/4.76 [en] (Windows NT 5.0;
U)
Host: www.acme-fashions.com
Accept: image /gif, image/x-xbitmap,
image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding:gzip Accept-Language: en
Accept-Charset : iso-8859-1,*,utf-8
Cookie:
ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; shopcartstore=3009912
Content-type: application/x-www-form-urlencoded
Content-lengt: 65
PartNo=OS0015&Item=Acme+Shirts&Price=89.99&qty=1&buy.x=16&buy.y=5
Nilai dari field tersembunyi PartNo, Item dan
Price di-submit dalam request POST ke /cgi-bin/shopcart.exe. Itulah cara
satu-satunya Shopcart.exe mengambil harga, misalnya baju nomor OS0015. Browser
menampilkan respon yang ditunjukkan pada Gambar 3.3.
Oleh karena request POST dikirim bersama dengan
nilai yang bisa dimodifikasi pada field price, user pun bisa mengontrol harga
baju tersebut. Request Post berikut ini menunjukkan bahwa harga baju yang
semula 89.99 dolar diubah menjadi 0,99 dolar.
POST /cgi-bin/shopcart.exe/MYSTORE-AddItem
HTTP/1.0
Referer: http://www.acme-fashions.com
/shirtcatalog/shirts2.asp
Connection: Keep-Alive
User-Agent: Mozilla/4.76 [en] (Windows NT 5.0;
U)
Host: www.acme-fashions.com
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, image/png, */*
Accept-Encoding:gzip Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie:
ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; shopcartstore=3009912
Content-type: application/x-www-form-urlencoded
Content-length: 64
PartNO=OS0015&Item=Acme+Shirts&Price=0.99&qty=1&buy.x=16&buy.y=5
Cara mudah untuk mengubah-ubah harga adalah
dengan menyimpan halaman katalog, shirts2.asp, menampilkannya pada browser
sebagai salinan lokal, shirts2.html, di hard disk user, mengedit file tersebut,
dan mengubah – ubah kode HTMLnya. Gambar 3.4. menunjukkan bagaimana user
menyimpan halaman tersebut.
User pertama-tama mengubah nilai pada field
price pada baris . Perubahan berikutnya adalah pada link ACTION=dalm tag
. Link yang dituju
adalah http://www.acme-fashions.com/cgi-bin/shopcart.exe. Gambar 3.5.
menunjukkan file shirts2.html setelah memodifikasi harga menjadi 0,99 dolar.
Sekarang, jika user membuka file yang sudah
dimodifikasi ini, shirts2.html, pada browser dan men-submit request untuk
membeli pakaian, dan melihat window seperti ditunjukkan pada gambar 3.6.
Seperti yang dapat kita lihat, hal inilah yang
membuat Acme-Fashions menderita kerugian. Setelah melakukan penelitian
menyeluruh pada semua order dan transaksi, tim pemeriksa keamanan menemukan
juga bahwa sejumlah besar ”pelanggan” bisa membeli barang dalam harga yang
sangat rendah. Kata ”pelanggan” dalam konteks ini mengandung arti para hacker.
3.3.
Mem-Bypass Validasi Client Side
Kesalahan lain yang ditemukan oleh tim peneliti
keamanan adalah cara input divalidasi sebelum dilewatkan ke Shopcart.exe.
Aplikasi Web terdiri dari banyak script dan komponen interaktif. Semua itu
terutama untuk berinteraksi dengan user melalui form HTML pada browser. Bagian
interaktif dari tiap komponen mengambil input dari form HTML dan memprosesnya pada
server. Form HTML berciri generik bila berfungsi sebagai pengambil data, dan
tak ada cara lain untuk menjamin validasi data di dalam form seperti itu.
Misalnya, bila sebuah form HTML didesain untuk menerima tanggal, user bisa saja
memasukkan tanggal seperti ini: 99/88/77 dan browser tidak mempedulikannya.
Aplikasi harus memiliki mekanisme validasi inputnya sendiri untuk mem-filter
input-input yang salah bentuk atau tidak sesuai dengan kriteria yang sudah
ditentukan pada aplikasi. Validasi input untuk form HTML bisa dilakukan baik
pada server-side dengan Perl, PHP, atau ASP, dll. Juga dapat dilakukan pada
client-side dengan menggunakan bahasa script seperti JavaScript atau Vbscript.
Tim pengembangan Acme menyadari kebutuhan
validasi input seperti itu. Tetapi, karena Shopcart.exe merupakan aplikasi yang
berciri Prepackaged (tidak bisa dimodifikasi lebih lanjut), maka ia tidak bisa
dimodifikasi untuk bisa menggabungkan validasi input dengan script client-side
pada browser-nya sendiri, mungkin dengan tujuan untuk menghemat penggunaan CPU
server, sehingga pekerjaan itu dijalankan oleh browser klien.
Namun, kenyataannya mekanisme client-side
manapun bisa diubah-ubah dengan cara mengedit atau mengganti-ganti source code
HTML yang diterima oleh browser. Tim penguji keamanan menemukan beberapa contoh
validasi client-side yang digunakan pada www.acme-fashion.com. Gambar 3.7.
menunjukkan validasi input sedang dijalankan pada sistem Acme. Seorang user
berusaha membeli sejumlah ”-5” pakaian dan sebuah peringatan muncul bahwa user
memasukkan nilai yang salah.
Berikut ini adalah kode JavaScript untuk
memvalidasi input yang dipisahkan dari elemen-elemen HTML-nya.
function validate(e) {
if(isNaN(e.value) || e.value <= 0) {
alert (“Please enter a valid number”) ;
e.value = 1;
e.focus();
return false;
}
else {
return true;
}
}
:
:
Kode ini memastikan bahwa hanya angka positif
saja yang diperbolehkan pada field qty. Tetapi, karena validasi ini dilakukan
oleh script client-side, maka bisa dengan mudah di-bypass. Menonaktifkan eksekusi
JavaScript dengan cara men-setting preferensi browser bisa membuat hacker
mem-bypass validasi pada client-side. Jika kita memasukkan nilai apa saja yang
diinginkan pada field-field input.
Gambar 3.8. menunjukkan bagaimana menonaktifkan
JavaScript pada Netscape. Sekarang jika user memasukkan nilai ”-3”, browser
akan mengeluarkan request POST berikut ini pada server.
POST /cgi-bin/shopcart.exe/MYSTORE-AddItem
HTTP/1.0
Referer: http://www.acme-fashions.com
/shirtcatalog/shirts2.asp
Connection: Keep-Alive
User-Agent: Mozilla/4.76 [en] (Windows NT 5.0;
U)
Host: www.acme-fashions.com
Accept: image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, image/png, */*
Accept-Encoding:gzip Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH;
shopcartstore=3009912
Content-type: application/x-www-form-urlencoded
Content-length: 63
PartNo=OS0015&Item=Acme+Shirts&Price=-3&qty=1&buy.x=16&buy.y=5
Selanjutnya dapat kita lihat bagaimana request
HTTP ini bisa mem-bypass seluruhnya validasi input pada client-side. Gambar
3.9. menunjukkan respon pada server.
Pada layar tampak bahwa user telah membuat
pesanan untuk 5 baju masing-masing seharga 55,99 dolar, dan hari berikutnya
membeli -3(minus 3) baju masing-masing seharga 89,99 dolar. Total biaya adalah
4,98 dolar. Kemampuan untuk meletakkan angka negatif pada jumlah pembelian bisa
membuat si pembeli kegirangan. Kecacatan inilah yang menyebabkan karyawan
pengiriman Acme menerima order jumlah item dengan angka negatif.
3.4.
Menghadapi Masalah Baru pada Sistem yang Telah Diteliti
Sebelumnya, pihak direksi Acme sudah berhadapan
dengan dan mengatasi masalah-masalah menyangkut pengubahan nilai harga barang
selama belanja musim liburan yang baru lalu. Sepertinya hal itu belum cukup,
sekarang Acme menghadapi masalah lagi. Kali ini berhubungan dengan pencurian
kartu kredit. Pihak direksi memanggil lagi tim ahli keamanan komputer untuk
menganalisis masalah tersebut.
Tim itu menemukan bahwa pada semua log di Web
server selama bulan Agustus, tidak ada entri satu pun untuk tanggal 29 Agustus.
Tim yakin bahwa hal itu disebabkan oleh hacker yang menghilangkan file
C:\WINNT\ System32\ LogFiles\ W3SVC1\ ex20010829. log yang berisi data log
untuk tanggal itu. Ukuran file-nya pun direduksi menjadi 0 byte. Ini
menunjukkan bahwa hacker pasti sudah memasuki kontrol administratif pada server
agar bisa menghapus log-log pada Web server IIS.
Karena tidak ada catatan yang bisa diteliti
lebih lanjut, akhirnya tim tersebut hanya bisa berspekulasi mengenai penyebab
serangan. Penyelidikan yang menyeluruh pada sistem hard disk menghasilkan bahwa
file ”purchases.mdb” ada pada dua direktori.
C: \>dir purchases.mdb / s
Volume in drive C is ACMEFASHION
Volume Serial Number is 48CD-A4A0
Directory of C:\ACMEDATA
08/29/2001 08:13p 2,624,136 purchases.mdb
1 files(s) 2,624.136 bytes
Directory of C:\Inetpub\wwwroot
08/29/2001 08:33p 2,624,136 purchases.mdb
1 files(s) 2,624,136 bytes
Total Files Listed:
2 File(s) 5,248,272 bytes
0 Dir(s) 111,312,896 bytes free
Bagaimana file purchases.mdb bisa dikopi dari
direktori C:\ACMEDATA ke C:\Inetpub\wwwroot? Administrator sistem di Acme
Fashion menyatakan bahwa purchases.mdb dipakai untuk menampung informasi order
pelanggan, termasuk nama, alamat pengiriman, alamat tagihan, iem yang dibeli
dan kartu kredit yang digunakan untuk untuk membayar item-item tersebut. Pihak
yang mendesain aplikasi meyakinkan direksi bahwa file database berada di luar
root dokumen server (c:\inetpub\wwwroot0. Tim ahli keamanan menyimpulkan bahwa,
karena salinan dari file purchase.mdb dibuat pada jam 11:33 p.m tanggal 29
Agustus 2001, telah terjadi penyalahgunaan kartu kredit oleh hacker. Hacker
pasti telah menyalin file dari C:\ACMEDATA ke C:Inetpub\wwwroot dan
men-download-nya pada browser menggunakan request http://www.acme-fashions.com/purchase.-mdb.
Tetapi, ia rupanya lupa menghapus salinan file pada direrktori
C:\Inetpub\wwwroot setelah men-download-nya.
3.5.
Eksekusi Perintah Jarak Jauh
Kenyataan bahwa satu file bisa dikopi dari satu
lokasi ke lokasi dan bahwa log-log Web server dihapus mengisyaratkan bahwa
hacker berhasil menjalankan perintah-perintah eksekusi pada
www.acme-fashions.com dan memiliki akses ke sana setingkat ”super-user” atau
”administrator”. Setelah mengevaluasi secara menyeluruh keamanan sistem operasi
dan mengunci semua prosedur, tim menyimpulkan bahwa kelemahannya hampir pasti
terletak pada error di kode program aplikasi. Masalah tersebut kemudian
bermuara pada cacatnya validasi input pada kode program troli belanjanya
sendiri. Gambar 3.10. menunjukkan bagaimana troli belanja berinteraksi dengan
beragam elemen dari aplikasi Web.
Troli belanja dikendalikan oleh script Perl
pusat, yaitu mywebcart.cgi. Semua sesi client-side dilacak dan diatur oleh
mywebcart.cgi. Troli belanja mengambil informasi produk dari database
products.mdb dan membawanya ke modul terminal checkout yang menangani
pembayaran pelanggan yang kemudian disimpan pada purchase.mdb.
Gambar 3.11. menunjukkan halaman yang
dihasilkan oleh mywebcart.cgi. Pada gambar dapat kita lihat bagaimana URL
dikomposisi.
URL tersebut adalah:
http://www.acme-fashions.com/cgi -
bin/
mywebcart.cgi?Cust=0873&nextpage=shirts3.html&cid=03417
Elemen yang paling menarik pada URL ini adalah
parameter-parameter yang dilewatkan berikut nilai-nilainya. Pada parameter
nextpage melewatkan nilai ”shirts3.html”. Pada kode program Perl mywebcart.cgi,
baris berikut ini mempunyai kelemahan:
$file = ”c:
\inetpub\wwwroot\catalog_templates\” . $input { ‘nextpage’};
open (FILE, $file) || die “Cannot open
$file\n”;
File mywebchart.cgi terkunci. Parameter
nextpage dilewatkan ke fungsi Perl open() tanpa ada satupun validasi input.
Seorang penyerang bisa menyisipkan simbol pipa “|” di belakang nilai yang
ditentukan pada nextpage dan menyebabkan fungi open() bisa mengeksekusi
perintah-perintah yang merugikan.
Request berikut ini menyebabkan mywebcart.cgi
mengeksekusi perintah “dir c:\” pada www.acme-fashions.com:
http://www.acme-fashions.com/cgi -
bin/mywebcart.cgi?cust=0873&nextpage=;dir+c:\|&cid=03417
Pada titik ini kita bisa beranggapan bahwa
hacker harus telah menjalankan tampilan daftar direktori penuh dengan perintah
”dir c;\|s”. Dari hasil yang tampak, si hacker mengetahui bahwa ada file
purchase.mdb pada direktori C:\ACMEDATA. Selanjutnya ia menyalin file tersebut
ke c:\inetpub\wwwroot kemudian men-download-nya menggunakan alamat
http://www.acme-fashions.com/purchase.mdb. Gambar 3.13. dan 3.14. menunjukkan
bagaimana file itu disalin dan akhirnya di-download.
Demonstrasi oleh para ahli keamanan ini
menunjukkan adanya pelanggaran keamanan yang serius pada mywebcart.cgi. Bahkan
saat ini, banyak model troli belanja yang terkenal dan dipakai orang memiliki
kelemahan-kelemahan seperti itu.
3.6.
Posmortem dan Pencegahan Lebih Lanjut
Acme Fashions, Inc., menderita banyak kerugian
uang dan waktu oleh karena tiga kesalahan selama satu rentang waktu. Semua
kesalahan itu muncul karena cacatnya bentuk validasi input dan karena kurang
terintegrasinya data yang diterima dari Web browser.
Pertama, kecacatan itu disebabkan oleh
penggunaan field-field tersembunyi secara tidak benar. Informasi penting
seperti ID produk dan harga dilewatkan melalui field tersembunyi dalam form
HTML. Kita tahu bahwa sewaktu respon HTML dikirim melalui browser web, server
itu kehilangan kendali atas data yang dikirim. HTTP bersifat statis, dan server
tidak bisa menentukan apakah data yang dikembalikan masih utuh atau sudah
rusak. Field tersembunyi bisa dimanipulir pada client side dan dikirimkan
kembali ke Web server. Jika server tidak mempunyai cara validasi input yang
ketat atas informasi dari field tersembunyi, klien bisa merusak data dan tidak
terkendali lagi oleh sistem. Untuk memproteksi sistem dari serangan integritas
data seperti ini, developer situs Web harus mencegah pelewatan informasi
melalui field tersembunyi. Sebaliknya, informasi seperti ini seharusnya
diletakkan pada database di server, dan informasi itu dapat diambil dari
database jika diperlukan.
Kesalahan kedua adalah menggunakan script
client-side untuk menjalankan validasi input. Para developer sering tergoda
untuk menggunakan JavaScript atau VBScript dalam menulis program pengeksekusian
pada client-side dan membuang batasan-batasan yang ada pada server. Tetapi,
script client-side sama rentannya dengan field tersembunyi dalam hal daya tahan
dari perusakan data. Script client-side seharusnya hanya digunakan untuk
melancarkan navigasi atau menambahkan interaktifitas dan daya tarik halaman
Web. Seorang penyerang bisa dengan mudah melewatkan atau memodifikasi script
client-side dan menghindari setiap bentuk pemeriksaan yang dilakukan oleh
script tersebut. Dalam kasus Acme, penyerang bisa menyisipkan nilai kuantitas
negatif dengan mudahnya dan melewati setiap bentuk batasan yang dijalankan oleh
oleh JavaScript. Sama dengan hal itu, beberapa toko berbasis Web menjalankan
operasi aritmatik pada client-side, misalnya menghitung total kuantitas dan
harga dari sebuah order dari dalam form isian itu sendiri. Bagi pelanggan
sendiri akan menjadi fitur yang menarik bila mereka bisa mengetahui harga yang
sudah di-update pada browser tanpa perlu men-submit nilai ke server dan
menunggu respon darinya. Tetapi, teknik ini harus dihindari dan aplikasi harus
didesain untuk mengeksekusi validasi dan perhitungan pada server side sehingga
penyerang tidak bisa memanipulir data.
Kelemahan yang terakhir disebabkan oleh
sanitasi input yang lemah pada mywebcart.cgi. Sewaktu data dilewatkan oleh
field dalam bentuk HTML ke fungi-fungsi yang rentan seperti open(), buanglah
setiap kombinasi atau meta-karakter. Dua bentuk validasi input yang harus
dilaksanakan ditujukan kepada: pertama, panjang data yang diterima (untuk
mencegah serangan buffer overflow) dan kedua, meta-karakter. Dalam hal ini,
Acme harus menyisipkan sanitasi input untuk menapis meta-karakter seperti
”&”, ”%”, ”$”, ”|”, dan ”<”.
Masalah keamanan lainnya yang terkait dengan
sistem belanja e-commerce, secara umum meliputi informasi yang dipanggil dari
file temporer pada server, mekanisme enkripsi yang buruk, eksposur file system
directory, eskalasi privilege, disklosur informasi pelanggan, perubahan produk,
perubahan order, dan penolakan terhadap layanan. Semua hal tersebut memberikan
celah bagi terjadinya serangan. Masalah ini ditemukan pada beberapa aplikasi
e-commerce.
IV.
Menangkis Serangan pada Web Application
Para hacker biasanya mencari sebuah target yang
mudah untuk di-hack dalam waktu yang singkat. Berikut ini adalah beberapa
teknik yang dapat digunakan untuk menangkis serangan pada Web application.
* Akses ke situs dengan memanfaatkan SSL.
Hanya dengan menggunakan secure socket layer
(SSL), situs akan memblok simple CGI scanners, tool-tool raw-interface mode dan
worm-worm internet. Memanfaatkan SSL dapat dengan mudah dilakukan dengan cara
membuat suatu konfigurasi server yang hanya bekerja pada SSL (biasanya pada port
443) dan memblok trafik menuju por 80. Jika dibutuhkan sebuah entry page dalam
HTTP, maka ini mungkin dapat menggunakan sebuah server kecil yang akan
mengalihkan ke alamat HTTPS.
* Menggunakan metoda ”HTTP post” seluas
mungkin.
Menggunakan ”HTTP post” request mengurangi
kemudahan dari penggunaan tool-tool raw-mode interface dan browser-browser
untuk menyerang sebuah situs. Penyerang menggunakan tool-tool raw-mode
interface untuk digunakan secara manual meng-craft sebuah POST request, yang
sedikit lebih susah daripada sebuah GET request sederhana, karena mereka harus
menghitung exact body lenght untuk header dari mandatory content-length. Untuk
memanipulasi beberapa parameter values dengan menggunakan browser, penyerang
harus menyimpan HTML source ke disk, lalu memodifikasinya, dan kemudian
me-reload-nya kembali ke browser.
* Memanfaatkan HTTP Authorization pada semua
content dari situs.
Ini merupakan metoda sederhana yang akan
bekerja dengan baik melawan worm-worm internet, simple CGI scanner, dan akan berdampak
pada tool-tool raw-mode interface. Server benar-benar akan menolak beberapa
request yang tidak otentik. Untuk mengizinkan user anonim untuk bekerja pada
situs, mungkin dapat dilakukan dengan cara mengeluarkan halaman entry point
dari skema ini dan menulis user name dan password pada situs yang lainnya.
Dengan kata lain ini mempunyai efek pada tool-tool sederhana. Semua tool yang
tidak didukung otentikasi tidak akan bekerja pada situs ini. Termasuk worm-worm
internet dan simple CGI scanner. Penyerang akan membutuhkan suatu data
otentikasi HTTP pada setiap usaha penyerangannya. Ketika menggunakan tool-tool
URL interface-mode, penyerang harus men-set parameter-parameter otentikasi HTTP
ke nilai yang harus digunakan pada situs.
* “Menendang” para klien keluar dari aplikasi
ketika terjadi error.
User-user reguler biasanya tidak membuat banyak
kesalahan, setidak-tidaknya pada sesi yang sama. Jika sebuah situs mempunyai
sebuah konsep aplikasi, dan jika klien dibutuhkan untuk melewati beberapa step
untuk memperoleh sebuah sesi, maka mungkin saja terjadi upaya untuk memperoleh
sesi yang invalid atau tidak syah dan ini bisa dideteksi sebagai sebuah
serangan. Penyerang akan melakukan beberapa percobaan untuk memperoleh sebuah
sesi selama beberapa kali, ketika ini terjadi maka sistem akan bekerja dan akan
secara otomatis menolaknya untuk memasuki sebuah aplikasi.
1 komentar:
gak ngerti achhh.... ruwettt...
Posting Komentar