PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan...

167
PERANCANGAN DAN IMPLEMENTASI SISTEM DATABASE MALWARE TESIS Karya tulis sebagai salah satu syarat untuk memperoleh gelar Magister dari Institut Teknologi Bandung Oleh RELA ANNISA CAMILIA MARHUN NIM: 23218011 (Program Studi Magister Teknik Elektro) INSTITUT TEKNOLOGI BANDUNG Juni 2020

Transcript of PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan...

Page 1: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

PERANCANGAN DAN IMPLEMENTASI

SISTEM DATABASE MALWARE

TESIS

Karya tulis sebagai salah satu syarat

untuk memperoleh gelar Magister dari

Institut Teknologi Bandung

Oleh

RELA ANNISA CAMILIA MARHUN

NIM: 23218011

(Program Studi Magister Teknik Elektro)

INSTITUT TEKNOLOGI BANDUNG

Juni 2020

Page 2: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

i

ABSTRAK

PERANCANGAN DAN IMPLEMENTASI

SISTEM DATABASE MALWARE

Oleh

Rela Annisa Camilia Marhun

NIM: 23218011

(Program Studi Magister Teknik Elektro)

Berkembangnya teknologi memicu terciptanya malware baru, tanpa terkecuali di

Indonesia. Para attacker memanipulasi signature dari malware yang ada untuk

mengelabui antivirus. Malware baru ini kemungkinan besar hanya terdapat di

Indonesia saja (malware lokal), sehingga antivirus sulit untuk mendeteksi malware

lokal tersebut. Oleh karena itu, diperlukan pemutakhiran terhadap aplikasi

pendeteksi malware dan pengembangan penelitian terkait malware. Saat ini,

Indonesia belum memiliki sistem yang dapat mendukung proses penelitian

malware. Analisis malware pun hanya dilakukan untuk kebutuhan operasional saja

dan hampir tidak ada dokumentasi mengenai proses dan hasil analisa malware.

Oleh sebab itu, Indonesia membutuhkan suatu sistem yang dapat digunakan tidak

hanya untuk operasional, namun juga untuk kebutuhan penelitian. Sistem tersebut

harus dapat menyimpan dan mengelola sampel malware, mendokumenkan hasil

analisa dan informasi lainnya, yang selanjutnya digunakan untuk proses deteksi dan

penanganan serangan malware. Pada penelitian ini telah dirancang dan

diimplementasikan suatu Sistem Database Malware. Sistem ini dapat menyimpan

dan mengoleksi berbagai jenis malware beserta informasi terkait seperti metadata,

analisa statik, cara penanganan serta keterangan detail lain yang mendukung proses

penelitian. Signature malware yang terdapat dalam database digunakan untuk

proses deteksi malware. Sistem ini juga menyediakan fitur bagi pengguna untuk

dapat melaporkan dan mengirimkan jenis malware baru. Sistem ini

diimplementasikan dalam bentuk prototipe dan diuji terhadap fungsionalitas,

kinerja, dan keamanan. Diharapkan sistem database malware ini dapat membantu

para peneliti dan analis baik untuk operasional maupun proses penelitian malware.

Kata kunci: database, malware, deteksi, signature, antivirus

Page 3: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

ii

ABSTRACT

DESIGN AND IMPLEMENTATION OF

MALWARE DATABASE SYSTEM

By

Rela Annisa Camilia Marhun

NIM: 23218011

(Master’s Program in Electrical Engineering)

The development of technology triggers the creation of new malware, Indonesia is

included. Attackers manipulate the signatures of existing malware to trick

antiviruses. This new malware is mostly found in Indonesia (local malware), so

antiviruses difficult to detect the local malware. Therefore, updating the malware

detection application and developing malware research are needed. Currently,

Indonesia does not have a system that can support the malware research. Malware

analysis is only for operational and almost no documentation regarding the process

and results of malware analysis. So, Indonesia needs a system that can be used not

only for operations, but also for research needs. The system must be able to store

and manage malware samples, document analysis results and other information,

which are then used for the detection and handling of malware attacks. In this

research, a Malware Database System has been designed and implemented. This

system can store and collect various types of malware along with related

information such as metadata, static analysis, handling methods and other detailed

information that supports the research process. The malware signature contained

in the database is used for the malware detection process. This system also provides

features for users to be able to report and send new types of malware. This system

is implemented in the form of a prototype and tested on the functionality,

performance, and security. We expect that this malware database system can help

researchers and analysts both for operational and malware research.

Keywords: database, malware, detection, signature, antivirus

Page 4: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

iii

PERANCANGAN DAN IMPLEMENTASI

SISTEM DATABASE MALWARE

HALAMAN PENGESAHAN Oleh

Rela Annisa Camilia Marhun

NIM: 23218011 (Program Studi Magister Teknik Elektro)

Institut Teknologi Bandung

Menyetujui

Pembimbing

Tanggal ……………………….

Pembimbing,

___________________

(Ir. Budi Rahardjo M.Sc.,Ph.D.)

Page 5: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

iv

PEDOMAN PENGGUNAAN TESIS

Tesis Magister yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan

Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak

cipta ada pada penulis dengan mengikuti aturan HaKI yang berlaku di Institut

Teknologi Bandung. Referensi kepustakaan diperkenankan dicatat, tetapi

pengutipan atau peringkasan hanya dapat dilakukan seizin penulis dan harus

disertai dengan kaidah ilmiah untuk menyebutkan sumbernya.

Sitasi hasil penelitian Tesis ini dapat di tulis dalam bahasa Indonesia sebagai

berikut:

Marhun, R.A.C. (2020): Perancangan dan Implementasi Sistem Database

Malware, Tesis Program Magister, Institut Teknologi Bandung.

dan dalam bahasa Inggris sebagai berikut:

Marhun, R.A.C. (2020): Design and Implementation of Malware Database System,

Master’s Thesis, Institut Teknologi Bandung.

Memperbanyak atau menerbitkan sebagian atau seluruh tesis haruslah seizin Dekan

Sekolah Pascasarjana, Institut Teknologi Bandung.

Page 6: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

v

HALAMAN PERUNTUKAN

Dipersembahkan kepada Ayah dan Mama tercinta, serta adikku Gema dan Cahi

yang senantiasa memotivasi dan menginspirasiku.

Page 7: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

vi

KATA PENGANTAR

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan karunianya,

sehingga penulis dapat menyelesaikan penelitian dan penulisan tesis yang berjudul

“Perancangan Sistem Database Malware” dengan lancar.

Selesainya tesis ini tidak terlepas dari bantuan serta bimbingan banyak pihak yang

telah memberi masukan dalam menyelesaikan kesulitan-kesulitan selama

menyusun tesis ini. Untuk itu penulis mengucapkan banyak terimakasih kepada:

1. Kedua orangtua, Bapak Dr. Masnipal Marhun, M.Pd dan Ibu Onyas

Rohayati, terimakasih atas doa dan dukungan secara moril maupun materil.

2. Bapak Ir. Budi Rahardjo M.Sc., Ph.D. sebagai dosen pembimbing yang

telah memberikan motivasi, petunjuk, ilmu, waktu, inspirasi, serta nasehat

kepada penulis sehingga penelitian ini dapat terselesaikan.

3. Bapak Prof. Dr. Ing. Ir. Suhardi, MT selaku Ketua Program RMKI.

4. Staf dan dosen Program Magister Opsi RMKI, Institut Teknologi Bandung,

terima kasih atas dedikasi yang tinggi dalam mengajar dan memberi ilmu

kepada para mahasiswanya terutama kepada penulis. Semoga ilmu yang

telah diamalkan selalu bisa bermanfaat dan menjadi amalan baik.

5. Rekan-rekan seperjuangan terutama RMKI Angkatan 2018 dan pihak-pihak

yang tidak bisa penulis sebutkan satu persatu yang telah membantu penulis

menyelesaikan tesis ini.

Penulis menyadari bahwa masih banyak kekurangan dalam penulisan tesis ini. Oleh

karena itu, kritik dan saran yang membangun sangat penulis harapkan demi

kesempurnaan tesis ini. Semoga penelitian ini dapat memberikan manfaat bagi

pembaca. Atas segala perhatiannya penulis ucapkan terima kasih.

Bandung, Juni 2020

Penulis

Page 8: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

vii

DAFTAR ISI

ABSTRAK ............................................................................................................... i

ABSTRACT .............................................................................................................. ii

HALAMAN PENGESAHAN ................................................................................ iii

PEDOMAN PENGGUNAAN TESIS.................................................................... iv

HALAMAN PERUNTUKAN ................................................................................ v

KATA PENGANTAR ........................................................................................... vi

DAFTAR ISI ......................................................................................................... vii

DAFTAR LAMPIRAN ........................................................................................... x

DAFTAR GAMBAR DAN ILUSTRASI .............................................................. xi

DAFTAR TABEL ................................................................................................ xiv

DAFTAR ALGORITMA ...................................................................................... xv

DAFTAR SINGKATAN DAN LAMBANG ...................................................... xvi

Bab I Pendahuluan ............................................................................................... 1

I.1. Latar Belakang .......................................................................................... 1

I.2. Rumusan Masalah ..................................................................................... 4

I.3. Tujuan Penelitian ...................................................................................... 4

I.4. Batasan Masalah ....................................................................................... 4

I.5. Kontribusi ................................................................................................. 5

I.6. Metodologi Penelitian ............................................................................... 5

I.6.1. Need Analysis ................................................................................ 6

I.6.2. Concept Exploration ..................................................................... 6

I.6.3. Concept Definition ........................................................................ 6

I.6.4. Advanced Development ................................................................. 6

I.6.5. Engineering Design ....................................................................... 7

I.6.6. Integration and Evaluation ........................................................... 7

I.7. Sistematika Penulisan ............................................................................... 7

Bab II Tinjauan Pustaka ....................................................................................... 9

II.1. Definisi dan Klasifikasi Malware ............................................................. 9

II.1.1. Virus ............................................................................................ 10

II.1.2. Worm ........................................................................................... 10

II.1.3. Trojan Horse ............................................................................... 10

II.1.4. Ransomware ................................................................................ 11

II.1.5. Rootkit ......................................................................................... 11

II.1.6. Backdoor ..................................................................................... 11

II.1.7. Downloader ................................................................................. 12

II.2. Kajian Penelitian Terkait ........................................................................ 12

II.2.1. Database ...................................................................................... 12

II.2.2. Teknik Deteksi Malware ............................................................. 13

II.3. Virus Total .............................................................................................. 14

II.4. Sampel Malware ..................................................................................... 14

Page 9: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

viii

Bab III Perancangan Sistem ............................................................................... 15

III.1. Metode Perancangan Sistem................................................................... 15

III.2. Konsep Sistem ........................................................................................ 16

III.2.1. Sistem Admin ........................................................................... 17

III.2.2. Sistem User ............................................................................... 18

III.2.3. Sistem Mitra .............................................................................. 19

III.3. Kebutuhan dan Spesifikasi Perangkat .................................................... 20

III.3.1. Perangkat Keras ........................................................................ 20

III.3.2. Perangkat Lunak Perancangan Sistem ...................................... 21

III.3.3. Perangkat Lunak Pendukung .................................................... 21

III.4. Desain Sistem ......................................................................................... 21

III.4.1. Aktor, Fitur, dan Hak Akses ..................................................... 22

III.4.2. Diagram Use Case .................................................................... 24

III.4.3. Diagram Alir ............................................................................. 26

III.5. Desain Database ..................................................................................... 34

Bab IV Implementasi & Pengujian .................................................................... 35

IV.1. Implementasi Sistem .............................................................................. 35

IV.1.1. Halaman Utama Menu .............................................................. 35

IV.1.2. Fungsi Login ............................................................................. 37

IV.1.3. Fungsi Deteksi .......................................................................... 38

IV.1.4. Fungsi Penampil Data ............................................................... 50

IV.1.5. Fungsi Tambah Data ................................................................. 56

IV.1.6. Fungsi Hapus Data .................................................................... 62

IV.1.7. Fungsi Unduh Sampel ............................................................... 63

IV.1.8. Fungsi Ubah Data ..................................................................... 64

IV.1.9. Fungsi Logout ........................................................................... 67

IV.2. Implementasi Database ........................................................................... 68

IV.2.1. Koneksi Database ..................................................................... 68

IV.2.2. Tabel Malware .......................................................................... 69

IV.2.3. Tabel Benign ............................................................................. 70

IV.2.4. Tabel Baru................................................................................. 70

IV.2.5. Tabel Akun ............................................................................... 71

IV.2.6. Tabel Riwayat ........................................................................... 71

IV.3. Pengujian Fungsionalitas ........................................................................ 73

IV.3.1. Fungsi Login ............................................................................. 73

IV.3.2. Fungsi Deteksi .......................................................................... 74

IV.3.3. Fungsi Penampil Data ............................................................... 77

IV.3.4. Fungsi Tambah Data ................................................................. 83

IV.3.5. Fungsi Hapus Data .................................................................... 87

IV.3.6. Fungsi Unduh Sampel ............................................................... 88

IV.3.7. Fungsi Ubah Data ..................................................................... 89

IV.3.8. Fungsi Logout ........................................................................... 91

IV.4. Pengujian Kinerja ................................................................................... 92

IV.4.1. Website ..................................................................................... 92

Page 10: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

ix

IV.4.2. REST API ................................................................................. 94

IV.5. Pengujian Keamanan ............................................................................ 103

IV.5.1. Confidentiality ........................................................................ 103

IV.5.2. Integrity ................................................................................... 106

IV.5.3. Availability .............................................................................. 108

Bab V Kesimpulan dan Saran .......................................................................... 114

V.1. Kesimpulan ........................................................................................... 114

V.2. Saran ..................................................................................................... 114

DAFTAR PUSTAKA ......................................................................................... 115

LAMPIRAN ........................................................................................................ 117

Page 11: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

x

DAFTAR LAMPIRAN

Lampiran A List Program ................................................................................... A-1

A1. List Program Client ...................................................................................... A-1

A2. List Program Server ..................................................................................... A-2

Lampiran B Kode Program Deteksi .................................................................... B-1

B1. deteksi.php (Default) .................................................................................... B-1

B2. deteksi_vt.php (Virus Total) ......................................................................... B-2

B3. functions_vt.php (Virus Total) ..................................................................... B-3

Lampiran C Kode Program REST API Client .................................................... C-1

C1. api_malware.php .......................................................................................... C-1

C2. api_benign.php ............................................................................................. C-3

C3. api_baru.php ................................................................................................. C-4

C4. api_admin.php .............................................................................................. C-5

C5. api_mitra.php ................................................................................................ C-7

C6. api_recent.php .............................................................................................. C-9

Lampiran D Kode Program REST API Server (Controller) ............................... D-1

D1. Malware.php ................................................................................................. D-1

D2. Benign.php ................................................................................................... D-3

D3. Baru.php ....................................................................................................... D-5

D4. Admin.php .................................................................................................... D-6

D5. Mitra.php ...................................................................................................... D-8

D6. Recent.php .................................................................................................. D-10

D7. Riwayat.php................................................................................................ D-11

D8. m_Riwayat.php .......................................................................................... D-11

Lampiran E Kode Program REST API Server (Models) ..................................... E-1

E1. Malware_model.php ...................................................................................... E-1

E2. Benign_model.php ......................................................................................... E-1

E3. Baru_model.php............................................................................................. E-2

E4. Admin_model.php ......................................................................................... E-3

E5. Mitra_model.php ........................................................................................... E-3

E6. Recent_model.php ......................................................................................... E-4

E7. Riwayat_model.php ....................................................................................... E-4

E8. m_Riwayat_model.php .................................................................................. E-4

Page 12: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xi

DAFTAR GAMBAR DAN ILUSTRASI

Gambar I. 1 Peningkatan jumlah Malware terdeteksi dalam 10 tahun terakhir...... 1

Gambar I. 2 System Engineering Principles and Practice ...................................... 5

Gambar III. 1 Metode Waterfall............................................................................ 15

Gambar III. 2 Konsep Sistem Keseluruhan........................................................... 16

Gambar III. 3 Konsep Sistem Admin .................................................................... 17

Gambar III. 4 Konsep Sistem User ....................................................................... 18

Gambar III. 5 Konsep Sistem Mitra ...................................................................... 19

Gambar III. 6 Diagram Use Case Admin.............................................................. 24

Gambar III. 7 Diagram Use Case User ................................................................. 25

Gambar III. 8 Diagram Use Case Mitra ................................................................ 25

Gambar III. 9 Diagram Alir Sistem User .............................................................. 26

Gambar III. 10 Diagram Alir Deteksi (Virus Total) ............................................. 26

Gambar III. 11 Diagram Alir Deteksi (Metode Default) ...................................... 27

Gambar III. 12 Diagram Alir Sistem Mitra (Login - Profil) ................................. 28

Gambar III. 13 Diagram Alir Mitra (Deteksi - Logout) ........................................ 29

Gambar III. 14 Diagram Alir Sistem Admin (Login - DB Malware) ................... 30

Gambar III. 15 Diagram Alir Sistem Admin (DB Benign) ................................... 31

Gambar III. 16 Diagram Alir Sistem Admin (Analisa File) ................................. 31

Gambar III. 17 Diagram Alir Sistem Admin (Tambah File) ................................ 32

Gambar III. 18 Diagram Alir Sistem Admin (Registrasi - Logout) ...................... 33

Gambar III. 19 Relasi Database............................................................................ 34

Gambar IV. 1 Halaman Utama User & Mitra ....................................................... 35

Gambar IV. 2 Halaman Menu Mitra ..................................................................... 36

Gambar IV. 3 Halaman Menu Admin ................................................................... 36

Gambar IV. 4 Halaman Login ............................................................................... 37

Gambar IV. 5 Login – Username atau Password Salah ....................................... 38

Gambar IV. 6 Deteksi User & Mitra ..................................................................... 38

Gambar IV. 7 Deteksi Default - File Aman .......................................................... 39

Gambar IV. 8 Deteksi Default - Terdeteksi Malware (Status).............................. 40

Gambar IV. 9 Deteksi Default - Terdeteksi Malware (Analisa dan Metadata) .... 41

Gambar IV. 10 Deteksi Default - Terdeteksi Malware (Analisa) ......................... 42

Gambar IV. 11 Deteksi Default - Proses Analisa ................................................. 43

Gambar IV. 12 Deteksi Default - Perlu Analisa ................................................... 44

Gambar IV. 13 Deteksi Default - Ticketing System .............................................. 45

Gambar IV. 14 Deteksi Virus Total – Undetected (hasil deteksi) ........................ 46

Gambar IV. 15 Deteksi Virus Total - Undetected (scan antivirus) ....................... 46

Gambar IV. 16 Deteksi Virus Total - Undetected (informasi detail) .................... 47

Gambar IV. 17 Deteksi Virus Total - Detected (hasil deteksi) ............................. 48

Gambar IV. 18 Deteksi Virus Total - Detected (scan antivirus) ........................... 48

Page 13: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xii

Gambar IV. 19 Deteksi Virus Total - Detected (informasi detail) ........................ 49

Gambar IV. 20 Deteksi Virus Total – Queue ........................................................ 50

Gambar IV. 21 Database Benign – Fitur Admin .................................................. 51

Gambar IV. 22 Database Malware - Fitur Admin ................................................ 52

Gambar IV. 23 Analisa File (Sampel Baru) – Fitur Admin .................................. 52

Gambar IV. 24 Data Admin – Fitur Admin .......................................................... 53

Gambar IV. 25 Data Mitra – Fitur Admin ............................................................ 53

Gambar IV. 26 Recent – Fitur Admin ................................................................... 54

Gambar IV. 27 Riwayat – Fitur Mitra ................................................................... 54

Gambar IV. 28 Riwayat – Fitur User .................................................................... 55

Gambar IV. 29 Profil – Fitur Mitra ....................................................................... 55

Gambar IV. 30 Lab Malware – Fitur Mitra .......................................................... 56

Gambar IV. 31 Tambah Benign – Fitur Admin .................................................... 58

Gambar IV. 32 Tambah Malware (Upload File) – Fitur Admin .......................... 58

Gambar IV. 33 Tambah Malware (Metadata) – Fitur Admin ............................... 59

Gambar IV. 34 Tambah Malware (Penanganan) – Fitur Admin .......................... 60

Gambar IV. 35 Tambah Malware (Data Ransome) – Fitur Admin ...................... 60

Gambar IV. 36 Registrasi Admin.......................................................................... 61

Gambar IV. 37 Registrasi Mitra ............................................................................ 61

Gambar IV. 38 Konfirmasi Hapus ........................................................................ 62

Gambar IV. 39 Hapus Berhasil ............................................................................. 62

Gambar IV. 40 Unduh Sampel (Malware) ............................................................ 63

Gambar IV. 41 Edit Database Malware – Admin ................................................ 64

Gambar IV. 42 Profil – Edit Akun Mitra .............................................................. 66

Gambar IV. 43 Profil – Edit Password Mitra ....................................................... 66

Gambar IV. 44 Logout .......................................................................................... 67

Gambar IV. 45 Database Sistem ........................................................................... 68

Gambar IV. 46 Tabel Malware ............................................................................. 69

Gambar IV. 47 Tabel Benign ................................................................................ 70

Gambar IV. 48 Tabel Baru .................................................................................... 70

Gambar IV. 49 Tabel Admin ................................................................................ 71

Gambar IV. 50 Tabel Mitra ................................................................................... 71

Gambar IV. 51 Tabel Recent Admin .................................................................... 71

Gambar IV. 52 Tabel Riwayat User ...................................................................... 72

Gambar IV. 53 Tabel Riwayat Mitra .................................................................... 72

Gambar IV. 54 Hasil Pengujian Kinerja Website ................................................. 93

Gambar IV. 55 Grafik Pengujian Kinerja Website ............................................... 93

Gambar IV. 56 Hasil Pengujian Kinerja API Publik Virus Total ......................... 94

Gambar IV. 57 Grafik Pengujian Kinerja REST API Virus Total ........................ 95

Gambar IV. 58 Hasil Pengujian Kinerja REST API Default – Case1 .................. 96

Gambar IV. 59 Grafik Pengujian Kinerja REST API Default – Case1 ................ 97

Gambar IV. 60 Hasil Pengujian Kinerja REST API Default – Case2 .................. 97

Gambar IV. 61 Tabel Hasil Pengujian Kinerja REST API Default – Case2 ........ 98

Gambar IV. 62 Grafik Pengujian Kinerja REST API Default - Case2 ................. 98

Gambar IV. 63 Hasil Pengujian Kinerja REST API Default – Case3 .................. 99

Page 14: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xiii

Gambar IV. 64 Tabel Pengujian Kinerja REST API Default – Case3 ................. 99

Gambar IV. 65 Grafik Pengujian Kinerja REST API Default – Case3 .............. 100

Gambar IV. 66 Hasil Pengujian Kinerja REST API Default – Case4 ................ 100

Gambar IV. 67 Tabel Pengujian Kinerja REST API Default – Case4 ............... 101

Gambar IV. 68 Grafik Pengujian Kinerja REST API Default – Case4 .............. 101

Gambar IV. 69 Skenario Serangan Sniffing ........................................................ 103

Gambar IV. 70 Hasil Pengujian Confidentiality – Sniffing ................................. 104

Gambar IV. 71 Hasil Follow TCP Stream pada protokol HTTP POST .............. 105

Gambar IV. 72 Skenario Serangan SQL Injection .............................................. 106

Gambar IV. 73 Hasil Pengujian Integrity - SQL Injection .................................. 107

Gambar IV. 74 Tingkat Ancaman SQL Injection terhadap Web Sistem ............ 108

Gambar IV. 75 Skenario Pengujian Availability – Serangan SYN Flooding ...... 109

Gambar IV. 76 Performance Sistem Sebelum Serangan SYN Flooding ............ 110

Gambar IV. 77 Serangan SYN Flooding menggunakan Hping3 ......................... 111

Gambar IV. 78 Peningkatan Utilitas CPU Saat Serangan SYN Flooding ........... 111

Gambar IV. 79 Akses Klien Saat Serangan SYN Flooding ................................. 112

Gambar IV. 80 Trafik Jaringan Saat Serangan SYN Flooding ............................ 112

Gambar IV. 81 Performance Sistem Saat Serangan SYN Flooding.................... 113

Page 15: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xiv

DAFTAR TABEL

Tabel I. 1 Pengaduan insiden pada laporan Dwi Bulan II 2018 ID-CERT ............. 2

Tabel I. 2 Pengaduan insiden pada laporan Dwi Bulan III 2018 ID-CERT ........... 2

Tabel III. 1 Fitur dan Hak Akses Admin............................................................... 22

Tabel III. 2 Fitur dan Hak Akses User .................................................................. 23

Tabel III. 3 Fitur dan Hak Akses Mitra ................................................................. 23

Tabel IV. 1 Pengujian Login ................................................................................. 73

Tabel IV. 2 Pengujian Deteksi Berdasarkan Ukuran Berkas ................................ 74

Tabel IV. 3 Pengujian Deteksi Berdasarkan Tipe Berkas ..................................... 75

Tabel IV. 4 Pengujian Deteksi Virus Total ........................................................... 76

Tabel IV. 5 Pengujian Deteksi Default ................................................................. 76

Tabel IV. 6 Pengujian Penampil Data - DB Malware ........................................... 78

Tabel IV. 7 Pengujian Penampil Data – DB Benign ............................................. 79

Tabel IV. 8 Pengujian Penampil Data - Analisa File ............................................ 79

Tabel IV. 9 Pengujian Penampil Data Admin dan Mitra ...................................... 80

Tabel IV. 10 Pengujian Penampil Data – Recent .................................................. 81

Tabel IV. 11 Pengujian Penampil Data - Riwayat Mitra ...................................... 81

Tabel IV. 12 Pengujian Penampil Data - Riwayat User........................................ 82

Tabel IV. 13 Pengujian Penampil Data - Profil Mitra .......................................... 82

Tabel IV. 14 Pengujian Penampil Data - Lab Malware ........................................ 83

Tabel IV. 15 Pengujian Tambah Data - Tambah File (Malware) ......................... 84

Tabel IV. 16 Pengujian Tambah Data – Tambah File (Benign) ........................... 85

Tabel IV. 17 Pengujian Tambah Data - Registrasi ............................................... 86

Tabel IV. 18 Pengujian Hapus Data ...................................................................... 87

Tabel IV. 19 Pengujian Unduh Sampel................................................................. 88

Tabel IV. 20 Pengujian Ubah Data – Edit Malware ............................................. 89

Tabel IV. 21 Pengujian Ubah Data - Edit Akun ................................................... 90

Tabel IV. 22 Pengujian Ubah Data - Ubah Password ........................................... 91

Tabel IV. 23 Pengujian Logout ............................................................................. 92

Tabel IV. 24 Skenario Pengujian REST API Sistem ............................................ 95

Tabel IV. 25 Perbandingan Hasil Pengujian Kinerja REST API ........................ 102

Page 16: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xv

DAFTAR ALGORITMA

Algoritma IV. 1 Login (Admin) ............................................................................ 37

Algoritma IV. 2 Deteksi Default – File Aman ...................................................... 39

Algoritma IV. 3 Deteksi Default – Terdeteksi Malware....................................... 40

Algoritma IV. 4 Deteksi Default – Proses Analisa ............................................... 42

Algoritma IV. 5 Deteksi Default– Perlu Analisa .................................................. 43

Algoritma IV. 6 Deteksi Default – Simpan Sampel Baru ..................................... 44

Algoritma IV. 7 Deteksi Virus Total..................................................................... 45

Algoritma IV. 8 Penampil Data (DB Benign) ....................................................... 51

Algoritma IV. 9 Tambah Data (Benign) – REST Client ....................................... 56

Algoritma IV. 10 Tambah Data (Benign) – REST Server controllers .................. 57

Algoritma IV. 11 Tambah Data (Benign) – REST Server models ....................... 57

Algoritma IV. 12 Hapus Data (Malware) – REST Client ..................................... 62

Algoritma IV. 13 Hapus Data (Malware) – REST Server .................................... 62

Algoritma IV. 14 Unduh Sampel (Malware) ........................................................ 63

Algoritma IV. 15 Ubah Data (Malware) – REST Client ...................................... 65

Algoritma IV. 16 Ubah Data (Malware) – REST Server ...................................... 65

Algoritma IV. 17 Logout (Mitra) .......................................................................... 67

Algoritma IV. 18 Koneksi Database ..................................................................... 68

Algoritma IV. 19 Fungsi anti SQL Injection ....................................................... 107

Page 17: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

xvi

DAFTAR SINGKATAN DAN LAMBANG

SINGKATAN

Nama Pemakaian

pertama kali

pada halaman

Malware Mallicious Software 1

AV Anti-Virus 1

PUA Potentially Unwanted Application 1

ID-CERT Computer Emergency Response Team 2

PANDI Pengelola Nama Domain Internet Indonesia 2

APJII Asosiasi Penyelenggara Jasa Internet

Indonesia

2

AFCC Anti Fraud Command Center 2

NAP Network Access Point 2

PJI/ISP Penyedia Jasa Internet/Internet Service

Provider

2

KEMDIKBUD Kementerian Pendidikan dan Kebudayaan

Republik Indonesia

2

HaKi Hak Atas Kekayaan Intelektual 2

IPR Intellectual Property Rights 2

SQL Structured Query Language 4

RAT Remote Administration Tool 11

URL Uniform Resource Locator 16

Page 18: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

1

Bab I Pendahuluan

I.1. Latar Belakang

Malware adalah sebuah perangkat lunak yang dapat menyusup ke sistem operasi

sehingga dapat merusak dan mencuri file-file penting pada sistem. Malware

mencakup virus, Trojan horse, spyware, adware, crimeware, dan perangkat lunak

lainnya yang berniat jahat dan tidak diinginkan [1]. Saat ini malware menjadi salah

satu ancaman utama terhadap keamanan yang berkaitan dengan integritas,

kerahasiaan, dan ketersediaan sistem komputer [2]. Program perangkat lunak ini

memiliki dampak yang mengganggu pada aplikasi, penyedia layanan,

penyimpanan, server, dan jaringan.

Pada tahun 2020, AV-TEST Institute telah mendaftarkan lebih dari 350.000 program

jahat (malware) dan aplikasi yang tidak diinginkan (Potentially Unwanted

Application/PUA) setiap harinya. Data-data tersebut kemudian diperiksa,

diklasifikasi dan disimpan. Hasilnya berupa diagram statistik malware seperti pada

Gambar I. 1. Grafik menunjukkan bahwa dalam sepuluh tahun terakhir, jumlah

malware yang ditemukan terus mengalami peningkatan disetiap tahunnya [3].

Gambar I. 1 Peningkatan jumlah Malware terdeteksi dalam 10 tahun terakhir

Page 19: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

2

Dalam laporan Dwi Bulan II & III tahun 2018 dari hasil pemantauan ID-CERT

diperoleh data bahwa dari tujuh kategori pengaduan insiden keamanan, malware

mengalami peningkatan jumlah pengaduan terbesar secara persentase. Kategori

pengaduan tersebut yaitu HaKI/IPR, Spam, Network Incident, Malware, Respon,

Spoofing/Phishing, dan Komplain Spam. Data pada laporan ini diperoleh dari 41

responden yaitu: Kominfo, ID-CERT, PANDI, APJII, Detik.net, Zone-h, AntiFraud

Command Center (AFCC), dan Kaspersky, tiga operator telekomunikasi, tujuh

NAP, 22 Penyedia Jasa Internet (PJI/ISP), dan KEMDIKBUD [4], [5].

Tabel I. 1 Pengaduan insiden pada laporan Dwi Bulan II 2018 ID-CERT

Kategori Maret April %

Malware 517 632 22,24%

Komplain Spam 212 250 17,92%

Respon 24 22 -8,33%

Spoofing/Phishing 366 310 -15,30%

Spam 2.880 2.376 -17,50%

Network Incident 1.435 1.066 -25,71%

HaKI/IPR 6.513 4.040 -37,97%

Pada Dwi Bulan II (Maret-April) yang ditujukkan pada Tabel I. 1, jumlah

peningkatan malware sebesar 22,24% yaitu 115 pengaduan. Peningkatan jumlah

sebesar 115 pengaduan tersebut ketika pada bulan Maret berjumlah 517 pengaduan

dan pada bulan April meningkat menjadi 632 pengaduan [4].

Tabel I. 2 Pengaduan insiden pada laporan Dwi Bulan III 2018 ID-CERT

Kategori Mei Juni %

Malware 754 1.007 33,55%

Komplain Spam 491 572 16,50%

Respon 3.744 4.309 15,09%

Spoofing/Phishing 388 374 -3,61%

Spam 2.221 2.012 -9,41%

Network Incident 1.421 1.279 -9,99%

HaKI/IPR 24 10 -58,33%

Nilai persentase semakin meningkat pada Dwi Bulan III (Mei-Juni) yang

ditunjukkan pada Tabel I. 2, dengan jumlah peningkatan sebesar 33,55%. atau 253

pengaduan [5].

Page 20: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

3

Dari kedua laporan ini, dapat disimpulkan bahwa jumlah serangan malware terus

meningkat dari waktu ke waktu. Berkembangnya teknologi pun memicu

dikembangkannya malware baru, tanpa terkecuali di Indonesia. Para attacker

mencoba mengelabui antivirus dengan cara memanipulasi signature malware yang

telah ada, sehingga tercipta jenis malware baru. Malware baru yang dibuat oleh

para attacker di Indonesia ini kemungkinan besar hanya terdapat di Indonesia saja

(malware lokal), sehingga antivirus tidak dapat mendeteksi malware lokal tersebut.

Oleh karena itu, untuk mengurangi resiko terinfeksi malware, diperlukan

pemutakhiran terhadap aplikasi keamanan dan basis data terkait serta

mengembangkan penelitian terkait malware.

Saat ini, Indonesia belum memiliki sistem yang dapat mendukung proses penelitian

malware. Analisis malware pun hanya dilakukan untuk kebutuhan operasional saja,

sehingga hampir tidak ada dokumentasi mengenai proses dan hasil analisa malware.

Oleh sebab itu, Indonesia membutuhkan suatu sistem yang dapat digunakan tidak

hanya untuk operasional, namun juga untuk kebutuhan penelitian. Sistem tersebut

harus dapat menyimpan dan mengelola sampel malware, mendokumenkan hasil

analisa dan informasi lainnya, yang selanjutnya digunakan untuk proses deteksi dan

penanganan serangan malware.

Pada penelitian ini telah dirancang dan diimplementasikan suatu sistem database

malware. Sistem ini dapat menyimpan dan mengoleksi berbagai jenis malware

beserta informasi terkait seperti metadata, analisa statik, cara penanganan serta

keterangan detail lain yang mendukung proses penelitian. Signature malware yang

terkumpul dalam database akan digunakan untuk proses deteksi. Sistem ini juga

menyediakan fitur bagi pengguna untuk dapat melaporkan dan mengirimkan jenis

malware baru. Malware baru tersebut akan dianalisis dan ditambahkan kedalam

database sehingga sistem ini selalu update terhadap malware baru terutama

malware lokal. Kesulitan dalam pembuatan sistem ini yaitu karena malware dapat

menginfeksi sistem yang ditempatinya, sehingga diperlukan suatu desain yang tepat

untuk menyimpan malware di database dengan aman.

Page 21: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

4

I.2. Rumusan Masalah

Pertanyaan penelitian berdasarkan latar belakang dan masalah penelitian adalah:

1. Bagaimana cara merancang dan mengimplementasikan sistem database

yang dapat mendeteksi malware?

2. Bagaimana cara menyimpan malware dengan aman dalam sistem database?

3. Bagaimana cara pengguna melaporkan malware baru dan menggunakan

database ini?

I.3. Tujuan Penelitian

Tujuan dari penelitian ini adalah merancang dan mengimplementasikan sistem

database malware yang dapat:

1. Mendeteksi malware terutama malware lokal Indonesia yang tidak terdaftar

dalam antivirus luar negeri;

2. Menyimpan sampel dan metadata malware untuk pengembangan penelitian

terkait dalam sistem database dengan aman;

3. Memberikan fasilitas bagi pengguna untuk melaporkan malware baru dan

menjadi sistem database malware yang selalu update.

I.4. Batasan Masalah

Pada penelitian ini sistem database tidak hanya digunakan untuk menyimpan

malware saja, namun juga untuk mendeteksi berkas file yang terinfeksi malware.

Terdapat dua cara deteksi dalam sistem ini yaitu secara Default (oleh sistem

database malware) dan melalui Virus Total yang keduanya menggunakan metode

deteksi berbasis signature. Ticketing System tidak diimplementasikan pada

penelitian ini. Proses analisa dan penyimpanan sampel malware seharusnya

dilakukan secara terpisah menggunakan server khusus dan ditangani oleh analis

malware, namun pada penelitian ini, analisa malware dilakukan diluar sistem

dengan metode analisa statik pada Virtual Box. Sampel malware didapatkan dari

theZoo (GitHub) dan tutorialjinni.com. Metadata dan informasi lainnya diperoleh

dari berbagai web dan forum penelitian. Database yang digunakan yaitu MariaDB

yang merupakan database SQL atau relational. Web sistem dibangun

menggunakan PHP.

Page 22: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

5

I.5. Kontribusi

Diharapkan sistem ini dapat membantu perkembangan penelitian terkait malware

di Indonesia. Selain itu, sistem ini juga dapat membantu para analis malware dan

masyarakat umum dalam mendeteksi adanya malware serta memberikan

pengetahuan dan pemahaman tentang metadata dan cara penanganan malware.

I.6. Metodologi Penelitian

Penelitian ini menggunakan Systems Engineering Principles and Practice [6]

sebagai pendekatan metodologi penelitian. Secara umum terdapat tiga tahapan

utama dalam metodologi ini yaitu: concept development, engineering development,

dan post-development. Namun pada penelitian ini tahapan terakhir yaitu post-

development tidak dilakukan, karena produk yang dihasilkan tidak dipasarkan.

Penjabaran dari tahapan utama dalam pendekatan ini ditunjukan pada Gambar I. 2.

Gambar I. 2 System Engineering Principles and Practice

Concept

Development

Need Analysis

Concept

Exploration

Concept

Definition

Engineering

Development

Advanced

Development

Engineering

Design

Integration and

Evaluation

Post

Development

Production

Operating and

Support

Page 23: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

6

I.6.1. Need Analysis

Tahap awal yaitu menentukan dan mengidentifikasi masalah yang akan

diselesaikan dalam penelitian. Adapun masalah yang akan diselesaikan pada

penelitian ini yaitu belum adanya sistem yang dapat digunakan untuk

pengembangan penelitian malware di Indonesia, yang dapat mendeteksi dan

mengelola malware lokal yang terus berkembang di Indonesia. Sementara para

attacker terus mengembangkan dan membuat malware baru untuk mengelabui

antivirus.

I.6.2. Concept Exploration

Setelah mengidentifikasi masalah, tahap selanjutnya adalah mencari dan melakukan

pembelajaran terhadap literatur yang memiliki korelasi searah dengan penelitian

untuk menyelesaikan permasalahan. Literatur terkait penelitian ini yaitu: Definisi

dan Klasifikasi Malware, Database, Teknik Deteksi Malware, Teknik Analisis

Malware, dan Sampel Malware.

I.6.3. Concept Definition

Pada tahap ini dilakukan pemilihan konsep dari hasil concept exploration:

1. Database yang dipilih yaitu MariaDB dengan menggunakan PHPMyAdmin

sebagai alat untuk memanajemen database;

2. Pendeteksian malware menggunakan teknik deteksi berbasis signature;

3. Teknik analisa malware yang digunakan yaitu analisis statik;

4. Sampel malware berasal dari tutorialjinni.com dan theZoo (GitHub).

I.6.4. Advanced Development

Tahap ini menjelaskan kebaruan/peningkatan yang dilakukan pada konsep yang

telah dipilih sebelumnya. Kebaruan dalam penelitian ini yaitu belum adanya

literatur yang secara spesifik membuat suatu sistem database malware. Di

Indonesia sendiri, belum ada sistem yang mendukung untuk proses pengembangan

penelitian terkait malware, dimana sampel dan informasi terkait malware dikoleksi

dan dapat dikelola untuk kepentingan operasional dan pendidikan. Kebanyakan

penelitian hanya berfokus pada teknik analisa atau deteksi malware saja.

Page 24: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

7

I.6.5. Engineering Design

Pada tahap ini dilakukan perancangan sistem. Pada penelitian ini perancangan

sistem database malware dibagi menjadi tiga diagram blok utama yang saling

berhubungan yaitu, blok menu admin, user, dan mitra. Selain itu, terdapat diagram

alir untuk proses deteksi, pengelolaan database, dan pendaftaran mitra.

I.6.6. Integration and Evaluation

Pada tahap terakhir, diagram blok yang telah dirancang kemudian

diimplementasikan menjadi suatu sistem utuh yang dapat berfungsi. Selanjutnya

akan dilakukan pengujian fungsional dari sistem tersebut. Pengujian dilakukan

untuk menilai rancangan sistem database malware yang ditinjau dari ketepatan

dalam mendeteksi malware serta parameter pengujian lainnya yang telah

ditetapkan. Hasil pengujian kemudian di analisa dan didokumentasikan dalam

laporan penelitian.

Pada penelitian ini, tahap concept development dan engineering development telah

selesai dikerjakan, dimana sistem telah selesai dirancang dan diimplementasikan.

Sedangkan untuk tahapan terakhir yaitu post-development tidak dilakukan pada

penelitian ini, karena produk yang dihasilkan dalam penelitian hanya berupa

prototipe dan tidak dipasarkan.

I.7. Sistematika Penulisan

Sistematika penulisan dalam penelitian ini disusun sebagai berikut:

▪ BAB I Pendahuluan

Bab ini berisi latar belakang, rumusan masalah, tujuan penelitian, batasan

masalah, kontribusi penelitian, metodologi penelitian dan sistematika

penulisan.

▪ BAB II Tinjauan Pustaka

Bab ini menguraikan tinjauan pusaka yang berisi uraian tentang state of the

art dari penelitian, membahas secara umum teori pendukung dan hasil

penelitian ilmiah lainnya yang berkaitan dengan permasalahan yang

dibahas.

Page 25: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

8

▪ BAB III Perancangan Sistem

Bab ini menguraikan tentang konsep dan perancangan sistem database

malware berdasarkan metode pengembangan sistem.

▪ BAB IV Implementasi dan Pengujian

Bab ini menguraikan implementasi sistem dari hasil rancangan pada bab

sebelumya dalam bentuk prototipe. Sistem kemudian diuji dan hasilnya

dianalisis. Pengujian dilakukan terdahap tiga aspek sistem, yaitu pengujian

fungsional, pengujian kinerja, dan pengujian keamanan sistem.

▪ BAB VI Kesimpulan dan Saran

Bab ini berisi kesimpulan dari hasil perancangan dan implementasi sistem

yang diusulkan, serta saran untuk pengembangan penelitian ini.

Page 26: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

9

Bab II Tinjauan Pustaka

II.1. Definisi dan Klasifikasi Malware

Malware atau Mallicious Software adalah perangkat lunak jahat yang digunakan

untuk mengganggu operasi komputer, mengumpulkan informasi sensitif,

mendapatkan akses ke sistem komputer, atau menampilkan iklan yang tidak

diinginkan. Konsep malware pertama kali ditemukan pada tahun 1949 oleh Von

Neumann melalui Teori Self-Reproducing Automata, bahwa ada sebuah program

yang dapat mereplikasi dirinya sendiri dan mampu mengendalikan program lain.

Kemudian pada 1959, tiga peneliti muda dari Bell Labs menciptakan sebuah

permainan yang disebut CoreWar yang menerapkan teori Von Neumann, dimana

program dari permainan ini bersaing untuk menguasai komputer lawan. Permainan

ini dianggap sebagai cikal bakal kemunculan virus komputer. Perangkat lunak

berbahaya disebut virus komputer sebelum istilah malware diciptakan pada tahun

1990 oleh Yisrael Radai [7], [8].

Malware adalah salah satu ancaman terbesar saat ini dalam keamanan komputer.

Malware dapat menginfeksi banyak perangkat dengan masuk melalui email,

download internet, atau program yang terinfeksi. Pada perangkat yang terinfeksi,

malware dapat menyebabkan kerusakan dan memungkinkan juga terjadi pencurian

data karena sebuah malware yang dikendalikan oleh seorang cracker dapat saja

mencuri data – data penting di perangkat korban [9].

Pada umumnya, penyebaran malware dilakukan dengan cara men-download

software dari tempat ilegal yang telah disisipkan malware. Bukan hanya terbatas

pada program saja, malware juga dapat berbentuk kode script. Malware dapat

bersembunyi dalam program yang tampaknya sah (bertindak sebagai Trojan Horse)

yang dipasang atau diunduh pengguna [10]. Jadi, malware meliputi berbagai

program dan script yang dicurigai mampu merusak sistem dan berbagai informasi

penting yang ada didalamnya, mencakup virus, worm, Trojan horse, rootkit,

spyware, adware, serta software-software lain yang berbahaya dan tidak diinginkan

oleh pengguna.

Page 27: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

10

Umumnya malware diklasifikasikan berdasarkan cara penyebaran dan dampaknya.

Berikut ini beberapa klasifikasi malware dalam [11]:

II.1.1. Virus

Secara sederhana, virus komputer adalah jenis kode program yang mereplikasi diri

yang diinstal ke suatu program tanpa persetujuan pengguna. Definisi virus dapat

dirinci lebih jauh, berdasarkan jenis objek yang diinfeksi, metode yang digunakan

untuk memilih host, atau teknik yang digunakan untuk menyerang. Virus juga dapat

muncul dalam berbagai bentuk, mulai dari lampiran email hingga tautan unduhan

berbahaya di Internet, dan dapat melakukan banyak tugas berbahaya pada OS

korban.

II.1.2. Worm

Worm dianggap sebagai subdivisi dari virus karena merupakan program replikasi

diri. Program ini berbahaya karena dapat menyalin dirinya sendiri berulang-ulang,

pada drive lokal, jaringan, email, atau Internet. Program ini menggunakan jaringan

komputer untuk mengirimkan salinan dirinya ke node lainnya dan dapat

menginfeksi tanpa sepengetahuan pengguna. Hal ini disebabkan oleh kelemahan

keamanan pada komputer target. Worm tidak menginfeksi file atau memodifikasi

file melainkan menimbulkan kerugian pada jaringan karena worm akan

mengkonsumsi bandwith jaringan, sehingga mengakibatkan kecepatan Internet

lambat. Worm seperti halnya virus, yang dapat didefinisikan lebih lanjut dengan

memecah metode dimana mereka menginfeksi, seperti melalui email, pesan instan

atau berbagi file.

II.1.3. Trojan Horse

Berbeda dengan virus dan worm, Trojan adalah program non-replikasi yang

berpura-pura sah, tetapi sebenarnya dirancang untuk melakukan tindakan

berbahaya terhadap korban mereka. Diberi nama “Trojan” karena malware ini

bertindak dengan cara yang sama seperti kuda Troya Yunani yang terkenal,

menyembunyikan diri mereka sebagai program yang bermanfaat sambil diam-diam

menjalankan fungsi destruktif mereka yang sebenarnya. Karena Trojan tidak

Page 28: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

11

mereplikasi diri, maka mereka tidak menyebar sendiri, melainkan melalui Internet

untuk menjangkau banyak pengguna. Trojan terus berkembang dalam berbagai

bentuk, seperti Backdoor Trojan (yang mencoba mengambil alih kendali

administrasi komputer korban) dan Trojan Downloader (yang menginstal kode

berbahaya lain ke komputer korban).

II.1.4. Ransomware

Ransomware adalah jenis malware yang dirancang untuk memeras uang dari para

korbannya. Malware ini mampu mengambil alih kendali atas sebuah komputer dan

mencegah penggunanya untuk mengakses data hingga tebusan dibayar. Saat ini,

terdapat jenis ransomware yang lebih canggih, dimana operasi dilakukan dengan

mengenkripsi berkas-berkas pada komputer korban sehingga tidak dapat diakses.

Ransomware dapat muncul sebagai pop up, tautan phishing, atau situs web jahat,

dan jika ditindaklanjuti maka akan memicu kerentanan dalam sistem pengguna,

mengunci keyboard dan layar, dan bahkan seluruh komputer.

II.1.5. Rootkit

Rootkit adalah bentuk malware yang dirancang khusus untuk menyembunyikan

keberadaan dan tindakannya dari pengguna dan perangkat lunak perlindungan

apapun yang telah diinstal pada sistem korban. Rootkit dapat melakukan ini melalui

integrasi mendalam dengan sistem operasi, bahkan terkadang dimulai sebelum

sistem operasi melakukannya (bootkit). Perangkat lunak antivirus canggih masih

dapat mendeteksi rootkit dan menyingkirkannya.

II.1.6. Backdoor

Backdoor atau Remote Administration Tool (RAT) adalah aplikasi yang

memungkinkan seorang administrator sistem atau cybercriminal mengakses sistem

komputer tanpa persetujuan atau sepengetahuan pengguna. Bergantung pada fungsi

RAT, penyerang dapat menginstal dan meluncurkan perangkat lunak lain,

mengirim penekanan tombol, mengunduh atau menghapus file, mengaktifkan

mikrofon dan / atau kamera, atau mencatat aktivitas komputer dan mengirimkannya

kembali ke penyerang.

Page 29: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

12

II.1.7. Downloader

Infeksi ini adalah potongan kecil kode yang digunakan untuk mengambil file yang

dapat dieksekusi secara diam-diam, atau file yang memerintahkan komputer korban

untuk melakukan tugas yang ditunjukkan dari server. Setelah diunduh, melalui hal-

hal seperti lampiran email dan gambar berbahaya, mereka berkomunikasi kembali

ke server perintah dan kemudian diperintahkan untuk mengunduh malware

tambahan ke sistem korban.

II.2. Kajian Penelitian Terkait

Bagian ini berisi penelitian-penelitian sebelumnya terkait database dan deteksi

malware.

II.2.1. Database

Database merupakan sekumpulan data yang disimpan secara sistematis dan dapat

dikelola sesuai kebutuhan. Terdapat dua jenis database yaitu database relasional

dan non-relasional. Database relasional adalah suatu konsep penyimpanan data

terstruktur dengan pengaturan data dalam tabel yang berisi baris dan kolom [12].

Database ini memiliki kumpulan tabel item data yang diatur sesuai dengan model

relasional, dimana setiap skema tabel harus mengidentifikasi kolom utama untuk

mengidentifikasi baris yang disebut kunci utama [13]. Database Relasional telah

menyediakan ruang penyimpanan selama beberapa dekade dengan implementasi

seperti Oracle, MySQL, dll [14]. Sedangkan teknologi database non-relasional

dapat menangani berbagai jenis data, dari yang terstruktur, semi-terstruktur hingga

data tidak terstruktur. Sistem NoSQL adalah database non-relasional yang

dirancang untuk memberikan aksesibilitas tinggi, keandalan, dan skalabilitas untuk

data yang sangat besar [15].

Database relasional maupun non-relasional memiliki kelebihan dan kekurangan

masing-masing. Pemilihan jenis database ini disesuaikan dengan kebutuhan dan

konsep sistem yang akan diterapkan. Pada penelitian ini, jenis database relasional

(SQL) paling sesuai untuk konsep sistem database malware, dimana sistem

database yang akan dirancang sudah jelas strukturnya. Database SQL yang akan

digunakan pada penelitian ini yaitu MariaDB.

Page 30: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

13

II.2.2. Teknik Deteksi Malware

Terdapat sejumlah program antivirus yang dapat mendeteksi, memblokir, dan

menghapus malware apapun yang berjalan pada sistem. Terdapat empat mekanisme

dan teknik yang digunakan oleh perangkat lunak antivirus untuk mendeteksi

keberadaan malware, yaitu sebagai berikut [16]:

1. Deteksi Berbasis Signature: Metode ini beroperasi pada pencocokan sidik

jari (fingerprint) pada file dengan signature virus. Signature adalah

serangkaian byte dalam file. Pada teknik signature ini dilakukan dulu

analisa terhadap sample malware. Dari hasil analisa ini dibuat sebuah model

yang disebut sebagai signature. Setelah itu signature ini akan dibandingkan

dengan file yang akan dianalisa. Kelemahan dari metode deteksi ini adalah

tidak bisa mendeteksi jenis malware baru yang belum ada signature-nya.

2. Deteksi Berbasis Heuristic: Dalam teknik ini program antivirus beroperasi

dengan cara memeriksa file statis untuk setiap karakteristik yang

mencurigakan tanpa kecocokan signature yang tepat. Teknik ini juga dapat

menandai file yang sah sebagai file berbahaya.

3. Deteksi Berbasis Behavior: Deteksi berbasis perilaku bekerja dengan

mengamati perilaku file yang mencurigakan. Metode ini beroperasi dengan

mengeksekusi dan membongkar malcode dan mendengarkan penekanan

tombol dll. Teknik ini memberikan program antivirus kemampuan untuk

mendeteksi program jahat dalam sistem komputer.

4. Deteksi Berbasis Cloud: Teknik berbasis cloud mengidentifikasi kesalahan

dengan mengumpulkan data dari berbagai komputer yang dilindungi,

menganalisis semua data dan mengirimkan hasilnya ke klien. Keputusan

dibuat dengan menganalisis karakteristik dan behavior klien.

Penelitian ini menggunakan teknik deteksi malware berbasis signature, karena

meskipun teknik ini memiliki kelemahan seperti tidak dapat menandai file

berbahaya jika signature dari virus baru belum dibuat, namun cara deteksi ini masih

lebih menjanjikan dibanding deteksi lain [1]. Selain itu, teknik ini juga dapat

dilakukan dengan cepat dibanding dengan teknik deteksi lain, sehingga sangat

sesuai dengan layanan yang akan diberikan oleh sistem database malware ini.

Page 31: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

14

II.3. Virus Total

Virus Total [17] merupakan layanan pemindaian online yang menyediakan mesin

pendeteksi malware (antivirus) dari berbagai vendor. Dengan memadukan

database malware dari berbagai perangkat antivirus, produk ini dapat mendeteksi

malware pada file atau URL yang di unggah oleh pengguna. Namun, karena

menggunakan teknik deteksi berbasis signature, maka produk ini memiliki

keterbatasan dalam mendeteksi malware baru yang belum tercatat signature-nya

[18]. Virus Total memiliki API Publik yang dapat diakses digunakan untuk

melakukan scanning file baik dengan cara mengunggah berkas file maupun

mengirimkan hash file. Pengguna membutuhkan api-key untuk dapat mengakses

API Publik Virus Total. Api-key ini didapatkan dari hasil registrasi pada

https://www.virustotal.com/gui/sign-in [19]. Terdapat beberapa keterbatasan dalam

mengakses API Publik Virus Total, diantaranya:

1. Jumlah permintaada API Publik dibatasi hingga 4 permintaan per menit dan

1000 permintaan per hari,

2. API Publik tidak boleh digunakan dalam produk atau layanan komersial.

3. API Publik tidak boleh digunakan dalam alur kerja bisnis yang tidak

berkontribusi terhadap file baru.

Pada penelitian ini, sistem menggunakan dua metode deteksi, salah satunya adalah

Virus Total. Deteksi dilakukan dengan cara mengirimkan request GET dan data

hash file ke API Publik Virus Total di https://developers.virustotal.com/v3.0 [20].

II.4. Sampel Malware

Penelitian malware tidak terlepas dari kebutuhan untuk mengumpulkan sampel

malware. Terdapat beberapa cara untuk dapat mengumpulkan sampel malware,

salah satunya yaitu menggunakan honeypots yang dipasang pada komputer.

Namun, cara termudah untuk mendapatkan sampel malware yaitu melalui website

database yang menyediakan sampel-sampel malware. Hal tersebut dinilai lebih

efektif karena terdapat berbagai jenis malware yang tersedia [21]. Pada penelitian

ini, sampel malware didapatkan dari beberapa web penyedia sampel malware yaitu

theZoo (Github) dan tutorialjinni.com.

Page 32: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

15

Bab III Perancangan Sistem

III.1. Metode Perancangan Sistem

Sistem ini diimplementasikan secara software dengan menggunakan metode

waterfall menurut Roger S. Pressman [22]. Metodologi ini menjadi panduan dalam

perancangan, pembangunan dan pengembangan sistem database malware.

Tahapan dalam metode waterfall ini ditunjukkan pada Gambar III. 1.

Gambar III. 1 Metode Waterfall

Tahap awal Requirement yaitu melakukan analisis kebutuhan. Pada penelitian ini,

analisa kebutuhan dilakukan terhadap informasi yang diperoleh melalui

wawancara, diskusi, dan survey. Selanjutnya pada tahap Design, dilakukan

perancangan sistem berdasarkan hasil analisa kebutuhan dari tahap sebelumnya.

Perancangan sistem ini menggunakan aplikasi desain yEd Graph Editor dan

proto.io. Tahap ketiga Implementation yaitu dilakukan pembangunan sistem. Pada

penelitian ini, sistem dibangun menggunakan bahasa pemrograman PHP. Sistem

yang sudah dibangun kemudian dikembangkan dan diuji pada tahap Verification.

Pengujian sistem dilakukan terhadap fungsionalitas, kinerja, dan keamanan Sistem

Database Malware. Tahap terakhir yaitu Maintenance, dimana program yang sudah

dibangun lalu dijalankan dan dilakukan pemeliharaan. Pemeliharaan ini termasuk

dalam memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya.

Page 33: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

16

III.2. Konsep Sistem

Sistem Database Malware merupakan aplikasi berbasis web yang digunakan untuk

mendeteksi malware secara online. Selain itu, sistem ini juga digunakan untuk

menyimpan, dan mengelola sampel serta informasi terkait malware untuk

kebutuhan analisis dan penelitian. Konsep secara keseluruhan pada Gambar III. 2.

Gambar III. 2 Konsep Sistem Keseluruhan

Dalam sistem ini terdapat tiga aktor, yaitu admin, user, dan mitra. Admin adalah

pengelola basis data yang memiliki hak akses penuh atas basis data. Sedangkan

mitra dan user merupakan client dalam sistem ini. Aktor dapat mengakses sistem

melalui aplikasi web, dimana admin memiliki aplikasi terpisah dari user dan mitra.

Semua permintaan (Request) yang masuk baik dari web admin maupun web sistem

akan diteruskan ke REST-API untuk dikelola. REST-API akan memvalidasi

permintaan, mengubah data (jika ada) menjadi JSON dan menentukan apakah

permintaan harus diteruskan ke Database Malware atau ke API Publik Virus Total.

Kemudian REST-API akan mengolah respon (Feedback) yang menjadi sebuah

laporan dan meneruskannya ke aplikasi web. Pada penelitian ini terdapat bagian

perancangan sistem yang tidak diimplementasikan, diantaranya penambahan RTIR

untuk Ticketing System, penggunaan VM untuk proses ZIP-UNZIP, penambahan

Reporting System dan penambahan server khusus untuk analisa malware.

Page 34: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

17

III.2.1. Sistem Admin

Konsep sistem admin ditunjukkan pada Gambar III. 3, dimana permintaan

(Request) dikirimkan melalui aplikasi web admin. Permintaan berupa penambahan

data, perubahan data, penghapusan, pengunduhan sampel malware maupun untuk

melihat data. Database Malware menyimpan sampel dan data-data terkait malware,

benign, sampel baru yang dilaporkan oleh mitra/user, akun admin, akun mitra, dan

catatan aktivitas aktor. Permintaan dikirim ke REST API sebelum diteruskan ke

Database Malware. REST API akan memvalidasi permintaan dan mengubah data

yang dikirim dalam bentuk HTML menjadi JSON. Database Malware kemudian

akan mengirimkan respon dalam bentuk JSON dan kode status ke REST API untuk

diolah menjadi sebuah laporan yang ditampilkan pada web admin.

Gambar III. 3 Konsep Sistem Admin

Pada penelitian ini, Reporting System tidak diimplementasikan, dimana seharusnya

sistem dapat membuat laporan berkala (perbulan dan pertahun) secara otomatis.

Laporan berisi data tentang jumlah berkas yang dideteksi/diunggah klien, jumlah

malware baru yang ditemukan, dan data lainnya yang dibutuhkan untuk keperluan

administrasi. Selain itu, sampel malware baru (dari mitra maupun user) seharusnya

dikirimkan dan disimpan dalam sebuah server khusus (lab malware) untuk proses

analisa lebih lanjut. Pengelola server juga harus memiliki arsip dari semua jenis

sistem operasi atau environment yang menjadi target setiap malware. Hal tersebut

diperlukan agar dapat menjalankan malware untuk proses analisis dan penelitian.

Seharusnya sampel malware, metadata, dan sistem operasi target disimpan dalam

server terpisah, namun pada penelitian ini hal tersebut tidak diimplementasikan

(proses analisa malware dilakukan secara terpisah dari sistem).

Page 35: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

18

III.2.2. Sistem User

User dapat mengakses sistem melalui Website Sistem, seperti pada Gambar III. 4.

Pada sistem ini user dapat melakukan deteksi malware terhadap suatu berkas (file)

dan melaporkan sampel yang dicurigai sebagai malware untuk dianalisa. Terdapat

dua metode deteksi pada aplikasi web, yaitu Virus Total dan metode deteksi

Default. Ketika user mengunggah berkas dan memilih metode deteksi Virus Total,

maka permintaan tersebut akan dikirimkan ke REST API untuk kemudian

diteruskan ke Virus Total melalui API Publik Virus Total. Respon dari Virus Total

kemudian diolah dan dilaporkan oleh REST API ke Website Sistem. Hasil deteksi

menggunakan Virus Total dibagi menjadi tiga kategori, yaitu detected (malware),

undetected (benign), dan queue (berkas akan dianalisa lebih lanjut).

Gambar III. 4 Konsep Sistem User

Jika user memilih metode Default untuk mendeteksi berkas yang diunggah, maka

permintaan akan diteruskan oleh REST API ke Database Malware. Pada tahap ini,

berkas akan di hash menggunakan SHA-256. Hash berkas kemudian dicocokkan

dengan hash sampel yang tersimpan dalam Database Malware. Hasil deteksi dibagi

menjadi empat kategori status, yaitu terdeteksi (malware), file aman (benign),

proses analisa (sampel baru), dan perlu analisa (berkas dilaporkan sebagai sampel

baru). Status ini ditentukan dari hasil pencocokkan hash, dimana hash yang cocok

dengan data malware menunjukkan bahwa berkas terinfeksi/terdeteksi malware

sedangkan hash yang cocok dengan data benign adalah file aman/tidak terdeteksi.

Page 36: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

19

Selain itu, jika hash cocok dengan data sampel baru maka berkas merupakan sampel

yang dicurigai sebagai malware dan sedang dalam proses analisa lebih lanjut.

Sementara hash yang tidak cocok dengan data manapun dalam basis data,

ditetapkan sebagai sampel baru yang memerlukan analisa lebih lanjut. Pada

kategori ini seharusnya sampel baru dikirimkan ke Ticketing System untuk

memantau proses analisa (menggunakan Request Tracker) dan disimpan dalam

server khusus untuk dianalisa. Namun, pada penelitian ini, hal tersebut tidak

diimplementasikan. Ticketing dilakukan menggunakan nomor ID sampel pada basis

data sebagai tiket dan sampel baru masih disimpan dalam basis data yang sama.

III.2.3. Sistem Mitra

Mitra memiliki keuntungan khusus dibanding user. Selain mendeteksi dan

melaporkan malware, mitra juga dapat mengunduh sampel malware, melihat hasil

analisa dan metadata terkait malware tersebut. Untuk bergabung menjadi mitra,

calon mitra harus mendaftarkan diri terlebih dahulu dan mendapatkan akun. Akun

ini kemudian digunakan untuk login pada menu khusus di aplikasi Website Sistem.

Gambar III. 5 Konsep Sistem Mitra

Gambar III. 5 menunjukkan bahwa permintaan (Request) dari mitra akan dikimkan

ke REST API melalui aplikasi web. Selain dapat mendeteksi dan melaporkan

malware, mitra juga dapat mengelola akun dan melihat catatan aktivitas pribadinya.

Page 37: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

20

Proses deteksi malware pada sistem mitra sama seperti sistem user, dimana mitra

dapat melakukan deteksi menggunakan Virus Total dan metode deteksi Default.

Ketika mitra mengirimkan permintaan untuk mengunduh malware, maka

permintaan tersebut akan dikirim ke REST API server dan kemudian diteruskan ke

Database Malware. Pada basis data ini, sampel-sampel malware disimpan dalam

bentuk ZIP ber-password agar tidak menginfeksi sistem. Password ZIP yang

digunakan merupakan password default admin. Password admin ini sebaiknya

tidak diketahui oleh mitra, oleh karena itu saat mitra meminta sistem untuk

mengunduh sampel malware, pergantian password harus dilakukan terlebih dahulu.

Proses pergantian password ZIP ini sangat berbahaya jika dilakukan didalam

sistem, karena malware dapat menginfeksi sistem saat proses UNZIP dilakukan

(untuk membuka password admin). Oleh karena itu, dibutuhkan suatu container

atau environment lain yang dapat digunakan untuk proses ini. Virtual Machine

dapat digunakan untuk melakukan proses ZIP-UNZIP ini. Namun pada penelitian

ini, proses ZIP-UNZIP tidak diimplementasikan. Pada penelitian ini, password ZIP

diketahui dan digunakan bersama oleh admin dan mitra. Respon dari Database

Malware berupa sampel malware dalam bentuk ZIP ber-password. Respon ini

kemudian diteruskan oleh REST-API ke aplikasi web untuk diunduh mitra.

III.3. Kebutuhan dan Spesifikasi Perangkat

Penelitian ini membutuhkan perangkat keras dan perangkat lunak dalam proses

perancangan, pembangunan, dan pengembangan Sistem Database Malware. Selain

itu juga dibutuhkan perangkat pendukung untuk proses penulisan laporan dan

dokumentasi.

III.3.1. Perangkat Keras

Penelitian ini dikerjakan menggunakan laptop ACER Swift SF314-56G, dengan

spesifikasi sebagai berikut:

▪ Processor : Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz 1.80GHz

▪ RAM : 8,00 GB

▪ System Type : 64-bit operating system, x64-based processor

Page 38: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

21

III.3.2. Perangkat Lunak Perancangan Sistem

Perangkat lunak yang digunakan pada perancangan sistem ini yaitu:

1. Sistem Operasi Windows 10 Home Single Language.

2. XAMPP digunakan untuk pengembangan aplikasi web dan database.

3. Google Chrome sebagai web browser yang digunakan untuk pengembangan

dan pengujian sistem.

4. Visual Studio Code sebagai teks editor yang digunakan untuk membantu

proses pembuatan dan pengembangan sistem.

5. Postman digunakan untuk pengembangan dan pengujian REST API baik

dari sisi REST Client, REST Server, maupun koneksi ke API Publik.

6. LoadImpact digunakan untuk menguji kinerja sistem.

7. Virtual Box digunakan untuk melakukan analisa sampel malware.

8. Bootstrap 4 sebagai kerangka kerja CSS dan HTML untuk pengembangan

front-end website.

9. CodeIgniter digunakan sebagai kerangka kerja PHP dengan model MVC

untuk pembangunan sistem REST API Server.

10. Guzzle digunakan sebagai library PHP untuk melakukan HTTP request

pada sistem REST API Client.

11. Sampel Malware yang didapat dari the Zoo (GitHub) dan tutorialjinni.com.

III.3.3. Perangkat Lunak Pendukung

Perangkat pendukung yang digunakan untuk penulisan buku tesis dan dokumentasi:

1. yEd Graph Editor digunakan untuk membuat diagram use case.

2. Draw.io digunakan untuk membuat diagram alir dan relasi basis data.

3. Zotero digunakan untuk pembuatan daftar pustaka dalam buku tesis ini.

4. OBS Studio dan Wondershare Filmora 9 untuk membuat video demo.

III.4. Desain Sistem

Konsep sistem yang telah dibuat kemudian digunakan untuk merancang sistem

database malware secara utuh, menentukan aktor, dan fitur-fitur yang dibutuhkan

serta menetapkan hak akses untuk setiap aktor. Diagram use case dan diagram alir

juga dibuat dalam perancangan sistem database malware ini.

Page 39: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

22

III.4.1. Aktor, Fitur, dan Hak Akses

Terdapat tiga aktor dalam penelitian ini, yaitu admin, user, dan mitra. Masing-

masing aktor memiliki fitur dan hak akses yang berbeda. Admin merupakan aktor

pengelola basis data, sedangkan user dan mitra sebagai aktor pengguna (client).

Tabel III. 1 menunjukkan desain fitur dan penetapan hak akses untuk admin. Pada

sistem ini, hanya admin yang memiliki hak akses penuh atas pengelolaan basis data.

Tabel III. 1 Fitur dan Hak Akses Admin

AKTOR: ADMIN

FITUR HAK AKSES

Login Admin Admin harus menginputkan username dan password akun

untuk dapat mengakses sistem.

Halaman Menu Admin Admin dapat melihat keterangan fungsi setiap menu.

Database Benign

Admin dapat melihat/mengubah/menghapus basis data yang

menyimpan sampel berkas berstatus aman yang sudah

dianalisa oleh admin.

Database Malware Admin dapat melihat/mengubah/menghapus sampel malware,

metadata dan analisa statik malware yang pernah dianalisa

Analisa File Admin dapat melihat/menghapus/mengunduh daftar sampel

baru yang belum dianalisa.

Tambah File

Admin dapat menambahkan sampel baru yang telah dianalisa,

baik yang ditemukan oleh admin maupun dari user, dimana

sampel tersebut dimasukkan kedalam basis data yang sesuai

dengan hasil analisa (sampel benign atau malware).

Recent

Admin dapat melihat catatan aktivitas pengelolaan basis data

baik itu menambahkan sampel, menghapus, mengedit, dan

mengunduh sampel. Selain itu, catatan juga berisi keterangan

waktu dan akun admin yang bertanggung jawab atas

perubahan data tersebut.

Registrasi

Admin dapat menambahkan akun untuk admin dan mitra yang

baru bergabung. Admin mendaftarkan mitra setelah calon

mitra meminta bergabung melalui email. Pembuatan akun

mitra menggunakan username dan password sementara yang

dapat diubah setelah mitra login ke sistem mitra.

Data Admin

Admin dapat melihat data seluruh admin kecuali password.

Admin juga dapat menghapus akun admin lain yang sudah

tidak terpakai.

Data Mitra

Admin dapat melihat data seluruh mitra kecuali password.

Admin juga dapat menghapus akun mitra yang sudah tidak

aktif.

Logout Menu keluar dari sistem admin.

Page 40: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

23

User merupakan aktor pengguna yang ditujukan untuk masyarakat umum. Sistem

ini diharapkan dapat membantu user dalam mendeteksi malware. Sistem user harus

terbuka dan mudah diakses oleh semua orang, sehingga tidak memerlukan sistem

login. Fitur dan hak akses user sepenuhnya ditunjukkan pada Tabel III. 2.

Tabel III. 2 Fitur dan Hak Akses User

AKTOR: USER

FITUR HAK AKSES

Halaman Menu User Pengguna dapat melihat fitur-fitur web dan fungsinya sesuai hak

akses pengguna.

Deteksi Pengguna dapat mengunggah berkas untuk mendeteksi status

berkas tersebut apakah mengandung malware atau tidak.

Riwayat User Pengguna dapat melihat catatan aktivitas dan status hasil deteksi

dari berkas yang pernah di unggah oleh semua pengguna.

Mitra merupakan aktor pengguna yang memiliki hak akses istimewa. Sistem mitra

ditujukan untuk rekan mitra yang diharapkan dapat berkontribusi dan saling berbagi

informasi terkait malware. Sasaran aktor ini yaitu pengelola antivirus,

instansi/badan yang mengelola data atau menangani kasus malware, dan peneliti

malware. Tabel III. 3 menunjukkan fitur dan hak akses mitra.

Tabel III. 3 Fitur dan Hak Akses Mitra

AKTOR: MITRA

FITUR HAK AKSES

Login Mitra Mitra harus memasukkan username dan password akun untuk

dapat mengakses sistem.

Halaman Menu Mitra Mitra dapat melihat fitur-fitur web dan fungsinya.

Profil Mitra dapat mengelola akun miliknya, mengubah data dan foto

profil serta mengganti password.

Deteksi Mitra dapat mengunggah berkas untuk mendeteksi status

berkas tersebut apakah mengandung malware atau tidak.

Lab Malware

Mitra dapat mengunduh sampel malware dan melihat

informasi detail dari hasil analisa admin, baik itu metadata,

analisa statik, cara penanganan, dan informasi lainnya terkait

malware tersebut.

Riwayat Mitra Mitra dapat melihat catatan aktivitas miliknya, mulai dari

aktivitas deteksi hingga mengunduh sampel malware.

Logout Menu keluar dari sistem mitra.

Page 41: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

24

III.4.2. Diagram Use Case

Diagram use case digunakan untuk memberikan gambaran singkat tentang

hubungan antara use case, aktor dan sistem. Selain itu juga untuk menjelaskan

fungsi-fungsi apa saja yang berada pada sistem yang dibangun. Gambar III. 6

menunjukkan diagram use case admin.

Gambar III. 6 Diagram Use Case Admin

Admin harus login untuk dapat mengakses sistem admin. Setelah login, admin

dapat melakukan pengelolaan basis data pada data malware, benign, sampel baru,

akun admin, dan akun mitra. Admin juga dapat melihat catatan aktivitas admin.

Page 42: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

25

Gambar III. 7 Diagram Use Case User

Gambar III. 7 merupakan use case user, dimana user dapat masuk ke sistem tanpa

memerlukan login. User dapat melihat catatan aktivitasnya dan melakukan deteksi

malware pada suatu berkas dengan menggunakan metode Default atau Virus Total.

Sedangkan diagram use case mitra ditujukkan pada Gambar III. 8. Mitra harus

melakukan login terlebih dahulu untuk dapat mengakses sistem. Mitra memiliki

akun yang dapat dikelola olehnya, baik itu untuk mengubah password, foto profil,

maupun data akun lainnya. Sama seperti user, mitra juga dapat mendeteksi malware

pada suatu berkas menggunakan metode Default maupun Virus Total. Selain itu,

mitra juga dapat mengakses data malware, seperti melihat detail informasi terkait

analisa dan metadata malware serta dapat mengunduh sampel malware.

Gambar III. 8 Diagram Use Case Mitra

Page 43: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

26

III.4.3. Diagram Alir

Diagram alir memperlihatkan urutan dan hubungan antar proses beserta dengan

instruksinya. Gambar III. 9 menunjukkan proses yang terjadi dalam sistem user.

Gambar III. 9 Diagram Alir Sistem User

Gambar III. 10 Diagram Alir Deteksi (Virus Total)

Page 44: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

27

Sistem user memiliki dua menu, yaitu deteksi dan riwayat. Terdapat dua metode

pada menu deteksi, yaitu Virus Total dan Default. Deteksi Virus Total ditunjukkan

pada Gambar III. 10. Pada deteksi ini, sistem akan mengirimkan berkas ke Virus

Total melalui REST API Publik. Respon dari Virus Total kemudian diolah menjadi

laporan dengan tiga kategori status, yaitu Detected (berkas terinfeksi malware),

Undetected, dan Queue (berkas tidak ada dalam dataset). Pada status Queue, sistem

mengirimkan scan ID untuk memantau hasil analisa pada web resmi Virus Total.

Deteksi Default ditunjukkan pada Gambar III. 11 dimana hash berkas akan

dicocokkan dengan hash yang ada dalam basis data. Hasil deteksi Default terbagi

menjadi empat kategori, yaitu “Terdeteksi” (malware), “File Aman” (tidak

terdeteksi), “Proses Analisa” (sampel baru), dan “Perlu Analisa” (hash tidak ada

dalam basis data sistem). Pada status “Perlu Analisa”, sistem akan meminta user

menginputkan email (melaporkan sampel) untuk mengirimkan tiket sampel.

Gambar III. 11 Diagram Alir Deteksi (Metode Default)

Page 45: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

28

Diagram alir sistem mitra ditunjukkan pada Gambar III. 12 dan Gambar III. 13.

Menu utama sistem mitra terdiri dari menu profil, deteksi, lab dan riwayat.

Gambar III. 12 Diagram Alir Sistem Mitra (Login - Profil)

Page 46: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

29

Sebelum masuk ke menu utama, mitra harus login dengan akun miliknya. Akun

didapatkan dari admin dengan mengirimkan permintaan melalui email. Admin akan

mengirimkan username dan password sementara, kemudian mitra dapat mengganti

password dan mengubah data akun miliknya menggunakan menu profil. Sistem

mitra juga menyediakan menu lab untuk mengunduh dan melihat data malware.

Gambar III. 13 Diagram Alir Mitra (Deteksi - Logout)

Page 47: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

30

Gambar III. 14 Diagram Alir Sistem Admin (Login - DB Malware)

Sistem admin memiliki delapan menu utama, yaitu menu DB Malware, DB Benign,

Analisa File, Tambah File, Registrasi, Data Admin, Data Mitra, dan Menu Recent.

Gambar III. 14 menunjukkan diagram alir untuk menu DB Malware. Pada menu

ini, admin dapat mengelola basis data malware. Pengelolaan meliputi melihat

metadata dan hasil analisa, merubah metadata, menghapus, dan mengunduh sampel.

Page 48: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

31

Gambar III. 15 Diagram Alir Sistem Admin (DB Benign)

Gambar III. 16 Diagram Alir Sistem Admin (Analisa File)

Page 49: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

32

Gambar III. 15 adalah diagram alir menu DB Benign. Pada menu ini, admin dapat

melihat, menghapus, dan mengunduh sampel benign. Selain mengelola benign dan

malware, admin juga mengelola sampel baru yang dicurigai sebagai malware.

Sampel baru ini didapatkan dari laporan user dan mitra saat proses deteksi

menggunakan metode Default. Sampel baru sini dikelola melalui menu Analisa

File, seperti yang ditunjukkan pada Gambar III. 16. Sampel diunduh untuk dianalisa

lebih lanjut dan dihapus ketika hasil analisa sudah selesai. Hasil analisa akan

menentukan apakah sampel baru merupakan benign atau malware. Selanjutnya,

sampel ini akan ditambahkan ke database menggunakan menu Tambah File, seperti

yang ditunjukkan pada Gambar III. 17.

Gambar III. 17 Diagram Alir Sistem Admin (Tambah File)

Gambar III. 18 menjelaskan alur dari menu registrasi, dimana admin dapat

mendaftarkan dan membuat akun untuk mitra dan admin baru. Selanjutnya akun

dapat dikelola dengan menu Data Admin dan Data Mitra.

Page 50: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

33

Gambar III. 18 Diagram Alir Sistem Admin (Registrasi - Logout)

Page 51: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

34

III.5. Desain Database

Desain database disesuaikan dengan kebutuhan pada perancangan fitur sitem.

Relasi antar tabel dalam database ditunjukkan pada Gambar III. 19.

Gambar III. 19 Relasi Database

Page 52: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

35

Bab IV Implementasi & Pengujian

IV.1. Implementasi Sistem

Pada penelitian ini, telah berhasil diimplementasikan sebuah Sistem Database

Malware dalam bentuk prototipe. Sistem ini berupa aplikasi berbasis web yang

berfungsi untuk mendeteksi dan mengoleksi data malware. Penjelasan mengenai

implementasi Sistem Database Malware dibagi berdasarkan fungsi-fungsi yang

berjalan pada sistem. Informasi yang disajikan dalam bagian implementasi ini berisi

tampilan dari aplikasi web, penjelasan fungsi dan cara kerjanya, potongan program

dan keterangan lain terkait fungsi tersebut.

IV.1.1. Halaman Utama Menu

Gambar IV. 1 Halaman Utama User & Mitra

Tampilan utama dari aplikasi web sistem ditunjukkan pada Gambar IV. 1. Halaman

ini merupakan halaman menu user, dimana terdapat fitur-fitur user yaitu deteksi

dan riwayat. Selain itu, terdapat pula fitur mitra yang berfungsi untuk mengakses

halaman login mitra. Ketika mitra login ke akunnya melalui apilikasi web sistem

maka akan muncul halaman utama mitra seperti pada Gambar IV. 2. Halaman ini

berisi daftar menu mitra seperti menu profil, deteksi, lab dan riwayat mitra.

Page 53: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

36

Gambar IV. 2 Halaman Menu Mitra

Tampilan utama aplikasi web admin adalah halaman login admin. Setelah login,

maka admin akan masuk ke halaman menu admin seperti pada Gambar IV. 3.

Gambar IV. 3 Halaman Menu Admin

Page 54: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

37

IV.1.2. Fungsi Login

Sebelum masuk ke halaman utama menu mitra dan admin, maka harus melalui

halaman login terlebih dahulu, seperti yang ditunjukkan pada Gambar IV. 4.

Gambar IV. 4 Halaman Login

Pada halaman ini, admin dan mitra harus memasukkan username dan password

akun untuk dapat mengakses sistem. Potongan program untuk fungsi login admin

ditunjukkan pada Algoritma IV. 1, sedangkan fungsi login mitra menggunakan

konsep program yang sama, hanya saja basis data yang diakses berbeda.

Algoritma IV. 1 Login (Admin)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

if(isset($_POST["login"])) {

$username = addslashes(trim($_POST['username']));

$password = addslashes(trim($_POST['password']));

$row = getAdminByUsername($username);

if ($row) {

if(password_verify($password, $row["password"])) {

$_SESSION["login"] = true;

if( isset($_POST["remember"])){

setcookie('id', $row['id_admin'], time()+3600);

setcookie('key',hash('sha256',$row['username']),time()+3600);

}

$ida = $row["id_admin"];

header("Location: home.php?ida=$ida");

exit;

}

}

$error = true;

}

Page 55: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

38

Dalam program terlihat bahwa sistem akan mencari username dalam basis data

sesuai input dari admin. Ketika username terdaftar dalam basis data, maka

password akan di verifikasi. Jika akun valid maka sesi akan dibangun dan halaman

menu admin akan ditampilkan. Namun, jika username atau password salah maka

notifikasi kesalahan akan ditampilkan, seperti pada Gambar IV. 5.

Gambar IV. 5 Login – Username atau Password Salah

IV.1.3. Fungsi Deteksi

Gambar IV. 6 Deteksi User & Mitra

Page 56: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

39

Deteksi merupakan salah satu fungsi terpenting dalam sistem ini. Fungsi deteksi

terdapat pada aplikasi web sistem yang digunakan oleh user dan mitra untuk

mendeteksi malware pada suatu berkas. Tampilan menu deteksi untuk user dan

mitra dapat dilihat pada Gambar IV. 6. Terdapat dua metode deteksi pada menu ini,

yaitu Virus Total dan Default. Pada saat user atau mitra memilih metode deteksi

Default, maka sistem akan menjalankan program untuk mencocokkan hash berkas

dengan hash yang berada pada basis data. Algoritma IV. 2 adalah potongan

program untuk mencocokkan hash berkas dengan hash benign pada basis data.

Algoritma IV. 2 Deteksi Default – File Aman

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$rowb = getBenignByHash($sha256_user);

if($rowb) {

$id = $rowb["id_benign"];

header("Location: deteksi_aman.php?id=$id");

$data = [

'file_user' => $rowb["file_benign"],

'sha256_user' => $rowb["sha256_benign"],

'status' => "File Aman",

'metode' => "Default"

];

createRiwayat($data);

}

Jika hash cocok dengan benign, maka program akan menjalankan file

deteksi_aman.php dan menjalankan fungsi createRiwayat untuk mencacat aktivitas

aktor. Program tersebut akan menampilkan laporan hasil deteksi seperti pada

Gambar IV. 7. ID benign juga dikirimkan ke program untuk menampilkan detail

informasi mengenai benign.

Gambar IV. 7 Deteksi Default - File Aman

Page 57: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

40

Selanjutnya jika hash berkas tidak cocok dengan hash benign maka sistem akan

menjalankan program Algoritma IV. 3. Pada program ini, sistem akan

mencocokkan hash berkas dengan hash malware pada basis data. Jika hash cocok,

maka program akan menjalankan file deteksi_terdeteksi.php dan mengirimkan ID

malware. ID malware ini pada program selanjutnya digunakan untuk mencari detail

informasi malware pada basis data. Selain itu, program juga akan mencatat aktivitas

ini pada basis data menggunakan fungsi createRiwayat.

Algoritma IV. 3 Deteksi Default – Terdeteksi Malware

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$rowm = getMalwareByHash($sha256_user);

if($rowm) {

$data = $rowm["id_malware"];

header("Location: deteksi_terdeteksi.php?id=$data");

$data = [

'file_user' => $rowm["file_malware"],

'sha256_user' => $rowm["sha256_malware"],

'status' => "Terdeteksi",

'metode' => "Default"

];

createRiwayat($data);

}

Laporan hasil deteksi untuk berkas yang terinfeksi malware (Terdeteksi) berisi

status hasil deteksi, analisa statik, metadata malware, dan cara penganan serangan

malware. Selain itu, khusus untuk malware berjenis ransomware, laporan juga

berisi data-data khusus terkait ransomware. Informasi status deteksi ditunjukkan

pada Gambar IV. 8. Bagian ini berisi data rangkuman malware seperti signature

malware (SHA-256), nama file, ukuran file, tipe file, waktu submit saat user atau

mitra mendeteksi file, waktu input malware, dan status hasil deteksi.

Gambar IV. 8 Deteksi Default - Terdeteksi Malware (Status)

Page 58: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

41

Data terkait analisa statik dan metadata malware juga ditampilkan dalam laporan

ini, seperti pada Gambar IV. 9. Analisa statik berisi informasi mengenai berkas file

seperti nama file, tipe file, ukuran file, hash MD5, SHA-1, SHA-256, SSDEEP, dan

Vhash. Data-data tersebut dihasilkan secara otomatis oleh sistem sesuai dengan

berkas file yang diunggah. Sedangkan metadata diinputkan oleh admin dan berisi

informasi malware seperti nama malware, jenis, karakteristik, cara kerja dan

operasi malware, cara penyebaran, tingkat bahaya, target, dan keterangan lain.

Gambar IV. 9 Deteksi Default - Terdeteksi Malware (Analisa dan Metadata)

Page 59: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

42

Selain itu, informasi terkait cara penanganan dan data khusus ransomeware juga

ditampilkan dalam laporan ini, seperti pada Gambar IV. 10.

Gambar IV. 10 Deteksi Default - Terdeteksi Malware (Analisa)

Jika hash berkas tidak cocok dengan hash malware, maka sistem akan menjalankan

Algoritma IV. 4. Pada program ini, hash akan dicocoknya dengan hash sampel baru

dalam basis data. Jika hash cocok maka program deteksi_perlu_analisa.php akan

dijalankan untuk menampilkan laporan hasil deteksi.

Algoritma IV. 4 Deteksi Default – Proses Analisa

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$rowbaru = getBaruByHash($sha256_user);

if($rowbaru){

$id = $rowbaru["id_baru"];

header("Location: deteksi_proses.php?id=$id");

$data = [

'file_user' => $rowbaru["file_baru"],

'sha256_user' => $rowbaru["sha256_baru"],

'status' => "Proses Analisa",

'metode' => "Default"

];

createRiwayat($data);

}

Page 60: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

43

Laporan berisi status dan Tiket Sampel seperti pada Gambar IV. 11. Tiket Sampel

ini seharusnya diambil dari Ticketing System, namun pada penelitian ini Tiket

Sampel adalah ID Sampel baru dalam basis data. Status “Proses Analisa”

menunjukkan berkas sudah pernah diunggah. Berkas tersebut kemudian sudah

tersimpan dalam basis data sebagai sampel baru dan sedang dalam proses analisa.

Gambar IV. 11 Deteksi Default - Proses Analisa

Algoritma IV. 5 Deteksi Default– Perlu Analisa

1

2

3

4

5

6

7

8

9

10

11

12

13

else {

header("Location: deteksi_perlu_analisa.php?file=$file_user &size=

$ukuran_file_user &tipe=$tipe_file_user &sha256=$sha256_user");

uploadBaru($file, $file_user);

$data = [

'file_user' => $file_user,

'sha256_user' => $sha256_user,

'status' => "Perlu Analisa",

'metode' => "Default"

];

createRiwayat($data);

}

Jika hash tidak cocok dengan hash manapun dalam basis data, maka program

Algoritma IV. 5 akan dijalankan. Program ini akan menyimpan file dalam basis

data sebagai sampel baru menggunakan fungsi uploadBaru dan menjalankan

deteksi_perlu_analisa.php untuk menampilkan laporan berisi status “Perlu Analisa”

seperti pada Gambar IV. 12.

Page 61: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

44

Gambar IV. 12 Deteksi Default - Perlu Analisa

Program juga akan meminta user untuk menginputkan email, sedangkan pada menu

deteksi mitra program akan otomatis menuliskan email mitra. Setelah user

menginputkan email maka program Algoritma IV. 6 akan dijalankan.

Algoritma IV. 6 Deteksi Default – Simpan Sampel Baru 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

function createBaru($data){

global $client;

$file = explode(".", $data['file_baru']);

$file_baru = $file[0]. ".zip";

$data = [

'file_baru' => $file_baru,

'waktu_input' => date("d-m-Y"),

'tipe_file_baru' => "zip",

'ukuran_file_baru' => $data['ukuran_file_baru'],

'sha256_baru' => $data['sha256_baru'],

'pengirim' => $data['pengirim'],

'email' => htmlspecialchars($data['email']),

'status' => "Perlu Analisa"

];

$response = $client->request('POST', 'baru', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

if(($result['status']) === 0 ){

return 0;

} else {

return 1;

}

}

Pada program ini, sampel baru disimpan dalam basis data melalui REST API.

Kemudian sistem akan menampilkan laporan kembali berisi Tiket Sampel agar

Page 62: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

45

klien dapat memantau proses analisa sudah sampai tahap mana. Pada penelitian ini,

nomor tiket yang digunakan merupakan ID sampel baru dalam basis data.

Gambar IV. 13 Deteksi Default - Ticketing System

Sementara untuk deteksi Virus Total, sistem akan menjalankan program Algoritma

IV. 7. Program akan mengirimkan hash berkas yang diunggah ke API Publik Virus

Total. Respon dari Virus Total berupa kode status dan hasil analisa yaitu terinfeksi

malware (Detected), tidak terdeteksi (Undetected), atau perlu dianalisa (Queue).

Algoritma IV. 7 Deteksi Virus Total

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

function virusTotal($hash){

$headers = array('x-apikey:

e4f0c6fc1643f7fb301d1e19d3ab6720fcfd3a2e7a625d909e2082647920906b');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://www.virustotal.com/api/v3/

files/$hash");

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_POST,1);

curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');

curl_setopt($ch, CURLOPT_USERAGENT, "gzip, My php curl client");

curl_setopt($ch, CURLOPT_RETURNTRANSFER ,true);

curl_setopt($ch, CURLOPT_HTTPGET, true);

$result=curl_exec ($ch);

$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($status_code == 200) {

$js = json_decode($result, true);

return $js;

} else {

return 0;

}

curl_close ($ch);

}

Page 63: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

46

Respon akan diolah menjadi sebuah laporan. Gambar IV. 14 merupakan tampilan

laporan berisi rangkuman hasil deteksi saat berkas dinyatakan aman (Undetected).

Gambar IV. 14 Deteksi Virus Total – Undetected (hasil deteksi)

Sedangkan Gambar IV. 15 menunjukkan rincian hasil scanning dari berbagai

antivirus, dimana semua antivirus tidak mendeteksi adanya malware pada berkas.

Gambar IV. 15 Deteksi Virus Total - Undetected (scan antivirus)

dst…

Page 64: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

47

Gambar IV. 16 Deteksi Virus Total - Undetected (informasi detail)

Page 65: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

48

Selain itu, laporan juga berisi informasi detail berkas seperti pada Gambar IV. 16.

Laporan untuk berkas yang terinfeksi malware (Detected) juga dibagi menjadi tiga

bagian yaitu, rangkuman hasil deteksi pada Gambar IV. 17, rincian hasil scanning

antivirus pada Gambar IV. 18, dan informasi detail berkas pada Gambar IV. 19.

Gambar IV. 17 Deteksi Virus Total - Detected (hasil deteksi)

Gambar IV. 18 Deteksi Virus Total - Detected (scan antivirus)

dst…

Page 66: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

49

Dari laporan ini dapat diketahui bahwa dari 72 antivirus yang melakukan scanning,

terdapat 17 antivirus yang menyatakan adanya malicious pada bekas tersebut. Hal

tersebut berarti bahwa signature malware pada berkas ini sudah tercatat pada

dataset antivirus tersebut. Sedangkan antivirus lainnya belum memiliki data tentang

malware tersebut, sehingga tidak dapat mendeteksi malware ini.

Gambar IV. 19 Deteksi Virus Total - Detected (informasi detail)

Pada laporan ini juga terdapat data mengenai berkas seperti hash berkas pada Basic

Properties diantaranya MD5, SHA-1, SHA-256, Vhash, SSDEEP, dan data

pendukung lainnya. Terdapat pula catatan waktu pada bagian History, nama file

pada bagian Names, dan data berkas lainnya pada bagian ExifTool File Metadata.

Page 67: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

50

Respon lain yang dikirimkan oleh Virus Total yaitu Queue. Respon ini diberikan

ketika hash berkas tidak terdaftar dalam dataset Virus Total. Ketika itu, sistem akan

menjalankan program yang berfungsi mengirimkan berkas ke Virus Total untuk

dianalisa lebih lanjut. Tampilan laporan Queue dapat dilihat pada Gambar IV. 20.

Gambar IV. 20 Deteksi Virus Total – Queue

Laporan ini berisi scan-ID dan hash file yang nantinya digunakan untuk memantau

hasil analisa pada web Virus Total di http://www.virustotal.com/home/search.

Hasil analisa hanya dapat diakses jika proses analisa telah selesai.

IV.1.4. Fungsi Penampil Data

Fungsi penampil data berfungsi untuk menampilkan data-data dalam basis data

maupun informasi yang diperlukan oleh aktor, baik berupa pelaporan, perintah,

peringatan, dan lainnya. Fungsi ini sebenarnya dibutuhkan oleh hampir semua

program dalam sistem, namun pada bagian ini fungsi penampil data yang akan

dibahas hanya pada menu DB Malware, menu Analisa File, menu Data Admin,

Data Mitra, menu Recent, menu Riwayat User dan Riwayat Mitra. Potongan

program penampil data ditunjukkan pada Algoritma IV. 8. Program ini digunakan

untuk menampilkan data pada menu DB Benign, namun konsep program juga dapat

diterapkan untuk seluruh program penampil data lainnya. Program ini akan

mengambil data dari basis data melalui REST API dan kemudian menampilkannya

dalam bentuk tabel.

Page 68: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

51

Algoritma IV. 8 Penampil Data (DB Benign)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<table class="table table-responsive-lg table-bordered">

<thead>

<tr class="table-primary">

<th scope="col" class="align-middle">No</th>

<th scope="col" class="align-middle">Nama File</th>

<th scope="col" class="align-middle">Ukuran File</th>

<th scope="col" class="align-middle">Signature (SHA256)</th>

<th scope="col" colspan="3" class="align-middle">Opsi</th>

</tr>

</thead>

<tbody>

<?php $no = ($halamanAktif>1)? ($awalData+1) :1;?>

<?php foreach($benign as $row): ?>

<tr>

<th scope="row"><?= $no++; ?></th>

<td><?= $row["file_benign"]; ?></td>

<td><?= $row["ukuran_file_benign"]; ?></td>

<td><?= $row["sha256_benign"]; ?></td>

<td><a href="benign_unduh.php?id=<?=$row["id_benign"];?> &ida=<?

=$ida;?>">unduh</a></td>

<td><a href="benign_detail.php?id=<?=$row["id_benign"];?>

&ida=<?=$ida;?>">detail</a></td>

<td><a href="benign_hapus.php?id=<?=$row["id_benign"];?> &ida=<?

=$ida;?>" onclick= "return confirm('Apakah anda yakin akan

menghapus data ini?'">hapus</a></td>

</tr>

<?php endforeach; ?>

</tbody>

</table>

Tampilan menu DB Benign pada fitur admin dapat lihat pada Gambar IV. 21. Pada

menu ini, admin dapat melihat daftar benign yang tersimpan dalam basis data.

Selain itu, admin juga dapat mengelola data menggunakan button pada kolom Opsi,

seperti melihat detail, mengunduh, dan menghapus data.

Gambar IV. 21 Database Benign – Fitur Admin

Page 69: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

52

Sama seperti pada menu DB Benign, admin juga dapat mengelola data pada menu

DB Malware. Pengelolaan meliputi, melihat detail malware, mengunduh sampel,

menghapus data, dan melakukan perubahan data pada hasil analisa malware.

Tampilan menu DB Malware dapat dilihat pada Gambar IV. 22.

Gambar IV. 22 Database Malware - Fitur Admin

Menu admin lainnya yang menggunakan program penampil data yaitu menu

Analisa File. Pada menu ini, program menampilkan daftar sampel baru yang harus

dianalisa oleh admin/analis, seperti pada Gambar IV. 23. Pada program ini, sampel

baru dapat diunduh untuk dilakukan proses analisa lebih lanjut. Sementara fungsi

untuk menghapus data digunakan saat sampel telah selesai dianalisa.

Gambar IV. 23 Analisa File (Sampel Baru) – Fitur Admin

Page 70: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

53

Menu Data Admin dan Data Mitra juga menggunakan program penampil data untuk

menampilkan data akun. Tampilan ditujukkan pada Gambar IV. 24 dan Gambar IV.

25. Pada menu ini, admin memiliki kewenangan untuk menghapus akun admin

maupun akun mitra yang sudah tidak terpakai.

Gambar IV. 24 Data Admin – Fitur Admin

Data yang ditampilkan pada kedua menu ini diambil dari basis data sistem pada

tabel admin dan tabel mitra. Data meliputi nama lengkap, username, email, dan

khusus untuk mitra terdapat data tambahan yaitu asal instansi. Sedangkan data yang

bersifat rahasia seperti password, tidak ditampilkan dalam halaman menu.

Gambar IV. 25 Data Mitra – Fitur Admin

Sistem akan mencatatan aktivitas setiap aktor secara otomatis. Menu pencatat ini

juga menggunakan program penampil data, diantaranya menu Recent admin, menu

Riwayat mitra dan Riwayat user.

Page 71: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

54

Gambar IV. 26 Recent – Fitur Admin

Catatan aktivitas setiap aktor berisi informasi yang berbeda. Menu Recent

menyimpan catatan aktivitas admin, seperti yang ditunjukkan pada Gambar IV. 26.

Data admin yang disimpan yaitu keterangan waktu, nama file yang dieksekusi,

signature (hash SHA-256) berkas, status berkas (malware, benign atau sampel

baru), aksi yang dilakukan dan username yang bertanggung jawab atas aksi

tersebut. Aksi yang tercatat diantaranya saat mengunduh sampel, menambahkan

data baru, mengubah data dan menghapus data.

Gambar IV. 27 Riwayat – Fitur Mitra

Tampilan menu Riwayat user ditunjukkan pada Gambar IV. 27, sedangkan menu

Riwayat mitra pada Gambar IV. 28. Kedua menu ini berisi informasi waktu input,

nama file, signature (SHA-256), metode deteksi, dan status hasil deteksi.

Page 72: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

55

Gambar IV. 28 Riwayat – Fitur User

Mitra dapat mengelola akun pribadi miliknya melalui menu profil seperti pada

Gambar IV. 29. Program penampil data juga digunakan untuk menampilkan data

akun, namun tidak dalam format tabel. Data tersebut meliputi nama lengkap,

username, email, instansi, dan foto profil. Pada menu ini juga disediakan fasilitas

untuk mengubah data akun, mengganti foto profil dan mengganti password.

Gambar IV. 29 Profil – Fitur Mitra

Selain itu, pada sistem mitra terdapat menu lab yang juga menggunakan program

penampil data. Tampilan menu lab ditunjukkan pada Gambar IV. 30. Menu ini

berisi daftar malware yang tersimpan didalam basis data. Mitra dapat mengunduh

sampel malware dan melihat metadata malware melalui menu ini.

Page 73: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

56

Gambar IV. 30 Lab Malware – Fitur Mitra

IV.1.5. Fungsi Tambah Data

Admin memiliki kewenangan untuk menambahkan data benign, data malware, dan

akun baru. Algoritma IV. 11 merupakan potongan program REST Client yang

berfungsi untuk mengirimkan Request POST (untuk menambah data pada basis

data) ke REST Server. Pada program ini, data yang ditambahkan adalah data

benign, namun secara konsep program ini dapat diterapkan untuk menambahkan

data lain seperti malware dan akun baru.

Algoritma IV. 9 Tambah Data (Benign) – REST Client

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

function createBenign($dataMal){

global $client;

$contents = $_FILES['file_benign']['tmp_name'];

$name = $_FILES['file_benign']['name'];

$data = [

'contents' => $contents,

'file_benign' => $name,

'tipe_file_benign' => "zip",

'ukuran_file_benign'=>formatBytes($_FILES['file_benign']['size']),

'md5_benign' => $md5 = hash_file('md5', $contents),

'sha1_benign' => $sha1 = hash_file('sha1', $contents),

'sha256_benign' => $sha256_benign = hash_file('sha256', $contents)

];

$response = $client->request('POST', 'benign', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result["status"];

}

Page 74: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

57

Pada saat REST Server menerima Request dari REST Client, maka program pada

Algoritma IV. 10 akan dijalankan. Pada program ini, hash berkas akan dicek

menggunakan fungsi getBenignByHash, dimana program mencari hash yang sama

dengan hash benign pada basis data. Jika data belum ada dalam basis data, maka

program akan menyimpan sampel benign ke directory dengan menggunakan fungsi

uploadBenign dan menjalankan fungsi createBenign untuk menambahkan data

kedalam basis data. Program ini dapat dilihat pada Algoritma IV. 11.

Algoritma IV. 10 Tambah Data (Benign) – REST Server controllers

1

2

3

4

5

6

7

8

9

10

11

12

13

11

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

public function index_post(){

$sha256 = $this->post('sha256_benign');

$fileName = $this->post('file_benign');

$contents = $this->post('contents');

$benign = $this->benign->getBenignByHash($sha256);

if($benign){

$this->response([

'status' => 2,

'message' => 'Sampel yang sama sudah tersimpan dlm DB Benign'

]);

} else {

$file_benign =$this->benign->uploadBenign($contents, $fileName);

$data = [

'file_benign' => $file_benign,

'tipe_file_benign' => $this->post('tipe_file_benign'),

'ukuran_file_benign' => $this->post('ukuran_file_benign'),

'md5_benign' => $this->post('md5_benign'),

'sha1_benign' => $this->post('sha1_benign'),

'sha256_benign' => $this->post('sha256_benign')

];

if($this->benign->createBenign($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

Algoritma IV. 11 Tambah Data (Benign) – REST Server models

1

2

3

4

5

public function createBenign($data) {

$this->db->insert('benign', $data);

return $this->db->affected_rows();

}

Page 75: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

58

Menu Tambah File pada sistem admin digunakan untuk menambahkan benign dan

malware baru berdasarkan hasil analisa. Tampilan menu tambah benign

ditunjukkan pada Gambar IV. 31. Pada menu ini, admin diminta untuk

memasukkan berkas benign sebagai sampel untuk disimpan dalam directory

benign. Setelah admin menekan button “Tambah” maka sistem akan menjalankan

program untuk pengecekan ekstensi dan ukuran berkas, jika lolos dari pengecekan

barulah sistem menjalankan program Algoritma IV. 9. Data terkait sampel benign

dihasilkan secara otomatis oleh sistem, sehingga admin tidak perlu menginputkan

data, cukup dengan mengupload sampel saja.

Gambar IV. 31 Tambah Benign – Fitur Admin

Menu tambah malware digunakan untuk menambahkan malware baru kedalam

basis data. Sampel malware baru dapat diunggah pada menu ini, seperti pada

Gambar IV. 32. Sampel ini nantinya akan disimpan dalam directory malware dan

digunakan untuk menghasilkan data analisa statik secara otomatis oleh sistem.

Gambar IV. 32 Tambah Malware (Upload File) – Fitur Admin

Page 76: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

59

Berbeda dengan menu tambah benign, pada menu tambah malware admin harus

mengisi form data diantaranya metadata malware, cara penanganan, dan data

khusus ransomeware. Metadata malware berisi informasi nama malware, nama

lain, jenis malware, karakteristik, cara kerja dan operasi, cara penyebaran, tingkat

bahaya, sistem operasi target atau negara target, dan keterangan lain. Tampilan

form pengisian metadata malware ditunjukkan pada Gambar IV. 33.

Gambar IV. 33 Tambah Malware (Metadata) – Fitur Admin

Data mengenai cara penanganan malware dapat dilihat pada Gambar IV. 34. Pada

form ini, admin dapat menginputkan informasi mengenai cara pencegahan, cara

penanganan, serta cara pemulihan, dan perbaikan sistem dari serangan malware.

Page 77: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

60

Gambar IV. 34 Tambah Malware (Penanganan) – Fitur Admin

Form isian terakhir yaitu data khusus untuk malware berjenis ransomware, seperti

pada Gambar IV. 35. Data ini tidak diisi untuk jenis malware lain.

Gambar IV. 35 Tambah Malware (Data Ransome) – Fitur Admin

Pembuatan akun baru untuk admin dan mitra dapat dilakukan pada menu Registrasi,

dengan menggunakan program penambah data. Menu registrasi admin ditunjukkan

pada Gambar IV. 36. Pada menu ini, admin dapat menambahkan akun admin baru,

dengan mengisi data terkait akun, seperti nama, username, password, dan email.

Setelah admin menekan tombol Register, maka sistem akan menyimpan data yang

diinputkan pada form kedalam basis data pada tabel admin.

Page 78: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

61

Gambar IV. 36 Registrasi Admin

Tampilan registrasi mitra ditunjukkan pada Gambar IV. 37. Pada menu ini, admin

dapat mendaftarkan akun baru untuk mitra. Sebelum mendapatkan akun, calon

mitra harus mengirimkan permintaan bergabung terlebih dahulu melalui email

admin yang tertera pada halaman login mitra. Admin kemudian akan membuatkan

akun menggunakan username dan password sementara sesuai dengan identitas pada

email mitra. Data akun akan dikirimkan kembali oleh admin ke email mitra.

Gambar IV. 37 Registrasi Mitra

Page 79: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

62

IV.1.6. Fungsi Hapus Data

Beberapa menu pada sistem admin menyediakan opsi untuk menghapus data. Saat

button hapus ditekan oleh admin, maka akan muncul sebuah notifikasi berisi

konfirmasi seperti pada Gambar IV. 38. Selanjutnya, setelah aktor mengkonfirmasi

penghapusan data, maka akan muncul notifikasi bahwa data berhasil dihapus,

seperti pada Gambar IV. 39.

Gambar IV. 38 Konfirmasi Hapus

Gambar IV. 39 Hapus Berhasil

Ketika admin menghapus data, maka REST Client akan mengirimkan request

DELETE dan ID data ke REST Server seperti pada Algoritma IV. 12. Kemudian

REST Server akan mengapus data dalam basis data sesuai dengan ID yang

dikirimkan menggunakan fungsi deleteMalware seperti pada Algoritma IV. 13.

Algoritma IV. 12 Hapus Data (Malware) – REST Client

1

2

3

4

5

6

7

8

9

function deleteMalware($id){

global $client;

$response = $client->request('DELETE', "malware", [

'form_params' => ['id_malware' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

Algoritma IV. 13 Hapus Data (Malware) – REST Server

1

2

3

4

public function deleteMalware($id)

{ $this->db->delete('malware', ['id_malware' => $id]);

return $this->db->affected_rows();

}

Page 80: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

63

IV.1.7. Fungsi Unduh Sampel

Menu admin dan mitra memiliki opsi unduh yang berfungsi untuk mengunduh

sampel pada basis data. Algoritma IV. 14 adalah potongan program untuk

melakukan fungsi unduh. Pada program ini, sampel akan di copy dari Directory

Server ke Directory Client.

Algoritma IV. 14 Unduh Sampel (Malware)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

$file = ("../../../rest-server/directory/file_malware/$filename");

if(file_exists($file)){

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-

Disposition: attachment; filename='.basename($file));

header('Expires:0');

header('Cache-Control: private');

header('Pragma: private');

header('Content-Length:'.filesize($file));

ob_clean();

flush();

readfile($file);

exit;

}

Ketika itu, aktor dapat memilih tempat penyimpanan sampel pada directory-nya

seperti yang ditunjukkan pada Gambar IV. 40. Sampel malware akan tersimpan

dalam bentuk ZIP ber-password untuk menjaga agar sistem tidak terinfeksi.

Gambar IV. 40 Unduh Sampel (Malware)

Page 81: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

64

IV.1.8. Fungsi Ubah Data

Admin dapat mengubah data hasil analisa malware seperti metadata malware, cara

penanganan, dan data lainnya menggunakan Opsi Edit. Gambar IV. 41

menunjukkan tampilan untuk mengubah data pada DB Malware.

Gambar IV. 41 Edit Database Malware – Admin

dst…

Page 82: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

65

Algoritma IV. 16 merupakan potongan program pada REST Client untuk mengubah

data malware di basis data. Pada program ini, Request PUT (untuk mengubah data)

beserta data perubahan pada $data akan dikirimkan ke REST Server.

Algoritma IV. 15 Ubah Data (Malware) – REST Client

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

function updateMalware($dataMal){

global $client;

$data = [

'id_malware' => $dataMal["id_malware"],

'waktu' => $dataMal["waktu"],

'file_malware' => $dataMal["file_malware"],

'tipe_file_malware' => $dataMal["tipe_file_malware"],

'ukuran_file_malware' => $dataMal["ukuran_file_malware"],

'md5_malware' => $dataMal["md5_malware"],

'sha1_malware' => $dataMal["sha1_malware"],

'sha256_malware' => $dataMal["sha256_malware"],

'ssdeep' => htmlspecialchars($dataMal["ssdeep"]),

'vhash' => htmlspecialchars($dataMal["vhash"]),

'nama' => htmlspecialchars($dataMal["nama"]),

'nama_lain' => htmlspecialchars($dataMal["nama_lain"]),

'jenis' => htmlspecialchars($dataMal["jenis"]),

'karakteristik' => htmlspecialchars($dataMal["karakteristik"])

'cara_kerja' => htmlspecialchars($dataMal["cara_kerja"]),

'penyebaran' => htmlspecialchars($dataMal["penyebaran"]),

'bahaya' => htmlspecialchars($dataMal["bahaya"]),

'target' => htmlspecialchars($dataMal["target"]),

'ket' => htmlspecialchars($dataMal["ket"]),

'pencegahan' => htmlspecialchars($dataMal["pencegahan"]),

'penanganan' => htmlspecialchars($dataMal["penanganan"]),

'pemulihan' => htmlspecialchars($dataMal["pemulihan"]),

'pembuat_file' => htmlspecialchars($dataMal["pembuat_file"]),

'note' => htmlspecialchars($dataMal["note"]),

'kontak' => htmlspecialchars($dataMal["kontak"]),

'enkripsi' => htmlspecialchars($dataMal["enkripsi"]),

'tebusan' => htmlspecialchars($dataMal["tebusan"])

];

$response = $client->request('PUT', 'malware',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result;

}

Di REST Server, data lama pada basis data akan diganti dengan data baru yang

diterima dengan menggunakan fungsi updateMalware pada Algoritma IV. 16

Algoritma IV. 16 Ubah Data (Malware) – REST Server

1

2

3

4

public function updateMalware($data, $id){

$this->db->update('malware', $data, ['id_malware' => $id]);

return $this->db->affected_rows();

}

Page 83: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

66

Gambar IV. 42 Profil – Edit Akun Mitra

Program ubah data juga dapat diterapkan untuk Opsi Edit Akun dan Ubah Password

pada menu mitra. Tampilan Opsi Edit Akun pada menu mitra ditunjukkan pada

Gambar IV. 42. Pada menu ini, mitra dapat mengubah data akun seperti nama,

username, email, dan instansi, serta mengganti foto profil. Sedangkan Opsi Ubah

Password dapat dilihat pada Gambar IV. 43. Menu ini digunakan untuk mengubah

password lama / password sementara dari admin dengan password baru.

Gambar IV. 43 Profil – Edit Password Mitra

Page 84: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

67

IV.1.9. Fungsi Logout

Mitra dan admin memiliki akun private yang hanya dapat diakses melalui halaman

login, oleh karena itu kedua sistem ini memiliki fungsi logout untuk keluar dari

akunnya. Algoritma IV. 17 adalah program untuk menjalankan fungsi logout. Pada

program ini, session dan cookie yang dibangun saat login akan diakhiri. Kemudian

sistem akan kembali ke halaman login.

Algoritma IV. 17 Logout (Mitra)

1

2

3

4

5

6

7

8

9

10

session_start();

$_SESSION = [];

session_unset();

session_destroy();

setcookie('id', '', time() - 3600);

setcookie('key', '', time() - 3600);

header("Location: m.login.php");

exit;

Sebelum program dijalankan, sistem akan menampilkan notifikasi konfirmasi

terlebih dahulu, seperti yang ditunjukkan pada Gambar IV. 44. Ketika aktor

memilih Keluar maka sistem akan kembali ke halaman login admin, sedangkan jika

aktor memilih Batal maka sistem akan kembali ke halaman sebelumnya.

Gambar IV. 44 Logout

Page 85: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

68

IV.2. Implementasi Database

Database pada sistem ini terdiri dari delapan tabel, yaitu tabel admin, baru, benign,

malware, mitra, m_riwayat, recent, dan riwayat seperti pada Gambar IV. 45. Semua

tabel dalam basis data dapat diakses dan dikelola oleh admin kecuali tabel riwayat

yang berisi catatan aktivitas user dan mitra. Selain itu, tabel mitra dan admin yang

digunakan untuk menyimpan data akun juga dapat dilihat dan dikelola oleh admin

kecuali password akun.

Gambar IV. 45 Database Sistem

IV.2.1. Koneksi Database

Algoritma IV. 18 Koneksi Database 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

defined('BASEPATH') OR exit('No direct script access allowed');

$active_group = 'default';

$query_builder = TRUE;

$db['default'] = array(

'dsn' => '',

'hostname' => 'localhost',

'username' => 'root',

'password' => 'tesisrela',

'database' => 'db_sistem',

'dbdriver' => 'mysqli',

'dbprefix' => '',

'pconnect' => FALSE,

'db_debug' => (ENVIRONMENT !== 'production'),

'cache_on' => FALSE,

'cachedir' => '',

'char_set' => 'utf8',

'dbcollat' => 'utf8_general_ci',

'swap_pre' => '',

'encrypt' => FALSE,

'compress' => FALSE,

'stricton' => FALSE,

'failover' => array(),

'save_queries' => TRUE

);

Page 86: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

69

Pada Sistem Database Malware, sistem dapat mengakses basis data melalui REST

API Server. Konfigurasi koneksi untuk menghubungkan REST API dengan basis

data ditunjukkan pada Algoritma IV. 18. Dari program ini dapat dilihat bahwa nama

basis data yang digunakan yaitu db_sistem dengan hostname: localhost, username:

root, dan password: tesisrela.

IV.2.2. Tabel Malware

Gambar IV. 46 Tabel Malware

Tabel Malware ditunjukkan pada Gambar IV. 46. Tabel ini menyimpan data-data

terkait malware, salah satunya yaitu analisa statik malware seperti hasil hash SHA-

256, SHA-1, MD5, SSDEEP, Vhash, tipe berkas, dan ukuran berkas. Tabel

malware juga menyimpan metadata malware seperti nama malware, nama lain,

jenis, karakteristik, cara kerja dan operasi, teknik penyebaran, tingkat bahaya,

negara atau sistem operasi target, dan keterangan lain terkait malware. Selain itu,

informasi mengenai cara penanganan, pencegahan, dan permulihan serangan

malware juga dapat disimpan dalam basis data.

Page 87: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

70

Khusus ransomware, terdapat kolom data ransom seperti file maker, ransom note,

kontak email pelaku, metode enkripsi yang digunakan, serta biaya tebusan.

Sementara sampel malware disimpan dalam directory khusus pada server.

IV.2.3. Tabel Benign

Gambar IV. 47 merupakan tabel benign yang berisi informasi benign seperti nama

berkas, tipe berkas, ukuran berkas, hash SHA-256, SHA-1, dan MD5. Sementara

sampel benign akan disimpan pada directory khusus pada server. Dari tabel dapat

dilihat bahwa semua data bertipe varchar, kecuali id_benign yang merupakan

primary key dari tabel ini.

Gambar IV. 47 Tabel Benign

IV.2.4. Tabel Baru

Tabel baru berisi data-data terkait sampel baru yang dicurigai sebagai malware dan

membutuhkan analisa lebih lanjut. Gambar IV. 48 adalah tampilan dari tabel baru

yang berisi nama berkas, tipe berkas, ukuran berkas, hash SHA-256, waktu input,

nama dan email pengirim, serta status analisa. Status analisa ini nantinya akan

digunakan untuk memantau sejauh mana proses analisa sampel. Sementara sampel

akan disimpan pada directory server.

Gambar IV. 48 Tabel Baru

Page 88: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

71

IV.2.5. Tabel Akun

Tabel admin dan mitra berisi data-data akun, seperti nama, username, password,

dan email, serta nama instansi dan foto profil khusus untuk mitra. Gambar IV. 49

adalah tampilan dari tabel admin, sedangkan tabel mitra ditunjukkan pada Gambar

IV. 50. Kedua tabel ini menyimpan password dalam bentuk terenkripsi.

Gambar IV. 49 Tabel Admin

Gambar IV. 50 Tabel Mitra

IV.2.6. Tabel Riwayat

Seluruh catatan akvitivas aktor akan disimpan dalam tabel riwayat dan tabel recent

(khusus admin). Gambar IV. 51 merupakan tabel recent yang mencatatan aktivitas

admin. Tabel ini berisi catatan waktu input, nama berkas yang dikelola, hash SHA-

256, status sampel, aksi/aktivitas yang dilakukan (tambah/edit/hapus/unduh), dan

username akun admin yang bertanggung jawab atas aksi tersebut.

Gambar IV. 51 Tabel Recent Admin

Page 89: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

72

Tabel catatan aktivitas lainnya yaitu tabel riwayat untuk user pada Gambar IV. 52

dan tabel m_riwayat untuk mitra pada Gambar IV. 53. Kedua tabel ini berisi catatan

waktu input, nama berkas yang dikelola, hash SHA-256, metode deteksi (secara

default atau melalui virus total), dan status hasil analisa berkas.

Gambar IV. 52 Tabel Riwayat User

Gambar IV. 53 Tabel Riwayat Mitra

Page 90: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

73

IV.3. Pengujian Fungsionalitas

Pengujian fungsionalitas dilakukan untuk menguji berjalannya setiap fungsi pada

sistem. Pengujian ini dibagi menjadi sembilan bagian berdasarkan fungsi sistem,

yaitu pengujian fungsi login, deteksi, tambah data, hapus data, ubah data, unduh

sampel, penampil data, dan fungsi logout. Pengujian dilakukan secara manual

dengan menggunakan metode black box [23].

IV.3.1. Fungsi Login

Admin dan mitra dapat mengakses sistem melalui halaman login menggunakan

username dan password akun yang telah terdaftar dalam basis data. Halaman login

mitra terdapat pada web sistem, sedangkan login admin pada web admin (Gambar

IV. 4). Kedua halaman login tersebut memiliki fungsi login yang sama, yang

membedakan adalah tempat penyimpanan data akun pada basis data. Pada

pengujian ini, login admin dan login mitra diuji secara terpisah dengan parameter

pengujian yang sama. Hasil pengujian fungsi login ditunjukkan pada Tabel IV. 1.

Tabel IV. 1 Pengujian Login

NO PENGUJIAN KELUARAN YANG

DIHARAPKAN

HASIL

Login

Admin

Login

Mitra

1 Username dan

Password benar

Login berhasil, sistem menampilkan

halaman utama sistem. Berhasil Berhasil

2

Username dan

Password

kosong

Login gagal, sistem akan menolak akses

login dan menampilkan notifikasi untuk

mengisi kolom username dan password

(Please fill out this filed)

Berhasil Berhasil

3 Username

kosong

Login gagal, sistem menolak akses dan

menampilkan notifikasi untuk mengisi

username (Please fill out this filed)

Berhasil Berhasil

4 Password

kosong

Login gagal, sistem menolak akses dan

menampilkan notifikasi untuk mengisi

password (Please fill out this filed)

Berhasil Berhasil

5 Username dan

Password salah

Login gagal, sistem menampilkan pesan

kesalahan (username/password salah!) Berhasil Berhasil

6 Username salah,

Password benar

Login gagal, sistem menampilkan pesan

kesalahan (username/password salah!) Berhasil Berhasil

7 Session Session dibangun saat login berhasil Berhasil Berhasil

8 Cookies Cookies dibuat saat login berhasil Berhasil Berhasil

Page 91: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

74

Dari hasil pengujian dapat disimpulkan bahwa fungsi login sudah berjalan dengan

baik dan sesuai yang diharapkan. Admin maupun mitra hanya dapat masuk jika

username dan password yang dimasukkan pada halaman login benar (sesuai akun

yang terdaftar dalam basis data). Pesan kesalahan akan diberikan ketika login gagal

dilakukan. Selain itu, session dan cookies juga berhasil dibuat saat login berhasil.

IV.3.2. Fungsi Deteksi

Pengujian ini dilakukan pada halaman menu deteksi user dan mitra. Pada menu ini,

user atau mitra dapat mendeteksi adanya malware pada berkas yang mereka

unggah. Tampilan menu deteksi dapat dilihat pada Gambar IV. 6. Pengujian fungsi

deteksi dibagi menjadi beberapa bagian, yaitu berdasarkan ukuran maksimum

berkas, tipe berkas, dan hasil deteksi. Pengujian hasil deteksi dibagi berdasarkan

metode deteksi yang digunakan yaitu pengujian untuk deteksi Virus Total dan

pengujian untuk deteksi Default. Hasil pengujian deteksi berdasarkan ukuran

berkas dapat dilihat pada Tabel IV. 2.

Tabel IV. 2 Pengujian Deteksi Berdasarkan Ukuran Berkas

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas ≤ 10 MB Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

2 Berkas 10 – 50 MB Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

3 Berkas 50 – 100 MB Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

4 Berkas 100 – 150 MB Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

5 Berkas ≤ 200 MB Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

6 Berkas > 200 MB Sistem menampilkan pesan peringatan

“Ukuran file terlalu besar!” Berhasil

Pengujian ini dilakukan dengan cara mengunggah berbagai ukuran berkas, mulai

dari 10 MB hingga lebih dari 200 MB. Hasil pengujian didapatkan bahwa ukuran

maksimal berkas yang dapat dideteksi oleh sistem yaitu 200 MB. Hal tersebut

disesuaikan dengan ukuran berkas maksimum yang dapat diterima oleh Virus Total.

Page 92: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

75

Pengujian selanjutnya yaitu berdasarkan tipe berkas yang dapat dideteksi oleh

sistem. Hasil pengujian disajikan dalam bentuk tabel pada Tabel IV. 3.

Tabel IV. 3 Pengujian Deteksi Berdasarkan Tipe Berkas

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas doc/docx Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

2 Berkas ppt/pptx Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

3 Berkas xlx/xlsx Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

4 Berkas pdf Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

5 Berkas zip Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

6 Berkas rar Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

7 Berkas exe Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

8 Berkas txt Sistem dapat mendeteksi berkas baik

menggunakan Virus Total maupun Default. Berhasil

9 Tipe berkas lain

(jar, sql, dll.)

Sistem menampilkan pesan peringatan

“Maaf, tipe file ini tidak dapat dideteksi” Berhasil

Hasil pengujian deteksi menunjukkan bahwa sistem dapat mendeteksi berkas

dengan tipe doc/docx, xls/xlsx, ppt/pptx, pdf, zip, rar, exe, dan txt. Sedangkan untuk

tipe berkas lain yang diunggah, sistem akan memberikan pesan peringatan bahwa

tipe berkas tersebut tidak dapat dideteksi.

Selanjutnya yaitu menguji hasil deteksi dari sistem dengan menggunakan metode

Virus Total dan Default. Pengujian dilakukan secara terpisah dengan cara

mengunggah berbagai berkas benign dan malware terhadap kedua metode deteksi.

Hasil pengujian deteksi Virus Total ditunjukkan pada Tabel IV. 4. Dari hasil

pengujian, dapat diketahui bahwa metode Virus Total dapat mendeteksi semua jenis

malware yang diuji yaitu Trojan Horse, Ransomware, Backdoor, Keylogger, Virus,

Worm, dan Rootkit. Jenis malware yang dapat dideteksi menggunakan Virus Total

ini sesuai dengan malware yang ada dalam dataset Virus Total.

Page 93: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

76

Tabel IV. 4 Pengujian Deteksi Virus Total

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas malware Hasil deteksi berstatus: Detected. Berhasil

2 Berkas benign Hasil deteksi berstatus: Undetected. Berhasil

3 Berkas yang belum ada

di dataset Virus Total Hasil deteksi berstatus: Queue. Berhasil

4 Trojan Horse Terdeteksi Berhasil

5 Ransomware Terdeteksi Berhasil

6 Backdoor Terdeteksi Berhasil

7 Keylogger Terdeteksi Berhasil

8 Virus Terdeteksi Berhasil

9 Worm Terdeteksi Berhasil

10 Rootkit Terdeteksi Berhasil

Hasil pengujian deteksi menggunakan metode Default sistem ditunjukkan pada

Tabel IV. 5. Hasil pengujian menunjukkan bahwa jenis malware yang dapat

dideteksi menggunakan metode Default bergantung pada sampel malware yang

tersimpan dalam basis data. Pada penelitian ini, jenis malware yang tersimpan

dalam basis data saat ini yaitu Trojan Horse, Ransomware, Backdoor, Keylogger,

dan Virus. Sedangkan jenis virus selain itu, seperti Worm dan Rootkit belum

terdapat dalam basis data. Oleh karena itu hasil deteksi menunjukkan bahwa Worm

dan Rootkit merupakan sampel baru yang perlu dianalisa lebih lanjut.

Tabel IV. 5 Pengujian Deteksi Default

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas malware Hasil deteksi: Terdeteksi Malware Berhasil

2 Berkas benign Hasil deteksi: File Aman Berhasil

3 Berkas sampel baru

yang sedang dianalisa Hasil deteksi: Proses analisa Berhasil

4 Berkas yang belum ada

dalam basis data sistem Hasil deteksi: Perlu analisa lebih lanjut Berhasil

5 Trojan Horse Terdeteksi Berhasil

6 Ransomware Terdeteksi Berhasil

7 Backdoor Terdeteksi Berhasil

8 Keylogger Terdeteksi Berhasil

9 Virus Terdeteksi Berhasil

10 Worm Disimpan sebagai sampel baru Berhasil

11 Rootkit Disimpan sebagai sampel baru Berhasil

Page 94: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

77

Secara keseluruhan, dari hasil pengujian deteksi dapat disimpulkan bahwa fungsi

deteksi pada Sistem Database Malware sudah berjalan dengan baik, sesuai dengan

keluaran yang diharapkan. Batas ukuran maksimum berkas yang dapat dideteksi

yaitu 200MB dengan tipe doc/docx, xls/xlsx, ppt/pptx, pdf, zip, rar, exe, dan txt.

Jenis malware yang dapat dideteksi menggunakan Virus Total bergantung pada

dataset Virus Total. Sedangkan jenis malware yang dapat dideteksi oleh sistem

secara Default bergantung pada malware yang tersimpan dalam basis data.

IV.3.3. Fungsi Penampil Data

Semua tampilan pada web sistem menggunakan fungsi penampil data. Pada

penelitian ini, pengujian fungsi penampil data dilakukan terhadap menu DB

Malware, DB Benign, Analisa File, Data Admin, Data Mitra, Recent, Riwayat User,

Riwayat Mitra, Profil Mitra, dan menu Lab. Setiap halaman menu yang diuji

menampilkan data yang berbeda sesuai dengan kebutuhan dan fungsinya. Beberapa

halaman menu menyediakan opsi untuk dapat melakukan aksi baik berupa

perubahan, penghapusan, pengunduhan, maupun sekedar melihat detail dari data.

Namun, ada juga menu yang berfungsi hanya sebagai penampil data, seperti menu

Recent, Riwayat User, dan Riwayat Mitra. Ketiga menu ini tidak menyediakan opsi

untuk melakukan aksi. Oleh karena itu, pengujian dilakukan secara terpisah pada

masing-masing halaman menu. Pengujian dilakukan secara manual dengan cara

menguji fungsi setiap opsi, tautan, dan kesesuaian data keluaran (yang ditampilkan

pada web) dengan data dalam basis data.

Menu DB Malware merupakan salah satu menu utama dalam sistem admin. Menu

ini digunakan untuk mengelola sampel dan data malware pada basis data. Tampilan

menu DB Malware dapat dilihat pada Gambar IV. 22. Halaman ini menampilkan

semua daftar sampel malware yang ada dalam basis data. Menu DB Malware

menyediakan opsi edit, detail, unduh, dan hapus. Opsi edit digunakan untuk

mengubah data, dalam hal ini data berupa detail informasi mengenai malware,

seperti metadata malware, cara penanganan serangan malware, dan data lainnya.

Selain itu, terdapat opsi detail untuk melihat informasi terkait, opsi unduh untuk

mengunduh sampel, dan hapus untuk menghapus data sampel pada basis data.

Page 95: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

78

Hasil pengujian untuk DB Malware dapat dilihat pada Tabel IV. 6. Dari hasil

pengujian dapat dilihat bahwa semua fungsi penampil data pada menu DB Malware

telah sesuai dengan yang diharapkan.

Tabel IV. 6 Pengujian Penampil Data - DB Malware

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu DB Malware

Daftar semua malware ditampilkan dalam

bentuk tabel. Berhasil

2 Opsi Unduh Sampel malware terunduh. Berhasil

3 Opsi Detail Ke halaman detail, menampilkan informasi

metadata dan analisa malware. Berhasil

4 Opsi Edit Ke halaman edit, data dapat diubah. Berhasil

5 Opsi Hapus Sampel malware terhapus dari daftar tabel. Berhasil

6 Tautan Kembali

pada opsi Detail Kembali ke halaman menu DB Malware. Berhasil

7 Tautan Kembali

pada opsi Edit Kembali ke halaman menu DB Malware. Berhasil

8 Klik Ubah pada opsi

Edit Data perubahan tersimpan. Berhasil

9 Tautan Home Ke halaman home. Berhasil

10 Tautan DB Benign Ke halaman db benign. Berhasil

11 Tautan Analisa File Ke halaman analisa file. Berhasil

12 Tautan Tambah File Ke halaman tambah file. Berhasil

13 Tautan Recent Ke halaman recent. Berhasil

14 Tautan Registrasi Ke halaman registrasi. Berhasil

15 Tautan Data Admin Ke halaman data admin. Berhasil

16 Tautan Data Mitra Ke halaman data mitra. Berhasil

17 Tautan Logout Keluar dari halaman admin. Berhasil

18

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar malware sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 sampel malware.

Berhasil

Menu DB Benign merupakan menu admin yang berfungsi untuk pengelolaan data

benign. Halaman ini menampilkan semua daftar sampel benign yang ada pada basis

data. Terdapat beberapa opsi yang dapat digunakan untuk mengelola menu benign

diantaranya, opsi detail, unduh, dan hapus. Tampilan halaman menu DB Benign

dapat dilihat pada Gambar IV. 21. Hasil pengujian pada Tabel IV. 7 menunjukkan

bahwa fungsi penampil data untuk menu DB Benign sudah berjalan dengan baik

dan sesuai dengan yang diharapkan.

Page 96: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

79

Tabel IV. 7 Pengujian Penampil Data – DB Benign

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu DB Benign

Daftar semua benign ditampilkan dalam

bentuk tabel. Berhasil

2 Opsi Unduh Sampel benign terunduh. Berhasil

3 Opsi Detail Ke halaman detail, menampilkan informasi

terkait benign. Berhasil

4 Opsi Hapus Sampel benign terhapus dari daftar tabel. Berhasil

5 Tautan Kembali pada

opsi Detail Kembali ke halaman menu DB Benign. Berhasil

6 Tautan Home Ke halaman home. Berhasil

7 Tautan DB Malware Ke halaman db malware. Berhasil

8 Tautan Analisa File Ke halaman analisa file. Berhasil

9 Tautan Tambah File Ke halaman tambah file. Berhasil

10 Tautan Recent Ke halaman recent. Berhasil

11 Tautan Registrasi Ke halaman registrasi. Berhasil

12 Tautan Data Admin Ke halaman data admin. Berhasil

13 Tautan Data Mitra Ke halaman data mitra. Berhasil

14 Tautan Logout Keluar dari halaman admin. Berhasil

15

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar benign sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 sampel benign.

Berhasil

Tabel IV. 8 Pengujian Penampil Data - Analisa File

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu Analisa File

Daftar semua sampel baru ditampilkan dalam

bentuk tabel. Berhasil

2 Opsi Unduh Sampel baru terunduh. Berhasil

3 Opsi Hapus Sampel baru terhapus dari daftar tabel. Berhasil

4 Tautan Home Ke halaman home. Berhasil

5 Tautan DB Benign Ke halaman db benign. Berhasil

6 Tautan DB Malware Ke halaman db malware. Berhasil

7 Tautan Tambah File Ke halaman tambah file. Berhasil

8 Tautan Recent Ke halaman recent. Berhasil

9 Tautan Registrasi Ke halaman registrasi. Berhasil

10 Tautan Data Admin Ke halaman data admin. Berhasil

11 Tautan Data Mitra Ke halaman data mitra. Berhasil

12 Tautan Logout Keluar dari halaman admin. Berhasil

13

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar sampel baru sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 sampe baru.

Berhasil

Page 97: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

80

Halaman menu Analisa File menampilkan daftar sampel baru yang disimpan dalam

basis data. Pada menu ini, admin dapat mengelola sampel-sampel baru yang

dilaporkan oleh user ataupun mitra. Menu ini menyediakan opsi unduh dan hapus,

dimana sampel baru akan diunduh untuk dianalisa lebih lanjut, dan ketika proses

analisa selesai maka sampel akan dihapus. Hasil pengujian pada Tabel IV. 8

menunjukkan bahwa fungsi penampil data pada menu Analisa File telah berjalan

dengan baik dan sesuai.

Tabel IV. 9 Pengujian Penampil Data Admin dan Mitra

NO PENGUJIAN KELUARAN YANG

DIHARAPKAN

HASIL

Data

Admin

Data

Mitra

1 Tampilan halaman

menu data

Daftar semua akun ditampilkan

dalam bentuk tabel. Berhasil Berhasil

2 Opsi Hapus Data akun terhapus dari daftar

tabel. Berhasil Berhasil

3 Tautan Home Ke halaman home. Berhasil Berhasil

4 Tautan DB Benign Ke halaman db benign. Berhasil Berhasil

5 Tautan DB Malware Ke halaman db malware. Berhasil Berhasil

6 Tautan Analisa File Ke halaman analisa file. Berhasil Berhasil

7 Tautan Tambah File Ke halaman tambah file. Berhasil Berhasil

8 Tautan Recent Ke halaman recent. Berhasil Berhasil

9 Tautan Registrasi Ke halaman registrasi. Berhasil Berhasil

10 Tautan Data Admin Ke halaman data admin. Berhasil Berhasil

11 Tautan Data Mitra Ke halaman data mitra. Berhasil Berhasil

12 Tautan Logout Keluar dari halaman admin. Berhasil Berhasil

13

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar akun sesuai

dengan nomor halaman pada

pagination, dalam satu halaman

menampilkan 10 data akun.

Berhasil Berhasil

Menu Recent, Riwayat User, dan Riwayat Mitra merupakan menu yang berisi

catatan aktivitas setiap aktor. Catatan tersebut secara otomatis ditambahkan ketika

aktor melakukan suatu aksi. Data-data yang ditampilkan pada menu ini tidak dapat

diubah, ditambahkan maupun dihapus, sehingga menu ini tidak menyediakan opsi

apapun. Ketiga menu ini menggunakan fungsi penampil data yang disajikan dalam

bentuk tabel.

Page 98: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

81

Menu Recent menampilkan catatan aktivitas admin, seperti menambahkan data,

mengubah, menghapus, dan mengunduh sampel. Catatan berisi keterangan waktu,

nama berkas, signature, status, aksi, dan username admin (seperti pada Gambar IV.

26). Hasil pengujian pada Tabel IV. 10 menunjukkan bahwa fungsi penampil data

pada menu recent telah berjalan dengan baik.

Tabel IV. 10 Pengujian Penampil Data – Recent

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu Recent

Daftar semua aktivitas admin ditampilkan

dalam bentuk tabel. Berhasil

2 Tautan Home Ke halaman home. Berhasil

3 Tautan DB Benign Ke halaman db benign. Berhasil

4 Tautan DB Malware Ke halaman db malware. Berhasil

5 Tautan Analisa File Ke halaman analisa file. Berhasil

6 Tautan Tambah File Ke halaman tambah file. Berhasil

7 Tautan Registrasi Ke halaman registrasi. Berhasil

8 Tautan Data Admin Ke halaman data admin. Berhasil

9 Tautan Data Mitra Ke halaman data mitra. Berhasil

10 Tautan Logout Keluar dari halaman admin. Berhasil

11

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar aktivitas admin sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 aktivitas.

Berhasil

Menu Riwayat Mitra menampilkan catatan aktivitas mitra yaitu mendeteksi dan

mengunduh sampel malware. Tampilan menu ini dapat dilihat pada Gambar IV. 27.

Hasil pengujian pada Tabel IV. 11 menunjukkan bahwa menu ini telah sesuai.

Tabel IV. 11 Pengujian Penampil Data - Riwayat Mitra

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu Riwayat mitra

Daftar aktivitas semua user ditampilkan dalam

bentuk tabel. Berhasil

2 Tautan Profil Ke halaman profil mitra. Berhasil

3 Tautan Menu Ke halaman home. Berhasil

4 Tautan Deteksi Ke halaman deteksi. Berhasil

5 Tautan Lab Ke halaman login mitra. Berhasil

6 Tautan Logout Keluar dari halaman mitra. Berhasil

7

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar aktivitas mitra sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 aktivitas.

Berhasil

Page 99: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

82

Menu Riwayat User menampilkan catatan aktivitas user ketika melakukan deteksi

berkas. Tampilan menu ini dapat dilihat pada Gambar IV. 28. Hasil pengujian pada

Tabel IV. 12 menunjukkan bahwa menu ini telah berjalan dengan baik dan sesuai

yang diharapkan.

Tabel IV. 12 Pengujian Penampil Data - Riwayat User

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu Riwayat user

Daftar aktivitas semua user ditampilkan dalam

bentuk tabel. Berhasil

2 Tautan Home Ke halaman home. Berhasil

3 Tautan Deteksi Ke halaman deteksi. Berhasil

4 Tautan Mitra Ke halaman login mitra. Berhasil

5

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar aktivitas user sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 aktivitas.

Berhasil

Tabel IV. 13 Pengujian Penampil Data - Profil Mitra

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu Profil Data akun dan foto profil mitra. Berhasil

2 Opsi Edit Akun Ke halaman edit akun, data akun dan foto

profil mitra dapat diubah. Berhasil

3 Opsi Ubah Password Ke halaman ubah password, password dapat

diganti dengan yang baru. Berhasil

4 Tautan Kembali pada

opsi Edit Akun Kembali ke halaman menu profil. Berhasil

5 Klik Simpan pada

opsi Edit Akun

Menyimpan perubahan data akun dan foto

profil pada basis data. Berhasil

6 Tautan Kembali pada

opsi Ubah Password Kembali ke halaman menu profil. Berhasil

7 Klik Ubah pada opsi

Ubah Password Menyimpan perubahan password. Berhasil

8 Tautan Menu Ke halaman home. Berhasil

9 Tautan Deteksi Ke halaman deteksi. Berhasil

10 Tautan Lab Ke halaman login mitra. Berhasil

11 Tautan Riwayat Ke halaman riwayat mitra. Berhasil

12 Tautan Logout Keluar dari halaman mitra. Berhasil

13

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar aktivitas mitra sesuai dengan

nomor halaman pada pagination, dalam satu

halaman menampilkan 10 aktivitas.

Berhasil

Page 100: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

83

Mitra memiliki menu profil dan menu lab yang hanya dapat diakses oleh mitra.

Menu Profil berfungsi untuk mengelola akun pribadi milik mitra. Menu ini

menampilkan informasi mengenai data akun seperti username, email, instansi, dan

foto profil (seperti pada Gambar IV. 29). Tabel IV. 13 merupakan hasil pengujian

fungsi penampil data pada menu profil yang telah berjalan dengan baik. Sedangkan

menu Lab digunakan untuk mengunduh dan melihat informasi terkait malware.

Gambar IV. 30 merupakan tampilan dari halaman menu lab. Dari hasil pengujian

pada Tabel IV. 14 dapat disimpulkan bahwa fungsi penampil data pada menu lab

telah berjalan dengan baik dan sesuai dengan yang diharapkan.

Tabel IV. 14 Pengujian Penampil Data - Lab Malware

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Tampilan halaman

menu lab

Daftar malware ditampilkan dalam bentuk

tabel. Berhasil

2 Opsi Unduh Sampel malware terunduh. Berhasil

3 Opsi Detail Ke halaman detail, menampilkan informasi

terkait malware. Berhasil

4 Tautan Kembali pada

opsi Detail Kembali ke halaman menu lab. Berhasil

5 Tautan Profil Ke halaman profil mitra. Berhasil

6 Tautan Menu Ke halaman home. Berhasil

7 Tautan Deteksi Ke halaman deteksi. Berhasil

8 Tautan Riwayat Ke halaman riwayat mitra. Berhasil

9 Tautan Logout Keluar dari halaman mitra. Berhasil

10

Pagination (halaman

sebelumnya dan

selanjutnya)

Tampilan daftar aktivitas mitra sesuai

dengan nomor halaman pada pagination,

dalam satu halaman menampilkan 10

aktivitas.

Berhasil

IV.3.4. Fungsi Tambah Data

Pengujian ini dilakukan pada Menu Tambah File dan Registrasi, dimana admin

dapat menambahkan data benign, malware, dan akun baru kedalam basis data.

Pengujian dimaksudkan untuk menguji kesesuaian fungsi penambah data.

Tampilan halaman Tambah File malware ditunjukkan pada Gambar IV. 32. Hasil

pengujian pada Tabel IV. 15 menunjukkan bahwa menu tambah file untuk

menambahkan malware baru telah berjalan dengan baik.

Page 101: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

84

Tabel IV. 15 Pengujian Tambah Data - Tambah File (Malware)

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas tidak dipilih pada

tambah malware

Pesan peringatan untuk mengisi kolom

“Choose File” (Please select a file!) Berhasil

2 SSDEEP dikosongkan Pesan peringatan untuk mengisi kolom

ssdeep (Please field out this field!) Berhasil

3 Vhash dikosongkan Pesan peringatan untuk mengisi kolom

vhash (Please field out this field!) Berhasil

4 Nama Malware

dikosongkan

Pesan peringatan untuk mengisi kolom

nama malware (Please field out this

field!)

Berhasil

5 Jenis Malware

dikosongkan

Pesan peringatan untuk mengisi kolom

jenis malware (Please field out this

field!)

Berhasil

6 Data lainnya dikosongkan

Sistem menerima input kosong pada

kolom data lainnya (selain ssdeep, vhash,

nama, dan jenis malware).

Berhasil

7 Data input berupa

karakter angka Sistem menerima input. Berhasil

8 Data input berupa

karakter huruf Sistem menerima input. Berhasil

9 Data input berupa

karakter simbol Sistem menerima input. Berhasil

10 Data input berupa kode

html

Sistem menerima input dengan

mengubah kode tag html menjadi

karakter biasa.

Berhasil

11 Tipe berkas zip Sistem menerima input. Berhasil

12 Tipe berkas selain zip

(pdf, exe, jar, dll.)

Sistem menampilkan pesan peringatan

“Maaf, tipe file ini tidak dapat dideteksi” Berhasil

13 Ukuran berkas ≤ 200 MB Sistem menerima input. Berhasil

14 Ukuran berkas > 200 MB Sistem menampilkan pesan peringatan

“Ukuran file terlalu besar!” Berhasil

15 Berkas malware

ditambahkan

Berkas disimpan dalam bentuk zip ber-

password pada directory server (folder

malware) secara otomatis.

Berhasil

Sistem mengisi data analisa statik secara

otomatis ke dalam basis data malware,

diantaranya nama berkas, ukuran, tipe,

hash SHA-256, SHA-1, dan MD5.

Berhasil

Sistem menyimpan metadata dan data

lainnya yang diinputkan oleh admin

kedalam basis data malware.

Berhasil

16 Klik Reset Semua kolom dikosongkan. Berhasil

17 Klik Tambah Data tersimpan. Berhasil

Page 102: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

85

Tampilan halaman tambah file untuk benign ditunjukkan pada Gambar IV. 31,

sedangkan hasil pengujiannya disajikan dalam bentuk tabel pada Tabel IV. 16.

Hasil pengujian menunjukkan bahwa menu ini sudah sesuai dengan desain sistem.

Tabel IV. 16 Pengujian Tambah Data – Tambah File (Benign)

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas tidak dipilih pada

tambah benign

Pesan peringatan untuk mengisi kolom

“Choose File” (Please select a file!) Berhasil

2 Berkas benign

ditambahkan

Berkas disimpan dalam bentuk zip ber-

password pada directory server (folder

benign) secara otomatis.

Berhasil

Sistem mengisi detail data secara

otomatis ke dalam basis data benign,

diantaranya nama berkas, ukuran, tipe,

hash SHA-256, SHA-1, dan MD5.

Berhasil

3 Tipe berkas doc/docx Sistem menerima input. Berhasil

4 Tipe berkas xls/xlsx Sistem menerima input. Berhasil

5 Tipe berkas ppt/pptx Sistem menerima input. Berhasil

6 Tipe berkas pdf Sistem menerima input. Berhasil

7 Tipe berkas zip Sistem menerima input. Berhasil

8 Tipe berkas rar Sistem menerima input. Berhasil

9 Tipe berkas exe Sistem menerima input. Berhasil

10 Tipe berkas txt Sistem menerima input. Berhasil

11 Tipe berkas lainnya

(jar, sql, dll.)

Sistem menampilkan pesan peringatan

“Maaf, tipe file ini tidak dapat dideteksi” Berhasil

12 Ukuran berkas ≤ 200 MB Sistem menerima input. Berhasil

13 Ukuran berkas > 200 MB Sistem menampilkan pesan peringatan

“Ukuran file terlalu besar!” Berhasil

14 Klik Tambah Data tersimpan dalam tabel benign. Berhasil

Menu Registrasi digunakan untuk menambahkan akun baru bagi admin dan mitra.

Tampilan registrasi admin ditunjukkan pada Gambar IV. 36, sedangkan tampilan

registrasi mitra ditunjukkan pada Gambar IV. 37. Tabel IV. 17 menunjukkan bahwa

sistem tidak memberikan pesan peringatan saat kolom nama diinputkan karakter

simbol. Namun, fungsi lainnya berjalan dengan baik. Data admin maupun mitra

dapat ditambahkan dalam basis data sesuai dengan data yang diinputkan, password

yang disimpan sudah terenkripsi dalam basis data secara otomatis, dan data akun

yang sudah didaftarkan sudah dapat digunakan untuk melakukan login.

Page 103: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

86

Tabel IV. 17 Pengujian Tambah Data - Registrasi

NO PENGUJIAN KELUARAN YANG

DIHARAPKAN

HASIL

Reg.

Admin

Reg.

Mitra

1 Nama

dikosongkan

Pesan peringatan untuk mengisi kolom

nama (Please field out this field!) Berhasil Berhasil

2 Nama berisi

karakter huruf Sistem menerima input. Berhasil Berhasil

3 Nama berisi

karakter angka Sistem menampilkan pesan peringatan. Gagal Gagal

4 Nama berisi

karakter simbol Sistem menampilkan pesan peringatan. Gagal Gagal

5 Username

dikosongkan

Pesan peringatan untuk mengisi kolom

username (Please field out this field!) Berhasil Berhasil

6 Username berisi

karakter huruf Sistem menerima input. Berhasil Berhasil

7 Username berisi

karakter angka Sistem menerima input. Berhasil Berhasil

8 Username berisi

karakter simbol Sistem menerima input. Berhasil Berhasil

9 Password

dikosongkan

Pesan peringatan untuk mengisi kolom

password (Please field out this field!) Berhasil Berhasil

10 Password berisi

karakter huruf

Sistem menerima input, password

disimpan dalam bentuk terenkripsi. Berhasil Berhasil

11 Password berisi

karakter angka

Sistem menerima input, password

disimpan dalam bentuk terenkripsi. Berhasil Berhasil

12 Password berisi

karakter simbol

Sistem menerima input, password

disimpan dalam bentuk terenkripsi. Berhasil Berhasil

13

Konfirmasi

Password

dikosongkan

Pesan peringatan untuk mengisi kolom

konfirmasi password (Please field out

this field!)

Berhasil Berhasil

14 Konfirmasi Pass

tidak sesuai

Sistem menampilkan pesan peringatan

(Konfirmasi password tidak sesuai!) Berhasil Berhasil

15 Email

dikosongkan

Pesan peringatan untuk mengisi kolom

email (Please field out this field!) Berhasil Berhasil

16

Email tidak

berisi karakter

“@”

Pesan peringatan (Please include an

‘@’ in the email address. ‘input-email’

is missing an ‘@’)

Berhasil Berhasil

17

Email yang

diinputkan tidak

lengkap

Pesan peringatan (Please enter a part

following ‘@’. ‘input-email@’ is

incomplete)

Berhasil Berhasil

18 Instansi (mitra)

dikosongkan Sistem menerima input kosong. - Berhasil

19 Klik Register Sistem menambahkan akun baru pada

basis data. Berhasil Berhasil

Page 104: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

87

IV.3.5. Fungsi Hapus Data

Terdapat beberapa menu pada sistem admin yang menyediakan fungsi hapus data, diantaranya menu DB Benign, DB Malware, Analisa File,

Data Admin, dan Data Mitra. Fungsi ini digunakan oleh admin untuk menghapus data pada basis data. Ketika fungsi ini dipilih, maka sistem

akan memberikan notifikasi yang berisi konfirmasi data yang dihapus seperti pada Gambar IV. 38. Pengujian dilakukan untuk menguji

kesesuaian dalam menghapus data pada basis data. Tabel IV. 18 menunjukkan hasil pengujian fungsi hapus data untuk masing-masing menu.

Dari hasil pengujian dapat disimpulkan bahwa opsi hapus data sudah dapat menghapus data pada basis data sesuai dengan data yang dipilih

admin. Sistem juga sudah memberikan notifikasi berupa konfirmasi penghapusan data saat admin akan menghapus data. Namun, terdapat

kekurangan dari fungsi ini, yaitu belum dapat menghapus sampel dari directory server.

Tabel IV. 18 Pengujian Hapus Data

NO PENGUJIAN KELUARAN YANG DIHARAPKAN

HASIL

DB

Malware

DB

Benign

Analisa

File

Data

Admin

Data

Mitra

1 Klik Hapus

Sistem menampilkan notifikasi berisi

konfirmasi penghapusan data (Apakah anda

yakin akan menghapus data ini?)

Berhasil Berhasil Berhasil Berhasil Berhasil

2 Klik Hapus dan pilih OK

Data yang dipilih terhapus dari basis data. Berhasil Berhasil Berhasil Berhasil Berhasil

Sampel yang dipilih terhapus dari directory

server. Gagal Gagal Gagal Gagal Gagal

Sistem menampilkan pesan bahwa data telah

terhapus (Data berhasil dihapus!). Berhasil Berhasil Berhasil Berhasil Berhasil

3 Klik Hapus dan pilih Cancel Kembali ke halaman menu sebelumnya. Berhasil Berhasil Berhasil Berhasil Berhasil

Page 105: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

88

IV.3.6. Fungsi Unduh Sampel

Fungsi unduh sampel terdapat pada menu admin dan mitra. Admin dapat mengunduh sampel benign pada menu DB Benign, sampel malware

pada menu DB Malware, dan sampel baru pada menu Analisa File. Pengujian fungsi unduh dilakukan dengan cara mengunduh sampel pada

masing-masing menu dan membuka file yang telah diunduh untuk memastikan bahwa file diunduh secara utuh sesuai yang tersimpan dalam

directory server. Contoh tampilan unduh dapat dilihat pada Gambar IV. 40. Hasil pengujian ditunjukkan pada Tabel IV. 19. Dari hasil

pengujian dapat disimpulkan bahwa fungsi unduh sampel sudah berjalan dengan baik pada semua menu yang diuji. Sistem berhasil

menyimpan sampel sesuai dengan folder yang dipilih oleh admin/mitra. Sampel yang terunduh sudah dalam bentuk zip ber-password untuk

menghindari infeksi sistem oleh sampel malware dan telah berhasil diekstrak menggunakan password default.

Tabel IV. 19 Pengujian Unduh Sampel

NO PENGUJIAN KELUARAN YANG DIHARAPKAN

HASIL

DB

Malware

DB

Benign

Analisa

File

Lab

Mitra

1 Klik Unduh Sistem menampilkan kotak dialog dan membuka folder untuk

menyimpan sampel yang akan diunduh. Berhasil Berhasil Berhasil Berhasil

2 Klik Unduh dan pilih Save Sampel tersimpan dalam folder yang dipilih. Berhasil Berhasil Berhasil Berhasil

3 Klik Unduh dan pilih Close

pada kotak dialog Kembali ke halaman menu sebelumnya. Berhasil Berhasil Berhasil Berhasil

4 Melihat sampel yang sudah

terunduh

Sampel tersimpan pada folder dalam bentuk zip ber-

password Berhasil Berhasil Berhasil Berhasil

5 Membuka zip sampel yang

sudah terunduh

Sampel dapat diekstrak menggunakan password default:

Rahasia100% Berhasil Berhasil Berhasil Berhasil

Page 106: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

89

IV.3.7. Fungsi Ubah Data

Fungsi ubah data terdapat pada menu admin (DB Malware) dan menu mitra (Edit

Akun dan Ubah Password). Pada menu DB Malware, terdapat opsi Edit Malware

yang dapat digunakan oleh admin untuk mengubah sampel, metadata dan informasi

terkait malware yang tersimpan dalam basis data. Tabel IV. 20 merupakan hasil

pengujian fungsi ubah data (Edit Malware) pada menu DB Malware.

Tabel IV. 20 Pengujian Ubah Data – Edit Malware

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Berkas sampel baru

dipilih

Sampel baru disimpan ke directory server. Berhasil

Sampel lama terhapus dari directory. Gagal

2 Berkas tidak diubah Sampel dalam directory tidak berubah. Berhasil

3 Berkas sampel zip Sistem menerima input. Berhasil

4 Berkas sampel selain

zip (pdf, exe, jar, dll.)

Sistem menampilkan pesan peringatan

“Maaf, tipe file ini tidak dapat dideteksi” Berhasil

5 Berkas sampel

berukuran ≤ 200 MB Sistem menerima input. Berhasil

6 Berkas sampel

berukuran > 200 MB

Sistem menampilkan pesan peringatan

“Ukuran file terlalu besar!” Berhasil

7 SSDEEP diganti

dengan data kosong

Pesan peringatan untuk mengisi kolom

ssdeep (Please field out this field!) Berhasil

8 Vhash diganti dengan

data kosong

Pesan peringatan untuk mengisi kolom

vhash (Please field out this field!) Berhasil

9 Nama Malware diganti

dengan data kosong

Pesan peringatan untuk mengisi kolom

nama malware (Please field out this field!) Berhasil

10 Jenis Malware diganti

dengan data kosong

Pesan peringatan untuk mengisi kolom jenis

malware (Please field out this field!) Berhasil

11 Data lainnya diganti

dengan data kosong

Sistem menerima input kosong pada kolom

data lainnya (selain ssdeep, vhash, nama, dan

jenis malware).

Berhasil

12 Data perubahan berupa

karakter angka Sistem menerima input. Berhasil

13 Data perubahan berupa

karakter huruf Sistem menerima input. Berhasil

14 Data perubahan berupa

karakter simbol Sistem menerima input. Berhasil

15 Data perubahan berupa

kode html

Sistem menerima input dengan mengubah

kode tag html menjadi karakter biasa. Berhasil

16 Klik Kembali Kembali ke halaman menu db malware. Berhasil

17 Klik Ubah Data perubahan tersimpan dalam basis data. Berhasil

Page 107: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

90

Dari hasil pengujian fungsi ubah data pada menu DB Malware didapatkan bahwa

sistem sudah dapat menyimpan data perubahan pada basis data dengan sesuai.

Sistem juga sudah dapat menyimpan sampel baru yang dipilih dalam directory

server. Namun, sistem belum dapat menghapus sampel lama yang tersimpan dalam

directory secara otomatis ketika admin menggantinya dengan sampel baru.

Tampilan halaman fungsi ini dapat dilihat pada Gambar IV. 41.

Tabel IV. 21 Pengujian Ubah Data - Edit Akun

NO PENGUJIAN KELUARAN YANG DIHARAPKAN HASIL

1 Foto baru dipilih Foto baru disimpan ke directory server. Berhasil

Foto lama terhapus dari directory. Gagal

Foto tidak diganti Foto dalam directory tidak diubah. Berhasil

3 Foto bertipe PNG Sistem menerima input. Berhasil

4 Foto bertipe JPG Sistem menerima input. Berhasil

5 Foto bertipe JPEG Sistem menerima input. Berhasil

6 Berkas bertipe lain

dipilih (gif, dll.)

Pesan peringatan (Maaf, tipe file ini tidak

dapat ditambahkan) Berhasil

7 Foto berukuran ≤ 10 MB Sistem menerima input. Berhasil

8 Foto berukuran >10 MB Peringatan (Ukuran foto terlalu besar!) Berhasil

9 Nama diubah menjadi

data kosong

Pesan peringatan untuk mengisi kolom

nama (Please field out this field!) Berhasil

10 Username diubah

menjadi data kosong

Pesan peringatan untuk mengisi kolom

nama (Please field out this field!) Berhasil

11 Email diubah menjadi

data kosong

Pesan peringatan untuk mengisi kolom

nama (Please field out this field!) Berhasil

12 Email tidak berisi

karakter “@”

Pesan peringatan (Please include an ‘@’ in

the email address. ‘input-email’ is missing

an ‘@’)

Berhasil

13 Email yang diinputkan

tidak lengkap

Pesan peringatan (Please enter a part

following ‘@’. ‘input-email@’ is

incomplete)

Berhasil

14 Instansi tidak diisi atau

dikosongkan

Pesan peringatan untuk mengisi kolom

nama (Please field out this field!) Berhasil

15 Data perubahan angka Sistem menerima input. Berhasil

16 Data perubahan huruf Sistem menerima input. Berhasil

17 Data perubahan simbol Sistem menerima input. Berhasil

18 Data perubahan berupa

kode html

Sistem menerima input dengan mengubah

kode tag html menjadi karakter biasa. Berhasil

19 Klik Kembali Kembali ke halaman menu profil. Berhasil

20 Klik Simpan Data perubahan akun tersimpan dalam

basis data. Berhasil

Page 108: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

91

Fungsi ubah data pada menu Profil digunakan oleh mitra untuk mengubah data akun

dan foto profil (Edit Akun), serta mengganti password (Ubah Password). Tampilan

halaman Edit Akun ditunjukkan pada Gambar IV. 42, sedangkan Ubah Password

pada Gambar IV. 43. Hasil pengujian fungsi ubah data pada keduanya menunjukkan

bahwa fungsi telah berjalan dengan baik dan sesuai. Hasilnya dapat dilihat pada

Tabel IV. 21 untuk pengujian Edit Akun dan Tabel IV. 22 untuk pengujian Ubah

Password.

Tabel IV. 22 Pengujian Ubah Data - Ubah Password

NO PENGUJIAN KELUARAN YANG

DIHARAPKAN HASIL

1 Password lama kosong Peringatan (Please fill out this field). Berhasil

2 Password lama salah Sistem menampilkan pesan

peringatan (Password lama salah!) Berhasil

3 Password lama benar Perubahan diterima. Berhasil

4 Password baru kosong Peringatan (Please fill out this field). Berhasil

5 Password baru diisi huruf Sistem menerima input. Berhasil

6 Password baru diisi angka Sistem menerima input. Berhasil

7 Password baru diisi simbol Sistem menerima input. Berhasil

8 Password baru diisi huruf Sistem menerima input. Berhasil

9 Konfirmasi Password kosong Peringatan (Please fill out this field). Berhasil

10 Konfirmasi Password sesuai

dengan Password baru

Password baru disimpan dalam

bentuk terenkripsi pada basis data. Berhasil

11 Konfirmasi Password tidak

sesuai dengan Password baru

Pesan peringatan (Konfirmasi

password tidak sesuai!) Berhasil

12 Klik Ubah Perubahan password tersimpan dalam

basis data dalam bentuk terenkripsi. Berhasil

13 Klik Kembali Kembali ke halaman menu profil. Berhasil

IV.3.8. Fungsi Logout

Fungsi logout digunakan untuk keluar dari halaman utama menu pada sistem admin

dan mitra. Ketika fungsi ini dipilih maka sistem akan menampilkan notifikasi

sebagai konfirmasi keluar dari halaman utama, seperti yang ditunjukkan pada

Gambar IV. 44. Fungsi ini akan mengakhiri session dan cookie, serta

mengembalikan menu ke halaman login. Pengujian dilakukan terhadap fungsi

logout pada menu admin dan mitra, yang hasilnya ditunjukkan pada Tabel IV. 23.

Hasil menunjukkan bahwa fungsi logout sudah berjalan dengan baik.

Page 109: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

92

Tabel IV. 23 Pengujian Logout

NO PENGUJIAN KELUARAN YANG

DIHARAPKAN

HASIL

Logout

Admin

Logout

Mitra

1 Klik Logout

Notifikasi konfirmasi logout

(Apakah anda yakin akan keluar

dari menu?).

Berhasil Berhasil

2 Klik Logout dan

Pilih Keluar Kembali ke halaman login. Berhasil Berhasil

3 Klik Logout dan

Pilih Batal Kembali ke halaman sebelumnya. Berhasil Berhasil

4 Session saat logout Session diakhiri. Berhasil Berhasil

5 Cookie saat logout Cookie diakhiri. Berhasil Berhasil

IV.4. Pengujian Kinerja

Pengujian kinerja bertujuan untuk mengevaluasi kinerja sistem dari segi kecepatan

dan keandalan sistem dalam merespon suatu request. Pada penelitian ini, pengujian

dilakukan terhadap website dan REST API dengan menggunakan LoadImpact

sebagai alat bantu pengujian kinerja sistem. LoadImpact adalah sebuah layanan

pengujian beban server atau website (load testing) yang hasilnya dapat dijadikan

sebagai tolak ukur seberapa banyak jumlah pengunjung situs web yang dapat

ditangani dan mengukur waktu respon dari sistem terhadap permintaan pengguna.

IV.4.1. Website

Pengujian ini dilakukan untuk mengetahui jumlah request dari pengunjung situs

web yang dapat ditangani sistem dalam waktu tertentu. Pengujian dilakukan dengan

mengatur jumlah pengunjung menggunakan Virtual User (VU) pada LoadImpact

yaitu sebanyak 0 hingga 50 VU dan dijalankan dalam waktu 10 menit menggunakan

teknik ramp up. Pada teknik ini, VU akan dijalankan dari 0 dan terus bertambah

hingga 50 VU pada 1 menit pertama, kemudian dalam waktu 10 menit akan

dijalankan 50 VU secara bersamaan, dan pada 1 menit terakhir akan dilakukan

proses shutdown testing. Jumlah VU yang digunakan sesuai dengan batas limit dari

LoadImpact dengan mode gratis yaitu 50VU. Seting pengujian diatas diatur dalam

sebuah script pengujian yang dijalankan melalui command line dan hasilnya dapat

dilihat pada Gambar IV. 54.

Page 110: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

93

Gambar IV. 54 Hasil Pengujian Kinerja Website

Hasil pengujian kinerja situs web menunjukkan bahwa waktu respon rata-rata dari

sistem yang diuji adalah 3ms, jumlah permintaan yang dapat ditangani sistem yaitu

sebanyak 65.610 dalam waktu 10 menit dan dilakukan pada tingkat permintaan

rata-rata 91 permintaan / detik. Semua permintaan dari pengunjung (VU) berhasil

ditangani dengan baik, hal tersebut dapat dilihat dari status kode 200 (OK).

Gambar IV. 55 Grafik Pengujian Kinerja Website

Hasil pengujian ini kemudian direpresentasikan dalam bentuk grafik pada cloud

loadimpact, seperti yang ditunjukkan pada Gambar IV. 55. Pada cloud ini, sistem

loadimpact menyatakan bahwa belum ditemukan masalah kinerja pada sistem web.

Pada grafik juga dapat dilihat bahwa kondisi web cenderung stabil saat proses load

testing berjalan dengan jumlah pengunjung hingga 50VU.

Page 111: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

94

IV.4.2. REST API

Pengujian ini dilakukan untuk mengukur kecepatan respon dari REST API ketika

user atau mitra mendeteksi malware menggunakan menu deteksi. Terdapat dua

metode deteksi dalam sistem ini, yaitu menggunakan Virus Total dan metode

Default. Masing-masing metode ini terkoneksi ke REST API yang berbeda, dimana

sistem Virus Total tidak menggunakan REST API sistem database malware,

melainkan terkoneksi dengan API Publik Virus Total. Pengujian ini dilakukan

menggunakan LoadImpact yang diseting untuk mengirimkan request sebanyak

mungkin dan terus menerus dalam waktu 30s oleh 10VU. Hasil pengujian berupa

waktu respon dari API Publik Virus Total dan waktu respon dari REST API sistem

(saat menggunakan metode Default). Hasil pengujian keduanya kemudian kan

dibandingkan.

Pengujian REST API Virus Total dilakukan pada satu titik endpoint. Pada endpoint

ini, status hasil deteksi berkas diperoleh baik itu Detected, Undetected, maupun

Queue. Proses deteksi dilakukan sepenuhnya oleh endpoint tersebut. Gambar IV.

56 adalah hasil pengujian kinerja dari API Publik Virus Total.

Gambar IV. 56 Hasil Pengujian Kinerja API Publik Virus Total

Dari hasil pengujian dapat diketahui bahwa waktu respon rata-rata dari API Publik

Virus Total adalah 466ms.

Page 112: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

95

Sementara jumlah permintaan yang dapat ditangani dalam waktu 30s yaitu

sebanyak 205 permintaan dengan tingkat permintaan rata-rata yaitu 6

permintaan/detik. Data tersebut kemudian direpresentasikan dalam bentuk grafik

seperti pada Gambar IV. 57.

Gambar IV. 57 Grafik Pengujian Kinerja REST API Virus Total

Pengujian selanjutnya yaitu menguji kinerja dari REST API Server pada Sistem

Database Malware. Pengujian ini bertujuan untuk mengatahui waktu respon rata-

rata yang dibutuhkan API Server saat melakukan proses deteksi Default. Berbeda

dengan pengujian API Virus Total yang hanya mengakses satu endpoint, pada

pengujian ini terdapat beberapa case dengan akses ke endpoint yang berbeda.

Skenario pengujian ini dapat dilihat pada Tabel IV. 24.

Tabel IV. 24 Skenario Pengujian REST API Sistem

No Case Status Deteksi Endpoint Durasi Virtual User

1 case1:

Malware

Terdeteksi

Malware - getMalware 30s 10VU

2 case2:

Benign File Aman

- getmalware

- getBenign 30s 10VU

3 case3:

Sampel Baru Proses Analisa

- getMalware

- getBenign

- getBaru

30s 10VU

4

case4:

Belum ada

dalam basis

data

Perlu Analisa

- getMalware

- getBenign

- getBaru

- postBaru

30s 10VU

Page 113: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

96

Skenario pengujian ini dibuat berdasarkan proses deteksi yang terjadi dalam sistem

REST Client, dimana program yang dijalankan menggunakan fungsi if – else. Pada

program ini, request akan dikirimkan secara bertahap ke REST Server dan proses

akan dihentikan apabila hasil deteksi sudah ditemukan.

Case1 merupakan keadaan dimana berkas yang diunggah oleh pengguna

merupakan berkas terinfeksi malware. Pada saat itu, program REST Client akan

mengirimkan request ke endpoint getMalware pada REST API Server untuk

mencari data hash yang sesuai dalam basisdata malware. Pengujian ini dilakukan

dengan mengirimkan request ke endpoint getMalware dengan 10VU selama 30

detik. Hasil pengujian menunjukkan bahwa waktu respon rata-rata dari endpoint

getMalware yaitu 134ms, seperti pada Gambar IV. 58.

Gambar IV. 58 Hasil Pengujian Kinerja REST API Default – Case1

Dari hasil pengujian juga dapat diketahui bahwa dalam waktu 30 detik, endpoint

getMalware pada REST API Sistem mampu menangani 270 permintaan dengan

tingkat permintaan rata-rata yaitu 8,66 permintaan/detik. Pada hasil pengujian ini

tidak ditemukan adanya masalah pada kinerja REST API, semua request dapat

tertangani dengan baik dengan kode status 200. Hasil pengujian ini dapat dilihat

dalam bentuk grafik pada Gambar IV. 59.

Page 114: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

97

Gambar IV. 59 Grafik Pengujian Kinerja REST API Default – Case1

Case2 adalah kondisi dimana berkas yang diunggah merupakan berkas benign.

Pada saat ini, sistem akan mengirimkan request ke dua buah endpoint yaitu

getMalware dan getBenign. Pertama, sistem akan mengirimkan request ke endpoint

getmalware. Respon tentunya menyatakan bahwa hash tidak terdapat pada

basisdata malware, sehingga proses kedua dijalankan yaitu mengirimkan request

ke endpoint getBenign pada REST API Server. Pada proses ini, hash akan cocok

dengan basisdata benign sehingga program if-else lain tidak dijalankan. pengujian

dapat dilihat pada Gambar IV. 60.

Gambar IV. 60 Hasil Pengujian Kinerja REST API Default – Case2

Dari hasil pengujian diketahui dalam waktu 30 detik, REST API dapat menangani

480 permintaan dengan tingkat permintaan rata-rata yaitu 15,99 permintaan/detik.

Hasil tersebut merupakan perolehan dari dua endpoint dalam satu request yaitu

Page 115: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

98

getMalware dan getBenign, sehingga untuk melihat waktu respon per-request, hasil

tersebut harus dibagi dua. Hasil terakhir didapatkan bahwa REST API dapat

menangani kurang lebih 8 permintaan/detik.

Gambar IV. 61 Tabel Hasil Pengujian Kinerja REST API Default – Case2

Gambar IV. 61 merupakan tabel hasil pengujian pada cloud loadimpact. Pada tabel

ini dapat dilihat bahwa waktu respon rata-rata (AVG) untuk endpoint getBenign

yaitu 249ms, sedangkan untuk getMalware yaitu 246ms. Sehingga waktu respon

rata-rata yang diperoleh pada case2 ini yaitu 247ms. Hasil pengujian dapat dilihat

dalam bentuk grafik pada Gambar IV. 62.

Gambar IV. 62 Grafik Pengujian Kinerja REST API Default - Case2

Case3 memiliki kondisi dimana berkas yang diunggah merupakan sampel baru

yang terdapat pada basis data. Pada saat ini, sistem akan mengirimkan request ke

tiga buah endpoint yaitu getMalware, getBenign, dan getBaru. Seperti pada case

sebelumnya, program akan mengirimkan request ke endpoint getmalware dan

getBenign secara bertahap. Tentunya kedua endpoint tersebut akan mengirimkan

respon bahwa hash tidak terdapat pada basisdata, sehingga kemugkinan if-else

selanjutnya akan dijalankan. Request akan dikirimkan ke endpoint getBaru pada

REST API Server. Hasil pengujian ditunjukkan pada Gambar IV. 63.

Page 116: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

99

Gambar IV. 63 Hasil Pengujian Kinerja REST API Default – Case3

Dari Gambar IV. 63 dapat dilihat bahwa dalam waktu 30 detik, REST API dapat

menangani 684 permintaan dengan tingkat permintaan rata-rata yaitu 22,77

permintaan/detik. Hasil tersebut merupakan perolehan dari tiga endpoint, sehingga

waktu respon per-request didapatkan bahwa REST API dapat menangani kurang

lebih 7,59 permintaan/detik.

Gambar IV. 64 Tabel Pengujian Kinerja REST API Default – Case3

Gambar IV. 64 berisi rincian dari masing-masing respon endpoint. Pada tabel

terlihat bahwa waktu respon rata-rata dari endpoint getMalware yaitu 244ms,

endpoint getBenign yaitu 246ms, dan endpoint getBaru yaitu 281ms. Sehingga

secara keseluruhan, waktu respon rata-rata yang diperoleh pada case3 yaitu 257ms.

Hasil pengujian dapat dilihat dalam bentuk grafik pada Gambar IV. 65.

Page 117: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

100

Gambar IV. 65 Grafik Pengujian Kinerja REST API Default – Case3

Case4 merupakan kasus terakhir, dimana berkas yang diunggah oleh pengguna

tidak terdapat dalam basis data manapun dalam sistem. Sehingga request yang

dikirimkan ke endpoint getMalware, getBenign, dan getBaru mendapat respon

negatif. Pada saat ini, sistem akan mengirimkan request dan data berkas ke endpoint

postBaru untuk menambahkan berkas tersebut kedalam basis data sampel baru.

Hasil pengujian kinerja REST API pada case4 ini ditunjukkan pada Gambar IV. 66.

Gambar IV. 66 Hasil Pengujian Kinerja REST API Default – Case4

Dari hasil pengujian didapatkan bahwa REST API dapat menangani 820

permintaan pada tingkat permintaan rata-rata 27,26 permintaan/detik. Hasil tersebut

merupakan perolehan dari empat endpoint, sehingga waktu respon per-request jika

Page 118: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

101

dirata-ratakan yaitu 6,82 permintaan/detik. Sementara waktu respon rata-rata REST

API adalah 365,25ms, dengan rincian AVG seperti pada Gambar IV. 67.

Gambar IV. 67 Tabel Pengujian Kinerja REST API Default – Case4

Loadimpact telah menganalisis hasil pengujian dan sampai tahap ini belum

menemukan masalah kinerja pada REST API. Pada Gambar IV. 67 juga dapat

dilihat kode status dari setiap endpoint. Semua request GET dapat ditangani dengan

baik oleh masing-masing endpoint dengan kode status 200 (OK). Request POST

juga dapat ditangani dengan baik oleh endpoint postBaru dengan kode status 201

(Created). Hasil pengujian dapat dilihat dalam bentuk grafik pada Gambar IV. 68.

Gambar IV. 68 Grafik Pengujian Kinerja REST API Default – Case4

Hasil akhir dari pengujian kinerja REST API disajikan dalam bentuk tabel pada

Tabel IV. 25. Dari hasil pengujian dapat diambil kesimpulan bahwa berdasarkan

permintaan rata-rata yang dapat ditangani, API Server dapat mengimbangi kinerja

dari API Virus Total, dengan jumlah respon rata-rata yaitu 6 sampai 8

permintaan/detik. Hasil akhir ini menunjukkan bahwa REST API Sistem Database

Malware dapat bekerja dengan baik seperti API Publik milik Virus Total.

Page 119: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

102

Tabel IV. 25 Perbandingan Hasil Pengujian Kinerja REST API

Endpoint

Hasil Pengujian

Waktu

Respon

rata-rata

Jumlah

Permintaan

dalam 30s

Respon

Permintaan

rata-rata

API Publik Virus Total 466 ms 205 request 6 request/s

API Server

Sistem

Database

Malware

case1: 134 ms 270 request 8,66 request/s

- getMalware

case2:

247 ms

480 request

8 request/s - getMalware - 240 request

- getBenign - 240 request

case3:

257 ms

684 request

7,59 request/s - getMalware - 228 request

- getBenign - 229 request

- getBaru - 227 request

case4:

365,25 ms

820 request

6,82 request/s

- getMalware - 205 request

- getBenign - 205 request

- getBaru - 205 request

- postBaru - 205 request

Berdasarkan waktu respon rata-rata, menurut Scott Barber terdapat lima tipe

koneksi yang sering ditemui pengguna, yaitu:

1. Cepat atau tidak delay yaitu berkisar dibawah 3 detik;

2. Sedang yaitu kecepatan rata-rata berkisar 3 hingga 5 detik;

3. Lambat yaitu berkisar 5 hingga 8 detik;

4. Frustrating yaitu berkisar 8 hingga 15 detik;

5. Unacceptable yaitu lebih dari 15 detik.

Dari hasil pengujian dapat disimpulkan bahwa API Server pada case1 adalah yang

tercepat dengan waktu 134 ms, sedangkan waktu respon rata-rata terlama yaitu API

Publik Virus Total dengan waktu 466 ms. Hal tersebut terjadi, karna koneksi ke

API Publik Virus Total membutuhkan jaringan internet, sementara API Server

terdapat pada jaringan lokal. Waktu respon rata-rata yang berkisar antara 134 ms

hingga 466 ms ini menunjukkan bahwa kinerja dari REST API berada pada kategori

cepat dengan orde millisecond.

Page 120: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

103

IV.5. Pengujian Keamanan

Tiga aspek utama dalam keamanan informasi yaitu Confidentiality, Integrity, dan

Availability atau umumnya disebut dengan CIA Triad [24]. Pada penelitian ini,

pengujian keamanan web sistem akan dilakukan terhadap ketiga aspek tersebut.

Masing-masing aspek akan diuji menggunakan serangan yang sesuai dengan

sasaran pengujian yaitu serangan Sniffing untuk confidentiality (kerahasiaan data),

SQL Injection untuk integrity (keaslian data), dan Syn Flood (DoS) untuk aspek

availability (ketersediaan data). Pengujian dilakukan menggunakan Wireshark,

Acunetix dan Hping3.

IV.5.1. Confidentiality

Confidentiality (kerahasiaan) yaitu aspek yang menjamin kerahasiaan data atau

informasi, memastikan bahwa informasi hanya dapat diakses oleh orang yang

berwenang dan menjamin kerahasiaan data yang dikirim, diterima dan disimpan

[24]. Salah satu serangan yang berkaitan dengan confidentiality yaitu serangan

Sniffing. Sniffing merupakan kegiatan penyadapan pada lalu lintas data paket di

suatu jaringan. Setelah data ditangkap, penyerang dapat membaca data sensitif

seperti kata sandi atau identitas pengguna. Sniffing dapat dilakukan dengan mudah

jika lalu lintas jaringan tidak dienkripsi [25]. Skenario pengujian confidentiality

terhadap serangan Sniffing ditunjukkan pada Gambar IV. 69.

Gambar IV. 69 Skenario Serangan Sniffing

Mitra

Attacker

Server

Mitra mengirim Request POST dan data

(username dan password) untuk login

Sniffing data paket

Page 121: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

104

Pada pengujian ini, serangan Sniffing dilakukan untuk menyadap informasi terkait

username dan password akun mitra dengan menggunakan Wireshark [26].

Wireshark adalah program Network Protocol Analyzer alias penganalisa protokol

jaringan yang lengkap. Program ini dapat merekam semua paket yang lewat serta

menyeleksi dan menampilkan data tersebut sedetail mungkin [27]. Target dari

pengujian ini yaitu halaman login mitra pada url https://localhost/tesisrela/rest-

client/sistem/mitra/m.login.php. Penyadapan dilakukan oleh attacker saat seorang

mitra mencoba melakukan login pada halaman login mitra, dimana mitra akan

memasukkan username dan password akunnya dan mengirimkannya ke server

untuk proses validasi. Pada saat ini, data paket yang dikirimkan akan disadap oleh

attacker menggunakan Wireshark. Hasil pengujian keamanan terhadap serangan

Sniffing mengunakan Wireshark dapat dilihat pada Gambar IV. 70.

Gambar IV. 70 Hasil Pengujian Confidentiality – Sniffing

Page 122: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

105

Data paket yang tertangkap oleh Wireshark ini kemudian difilter berdasarkan

protokol pembawanya, dalam penelitian ini menggunakan protokol SSL. Data

kemudian dibuka menggunakan Follow TCP Stream untuk melihat detail data hasil

penyadapan. Hasil Follow TCP Stream menggunakan Wireshark dapat dilihat pada

Gambar IV. 71.

Gambar IV. 71 Hasil Follow TCP Stream pada protokol HTTP POST

Hasil Follow TCP Stream menunjukkan bahwa data paket dikirimkan dalam bentuk

terenkripsi, sehingga informasi sensitif seperti username dan password tidak dapat

diketahui oleh attacker. Secara keseluruhan dapat disimpulkan bahwa Web Sistem

aman terhadap serangan Sniffing. Hal tersebut dikarenakan web sistem

menggunakan protokol HTTPS (Hypertext Transfer Protocol Secure), dimana data

paket yang dikirimkan telah diamankan dengan cara mengenkripsi data melalui

protokol SSL (Secure Socket layer) atau protokol TLS (Transport Layer Security).

Page 123: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

106

IV.5.2. Integrity

Integrity (keaslian) yaitu aspek yang menjamin bahwa data tidak dapat diubah tanpa

ada ijin dari pihak yang berwenang (authorized), menjaga keakuratan dan keutuhan

informasi serta metode prosesnya untuk menjamin aspek integrity [24]. Salah satu

serangan yang menyerang integrity yaitu SQL Injection, dimana serangan ini

memiliki kemampuan untuk mempengaruhi Structured Query Language (SQL)

yang melewati aplikasi ke database back-end [29]. Kasus SQL Injection terjadi

ketika seorang penyerang dapat memasukkan serangkaian pernyataan SQL ke

query dengan memanipulasi data input ke aplikasi. Berdasarkan definisi tersebut,

dapat dikatakan bahwa serangan SQL Injection sangat berbahaya karena penyerang

yang telah berhasil memasuki database sistem dapat melakukan manipulasi data

yang ada pada database sistem. Proses manipulasi data yang tidak semestinya oleh

penyerang dapat menimbulkan kerugian, seperti pemalsuan data, kerusakan data,

maupun kehilangan data. Pengujian keamanan terhadap aspek integrity dilakukan

dengan menggunakan software website vulnerability scanner yaitu Acunetix untuk

mengukur tingkat kerentanan sistem terhadap serangan SQL Injection. Skenario

pengujian ini ditunjukkkan pada Gambar IV. 72.

Gambar IV. 72 Skenario Serangan SQL Injection

Berdasarkan skenario pengujian pada Gambar IV. 72 dapat dilihat bahwa attacker

menyerang sistem dengan cara menginputkan perintah (script) SQL Injection

melalui form input data, dalam hal ini yaitu form login pada halaman login mitra.

Attacker Form Login

(Web Sistem Mitra)

Menjalankan perintah SQL Injection, dapat berupa kode query

penambahan data, perubahan data, maupun penghapusan data.

Menginputkan

perintah

SQL Injection

Mengirimkan

perintah

SQL Injection

Data

Database

Page 124: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

107

Setelah melakukan submit data, maka perintah SQL Injection ini akan dikirimkan

ke database melalui REST Server. Perintah SQL Injection dapat berupa kode query

penambahan data, perubahan data, maupun penghapusan data. Serangan ini

dilakukan dan dianalisa langsung oleh Acunetix. Hasil pengujian sistem terhadap

serangan SQL Injection menggunakan Acunetix ditunjukkan pada Gambar IV. 73

Gambar IV. 73 Hasil Pengujian Integrity - SQL Injection

Pengujian dilakukan selama 23 menit 50 detik terhadap halaman login mitra pada

url https://localhost/tesisrela/rest-client/sistem/mitra/m.login.php. Hasil pengujian

menunjukkan bahwa web sistem tidak memiliki kerentanan terhadap serangan SQL

Injection, baik pada tingkat high, medium, low, maupun informational. Hal tersebut

karena halaman login telah diamankan dari SQL Injection dengan menambahkan

fungsi addslashes() dan digabungkan dengan fungsi trim() pada program login,

seperti pada Algoritma IV. 19.

Algoritma IV. 19 Fungsi anti SQL Injection 1

2

$username = addslashes(trim($_POST['username']));

$password = addslashes(trim($_POST['password']));

Page 125: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

108

Fungsi tersebut digunakan untuk mengembalikan nilai sebuah string dengan

memberikan atau menambahkan simbol tanda backslash dalam bentuk garis miring

terbalik sebelum karakter single quote, double quote, dan null. Penggunaan fungsi

addslashes() ini dapat mencegah attacker memasukan script atau kode khusus yang

mengandung tanda kutip (SQL Injection) pada sebuah form di web. Secara

keseluruhan dapat disimpulkan bahwa sistem aman (“Safe”) terhadap serangan SQL

Injection dengan hasil Threat Level 0, seperti pada Gambar IV. 74.

Gambar IV. 74 Tingkat Ancaman SQL Injection terhadap Web Sistem

IV.5.3. Availability

Availability (ketersediaan) yaitu aspek yang menjamin bahwa data akan tersedia

saat dibutuhkan, memastikan pengguna yang berhak dapat mengakses sistem dan

menggunakan informasi [24]. Salah satu serangan yang menyerang aspek

availability yaitu Denial of Service attack (DoS), dimana pengerang akan

mengirimkan permintaan yang bertubi-tubi atau permintaan yang diluar perkiraan

ke server, sehingga server tidak dapat melayani permintaan lain atau bahkan sampai

down, hang, dan crash. Serangan DoS memiliki beberapa varian, salah satunya

yaitu serangan SYN Flooding. Serangan ini memanfaatkan kelemahan protokol

TCP pada saat proses handshake terjadi [30].

Page 126: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

109

Pada serangan ini, penyerang akan mengirimkan banyak SYN request kepada server

korban dengan tujuan untuk mengkonsumsi sumber daya dari server dan membuat

server tidak dapat melayani request dari pengguna yang sah (klien) [31].

Gambar IV. 75 Skenario Pengujian Availability – Serangan SYN Flooding

Pada Gambar IV. 75 dapat dilihat bahwa attacker berpura-pura menjadi klien dan

meminta koneksi ke server dengan mengirimkan kode SYN (Synchronize). Server

akan mengenali/mengakui (Acknowledges) request ini dengan mengirimkan kode

SYN-ACK kembali ke klien (yang sebenarnya adalah attacker). Pada kondisi ini

seharusnya klien yang sah merespon kembali dengan mengirimkan kode ACK agar

koneksi terjalin antara klien dan server. Namun, attacker sengaja tidak membalas

respon paket ACK ke server dan bahkan terus mengirimkan SYN request sehingga

server dipenuhi dengan koneksi setengah terbuka (menunggu respon ACK dari

klien). Hal tersebut menyebabkan klien yang sah tidak dapat terkoneksi dengan

server dan menyebabkan masalah pada aspek availability (ketersediaan) sistem ini.

SYN

Attacker Open Port: menunggu ACK

Open Port: menunggu ACK Open Port: menunggu ACK Open Port: menunggu ACK

Server Korban

Klien

Koneksi Penuh

Page 127: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

110

Pada penelitian ini, pengujian dilakukan didalam sebuah Virtual Box. Target web

sistem dijalankan pada sistem operasi Windows 10. Hasil pengujian dipantau

menggunakan Wireshark untuk menganalisa kinerja jaringan dan Task Manager

untuk memantau kinerja komputer seperti status penggunaan CPU. Kedua alat ini

dijalankan pada sistem operasi target untuk melihat efek dari serangan SYN

Flooding terhadap sistem target. Kondisi performance sistem sebelum dilakukan

penyerangan dapat dilihat pada Gambar IV. 76. Pada kondisi ini, penggunaan CPU

(utilitization) hanya terpakai sekitar 9% dengan beberapa program yang berjalan

yaitu wireshark, xampp, google chrome, dan snipping tools.

Gambar IV. 76 Performance Sistem Sebelum Serangan SYN Flooding

Sementara itu, serangan SYN Flooding dilakukan menggunakan Hping3 yang ada

pada sistem operasi Kali Linux. Hping3 adalah sebuah tool jaringan yang dapat

mengirimkan paket-paket TCP/IP ke alamat tujuan dan dapat digunakan untuk

memanipulasi paket, seperti membuat lalu lintas jaringan tersebut menjadi padat.

Gambar IV. 77 merupakan konfigurasi serangan SYN Flood. Attacker dengan IP

192.168.56.30 menyerang target dengan alamat IP 192.168.56.20 pada port 443

dimana web sistem dijalankan. Serangan dilakukan selama kurang lebih 5 menit

dengan jumlah paket terkirim yaitu 2.267.335 paket.

Page 128: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

111

Gambar IV. 77 Serangan SYN Flooding menggunakan Hping3

Ketika serangan dilakukan, kinerja CPU pada sistem target mulai meningkat,

seperti yang ditunjukkan pada Gambar IV. 78. Dapat dilihat bahwa grafik yang

semula berada pada titik 9% meningkat hingga ke titik 100%. Saat itu, server

dipenuhi oleh paket-paket yang dikirim oleh attacker.

Gambar IV. 78 Peningkatan Utilitas CPU Saat Serangan SYN Flooding

Sementara itu pada gambar Gambar IV. 79 terlihat respon dari sistem saat sebelum

serangan SYN Flooding dan ketika serangan sedang berlangsung. Dapat dilihat

bahwa klien tetap dapat mengakses sistem pada port 443 di IP 192.168.56.20.

Page 129: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

112

Gambar IV. 79 Akses Klien Saat Serangan SYN Flooding

Selama serangan dilakukan, lalu lintas jaringan dipantau menggunakan Wireshark,

seperti pada Gambar IV. 80. Hasil penyadapan terlihat bahwa terdapat banyak paket

yang dikirimkan dari IP 192.168.56.30 menuju port 443 pada IP 192.168.56.20.

Gambar IV. 80 Trafik Jaringan Saat Serangan SYN Flooding

Page 130: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

113

Sementara pada server sistem, utilitas CPU terus menerus mencapai 100% dan

mulai menurun saat serangan dihentikan, seperti pada Gambar IV. 81, dimana

penggunaan CPU mulai turun ke 81% dan terus menurun hingga kembali stabil.

Gambar IV. 81 Performance Sistem Saat Serangan SYN Flooding

Dari hasil pengujian dapat disimpulkan bahwa sistem masih bisa menyediakan

akses bagi klien yang sah saat serangan SYN Flooding sedang berlangsung. Namun,

serangan ini sangat berdampak terhadap kinerja server terutama dalam penggunaan

CPU. Hasil pengujian ini dipengaruhi oleh banyak faktor terutama sistem operasi

yang digunakan dan pengaturan keamanan sistem seperti firewall dan lainnya.

Page 131: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

114

Bab V Kesimpulan dan Saran

V.1. Kesimpulan

Penelitian ini menghasilkan sebuah Sistem Database Malware yang diharapkan

dapat membantu mengembangkan penelitian terkait malware di Indonesia. Fungsi

utama dari sistem ini yaitu menyimpan dan mengelola sampel malware, metadata,

serta hasil analisa malware untuk kebutuhan penelitian dan operasional. Selain itu,

sistem ini juga menyediakan fitur deteksi bagi pengguna dan rekan mitra untuk

mendeteksi adanya malware pada sustu berkas. Sistem Database Malware telah

diuji secara fungsional, kinerja dan keamanan. Hasil pengujian menunjukkan

bahwa sistem ini layak digunakan untuk mengelola dan mendeteksi malware.

V.2. Saran

Berdasarkan hasil penelitian, maka peneliti menyarankan beberapa pengembangan

dan perbaikan untuk penelitian selanjutnya yaitu:

1. Merealisasikan Request Tracker for Incident Response (RTIR) pada

Ticketing System, dimana pengguna maupun mitra dapat memantau proses

analisa lebih lanjut pada berkas yang diunggah sebagai sampel baru.

2. Merealisasikan Reporting System pada sistem admin, dimana sistem ini

bekerja secara otomatis untuk membuat laporan secara berkala (perbulan

dan pertahun).

3. Merealisasikan suatu container atau environment untuk proses ZIP –

UNZIP sampel malware dengan aman dan tidak menginfeksi sistem

database malware. Proses ini dibutuhkan saat penggantian password ZIP

(antara admin dan mitra) pada sampel malware yang diunduh mitra.

4. Menyediakan server khusus terpisah untuk sampel malware, metadata, dan

penyimpanan berbagai sistem operasi yang menjadi target setiap malware.

Sistem operasi harus disediakan untuk dapat menjalankan malware dan

melakukan analisa secara dinamis.

Page 132: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

115

DAFTAR PUSTAKA

[1] Michael Sikorski and Andrew Honig, Practical Malware Analysis: The

Hands-on Guide to Dissecting Malicious Software, 1st ed. San Francisco: No

Starch Press, 2012.

[2] G. Cabau, M. Buhu, and C. Oprisa, “Malware classification using filesystem

footprints,” in 2016 IEEE International Conference on Automation, Quality

and Testing, Robotics (AQTR), Cluj-Napoca, Romania, 2016, pp. 1–6, doi:

10.1109/AQTR.2016.7501294.

[3] AV-TEST, “Malware Statistics & Trends Report | AV-TEST,” Malware,

2019. [Online]. Available: https://www.av-test.org/en/statistics/malware/.

[Accessed: 12-Dec-2019].

[4] ID-CERT, “Laporan Dwi Bulan II 2018 ID-CERT,” Indonesia, 2018. [5] ID-CERT, “Laporan Dwi Bulan III 2018 ID-CERT,” Indonesia, 2018.

[6] Alexander Kossiakoff, William N. Sweet, Samuel J. Seymour, and Steven

M. Biemer, Systems Engineering Principles And Practice - Second Edition,

2nd ed. Canada: A John Wiley & Sons, Inc., 2011.

[7] John Love, “A Brief History of Malware — Its Evolution and Impact |

Lastline,” 2018. [Online]. Available: https://www.lastline.com/blog/history-

of-malware-its-evolution-and-impact/. [Accessed: 12-Dec-2019].

[8] “What is malware? - Computer Business Review,” 2019. [Online].

Available: https://www.cbronline.com/what-is/what-is-malware-4924141/.

[Accessed: 12-Dec-2019].

[9] S. Sen, E. Aydogan, and A. I. Aysan, “Coevolution of Mobile Malware and

Anti-Malware,” IEEE Trans. Inf. Forensics Secur., vol. 13, no. 10, pp. 2563–

2574, Oct. 2018, doi: 10.1109/TIFS.2018.2824250.

[10] F. L. Sang, V. Nicomette, and Y. Deswarte, “A Tool to Analyze Potential

I/O Attacks against PCs,” IEEE Secur. Priv., vol. 12, no. 2, pp. 60–66, Mar.

2014, doi: 10.1109/MSP.2013.79.

[11] “A Malware Classification -Kaspersky Daily | Kaspersky official blog.”

[Online]. Available: https://www.kaspersky.com/blog/a-malware-

classification/3037/. [Accessed: 12-Dec-2019].

[12] E. F. Codd, “A relational model of data for large shared data banks,”

Commun. ACM, vol. 13, no. 6, pp. 377–387, Jun. 1970, doi:

10.1145/362384.362685.

[13] G. Jaiswal, “Comparative analysis of Relational and Graph databases,” IOSR

J. Eng., vol. 03, no. 08, pp. 25–27, Aug. 2013, doi: 10.9790/3021-03822527.

[14] C. Vicknair, M. Macias, Z. Zhao, X. Nan, Y. Chen, and D. Wilkins, “A

comparison of a graph database and a relational database: a data provenance

perspective,” in Proceedings of the 48th Annual Southeast Regional

Conference on - ACM SE ’10, Oxford, Mississippi, 2010, p. 1, doi:

10.1145/1900008.1900067.

[15] J. Kumar and V. Garg, “Security analysis of unstructured data in NOSQL

MongoDB database,” in 2017 International Conference on Computing and

Communication Technologies for Smart Nation (IC3TSN), Gurgaon, 2017,

pp. 300–305, doi: 10.1109/IC3TSN.2017.8284495.

Page 133: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

116

[16] H. A. Khan, A. Syed, A. Mohammad, and M. N. Halgamuge, “Computer

virus and protection methods using lab analysis,” in 2017 IEEE 2nd

International Conference on Big Data Analysis (ICBDA)(, Beijing, China,

2017, pp. 882–886, doi: 10.1109/ICBDA.2017.8078765.

[17] “VirusTotal.” [Online]. Available:

https://www.virustotal.com/gui/home/upload. [Accessed: 12-Dec-2019].

[18] P. Shahegh, T. Dietz, M. Cukier, A. Algaith, A. Brozik, and I. Gashi,

“AVAMAT: AntiVirus and malware analysis tool,” in 2017 IEEE 16th

International Symposium on Network Computing and Applications (NCA),

Cambridge, MA, 2017, pp. 1–4, doi: 10.1109/NCA.2017.8171379.

[19] “VirusTotal.” [Online]. Available: https://www.virustotal.com/gui/sign-in.

[Accessed: 13-Mar-2020].

[20] “API Virus Total,” VirusTotal. [Online]. Available:

https://developers.virustotal.com/v3.0/reference#files-scan. [Accessed: 13-

Mar-2020].

[21] “Free Malware Sample Sources for Researchers.” [Online]. Available:

https://zeltser.com/malware-sample-sources/. [Accessed: 12-Dec-2019].

[22] R. S. Pressman, Software Engineering : Practicioner’s Approach, 7th ed.

New York: McGraw-Hill Higher Education, 2012.

[23] Boris Beizer and John Wiley, “Black Box Testing: Techniques for

Functional Testing of Software and Systems - IEEE Journals & Magazine,”

IEEE Softw., vol. 13, no. 5, p. 98, Sep. 1996, doi: 10.1109/MS.1996.536464.

[24] P. Lan, “Andress, Jason Basics of Information Security, Second Edition.”

[25] “Types of Network Attacks against Confidentiality, Integrity and

Avilability.” [Online]. Available: https://www.omnisecu.com/ccna-

security/types-of-network-attacks.php. [Accessed: 13-Mar-2020].

[26] Kompasiana.com, “Sniffing Username dan Password dengan menggunakan

Wireshark,” KOMPASIANA. [Online]. Available:

https://www.kompasiana.com/www.lutfinurniswati.com/55186a50a333114c

07b665d5/sniffing-username-dan-password-dengan-menggunakan-

wireshark. [Accessed: 13-Mar-2020].

[27] Muchlis, “Pengertian dan Fungsi Wireshark, sisi Hacker vs Administrator

Jaringan,” Meretas DC, 23-Dec-2017. [Online]. Available:

https://meretas.com/wireshark-adalah/. [Accessed: 13-Mar-2020].

[28] “Pengertian Brute Force Attack - Teknik Hacking,” Link Pengetahuan.

[Online]. Available:

https://linkpengetahuan.blogspot.com/2019/03/pengertian-brute-force-attack-

teknik-hacking.html. [Accessed: 12-Mar-2020].

[29] M. Dahlan, A. Latubessy, M. Nurkamid, and L. H. Anggraini, “Pengujian

Dan Analisa Keamanan Website Terhadap Serangan SQL Injection (Studi

Kasus : Website UMK),” vol. 7, p. 7, 2015.

[30] M. S. Hasibuan, “Ancaman SYN Flooding dalam Jaringan.”

[31] Kompasiana.com, “Memahami Syn Flood Attack,” KOMPASIANA.

[Online]. Available:

https://www.kompasiana.com/edysusanto74/55777f2e2f977396119dc8ea/me

mahami-syn-flood-attack. [Accessed: 14-Mar-2020].

Page 134: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

117

LAMPIRAN

Page 135: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

A-1

Lampiran A List Program

Program Sistem Database Malware dibagi menjadi Client dan Server. Daftar

program dari sisi client ditunjukkan pada tabel A1. List Program Client. Program

ini berfungsi untuk menerima request dan input data dari pengguna dan

meneruskannya ke server. Sedangkan daftar program untuk server ditunjukkan

pada tabel A2. List Program Server. Program ini digunakan untuk mengolah request

yang diterima, menghubungkan sistem dengan database, dan memberikan response

ke sistem client.

A1. List Program Client

Sistem Admin

admin.php malware.php

admin_hapus.php malware_hapus.php

analisa.php malware_unduh.php

analisa_hapus.php malware_detail.php

analisa_unduh.php malware_edit.php

benign.php mitra.php

benign_hapus.php mitra_hapus.php

benign_unduh.php recent.php

benign_detail.php reg_admin.php

home.php reg_mitra.php

login.php tambah_benign.php

logout.php tambah_malware.php

Sistem User

deteksi.php deteksi_tiket.php

deteksi_aman.php deteksi_vt.php

deteksi_perlu_analisa.php deteksi_vtmsg.php

deteksi_proses.php index.php

deteksi_terdeteksi.php riwayat.php

Sistem Mitra

m.akun.php m.deteksi_vt.php

m.akun_edit.php m.deteksi_vtmsg.php

m.akun_pass.php m.index.php

m.deteksi.php m.lab.php

m.deteksi_aman.php m.lab_detail.php

m.deteksi_perlu_analisa.php m.lab_unduh.php

m.deteksi_proses.php m.login.php

m.deteksi_terdeteksi.php m.logout.php

m.deteksi_tiket.php m.riwayat.php

API

api_benign.php api_admin.php

api_malware.php api_mitra.php

api_baru.php api_recent.php

Function

function.php function_benign.php

function_deteksi.php function_malware.php

function_vt.php

Page 136: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

A-2

A2. List Program Server

Controller API

Malware.php Mitra.php

Benign.php Recent.php

Baru.php Riwayat.php

Admin.php M_Riwayat.php

Models Malware_model.php Mitra_model.php

Benign_model.php Recent_model.php

Baru_model.php Riwayat_model.php

Admin_model.php m_Riwayat_model.php

Pada laporan penelitian ini, tidak semua kode program dilampirkan. Kode program

yang terlampir yaitu program deteksi Default dan Virus Total seperti padaLampiran

B, program API client pada Lampiran C, program controller server seperti pada

Lampiran D, dan program models server pada Lampiran E. Seluruh program sistem

database malware dapat dilihat dan diunduh di github pada:

https://github.com/relacamilia/dbmalware.

Page 137: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

B-1

Lampiran B Kode Program Deteksi

B1. deteksi.php (Default) 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<?php

require '../function/functions.php';

require '../function/functions_deteksi.php';

require '../function/functions_vt.php';

require '../api/api_malware.php';

require '../api/api_benign.php';

require '../api/api_baru.php';

require '../api/api_recent.php';

if (isset($_POST["submit"])) {

if(cekFileUser() < 1){

exit;

}

$file_user = $_FILES['file_user']['name'];

$ukuran_file_user = formatBytes($_FILES['file_user']['size']);

$explode = explode('.',$file_user);

$tipe_file_user = $explode[1];

$file = $_FILES['file_user']['tmp_name'];

$sha256_user = hash_file('sha256', $file);

if($_POST["scan"] === 'virustotal'){

header("location: deteksi_vt.php?file=$file &name=$file_user &sha

256=$sha256_user");

exit;

} else {

$rowm = getMalwareByHash($sha256_user);

if($rowm === 0) {

$rowb = getBenignByHash($sha256_user);

if($rowb === 0) {

$rowbaru = getBaruByHash($sha256_user);

if($rowbaru === 0){

header("Location:deteksi_perlu_analisa.php?file=$file_use

r&size=$ukuran_file_user&tipe=$tipe_file_user&sha256=$sha256_user");

uploadBaru($file, $file_user);

$data = [

'file_user' => $file_user,

'sha256_user' => $sha256_user,

'status' => "Perlu Analisa",

'metode' => "Default"

];

createRiwayat($data);

} else {

$id = $rowbaru["id_baru"];

header("Location: deteksi_proses.php?id=$id");

$data = [

'file_user' => $rowbaru["file_baru"],

'sha256_user' => $rowbaru["sha256_baru"],

'status' => "Proses Analisa",

'metode' => "Default"

];

createRiwayat($data);

}

} else {

$id = $rowb["id_benign"];

header("Location: deteksi_aman.php?id=$id");

$data = [

'file_user' => $rowb["file_benign"],

'sha256_user' => $rowb["sha256_benign"],

Page 138: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

B-2

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

'status' => "File Aman",

'metode' => "Default"

];

createRiwayat($data);

}

} else {

$data = $rowm["id_malware"];

header("Location: deteksi_terdeteksi.php?id=$data");

$data = [

'file_user' => $rowm["file_malware"],

'sha256_user' => $rowm["sha256_malware"],

'status' => "Terdeteksi",

'metode' => "Default"

];

createRiwayat($data);

}

}

}

?>

B2. deteksi_vt.php (Virus Total) 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

<?php

require '../function/functions.php';

require '../function/functions_vt.php';

require '../api/api_recent.php';

$hash = $_GET['sha256'];

$file = $_GET['file'];

$name= $_GET['name'];

$js = virusTotal($hash);

if($js === 0){

$isi = [

'file_user' => $name,

'sha256_user' => $hash,

'status' => "Queue",

'metode' => "Virus Total"

];

createRiwayat($isi);

$result = scanVtUser($file, $hash);

if(is_array($result)){

$js = $result;

}

}

$data = $js['data']['attributes'];

$stats = $data['last_analysis_stats'];

$detec = $data['last_analysis_results'];

$exif = $data['exiftool'];

if(($stats['malicious']) == 0) {

$result = "UNDETECTED";

$img = "19.png";

$color ="success";

$isi = [

'file_user' => $name,

'sha256_user' => $hash,

'status' => "Undetected",

'metode' => "Virus Total"

];

createRiwayat($isi);

} else {

$result = "DETECTED";

Page 139: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

B-3

43

44

45

46

47

48

49

50

51

52

53

$img = "21.png";

$color ="danger";

$isi = [

'file_user' => $name,

'sha256_user' => $hash,

'status' => "Detected",

'metode' => "Virus Total"

];

createRiwayat($isi);

}

?>

B3. functions_vt.php (Virus Total) 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

<?php

function virusTotal($hash){

$headers = array('x-apikey:e4f0c6fc1643f7fb301d1e19d3ab6720fcf

d3a2e7a625d909e2082647920906b');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://www.virustotal.com/api/v3/

files/$hash");

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_POST,1);

curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');

curl_setopt($ch, CURLOPT_USERAGENT, "gzip, My php curl client");

curl_setopt($ch, CURLOPT_RETURNTRANSFER ,true);

curl_setopt($ch, CURLOPT_HTTPGET, true);

$result=curl_exec ($ch);

$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($status_code == 200) {

$js = json_decode($result, true);

return $js;

} else {

return 0;

}

curl_close ($ch);

}

function scanVtUser($file, $hash){

header("Content-Type: text/plain");

$apikey = "e4f0c6fc1643f7fb301d1e19d3ab6720fcfd3a2e7a625d909e

2082647920906b";

$report = 'https://www.virustotal.com/vtapi/v2/file/report?apikey='

.$apikey."&resource=".$hash;

$api_reply = file_get_contents($report);

$api_reply_array = json_decode($api_reply, true);

if($api_reply_array['response_code']==-2){

$msg = $api_reply_array['verbose_msg'];

header("Location: deteksi_vtmsg.php?msg=$msg");

exit;

}

if($api_reply_array['response_code']==1){

$result = $api_reply_array;

return $result;

}

if ($api_reply_array['response_code']=='0'){

$post_url = 'https://www.virustotal.com/vtapi/v2/file/scan';

if($size >= 32){

$api_reply = @file_get_contents('https://www.virustotal.com/vta

pi/v2/file/scan/upload_url?apikey='.$apikey);

$api_reply_array = json_decode($api_reply, true);

if(isset($api_reply_array['upload_url']) and $api_reply_array['

Page 140: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

B-4

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

upload_url']!=''){

$post_url = $api_reply_array['upload_url'];

}

}

$post['apikey'] = $apikey;

$post['file'] = '@'.$file;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$post_url);

curl_setopt($ch, CURLOPT_POST,1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$api_reply = curl_exec ($ch);

curl_close ($ch);

$api_reply_array = json_decode($api_reply, true);

if($api_reply_array['response_code']==1){

$scanID = $api_reply_array['scan_id'];

header("Location: deteksi_vtmsg.php?scanID=$scanID");

exit;

}

}

}

function scanVtMitra($idm, $file, $hash){

header("Content-Type: text/plain");

$apikey = "e4f0c6fc1643f7fb301d1e19d3ab6720fcfd3a2e7a625d909e2082

647920906b";

$report = 'https://www.virustotal.com/vtapi/v2/file/report?apikey='

.$apikey."&resource=".$hash;

$api_reply = file_get_contents($report);

$api_reply_array = json_decode($api_reply, true);

if($api_reply_array['response_code']==-2){

$msg = $api_reply_array['verbose_msg'];

header("Location: m.deteksi_vtmsg.php?idm=$idm &msg=$msg");

exit;

}

if($api_reply_array['response_code']==1){

$result = $api_reply_array;

return $result;

}

if($api_reply_array['response_code']=='0'){

$post_url = 'https://www.virustotal.com/vtapi/v2/file/scan';

$post['apikey'] = $apikey;

$post['file'] = '@'.$file;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$post_url);

curl_setopt($ch, CURLOPT_POST,1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$api_reply = curl_exec ($ch);

curl_close ($ch);

$api_reply_array = json_decode($api_reply, true);

if($api_reply_array['response_code']==1){

$scanID = $api_reply_array['scan_id'];

header("Location:m.deteksi_vtmsg.php?idm=$idm&scanID=$scanID");

exit;

}

}

}

?>

Page 141: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-1

Lampiran C Kode Program REST API Client

Program ini digunakan untuk mengirimkan request ke REST API Server.

C1. api_malware.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

<?php

require '../../guzzle/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([

'base_uri' => 'http://localhost/tesisrela/rest-server/api/'

]);

function getAllMalware(){

global $client;

$response = $client->request('GET', "malware", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function getMalwareById($id){

global $client;

$response = $client->request('GET', "malware", [

'query' => ['id_malware' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'][0];

}

function getMalwareByHash($sha256_user){

global $client;

$response = $client->request('GET', "malware", [

'query' => ['sha256' => $sha256_user]

]);

$result = json_decode($response->getBody()->getContents(),true);

if (($result["status"]) === 0 ) {

return 0;

} else {

return $result['data'][0];

}

}

function deleteMalware($id){

global $client;

$response = $client->request('DELETE', "malware", [

'form_params' => ['id_malware' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

function createMalware($dataMal){

global $client;

$contents = $_FILES['file_malware']['tmp_name'];

$name = $_FILES['file_malware']['name'];

$data = [

'contents' => $contents,

'waktu' => date("d-m-Y h:i:s"),

'file_malware' => $name,

'tipe_file_malware' => "zip",

'ukuran_file_malware' => formatBytes($_FILES['file_malware']

['size']),

'md5_malware' => hash_file('md5', $contents),

'sha1_malware' => hash_file('sha1', $contents),

'sha256_malware' => hash_file('sha256', $contents),

'ssdeep' => htmlspecialchars($dataMal["ssdeep"]),

'vhash' => htmlspecialchars($dataMal["vhash"]),

'nama' => htmlspecialchars($dataMal["nama"]),

'nama_lain' => htmlspecialchars($dataMal["nama_lain"]),

'jenis' => htmlspecialchars($dataMal["jenis"]),

Page 142: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-2

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

'karakteristik' =>htmlspecialchars($dataMal["karakteristik"])

'cara_kerja' => htmlspecialchars($dataMal["cara_kerja"]),

'penyebaran' => htmlspecialchars($dataMal["penyebaran"]),

'bahaya' => htmlspecialchars($dataMal["bahaya"]),

'target' => htmlspecialchars($dataMal["target"]),

'ket' => htmlspecialchars($dataMal["ket"]),

'pencegahan' => htmlspecialchars($dataMal["pencegahan"]),

'penanganan' => htmlspecialchars($dataMal["penanganan"]),

'pemulihan' => htmlspecialchars($dataMal["pemulihan"]),

'pembuat_file' => htmlspecialchars($dataMal["pembuat_file"]),

'note' => htmlspecialchars($dataMal["note"]),

'kontak' => htmlspecialchars($dataMal["kontak"]),

'enkripsi' => htmlspecialchars($dataMal["enkripsi"]),

'tebusan' => htmlspecialchars($dataMal["tebusan"])

];

$response = $client->request('POST', 'malware', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result["status"];

}

function updateMalware($dataMal){

global $client;

$data = [

'id_malware' => $dataMal["id_malware"],

'waktu' => $dataMal["waktu"],

'file_malware' => $dataMal["file_malware"],

'tipe_file_malware' => $dataMal["tipe_file_malware"],

'ukuran_file_malware' => $dataMal["ukuran_file_malware"],

'md5_malware' => $dataMal["md5_malware"],

'sha1_malware' => $dataMal["sha1_malware"],

'sha256_malware' => $dataMal["sha256_malware"],

'ssdeep' => htmlspecialchars($dataMal["ssdeep"]),

'vhash' => htmlspecialchars($dataMal["vhash"]),

'nama' => htmlspecialchars($dataMal["nama"]),

'nama_lain' => htmlspecialchars($dataMal["nama_lain"]),

'jenis' => htmlspecialchars($dataMal["jenis"]),

'karakteristik'=>htmlspecialchars($dataMal["karakteristik"]),

'cara_kerja' => htmlspecialchars($dataMal["cara_kerja"]),

'penyebaran' => htmlspecialchars($dataMal["penyebaran"]),

'bahaya' => htmlspecialchars($dataMal["bahaya"]),

'target' => htmlspecialchars($dataMal["target"]),

'ket' => htmlspecialchars($dataMal["ket"]),

'pencegahan' => htmlspecialchars($dataMal["pencegahan"]),

'penanganan' => htmlspecialchars($dataMal["penanganan"]),

'pemulihan' => htmlspecialchars($dataMal["pemulihan"]),

'pembuat_file' => htmlspecialchars($dataMal["pembuat_file"]),

'note' => htmlspecialchars($dataMal["note"]),

'kontak' => htmlspecialchars($dataMal["kontak"]),

'enkripsi' => htmlspecialchars($dataMal["enkripsi"]),

'tebusan' => htmlspecialchars($dataMal["tebusan"])

];

$response = $client->request('PUT', 'malware',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result;

}

function updateMalwareFile($dataMal){

global $client;

$contents = $_FILES['file_malware_baru']['tmp_name'];

$name = $_FILES['file_malware_baru']['name'];

$data = [

'id_malware' => $dataMal["id_malware"],

'waktu' => $dataMal["waktu"],

Page 143: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-3

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

'file_malware' => $name,

'tipe_file_malware' => "zip",

'ukuran_file_malware'=>formatBytes($_FILES['file_malware_baru

']['size']),

'md5_malware' => hash_file('md5', $contents),

'sha1_malware' => hash_file('sha1', $contents),

'sha256_malware' => hash_file('sha256', $contents),

'ssdeep' => htmlspecialchars($dataMal["ssdeep"]),

'vhash' => htmlspecialchars($dataMal["vhash"]),

'nama' => htmlspecialchars($dataMal["nama"]),

'nama_lain' => htmlspecialchars($dataMal["nama_lain"]),

'jenis' => htmlspecialchars($dataMal["jenis"]),

'karakteristik'=>htmlspecialchars($dataMal["karakteristik"]),

'cara_kerja' => htmlspecialchars($dataMal["cara_kerja"]),

'penyebaran' => htmlspecialchars($dataMal["penyebaran"]),

'bahaya' => htmlspecialchars($dataMal["bahaya"]),

'target' => htmlspecialchars($dataMal["target"]),

'ket' => htmlspecialchars($dataMal["ket"]),

'pencegahan' => htmlspecialchars($dataMal["pencegahan"]),

'penanganan' => htmlspecialchars($dataMal["penanganan"]),

'pemulihan' => htmlspecialchars($dataMal["pemulihan"]),

'pembuat_file' => htmlspecialchars($dataMal["pembuat_file"]),

'note' => htmlspecialchars($dataMal["note"]),

'kontak' => htmlspecialchars($dataMal["kontak"]),

'enkripsi' => htmlspecialchars($dataMal["enkripsi"]),

'tebusan' => htmlspecialchars($dataMal["tebusan"]),

'contents' => $contents

];

$response = $client->request('PUT', 'malware',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result;

}

?>

C2. api_benign.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?php

require '../../guzzle/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([

'base_uri' => 'http://localhost/tesisrela/rest-server/api/'

]);

function getAllBenign(){

global $client;

$response = $client->request('GET', "benign", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function getBenignById($id){

global $client;

$response = $client->request('GET', "benign", [

'query' => ['id_benign' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'][0];

}

function getBenignByHash($sha256_user){

global $client;

$response = $client->request('GET', "benign", [

'query' => ['sha256' => $sha256_user]

]);

$result = json_decode($response->getBody()->getContents(),true);

if (($result["status"]) === 0 ) {

Page 144: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-4

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

return 0;

} else {

return $result['data'][0];

}

}

function deleteBenign($id){

global $client;

$response = $client->request('DELETE', "benign", [

'form_params' => ['id_benign' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

function createBenign($dataMal){

global $client;

$contents = $_FILES['file_benign']['tmp_name'];

$name = $_FILES['file_benign']['name'];

$data = [

'contents' => $contents,

'file_benign' => $name,

'tipe_file_benign' => "zip",

'ukuran_file_benign'=>formatBytes($_FILES['file_benign']['siz

e']),

'md5_benign' => $md5 = hash_file('md5', $contents),

'sha1_benign' => $sha1 = hash_file('sha1', $contents),

'sha256_benign'=>$sha256_benign=hash_file('sha256',$contents)

];

$response = $client->request('POST', 'benign', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result["status"];

}

?>

C3. api_baru.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<?php

require '../../guzzle/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([

'base_uri' => 'http://localhost/tesisrela/rest-server/api/'

]);

function getAllBaru(){

global $client;

$response = $client->request('GET', "baru", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function getBaruById($id){

global $client;

$response = $client->request('GET', "baru", [

'query' => ['id_baru' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'][0];

}

function getBaruByHash($sha256_user){

global $client;

$response = $client->request('GET', "baru", [

'query' => ['sha256' => $sha256_user]

]);

$result = json_decode($response->getBody()->getContents(),true);

if (($result["status"]) === 0 ) {

Page 145: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-5

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

return 0;

} else {

return $result['data'][0];

}

}

function deleteBaru($id){

global $client;

$response = $client->request('DELETE', "baru", [

'form_params' => ['id_baru' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

function createBaru($data){

global $client;

$file = explode(".", $data['file_baru']);

$file_baru = $file[0]. ".zip";

$data = [

'file_baru' => $file_baru,

'waktu_input' => date("d-m-Y"),

'tipe_file_baru' => "zip",

'ukuran_file_baru' => $data['ukuran_file_baru'],

'sha256_baru' => $data['sha256_baru'],

'pengirim' => $data['pengirim'],

'email' => htmlspecialchars($data['email']),

'status' => "Perlu Analisa"

];

$response = $client->request('POST', 'baru', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

if(($result['status']) === 0 ){

return 0;

} else {

return 1;

}

}

function uploadBaru($file, $file_user){

global $client;

$data = [

'contents' => $file,

'file_baru' => $file_user

];

$response = $client->request('POST', 'baru', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

if(($result['status']) === 0 ){

return 0;

} else {

return 1;

}

}

?>

C4. api_admin.php

1

2

3

4

5

6

7

8

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Admin extends REST_Controller {

public function __construct(){

parent::__construct();

Page 146: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-6

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

$this->load->model('Admin_model', 'admin')

}

public function index_get(){

$id = $this->get('id_admin');

$username = $this->get('username');

if (($id && $username) === null) {

$admin = $this->admin->getAdmin();

} else if ($username === null){

$admin = $this->admin->getAdmin($id);

} else if ($id === null){

$admin = $this->admin->getAdminByUsername($username);

}

if($admin){

$this->response([

'status' => 1,

'data' => $admin

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'id admin tidak ditemukan'

]);

}

}

public function index_get_admin(){

$username = $this->get('username');

$admin = $this->admin->getAdminByUsername($username);

if($admin){

$this->response([

'status' => 1,

'data' => $admin

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Username tidak ditemukan'

]);

}

}

public function index_delete(){

$id = $this->delete('id_admin');

if ($id === null){

$this->response([

'status' => 0,

'message' => 'masukkan id admin yang ingin dihapus'

], REST_Controller::HTTP_BAD_REQUEST);

} else {

if( $this->admin->deleteAdmin($id) > 0){

$this->response([

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id admin tidak ditemukan'

]);

}

}

}

public function index_post(){

$data = [

'nama' => $this->post('nama'),

'username' => $this->post('username'),

Page 147: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-7

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

'password' => $this->post('password'),

'email' => $this->post('email')

];

$username = $data['username'];

$admin = $this->admin->getAdminByUsername($username);

if($admin){

$this->response([

'status' => 2,

'message' => 'Username sudah ada dalam DB admin!'

]);

} else {

if( $this->admin->createAdmin($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

public function index_put(){

$id = $this->put('id_admin');

$data = [

'nama' => $this->put('nama'),

'username' => $this->put('username'),

'password' => $this->put('password'),

'email' => $this->put('email')

];

if( $this->admin->updateAdmin($data, $id) > 0){

$this->response([

'status' => 1,

'message' => 'data berhasil diubah'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'gagal mengubah data'

]);

}

}

}

?>

C5. api_mitra.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

require '../../guzzle/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([

'base_uri' => 'http://localhost/tesisrela/rest-server/api/'

]);

function getAllMitra(){

global $client;

$response = $client->request('GET', "mitra", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function getMitraById($idm){

global $client;

$response = $client->request('GET', "mitra", [

'query' => ['id_mitra' => $idm]

Page 148: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-8

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'][0];

}

function getMitraByUsername($username){

global $client;

$response = $client->request('GET', "mitra", [

'query' => ['username' => $username]

]);

$result = json_decode($response->getBody()->getContents(),true);

if (($result["status"]) === 0 ) {

return 0;

} else {

return $result["data"][0];

}

}

function deleteMitra($id){

global $client;

$response = $client->request('DELETE', "mitra", [

'form_params' => ['id_mitra' => $id]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

function createMitra($dataMal){

global $client;

$password= htmlspecialchars($dataMal["password"]);

$password = password_hash($password, PASSWORD_DEFAULT);

$data = [

'nama' => htmlspecialchars($dataMal["nama"]),

'username' => strtolower(stripslashes($dataMal["username"])),

'password' => $password,

'email' => htmlspecialchars($dataMal["email"]),

'instansi' => htmlspecialchars($dataMal["instansi"]),

'foto' => "default.png"

];

$response = $client->request('POST', 'mitra', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['status'];

}

function updateMitraFoto($dataMit){

global $client;

$contents = $_FILES['foto']['tmp_name'];

$namaFoto = $_FILES['foto']['name'];

$data = [

'id_mitra' => $dataMit["id_mitra"],

'nama' => htmlspecialchars($dataMit["nama"]),

'username' => htmlspecialchars($dataMit["username"]),

'password' => $dataMit["password"],

'email' => htmlspecialchars($dataMit["email"]),

'instansi' => htmlspecialchars($dataMit["instansi"]),

'foto' => htmlspecialchars($namaFoto),

'contents' => $contents

];

$response = $client->request('PUT', 'mitra',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result['status'];

}

function updateMitra($dataMit){

global $client;

$data = [

Page 149: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-9

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

'id_mitra' => $dataMit["id_mitra"],

'nama' => htmlspecialchars($dataMit["nama"]),

'username' => htmlspecialchars($dataMit["username"]),

'password' => $dataMit["password"],

'email' => htmlspecialchars($dataMit["email"]),

'instansi' => htmlspecialchars($dataMit["instansi"]),

'foto' => $dataMit["foto_lama"]

];

$response = $client->request('PUT', 'mitra',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result['status'];

}

function updateMitraPass($dataMit){

global $client;

$pass_baru = htmlspecialchars($dataMit["password"]);

$password = password_hash($pass_baru, PASSWORD_DEFAULT);

$data = [

'id_mitra' => $dataMit["idm"],

'nama' => htmlspecialchars($dataMit["nama"]),

'username' => htmlspecialchars($dataMit["username"]),

'password' => $password,

'email' => htmlspecialchars($dataMit["email"]),

'instansi' => htmlspecialchars($dataMit["instansi"]),

'foto' => htmlspecialchars($dataMit["foto"])

];

$response = $client->request('PUT', 'mitra',[

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(), true);

return $result['status'];

}

?>

C6. api_recent.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?php

require '../../guzzle/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client([

'base_uri' => 'http://localhost/tesisrela/rest-server/api/'

]);

function getAllRecent(){

global $client;

$response = $client->request('GET', "recent", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function createRecent($dataRec){

global $client;

$data = [

'waktu_input' => date("d-m-Y"),

'file' => $dataRec["file"],

'sha256' => $dataRec["sha256"],

'status' => $dataRec["status"],

'aksi' => $dataRec["aksi"],

'oleh' => $dataRec["oleh"]

];

$response = $client->request('POST', 'recent', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

Page 150: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

C-10

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

}

function getMRiwayat($idm){

global $client;

$response = $client->request('GET', "m_riwayat", [

'query' => ['idm' => $idm]

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function createMRiwayat($data){

global $client;

$data = [

'idm' => $data["idm"],

'waktu_input' => date("d-m-Y"),

'file_mitra' => $data["file_mitra"],

'sha256_mitra' => $data["sha256_mitra"],

'status' => $data["status"],

'aksi' => $data["aksi"],

'metode' => $data["metode"]

];

$response = $client->request('POST', 'm_riwayat', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

function getRiwayat(){

global $client;

$response = $client->request('GET', "riwayat", []);

$result = json_decode($response->getBody()->getContents(),true);

return $result['data'];

}

function createRiwayat($data){

global $client;

$data = [

'waktu_input' => date("d-m-Y"),

'file_user' => $data["file_user"],

'sha256_user' => $data["sha256_user"],

'status' => $data["status"],

'metode' => $data["metode"]

];

$response = $client->request('POST', 'riwayat', [

'form_params' => $data

]);

$result = json_decode($response->getBody()->getContents(),true);

return $result;

}

?>

Page 151: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-1

Lampiran D Kode Program REST API Server (Controller)

Program ini digunakan untuk mengelola Request dari REST API Client dan

mengirimkan Response ke REST API Client.

D1. Malware.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Malware extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('Malware_model', 'malware');

}

public function index_get(){

$id = $this->get('id_malware');

$sha256 = $this->get('sha256');

if (($id && $sha256) === null) {

$malware = $this->malware->getMalware();

} else if ($sha256 === null){

$malware = $this->malware->getMalware($id);

} else if ($id === null){

$malware = $this->malware->getMalwareByHash($sha256);

}

if($malware){

$this->response([

'status' => 1,

'data' => $malware

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'tidak ada hash yang sama'

]);

}

}

public function index_delete(){

$id = $this->delete('id_malware');

if ($id === null){

$this->response([

'status' => o,

'message' => 'masukkan id malware yang ingin dihapus'

]);

} else {

if( $this->malware->deleteMalware($id) > 0){

$this->response([

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id malware tidak ditemukan'

]);

}

}

}

public function index_post(){

$sha256 = $this->post('sha256_malware');

$fileName = $this->post('file_malware');

Page 152: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-2

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

$contents = $this->post('contents');

$malware = $this->malware->getMalwareByHash($sha256);

if($malware){

$this->response([

'status' => 2,

'message' => 'Sampel yg sama sdh tersimpan di DB Malware!'

]);

} else {

$file_malware=$this->malware->uploadMalware($contents,$fileName);

$data = [

'waktu' => $this->post('waktu'),

'file_malware' => $file_malware,

'tipe_file_malware' => $this->post('tipe_file_malware'),

'ukuran_file_malware'=>$this->post('ukuran_file_malware'),

'md5_malware' => $this->post('md5_malware'),

'sha1_malware' => $this->post('sha1_malware'),

'sha256_malware' => $this->post('sha256_malware'),

'ssdeep' => $this->post('ssdeep'),

'vhash' => $this->post('vhash'),

'nama' => $this->post('nama'),

'nama_lain' => $this->post('nama_lain'),

'jenis' => $this->post('jenis'),

'karakteristik' => $this->post('karakteristik'),

'cara_kerja' => $this->post('cara_kerja'),

'penyebaran' => $this->post('penyebaran'),

'bahaya' => $this->post('bahaya'),

'target' => $this->post('target'),

'ket' => $this->post('ket'),

'pencegahan' => $this->post('pencegahan'),

'penanganan' => $this->post('penanganan'),

'pemulihan' => $this->post('pemulihan'),

'pembuat_file' => $this->post('pembuat_file'),

'note' => $this->post('note'),

'kontak' => $this->post('kontak'),

'enkripsi' => $this->post('enkripsi'),

'tebusan' => $this->post('tebusan')

];

if( $this->malware->createMalware($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

public function index_put(){

$id = $this->put('id_malware');

$contents = $this->put('contents');

$fileName = $this->put('file_malware');

if($contents !== null){

$fileName=$this->malware->uploadMalware($contents,$fileName);

if($fileName === 0){

$this->response([

'status' => 2,

'message' => 'Gagal mengupload foto!'

]);

}

}

$data = [

'waktu' => $this->put('waktu'),

Page 153: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-3

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

'file_malware' => $this->put('file_malware'),

'tipe_file_malware' => $this->put('tipe_file_malware'),

'ukuran_file_malware' => $this->put('ukuran_file_malware'),

'md5_malware' => $this->put('md5_malware'),

'sha1_malware' => $this->put('sha1_malware'),

'sha256_malware' => $this->put('sha256_malware'),

'ssdeep' => $this->put('ssdeep'),

'vhash' => $this->put('vhash'),

'nama' => $this->put('nama'),

'nama_lain' => $this->put('nama_lain'),

'jenis' => $this->put('jenis'),

'karakteristik' => $this->put('karakteristik'),

'cara_kerja' => $this->put('cara_kerja'),

'penyebaran' => $this->put('penyebaran'),

'bahaya' => $this->put('bahaya'),

'target' => $this->put('target'),

'ket' => $this->put('ket'),

'pencegahan' => $this->put('pencegahan'),

'penanganan' => $this->put('penanganan'),

'pemulihan' => $this->put('pemulihan'),

'pembuat_file' => $this->put('pembuat_file'),

'note' => $this->put('note'),

'kontak' => $this->put('kontak'),

'enkripsi' => $this->put('enkripsi'),

'tebusan' => $this->put('tebusan'),

];

if( $this->malware->updateMalware($data, $id) > 0){

$this->response([

'status' => 1,

'message' => 'Data berhasil diubah!'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal mengubah data!'

]);

}

}

}

?>

D2. Benign.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Benign extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('Benign_model', 'benign');

}

public function index_get(){

$id = $this->get('id_benign');

$sha256 = $this->get('sha256');

if (($id && $sha256) === null) {

$benign = $this->benign->getBenign();

} else if ($sha256 === null){

$benign = $this->benign->getBenign($id);

} else if ($id === null){

$benign = $this->benign->getBenignByHash($sha256);

}

if($benign){

$this->response([

Page 154: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-4

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

'status' => 1,

'data' => $benign

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'Tidak ada hash yang sama'

]);

}

}

public function index_delete(){

$id = $this->delete('id_benign');

if ($id === null){

$this->response([

'status' => 0,

'message' => 'masukkan id benign yang ingin dihapus'

]);

} else {

if( $this->benign->deleteBenign($id) > 0){

$this->response([

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id benign tidak ditemukan'

]);

}

}

}

public function index_post(){

$sha256 = $this->post('sha256_benign');

$fileName = $this->post('file_benign');

$contents = $this->post('contents');

$benign = $this->benign->getBenignByHash($sha256);

if($benign){

$this->response([

'status' => 2,

'message' => 'Sampel yang sama sdh ada di DB Benign!'

]);

} else {

$file_benign=$this->benign->uploadBenign($contents,$fileName);

$data = [

'file_benign' => $file_benign,

'tipe_file_benign' => $this->post('tipe_file_benign'),

'ukuran_file_benign' => $this->post('ukuran_file_benign'),

'md5_benign' => $this->post('md5_benign'),

'sha1_benign' => $this->post('sha1_benign'),

'sha256_benign' => $this->post('sha256_benign')

];

if( $this->benign->createBenign($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

Page 155: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-5

88

89

}

?>

D3. Baru.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Baru extends REST_Controller {

public function __construct(){

parent::__construct();

$this->load->model('Baru_model', 'baru');

}

public function index_get(){

$id = $this->get('id_baru');

$sha256 = $this->get('sha256');

if (($id && $sha256) === null) {

$baru = $this->baru->getBaru();

} else if ($sha256 === null){

$baru = $this->baru->getBaru($id);

} else if ($id === null){

$baru = $this->baru->getBaruByHash($sha256);

}

if($baru){

$this->response([

'status' => 1,

'data' => $baru

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'Tidak ada hash yang sama'

]);

}

}

public function index_delete(){

$id = $this->delete('id_baru');

if ($id === null){

$this->response([

'status' => 0,

'message' => 'masukkan id baru yang ingin dihapus'

]);

} else {

if( $this->baru->deleteBaru($id) > 0){

$this->response([

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id baru tidak ditemukan'

]);

}

}

}

public function index_post(){

$contents = $this->post('contents');

$fileName = $this->post('file_baru');

if( $contents !== null){

$file_baru = $this->baru->uploadBaru($contents,$fileName);

Page 156: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-6

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

} else {

$data = [

'file_baru' => $fileName,

'waktu_input' => $this->post('waktu_input'),

'tipe_file_baru' => $this->post('tipe_file_baru'),

'ukuran_file_baru' => $this->post('ukuran_file_baru'),

'sha256_baru' => $this->post('sha256_baru'),

'pengirim' => $this->post('pengirim'),

'email' => $this->post('email'),

'status' => $this->post('status')

];

if( $this->baru->createBaru($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

}

?>

D4. Admin.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Admin extends REST_Controller {

public function __construct(){

parent::__construct();

$this->load->model('Admin_model', 'admin');

}

public function index_get(){

$id = $this->get('id_admin');

$username = $this->get('username');

if (($id && $username) === null) {

$admin = $this->admin->getAdmin();

} else if ($username === null){

$admin = $this->admin->getAdmin($id);

} else if ($id === null){

$admin = $this->admin->getAdminByUsername($username);

}

if($admin){

$this->response([

'status' => 1,

'data' => $admin

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'id admin tidak ditemukan'

]);

}

}

public function index_get_admin(){

$username = $this->get('username');

$admin = $this->admin->getAdminByUsername($username);

Page 157: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-7

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

if($admin){

$this->response([

'status' => 1,

'data' => $admin

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Username tidak ditemukan'

]);

}

}

public function index_delete(){

$id = $this->delete('id_admin');

if ($id === null){

$this->response([

'status' => 0,

'message' => 'masukkan id admin yang ingin dihapus'

], REST_Controller::HTTP_BAD_REQUEST);

} else {

if( $this->admin->deleteAdmin($id) > 0){

$this->response([

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id admin tidak ditemukan'

]);

}

}

}

public function index_post(){

$data = [

'nama' => $this->post('nama'),

'username' => $this->post('username'),

'password' => $this->post('password'),

'email' => $this->post('email')

];

$username = $data['username'];

$admin = $this->admin->getAdminByUsername($username);

if($admin){

$this->response([

'status' => 2,

'message' => 'Username sudah terdaftar dlm DB admin!'

]);

} else {

if( $this->admin->createAdmin($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

public function index_put(){

$id = $this->put('id_admin');

$data = [

Page 158: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-8

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

'nama' => $this->put('nama'),

'username' => $this->put('username'),

'password' => $this->put('password'),

'email' => $this->put('email')

];

if( $this->admin->updateAdmin($data, $id) > 0){

$this->response([

'status' => 1,

'message' => 'data berhasil diubah'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'gagal mengubah data'

]);

}

}

}

?>

D5. Mitra.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Mitra extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('Mitra_model', 'mitra');

}

public function index_get(){

$id = $this->get('id_mitra');

$username = $this->get('username');

if (($id && $username) === null) {

$mitra = $this->mitra->getMitra();

} else if ($username === null){

$mitra = $this->mitra->getMitra($id);

} else if ($id === null){

$mitra = $this->mitra->getMitraByUsername($username);

}

if($mitra){

$this->response([

'status' => 1,

'data' => $mitra

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'data' => 'id mitra tidak ditemukan'

]);

}

}

public function index_delete(){

$id = $this->delete('id_mitra');

if ($id === null){

$this->response([

'status' => 0,

'message' => 'masukkan id mitra yang ingin dihapus'

]);

} else {

if( $this->mitra->deleteMitra($id) > 0){

$this->response([

Page 159: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-9

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

'status' => 1,

'id' => $id,

'message' => 'terhapus'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id mitra tidak ditemukan'

]);

}

}

}

public function index_post(){

$data = [

'nama' => $this->post('nama'),

'username' => $this->post('username'),

'password' => $this->post('password'),

'email' => $this->post('email'),

'instansi' => $this->post('instansi'),

'foto' => $this->post('foto')

];

$username = $data['username'];

$mitra= $this->mitra->getMitraByUsername($username);

if($mitra){

$this->response([

'status' => 2,

'message' => 'Username sudah terdaftar di DB Mitra!'

]);

} else {

if( $this->mitra->createMitra($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

public function index_put(){

$id = $this->put('id_mitra');

$contents = $this->put('contents');

$namaFoto = $this->put('foto');

if($contents !== null){

$foto = $this->mitra->uploadFoto($contents, $namaFoto);

if($foto === 0){

$this->response([

'status' => 2,

'message' => 'Gagal mengupload foto!'

]);

}

}

$data = [

'nama' => $this->put('nama'),

'username' => $this->put('username'),

'password' => $this->put('password'),

'email' => $this->put('email'),

'instansi' => $this->put('instansi'),

'foto' => $this->put('foto')

];

if( $this->mitra->updateMitra($data, $id) > 0){

$this->response([

Page 160: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-10

118

119

120

121

122

123

124

125

126

127

128

129

'status' => 1,

'message' => 'Data berhasil diubah'

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal mengubah data'

]);

}

}

}

?>

D6. Recent.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Recent extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('Recent_model', 'recent');

}

public function index_get(){

$recent = $this->recent->getRecent();

if($recent){

$this->response([

'status' => 1,

'data' => $recent

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal menampilkan recent!'

]);

}

}

public function index_post(){

$data = [

'waktu_input' => $this->post('waktu_input'),

'file' => $this->post('file'),

'sha256' => $this->post('sha256'),

'status' => $this->post('status'),

'aksi' => $this->post('aksi'),

'oleh' => $this->post('oleh')

];

if( $this->recent->createRecent($data) > 0){

$this->response([

'status' => 1,

'message' => 'File baru berhasil ditambahkan!'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal menambahkan data!'

]);

}

}

}

?>

Page 161: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-11

D7. Riwayat.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class Riwayat extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('Riwayat_model', 'riwayat');

}

public function index_get(){

$riwayat = $this->riwayat->getRiwayat();

if($riwayat){

$this->response([

'status' => 1,

'data' => $riwayat

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal menampilkan riwayat!'

]);

}

}

public function index_post(){

$data = [

'waktu_input' => $this->post('waktu_input'),

'file_user' => $this->post('file_user'),

'sha256_user' => $this->post('sha256_user'),

'status' => $this->post('status'),

'metode' => $this->post('metode')

];

if( $this->riwayat->createRiwayat($data) > 0){

$this->response([

'status' => 1,

'message' => 'File baru berhasil ditambahkan!'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'Gagal menambahkan data!'

]);

}

}

}

?>

D8. m_Riwayat.php 1

2

3

4

5

6

7

8

9

10

<?php

use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit ('No direct script access allowed');

require APPPATH . 'libraries/REST_Controller.php';

require APPPATH . 'libraries/Format.php';

class m_Riwayat extends REST_Controller{

public function __construct(){

parent::__construct();

$this->load->model('m_Riwayat_model', 'm_riwayat');

}

Page 162: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

D-12

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

public function index_get(){

$idm = $this->get('idm');

$m_riwayat = $this->m_riwayat->getMRiwayat($idm);

if($m_riwayat){

$this->response([

'status' => 1,

'data' => $m_riwayat

], REST_Controller::HTTP_OK);

} else {

$this->response([

'status' => 0,

'message' => 'id m_riwayat tidak ditemukan'

]);

}

}

public function index_post(){

$data = [

'idm' => $this->post('idm'),

'waktu_input' => $this->post('waktu_input'),

'file_mitra' => $this->post('file_mitra'),

'sha256_mitra' => $this->post('sha256_mitra'),

'status' => $this->post('status'),

'aksi' => $this->post('aksi'),

'metode' => $this->post('metode')

];

if( $this->m_riwayat->createMRiwayat($data) > 0){

$this->response([

'status' => 1,

'message' => 'file baru berhasil ditambahkan'

], REST_Controller::HTTP_CREATED);

} else {

$this->response([

'status' => 0,

'message' => 'gagal menambahkan data'

]);

}

}

}

?>

Page 163: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

E-1

Lampiran E Kode Program REST API Server (Models)

E1. Malware_model.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

<?php

class Malware_model extends CI_Model{

public function getMalware($id = null){

if($id === null){

return $this->db->get('malware')->result_array();

} else {

return $this->db->get_where('malware',['id_malware'=>

$id])->result_array();

}

}

public function getMalwareByHash($sha256){

return $this->db->get_where('malware', ['sha256_malware' =>

$sha256])->result_array();

}

public function uploadMalware($contents, $fileName){

$password = "Rahasia100%";

$explode = explode('.', $fileName);

$namaFile = $explode[0];

$zip = new ZipArchive();

$fileKompresi = "directory/file_malware/".$namaFile.".zip";

$zip->open($fileKompresi, ZIPARCHIVE::CREATE);

$zip->addEmptyDir('newDirectory');

$zip->setPassword($password);

$isi = file_get_contents($contents);

$zip->addFromString($fileName, $isi);

$zip->setEncryptionName($fileName, ZipArchive::EM_AES_256);

$zip->close();

$file_malware = $namaFile.".zip";

return $file_malware;

}

public function createMalware($data){

$this->db->insert('malware', $data);

return $this->db->affected_rows();

}

public function deleteMalware($id) {

$this->db->delete('malware', ['id_malware' => $id]);

return $this->db->affected_rows();

}

public function updateMalware($data, $id) {

$this->db->update('malware', $data, ['id_malware' => $id]);

return $this->db->affected_rows();

}

}

?>

E2. Benign_model.php

1

2

3

4

5

6

7

8

9

10

11

<?php

class Benign_model extends CI_Model {

public function getBenign($id = null){

if($id === null){

return $this->db->get(‘benign’)->result_array();

} else {

return $this->db->get_where(‘benign’, [‘id_benign’ =>

$id])->result_array();

}

}

public function getBenignByHash($sha256){

return $this->db->get_where(‘benign’, [‘sha256_benign’ =>

$sha256])->result_array();

Page 164: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

E-2

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

}

public function uploadBenign($contents, $fileName){

$password = “Rahasia100%”;

$explode = explode(‘.’, $fileName);

$namaFile = $explode[0];

$zip = new ZipArchive();

$fileKompresi = “directory/file_benign/”.$namaFile.”.zip”;

$zip->open($fileKompresi, ZIPARCHIVE::CREATE);

$zip->addEmptyDir(‘newDirectory’);

$zip->setPassword($password);

$isi = file_get_contents($contents);

$zip->addFromString($fileName, $isi);

$zip->setEncryptionName($fileName, ZipArchive::EM_AES_256);

$zip->close();

$file_benign = $namaFile.”.zip”;

return $file_benign;

}

public function deleteBenign($id){

$this->db->delete(‘benign’, [‘id_benign’ => $id]);

return $this->db->affected_rows();

}

public function createBenign($data){

$this->db->insert(‘benign’, $data);

return $this->db->affected_rows();

}

public function updateBenign($data, $id){

$this->db->update(‘benign’, $data, [‘id_benign’ => $id]);

return $this->db->affected_rows();

}

}

?>

E3. Baru_model.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<?php

class Baru_model extends CI_Model{

public function getBaru($id = null){

if($id === null){

return $this->db->get('baru')->result_array();

} else {

return $this->db->get_where('baru',['id_baru'=>$id])

->result_array();

}

}

public function getBaruByHash($sha256){

return $this->db->get_where('baru', ['sha256_baru' =>

$sha256])->result_array();

}

public function deleteBaru($id){

$this->db->delete('baru', ['id_baru' => $id]);

return $this->db->affected_rows();

}

public function uploadBaru($contents, $fileName){

$password = "Rahasia100%";

$explode = explode('.', $fileName);

$namaFile = $explode[0];

$zip = new ZipArchive();

$fileKompresi = "directory/file_baru/".$namaFile.".zip";

$zip->open($fileKompresi, ZIPARCHIVE::CREATE);

$zip->addEmptyDir('newDirectory');

$zip->setPassword($password);

$isi = file_get_contents($contents);

$zip->addFromString($fileName, $isi);

$zip->setEncryptionName($fileName, ZipArchive::EM_AES_256);

Page 165: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

E-3

29

30

31

32

33

34

35

36

37

38

$zip->close();

$file_baru = $namaFile.".zip";

return $file_baru;

}

public function createBaru($data){

$this->db->insert('baru', $data);

return $this->db->affected_rows();

}

}

?>

E4. Admin_model.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?php

class Admin_model extends CI_Model{

public function getAdmin($id = null){

if($id === null){

return $this->db->get('admin')->result_array();

} else {

return $this->db->get_where('admin', ['id_admin' => $id])

->result_array();

}

}

public function deleteAdmin($id){

$this->db->delete('admin', ['id_admin' => $id]);

return $this->db->affected_rows();

}

public function getAdminByUsername($username){

return $this->db->get_where('admin', ['username' =>

$username])->result_array();

}

public function createAdmin($data){

$this->db->insert('admin', $data);

return $this->db->affected_rows();

}

public function updateAdmin($data, $id){

$this->db->update('admin', $data, ['id_admin' => $id]);

return $this->db->affected_rows();

}

}

?>

E5. Mitra_model.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

class Mitra_model extends CI_Model{

public function getMitra($id = null){

if($id === null){

return $this->db->get('mitra')->result_array();

} else {

return $this->db->get_where('mitra', ['id_mitra' => $id])

->result_array();

}

}

public function deleteMitra($id){

$this->db->delete('mitra', ['id_mitra' => $id]);

return $this->db->affected_rows();

}

public function getMitraByUsername($username){

return $this->db->get_where('mitra',['username'=>$username])

->result_array();

}

public function createMitra($data){

$this->db->insert('mitra', $data);

Page 166: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

E-4

19

20

21

22

23

24

25

26

27

28

29

30

return $this->db->affected_rows();

}

public function updateMitra($data, $id){

$this->db->update('mitra', $data, ['id_mitra' => $id]);

return $this->db->affected_rows();

}

public function uploadFoto($contents,$namaFoto){

$result=move_uploaded_file($contents,'directory/foto/'.$namaFoto);

return $result;

}

}

?>

E6. Recent_model.php 1

2

3

4

5

6

7

8

9

10

11

<?php

class Recent_model extends CI_Model {

public function getRecent(){

return $this->db->get('recent')->result_array();

}

public function createRecent($data){

$this->db->insert('recent', $data);

return $this->db->affected_rows();

}

}

?>

E7. Riwayat_model.php 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<?php

class Riwayat_model extends CI_Model{

public function getRiwayat($id = null){

if($id === null){

return $this->db->get('riwayat')->result_array();

} else {

return $this->db->get_where('riwayat', ['id_riwayat' =>

$id])->result_array();

}

}

public function deleteRiwayat($id){

$this->db->delete('riwayat', ['id_riwayat' => $id]);

return $this->db->affected_rows();

}

public function createRiwayat($data){

$this->db->insert('riwayat', $data);

return $this->db->affected_rows();

}

public function updateRiwayat($data, $id){

$this->db->update('riwayat', $data, ['id_riwayat' => $id]);

return $this->db->affected_rows();

}

}

?>

E8. m_Riwayat_model.php

1

2

3

4

5

6

<?php

class m_Riwayat_model extends CI_Model{

public function getMRiwayat($idm){

return $this->db->get_where('m_riwayat', ['idm' => $idm])

->result_array();

}

public function createMRiwayat($data){

Page 167: PERANCANGAN DAN IMPLEMENTASI SISTEM ...budi.rahardjo.id/files/students/rela-tesis.pdf“Perancangan Sistem Database Malware” dengan lancar. Selesainya tesis ini tidak terlepas dari

E-5

7

8

9

10

11

$this->db->insert('m_riwayat', $data);

return $this->db->affected_rows();

}

}

?>