Penetration Testing
Jika berbicara tentang Penetration Testing atau biasa disebut pentest, maka pembahasannya akan sangat luas, karena pentest bukan hanya terbatas pada web hacking melainkan lebih daripada itu misalnya network hacking, desktop app hacking dan android/ios hacking.
Mengapa pentest saya masukkan dalam kursus ini? Karena pentest merupakan bagian dari web hacking. Pada pentest terdapat Langkah-langkah apa saja yang akan kita lakukan dalam proses web hacking dimulai dari hal yang paling dasar.
Singkatnya penetration testing adalah kegiatan untuk mencari celah keamanan pada sistem dimana semua akitivitas yang dilakukan oleh pentester (sebutan untuk orang yang melakukan pentest) adalah legal. Aktivitas penetration testing sedikit berbeda dari aktivitas blackhat hacker. Motivasi dalam penetration testing adalah untuk mengamankan sistem, bukan merusak atau mencuri data untuk hal ilegal. Dalam melakukan penetration testing pada suatu organisasi, kita harus mendapatkan izin dari organisasi tersebut agar aktivitas yang kita lakukan tidak dianggap ilegal. Bisa dibilang Pentest ini adalah bagian dari White Hats.
Penetration testing adalah proses yang sangat rumit dan juga kompleks. Dimana kita diharuskan untuk mencari setiap celah keamanan apapun pada sistem misalnya di sebuah perusahaan. Disisi lain kita juga harus memastikan bahwa aktivitas kita tidak menganggu pekerjaan orang lain dan juga tidak membuat aplikasi-aplikasi yang ada di perusahaan tersebut crash selain itu laporan pekerjaan yang dilakuka harus detail, juga setiap aktivitas yang kita lakukan jangan sampai keluar dari scope yang telah disepakati. Beberapa perusahaan biasanya akan memberikan dokumen NDA (Non-Disclosure Aggreement), dalam dokumen ini berisi kesepakatan antara pentester dengan perusahaan terkait apa saja yang boleh dilakukan dan apa saja yang tidak boleh dilakukan selama pentest.
Setiap pekerjaan pasti membutuhkan tahapan pekerjaan. Tahapan pekerjaan ini bertujuan agar pekerjaan yang kita lakukan itu sesuai dengan prosedur/standar. Sebagai contohnya pada kantor pos dimana tahapan pekerjaannya mulai dari menerima surat, mengorganisir surat hingga mengirim surat ke penerima. Dalam hacking, kita juga membutuhkan yang namanya tahapan atau prosedur yang dimana tahapan ini saling berkaitan antara satu sama lain.
Dalam pentest, kita gak bisa menggunakan sembarang tools, kita harus benar-benar memahami tentang apa yang kita lakukan dan apa efeknya pada sistem. Kalau salah dikit bisa-bisa malah kita merusak sistem tersebut dan menggangu pekerjaan orang lain. Maka dari itu sangat penting untuk kita menggunakan tahapan pekerjaan daripada langsung nge-hack nge-hack aja. Kita harus benar-benar memastikan bahwa celah keamanan yang kita temukan ini tingkatnya high atau low, apakah bug ini berpengaruh pada user? Apa business impact nya? Dan poin-poin lainnya.
Jika melihat banyak referensi, terdapat langkah atau tahapan yang berbeda-beda dalam penetration testing. Akhirnya beberapa orang bingung dalam menentukan metode yang benar dalam penetration testing. Dari masalah ini muncul sebuah website The Penetration Testing Execution Standard (PTES) yang memberikan informasi tentang standar dalam penetration testing dan tools yang berada pada Kali Linux sudah sesuai dengan standar PTES ( http://www.pentest-standard.org)
PTES terbagi dalam 7 kategori, mencakup semua hal yang berhubungan dengan penetration testing.Dimulai dari pengumpulan informasi hingga proses eksploitasi pada sistem. 7 kategori tersebut adalah sebagai berikut:
Pre-engagement Interactions
Pre-engagement Interactions merupakan tahapan pertama dalam penetration testing, pada tahapan ini seorang penetration tester melakukan diskusi dengan klien terkait ruang lingkup dan tujuan penetration testing. Pada tahapan ini, kita harus menjelaskan secara detail kegiatan yang dilakukan selama pentest mulai dari awal hingga membuat laporan pentest, hal ini dimaksudkan agar tidak terjadi salah faham antara klien dan penetration tester.
Intelligence Gathering
Intelligence Gathering/Recon/Information Gathering merupakan tahapan dimana kita mengumpulkan informasi-informasi penting dari target yang nantinya akan digunakan selama proses pentest contohnya melihat informasi di media social,Google Hacking, fingerprint,footprinting, web crawling dan lain-lain. Kemampuan yang harus dikuasai dalam tahap ini adalah memiliki kemampuan untuk belajar segala sesuatu tentang target, perilaku,sistem yang digunakan dan bagaimana sistem pengoperasiannya, dan akhirnya bagaimana sistem tersebut bisa diserang.
Dalam proses intelligence gathering, seorang penetration tester mencoba untuk mengidentifikasi mekanisme perlindungan apa yang terdapat pada target dengan perlahan-lahan dan berhati-hati dalam menyelidiki sistem tersebut. Sebagai contoh beberapa perusahaan mengakses suatu port pada sistem dan jika kita memaksa masuk ke port selain whitelist maka IP Address kita akan diblokir oleh sistem. Hal yang sama juga berlaku pada saat pentest ke sebuah web dimana pada batas waktu tertentu kita akan diblokir karena terdeteksi melakukan serangan. Hal-hal seperti harus bisa dipelajari dan dimengerti oleh seorang penetration tester agar proses pentest bisa dilakukan dengan baik.
Threat Modeling
Threat Modeling menggunakan informasi yang didapatkan dari intelligence gathering yang digunakan untuk mengidentifikasi kerentanan yang terdapat pada sistem. Pada tahapan Threat Modeling, kita akan menentukan metode serangan apa yang paling efektif.Hasil dari modeling ini nantinya akan menetntukan bagaimana sebuah sistem bisa diserang, dalam hal ini kita menganggap organisasi (klien) sebagai musuh untuk mencari kelemahan pada suatu sistem.
Vulnerability Analysis
Setelah mengidentifikasi metode serangan. Kita selanjutnya perlu mempertimbangkan bagaimana kita akan mengakses target untuk menjalankan serangan. Selama tahapan Vulnerability Analysis kita menggabungkan informasi-informasi yang didapatkan dari tahapan-tahapan sebelumnya dan memahaminya agar dapat mengetahui serangan apa yang layak digunakan. Contohnya informasi tentang port dan melakukan vulnerability scanning pada port tersebut, hasil dari banner grabbing, OS fingerprint dan lain-lain
Exploitation
Explotation merupakah tahap yang menentukan apakah sebuah sistem bisa diserang. Tahapan ini sering dilakukan dengan serangan yang dapat mengganggu sistem. Karena dalam proses exploitation, kita harus mengerti sistem apa seharusnya yang diserang, kita harus tahu bahwa sistem tersebut memiliki kerentan, jika kita melakukan explotation tanpa mengetahui kelemahannya, maka usaha kita tidak akan produktif dan bisa jadi mengganggu aktivitas sistem. Maka dari itu proses-proses dari tahapan sebelumnya sangat dibutuhkan.
Post Exploitation
Setelah melakukan exploitation,hal yang selanjutnya kita lakukan adalah Post Exploitation. Tahapan ini juga merupakan yang terpenting. Tujuan dari tahapan ini untuk mendapatkan informasi lebih lenjut tentang sistem yang berhasil di exploit. Dari hasil ini kita bisa mencari cara untuk mendapatkan akses ke internal organisasi,mengapus jejak,melakukan sniffing pada target tertentu, melihat data-data penting dan informasi-informasi penting lainnya dari sistem ke sistem yang telah kita exploit.
Dalam Post Exploitation ini kita bisa menilai, seberapa amankah sistem dari sebuah organisasi dimana penilaian ini dihitung dari banyaknya infromasi yang didapatkan seperti data sensitif yang tersimpan pada sistem,mengidentifikasi konfigurasi yang salah, saluran komunikasi dan informasi lainnya. Namun pada tahapan ini, kita harus berhati-hati karena beberapa organisasi membatasi akses ke suatu informasi penting, sehingga selalu berdiskusi dengan klien akan memudahakan dalam proses dokumentasi.
Reporting
Reporting merupakan tahapan terakhir dalam PTES. Pada tahapan ini kita dituntut untuk membuat laporan untuk semua aktivitas yang kita lakukan, bagaimana kita melakukannya, dan yang terpenting bagaimana cara yang dilakukan oleh sebuah organisasi dalam mengamankan sistemnya selaman proses penetration testing.
PTES hanya salah satu metode Pentest yang direkomendasikan oleh penulis. anda dapat menggunakan metode lainnya seperti Open Source Security Testing Methodology Manual (OSSTMM), NIST Guideline on Network Security Testing, OWASP Testing Guide dan lain-lain.
Bagi saya PTES sangat cocok untuk pentest yang langsung dilakukan diperusahaan, biasanya disebut dengan on-site Pentest dimana kita langsung mendatangi perusahaan tersebut atau juga cocok digunakan untuk remote pentest.
Berbeda halnya dengan Bug Bounty Program, standar PTES ini jarang digunakan karena kita biasanya melakukan blackbox testing yaitu kegiatan mencari celah keamanan tanpa mengetahui struktur internal dari sistem di perusahaan tersebut. Tidak ada tahapan Pre-engagement Interactions, kita hanya diberikan daftar domain/aplikasi apa saja yang boleh ditest, selanjutnya kita bekerja untuk mencari celah keamanan sesuai dengan kemampuan yang kita miliki.
Komentar
Posting Komentar
Silahkan sertakan nama bagi yang ingin berkomentar, Terima kasih..