Bagaimana mengatasi serangan XSS?



XSS atau Cross Site Script merupakan salah satu jenis serangan yang berbahaya dan paling banyak ditemukan di website manapun seperti google, facebook, Amazon, Paypal, dll. Jika anda cek laporan bug pada masing-masing website tersebut maka sebagian besar melaporkan serangan XSS.

Serangan cross-site scripting biasanya digunakan untuk mencuri cookie, penyebaran malware, session hijacking / pembajakan session, dan pembelokkan tujuan / malicious redirects. Serangan ini tipikalnya adalah melakukan injeksi kode javascript terhadap sebuah website sehingga browser mengeksekusi kode/script yang diperintahkan oleh penyerang. Kelemahan ini mudah didapat tapi susah untuk diatasi. Inilah alasannya mengapa XSS banyak ditemukan di berbagai website.

Apa pengertian Cross-site Scripting atau XSS?

Anda mungkin berpikiran kenapa Cross-site scripting itu disingkat jadi XSS bukannya CSS? jawabnya adalah karena CSS sudah lebih familiar pada dunia desain web yaitu Cascading Style Sheet, maka dipilihlah XSS agar tidak menjadi rancu.

Sedangkan penjelasan mengenai XSS adalah suatu jenis serangan web dimana penyerang berusaha untuk menyisipkan script yang berisikan kode jahat terhadap suatu website untuk menjalankan suatu perintah.

Testing / percobaan XSS

Saya sudah menyiapkan halaman untuk pembelajaran XSS, silahkan kunjungi :

http://ethicninja.altervista.org/xss.php

Isi script form tersebut adalah

<html>
<head>
<title>File Belajar cara mengatasi XSS</title>
</head>
<body>
<h1>Belajar cara mengatasi XSS. </h1>
<form action="" method="post">
<input type="text" name="q" value="" />
<input type="submit" value="Search" />
</form>
<?php
if (isset($_POST['q'])) echo 'Anda mencari : '. $_POST['q'];
?>
<br><br>
Ikuti tutorial lengkapnya di <a href="http://www.ethic.ninja/">Ethic Ninja</a>
</body>
</html>

Sekarang anda masukkan script berikut pada inputan pencarian :


<script>alert('Ethic Ninja');</script>

Maka akan muncul popup seperti gambar berikut :


Ini berarti website tersebut memiliki vulnerable XSS. Sekarang kita akan coba melakukan pengambilan cookie dari pengakses, masukkan script seperti berikut :


<script>alert(document.cookie);</script>

Langkah selanjutnya adalah biasanya sang penyerang mengirimkan link yang berisikan perintah XSS, contoh :

http://ethicninja.altervista.org/xss.php?q=%3Cscript%3Ealert%28%27Terimakasih%20cookienya%20;%29%27%29;alert%28document.cookie%29;%3C/script%3E

Aspek target XSS

Target XSS bisa dimana saja, di tempat yang tidak diduga sekalipun, inilah daftar aspek target yang banyak digunakan untuk eksploitasi XSS :

1. URL
2. HTTP referrer objects
3. Parameter GET
4. Parameter POST
5. Window.location
6. Document.referrer
7. document.location
8. document.URL
9. document.URLUnencoded
10. cookie data
11. headers data
12. database data

Bagaimana cara mengatasinya?

Pertama, lakukan encoding untuk karakter <, >,' dan ". LIhat encoding dibawah :

& –> &
< –> <
> –> >
” –> "
' –> '
/ –> /


Untuk fungsi diatas jika anda menggunakan PHP anda dapat memakai fungsi htmlspecialchars() ini akan meng-encode semua Tag HTML dan spesial karakter.

Atau anda dapat menambahkan filter dengan str_replace 

$input = str_replace(array(‘&’,’<’,’>’), array(‘&amp;’,’&lt;’,’&gt;’), $input);

Atau menggunakan Open Source Libraries mengenai pencegahan XSS attack seperti PHP AntiXSS , HTML Purifierxssprotect , XSS HTML Filter

Anda dapat menggunakan salah satu dari library diatas, semuanya sama baiknya yang penting lakukan pencegahan sejak dini, sebelum website anda terkena serangan.

Road to CEH Part 4 | Hacking Methodology - Metode Hacking


Note : perlu diingat postingan diblog saya adalah ethical hacking bukan evil hacking. Tulisan yang bertujuan untuk keamanan sistem bukan perusakan sistem.
Kamus :
Target : Dapat merupakan sistem, organisasi, perusahaan, kelompok, spesifik kelompok, user atau spesifik user yang meminta untuk dilakukan testing keamanan.


Kali ini kita akan membahas metode hacking atau fase-fase dalam hacking. Sebenarnya tiap kasus bisa berbeda tergantung kondisi, namun kita anggap kondisi yang sekarang terjadi adalah kondisi dimana kita tidak tahu sama sekali tentang target. Jika masih ingat postingan sebelumnya apa jenis dari test ini? Jika belum tahu atau lupa bisa dibaca lagi di postingan ini.

Fase - fase tersebut adalah :

1. Reconnaissance

Ini merupakan persiapan sebelum melakukan penetrasi atau serangan, yaitu mendapatkan segala informasi mengenai target. Di sini mencari vektor apa saja yang bisa dilakukan untuk keperluan testing. Kemudian di fase berikutnya adalah scanning.

2. Scanning

Scanning lebih ke teknisnya, kita dapat melakukan scanning ke sistem secara manual maupun menggunakan tools, semuanya sah-sah saja. Tahap ini untuk mendapatkan informasi mengenai infrastruktur dan kelemahan sistem.

3. Gaining Access

Di fase ini kita melakukan penetrasi/eksploitasi berdasarkan info-info yang telah didapat sebelumnya, hingga mendapatkan akses, dapat melalui port-port tertentu, melalui web server, social engineering, dan lainnya.

4. Maintaining Access

Disini hacker menjaga access supaya tetap dapat diakses selama mungkin, sehngga memungkinkan untuk melihat/mengambil data di kemudian hari. Di fase ini hacker juga mencoba untuk meningkatkan hak akses dengan mengambil root atau ke sistem lainnya.

5. Clearing Tracks

Tahap terakhir adalah penghapusan jejak yang befungsi untuk menghindari deteksi intruder. Bisa saja dengan cara menghapus log, encrypt tools yang digunakan untuk menyerang, dll.

Demikian keterangan singkat metode/fase dalam hacking, kita akan membahas lebih dalam di postingan-postingan berikutnya.

Thanks!.

Honeypot Login


Github : https://github.com/dimazarno/honeypot-login

Honeypot Login, merupakan sebuah file php yang berisikan fungsi login... ya fungsi login.

~ah itu kan biasa

Eh.. sebentar dulu fungsi login yang ini berbeda. Kali ini saya membuat fungsi login yang bukan untuk diakses oleh admin tetapi oleh orang yang tidak diundang, ya bisa jadi dia adalah seorang hacker.

Lalu bagaimana cara kerjanya?

Jadi begini.. hacker sangat senang dengan sesuatu yang memiliki inputan atau form, salah satunya fungsi login ini. Kita tidak perlu memberi tahu ke hacker kalo halaman login admin kita berada di suatu tempat, cepat atau lambat biasanya mereka tahu. Lalu apa yang bisa kita lakukan?

Dengan honeypot login ini, kita bisa mengelabui si hacker setidaknya mengulur waktu sampai dia bosen kok ga tembus-tembus ho ho, misal website saya adalah :

http://www.ethic.ninja/

lalu halaman admin/cms saya saya letakkan di :

http://www.ethic.ninja/admin/

Secara mudah hacker pasti akan tahu halaman admin saya lalu mulai melakukan serangan berikutnya. Kalo password saya standar, mungkin cuma butuh waktu kurang dari 10 detik untuk menjebol admin saya. Ngeri kan? ya ngeri-ngeri sedap, berdasarkan hal tersebut maka saya melakukan pergeseran halaman admin, sekarang halaman admin saya pindah ke :

http://www.ethic.ninja/ngeringerisedap/

Dijamin hacker bakalan bingung nebaknya, nah lalu langkah selanjutnya pada alamat admin yang sebelumnya, yaitu http://www.ethic.ninja/admin/ saya pasangkan honeypot login. Kemudian suatu hari datanglah hacker ke situs saya, lalu mencoba menebak halaman admin saya yang palsu (http://www.ethic.ninja/admin/) sambil berkata :

"Ah udah gila kali, gampang banget dapet halaman adminnya, masa cuma /admin, gw bruteforce dolo ah"

Mulai lah dijalanin tuh bruteforce di halaman login saya, hasilnya 1 jam, 2 jam, 5 jam, 1 hari, 2 hari, 1 minggu.

"Lah kok ga dapet-dapet, pasti kuat banget nih passwordnya"

Padahal mau sampai kiamat juga ga bakal bisa masuk ke halaman admin, lha wong honeypot login kan dibuat ga pake password wong koneksi ke database aja gak =))

Lalu apalagi yang bisa dilakukan honeypot login? Secara diam-diam honeypot login mencatat aktivitas dan IP hacker dalam bentuk log, berikut adalah hal-hal yang dicatat :

- Timestamp
- Username
- Password
- IP
- Hostname
- City
- Region
- Country
- Location (GPS coordinate)
- ISP
- Browser
- OS
- Useragent
- Cookies
- Session

Nah lho jadi keliatan kan infonya. Langkah selanjutnya bisa anda lakukan IP Banned atau tindakan lainnnya. Hmm.. cukup menarik kan? :)

Anda dapat mendownload Honeypot Login di : https://github.com/dimazarno/honeypot-login


Thanks!

Road to CEH Part 3 | Defenses - Pertahanan Sistem



Dalam postingan kali ini kita akan membahas tentang security control tapi tidak dibahas dengan detail ya masih pemanasan dulu ho ho, jika kita bicara strategi pertahanan secara umum maka kita membahas mengenai pertahanan network. Dan tujuan kita mempelajari strategi pertahanan adalah untuk mempelajari countermeasure atau penanggulangan dari serangan-serangan hacker, sebagai konsultan sekuriti selain mengetahui serangan jahat tetapi harus juga mengetahui cara menanggulanginya karena tujuan dari CEH  adalah memberikan keamanan yang lebih baik dari suatu sistem maupun organisasi.

Security Controls

Berbicara mengenai security controls berarti berbicara mengenai keamanan sistem, data, dan organisasi.

1. Use a defense-in-depth strategy - Menggunakan Strategi Berlapis

Hal ini berarti melakukan penyebaran keamanan di setiap level organisasi, bisa saja berupa pertahanan firewall dan enkripsi tetapi bisa juga pertahanan user-nya, pertahanan dari luar seperti social engineering, pertahanan fisik dll. Teori dibalik strategi ini adalah jika salah satu pertahanan ada yang gagal maka ada pertahanan lain yang melakukan back up. Karena jika seorang hacker telah masuk di satu level dia akan mendapatkan angle baru lagi untuk melakukan exploit selanjutnya.

2. Administrative / Management Controls

Pertahanan ini meliputi pertahanan yang menyangkut manajemen perusahaan, dapat berupa policy, prosedur, personal policy.

3. Operational / Physical Control

Pada operational control berkaitan dengan data harian yang mereka lakukan/hasilkan selama bekerja yang berkaitan dengan keamanan. Sedangkan Physical Control meliputi hal-hal fisik yang melindungi bangunan/fisik seperti fasilitas gerbang, senjata, penjaga, cctv, dll. Operational dan physical control terkadang dilakukan secara berbarengan, contoh harus 2 orang untuk melakukan operasi tertentu terhadap suatu fisik kemanan (memutar CCTV, membuka dokumen tertentu, dl)

4. Logical / Technical Controls.

Disini kita berbicara tentang hal teknis keamanan seperti firewall, encryption, network security devices, permission privileges, apapun yang dapat membantu mengontrol sistem ataupun data.

Dibawah ini adalah penggambaran layer security controls :



Dibawah ini merupakan vektor pertahanan-pertahanan yang dapat dikontrol pengamanannya :

- Users
- Patches
- Secure Configurations
- Anti-malware
- Policies
- Procedures
- Planning
- Need-to-know
- Security clearances
- Network security devices
- Data encryption
- Secure authentication
- Right, privileges, permissions
- Training and education
- Access controls
- Gates, guards, and guns
- Alarms
- CCTVs

Sekian dulu mengenai pertahanan sistem, selanjutnya akan kita bahas mengenai hacking metodology, stay tune!

Thanks.

Road to CEH Part 2 | Types of Tests



Kali ini kita akan bahas tentang jenis-jenis test/percobaan yang biasa dilakukan oleh seorang konsultan sekuriti terhadap suatu sistem. Jenis-jenis test tersebut antara lain :

1. Vulnerability Testing

Vulnerability testing dilakukan dengan cara melakukan scan terhadap sistem, dapat dilakukan secara manual maupun menggunakan tools dengan tujuan untuk mengetahui apakah sistem tersebut memiliki kelemahan, lalu apa solusi untuk menambal kelemahannya, apa konfigurasi sistem yang mereka pakai, kemudian dihasilkan sebuah laporan keamanan. Dalam testing ini tidak dilakukan tindakan eksploitasi hanya melaporkan temuan/hasil scan yang telah dilakukan. Report tersebut akan menjadi inputan bagi tim penetrasi.

2. Full Penetration Testing

Pada testing ini akan dilakukan ujicoba penyerangan dari berbagai vektor, seperti penyerangan aplikasi web, sql injection, firewall, wireless network, OS. Lihat postingan sebelumnya yang membahas vektor serangan.

3. Targeted Testing
Prosesnya sama seperti full penetration testing, hanya saja penyerangan difokuskan ke satu hal saja, Contoh : 

- Database
- Website
- Aplikasi Klien Server
- Code
- Physical Security
- Social Engineering
- Network Scanning
- Malware
- Kebocoran informasi
- dll

Diklasifikasikan lagi berdasarkan tingkat pengetahuan :

1. Black Box Testing
Pada jenis testing ini kita tidak memiliki pengetahuan apapun tentang target alias zero knowledge, dilakukan dari luar sistem.

2. Grey Box Testing
Disini kita tahu sedikit tentang target, mungkin tahu organisasinya, tahu mengenai security administrator-nya, atau IPnya, tidak banyak pengetahuan yang didapat tapi setidaknya tahu harus mulai darimana. Bisa saja dilakukan dari dalam sistem.

3. White Box Testing
Berbeda dengan yang lainnya, white box testing dilakukan dengan pengetahuan yang penuh, kita tahu sistemnya menggunakan apa, firewall role nya seperti apa, scriptnya seperti apa, dll. Dalam testing ini berusaha untuk mencari exploit apa yang mungkin ditemukan dengan pengetahuan yang dimiliki.

Sekian dulu ya, nanti kita lanjut lagi ke Part 3 mengenai pertahanan. Stay tune!

Thanks.

Road to CEH Part 1 | Pengenalan Tentang Ethical Hacking



Pada awalnya arti secara harfiah mengenai hacking adalah melakukan sesuatu terhadap suatu barang/sistem sehingga kegunaan dari barang/sistem tersebut meningkat. Namun seiring waktu saat ini hacking dan hacker  menjadi hal yang sifatnya negatif. Coba simak deh percakapan antara Bobby dan Benny :

Bobby : "Brohhh gw baru aja selesai ngehack  website kampus kita.."
Benny : "Ah udah gila nih orang, ngapain lu hack, lu deface ya, website kampus sendiri juga, mending lu hack websitenya kampus tetangga"
Bobby : "Yeee.. gw baru selese ngulik bagian modul loginnya sekarang lu bisa login pake akun FB, bukannya malah deface-deface segala, itu sih kerjaannya bocah"

Begitulah kira-kira pergeseran makna dari kata hacking.

Pengertian Hacking

Saat ini hacking memiliki arti menyerang suatu sistem, jaringan, dan aplikasi dengan cara mengkesploitasi kelemahan dari hal-hal tersebut dengan maksud untuk mendapatkan hak akses atas data dan sistem.

Tujuan dari Hacking

- Pencurian data
- Perusakan atau penghapusan sistem
- Meningkatkan wewenang
- Pamer
- Dan lain-lain

Pengertian Ethical Hacking

Ethical Hacking adalah penggunaan pengetahuan, skill/kemampuan, tools/perangkat, dan teknik hacking untuk menunjukkan/mengeksploitasi kelemahan suatu sistem dengan tujuan untuk keamanan yang lebih baik.

Sudah kebayang kan perbedaannya? caranya sama, tekniknya sama, tapi tujuannya berbeda 180 derajat. Sekarang kita pelajari istilah-istilah umum dalam dunia perhackingan.

Istilah-Istilah Hacking

Target : Sistem atau organisasi yang akan diserang oleh hacker
Target value : Nilai berharga bisa berupa uang, suatu hal yang bersifat penting seperti reputasi dari target.
Vulnerability : Kelemahan dalam sistem, organisasi, software, dll. yang dapat memicu pengungkapan data, terambilnya data, hingga penghilangan data.
Exploit : Suatu metode atau teknik yang digunakan untuk menguji vulnerability sistem
"Zero day" attack : Exploit yang belum pernah dipublish sebelumnya dan belum pernah ada publikasi mengenai cara menanggulanginya.

Contoh Vektor-Vektor Serangan

Ini adalah object yang dapat dijadikan sasaran oleh para hacker :

- Virtual machine dan infrastruktur
- User/pengguna yang belum pernah dilatih keamanan
- Admin yang belum pernah dilatih keamanan
- Jaringan
- OS
- Aplikasi Klien-Server
- Database
- Aplikasi website
- Social Engineering
- Malware
- Perangkat Mobile
- VoIP dan PBX
- Social Media

Motivasi Serangan

Sedangkan motivasi dari suatu serangan sangat beragam diantaranya :

- Uang
- Balas dendam
- Kesenangan
- Mata-mata
- Pencurian properti intelektual
- Mencederai suatu organisasi atau kelompok
- Reputasi


Klasifikasi Hacker

1. Script Kiddies : Merupakan hacker pemula yang memiliki sedikit pengetahuan dan menggunakan tools buatan orang lain, biasanya tidak dapat mengembangkan serangan dan pertahanan.

2. Black Hats : Tipikal hacker yang berbahaya dan jahat, biasanya dimotivasi oleh uang, balas dendam, kriminal, teroris, aktivis, dll.

3. White Hats : Merupakan tipikal ethical hacker yang memiliki skill dan pengetahuan teknik hacking untuk membantu pertahanan terhadap penyerangan-penyerangan dan membuat sistem lebih secure/aman. Sering kali disebut dengan Konsultan Sekuriti, Analist, atau Engineer.

4. Grey Hats :  Ini merupakan hacker yang tidak ada batasan baik atau jahat, terkadang melakukan penyerangan, tetapi terkadang menjadi konsultan keamanan, bisa saja dikarenakan mereka butuh uang, tergantung pekerjaan apa yang mereka dapat.

5. Cyber Terrorist : TIpikal hacker jahat, biasanya secara organisasi/group, mereka menyebarkan ancaman-ancaman untuk tujuan tertentu (agama, politik, nasionalis, atau aktivis)

6. State-sponsored Hackers : Merupakan hacker terlatih yang dibiayai oleh negara atau pemerintah biasanya bertujuan untuk mata-mata dan perang cyber (cyber warfare). Mereka adalah hacker yang memilikikemampuan tinggi dan banyak uang karena disponsori oleh negara.

7. Hacktivist : Merupakan salah satu black hat, mereka menyerang sambil menyebarkan suatu pesan khusus. Melalui deface website, serangan DoS, dll.

8. Corporate Hackers : Tipikal hacker yang menyerang properti intelektual dan data penting suatu perusahaan. Tujuan mereka adalah untuk mendapatkan informasi mengenai kompetitor suatu perusahaan.

Agak susah memang mengkategorikan bahwa seorang hacker termasuk dalam kategori apa khususnya hacker yang jahat, namun hal ini dapat dilihat dari tujuan mereka menyerang.

Sekian dulu postingan mengenai Pengenalan Tentang Ethical Hacking, semoga sekarang sudah bisa membedakan antara Hacking dan Ethical Hacking. Post berikutnya akan saya bahas mengenai Tipe-tipe test yang digunakan oleh ethical hacking pada suatu sistem. Stay tune!

Thanks.