Pentest White Box Dalam Keamanan

Share ke:

Apakah pantest itu ?

Tujuan utama dari artikel tentang pantest ini adalah bagaimana memahami cara kerja hacker dalam meng-exploit sistem.kita hanya akan belajar meng-exploit kelemahan yang sudah diketahui. Dan sama sekali tidak bermaksud untuk menemukan kelemahan baru.

Sebelum mencoba meng-exploit sistem, ada baiknya memahami konsep di balik kata “pentest”itu sendiri.sehingga kita memiliki landasan berpijak yang cukup kokoh.

Masih ingatkah dengan dokumen NIST yang sudah disinggung saat  membahas network assessment dan audit? Silahkan buka kembali beberapa dokumen NIST Yang disertakan pada DVD pendamping. Niscaya kita bisa menemukan dokumentasi yang menyinggung tetang pentest.

Pentest White Box

Lalu apakah yang dimaksud dengan pentest? Pentest merupakan singkatan dari Penetration testing. Kadangkala disebut pen testing atau ethical hacking, yaitu sebuah kegiatan untuk melakukan tes sistem komputer, network, atau aplikasi web, guna menemukan security vulnerabilities yang dapat di-exploit oleh attacker.

Sekelompok ahli yang di bidang penetration testing telah mencoba merumuskan 7 buah fase penetration testing yang dapat diterapkan di berbagai lingkungan. Ketujuh buah fase ini kemudian dikenal sebagai PTES (Penetration Testing Execution Standard). Penulis menyebut PTES ini sebagai salah satu standar pentest yang disepakati oleh para ahli.

Selain PTES ada standar lain yang juga dapat digunakan sebagai acuan, diantaranya:

  • Penetration Testing Framework
    http://www.vulnerabilityassessment.co.uk/Penetration%2oTest.html
  • Information Systems Security Assessment Framework (ISSAF)
  • Penetration testing PCI DSS 11.3
  • Open Source Security Testing Methodology Manual
    http://www.isecom.org/research/

Penulis mempersilakan kepada Pembaca untuk mengkaji dan menemukan standar yang paling sesuai dengan kebutuhan.

Vulnerability Scan

Selain pentest ada istilah lain yang disebut vulnerability scan. Keduanya memiliki tujuan yang sama, yaitu menemukan kelemahan sistem. Namun berbeda dari sisi teknik pelaksanaannya.

Menurut Penulis, vulnerability scan merupakan bagian dari pentest. Vulnerability scan digunakan untuk mengidentifikasi potensi vulnerabilities secara otomatis. Yaitu menggunakan aplikasi yang khusus dibuat untuk itu. Sedangkan pentest mencakup aktifitas yang dilakukan oleh sesorang secara langsung. Jadi pentest melibatkan aktifkitas yang dilakukan secara manual.

Kebanyakan kegiatan pentest akan melibatkan vulnerability Setelah ditemukan potensi vulnerabilities maka hacker akan melakukan evaluasi untuk menentukan tindakan apa selanjutnya yang harus dilakukan.

Kebutuhan Skill

Keahlian apa saja yang diperlukan untuk melakukan pentest dapat dipelajari di berbagai training formal dan juga informal. Ada cukup banyak program training yang mengajarkan skill seputar hacking, beberapa di antaranya yaitu:

  • EC-Certified Ethical Hacker (CEH)
  • CPEH Certified Professional Ethical Hacker .
  • Licensed Penetration Tester (LPT)
  • GIAC Penetration Tester (GPEN)
  • GIAC Web Application Penetration Test (GWAPT)
  • Certified Penetration Tester
  • Certified Expert Penetration Tester

Sudah tentu skill terbaik dapat diperoleh dari latihan dan kesungguhan dalam belajar. Seorang hacker sejati akan membekali dirinya dengan kemampuan programming yang levelnya di atas rata-rata. Kadangkala disebut skill level dewa! Namun pada saat melakukan pentest kita tidak harus benar-benar menguasai skill programming level dewa. Sebab aktifitas pentest tidak sama persis dengan aktifitas “hacking murni”.

Jika kita mengacu pada PTES, maka fase pentest adalah sebagai berikut:

  • Pre-engagement interactions
  • Intelligence gathering
  • Threat modeling
  • Vulnerability analysis
  • Exploitation
  • Post-exploitation
  • Reporting

Setiap fase memerlukan penjelasan tersendiri yang berada diluar cakupan buku ini. Secara singkat ketujuh fase PTES dapat dijelaskan sebagai berikut.

  1. Pre-engagement interactions
    Pre-engagement interactions berkaitan dengan semua rapat (meeting) dan dokumentasi (documentation) yang harus ada/dilakukan pada setiap kegiatan pentest.

    Pada fase ini, konsultan atau orang yang melakukan pentest harus dapat menejelaskan apa saja persiapan yang harus dilakukan. Dia juga harus dapat memberikan pemahaman bahwa pentest bukanlah hacking. Kadangkala client khawatir dengan istilah “hacking” yang berkonotasi merusak.

    Pada fase ini mungkin diperlukan pembuatan quisioner, cheklist pekerjaan, penentuan jadwal, keterlibatan tim, dokumentasi inventory, dan hal-hal lain yang relevan.

    Sehubungan dengan keterlibatan tim, seringkali aktifitas pentest memerlukan pembentukan tim yang dikatagorikan sebagai red team, blue team, dan purple team.

    Red team ini adalah tim penyerang yang mensimulasikan “real attacker”. Sebaliknya Blue team adalah tim yang bertahan dan bertugas meningkatkan security sistem. Sedangkan purple team berfungsi sebagai koordinator dan menjaga keseimbangan kedua tim agar proses pentest berjalan baik.
  2. Intelligence gathering
    Intelligence Gathering adalah fase mengumpulkan informasi sebanyak banyaknya tentang target. Informasi ini akan bermanfaat pada fase fase vulnerability assessment dan exploitation.
  3. Threat modeling
    Threat modeling merupakan fase menganalisa kemungkinan berbagai threat dan dampak yang ditimbulkannya. Melalui fase ini diharapkan dapat dipahami tentang kondisi organisasi, sistem, asset, vulnerabilities.
    Proses pembentukan threat modeling umumnya mengikuti tahapan yang dijelaskan pada diagram berikut ini
  4. Vulnerability analysis
    Vulnerability analysis merupakan fase untuk menemukan vulnerabilities target. Pada fase ini dilakukan vulnerability scan menggunakan berbagai tools yang dibuat untuk ini. Pada fase ini diharapkan “pintu masuk” menuju sistem sudah dapat ditemukan.
  5. Exploitation
    Pada fase ini dilakukan akses ke sistem atau resource dengan cara mem bypass berbagai halangan security. Akses dilakukan melalui “pintu masuk yang berhasil ditemukan pada fase sebelumnya.
  6. Post-exploitation
    Fase post-exploitation bertujuan untuk membuat backdoor yang akan digunakan pada masa yang akan datang. Sehingga penyerang dapat langsung memasuki sistem melalui backdoor tersebut. Pada fase ini akan dilakukan juga penghapusan jejak agar aktifitas yang sudah dilakukan tidak mudah diketahui.
  7. Reporting
    Semua aktifitas yang dilakukan kemudian didokumetasikan dalam bentuk laporan atau pentest report. Pada report perlu dicantumkan tingkat resiko atau risk dari vulnerabilities. Juga dicantumkan saran saran perbaikan (remediation).

Kali Linux

Pentest umumnya harus dilakukan dalam jangka waktu terbatas. Oleh sebab itu penggunaan berbagai tools akan mempercepat pencapaian hasil. Ada segudang tools yang bisa digunakan. Mulai dari tools berbasis GUI hingga teks (command line). Sebagian tools untuk pentest menuntut penguasaan bahasa pemrograman script.

Ada segudang tools yang bisa digunakan. Kita harus bisa memilih yang paling sesuai. Oleh sebab itu kita perlu membaca dokumentasi dan mencoba menggunakan tools yang dirasa sesuai dengan kebutuhan, dan memahami kegunaan masing-masing tools.

Penulis menyarankan agar memilih distro yang khusus dibuat untuk keperluan pentest. Sebab distro semacam ini sudah membawa ratusan (mungkin juga) ribuah buah aplikasi bantu. Salah satunya yang cuup populer adalah Kali Linux.

Penuiis sudah menyertakan file ISO Kali Linux versi 32 bit pada DVD Pendamping. Kali Linux dapat dijalankan secara live, tanpa harus diinstal pada komputer. Namun untuk mendapatkan manfaat maksimal, sebaiknya installah Kali Linux pada komputer. Kita juga bisa mencoba menginstal Kali Linux pada VirtualBox.

Web Application Pentest

Untuk memudahkan memahami materi Pentest ini maka Penulis akan membahas sekilas tentang OWASP. Sebelum memulai, kita memerlukan beberapa tools untuk memudahkan eksplorasi.

Menyiapkan Tools

Tools pertama yang perlu disiapkan adalah Kali Linux. Anda bisa menginstal Kali Linux ada hard disk atau jika ada waktu dapat mencoba men-download file VM Kali Linux yang dapat dijalankan secara langsung di VirtualBox dan Vafware (tanpa proses instalasi). Silakan melakukan download dari alamat situs berikut ini.

https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/

Penulis tidak menyertakan file VM Kali ini pada DVD pendamping disebabkan ukuran file-nya cukup besar (yaitu sekitar 2,5 GB).

Berikutnya adalah VM Metasploitable 2. Metasploitable 2 ini merupakan VM Linux yang sudah diinstal berbagai aplikasi Web untuk keperluan pentest. Metasploitable 2 bisa di-download di alamat berikut. https://sourceforge.net/projects/metasploitable/files/Metasploitable2/

Di dalam Metasploitable 2 sudah diinstal aplikasi web yang dibutuhkan untuk belajar pentest. Sehingga kita bisa fokus belajar pentest tanpa harus menginstal aplikasi web.

Gunakan VirtualBox untuk menjalankan VM Metasploitble 2. Proses penambahan VM baru sangat mudah. Kita perlu mengekstrak file metasploitable-linux-2.0.0.zip. Setelah diekstrak akan ada file bernama Metasploitble.vmdk yang berukuran sekitar 1,9 GB. Silakan import file ini ke VirtualBox.

Untuk keperluan pentest aplikasi web dapat digunakan beberapa aplikasi, diantaranya Zap proxy. Bagi pengguna Kali Linux, Zap sudah tersedia dan tidak perlu lagi di download atau diinstal secara terpisah. Ini merupakan keuntungan bagi pengguna Kali Linux.

Untuk menjalankan Zap di Kali, klik Applications >> 03 Web Application Analysis >>> owasp-zap. Jika baru pertama kali menjalankan owasp-zap maka akan ada jendela agreement. Klik saja Accept. Selanjutnya owasp-zap akan melakukan self configuration. Tunggu hingga berakhir.

Ada beberapa pilihan session, pilih saja yang pertama (Yes, i want persest this session …..). Selanjutnya kita akan memasuki workspace owasp-zap. Sekarang owasp-zap sudah siap digunakan. Kita akan membahas kembali tentang owas-zap

Web Security Scanner

Zap dapat dikatagorikan sebagai aplikasi web security scanner atau web vulnerability scanner. Ada beberapa pilhan aplikasi sejenis Zap yang dapat dicoba. Masing-masing memiliki kelebihan dan kekurangan. Beberapa di antaranya adalah aplikasi gratis atau open source. Sayangnya aplikasi terbaik umumnya tidak gratis, sedangkan aplikasi open source tidak semuanya tersedia di Kali Linux. Kita harus melakukan download di Internet.

Berikut ini disajikan beberapa aplikasi alternatif yang dapat dicoba. Beberapa di antaranya sudah tersedia di Kali Linux. Sebagian lagi harus di download langsung dari Internet dan ada juga yang komersial.

Apakah OWASP Itu

Open Web Application Security Project (OWASP) adalah organisasi non profit yang didedikasikan untuk menyediakan informasi tentang web application security.

OWASP mengeluarkan berbagai dokumen, di antaranya dokumen bernama OWASP Top 10 Web Application Security Risks yang sudah di-update pada tahun 2017. Dokumen ini dibuat sebagai panduan bagi developer dan security professional tentang berbagai vulnerability yang paling kritis, yang umumnya dijumpai pada berbagai aplikasi web.

Sepuluh buah application risks ini sangat berbahaya, disebabkan dapatdimanfaatkan oleh attacker untuk menyusupkan malware, mencuri data,atau mengambil alih sepenuhnya komputer atau web server.

Web application attack saat ini menjadi trend (menurut hasil laporan Verizon Data Breach Investigations pada tahun 2018). Cukup banyak organisasi yang berjuang mengimplementasikan berbagai aplikasi dan perangkat security, namun mereka kebingungan harus memulainya dari mana.

Adanya dokumen OWASP merupakan awal yang baik untuk memulai. Sehingga organisasi dapat mulai menerapkan policy berdasarkan dokumen tersebut. Berbagai vulnerability yang dicantumkan dalam dokumen tersebut, sudah dapat diterima secara umum. Dengan demikian ada kepastian bagaimana harus memulai mengamankan aplikasi web.

Berikut ini daftar daftar OWASP Top 10 Web Application Security Riskstahun 2017. Kita bisa melihat perbandingannya dengan tahun 2013.

1.Injection

Berbagai jenis injection flaws, seperti SQL. injection, LDAP injection, dan CRLF (Carriage Return Line Feed) injection, muncul manakala attacker mengirim data ilegal (untrusted data) kepada sebuah interpreter yang kemudian dieksekusi sebagai perintah tanpa melalui tahapan authorization yang valid.

Saran Pencegahan:

Berbagai application security testing dapat dengan mudah mendeteksi injection flaws. Developer dianjurkan untuk menggunakan parameterized queries saat membuat kode program untuk mencegah injection flaws.

2. Broken Authentication and Session Management

Acount user-user dan session authentication yang tidak dikonfigurasi secara benar dapat menjadi jalan bagi attacker untuk menebak password, menemukan key, session tokens, atau mengambil alih kendali account user.

Saran Pencegahan:

Gunakan multi-factor authentication, seperti FIDO (Fast ID Online), penggunaan standard public key cryptography.

3.Sensitive Data Exposure

Berbagai aplikasi dan APIs tidak memproteksi data-data sensitif (financial data, username, password, health information) secara baik. Hal ini dapat menyebabkan attacker mengakses informasi dan mencuri informasi tersebut.

Saran Pencegahan:

Gunakan enkripsi pada data yang dihasilkan aplikasi dan juga data yang ditransmisikan ke aplikasi lain.

4. XML External Entity

XML processors dapat mengevaluasi external entity yang direferensikan di dalam dokumen XML. Attacker dapat memanfaatkan external entity untuk menyerang termasuk juga melakukan remote code execution, disclose internal files, SMB file shares.

Saran Pencegahan:

Melakukan Static application security testing (SAST) untuk menemukan issue dengan cara menganalisa dependencies dan configuration.

5. Broken Access Control

Konfigurasi yang kurang tepat atau pemberian hak akses user secara berlebihan yang menyebabkan berbagai data sensitif dan fungsi-fungsi tertentu dapat diakses secara ilegal.

Saran Pencegahan:

testing dapat digunakan untuk mendeteksi berbagai nonfunctional access controls.

6. Security Misconfiguration

Beberapa sistem dan aplikasi memiliki fitur security bawaan, misal pada Linux terseda iptables dan SELinux. Pada Apache web server tersedia modul SSL. Kesalahan konfigurasi (misconfiguration) security pada saat implementasi, seperti kesalahan konfigurasi security headers, error messages yang menampilkan sensitive information (information leakage), dan tidak melakukan patching atau upgrade systems, dapat membuka celah security lainnya.

 Saran Pencegahan:

Implementasi dynamic application security testing (DAST) dapat mendeteksi berbagai kemungkinan misconfiguration.

7. Cross-Site Scripting

Cross-site scripting (XSS) flaws memberikan peluang pada attacker. untuk melakukan inject client-side scripts pada aplikasi Web, misalkan dengan mengarahkan user ke malicious websites.

Saran Pencegahan:

Programmer perlu mendapatkan pelatihan bagaimana membuat kode kode yang aman untuk mencegah cross-site scripting, misalkan encoding data dan input validation.

8. Insecure deserialization

 Insecure deserialization flaws dapat menyebab kan attacker mengeksekusi kode pada aplikasi secara remote, menghapus dan mengubah serialized (written to disk) objects, melakukan injection attacks, dan juga memperoleh/meningkatkan privileges.

Saran Pencegahan:

application security tools dapat mendeteksi deserialization flaws namun penetration testing seringkali digunakan untuk memvalidasi sistem.

9. Using Components With Known Vulnerabilities

Developer seringkali tidak mengetahui komponen-komponen open source atau librari pihak ketiga yang digunakan bersama aplikasi yang sedang dibuat. Sehingga berpeluang menggunakan komponen yang mengandung bugs atau vulnerable. Attacker dapat meng-exploit kelemahan ini untuk mencuri data-data sensitive.

Saran Pencegahan:

Secara berkala meng-update komponen dan mengamati informasi komponen. Lakukan software composition analysis dan static analysis untuk mendeteksi komponen yang tidak secure.

10. Insufficient Logging and Monitoring

Aplikasi harus selalu di-monitor dan harus tersedia log-nya. Sehingga jika terjadi insiden dapat segera diantisipasi. Logging dapat dihubungkan dengan aplikasi seperti splunk untuk dianalisa pada saatdibutuhkan. Insufficient logging dan ineffective integration dengan security incident response systems dapat membuka peluang bagi attacker untuk melakukan serangan secara terus-menerus tanpa diketahui.
Saran Pencegahan:

Melakukan evaluasi untuk analisa log-log dan melakukan monitoring secara berkala pada aplikasi web dan juga sistem.

Berbagai rekomendasi ala OWASP berikut ini semoga dapat membantu untuk mengatasi berbagai serangan pada aplikasi web.

  1. Men-develop Secure Code
    a) Ikuti petunjuk best practice OWASP’s Guide to Building Secure WebApplications yang dapat diakses dari halaman ini:
  2. https://www.owasp.org/index.php/Guide
  3. https://www.owasp.org/index.php/Cheat Sheets

b) Gunakan OWASP’s Application Security Verification Standard sebagai panduan umum bagaimana mengamankan aplikasi.

  • https://www.owasp.org/index.php/ASVS

c) Gunakan komponen-komponen yang mengikuti standard security. d) Gunakan OWASP’s ESAPI untuk membantu mengidentifikasi standard security components yang dibutuhkan

  • https://www.owasp.org/index.php/ESAPI
  1. Me-review Aplikasi
    a) Memiliki tim ahli untuk me-review aplikasi

b) Me-review sendiri menggunakan OWASP Guidelines berikut ini:

  • OWASP Code  Review Guide

https://www.owasp.org/index.php/Code Review Guide

  • OWASP Testing Guide:

https://www.owasp.org/index.php/Testing Guide

Menggunakan Zap

kali Linux sudah menyediakan beberapa tools untuk mendeteksi dan menganalisa celah security pada aplikasi web. Salah satunya adalah owasp zap.

Untuk keperluan latihan, akan digunakan Metasploitable 2. Sehingga kita perlu mengaktifkan Metasploitable 2 di VirtualBox. Setelah Metasploitable 2 berjalan, silakan melakukan login ke Linux dengan menggunakan login: mfsadmin dan password: msfadmin.

Pastikan konfigurasi network antara Metasploitable 2 dan Kali Linux sudah benar. Keduanya harus saling terhubung via network. Bayangkan saja Metasploitable 2 ini adalah web server yang ada di Internet. Sedangkan Kali Linux adalah komputer yang digunakan oleh attacker.

Untuk menggunakan owasp-zap sebenarnya tidak terlalu sulit. Setelah berada di workspace owasp-zap, ketikkan IP address dari aplikasi web yanghendak “diserang”. Proses analisa dapat berjalan cukup lama. Sehingga kitaperlu bersabar menunggu hasilnya.

Berikut ini contoh screen shoot owasp-zap yang sedang melakukan simulasi attack aplikasi web yang ada di Metasploitable 2






Share ke: