RSS

SECURITY : Kerawanan pada Port 80

World Wide Web ( www ) merupakan bagian dari Internet yang paling populer, sehingga serangan paling banyak terjadi lewat port 80 atau yang dikenal sebagai web hacking, berupa deface situs, SQL injection, serta memanfaatkan kelemahan scripting maupun HTML form.
ARTIKEL INI DIANGKAT DARI BAHAN SEMINAR SECURITY dari crew Jasakom. Bicara mengenai web hacking, artikel ini membahasnya dengan pendekatan 5W+1H ( What,Who,Why,When, and Where + How ).
WHAT: Apa itu Web Hacking?
Web hacking…, bukan hal baru lagi bagi jawara internet ( hacker ) baik aliran putih maupun aliran hitam ( cracker ). Apakah yang dimaksud dengan web hacking? Untuk mendapatkan definisi kedua kata tersebut ( web dan hacking ) juga sebenarnya lumayan pusing. Secara semantik, web didefinisikan menjadi Data yang direpresentasikan di world wide web ( Tim Berners-Lee, James Hendler, Ora Lassila. Scientific American,May 2001). Adapun hacking didefinisikan menjadi Tindakan di luar otoritas atau tindakan mematahkan/membobol mekanisme keamanan sebuah sistem informasi atau sistem jaringan ( http://www.tsl.state.tx.us/ld/pubs/compsecurity/glossary.html ). Jadi, singkatnya web hacking dapat diartikan Tindakan menerobos mekanisme keamanan dari suatu sistem yang direpresentasikan dalam world wide web.
WHO: Siapa yang Melakukan Web Hacking?
Menerobos mekanisme keamanan suatu jaringan, bukanlah tindakan yang gampang untuk dilakukan. Jadi, siapakah pelaku web hacking tersebut? Seiring perkembangan internet yang benar-benar pesat dan diiringi perkembangan security dan underground, membuat siapa saja dapat menjadi pelaku. Tidak ada keharusan bahwa pelaku web hacking adalah orang yang pintar komputer dan internet, atau lain sebagainya.
WHY: Mengapa Melakukan Web Hacking?
Jika semua bisa menjadi pelaku web hacking, tentu Ada alasan jika sampai melakukannya dan pertanyaan adalah Mengapa? Jika pertanyaannya adalah Mengapa, biasanya jawabannya adalah Karena. Ada banyak alasan orang melakukan web hacking, diantaranya adalah:
1. Wanna Be A Hacker ( ingin menjadi seorang hacker ).
2. Mendapatkan popularitas.
3. Ingin mendapat pujian.
Alasan-alasan tersebut di atas cukup bisa dicerna logika.
WHEN and WHERE: Kapan dan Dimana?
Internet merebak harum di Indonesia, bisa dikatakan mulai pada hitungan tahun 90-an. Internet yang sebelumnya merupakan sebagai hal yang mustahil untuk dirasakan oleh rakyat kelas bawah, semakin terjangkau dengan larismanisnya bermunculan warnet (warung internet). Ada ujaran yang mengatakan Kejahatan ada karena ada kesempatan. Ujaran tersebut mungkin belum dapat ditujukan kepada pelaku web hacking. Dengan banyaknya kehadiran warnet bahkan ada yang buka 24 jam, membuat web hacking dapat dilakukan kapan saja dan dimana saja, tanpa harus menunggu waktu.
HOW: Bagaimana Web Hacking Dilakukan?
Bagaimana seseorang melakukan web hacking? Internet sudah hampir menjangkau segala sisi kehidupan yang ada di dunia ini. Informasi mengenai web hacking dapat anda temukan dengan berselancar ke Google. Google, search engine yang terkenal menjawab pertanyaan Bagaimana. Dengan memasukkan kata (keyword) pada baris isian pencarian maka anda akan dibawa ke tempat-tempat yang berhubungan dengan web hacking. Anda tinggal memilih dan menyaringnya.
Seperti yang telah disinggung di atas, pelaku web hacking dapat siapa saja dan tanpa ada syarat-syarat tertentu. Hal ini disebabkan karena di internet terdapat banyak informasi yang dapat diperoleh termasuk mengenai soal web hacking. Informasi dapat berupa tutorial, tools, dan lain sebagainya hingga akan membuat web hacking benar-benar mudah untuk dilakukan.
Unicode Bug pada Microsoft IIS
Untuk lebih menjelaskannya, mari kita tinjau masalah HOW dari web hacking dengan bentuk studi kasus. Sebagai bahan studi kita yaitu e-commerce web. Mengapa pilihan ditetapkan e-commerce web? Karena e-commerce web merupakan pilihan yang populer di kalangan para pelaku web hacking.
Deface banyak terjadi pada situs e-commerce web yang menggunakan MS IIS. Ini dikarenakan adanya bug pada IIS yang dikenal sebagai unicode bug. Dengan adanya bug ini seseorang dapat mengakses command line shell cmd.exe pada server keluarga Windows NT. Kelemahan IIS ini sempat ramai dibicarakan orang karena banyaknya korban. Megakses server dengan memanfaatkan Unicode bug itu sendiri dilakukan melalui service http ( port 80 ), port yang pasti dibuka untuk memberikan layanan web.
Pada kasus, setelah berhasil masuk ke sistem, pelaku web hacking menggunakan tool TFTP untuk melakukan transfer terhadap halaman web dengan desain ‘kreatif’ yang dimilikinya untuk mengubah tampilan web target.
Opsi Baca/Tulis pada Protokol http
Untuk mengamanankan sever IIS dari deface, server harus secara berkala di-update dengan sercvice pack dan hotfix terbaru. Lebih baik lagi kalau situs e-commerce itu juga dilindungi oleh firewall dan IDS ( intrusion detection system ). Tapi semua itu ternyata belum menjamin keamanan situs ecommerce
dari deface. Seperti pada contoh kasus kita, ternyata setelah semua usaha di atas, ternyata masih terkena
deface juga.Walaupun kini deface yang terjadi tidak terlalu mempunyai nilai seni, tetapi tetap efektif
Bagaimana hal ini bisa terjadi?
Hal ini dapat terjadi karena setting pada protokol HTTP 1.0 atau HTTP 1.1 yang merupakan protokol utama untuk web itu sendiri, yaitu adanya opsi untuk dapat membaca dan menulis lewat protokol-protokol ini. HTTP 1.0 RFC 1945 (http://www.ietf.org/rfc/rfc1945.txt) Finalized May 1996 Didukung oleh sebagian besar Web server dan browser HTTP 1.1 RFC 2616 (http://www.ietf.org/rfc/rfc2616.txt) Finalized 2001 Standard Baru Komunikasi Web
Beberapa perintah HTTP 1.0
GET Untuk mengambil informasi dari sistem, seperti halaman html GET /default.htm HTTP/1.0
HEAD Untuk mengambil informasi mengenai system HEAD HTTP/1.0 (untuk menentukan OS/WEB)
POST Mengirimkan Informasi ke sistem
Perintah-perintah yang didukung HTTP 1.1.
CONNECT*, DELETE*, GET, HEAD, OPTIONS, POST,
PUT,TRACE
Dengan memanfaatkan hanya perintah-perintah dasar dari HTTP, seorang hacker dapat men-deface suatu situs web. Berikut ini adalah perintah-perintah yang dijalankannya:
OPTIONS * HTTP/1.1
PUT /file.ext HTTP/1.1
Host: hostname
Content-Length: jumlahkarakter data yang dikirim
Terlihat bahwa hal ini terjadi karena setting server yang tidak sempurna. Untuk itu perlu dilakukan beberapa hal:
• Setting untuk menulis dari HTTP dihilangkan
• Menggunakan security template dari Microsoft, NSA, dan lain sebagainya.
• Menggunakan berbagai dokument setting server agar aman
SQL Injection
Setting server dengan benar memang akan mengamankan e-commerce web dari serangan deface, tetapi bukan berarti semuanya sudah aman sekarang. Situs e-commerce yang menggunakan Microsoft IIS juga
menggunakan database access dengan Micosoft SQL server dan dibandingkan dengan SQL server yang lain, MS SQL server mempunyai kelemahan yang memungkinkan seseorang tanpa account dapat masuk dan lolos verifikasi dari MS SQL server. Dari segi kerugian, hal ini lebih serius, sebab bisa saja data
sensitif seperti nomor kartu kredit serta lainnya bocor! Pada saat seseorang berusaha masuk ke situs e-commerce, biasanya akan disambut dengan halaman login yang mengharuskan pemakai memasukkan login name dan password. Setelah pemakai memasukkan username dan password, secara umum SQL akan melakukan verfikasi terpadap SQL query sebagai berikut:
SQLQuery = “SELECT Username FROM Users WHERE Username = ‘” & strUsername & “‘ AND Password = ‘” & strPassword & “‘“
Kelemahan verifikasi MS SQL disini mirip dengan kelemahan unicode bug, yaitu tetap memproses (dengan bingung) input-input ilegal pada username dan menghasilkan error page. Pada error page ini akan terbaca struktur database-nya. Jadi kalau username-nya diisikan karakter-karakter ilegal seperti misalnya:
‘ OR ‘ ‘=
dan untuk password-nya disikan juga ‘ OR ‘ ‘= maka SQL query akan membacanya sebagai:
SELECT Username FROM Users WHERE Username = ‘ ‘
OR ‘ ‘=‘ ‘ AND Password = ‘ ‘ OR ‘ ‘=‘ ‘
yang artinya SQL query akan memvalidasi username kosong (blank) dan password kosong sebagai user yang sah. Keberhasilan SQL Injection ditandai dengan adanya ODBC error, internal server error, masalah dalam memproses request, syntax error, dan lain sebagainya. Untuk mengatasi hal ini, atur agar:
• Hanya karakter tertentu yang boleh diinput.
• Jika terdeteksi adanya illegal character, langsung tolak permintaan.
Angka Minus dalam Program Bisnis
Pengamanan terhadap kelemahan SQL query bukan berarti suatu situs e-commerce sudah aman. Yang banyak terjadi adalah bahwa suatu situs e-commerce secara desain memang sudah tidak aman. Hal ini terutama pada situs situs yang menggunakan scripting language. Pada kebanyakan program bisnis, tanda minus digunakan untuk menandai pembayaran, sedangkan pemesanan barang tentunya tidak ada yang menggunakan tanda minus.
Tetapi cukup banyak situs e-commerce yang didesain secara ceroboh dan tetap memproses tanda minus pada jumlah barang yang dipesan, misalnya. Hal ini apabila dilakukan dengan kreatif, yaitu mengkombinasikan pesanan dengan jumlah barang negatif dan jumlah barang lain yang positif, dalam prosesnya bisa mengakibatkan pengiriman barang dilakukan tanpa mengharuskan adanya pembayaran.
JavaScript: Client Side Scripting
JavaScript sendiri merupakan suatu scripting language yang dieksekusi di sisi client (komputer pengguna), sehingga suatu transaksi yang menggunakan JavaScript sebagai scripting language-nya dapat dipastikan sangat rawan terhadap manipulasi dari sisi pemakai. Contoh scripting language yang bekerja di sisi client:
• JavaScript
• Client side VB Script
Adapun scripting language di sisi server:L
• ASP (Active Server Pages_
• JSP (Java Server Pages)
• PHP (Personal Home Page)
Kelemahan Dasar HTML Form
Setelah semua di atas diatasi, juga masih belum semuanya setaus persen aman. Pasalnya HTML sendiri, bahasa universal yang digunakan oleh web mempunyai karakteristik yang bisa disalahgunakan.
Formulir dalam format HTML (HTML Form) adalah tampilan yang digunakan untuk menampilkan jendela untuk memasukkan username dan password. Setiap HTML form harus menggunakan salah satu metode
pengisian formulir, yaitu GET atau POST. Berikut ini adalah kode HTML dari suatu login form:username: input name=user type=text width=20>
password: input name=pass type=password width=20>
Melalui kedua metode HTTP ini (GET atau POST) parameter disampaikan ke aplikasi di sisi server.
Masalahnya dengan menggunakan GET, variabel yang digunakan akan terlihat pada kotak URL, yang memungkinkan pengunjung langsung memasukkan karakter pada form process, selain juga perintah GET dibatasi oleh string sepanjang 2047 karakter. Variabel juga dapat diambil dengan Request.QueryString.
POST biasa digunakan untuk mengirim data dalam jumlah besar ke aplikasi di sisi server, sehingga tidak menggunakan URL query string yang terbatas. POST juga lebih aman sebab variabel tidak terlihat oleh pengunjung, sehingga lebih sulit dimainkan lewat perubahan nama variabel. Namun variabel tetap dapat diambil dengan RequestForm.
Kesimpulan
• Hacking meliputi semua unsur dan tidak hanya pada satu sisi sistem operasi.
• Tidak semua bug di ketahui pembuat software.
• Kesalahan konfigurasi adalah masalah umum yang disebabkan penguasaan yang kurang atas suatu sistem.
• Menjadi hacker itu mudah; hanya menggunakan tools yang dibuat oleh hacker luar ( script kiddies ).
• Tidak diperlukan pengertian akan network, TCP/IP, Assembly, C, dan lain-lain untuk menjadi Hacker.
• Programmer handal bisa dengan mudah menjadi hacker juga.
• Serangan tidak hanya melalui network layer, tapi juga application layer.
• 70% serangan melalui port 80/aplikasi.
• Kerugian terbesar berasal serangan dari orang dalam, dan 80% serangan dilakukan oleh orang dalam.

sumber : http://hendrysajahh.wordpress.com
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar

i-teko