40
BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Konfigurasi Sistem Operasi pada Server
Dalam tahap ini tidak dibahas proses installasi sistem operasi secara mendalam, sistem operasi yang digunakan adalah Debian 8.7 dengan codename Jessie yang telah dijelaskan pada tahap analisis dan perancangan sistem. Tahap ini menjelaskan konfigurasi dasar setelah proses installasi sistem operasi.
Gambar 22. Sistem Operasi yang Diinstal
4.1.1 Persiapan Sistem (Prerequisites)
Agar pada saat membangun dan konfigurasi sistem identifikasi malware berjalan dengan lancar, maka diperlukan beberapa persiapan sebagai berikut:
1. Instalasi GIT 2. Instalasi Nano
3. Instalasi Kontrol Panel (Optional) 4. Instalasi LAMP
5. Setup SSH Keys 6. Instalasi YARA
7. Instalasi YARA-PYTHON
http://digilib.mercubuana.ac.id/z
4.2 Konfigurasi Sistem Identifikasi Malware YARA
Dalam tahap konfigurasi ini dijelaskan mengenai kompilasi sistem dalam bentuk source code, installasi dan konfigurasi sistem. Sistem tidak memerlukan installasi dengan cara standar seperti halnya instalasi paket linux lainnya yang menggunakan “make install” agar aplikasi tersebut dapat terinstal. Namun cukup dengan download dan langsung mulai pengaturan (portable). Langkah ini dilakukan pada seluruh server yang digunakan.
4.2.1 Kompilasi Sistem
Dalam tahap kompilasi kode program ini menggunakan bahasa bash dan python. Seluruh kode program dapat dilihat pada halaman Lampiran A Sourcecode Program .
4.2.2 Konfigurasi Pemasangan Sistem
Langkah selanjutnya adalah melakukan instalasi sistem tersebut. Sebelum instalasi, perlu dilakukan tahap update dan upgrade sistem. Setelah update dan upgrade sistem dilakukan, maka dilanjutkan tahap instalasi paket – paket pendukung yang telah dijelaskan sebelumnya hingga instalasi tools YARA. Berikut tahap instalasi sistem identifikasi malware berbasis signature-based YARA.
1. Tentukan path instalasi dan Download Source
#cd /var/www/maldet.muliamedia.com; wget
https://maldet.muliamedia.com/mmi_maldet.tar.gz 2. Ekstrak hasil download
#tar –xvzf mmi_maldet.tar.gz 3. Buat symlink
#cd /usr/sbin;ln –s
/var/www/maldet.muliamedia.com/mmi_maldet mmi_maldet
4. Buat Executable
#chmod +x /usr/sbin/mmi_maldet
42
4.2.3 Konfigurasi Direktori Sistem
Konfigurasi sistem bertujuan untuk menyesuaikan path setting dengan kondisi server yang ingin diinstal. Tujuannya agar sistem identifikasi berjalan dengan baik.
Berikut adalah tahapan untuk melakukan konfigurasi pada sistem yang sudah di install:
1. Buka file konfigurasi dan ubah konfigurasi path sesuai dengan installation path.
Akan tampil source code dari program, temukan baris berikut:
Gambar 23. Konfigurasi File Sistem Identifikasi
Ubah baris CONFIG_PATH sesuai dengan installation path: /var/www/maldet.muliamedia.com/common.yar.
2. Lalu ubah konfigurasi folder path untuk proses update sesuai dengan installation path.
Gambar 24. Konfigurasi Folder Sistem Identifikasi
3. Pengetesan hasil instalasi dapat dilakukan dengan mengetikkan perintah “mmi_maldet”. Jika sistem berhasil diinstal dan dikonfigurasi dengan benar, maka akan menampilkan informasi penggunaan sistem.
#nano maldet
http://digilib.mercubuana.ac.id/z
Gambar 25.Pengetesan Instalasi Sistem Identifikasi
Konfigurasi sistem pada server controller dan server client pada prinsipnya sama yang membedakan adalah pengaturan CONFIG_PATH dan CONFIG_DIR. Kedua pengaturan tersebut disesuaikan dengan kondisi masing – masing server client.
4.3 Tampilan dan Cara Kerja Sistem
Sistem identifikasi malware menggunakan signature-based YARA adalah sebuah web-shell sehingga tidak memiliki tampilan GUI (Graphic User Interface). Tampilan yang diberikan untuk saat ini masih terbatas command-line sehingga mungkin akan mengurangi user experience pengguna awam. Namun dari segi fleksibilitas dan kehandalan sistem cukup tinggi.
4.3.1 Tampilan Informasi Sistem
Tampilan informasi memberikan panduan bagaimana menggunakan sistem. Berikut tampilannya:
Gambar 26.Tampilan Awal Sistem Identifikasi Malware
Keterangan gambar:
1. –h, menampilkan opsi bantuan. Penggunaannya sebagai berikut: “mmi_maldet –h”
2. –u, memperbaharui rules sistem dengan server pusat.
Penggunaannya sebagai berikut: “mmi_maldet –u”
44 3. –q, mengidentifikasi malware lalu memindahkan file malware kedalam folder quarantine dan menonaktifkan file tersebut agar tidak dapat dieksekusi. Penggunaannya sebagai berikut:
“mmi_maldet –q”. Nantinya akan ditanyakan path folder yang akan di scan.
4. –s, fungsi ini hanya mengidentifikasi malware saja dan tidak secara langsung memindahkan ke folder quarantine.
Penggunaannya sebagai berikut: “mmi_maldet –s”. Nantinya akan ditanyakan path folder yang akan di scan.
4.3.2 Tampilan Rules
Penambahan rules untuk data malware bertujuan agar sistem identifikasi malware selalu up-to date. Fitur ini cukup dilakukan oleh controller node saja. Karena client node akan update dari sistem yang sudah terinstal.
Gambar 27.Tampilan Rules
Keterangan gambar:
1. Dari gambar terlihat rules yang dapat dipakai untuk proses identifikasi malware. Rules tersebut didapat dari komunitas YARA di: https://github.com/Yara-Rules/rules
2. Proses penambahan rules sebagai berikut:
“echo "[path to][nama rules]" >>[path to]
common.yar”
Misal:
#echo "latest/rules/Webshells_index.yar" >>
/var/www/maldet.muliamedia.com/common.yar
http://digilib.mercubuana.ac.id/z
4.3.3 Tampilan Librari Rules
Penambahan librari untuk data malware bertujuan agar sistem identifikasi malware selalu up-to date. Fitur ini cukup dilakukan oleh controller node saja. Karena client node akan update dari sistem yang sudah terinstal.
Gambar 28.Tampilan Librari Rules
Keterangan gambar:
1. Dari gambar terlihat librari yang dapat dipakai untuk proses identifikasi malware. Librari tersebut digunakan oleh sistem identifikasi malware agar dapat berjalan.
2. Proses penambahan librari sebagai berikut:
Gambar 29.Tampilan Penambahan Librari Rules
Pada baris RULES_FILES tambahkan librari yang diinginkan, misalnya wordress.yar yang berisi program CMS wordpress yang sudah di generate dalam bentuk hash.
4.3.4 Tampilan Client
Penambahan klien untuk membatasi proses update sistem nantinya. Tujuannya agar update malware sistem identifikasi
#nano /var/www/maldet.muliamedia.com/maldet
46 malware selalu up-to date terhadap server tertentu saja. Fitur ini hanya dilakukan oleh controller node.
Gambar 30.Tampilan Tambah Client
Keterangan gambar:
1. Dari gambar terlihat yang diperbolehkan untuk proses update hanya localhost dank lien dengan IP 103.229.74.16. Selain dari IP tersebut maka proses akan ditolak. Proses penambahan rules sebagai berikut:
2. Untuk proses penambahan IP client dapat dilakukan dengan cara berikut:
4.3.5 Tampilan Scan
Scan adalah prosedur untuk mengidentifikasi file apakah malware atau bukan. Hasil dari scan akan ditampilkan pada layar terminal dan juga tersimpan dalam log sistem.
Gambar 31.Tampilan Scan Sistem
Setelah mengetikkan perintah “mmi_maldet –s” maka akan ditanyakan path folder / file yang ingin di identifikasi. Untuk pengujian dapat diunduh beberapa contoh malware yang sudah dikumpulkan.
Repository malware didapat dari github dengan URL:
https://github.com/ytisf/theZoo. Sample malware diletakkan
“echo " allow from [IP Client]" >> [path to system]/latest/.htaccess”
Misal:
#echo " allow from 103.229.74.165" >>
/var/www/maldet.muliamedia.com/latest/.htaccess
http://digilib.mercubuana.ac.id/z
dipath: /var/www/maldet.muliamedia.com/sample. Berikut tampilan proses scan saat berjalan:
root@srv1:/var/www/maldet.muliamedia.com#
mmi_maldet -s
please input the target path to start scan Enter your path folder/file target [ENTER]:
/var/www/maldet.muliamedia.com scan process is running
DodgyStrings
/var/www/maldet.muliamedia.com/latest/rules/Webshel ls/WShell_APT_Laudanum.yar
DodgyPhp
/var/www/maldet.muliamedia.com/latest/rules/malware /APT_APT29_Grizzly_Steppe.yar
DodgyStrings
/var/www/maldet.muliamedia.com/latest/rules/malware /MALW_Magento_backend.yar
ObfuscatedPhp
/var/www/maldet.muliamedia.com/latest/rules/malware /MALW_Magento_backend.yar
DodgyPhp
/var/www/maldet.muliamedia.com/latest/rules/malware /MALW_Magento_backend.yar
DodgyPhp
/var/www/maldet.muliamedia.com/samples/undetected/s mart.php
SuspiciousEncoding
/var/www/maldet.muliamedia.com/samples/obfuscators/
online_php_obfuscator.php ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
online_php_obfuscator.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
online_php_obfuscator.php ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
phpencode.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
phpencode.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/real/srt.php ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/real/ice.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/real/ice.php ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
cipher_design.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/obfuscators/
cipher_design.php DodgyPhp
/var/www/maldet.muliamedia.com/samples/real/sucuri_
2014_04.php
48 ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/artificial/b ypasses.php
DodgyPhp
/var/www/maldet.muliamedia.com/samples/artificial/b ypasses.php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/artificial/d odgy.php
DodgyPhp
/var/www/maldet.muliamedia.com/samples/artificial/d odgy.php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/real/novahot .php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/classic/sosy ete.php
DodgyPhp
/var/www/maldet.muliamedia.com/samples/classic/sosy ete.php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/classic/sima ttacker.php
DangerousPhp
/var/www/maldet.muliamedia.com/samples/classic/sima ttacker.php
Websites
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_artificial_obfuscated .php.suspect
ObfuscatedPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_artificial_obfuscated .php.suspect
DodgyPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_artificial_obfuscated .php.suspect
PasswordProtection
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_freepbx.php.suspect ObfuscatedPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_freepbx.php.suspect DodgyPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_freepbx.php.suspect SuspiciousEncoding
/var/www/maldet.muliamedia.com/samples/classic/ange l.php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/classic/ange l.php
ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/classic/ange l.php
DodgyPhp
/var/www/maldet.muliamedia.com/samples/classic/ange l.php
DangerousPhp
/var/www/maldet.muliamedia.com/samples/classic/ange l.php
ObfuscatedPhp http://digilib.mercubuana.ac.id/z
/var/www/maldet.muliamedia.com/samples/cpanel.php SuspiciousEncoding
/var/www/maldet.muliamedia.com/samples/classic/r57.
php
DodgyStrings
/var/www/maldet.muliamedia.com/samples/classic/r57.
php
ObfuscatedPhp
/var/www/maldet.muliamedia.com/samples/classic/r57.
php DodgyPhp
/var/www/maldet.muliamedia.com/samples/classic/r57.
php
DangerousPhp
/var/www/maldet.muliamedia.com/samples/classic/r57.
php
DodgyStrings
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
Websites
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
ObfuscatedPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
DodgyPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
DangerousPhp
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
=================================================
You should take a look at the files listed below:
Websites
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_artificial_obfuscated .php.suspect
PasswordProtection
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_samples_freepbx.php.suspect Websites
/var/www/maldet.muliamedia.com/quarantine/_var_www_
maldet.muliamedia.com_latest_rules_Webshells_WShell _THOR_Webshells.yar.suspect
50 Keterangan gambar:
1. Baris “Enter your path folder/file target [ENTER]:
/var/www/maldet.muliamedia.com” adalah perintah menentukan path yang ingin diidentifikasi apakah ada keberadaan malware atau tidak.
2. Setelah itu proses identifikasi berjalan dengan cara mencocokkan file scan dengan signature yang tersedia. Contoh rules nya: IsPhp, NonPrintableChars, PasswordProtection, ObfuscatedPhp, DodgyPhp, DangerousPhp, HiddenInAFile.
3. Semua hasil identifikasi harus diperhatikan, namun yang menjadi prioritas adalah hasil setelah baris “You should take a look at the files listed below:”. Hasilnya berupa path tempat malware tersebut berada.
4. Hasil dari proses scan belum dipindahkan ke folder quarantine.
4.3.6 Tampilan Karantina
Karantina adalah prosedur untuk memindahkan file yang terinfeksi malware kedalam folder karantina agar malware tidak dapat berjalan.
Gambar 32.Tampilan Karantina
Seluruh file yang dikarantina diletakkan dalam folder
“quarantine”. File tersebut kemudian di chmod 0 dan chattr dan direname, maksudnya agar file tidak dapat diakses juga sebagai bukti atau log karantina. Berikut tampilan proses karantina:
root@srv1:/var/www/maldet.muliamedia.com#
mmi_maldet -q
please input the target path to start scan Enter your path folder/file target [ENTER]:
/var/www/blog.muliamedia.com scan process is running
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/date.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/SimplePie/Parse/Date.php
http://digilib.mercubuana.ac.id/z
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/bookmark-template.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/js/tinymce/tinymce.min.js
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/post.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/class-phpmailer.php
DodgyPhp /var/www/blog.muliamedia.com/wp- includes/class-phpmailer.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/class-wp-query.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/functions.php
DodgyPhp /var/www/blog.muliamedia.com/wp- includes/functions.php
DangerousPhp /var/www/blog.muliamedia.com/wp- includes/functions.php
DodgyPhp /var/www/blog.muliamedia.com/wp- includes/class-pop3.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/class-wp-tax-query.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/post-template.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/media.php
DodgyPhp /var/www/blog.muliamedia.com/wp- includes/load.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/IXR/class-IXR-date.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/class-wp-meta-query.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/formatting.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/comment.php
DodgyStrings /var/www/blog.muliamedia.com/wp- includes/deprecated.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- includes/deprecated.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/themes/knowledge-base/inc/bbpress.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/themes/wp-knowledge-base/inc/bbpress.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/themes/wp-knowledge-base/footer.php DodgyStrings /var/www/blog.muliamedia.com/wp- content/ewww/optipng
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/uploads/2016/12/Page-Post-Event.jpg
52 ObfuscatedPhp /var/www/blog.muliamedia.com/wp-
content/plugins/google-analytics-dashboard-for- wp/tools/gapi.php
DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/lib/StepProcessing/step-processing.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/assets/images/screenshots/ss- builder.png
HiddenInAFile /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/assets/images/screenshots/ss- builder.png
DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/includes/functions.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/includes/fields/calc.php DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/includes/admin/upgrades/class- upgrade-handler.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/includes/admin/ajax.php DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/includes/admin/upgrades/upgrade- functions.php
DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/ninja-
forms/deprecated/classes/step-processing.php DodgyPhp /var/www/blog.muliamedia.com/wp-
content/plugins/ninja-forms/includes/Helper.php DodgyPhp /var/www/blog.muliamedia.com/wp-
content/plugins/linkedin-master/includes/linkedin- master-admin-table-support-export.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/crayon-syntax-
highlighter/crayon_formatter.class.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/crayon-syntax-
highlighter/crayon_settings_wp.class.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/crayon-syntax-
highlighter/util/crayon_util.class.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/crayon-syntax-
highlighter/util/theme-editor/theme_editor.php DodgyStrings /var/www/blog.muliamedia.com/wp- content/plugins/broken-link-
checker/idn/idna_convert.class.php
DodgyPhp /var/www/blog.muliamedia.com/wp-
content/plugins/broken-link-checker/core/core.php DodgyPhp /var/www/blog.muliamedia.com/wp-
content/plugins/broken-link-
checker/includes/utility-class.php
http://digilib.mercubuana.ac.id/z
DodgyPhp /var/www/blog.muliamedia.com/wp- content/plugins/broken-link-
checker/languages/broken-link-checker-he_IL.po ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/frontend/class- breadcrumbs.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/frontend/class- frontend.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-
seo/admin/google_search_console/class-gsc-platform- tabs.php
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/admin/config-
ui/factories/class-factory-post-type.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp-
content/plugins/wordpress-seo/admin/class-asset.php NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/js/dist/wp-seo-post- scraper-480.min.js
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/js/dist/wp-seo-post- scraper-480.min.js
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/admin/taxonomy/class- taxonomy-fields-presenter.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/admin/metabox/class- metabox.php
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/videopress/editor- media-view.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/subscriptions.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/shortcodes/archiveo rg.php
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/related-
posts/jetpack-related-posts.php
DodgyStrings /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/class.jetpack.php DangerousPhp /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/class.jetpack.php ObfuscatedPhp /var/www/blog.muliamedia.com/wp- content/plugins/wp-user-avatar/includes/class-wp- user-avatar-functions.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- admin/includes/class-wp-plugins-list-table.php DodgyStrings /var/www/blog.muliamedia.com/wp- admin/includes/template.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- admin/includes/template.php
54 DodgyStrings /var/www/blog.muliamedia.com/wp-
admin/includes/upgrade.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- admin/includes/media.php
ObfuscatedPhp /var/www/blog.muliamedia.com/wp- admin/includes/class-ftp.php
DodgyStrings /var/www/blog.muliamedia.com/wp- admin/includes/ajax-actions.php
DodgyPhp /var/www/blog.muliamedia.com/wp- admin/includes/schema.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/undetected/sma rt.php
SuspiciousEncoding
/var/www/blog.muliamedia.com/samples/obfuscators/on line_php_obfuscator.php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/obfuscators/on line_php_obfuscator.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/obfuscators/on line_php_obfuscator.php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/obfuscators/ph pencode.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/obfuscators/ph pencode.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/real/srt.php ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/obfuscators/ci pher_design.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/obfuscators/ci pher_design.php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/real/ice.php DodgyPhp
/var/www/blog.muliamedia.com/samples/real/ice.php DodgyPhp
/var/www/blog.muliamedia.com/samples/real/sucuri_20 14_04.php
DodgyStrings
/var/www/blog.muliamedia.com/samples/artificial/dod gy.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/artificial/dod gy.php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/artificial/byp asses.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/artificial/byp asses.php
DodgyStrings
/var/www/blog.muliamedia.com/samples/real/novahot.p hp
http://digilib.mercubuana.ac.id/z
DodgyStrings
/var/www/blog.muliamedia.com/samples/classic/sosyet e.php
DodgyPhp
/var/www/blog.muliamedia.com/samples/classic/sosyet e.php
DodgyStrings
/var/www/blog.muliamedia.com/samples/classic/simatt acker.php
DangerousPhp
/var/www/blog.muliamedia.com/samples/classic/simatt acker.php
SuspiciousEncoding
/var/www/blog.muliamedia.com/samples/classic/angel.
php
DodgyStrings
/var/www/blog.muliamedia.com/samples/classic/angel.
php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/classic/angel.
php DodgyPhp
/var/www/blog.muliamedia.com/samples/classic/angel.
php
DangerousPhp
/var/www/blog.muliamedia.com/samples/classic/angel.
php
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/cpanel.php SuspiciousEncoding
/var/www/blog.muliamedia.com/samples/classic/r57.ph p
DodgyStrings
/var/www/blog.muliamedia.com/samples/classic/r57.ph p
ObfuscatedPhp
/var/www/blog.muliamedia.com/samples/classic/r57.ph p
DodgyPhp
/var/www/blog.muliamedia.com/samples/classic/r57.ph p
DangerousPhp
/var/www/blog.muliamedia.com/samples/classic/r57.ph p
=================================================
You should take a look at the files listed below:
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/admin/config-
ui/factories/class-factory-post-type.php
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/js/dist/wp-seo-post- scraper-480.min.js
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/videopress/editor- media-view.php
NonPrintableChars /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/related-
posts/jetpack-related-posts.php
56 Keterangan:
1. Proses karantina menjalankan proses scan terlebih dahulu.
Lalu, hasil scan dipindah ke folder karantina.
2. Log karantina disimpan di folder logs/*waktu*.quarantine.logs
'/var/www/blog.muliamedia.com/wp-
content/plugins/wordpress-seo/js/dist/wp-seo-post- scraper-480.min.js' ->
'quarantine/_var_www_blog.muliamedia.com_wp-
content_plugins_wordpress-seo_js_dist_wp-seo-post- scraper-480.min.js.suspect'
'/var/www/blog.muliamedia.com/wp-
content/plugins/jetpack/modules/videopress/editor- media-view.php' ->
'quarantine/_var_www_blog.muliamedia.com_wp-
content_plugins_jetpack_modules_videopress_editor- media-view.php.suspect'
'/var/www/blog.muliamedia.com/wp-
content/plugins/jetpack/modules/related- posts/jetpack-related-posts.php' ->
'quarantine/_var_www_blog.muliamedia.com_wp- content_plugins_jetpack_modules_related- posts_jetpack-related-posts.php.suspect' log quarantine save on logs/2017-05-27- 1495858962.quarantine.logs
We chmod 0 and chattr, let me not walk again on the server..DONE
report quarantine save on
quarantine from /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/admin/config- ui/factories/class-factory-post-type.php to quarantine/_var_www_blog.muliamedia.com_wp- content_plugins_wordpress-seo_admin_config-
ui_factories_class-factory-post-type.php.suspect quarantine from /var/www/blog.muliamedia.com/wp- content/plugins/wordpress-seo/js/dist/wp-seo-post- scraper-480.min.js to
quarantine/_var_www_blog.muliamedia.com_wp-
content_plugins_wordpress-seo_js_dist_wp-seo-post- scraper-480.min.js.suspect
quarantine from /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/videopress/editor- media-view.php to
quarantine/_var_www_blog.muliamedia.com_wp-
content_plugins_jetpack_modules_videopress_editor- media-view.php.suspect
quarantine from /var/www/blog.muliamedia.com/wp- content/plugins/jetpack/modules/related-
posts/jetpack-related-posts.php to
quarantine/_var_www_blog.muliamedia.com_wp- content_plugins_jetpack_modules_related- posts_jetpack-related-posts.php.suspect
http://digilib.mercubuana.ac.id/z
4.3.7 Tampilan Whitelist
Whitelist adalah prosedur untuk membiarkan skrip yang dianggap sebagai malware namun aktif sebagai bagian dari website.
Beberapa skrip website aktif terkadang menggunakan beberapa fungsi php yang dicurigai sebagai malware, misalnya fungsi allow_url dan sebagainya. Maka dari itu, prosedur whitelist dilakukan agar file yang berisi fungsi tersebut tidak terdeteksi sebagai malware.
Gambar 33.Tampilan Whitelist
Untuk menggunakan whitelist, hal pertama yang dilakukan adalah membuat file hash untuk dimasukkan kedalam file whitelist.yar. Tahapannya sebagai berikut:
Keterangan:
1. Perintah “python” untuk mengeksekusi file
“generate_whitelist.py” lalu diikuti path folder yang ingin dibuat hash.
2. Hasilnya akan muncul hasilnya berbentuk file hash yang disimpan dalam file dipath:
root@srv1:/var/www/maldet.muliamedia.com/utils#
python generate_whitelist.py plugin_googleanalytics /var/www/blog.muliamedia.com/wp-
content/plugins/google-analytics-dashboard-for-wp/
>>
/var/www/maldet.muliamedia.com/whitelists/plugin_go ogleanalytics.yar
import "hash"
rule plugin_googleanalytics {
condition:
/* plugin_googleanalytics */
hash.sha1(0, filesize) ==
"e5735e103d59e7875dafcbf0cda71db8bc27190b" //
/var/www/blog.muliamedia.com/wp-
content/plugins/google-analytics-dashboard-for- wp/tools/gapi.php
}
58
“/var/www/maldet.muliamedia.com/whitelists/plugin_googlean alytics.yar”
3. Path hash, dimasukkan kedalam file whitelist.yar seperti:
Gambar 34.Tampilan Input Whitelist
4.3.8 Tampilan Setel Direktori
Penyetelan direktori dimaksudkan untuk mengarahkan proses identifikasi lebih efektif. Jadi, sistem bisa menentukan folder tertentu yang akan discan. Proses cepat atau lambatnya identifikasi tergantung dari proses ini. Semakin banyak file atau folder yang ingin diidentifikasi, maka semakin lama prosesnya.
Gambar 35.Tampilan Setel Direktori
Jika salah memasukkan direktori atau direktori yang dituju tidak ada maka akan muncul error sebagai berikut untuk notifikasi agar dapat diperbaiki.
Gambar 36.Notifikasi Error Setel Direktori
http://digilib.mercubuana.ac.id/z
4.4 Pengujian Sistem
Pengujian sistem identifikasi malware dilakukan dengan 2 (dua) aspek, yaitu:
1. Pengujian Fungsionalitas Sistem
Pengujian dilakukan bertujuan untuk menguji sistem identifikasi malware apakah telah sesuai dengan kebutuhan yang diinginkan.
Metode yang digunakan untuk pengujian adalah black box testing yaitu pengujian terhadap kesesuaian antara fungsionalitas sistem identifikasi malware yang dirancang berdasarkan kebutuhan pengguna dengan sistem identifikasi malware yang diimplementasikan. Pengujian dilakukan dengan cara melakukan pemeriksaan terhadap menu-menu fungsional yang ada pada sistem. Setiap menu harus sesuai keluaraannya dan tidak mendapatkan error.
Pengujian dilakukan oleh 2 penguji yang masing-masing berposisi sebagai staff sysadmin, dan staff technical support. Pengujian dilakukan pada perusahaan PT Master Web Network dalam 2 waktu yang berbeda. Berikut adalah data penguji:
Tabel 15. Data Penguji
No Nama Penguji Jabatan/Posisi Tanggal Pengujian 1 Arie Ibrahim Sys Admin 29 Mei 2017
2 Heru Khairudin Tech. Support 30 Mei 2017
2. Pengujian Quality
Quality of service dilakukan untuk menguji kualitas sistem, pengujian dilakukan dengan cara membandingkan kualitas dari aplikasi yang tidak menggunakan dan sistem identifikasi malware dengan yang menggunakan sistem identifikasi malware. Parameter pengujian kualitas tersebut meliputi pengujian process time dan pengujian akurasi.
60
4.4.1 Hasil Pengujian Fungsionalitas
Hasil pengujian diawali dengan proses pengumpulan data yang diperoleh berdasaran hasil uji yang telah dilakukan oleh para penguji.
Detail hasil dari pengujian sistem yang dilakukan oleh 2 orang penguji untuk mengetahui bahwa fungsi dari prosedur yang sudah dibuat berjalan sesuai dengan spesifikasi yang telah dibuat sebelumnya. Hasil uji terinci pada tabel 16.
Tabel 16. Pengujian Fungsionalitas Sistem Identifikasi Malware
No Fungsi Hasil yang diharapkan
Status
(√ / X)
P1 P2
1 Tambah Rules
Jika input benar maka sistem jalan, Jika salah input maka muncul error saat eksekusi sistem
√ √
2 Tambah Librari
Jika input benar maka sistem jalan, jika salah input maka muncul file tidak akan terupdate
√ √
3 Tambah Client
Jika benar maka klien dapat proses update, jika salah input maka muncul error
“Forbidden” disisi klien
√ √
4 Hapus Rules
Data rules yang dihapus dapat proses tanpa ada error
√ √
5 Hapus Librari Data librari yang √ √
http://digilib.mercubuana.ac.id/z
dihapus dapat proses tanpa ada error
6 Hapus Client
Jika benar maka klien yang tidak terdaftar akan mendapatkan error
√ √
7 Scan Malware
Jika berjalan, maka file sample malware akan terdeteksi
√ √
8 Karantina File hasil scan dipindah
ke folder karantina √ √ 9 Update Sistem Proses update berjalan
sesuai list library. Jika gagal error
“Forbiddden” berarti klien belum di add
√ √
10 Setel Whitelist Aplikasi yang sudah diwhitelist tidak akan terdeteksi malware
√ X
11 Setel Direktori Jika benar maka sistem identifikasi akan berjalan, jika salah maka ada error
√ √
Keterangan tabel:
1. P1 adalah penguji pertama yaitu Arie Ibrahim 2. P2 adalah penguji kedua yaitu Heru Khairudin
62
4.4.2 Hasil Pengujian Kualitas
Hasil pengujian diawali dengan proses pengumpulan sampel signature malware yang dikelompokan dalam 3 jenis:
1. Dodgy PHP
Merupakan jenis skrip PHP yang umumnya berpotensial sebagai malware. Sampel signature Dodgy PHP:
2. Obfuscated Php
Merupakan jenis skrip PHP yang terlihat tidak beraturan namun fungsi – fungsinya tetap bekerja. Sampel signature Obfuscated PHP:
3. Suspicious Encoding
Merupakan jenis skrip PHP yang sudah dikonversi menjadi data dari sebuah informasi namun output data dicurigai mengandung string exploit.. Sampel signature Suspicious Encoding:
1. /extract\s*\(\s*\$_(GET|POST|REQUEST|COOKIE|S ERVER)/
2. /curl_init\s*\(\s*["']file:\/\// nocase 3. /(eval|assert|passthru|exec|include|system|pc
ntl_exec|shell_execute|base64_decode|`|array_
map|call_user_func(_array)?)\s*\(\s*(base64_d ecode|php:\$
4. /IIS:\/\/localhost\/w3svc/
5. /\(\)\s*{\s*:\s*;\s*}\s*;/
6. /register_[a-
z]+_function\s*\(\s*['"]\s*(eval|assert|passt hru|exec|include|system|shell_execute|`)/
1."'ev'.'al'"
1. /(\$\w+=[^;]*)*;\$\w+=@?\$\w+\(/
2. /\$\w=\$[a-zA-Z]\('',\$\w\);\$\w\(\);/
3. /;\$\w+\(\$\w+(,\s?\$\w+)+\);/
4. /\/\*([^*]|\*[^\/])*\*\/\s*\(/
5. /\$_(GET|POST|COOKIE|REQUEST|SERVER)\s*\[[^\]
]+\]\s*\(/
1. base64 hex strrev Hpack
http://digilib.mercubuana.ac.id/z
Sistematika pengujian sampel:
Tabel 17. Sistematika Pengujian
Pengujian Jenis Uji Keterangan
1 Stand Alone 5 sampel file malware akan diletakkan diantara file – file aplikasi website
2 Embedded 5 sampel file malware akan dimasukkan diantara file – file aplikasi website
Pengujian hanya akan dilakukan satu kali karena hasil dari signature-based tidak akan berubah seperti halnya metode heuristic.
Sampel Malware
Sampel malware didapat dari repository github yang beralamat di:
https://github.com/nikicat/web-malware- collection/tree/master/Backdoors/PHP
Tabel 18. Sampel Malware
No Nama Jenis
1 smart.php DodgyPhp
2 ice.php ObfuscatedPhp
3 freepbx.php ObfuscatedPhp
4 online_php_obfuscator.php SuspiciousEncoding
5 angel.php ObfuscatedPhp
Sourcecode malware yang akan dicocokkan dengan signature dapat dilhat pada Lampiran B Sourcecode Malware (string signature di highlight).
64 Hasil Jenis Pengujian Pertama
Pengujian dilakukan dengan meletakkan sampel malware di direktori root website yaitu public_html/samples hasil pengujian dapat dilihat pada gambar 37.
Gambar 37. Hasil Uji Pertama
Dari hasil uji dapat diketahui bahwa 1 sample malware dapat digolongkan dalam beberapa jenis tergantung dari rule yang dibuat dari signature malware.
Intinya, 5 sampel terdeteksi dengan baik dan dapat langsung dipindahkan ke folder karantina. Pemindahan file malware aman karena file sampel malware terpisah dari file – file website.
Hasil Jenis Pengujian Kedua
Pengujian dilakukan dengan meletakkan sampel malware di dalam file website yang aktif. Daftar file website aktif yang akan di infeksi malware dapat dilihat dalam tabel 19.
Tabel 19. Sampel File Yang Disisipkan Malware No Nama File Nama Malware
Yang akan Disisipkan
Keterangan
1 class-ftp.php angel.php class-ftp.php merupakan salah satu file CMS
http://digilib.mercubuana.ac.id/z
Wordpress yang terletak di /wp- admin/includes/cla ss-ftp.php
2 template.php smart.php template.php merupakan salah satu file CMS Wordpress yang terletak di /wp- admin/includes/tem plate.php
3 class-wp- plugins-list- table.php
freepbx.php class-wp-plugins- list-table.php merupakan salah satu file CMS Wordpress yang terletak di /wp- admin/includes/cla ss-wp-plugins-list- table.php
4 media.php ice.php media.php
merupakan salah satu file CMS Wordpress yang terletak di /wp- admin/includes/me dia.php
5 load.php load.php
merupakan salah satu file CMS Wordpress yang terletak di /wp-
66 includes/load.php
Hasil dari proses identifikasi dapat dilihat dari gambar 38.
Menunjukkan bahwa file asli wordpress yang disisipkan malware tetap terdeteksi sebagai malware.
Gambar 38. Hasil Uji Kedua
Namun, hasil dari proses identifikasi tidak boleh langsung dikarantina karena akan menyebabkan error pada website.
Harus dianalisa lebih lanjut dan dihapus bagian skrip malwarenya saja.
Analisis Hasil Pengujian
Dari hasil pengujian yang sudah dilakukan, dibuatkan tabel analisa yang dapat dilihat pada tabel 20.
Tabel 20. Analisa Hasil Pengujian
No
Jenis Penguji
an
Jumlah Sampel
Sampel Terdeteksi
%
Akurasi Aksi
1 Stand
Alone 5 5 100% karanti
na 2 Embedd
ed 5 5 100% Analisa
lanjutan
http://digilib.mercubuana.ac.id/z