diseªno de alcantarillado sanitarioDescripción completa
Musica Espansa - Galante - SaniFull description
biztalk
Descripción completa
biztalkDescrição completa
sistem dispersiFull description
assesemt for msgsd
Full description
PEDOMAN IPSRSFull description
herramienta para el modelado de amenazasFull description
Descripción: Tograf Security version
Full description
Web Security
herramienta para el modelado de amenazasDescripción completa
try to improve it
cyberFull description
Descrição: Cartilha Segurança Informação
WEB SECURITY PENETRATION TEST Site Target : http://crackme.cenzic.com
Document Properties Title
Security Assessment / Penetration Testing Report
Code Version
CM.CZ 18 - V 1.0
Author
Yulian Sani
Pen-tester
Yulian Sani
Reviewed By Approved By Classification
Web Security Analyst
Version Control Version
Date
Author
V 1.0
24 Feb 2018
Yulian Sani
Desc
1
DAFTAR ISI COVER ............................................ ................................................................... ............................................ ........................................... ............................ ...... 1 DAFTAR ISI ........................................... ................................................................. ........................................... .......................................... ..................... 2 DAFTAR GAMBAR ........................................ .............................................................. ............................................ ................................ .......... 3 I. INTRODUCTION ............................ ................................................. ........................................... ........................................... ..................... 4 1.1. Ringkasan ......................................... ............................................................... ............................................ ................................ .......... 4 1.2. Ruang Lingkup ......................................... ............................................................... ........................................... ........................ ... 4 1.3. Timeline ............................................ ................................................................... ............................................ ............................... .......... 4 II. LANDASAN TEORI .......................................... ............................................................... ........................................... ......................... ... 5 2.1. Metodologi ........................................ .............................................................. ............................................ ................................ .......... 5 2.2. Security Goals ........................................... ................................................................. ........................................... ........................ ... 7 III. PEMBAHASAN ......................................... ............................................................... ............................................ ................................ .......... 8 3.1. Perencanaan Perencanaan (Planning) ........................................... .................................................................. ............................ ..... 8 3.1.1. Footprinting ................................................................................. 8 a) Netcraft.com .................................................. ........................................................................ ................................... ............. 8 b) htbridge.com/ssl .......................................... ................................................................ ....................................... ................. 9 3.1.2. Scanning ......................................... ............................................................... ........................................... ........................ ... 11 a) Network Scanning .......................................... ................................................................ ................................... ............. 11 b) Web Scanning .................................................... ......................................................................... ............................... .......... 13 1. High Level Threat .......................................... ............................................................... ............................... .......... 15 2. Medium Level Threat ........................................... ................................................................. ........................ .. 17 3. Low Level Threat .......................................... ............................................................... ............................... .......... 19 3.2. Exploitation .......................................... ................................................................ ............................................ ............................ ...... 20 a. Pengujian Blackbox ............................................ .................................................................. ............................... ......... 21 1. Pengujian Karakter String ........................................... ............................................................ ................. 21 2. Pengujian SQL Injection ......................................... .............................................................. ..................... 22 3. Pengujian Cross Site Scripting ........................................... ..................................................... .......... 22 b. Injection menggunakan SQL Map .......................................... .................................................... .......... 24 III. ANALISA SISTEM ............................................ .................................................................. ........................................... ........................ ... 27 IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM ............................ ............................ 29 REFERENSI ........................................... ................................................................. ........................................... .......................................... ..................... 37
2
DAFTAR GAMBAR Gambar 2.1. : Tahapan Aktifitas CEH .......................................................... .................................................................... .......... 5 Gambar 2.2. : Tahapan Aktifitas Security Asessment .......................................... ............................................ .. 6 Gambar 3.1. : Netcraft Monitoring .......................................... ............................................................... ............................... .......... 9 Gambar 3.2. : Htbridge Monitoring .......................................... ............................................................... ............................... .......... 11
............................................................... ............................ ...... 12 Gambar 3.3. : NMAP (Port Scanning)......................................... .............................................................. ..................... 12 Gambar 3.4. : NMAP Scanning (Firewall) ......................................... ............................................................ ............................... .......... 13 Gambar 3.5. : Acunetix Threat Level ....................................... ....................................................... ............. 14 Gambar 3.6. : Acunetix Information Gathering .......................................... ........................................................ ................. 15 Gambar 3.7. : Acunetix List Threat dan Level ....................................... ............................................. .. 16 Gambar 3.8. : Acunetix High Level Threat dan Link ........................................... ........................................ ............. 17 Gambar 3.9. : Acunetix Medium Level Threat dan Link ........................... ................................................................. ........................ .. 18 Gambar 3.10. : Acunetix Site Stucture ........................................... Gambar 3.10. : Acunetix Low Level Threat dan Link ........................................... ............................................. .. 19 Gambar 3.11. : Acunetix Cookies Vurnerability .......................................... .................................................... .......... 20 Gambar 3.12. : Blackbox Testing di Menu Register ............................................... ............................................... 22 Gambar 3.13. : Konfirmasi Error saat aplikasi menerima ilegal karakter ............... ............... 22 Gambar 3.14. : By Pass Login Menggunakan SQL Injection ................................ ................................ 23 Gambar 3.15. : Kode Error di Aplikasi akibat XSS ................................................ ................................................ 23 Gambar 3.16. : Tampilan XSS dengan dengan Fungsi Fungsi Bold Bold HTML ................................. ................................. 24
.............................. 25 Gambar 3.17. : Tampilan XSS dengan Fungsi Image HTML .............................. ..................................................................... ............................... .......... 26 Gambar 3.18. : NMAP Scanner ................................................ ........................................................... ................. 26 Gambar 3.19. : NMAP Script execution [1] .......................................... ............................................... ...... 26 Gambar 3.20. : Output NMAP Script execution [1] ......................................... ........................................................... ................. 27 Gambar 3.21. : NMAP Script execution [2] .......................................... Gambar 3.22. : Output NMAP Script execution [2] ......................................... ............................................... ...... 27
............................................................... .......... 28 Gambar 4.1. : Konfirmasi Error di Target ..................................................... ............................................ .. 29 Gambar 5.1. : Informasi Request Header di Acunetix .......................................... Gambar 5.2. : Informasi Slow HTTP Dos di Acunetix ......................................... ........................................... .. 30 Gambar 5.3. : Sample Penerapan Htaccess ............................................ ............................................................. ................. 32 Gambar 5.4. : (a) Kolom Input tanggal di aplikasi, (b) ( b) sample datepicker box ....... 33 Gambar 5.5. : Link Address Tanpa SSL .......................................... ............................................................... ........................ ... 33 Gambar 5.6. : Implementasi Enkripsi di MySQL .......................................... .................................................... .......... 34
Sit e ................................. .................................................. ................. 35 Gambar 5.7. : Informasi Error yang tampil di Site .................................................................... ........................ .. 36 Gambar 5.8. : Penerapan CAPTCHA .............................................. .............................................. .................................... ............. 36 Gambar 5.9. : Kode Authentifikasi via SMS .......................
3
I. INTRODUCTION 1.1.
Latar Belakang
Dokumen ini menjelaskan penilaian keamanan ( security assessment ) yang dilakukan dengan melakukan pengujian penetrasi ( penetration test ) secara eksternal terhadap situs http://crackme.cenzic.com. Tujuan dari pengkajian ini adalah untuk menemukan kerentanan
keamanan
potensial
pada
aplikasi,
yang
memungkinkan
dapat
disalahgunakan oleh pihak yang tidak berwenang, misalnya hacker atau cracker .
1.2.
Ruang Lingkup
Pengujian penetrasi dilakukan melalui jarak jauh atau menggunakan saluran internet (secara online) terhadap target situs http://crackme.cenzic.com. Skenario awal untuk security assessment ini hanya diketahui alamat web situs target, sehingga informasi lainnya yang tersedia selanjutnya diperoleh dari tahapan Security Assessment .
1.3.
Timeline
Lamanya waktu untuk tahapan penetrasi test ini adalah sebagai berikut : Kode Doc.
:
CM.CZ 18 - V 1.0
Start Time
:
Jumat, 23 Februari Jam 18.00
End Time
:
Minggu, 25 Februari Jam 23.00
4
II. LANDASAN TEORI 2.1.
Metodologi
Menurut konsep sertifikasi CEH terdapat 5 tahapan yang digunakan untuk melakukan pengujian penetrasi yaitu :
Gambar 2.1. : Tahapan Aktifitas CEH 1. Reconnaissance
Reconnaissance adalah suatu tahap persiapan dimana pengujian dilakukan dengan mencari dan menemukan informasi sebanyak-banyaknya mengenai target atau sasaran sistem yang akan diserang, sebelum rangkaian proses penyerangan dilaksanakan. 2. Scanning
Scanning bertujuan untuk mencari celah yang memungkinkan attacker dapat digunakan menemukan kelemahanan sistem dan aplikasi. Teknik Scanning dilakukan dengan menggunakan tools yang tersedia. Jika Proses scanning berhasil maka attacker akan mendapatkan informasi mengenai kelemahanan sistem, yang selanjutnya akan dapat digunakan sebagai masukkan untuk memasuki atau menyusupi sistem. 3. Gaining Access
Gaining Access adalah tahapan menyerang komputer atau sistem untuk menguasainya. Tahapan ini merupakan tahapan penerobosan ( penetration) setelah berhasil mengetahui kelemahan yang ada pada komputer atau sistem korban melalui tahapan scanning. Tahapan ini tidak selalu menggunakan tools atau alat yang canggih, karena attacker bisa saja memanfaatkan kelemahan input biasa yang tersedia pada aplikasi.
5
4. Maintaining Acces
Tahap ini adalah suatu taapan dimana setelah attacker yang telah berhasil memasuki sistem, dimana attacker tersebut berusaha untuk tetap bertahan memperoleh hak akses sistem tersebut. Pada pengujian ini dilakukan untuk mencari celah, dimana selanjutnya attacker dapat mempertahankan aksesnya terhadap sistem. 5. Covering Tracks
Covering Track merupakan tahapan untuk menghilangkan jejak atau bukti ketika sistem telah disusupi, dirusak atau diambil alih oleh attacker . Pengujian ini dilakukan terhadap beberapa sisi sistem untuk mencari celah keamanan, dimana memungkinkan attacker akan mampu menghilangkan jejak
Pengujian penetrasi ( penetration test ) dilakukan untuk mencari dan menemukan celah kelemahan (vurnerability) pada sistem yang seringkali sisi keamanannya kurang mendapat perhatian atau terlewati oleh pengembang sistem. Untuk tahapan pengujian penetrasi http://crackme.cenzic.com ini dikembangkan dengan mengacu terhadap anatomi cara hacking bekerja yang dijelaskan sebelumnya. Adapun langkah-langkahnya adalah sebagai berikut : Start
Scanning Network Scanning (NMAP) Web Scanning (Acunetix
Exploitation
Vurnerability
Blackbox SQL Map
Summary
Rekomendasi Perbaikan
End
Gambar 2.2. : Tahapan Aktifitas Security Asessment
6
Berdasarkan flow diatas, tahapan pertama yang dilakukan adalah merencanakan aktifitas ( planning ) sebelum melakukan pengujian ke situs target. Sebelum melakukan pengujian, dilakukan pengumpulan informasi yang berhubungan dengan target. Tahapan ini terdiri footprinting dan scanning terhadap jaringan dan struktur aplikasi web. Setelah didapatkan vurnerability sistem dan kemungkinan threat yang dapat dilakukan dari proses scanning, exploitasi dilakukan menggunakan SQL Map dan metodologi black box. Berdasarkan hasil exploitasi tersebut akan dilakukan summary dan pada akhirnya diberikan rekomendasi perbaikan agar kerentanan di sistem dapat diperbaiki. 2.2.
Security Goals
Pendefinisian keamanan sistem diperlukan sebagai parameter untuk memastikan bahwa tujuan dari pengujian penetrasi keamanan telah tercapai atau tidak. Berikut ini adalah deskripsi tujuan keamanan yang didefinisikan sesuai dengan kebutuhannya. CODE
DESCRIPTION
G-01
Kerahasiaan (Confidentiality) Data yang bernilai sensitif di sistem terjamin kerahasiaannya. Integritas Data ( Data Integrity) Data yang tersimpan di sistem atau yang bertukar informasi melalui suatu jaringan terjamin keaslian dan kebenarannya. Data tersebut tidak pernah dimodifikasi oleh pihak lain yang tidak berwenang. Ketersediaan ( Availability) Data di sistem akan selalu tersedia saat diperlukan atau di akses. Kontrol Akses ( Access Control ) Sistem menjamin bahwa data yang memiliki nilai informasi penting hanya dapat diakses oleh pihak yang benar. Sistem memberikan jaminan bahwa setiap user memiliki role atau kewenangan dalam mengakses kesesuaian informasi. Kehandalan (Penggunaan Aplikasi) Keamanan harus terkelola secara terstruktur dan terencana, serta tidak menghambat proses bisnis (aktifitas Pemilu) 2. Menghilangkan (meminimalisir) resiko dari aktifitas yang merugikan sistem
G-02
G-03 G-04
G-05
7
III. PEMBAHASAN
3.1.
Perencanaan (Planning)
Tahapan perencanaan awal yang dilakukan bertujuan untuk mengumpulkan segala informasi tentang target sebelum dilakukan pengujian ditahap selanjutnya. 3.1.1. Footprinting
Footprinting dilakukan untuk menggali informasi awal yang bersifat umum dan mencari informasi range jaringan yang digunakan.
a)
Netcraft.com
Netcraft.com adalah sebuah situs untuk melakukan monitoring terhadap website yang ada di internet. Situs ini melakukan analisa terhadap ip address, web server dan sistem operasi yang digunakan.
8
Gambar 3.1. : Netcraft Monitoring
Update Informasi terakhir mengenai http://crackme.cenzic.com diambil pada tanggal 6 Februari 2018. http://crackme.cenzic.com diketahui : Sistem Operasi Server
: Linux Centos 2.2.15
Web Server
: Apache Trustwave Holdings Inc.
IP address Server
: 204.13.201.47
b)
htbridge.com/ssl
Dari situs http://htbridge.com/ssl didapatkan informasi dan penjelasan bahwa situs ini belum menggunakan SSL. Fungsi SSL digunakan sebagai layanan keamanan pada
9
media komunikasi, agar setiap informasi yang bertukar secara online tidak dapat dengan mudah terbaca. Mekanisme SSL adalah untuk menjaga informasi sensitif selama dalam proses pengiriman melalui Internet dengan cara dienkripsi, sehingga hanya penerima pesan yang dapat memahami dari hasil enkripsi tersebut. .
10
Gambar 3.2. : Htbridge Monitoring
3.1.2. Scanning a).
Network Scanning
Nmap ( Network Mapper ) merupakan tools yang berfungsi untuk melakukan port scanning. Aplikasi ini digunakan untuk meng-audit jaringan yang digunakan oleh suatu sistem. Dengan menggunakan tool ini, kita dapat melihat host yang aktif, port yang terbuka, Sistem Operasi yang digunakan, dan feature-feature scanning lainnya.
11
Gambar 3.3. : NMAP (Port Scanning)
dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port yang terbuka diantaranya :
port 80/tcp
: Default Web Server Port
port 53/tcp
: Domain Name Server Port
port 111/tcp
: TCP/UDP Port
port 3306/tcp
: Database Port (MySQL)
port 443/tcp
: Default HTTP Port (dari apache)
port 554
: Default Tracert Route port
Serta perangkat diinformasikan perangkat firewall yang digunakan, yaitu “Fortinate Fortigate 100d Firewall”.
Gambar 3.4. : NMAP Scanning (Firewall)
12
b)
Web Scanning
Web Scanning dilakukan menggunakan Acunetix Web Vulnerability Scanner . Acunetix merupakan tools yang dikembangkan untuk melakukan scanning vulnerabilities suatu website. Alasan penggunaan tools ini yaitu kemampuannya untuk memberikan solusi dari kelemahan yang ditemukan dan mengelola traceability dari setiap vulnerabilities di suatu website. Versi acunetix yang digunakan adalah Acunetix Web Scanner 10.5 (consultant edition) . Setelah proses scanning selesai (completed ), ditemukan sejumlah threat untuk situs http://crackme.cenzic.com. Dikategorikan berdasarkan level-nya ditemukan 34 threat yang berada di high level , 22 di medium level , 26 low level serta 8 di informational level (yang dapat diabaikan).
Adapun detail threat nya seperti di screen dibawah ini :
Gambar 3.5. : Acunetix Threat Level
13
Gambar 3.6. : Acunetix Information Gathering
14
Gambar 3.7. : Acunetix List Threat dan Level
1. High Level Threat
Berdasarkan hasil scanning diinformasikan 3 threat yang berada di level high. Threat yang bearada high level harus dihilangkan karena akan berdampak massive terhadap sistem atau data, seandainya attacker mengeksekusi serangan ini. Adapun 3 threat tersebut yaitu : 3 High Threat adalah Blind SQL Injection, Cross site scripting dan SQL injection. a. Blind SQL Injection (Security Goals - G.01/G.02/G.03)
Merupakan teknik injeksi yang dilakukan tetapi tidak menampilkan pesan error kepada attacker , tetapi mengembalian ke halaman iut sendiri atau menampilkan keseluruhan, sebagian atau tidak menampilkan kontendari web. Jika url dimanipulasi menghasilkan nilai true, maka akan menampilkan konten, tetapi jika tidak url yang dimanipulasi menghasilkan nilai false, maka tidak memproses request dari attacker . b. Cross site scripting (Security Goals - G.01/G.02/G.03) Cross Site Scripting (XSS) adalah kerentanan yang memungkinkan penyerang untuk
15
mengirim kode pemrograman dalam Java Script ke user lain. Sebuah browser tidak dapat mengetahui script mana yang seharusnya diterima atau tidak. untuk mengetahui serangan,maka akan dilakukan eksekusi script context user dan mengakses beberapa cookies atau konfirmasi password dari browser.
c. SQL Injection (Security Goals - G.01/G.02/G.03)
Merupakan teknik untuk mengeksploitasi sebuah aplikasi web memakai data yang diberikan atau disisipkan dalam query SQL. Cara kerjanya adalah dengan memasukkan query SQL atau perintah (command) sebagai input yang dimungkinkan melalui halaman web. Dimana pada halaman web mengambil parameter dari user, lalu membuat query SQL ke dalam database. Salah satunya adalah pada halaman login user, dimana pada halaman web akan membuat query SQL ke database untuk memeriksa username dan password yang tepat.
Gambar 3.8. : Acunetix High Level Threat dan Link
Threat Blind SQL Injection Cross Site Scripting
SQL Injection
Link (Security Hole) crackme.cenzic.com/kelev/register/register.php crackme.cenzic.com/kelev/php/login.php crackme.cenzic.com/kelev/php/login.php crackme.cenzic.com/kelev/register/register.php crackme.cenzic.com/view/updateloanrequest.php crackme.cenzic.com/kelev/register/register.php crackme.cenzic.com/view/updateloanrequest.php
16
2. Medium Level Threat
Gambar 3.9. : Acunetix Medium Level Threat dan Link
Sedangkan untuk Threat Medium Level ditemukan 6 kelompok threat yaitu : a. Apache Httpd Remote Denial of Service (Security Goals - G.03, G.05) DoS attack merupakan serangan yang bertujuan untuk melumpuhkan target (hang, crash) sehingga dia tidak dapat memberikan layanan terhadap user. Dalam hal ini attacker melakukan penyerangan secara langsung ke apache yang merupakan aplikasi web server yang digunakan dalam sistem ini. b. Application Error Message (Security Goals - G.01, G.05) Jika user memberikan input karakter terhadap kolom yang tidak diizinkan oleh aplikasi
(dari
bahasa
pemrogramman)
ataupun
database,
sistem
akan
mengembalikan ke browser dengan menampilan dan memberikan informasi perangkat yang digunakan oleh sistem tersebut. Hal ini akan mengakibatkan attacker mengetahui perangkat apa saja yang terinstall di sistme tersebut. c. Directory Listing (Security Goals - G.01, G.04) Directory Listing adalah fungsi web server yang menampilkan daftar semua file jika tidak ada pengamanan file sepertyi file index atau default yang tersimpan di
17
direktori situs web tertentu. Tidak adanya konfigurasi ini keamanan untuk mengakibatkan attacker dapat dengan mudah memperoleh file (dengan cara mendownload) berdasarkan link directory yang tidak terproteksi.
Gambar 3.10. : Acunetix Site Stucture d. HTML Form without CSRF protection (Security Goals - G.04)
Cross Site Request Forgery adalah salah satu vulnerability pada web Application yang bekerja dengan cara mengeksploitasi perintah web dengan memanfaatkan autentikasi yang dimiliki oleh korban. Pada implementasinya, attacker akan melakukan injeksi terhadap suatu link yang berisi suatu perintah web URL pada halaman tertentu agar diakses oleh korban. CSRF dapat dilakukan dikarenakan suatu halaman web tidak melakukan filtering pada fungsi GET atau POST. e. Slow HTTP Denial of Service Attack (Security Goals - G.03/G.05)
Memiliki kemiripan dengan Apache Httpd Remote Denial of Service yang melakukan penyerangan terhadap web server aplikasi (apache), HTTPD melakukan penyerangan terhadap sistem operasi melalui IP Address yang
18
digunakan oleh sistem. Tujuannya agar sistem operasi menjadi berat dan sulit diakses oleh user, seolah-olah banyak user yang mengakses aplikasi. f.
User credentials are sent in clear text (Security Goals - G.03)
Tidak adanya penyandian misalnya enkripsi pada data yang bertukar melalui jaringan atau data yang tersimpan di database mengakibatkan attacker dapat membaca atau mengetahui dengan mudah, jika data tersebut sudah berhasil didapatkan oleh attacker . Penggunaan pesan yang asli (cleartext ) sangat berpengaruh dengan aspek kerahasiaan data (confidentiality). 3. Low Level Threat
Gambar 3.10. : Acunetix Low Level Threat dan Link
Sedangkan untuk threat yang berada di posisi low level, diantaranya : 1) Clickjacking : X-Frame-Options header missing (Security Goals - G.04, G.05)
Clickjacking merupakan serangan yang bertujuan mencuri data pengguna. Serangan ini mengirimkan perintah yang tidak valid kepada korban, agar korban dapat memberikan informasi rahasia kepada attacker melalui internaksi web yang tidak valid. serangan ini dilakukan attacker dengan menyisipkan suatu link yang salah (milik attacker ), misalnya menggunakan syntax iframe, agar korban mengakses situs yang salah dan mengisi kolom yang salah.
19
2) Cookie without Http Only flag set (Security Goals - G.01, G.05)
Fungsi HTTP Trace yang aktif di web server dapat dimanfaatkan oleh attacker untuk mencuri data penting, seperti cookies atau otentifikasi dengan melalui kerentanan yang tersedia di web browser user.
Gambar 3.11. : Acunetix Cookies Vurnerability 3) Login Page password-guessing attack (Security Goals - G.01, G.05)
Tidak adanya proteksi pada halaman login aplikasi, mengakibatkan attacker dapat mencoba terus menerus secara beruntun dengan menebak akses user, dalam hal ini adalah username dan password. Attacker menggunakan aplikasi brute force atau dictionary attack, untuk memasuki halaman login sistem menggunakan akses user yang didapatkan dengan menebak otentifikasinya.
3.2.
Exploitation
Berdasarkan informasi yang ditemukan melalui proses scanning, tahapan selanjutnya adalah melakukan exploitasi berupa pengujian terhadap vurnerability yang ditemukan. Pengujian perangkat lunak merupakan langkah yang dilakukan untuk menguji kualitas dari suatu aplikasi. Pengujian ini dilakukan untuk memperbaiki kesalahan yang ditemukan pada saat pembangunan aplikasi. Metode pengujian yang digunakan untuk http://crackme.cenzic.com/ adalah Metode Black Box. Pengujian ini berfokus pada persyaratan
fungsional
perangkat
lunak
yang memungkinkan
analisis
sistem
memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan fungsional perangkat lunak.
20
Prioritas dilakukan terhadap 3 threat dengan posisi high level. Secara garis besar posisi vurnerability untuk ke 3 threat tersebut sebagian memiliki lokasi yang sama yaitu :
a) Pengujian Blackbox (Security Goals - G.02/G.04/G.05)
Pengujian SQL Injection ini dilakukan dengan menginputkan tanda „ kepada form login untuk mendapatkan celah keamanan sistem tersebut. 1) Pengujian Karakter String
Gambar 3.12. : Blackbox Testing di Menu Register
Setelah melakukan submit dengan memberikan nilai karakter yang tidak diizinkan oleh aplikasi, target memberikan informasi aplikasi database dan sebagian nama field.
Gambar 3.13. : Konfirmasi Error saat aplikasi menerima ilegal karakter
Dari tampilan tersebut menginformasikan bahwa database yang digunakan adalah MySQL dengan beberapa field seperti password (yang tidak terenkripsi), FirstName, LastName dan Address.
21
2) Pengujian SQL Injection Berdasarkan hasil scanning sebelumnya, diidentifikasi bahwa aplikasi memiliki kerentanan terhadap SQL Injection. Untuk dilakukan pengujian SQL Injection pada halaman login dengan menginjeksikan script SQL Injection yaitu : ' OR '1'='1
Hasilnya setelah diinputkan kode sql injection dan password diisi sembarang, aplikasi secara langsung melakukan login ke aplikasi (bypass login). Hal ini menjelaskan bahwa authentifikasi login user dapat di lewati, hal ini tentunya sangat tidak aman karena pihak yang tidak berwenang dapat mengakses aplikasi, meskipun tidak memiliki akses login.
Gambar 3.14. : By Pass Login Menggunakan SQL Injection
3) Pengujian Cross Site Scripting Setelah melewati dapat melewati proses login menggunakan SQL Injection, selanjutnya dilakukan pengujian Cross Site Scripting (XSS) untuk Link : http://crackme.cenzic.com/kelev/php/accttransaction.php Sample Script yang digunakan adalah sebagai berikut : <script type="text/javascript">
Script tersebut diinputkan di kolom range tanggal. Output dari script tersebut setelah ditampilkan akan menghasilkan error di aplikasi.
Gambar 3.15. : Kode Error di Aplikasi akibat XSS [1]
22
Dengan menganalisa tampilan tersebut serta memodifikasi script dengan fungsi HTML tersebut menjadi : "<script type="text/javascript"> YULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASI. YULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASIYULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASIYULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASIYULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASIYULIAN SANIINI SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASI " Aplikasi akan memproses perintah tersebut dan menampilkannya seperti pada gambar berikut :
Gambar 3.16. : Tampilan XSS dengan Fungsi Bold HTML
Dari pengujian diatas disimpulkan bahwa XSS yang dapat diinjeksikan di aplikasi mendukung fungsi HTML. Dari script sebelumnya dapat dikembangkan lagi menjadi "<script type="text/javascript"> "
23
Gambar 3.17. : Tampilan XSS dengan Fungsi Image HTML
b) Injection Menggunakan SQL MAP (Security Goals - G.01/G.03/G.04)
Dari parameter field yang diperoleh dari tahapan sebelumnya pengujian selanjutnya dilakukan dengan menggunakan tools SQLMAP, untuk mendapatkan data dan informasi yang lebih detail. SQLMAP adalah tools opensource yang mendeteksi dan melakukan exploit pada bug SQL injection secara otomatis. dengan melakukan serangan SQL injection seorang attacker dapat mengambil alih serta memanipulasi sebuah database di dalam sebuah server.
24
Gambar 3.18 : NMAP Scanner
Berdasarkan parameter yang sudah ditemukan, dilakukan scanning terhadap link : crackme.cenzic.com/kelev/view/updateloanrequest.php
Gambar 3.19 : NMAP Script execution [1]
Dari hasil scanning tersebut, didapatkan sejumlah informasi yaitu sistem operasi web server yang digunakan, versi apache, sistem operasi DBMS dan versi DBMS.
Gambar 3.20 : Output NMAP Script execution [1]
Proses selanjutnya melakukan scanning dengan menambahkan perintah – batch – current --db yang berfungsi untuk menemukan database yang tersimpan di sistem tersebut.
25
Gambar 3.21 : NMAP Script execution [2]
dari hasil scanning diperoleh database dengan nama bank.
Gambar 3.22 : Output NMAP Script execution [2]
26
IV. ANALISA SISTEM Berdasarkan tahapan scanning dan exploitasi yang dilakukan sebelumnya, disimpulkan beberapa kesimpulan untuk crackme.cenzic.com saat ini diantaranya : 1. Dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port yang digunakan diantaranya :
port 80/tcp
: Default Web Server Port
port 53/tcp
: Domain Name Server Port
port 111/tcp
: TCP/UDP Port
port 3306/tcp
: Database Port (MySQL)
port 443/tcp
: Default HTTP Port (dari apache)
port 554
: Tracert route
port diatas merupakan port default yang digunakan saat aplikasi terinstall di sistem. Hal ini mengasumsikan belum adanya konfigurasi atau masih digunakan konfigurasi standar dalam settingan web server, aplikasi, database. 2. Saat ini sistem operasi server yang digunakan adalah CentOS Centos versi 2.2.15, sedangkan versi terbaru Centos adalah 7.4-1708. Hal ini menginformasikan bahwa sistem operasi yang digunakan adalah sistem operasi yang belum dipatch atau update. 3. Berdasarkan proses exploit menggunakan SQL MAP didapatkan versi apache yaitu 2.4.29, sedangkan versi Apache terbaru adalah 7.12. hal ini juga menginformasikan bawah versi web server yang digunakan belum dipatch atau update. 4. Berdasarkan Acunetix Scanning didapatkan beberapa kategori threat diantaranya :
34 threat yang berada di high level
22 di medium level
26 low level
8 di informational level
Dari 34 kelompok threat ini didominasi oleh serangan SQL Injection, Cross Site Scripting (XSS Atack) dan Blind SQL Injection. Hal ini mengindikasikan bahwa pengembangan secure code kurang diperhatikan dalam pengembangan aplikasi.
27
Input pada aplikasi masih menerima sejumlah karakter yang seharusnya tidak diizinkan oleh aplikasi.
3. Berdasarkan proses footprinting dan
exploit ,
penggunaan
enkripsi
belum
sepenuhnya diterapkan pada sistem. Hal ini disimpulkan dari password tampil (Field Password) yang yang ditampilkan jika aplikasi mengalami error.
Gambar 4.1. : Konfirmasi Error di Target
Selain itu SSL pada aplikasi belum diterapkan. Hal ini berdampak bahwa pertukaran data melalui jaringan masih memungkinkan disadap (sniffing) beberapa perangkat tools (misalnya wireshark atau chainable).
28
IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM Berdasarkan analisa dan temuan melalui tahapan penetration test, direkomendasikan beberapa usulan perbaikan sistem yaitu : 1. Merubah default port di Apache dan Database
Berdasarkan informasi yang ditemukan pada tahap scanning, port yang digunakan untuk konfigurasi apache adalah port 80. Port 80 adalah port umum yang biasa digunakan oleh aplikasi web. Rekomendasi untuk mengubah port bertujuan untuk menghindari scanning atau exploitasi dari tools attacker yang langsung menyerang port 80.
Gambar 5.1. : Informasi Request Header di Acunetix
Selain itu port default untuk MySQL adalah 3306. Port ini direkomendasikan untuk dirubah, karena dengan mengetahui nilai port 3306 attacker dapat langsung berasumsi bahwa database yang digunakan adalah MySQL. 2. Patch Sistem Operasi Server
Berdasarkan situs resmi-nya https://www.centos.org/ , sistem operasi Linux Centos versi terbaru adalah Centos 7.4-1708. Sedangkan Sistem Operasi yang digunakan untuk crackme.cenzic.com adalah Centos versi 2.2.15. Patch Sistem Operasi direkomendasikan untuk dilakukan secara berkala untuk menutup celah keamanan ( security hole), adanya bugs, update penambahan fitur serta memperbaiki performance yang belum tersedia di versi sistem operasi yang lama. 3. Upgrade Web Server
Salah satu vurnerability yang ditemukan melalui proses scanning, adalah pada web server (memungkinkan untuk diserang oleh Dos Attack dikarenakan web server
29
masih menggunakan versi lama). Serangan DoS adalah jenis serangan terhadap sebuah komputer atau server di dalam jaringan internet dengan cara menghabiskan sumber (resource) yang dimiliki oleh komputer tersebut sampai komputer tersebut tidak dapat menjalankan fungsinya dengan benar sehingga secara tidak langsung mencegah pengguna lain untuk memperoleh akses layanan dari komputer yang diserang tersebut. Untuk menghidari DOS Attack, selain melakukan patch pada sistem operasi, perlu dilakukan patch atau update terhadap Apache (yang merupakan aplikasi web server). Dari situs resminya https://httpd.apache.org/, versi terbaru apache saat ini adalah Apache httpd 2.4.29 .
Gambar 5.2. : Informasi Slow HTTP Dos di Acunetix 4. Melakukan Review dan Secure Code terhadap Aplikasi
Untuk meminimalkan ancaman dan serangan, pengembang aplikasi (Programmer) harus menerapkan langkah keamanan implementasi dan mengetahui kemungkinan hal-hal yang tidak diharapkan (ancaman) pada saat program dijalankan. Berikut ini adalah rekomendasi yang dapat digunakan dalam tahapan implementasi, untuk mengidentifikasi atau menghindari celah keamanan terhadap suatu aplikasi berbasis web. a) Membatasi Karakter ( sanitize filters )
Tujuan membatasi karakter-karakter tertentu bertujuan untuk mengantisipasi pihak pihak yang tidak berwenang untuk menyisipkan karakter yang berbahaya (injection
30
code). Konsep ini terbilang relatif dasar dan mudah, tetapi seringkali terlupakan oleh para pengembang sistem. Dengan membatasi karakter, dapat mencegah ancaman SQL injection, Blind SQL dan Cross-site Scripting. Contoh :
addslashes :
Fungsi ini akan melakukan block terhadap masukkan karakter berupa tanda kutip („) dan menggantinya dengan karakter garis miring (/).
str_ replace
:
Fungsi untuk me-replace karakter
b) Menggunakan Fungsi htmlspecialchars()
Untuk mencegah terjadinya teknik hacking cross-site scripting xss atau javascript injection pencegahannya dapat dilakukan menambahkan fungsi htmlspecialchars() . Hal ini akan membuat perintah html maupun javascript memiliki terproses sebagai data string sehingga tidak akan dieksekusi oleh browser. Contoh : htmlspecialchars($_POST['address']) c) Membatasi Jumlah Karakter ( maxlength)
Pembatasan jumlah karakter dalam media input sangat penting, hal ini dilakukan untuk mencegah attacker melakukan injeksi dengan menginputkan sejumlah script seperti HTML atau javascript pada suatu textbox. Contoh : d) Variasi penamaan variabel Karakter pada input
Dengan melakukan variasi penamaan variabel pada listing code aplikasi dapat mempersulit kinerja dari beberapa tools yang digunakan oleh attacker untuk menyerang dan menemukan kelemahan sistem. Variasi penamaan variabel karakter ini sebagai solusi yang dapat memperlambat serangan serangan Brute Force Attack atau Dictionary Attack. Contoh :
31
e) Mengkonfigurasi .htaccess
Konfigurasi Htaccess dilakukan untuk menyembunyikan menyembunyikan file “index.php” atau direktori lainnya dari URL . Htaccess seringkali digunakan terhadap website yang memiliki struktur direktori yang banyak. Dengan menerapkan htaccess maka direktori-direktori atau variabel yang muncul pada address bar browser akan disembunyikan. Hal dilakukan untuk meminimalisir attacker untuk mendapatkan struktur direktori, variabel yang selanjutnya dapat digunakan untuk menemukan celah keamanan sistem lainnya.
Gambar 5.3. : Sample Penerapan Htaccess
Beberapa manfaat lainnya yang dapat dilakukan dengan mengkonfigurasi file .htaccess, diantaranya adalah sebagai berikut : 1. Mencegah attacker nmelakukan akses terhadap direktori 2. Me- Redirect attacker dari suatu halaman atau folder ke halaman atau folder lain 3. Memberikan proteksi pengamanan (misalnya password) pada direktori 4. Merubah default halaman index pada folde tertentu f). Session dan Cookies timeout
Penggunaan timeout pada session atau cookies terutama untuk otentifikasi login. Session merupakan penanda dari sisi server dan akan hilang secara otomatis jika browser ditutup, sedangkan cookies adalah pengenalan dari sisi browser dan bila tidak diset timeout maka status akan selalu login (pada pengenalan login). Cookies akan menjadi ancaman ketika user yang telah selesai menggunakan sistem tidak melakukan logout dan meninggalkan komputer dalam keadaan menyala. Orang yang tidak bertanggung jawab dapat menggunakan komputer yang digunakan oleh user sebelumnya dan mengakses aplikasi yang sama dengan akses yang bukan hak aksesnya.
32
5. Perbaikan pada Kolom Input
Perbaikan di beberapa kolom input dilakukan guna meminimalisir kesalahan input oleh user. Kesalahan bisa saja disalahgunakan oleh hacker. Sebagai contoh temuan di beberapa kolom, misalnya pada tanggal lahir di menu registrasi user. Kolom tersebut direkomendasikan untuk diganti menggunakan datepicker agar input user bernilai valid. Jika kolom tanggal lahir berupa textbox atau freetext seperti sebelumnya terjadinya kesalahan input user akan lebih besar dibandingkan menggunakan datepicker yang format tanggalnya sudah diatur oleh aplikasi. (Misalnya user mengisi tanggal 31 Februari, tetapi tanggal tersebut tidak pernah ada).
(a)
(b)
Gambar 5.4. : (a) Kolom Input tanggal di aplikasi, (b) sample datepicker box 6. Melengkapi web dengan SSL (Secure Socket Layer) / HTTPS
Saat ini web http://crackme.cenzic.com/kelev/ belum dilengkapi dengan SSL sehingga pertukaran data melalui jaringan internet tidak terproteksi. Hal ini mengakibatkan memungkinkan attacker dapat melakukan penyadapan (sniffing) misalnya menggunakan tools wireshark atau chainable.
Gambar 5.5. : Link Address Tanpa SSL
Dengan menggunakan SSL informasi sensitif selama dalam proses pengiriman melalui Internet akan dienkripsi, sehingga hanya penerima pesan yang dapat
33
memahami dari hasil enkripsi tersebut. Hal ini sangat penting, karena informasi yang kita kirimkan di Internet membutuhkan proses perjalanan dari komputer ke komputer sampai mencapai server tujuan. Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh siapapun kecuali ke server yang memang dituju saat mengirim informasi tersebut. Hal ini melindungi informasi tersebut dari hackers dan pencuri identitas. 7. Penggunaan Enkripsi
Sebagian data yang disubmit belum menggunakan enkripsi. Misalnya untuk data yang bersifat rahasia seperti username atau password . Dari hasil pengumpulan data sebelumnya database yang digunakan adalah MySQL Server. MySQL menyediakan enkripsi data seperti MD5, SHA, Password atau menggabungkan algoritma yang sudah tersedia. Misalnya contoh berikut user menggunakan p4ssw0rd2008 sebagai password loginnya dan dilakukan enkripsi menggunakan algoritma hash sesuai algoritma tersedia di MySQL.
Gambar 5.6. : Implementasi Enkripsi di MySQL 8. Menyembunyikan Error Aplikasi
Di beberapa page yang menyediakan textbox sebagai media input, jika user memberikan input text yang tidak dapat diproses aplikasi atau database, maka prosesnya akan mengembalikan ke browser dengan menampilkan error dan memberikan sejumlah informasi yang cukup penting. Rekomendasi untuk
34
menyembunyikan error ini sebagai tindakan untuk meminimalisir informasi perangkat sistem yang digunakan. Sebagai contoh pada menu registrasi, saat setelah disubmit dengan input menggunakan perintah blind injection aplikasi menampilkan error “Cannot query the database. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
…. “ .
Gambar 5.7. : Informasi Error yang tampil di Site
Dari keterangan tersebut, diinformasikan bahwa database yang digunakan oleh http://crackme.cenzic.com adalah MySQL. Dengan menginformasikan database yang digunakan hacker dapat mencari kelemahan MySQL sebagai langkah untuk menyerang aplikasi. 9. Menambahkan Captcha
Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart ) adalah sejenis konfirmasi challenge-respons untuk memastikan bahwa respon yang dihasilkan hanya boleh dibuat oleh manusia dan bukannya komputer. Dengan arti kata lain, CAPTCHA adalah pengesahan kata ujian yang dimasukkan dari suatu bentuk sign-up. Rekomendasi
(http://crackme.cenzic.com/kelev/php/login.php), untuk menghindari registrasi yang dilakukan oleh BOT serta menghindari dictionary atau brute force attack saat login.
35
Gambar 5.8. : Penerapan CAPTCHA
10. Konfirmasi Registrasi Via Email atau Kode Aktivasi SMS
Di era teknologi informasi yang semakin berkembang pesat saat ini, salah satu keuntungan penggunaan alat Teknologi informasi saat ini adalah kemudahannya dalam integrasi antara suatu perangkat dengan perangkat lainnya. Untuk menghindari penggunaan akses oleh pihak yang tidak berwenang, saat registrasi user dapat diintegrasikan dengan email pribadi atau nomor handphone user tersebut. User harus menginputkan kode yang diterima oleh handphonenya. Hal ini bertujuan untuk memudahkan penelusuran terhadap pengguna sistem, bahwa pengguna sistem adalah user yang benar-benar valid.
Dengan memanfaatkan kode konfirmasi via SMS, maka dapat memimalisir penyalahan gunaan sistem oleh pihak yang tidak bertanggung jawab, karena setiap user yang telah teregistrasi telah memberikan nomor kontaknya.