Analisis Pengaruh Komponen Malicious PDF terhadap Deteksi Antivirus

oleh Donny Manurung

Latar Belakang

World Economic Forum menempatkan Cybercrime dan Cybersecurity pada peringkat ke-8 dalam laporan “WEF’s Global Risks Report 2023”[1]. Hal ini menjadikan Cybersecurity merupakan salah satu risiko yang memiliki dampak signifikan secara global. Risiko tersebut ditimbulkan dari potensi eksploitasi Threat Actor terhadap celah keamanan pada suatu sistem. Celah keamanan tersebut timbul dari kelemahan desain, sistem yang tidak diperbarui, lemahnya perimeter security, bahkan lemahnya awareness.

Salah satu bentuk eksploitasi terhadap lemahnya awareness tersebut adalah email phishing. Email phishing merupakan teknik serangan yang memanfaatkan sarana email dalam mengeksploitasi korbannya. Email dijadikan sebagai sarana untuk mengelabui korban demi memperoleh informasi berupa account/username, password, PIN, dan informasi berharga lainnya. Email phishing biasanya akan berisi URL ataupun lampiran berupa file dokumen yang mana salah satunya adalah PDF. File PDF tersebut disisipi malware untuk memperoleh informasi berupa account/username, password, dsb, bahkan dijadikan sebagai initial access untuk melakukan remote code execution.

File PDF merupakan dokumen yang paling banyak digunakan untuk mengirimkan malware melalui attachment pada email berdasarkan laporan Unit 42 Palo Alto. Dalam laporan tersebut, terjadi peningkatan malicious PDF sebanyak 1.160% pada 2020[2].

Awareness penerima merupakan pertahanan yang utama untuk mencegah dampak email phishing. Namun, jika malicious file tidak sengaja atau sengaja dijalankan oleh penerima, maka endpoint security adalah solusinya. Salah satu endpoint security tersebut adalah Antivirus.

Kemampuan Antivirus dalam mendeteksi malicious PDF merupakan kombinasi dari berbagai metode antara lain signature, static analysis, behavioral analysis, sandbox inspection maupun Content Disarm and Reconstruction (CDR)[3]. Kombinasi dari metode tersebut akan membuat antivirus mampu untuk mendeteksi setiap komponen penyusunnya. Oleh karena itu, kemampuan antivirus dalam menentukan malicious atau tidak adalah berdasarkan kemampuan mempelajari komponen-komponen penyusun suatu file.

Problem Statement

  1. PDF merupakan dokumen yang paling banyak digunakan untuk mengirimkan malware melalui attachment pada email.

  2. Beberapa antivirus memiliki perbedaan untuk menyatakan status malicious suatu PDF.

  3. Diperlukan uji korelasi komponen penyusun PDF terhadap total brand antivirus yang mendeteksi malicious.

Tujuan

  1. Memperoleh informasi komponen PDF yang cenderung dipakai oleh Threat Actor untuk menyisipkan malicious script/program dan dapat dideteksi oleh sejumlah brand antivirus.

  2. Memperoleh informasi komponen PDF yang cenderung tidak dapat dideteksi oleh beberapa antivirus.

Alur Penelitian

Penelitian terdiri atas 3 tahapan sebagai berikut:

  1. Pengumpulan dataset malicious PDF sebanyak 500 sampel disertai dengan 22 komponen penyusun PDF (Xi)[4]. Kemudian, penarikan Virus Total score (Y)[5] untuk setiap hash malicious PDF menggunakan API[6].

  2. Pengujian linearitas (Heteroscedasticity) untuk mengetahui apakah dataset bersifat linear atau tidak. Jika dataset linear maka akan dipakai metode Linear Regression dan jika tidak maka akan digunakan metode Non-Linear Techniques.

  3. Hasil dari metode yang akan digunakan adalah mengetahui komponen yang memiliki pengaruh signifikan terhadap jumlah Antivirus (Virus Total Score) yang dapat mendeteksi malicious PDF.

Data Collection

  1. Pengumpulan dataset malicious PDF sebanyak 500 sampel dari Canadian Institute for Cybersecurity (CIC).

  2. Dataset tersebut terdiri dari 22 komponen (Xi) structural dari malicious PDF. Komponen-komponen tersebut ditetapkan sebagai variabel independen.

Tabel 1 - Komponen Struktural PDF

  1. Virus Total Score (Y) diperoleh dengan melakukan pencarian hash (SHA1) secara bulk melalui request API ke Virustotal. Penulis menggunakan API Gratis dengan maksimum 500 request/day. Pencarian secara bulk dilakukan dengan menggunakan script Python yang dikembangkan oleh Didier Steven. Virus Total Score ditetapkan sebagai variabel dependen.

Pemrosesan Data

1. Pengujian linearitas (Heteroscedasticity) dilakukan untuk menguji apakah terdapat ketidaksamaan varian maupun residual dari dataset. Pengujian dilakukan dengan metode Uji Breusch-Pagan [7]. Kriteria pengambilan keputusan dari uji Breusch-Pagan adalah sebagai berikut :

  • Jika nilai signifikansi > 0,05 , maka tidak terjadi Heteroscedasticity

  • Jika nilai signifikansi < 0,05 , maka terjadi Heteroscedasticity

Hasil Uji Breusch-Pagan pada 500 dataset malicious PDF adalah P-value 0,000000109 yang mana nilainya < 0,05 maka terjadi Heteroscedasticity sehingga dapat disimpulkan bahwa dataset tidak linear.

2. Berdasarkan poin 1 di atas, dapat dilakukan pengujian pengaruh komponen PDF (Xi) terhadap Virus Total Score (Y) dengan menggunakan pendekatan Multivariate Non-Linear Techniques. Pada penelitian ini dilakukan pengujian dengan beberapa metode Multivariate Non-Linear Techniques sebagai berikut:

  • Gradient Boosting Machines

  • Decision Trees

  • Random Forests

Setiap metode di atas akan diuji baik Accuracy (Root Mean Square Error) dan Robustness to Overfitting (Mean Square Error) untuk menentukan metode yang lebih tepat dalam mempelajari pengaruh komponen PDF (Xi) terhadap Virus Total Score (Y).

3. Semakin kecil nilai Root Mean Square Error (RMSE) dan Mean Square Error (MSE) maka metode yang dipakai memiliki Accuracy dan Robustness yang lebih baik. Pengujian dilakukan dengan Python dan hasilnya adalah sebagai berikut

Tabel 2 - Hasil Uji Akurasi dan Robustness

4. Berdasarkan poin 3, diperoleh Accuracy dan Robustness terendah pada metode Gradient Boosting Machines dibanding metode lainnya. Oleh karena itu, metode yang dipilih untuk menguji signifikansi pengaruh komponen PDF (Xi) terhadap VirusTotal Score adalah Gradient Boosting Machines.

5. Pengolahan dan analisis dataset dengan Gradien Boosting Machines menggunakan Python dengan komponen library panda, sklearn untuk machine learning, dan matplotlib.pyplot untuk plotting. Pengolahan dan analisis dataset dilakukan di Jupiter Notebook. Cuplikan script python pengolahan data dapat dilihat pada Gambar 3.

6. Hasil pengolahan dan analisis dataset dengan Gradien Boosting Machines dinyatakan dalam nilai Feature Importance. Feature Importance sendiri dalam machine learning mengindikasikan seberapa besar kontribusi setiap variabel terhadap model prediktif. Hasil Importance Value dapat dilihat pada Gambar 4.

Hasil dan Diskusi

1. Berdasarkan hasil pengolahan dan analisis data pada poin F.6, diperoleh 5 komponen PDF yang cenderung dipakai oleh Threat Actor untuk menyisipkan malicious script/program dan dapat dideteksi oleh sejumlah brand antivirus. Komponen tersebut adalah:

  • PDF Size. Ukuran file PDF merupakan komponen yang berpengaruh pada malicious atau tidaknya file PDF. Penentuan PDF Size yang dipakai oleh Threat Actor dilakukan dengan pendekatan Metode Pareto 70:30. Hasilnya adalah 11 PDF Size memiliki kontribusi frekuensi 70% terhadap total dataset. Dengan kata lain, ukuran file PDF Size yang dibuat oleh Threat Actor pada umumnya berada pada range 2 KB sampai 16 KB.

Tabel 3 - 70% PDF Size dari Dataset

  • Xref Length. Xref (cross reference number) pada umumnya digunakan sebagai pointer embedded object dan memampukan Acrobat Reader untuk menemukan object apapun di dalam file PDF. Semakin besar nilai Xref maka semakin besar juga potensinya untuk malicious.

  • Stream. Stream merupakan byte sequence object pada PDF. Byte sequence tersebut berisi sekumpulan instruksi atau script yang dijalankan ketika PDF dibuka. Stream sering dipakai oleh Threat Actor untuk menyisipkan encoded script. Pada Gambar 5 dapat dilihat sampel decoded stream pada malicious PDF[8].

  • Metadata Size. Metadata size merupakan section yang berisi informasi mengenai file PDF. Section tersebut dapat dieksploitasi oleh Threat Actor untuk menyisipkan hidden content dalam object maupun stream yang terdapat dalam metadata PDF[9].

  • Object. PDF dapat terdiri dari beberapa object seperti data tekstual, gambar, multimedia, link, action, dan instruksi. Threat Actor dapat menyisipkan malicious instructions ataupun malicious URL ke dalam object PDF. Oleh karena itu, pada umumnya antivirus dapat mendeteksi malicious PDF dari komponen Object.

2. Komponen PDF yang cenderung tidak dapat dideteksi oleh beberapa antivirus antara lain adalah JBIG2Decode, Objstm, Encrypt, dan Text.

  • JBIG2Decode. Komponen ini dapat dipakai oleh Threat Actor untuk menyisipkan malicious script[10]. Namun, komponen ini masuk dalam kontribusi paling kecil terhadap Virus Total karena 499 files dari 500 dataset malicious PDF tidak mengandung JBIG2Decode. Dengan kata lain Threat Actor tidak memakai JBIG2Decode

  • Objstm. Object dalam stream juga dapat dipakai oleh Threat Actor untuk menyembunyikan malicious data. Namun, komponen ini masuk dalam kontribusi paling kecil terhadap Virus Total karena 488 files dari 500 dataset malicious PDF tidak mengandung malicious data dalam Objstm. Dengan kata lain, Threat Actor umumnya menyisipkan malicious script/instruction pada object

  • Encrypt. Antivirus tidak dapat melakukan analysis jika file PDF dalam encrypted.

  • Text kemungkinan tidak disisipi malicious script karena merupakan isi/teks dari PDF itu sendiri. Dengan kata lain, Threat Actor umumnya menyisipkan malicious script/instruction pada object.

Kesimpulan dan Rekomendasi

1. Berikut ini adalah kesimpulan dari hasil pengolahan dan analisis dataset:

  • Komponen PDF yang cenderung dipakai oleh Threat Actor untuk menyisipkan malicious script/object dan dapat dideteksi oleh sejumlah brand antivirus adalah PDF Size, Xref Length, Stream, Metadata Size, dan Object.

  • Komponen PDF yang cenderung tidak dipakai oleh Threat Actor untuk menyisipkan malicious script/object dan tidak dapat dideteksi oleh beberapa antivirus adalah JBIG2Decode, Objstm, Encrypt, dan Text.

2. Berikut ini adalah saran untuk pengembangan berikutnya

  • Perlu dilakukan dynamic analysis dengan melakukan beberapa skenario simulasi perubahan nilai komponen PDF untuk mempelajari sensitivitas dari antivirus dalam mendeteksi malicious object.

  • Perlu dilakukan analisis teknikal pada beberapa antivirus dalam menentukan malicious atau tidaknya suatu file PDF kemudian dibandingkan terhadap hasil pengujian akhir di atas.

Referensi

  1. https://www.unb.ca/cic/datasets/pdfmal-2022.html

  2. https://www.virustotal.com/gui/

  3. https://github.com/DidierStevens/DidierStevensSuite/blob/master/virustotal-search.py

  4. https://www.weforum.org/publications/global-risks-report-2023/in-full/

  5. https://unit42.paloaltonetworks.com/phishing-trends-with-pdf-files/

  6. https://www.cynet.com/malware/4-malware-detection-techniques-and-their-use-in-epp-and-edr/

  7. https://accounting.binus.ac.id/2021/08/06/memahami-uji-heteroskedastisitas-dalam-model-regresi/

  8. Research Article Malware Detection on Byte Streams of PDF Files Using Convolutional Neural Networks (Young-Seob Jeong , Jiyoung Woo , and Ah Reum Kang)

  9. https://www.gispp.org/2022/03/10/analyzing-malicious-pdf-files/

  10. https://blog.didierstevens.com/2009/03/04/quickpost-jbig2decode-trigger-trio/

Tentang Penulis

Donny R M Manurung

Security Operation ManagerCyber Security Enthusiast – Roker Rangkas Line

Last updated