BAB IV IMPLEMENTASI DAN PEMBAHASAN 4.1 Implementasi dan Uji Coba Aplikasi 4.1.1 Implementasi Tahap implementasi merupakan prosedur yang harus dilakukan untuk menyelesaikan desain aplikasi yang ada dalam rancangan yang tertera pada BAB III. Aplikasi dibuat dengan bahasa pemrograman Python dengan cuplikan skrip program sebagai berikut : a) Import Python Library Implementasi dari perancangan aplikasi pada Gambar 3.3 dapat dilihat sebagai berikut : 1 try: 2 from ConfigParser import ConfigParser 3 import optparse, csv, re 4 import nmap, wget 5 except ImportError: 6 print '[]Python error, some library cannot imported.' 7 print '| pvascan importing library : ' 8 print '| pythonnmap, wget, csv, re, platform' 9 print '| ConfigParser, optparse' 10 print '|__ Try to: pip install
\n' 11 exit(0)
Cuplikan dari potongan skrip program (baris 2-4) proses pada aplikasi untuk pemanggilan python library yang akan digunakan oleh aplikasi. Progrma (baris 6-11) proses yang akan dilakukan jika library gagal dipanggil, dan aplikasi akan terhenti.
23
24 b) Pengecekan File Konfigurasi Implementasi dari perancangan aplikasi pada Gambar 3.4 dapat dilihat sebagai berikut : 12 13 14 15 16 17 18 19
global dbfile config = ConfigParser() try: config.read(cnfile) dbfile = config.get('Configuration', 'database') except: print '[]Missing configuration file,' print '|__ Please set configuration file \''+cnfile+'\'\n' 20 exit(0)
on
Cuplikan dari potongan skrip program (baris 15-16) proses pembacaan file konfigurasi, yang mana hasil pembacaan lokasi file database dari konfigurasi akan diletakkan ke dalam variabel dbfile. Program (baris 18-20) proses menampilkan pesan error jika file konfigurasi tidak terbaca. c) Pengecekan Vulnerability Database Implementasi dari perancangan aplikasi pada Gambar 3.5 dapat dilihat sebagai berikut : 21 try: 22 db = csv.DictReader(open(dbfile)) 23 return db 24 except: 25 print '[]Vulnerability database is not selected.' 26 print '[+]Downloading database file' 27 getdb()
Cuplikan dari potongan skrip program (baris 22) proses pembacaan file database yang hasil pembacaannya diletakkan ke dalam variabel db.
25 Program (baris 27) proses yang dilakukan jika file database tidak ditemukan, dan aplikasi akan mengunduh file database secara otomatis. d) Proses Port Scanner Implementasi dari perancangan aplikasi pada Gambar 3.6 dapat dilihat sebagai berikut : 28 29 30 31 32 33 34 35 36 37
global reslcan print 'Scanning for host '+host try: nm = nmap.PortScanner() reslcan = nm.scan(hosts=host, arguments=argu) except: print '[]Error!!! Somethings wrong,' print '| (network trouble / nmap problem)' print '|__ Please try \'./pvascan.py h\'\n' exit(0)
Cuplikan dari potongan skrip program (baris 31-32) proses pemanggilan fungsi nmap untuk melakukan scanning port pada sebuah sistem operasi, yang hasil pencariannya akan dimasukkan kedalam variabel reslcan. e) Proses Vulnerability Scanner Implementasi dari perancangan aplikasi pada Gambar 3.7 dilihat sebagai berikut : 38 39 40 41 42 43 44 45
db = loadb() found = 0 desc = {} url = {} if len(banner)>3: s = re.compile(banner, re.IGNORECASE) for row in db: c = s.findall(row['description'])
dapat
26 46 if c: 47 found+=1 48 desc[found] = row['description'] 49 url[found] = row['id'] 50 51 if found: 52 print '| VULNERABLE DETECTED!' 53 print '| Description : ' 54 for x in desc.keys(): 55 print '| ',x,''+desc[x] 56 print '| | For more information please visit url below' 57 print '| |_ https://www.exploit db.com/exploits/'+url[x]+'/' 58 print '|',found,'exploits found,' 59 print '|__ Please contact the aplication\'s vendor to patch the vulnerable\n'
Cuplikan dari potongan skrip program (baris 43-45) proses pengidentifikasian kerentanan. Program (baris 46-49) proses yang dilakukan jika kerentanan teridentifikasi, pengambilan informasi tentang kerentanan dan menempatkannya kedalam beberapa variabel array (yaitu : desc[], dan url[]). Program (baris 52-59) proses penampilan informasi tentang kerentanan yang teridentifikasi. 4.1.2 Hasil Uji Coba Penelitian Uji coba penelitian dilakukan dengan menggunakan perangkat keras serta perangkat lunak seperti yang tertera di dalam keterangan peralatan pada BAB III, dengan sasaran target yang diuji adalah sistem operasi Windows dan sistem operasi Linux. Berikut adalah hasil dari ujicoba aplikasi yang dibangun pada penelitian ini :
27 a) Target Sistem Operasi Windows Pengujian
dilakukan
dari
komputer
penguji
dengan
target
pengujiannya adalah sistem operasi Windows.
Gambar 4.1 Target Sistem Operasi Windows Gambar 4.1 dapat dijelaskan sebagai berikut : Pengujian dilakukan pada tanggal 25 November 2015 (dari komputer Linux 4.1.8-parrot-amd64) dengan target pengujian host (192.168.56.101). Target terdeteksi menggunakan sistem operasi Windows 2000 dengan akurasi pendeteksian yang dilakukan oleh nmap adalah 95%. Target memiliki 4 port yang terbuka, yaitu port 445 dengan servis microsoft-ds, port 139 dengan servis netbios-ssn, port 21 dengan servis ftp, dan port 135 dengan servis msrpc. Dari 4 servis tersebut, servis ftp dengan aplikasi WARFTPD versi 1.65 terdeteksi memiliki kerentanan dengan 3 eksploit yang
28 ditemukan di Exploit-DB. Salah satu keterangan tentang eksploit yang ditemukan tersebut adalah “Username Overflow”, dan lokasi dari eksploit tersebut terdapat di url “https://www.exploit-db.com/exploits/16724/”. b) Target Sistem Operasi Linux Pengujian
dilakukan
dari
komputer
penguji
dengan
target
pengujiannya adalah sistem operasi Linux. Dengan hasil pengujiannya seperti Gambar 4.2.
Gambar 4.2 Target Sistem Operasi Linux
29 4.2 Pembahasan Dari hasil uji coba aplikasi, dapat diketahui bahwa aplikasi yang dibangun pada penelitian ini mampu berjalan dengan baik pada komputer pengujian. Aplikasi dibuat dengan bahasa pemrograman Python, dan mampu melakukan pengidentifikasian kerentanan, sehingga aplikasi ini dinamakan dengan PVASCAN (python vulnerability scanner). 4.2.1 Peran Aplikasi Pada Audit Kemananan Informasi Aplikasi dapat melakukan pengidentifikasian kerentanan pada servis yang berjalan dalam sistem operasi (target pengujian). Berdasarkan pada Gambar 3.1, pengindentifikasian kerentanan merupakan tahapan awal yang dilakukan dari siklus vulnerability management. Vulnerability management sendiri merupakan salah satu pokok yang dibahas pada audit keamanan informasi berdasarkan ISO 27001 yaitu pada A.12.6, dengan sasaran utama dari pokok tersebut adalah seperti yang tertera pada Tabel 2.2. Aplikasi menampilkan url Exploit-DB untuk eksploitasi dari servis yang teridentifikasi memiliki kerentanan. Kode eksploit yang terdapat pada url Exploit-DB tersebut dapat diunduh dan dieksekusi sebagai tahap lanjutan pada siklus vulnerability management, yaitu pada tahap pengklasifikasian kerentanan. Pengklasifikasian kerentanan adalah tahap pengelompokkan tingkat ancaman yang dapat ditimbulkan dari kerentanan yang ditemukan. Bukan hanya dampak yang ditimbulkan akibat dari pengeksekuian kode eksploit dari Exploit-DB saja yang dapat menentukan hasil pengklasifikasian
30 kerentanan, tetapi ada perhitungan lain (seperti : kemudahan penggunaan exploit, kemudahan mendapatkan exploit, tingkat keberhasilan exploit) yang terdapat dalam rumus CVSS (Common Vulnerability Scoring System) yang harus diikut-sertakan dalam perhitungan tingkat ancaman dari kerentanan yang ditemukan. 4.2.2 Hal Yang Mempengaruhi Pendeteksian Aplikasi Beberapa hal yang dapat mempengaruhi hasil dari pengidentifikasian kerentanan yang dilakukan oleh aplikasi, diantaranya sebagai berikut : •
Banner servis yang didapatkan oleh aplikasi Aplikasi pengidentifikasian
menggunakan servis
banner
sebagai
kata
yang kunci
didapatkan
dari
pencarian
pada
vulnerability database, sehingga apapun banner yang didapatkan dari pengidentifikasian servis (baik salah ataupun benar) tetap akan dijadikan kata kunci pencarian. •
Data kerentanan yang terdapat di vulnerability database Aplikasi menggunakan Exploit-DB vulnerability database untuk
pengidentifikasian
pengidentifikasian
kerentanan,
kerentanannya
hanya
sehingga bergantung
kerentanan yang ada di dalam vulnerability database.
hasil
dari
dari
data