Sorel-20M : Dataset Malware Sophos


Hari ini ada kabar gembira untuk para pendekar malware. Sophos baru saja share dataset malware mereka. Selama ini para peneliti malware kesulitan untuk mencari dataset malware. Dataset ini sangat perlu untuk nyoba teknik deteksi dengan machine learning dan deep learning. Dataset Sorel-20M ini terdiri dari 20 juta file dengan feature yang sudah pre-extracted,meta data informasi deteksi dari vendor seperti waktu diperoleh, tag tambahan. Selain itu sophos membagi juga 10 juta sampel malware, dengan flag optional_headers.subsystem dan file_header.machine diset zero. Sampel-sampel ini dapat digunakan untuk mencari fitur dan strategi deteksi lainnya. Sophos juga menyediakan kode piton yang dapat digunakan untuk interaksi dengan dataset ini, seperti baseline neural network dan model decisiion tree gradien boosting, serta kode yang dapat digunakan untuk training dan pengujian.

Sistem machine learning membutuhkan dataset yang besar, contohnya pada klasifikasi gambar atau NLP telah tersedia berbagai dataset seperti CIFAR, ImageNet maupun stanford Sentiment Treebank.  Namun pada deteksi malware tidak tersedia dataset malware yang cukup besar. Yang tersedia diantaranya dataset EMBER (bukan temennya gayung). Dataset Ember ini memiliki keterbatasan diantaranya:

  1. dia hanya punya 900 ribu sampel training dan 200 ribu sampel pengujian. Sangat jauh dibandingkan model yang digunakan perusahaan antivirus yang memiliki 10 juta sampai ratusan juta sampel.
  2. sulit untuk melakukan validasi performa model pada tingkat false positive yang rendah (1 dari 1000) karena isu varians.
  3. Performa klasifier EMBER ini juga mendekati saturasi. Baseline classifier mencapai nilai AUC (Area Under Curve) 0,999.
  4. EMBER hanya menyediakan fitur yang pre-extracted, hingga menyulitkan riset lanjutan yang ingin melakukan ekstraksi fitur , atau menyulitkan proses generate adversarial sampel.
  5. EMBER hanya menyediakan sebuah label binary berbasis rule thresholding sederhana

Sorel-20M menyediakan sampel yang lebih besar, ukuran validasi 3-4 juta sampel, sehingga cukup untuk menghasilkan stable rank order antara modl, serta cukup untuk menguji performa pada tingkat false positive rendah. 

Sophos menggunakan rekomendasi pembagian sampel sebagai berikut: 

  • 12.699.013 sampel training
  • 2.405.822 sampel untuk validasi 
  • 4.192.042 sampel untuk pengujian

Menurut Sophos jumlah sampel sebanyak ini dapat digunakan untuk membandingkan berbagai model, arsitektur dan fitur berbeda dengan performance yang baik, terutama menguji variasi model menggunakan random inisialisasi.

Sophos menyediakan juga sampel binary sebanyak 9.919.251 sampel (7.596.407 untuk traning, 962.222 untuk validasi dan 1.360.622 untuk pengujian). Sampel ini dapat digunakan untuk melakukan eksplorasi fitur. Sampel2 ini aman, karena telah disetting flag optional_headers.subsystem dan file_header.machine 0 untuk mencegah eksekusi.  Sophos menyediakan juga metadata PE, yang diperoleh dari modul python pefile menggunakan metode dump_dict() method. Walaupun cara ini menghindarkan perbandingan langsung dari model-model, perbandingan distribusi angka dari malware set menggunakan ekstraksi fitur yang dihasilkan dari riset masih dapat mengijinkan perbandingan tingkat deteksi pada beberapa threshold yang berbeda.

Seperti EMBER, sophos mendapatkan model baseline SOREL menggunakan LightGBM dan PyTorch berbasis model Feed-forward neural network (FFNN). Walaupun kedua model memberikan performans yang tinggi, masih ada peluang untuk peningkatan, terutama pada tingkat false-positif yang rendah. Menurut sophos, SOREL-20M akan berguna sebagai metoda untuk membandingkan beberapa pendekatan deteksi malware.  Sophos menyediakan juga beberapa target tambahan dari model, yang menjelaskan behaviour yang diperoleh dari beberapa label dari vendor. Sophos memberikan juga benchmark untuk menggunakan model multi-target.

  • Sampel malware : s3://sorel-20m/09-DEC-2020/binaries/ compressed via the python zlib.compress function
  • Database SQLite3 dan LMDB: s3://sorel-20m/09-DEC-2020/processed-data/
  • SQLite3 “meta.db” database berisi label  malware, tags, jumlah deteksi, dan waktu pertama diakses
  • Database LMDB “ember_features” isinya EMBER features (diextrak dengan versi 2 features)
  • Database LMDB “pe_metadata” berisi metadata PE yang diekstrak dari modul pefile
  • Model baseline pre-traine dan hasilnya tersedia di s3://sorel-20m/09-DEC-2020/baselines/

Sophos juga menyediakan kode python di https://github.com/sophos-ai/SOREL-20M

Paper tentang dataset ini dapat dilihat pada link berikut: https://arxiv.org/pdf/2012.07634.pdf

datasetnya dapat dilihat di https://github.com/sophos-ai/SOREL-20M

Sophos-ReversingLabs (SOREL) 20 Million sample malware dataset

https://thehackernews.com/2020/12/sorel-20m-huge-dataset-of-20-million.html?m=1#click=https://t.co/SwYxatjC6P

 


Silahkan tuliskan tanggapan, kritik maupun saran