Apa itu Penetration Testing
Penetration Testing atau disebut juga pentest adalah pengujian keamanan informasi dimana seorang asesor meniru serangan yang biasa sering terjadi untuk mengidentifikasi metode peretasan fitur keamanan aplikasi, sistem, atau jaringan. Pengujian ini dilakukan oleh asesor menggunakan serangan yang nyata, sistem yang nyata, dan data yang nyata menggunakan alat dan teknik yang sering dipakai oleh seorang hacker. Penetration Testing biasanya dilakukan bersamaan dengan Vulnerability Assessment (VA). Vulnerability Assessment adalah sebuah proses untuk mengidentifikasi risiko dan celah kerentanan pada aplikasi, sistem, ataupun jaringan. Sebagian besar pentest mencari kombinasi kerentanan pada satu atau lebih sistem untuk mendapatkan akses lebih dalam pada sistem yang menjadi target dibandingkan dengan hanya mengetahui satu macam kerentanan.
Manfaat Penetration Testing
Dalam implementasinya, pentest dapat berguna antara lain untuk menentukan seberapa baik sebuah sistem dapat menangani serangan dunia nyata. Selain itu dapat menentukan penanggulangan yang dapat mengurangi ancaman terhadap sistem, dan untuk mengingkatkan keamanan pada aplikasi, sistem, atau jaringan yang dimiliki. Pentest juga digunakan untuk mendeteksi serangan dan merespon dengan cepat dan tepat. Sehingga secara garis besar pentest bertujuan untuk menganalisis risiko yang akan timbul dengan adanya kerentanan yang telah diindentifikasi pada tahap Vulnerability Assessment dan memberikan rekomendasi tindakan yang perlu dilakukan apabila sistem yang diuji dapat lolos dari serangan hacker.
Metodologi Penetration Testing
Dalam menjalankan pengujian, terdapat 4 tahapan yang dijalankan dalam Penetration Testing yaitu tahap Planning (Perencanaan), Discovery (Penemuan), Attack (Serangan), dan Reporting (Pelaporan) seperti yang dijelaskan pada Gambar 1.
Gambar 1. 4 Tahapan Metodologi Penetration Testing
Tahapan pertama adalah tahap Planning (Perencanaan). Pada tahap ini dilakukan identifikasi aturan dalam pengujian, selain itu persetujuan manajemen terkait jalannya pengujian dan ruang lingkup pengujian telah diselesaikan dan didokumentasikan, dan yang terakhir adalah menetapkan tujuan pengujian. Pada tahap ini tidak dilakukan pengujian secara teknis. Tahap perencanaan menentukan sukes atau tidaknya Penetration Testing yang dilakukan.
Tahapan kedua adalah tahap Discovery (Penemuan). Pada tahap ini terdiri dari dua bagian yaitu pengumpulan informasi dan analisis potensial kerentanan (vulnerability analysis). Bagian yang pertama yaitu pengumpulan informasi terkait sistem target. Pengumpulan informasi dapat dilakukan melalui Identifikasi Port jaringan dan layanan. Selain itu teknik lain yang digunakan untuk mengumpulkan informasi terkait sistem target dapat melalui Host name dan informasi IP address, nama pegawai dan informasi kontak pegawai, sistem informasi, dan informasi aplikasi dan layanan. Bagian yang kedua adalah analisis potensial kerentanan dapat dilakukan dengan menggunakan tools (Contoh: Nessus) yang terdeteksi secara otomatis ataupun secara manual. Analisis kerentanan dapat menggunakan database asesor sendiri atau database yang tersedia di publik seperti National Vulnerability Database (NVD) untuk mengidentifikasi kerentanan secara manual.
Tahapan ketiga adalah tahap Attack (Serangan). Mengeksekusi serangan adalah poin utama dalam pentest. Pada tahap ini dilakukan penentuan target, pemilihan tools, dan metode eksploit yang tepat. Analisis potensial kerentanan yang sudah diidentifikasi sebelumnya diverifikasi dengan percobaan eksploitasi. Jika berhasil, kerentanan diidentifikasi dan dianalisis peningkatan keamanan pada sistem target. Beberapa proses eksploitasi memungkinkan seorang asesor untuk mendapatkan hak akses istimewa pada sistem untuk lebih dapat identifikasi kerentanan lebih dalam. Apabila asesor membutuhkan informasi dikarenakan lingkup serangan lebih dalam, dapat kembali ke tahap Discovery (Additional Discovery) untuk pengumpulan informasi tambahan. Asesor dapat menggunakan tools tambahan pada sistem target atau jaringan untuk memfasilitasi proses pengujian.
Analisis potensial kerentanan hanya dilakukan untuk mengidentifikasi kemungkinan adanya kerentanan, namun pada tahap Attack (serangan) lebih kepada mengeksploitasi kerentanan yang sudah teridentifikasi. Sebagian besar kerentanan yang dilakukan ekploitasi diantaranya adalah kesalahan konfigurasi pada pengaturan keamanan sistem, kurangnya pengamanan pada kode kernel yang merupakan inti dari OS, buffer overflows adalah kondisi dimana seorang asesor ataupun hacker memberikan input yang berlebihan kepada sistem sehingga terjadi kelebihan muatan pada memory dan tidak dapat mengalokasikannya. Kondisi ini mempermudah asesor atau hacker dalam mengambil alih sistem, validasi input yang tidak memadai sehingga dapat memungkinkan untuk terjadi SQL Injection, symbolic links merupakan serangan yang dilakukan terhadap URL dari website app yang dimiliki oleh organisasi/perusahaan, dengan menambahkan kode JavaScript dan menjalankannya pada situs target sehingga jika dijalankan dapat membahayakan sistem dan juga user dari website app tersebut, serangan file descriptor merupakan serangan yang ditujukan pada pengaksesan file, kondisi race adalah kondisi dimana hacker dapat mengambil alih sistem saat program masih berjalan atau saat masuk ke dalam mode istimewa, buruknya pengendalian izin pada file dan direktori dapat mendatangkan banyak serangan terhadap sistem seperti terbongkarnya password sistem atau file.
Tahapan yang terakhir adalah tahap Reporting (pelaporan). Pada tahap ini terjadi bersamaan dengan tiga tahapan lainnya dari pentest. Pada tahap perencanaan, telah dibuat rencana assessment. Dalam tahap Discovery dan Attack, log tertulis biasanya disimpan secara periodik yang dibuat untuk administrator sistem dan/atau manajemen. Rencana assessment dan log pada tahap Discovery dan Attack dilampirkan dalam pembuatan laporan. Laporan dibuat untuk menggambarkan langkah kerja yang dilakukan, kerentanan yang teridentifikasi selama pengujian, mengidentifikasi risiko, dan memberikan rekomendasi terkait langkah untuk mengurangi kerentanan yang ditemukan dan peningkatan keamanan sistem.
Dalam menjalankan pentest, pada umumnya asesor menggunakan tools untuk mempermudah pengujian. Tools pentest yang sering digunakan antara lain Kali Linux, nmap, Metasploit, Wireshark, Hashcat, Burpsuite, Acunetix Web Vulnerability Scanner, Nessus, dan lain sebagainya.
Penulis :
Erwina Nur Amalina
Strategic Consultant – PT Equine Global