Deteksi dan klasifikasi malware dengan Amazon Rekognition PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Deteksi dan klasifikasi malware dengan Amazon Rekognition

Menurut artikel oleh Cybersecurity Ventures, kerusakan yang disebabkan oleh Ransomware (sejenis malware yang dapat memblokir pengguna untuk mengakses data mereka kecuali mereka membayar uang tebusan) meningkat 57 kali lipat pada tahun 2021 dibandingkan dengan tahun 2015. USD) setiap tahun pada tahun 265. Pada saat penulisan, korban finansial dari serangan Ransomware turun tepat di atas 2031th posisi dalam daftar negara peringkat oleh mereka PDB.

Mengingat ancaman yang ditimbulkan oleh malware, beberapa teknik telah dikembangkan untuk mendeteksi dan membendung serangan malware. Dua teknik paling umum yang digunakan saat ini adalah deteksi berbasis tanda tangan dan perilaku.

Deteksi berbasis tanda tangan menetapkan pengidentifikasi unik tentang objek berbahaya yang diketahui sehingga objek tersebut dapat diidentifikasi di masa mendatang. Ini mungkin pola kode unik yang dilampirkan ke file, atau mungkin hash dari kode malware yang dikenal. Jika pengidentifikasi pola yang diketahui (tanda tangan) ditemukan saat memindai objek baru, maka objek tersebut ditandai sebagai berbahaya. Deteksi berbasis tanda tangan cepat dan membutuhkan daya komputasi yang rendah. Namun, ia berjuang melawan jenis malware polimorfik, yang terus-menerus mengubah bentuknya untuk menghindari deteksi.

Deteksi berbasis perilaku menilai objek mencurigakan berdasarkan perilakunya. Artefak yang dapat dipertimbangkan oleh produk anti-malware adalah interaksi proses, kueri DNS, dan koneksi jaringan dari objek. Teknik ini bekerja lebih baik dalam mendeteksi malware polimorfik dibandingkan dengan berbasis tanda tangan, tetapi memiliki beberapa kelemahan. Untuk menilai apakah suatu objek berbahaya, objek tersebut harus berjalan di host dan menghasilkan artefak yang cukup agar produk anti-malware dapat mendeteksinya. Titik buta ini dapat membiarkan malware menginfeksi host dan menyebar melalui jaringan.

Teknik yang ada masih jauh dari sempurna. Akibatnya, penelitian berlanjut dengan tujuan untuk mengembangkan teknik alternatif baru yang akan meningkatkan kemampuan kami untuk memerangi malware. Salah satu teknik baru yang muncul dalam beberapa tahun terakhir adalah deteksi malware berbasis gambar. Teknik ini mengusulkan untuk melatih jaringan pembelajaran mendalam dengan biner malware yang diketahui dikonversi dalam gambar skala abu-abu. Dalam posting ini, kami menunjukkan cara melakukan deteksi Malware berbasis Gambar Rekognisi Amazon Label Kustom.

Ikhtisar solusi

Untuk melatih model multi-klasifikasi dan model deteksi malware, pertama-tama kami menyiapkan dataset pelatihan dan pengujian yang berisi berbagai jenis malware seperti banjir, adware, spyware, dll., serta objek jinak. Kami kemudian mengonversi objek portabel yang dapat dieksekusi (PE) menjadi gambar skala abu-abu. Selanjutnya, kami melatih model menggunakan gambar dengan Amazon Rekognition.

Amazon Rekognition adalah layanan yang memudahkan untuk melakukan berbagai jenis analisis visual pada aplikasi Anda. Rekognition Image membantu Anda membuat aplikasi canggih untuk menelusuri, memverifikasi, dan mengatur jutaan gambar.

Amazon Rekognition Custom Labels dibangun dari kemampuan Rekognition yang sudah ada, yang sudah dilatih pada puluhan juta gambar di banyak kategori.

Amazon Rekognition Custom Labels adalah layanan terkelola penuh yang memungkinkan pengguna menganalisis jutaan gambar dan memanfaatkannya untuk memecahkan berbagai masalah pembelajaran mesin (ML), termasuk klasifikasi gambar, deteksi wajah, dan moderasi konten. Di belakang layar, Amazon Rekognition didasarkan pada teknologi pembelajaran mendalam. Layanan ini menggunakan jaringan saraf konvolusi (CNN), yang dilatih sebelumnya pada kumpulan data berlabel besar. Dengan terpapar pada data kebenaran dasar tersebut, algoritme dapat belajar mengenali pola dalam gambar dari berbagai domain dan dapat digunakan di banyak kasus penggunaan industri. Karena AWS bertanggung jawab membangun dan memelihara arsitektur model dan memilih metode pelatihan yang sesuai untuk tugas yang ada, pengguna tidak perlu menghabiskan waktu mengelola infrastruktur yang diperlukan untuk tugas pelatihan.

Arsitektur solusi

Diagram arsitektur berikut memberikan gambaran umum tentang solusi tersebut.

Solusinya dibangun menggunakan Batch AWS, Fargate AWS, dan Rekognisi Amazon. AWS Batch memungkinkan Anda menjalankan ratusan tugas komputasi batch di Fargate. Fargate kompatibel dengan keduanya Layanan Kontainer Elastis Amazon (Amazon ECS) dan Layanan Amazon Elastic Kubernetes (Amazon EKS). Label kustom Amazon Rekognition memungkinkan Anda menggunakan AutoML untuk visi komputer guna melatih model kustom untuk mendeteksi malware dan mengklasifikasikan berbagai kategori malware. AWS Step Functions digunakan untuk mengatur prapemrosesan data.

Untuk solusi ini, kami membuat sumber daya preprocessing via Formasi AWS Cloud. Templat tumpukan CloudFormation dan kode sumber untuk fungsi AWS Batch, Fargate, dan Step tersedia di a Repositori GitHub.

Dataset

Untuk melatih model dalam contoh ini, kami menggunakan kumpulan data publik berikut untuk mengekstrak yang berbahaya dan tidak berbahaya Dapat Dieksekusi Portabel (PE):

Kami mendorong Anda untuk membaca dengan cermat seluruh dokumentasi set data (Sophos/Laboratorium Pembalik README, Kumpulan Data Pembelajaran Mesin Malware PE) untuk menangani objek malware dengan aman. Berdasarkan preferensi Anda, Anda juga dapat menggunakan kumpulan data lain selama mereka menyediakan malware dan objek jinak dalam format biner.

Selanjutnya, kami akan memandu Anda melalui langkah-langkah solusi berikut:

  • Praproses objek dan konversikan ke gambar
  • Terapkan sumber daya prapemrosesan dengan CloudFormation
  • Pilih modelnya
  • Latih modelnya
  • Evaluasi modelnya
  • Biaya dan kinerja

Praproses objek dan konversikan ke gambar

Kami menggunakan Step Functions untuk mengatur alur kerja preprocessing objek yang mencakup langkah-langkah berikut:

  1. Ambil meta.db basis data sqllite dari coklat kemerah-merahan-20m Bucket S3 dan konversikan ke file .csv. Ini membantu kami memuat file .csv dalam wadah Fargate dan merujuk ke metadata saat memproses objek malware.
  2. Ambil objek dari bucket sorel-20m S3 dan buat daftar objek dalam format csv. Dengan melakukan langkah ini, kami membuat rangkaian file .csv yang dapat diproses secara paralel, sehingga mengurangi waktu yang diperlukan untuk prapemrosesan.
  3. Ubah objek dari bucket sorel-20m S3 menjadi gambar dengan serangkaian pekerjaan. Tugas larik AWS Batch berbagi parameter umum untuk mengonversi objek malware menjadi gambar. Mereka berjalan sebagai kumpulan pekerjaan konversi gambar yang didistribusikan di beberapa host, dan dijalankan secara bersamaan.
  4. Pilih jumlah gambar yang telah ditentukan sebelumnya untuk pelatihan model dengan berbagai tugas yang sesuai dengan kategori malware.
  5. Mirip dengan Langkah 2, kami mengambil objek jinak dari bucket S160 jinak-3k dan membuat daftar objek dalam format csv.
  6. Mirip dengan Langkah 3, kami mengonversi objek dari bucket S160 3k jinak menjadi gambar dengan berbagai tugas.
  7. Karena kuota default Amazon Rekognition untuk pelatihan label khusus (gambar 250 ribu), pilih jumlah gambar jinak yang telah ditentukan sebelumnya untuk pelatihan model.
  8. Seperti yang ditunjukkan pada gambar berikut, gambar disimpan dalam bucket S3 yang dipartisi terlebih dahulu oleh folder malware dan jinak, lalu selanjutnya malware dipartisi berdasarkan jenis malware.
    Ember pelatihan S3
    Kumpulan data pelatihan

Terapkan sumber daya prapemrosesan dengan CloudFormation

Prasyarat

Prasyarat berikut diperlukan sebelum melanjutkan:

Penyebaran sumber daya

Tumpukan CloudFormation akan membuat sumber daya berikut:

parameter

  • STACK_NAME โ€“ Nama tumpukan CloudFormation
  • AWS_REGION โ€“ Wilayah AWS tempat solusi akan diterapkan
  • AWS_PROFILE โ€“ Profil bernama yang akan diterapkan pada perintah AWS CLI
  • ARTEFACT_S3_BUCKET โ€“ Bucket S3 tempat kode infrastruktur akan disimpan. (Bucket harus dibuat di wilayah yang sama dengan tempat solusi berada).
  • AWS_AKUN โ€“ ID Akun AWS.

Gunakan perintah berikut untuk menyebarkan sumber daya

Pastikan agen buruh pelabuhan berjalan di mesin. Penerapan dilakukan menggunakan skrip bash, dan dalam hal ini kami menggunakan perintah berikut:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

Ini membangun dan menyebarkan artefak lokal yang dirujuk oleh template CloudFormation (misalnya, cloudformation.yaml).

Latih modelnya

Karena Amazon Rekognition menangani pelatihan model untuk Anda, visi komputer atau pengetahuan ML yang sangat terspesialisasi tidak diperlukan. Namun, Anda harus menyediakan Amazon Rekognition dengan keranjang berisi gambar masukan yang diberi label dengan tepat.

Dalam postingan ini, kami akan melatih dua model klasifikasi gambar independen melalui fitur label kustom:

  1. Model deteksi malware (klasifikasi biner) โ€“ mengidentifikasi apakah objek yang diberikan berbahaya atau jinak
  2. Model klasifikasi malware (klasifikasi multi-kelas) โ€“ mengidentifikasi keluarga malware untuk objek berbahaya tertentu

Panduan pelatihan model

Langkah-langkah yang tercantum dalam panduan berikut berlaku untuk kedua model. Oleh karena itu, Anda harus melalui langkah-langkah tersebut dua kali untuk melatih kedua model.

  1. Masuk ke Konsol Manajemen AWS dan buka Pengakuan Amazon konsol.
  2. Di panel kiri, pilih Gunakan Label Kustom. Halaman arahan Amazon Rekognition Custom Labels ditampilkan.
  3. Dari halaman arahan Amazon Rekognition Custom Labels, pilih Get started.
  4. Di panel kiri, Pilih Proyek.
  5. Pilih Buat Proyek.
  6. In Nama proyek, masukkan nama untuk proyek Anda.
  7. Pilih Buat proyek untuk membuat proyek Anda.
  8. Dalam majalah Proyek halaman, pilih proyek yang ingin Anda tambahkan kumpulan datanya. Halaman detail untuk proyek Anda ditampilkan.
  9. Pilih Buat set data. itu Buat set data halaman ditampilkan.
  10. In Memulai konfigurasi, pilih Mulailah dengan satu kumpulan data untuk membiarkan Amazon Rekognition membagi set data menjadi pelatihan dan pengujian. Perhatikan bahwa Anda mungkin akan mendapatkan sampel pengujian yang berbeda di setiap iterasi pelatihan model, yang menghasilkan hasil dan metrik evaluasi yang sedikit berbeda.
  11. Pilih Impor gambar dari bucket Amazon S3.
  12. In URI S3, masukkan lokasi bucket S3 dan jalur folder. Bucket S3 yang sama yang disediakan dari langkah prapemrosesan digunakan untuk membuat kedua set data: Deteksi malware dan klasifikasi Malware. Dataset deteksi Malware menunjuk ke root (yaitu, s3://malware-detection-training-{account-id}-{region}/) dari bucket S3, sedangkan dataset klasifikasi Malware menunjuk ke folder malware (yaitu, s3://malware-detection-training-{account-id}-{region}/malware) dari ember S3. Data pelatihan
  13. Pilih Lampirkan label secara otomatis ke gambar berdasarkan folder.
  14. Pilih Buat Dataset. Halaman kumpulan data untuk proyek Anda akan terbuka.
  15. pada Model kereta halaman, pilih Model kereta. Nama Sumber Daya Amazon (ARN) untuk proyek Anda harus ada di Pilih proyek kotak edit. Jika tidak, masukkan ARN untuk proyek Anda.
  16. Dalam majalah Apakah Anda ingin melatih model Anda? kotak dialog, pilih Model kereta.
  17. Setelah pelatihan selesai, pilih nama model. Pelatihan selesai saat status model LATIHAN_SELESAI.
  18. Dalam majalah Model bagian, pilih Gunakan model tab untuk mulai menggunakan model.

Untuk detail selengkapnya, periksa label kustom Amazon Rekognition Memulai panduan.

Evaluasi modelnya

Saat model pelatihan selesai, Anda dapat mengakses metrik evaluasi dengan memilih Periksa metrik di halaman model. Amazon Rekognition memberi Anda metrik berikut: skor F1, presisi rata-rata, dan penarikan keseluruhan, yang biasanya digunakan untuk mengevaluasi kinerja model klasifikasi. Yang terakhir adalah metrik rata-rata atas jumlah label.

Dalam majalah Performa per label , Anda dapat menemukan nilai metrik ini per label. Selain itu, untuk mendapatkan nilai True Positive, False Positive, dan False negative, pilih Lihat hasil tes.

Metrik model deteksi malware

Pada kumpulan data seimbang dari 199,750 gambar dengan dua label (jinak dan malware), kami menerima hasil berikut:

  • Skor F1 โ€“ 0.980
  • Presisi rata-rata โ€“ 0.980
  • Penarikan keseluruhan โ€“ 0.980

Metrik model deteksi malware

Metrik model klasifikasi malware

Pada kumpulan data seimbang dari 130,609 gambar dengan 11 label (11 kelompok malware), kami menerima hasil berikut:

  • Skor F1 โ€“ 0.921
  • Presisi rata-rata โ€“ 0.938
  • Penarikan keseluruhan โ€“ 0.906

Metrik model klasifikasi malware

Untuk menilai apakah model berperforma baik, sebaiknya bandingkan kinerjanya dengan tolok ukur industri lain yang telah dilatih pada set data yang sama (atau setidaknya serupa). Sayangnya, pada saat penulisan posting ini, tidak ada badan penelitian komparatif yang menyelesaikan masalah ini dengan menggunakan teknik yang sama dan kumpulan data yang sama. Namun, dalam komunitas ilmu data, model dengan skor F1 di atas 0.9 dianggap berperforma sangat baik.

Biaya dan kinerja

Karena sifat sumber daya tanpa server, biaya keseluruhan dipengaruhi oleh jumlah waktu penggunaan setiap layanan. Di sisi lain, kinerja dipengaruhi oleh jumlah data yang sedang diproses dan umpan ukuran set data pelatihan ke Amazon Rekognition. Untuk latihan perkiraan biaya dan kinerja kami, kami mempertimbangkan skenario berikut:

  • 20 juta objek dikatalogkan dan diproses dari kumpulan data sorel.
  • 160,000 objek dikatalogkan dan diproses dari Kumpulan Data Pembelajaran Mesin Malware PE.
  • Sekitar 240,000 objek ditulis ke keranjang S3 pelatihan: 160,000 objek malware dan 80,000 objek jinak.

Berdasarkan skenario ini, biaya rata-rata untuk melakukan praproses dan penerapan model adalah $510.99 USD. Anda akan dikenai biaya tambahan $4 USD/jam untuk setiap jam Anda menggunakan model tersebut. Anda dapat menemukan perincian biaya terperinci di memperkirakan dihasilkan melalui Kalkulator Harga AWS.

Dari segi kinerja, ini adalah hasil dari pengukuran kami:

  • ~2 jam agar aliran prapemrosesan selesai
  • ~40 jam untuk menyelesaikan pelatihan model pendeteksi malware
  • ~40 jam untuk menyelesaikan pelatihan model klasifikasi malware

Membersihkan

Untuk menghindari timbulnya biaya di masa mendatang, berhenti dan hapus model Amazon Rekognition, dan hapus sumber daya prapemrosesan melalui hancurkan.sh naskah. Parameter berikut diperlukan untuk menjalankan skrip dengan sukses:

  • STACK_NAME โ€“ Nama tumpukan CloudFormation
  • AWS_REGION โ€“ Wilayah tempat solusi diterapkan
  • AWS_PROFILE โ€“ Profil bernama yang berlaku untuk perintah AWS CLI

Gunakan perintah berikut untuk menjalankan ./malware_detection_deployment_scripts/destroy.sh naskah:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

Kesimpulan

Dalam postingan ini, kami mendemonstrasikan cara melakukan deteksi dan klasifikasi malware menggunakan Amazon Rekognition. Solusinya mengikuti pola tanpa server, memanfaatkan layanan terkelola untuk prapemrosesan data, orkestrasi, dan penerapan model. Kami harap postingan ini membantu Anda dalam upaya berkelanjutan untuk memerangi malware.

Di postingan mendatang, kami akan menunjukkan kasus penggunaan praktis dari deteksi malware dengan menggunakan model yang diterapkan di postingan ini.


Tentang penulis

Edvin HallvaxhiuEdvin Hallvaxhiu adalah Arsitek Keamanan Global Senior dengan AWS Professional Services dan sangat menyukai keamanan siber dan otomatisasi. Dia membantu pelanggan membangun solusi yang aman dan sesuai di cloud. Di luar pekerjaan, dia suka bepergian dan olahraga.

Rahul ShauryaRahul Shaurya adalah Arsitek Data Utama dengan AWS Professional Services. Dia membantu dan bekerja sama dengan pelanggan dalam membangun platform data dan aplikasi analitik di AWS. Di luar pekerjaan, Rahul suka berjalan-jalan dengan anjingnya Barney.

Bruno DheftoBruno Dhefto adalah Arsitek Keamanan Global dengan Layanan Profesional AWS. Dia berfokus untuk membantu pelanggan membangun arsitektur yang Aman dan Andal di AWS. Di luar pekerjaan, ia tertarik dengan perkembangan teknologi terkini dan bepergian.

Nadim MajedNadim Majed adalah arsitek data dalam layanan profesional AWS. Dia bekerja berdampingan dengan pelanggan membangun platform data mereka di AWS. Di luar pekerjaan, Nadim bermain tenis meja, dan suka menonton sepak bola.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS