Lucrarea completa poate fi citita la arXiv.org.

Abstract

Atenuarea eficienta si eficienta a malware-ului este un efort indelungat in comunitatea de securitate a informatiilor. Dezvoltarea unui sistem anti-malware care poate contracara malware-ul necunoscut anterior este o activitate prolifica care poate beneficia de mai multe sectoare. Avem in vedere un sistem inteligent anti-malware care utilizeaza puterea modelelor de invatare profunda (DL). Utilizarea unor astfel de modele ar permite detectarea malware-ului nou lansat prin generalizarea matematica. Adica, gasirea relatiei dintre un anumit malware x si familia de malware corespunzatoare y , f: x → y. Pentru a realiza acest lucru, am folosit setul de date Malimg [12] care consta din imagini malware care au fost procesate din binare malware, apoi am instruit urmatoarele modele DL 1 pentru a clasifica fiecare familie malware: CNN-SVM [16], GRU-SVM [3] si MLP-SVM. Dovezi empirice au aratat ca GRU-SVM se remarca printre modelele DL cu o precizie predictiva de ~ 84,92%. Acest lucru este logic pentru ca modelul mentionat avea cel mai sofisticat design de arhitectura dintre modelele prezentate. Explorarea unui model DL-SVM si mai optim este etapa urmatoare catre ingineria unui sistem inteligent anti-malware.

Set de date

Pentru a utiliza setul de date din acest depozit, puteti instala seturi de date pt,

$ pip instaleaza seturi de date pt

Utilizare

Mai intai, clonati proiectul.

git clone https://github.com/AFAgarap/malware-classification.git/

Rulati setup.sh pentru a va asigura ca bibliotecile cu conditii prealabile sunt instalate in mediu.

$ sudo chmod + x setup.sh $ ./setup.sh

Rulati main.py cu urmatorii parametri.

utilizare: main.py [-h] -m MODEL -d DATASET -n NUM_EPOCHS -c PENALTY_PARAMETER -k CHECKPOINT_PATH -l LOG_PATH -r RESULT_PATH Invatare profunda Utilizarea suportului Vector Machine pentru clasificarea malware-uri argumente optionale: -h, –help arata acest lucru mesaj de ajutor si iesire Argumente: -m MODEL, –model MODEL [1] CNN-SVM, [2] GRU-SVM, [3] MLP-SVM -d DATASET, –dataset DATASET setul de date care trebuie utilizat -n NUM_EPOCHS , –num_epochs NUM_EPOCHS numar de epoci -c PENALTY_PARAMETER, –penalty_parameter PENALTY_PARAMETER parametrul de penalizare SVM C -k CHECKPOINT_PATH, –checkpoint_path CHECKPOINT_PATH cale unde sa salvati modelul instruit -L LOG_PATH, jurnal -r RESULT_PATH, –result_path RESULT_PATH cale unde se salveaza matricea de etichete reale si previzionate

De exemplu, utilizati modelul CNN-SVM.

$ cd malware-classification $ python3 main.py –model 1 –dataset ./dataset/malimg.npz –num_epochs 100 –penalty_parameter 10 –checkpoint_path ./checkpoint/ –log_path ./logs/ –result_path. / rezultate /

Pentru a rula un model instruit, rulati classifier.py cu urmatorii parametri.

utilizare: classifier.py [-h] -m MODEL -t MODEL_PATH -d DATASET Invatare profunda Utilizarea suportului Vector Machine pentru clasificare malware Argumente optionale: -h, –help afiseaza acest mesaj de ajutor si iesi din Argumente: -m MODEL, – model MODEL [1] CNN-SVM, [2] GRU-SVM, [3] MLP-SVM -t MODEL_PATH, –model_path cale MODEL_PATH unde se salveaza modelul instruit -d DATASET, –dataset DATASET setul de date care urmeaza sa fie clasificat

De exemplu, utilizati un model CNN-SVM instruit.

españolas peludas maduritas corriendose
analxxx ana marco primer anal
porno abuelas españolas follando en un crucero
porno español jovencitas viejas en orgias
incesto lesbianas peliculas eroticas gratis en español
anal interacial follando a mi hija
porno fiestas follando con mirones
videos guarros porno guarras españolas
ultimos videos faking porno obligado
xxxxporno madres haciendo pajas a sus hijos
madura se corre rajas peludas
incesto subtitulado en español ver peliculas de incesto
pajas en la playa videos incesto amateur
madre española se folla a su hijo maduras follando en español
videos porno xxx incesto el mejor video porno
peliculas españolas porno meadas gay
porno france follar abuelas
masturbaciones ultimos videos faking
moras follando sara rossi fakings
se folla a zofilia xxx

$ python3 classifier.py –model 1 –model_path ./trained-cnn-svm/ –dataset / malimg.npz Model antrenat incarcat din training-cnn-svm / CNN-SVM-2400 Predictii: [1. -1. -1. …, -1. -1. 1.] Precizii: [0,99609375 0,94140625 0,94921875 0,984375 0,95703125 0,9296875 0,9296875 0,9609375 0,9296875 0,94921875 0,953125 0,92578125 0,89453125 0,8203125 0,8125 0,75390625 0,8203125 0,84375 0,8515625 0,94140625 0,7421875 0,94140625 0,984375 0,9921875 1. 0,99609375 0,9765625 0,9609375 0,81640625 0,98828125 0,7890625 0,8828125 0,94921875 0,96875 1.] 1. Precizia medie: .9203559027777778

Rezultate

Experimentele au fost efectuate pe un computer laptop cu procesor Intel Core (TM) i5-6300HQ @ 2,30GHz x 4, 16 GB RAM DDR3 si GPU NVIDIA GeForce GTX 960M 4 GB DDR5. Tabelul 1 prezinta hiperparametrele utilizate in studiu.

Tabelul 1. Hiperparametrele utilizate la modelele DL-SVM.

Hiperparametre CNN-SVM GRU-SVM MLP-SVM Dimensiune lot 256 256 256 Dimensiune celula N / A [256, 256, 256, 256, 256] [512, 256, 128] Nr. De straturi ascunse 2 5 3 Rata de abandon 0,85 0,85 Niciuna Epoci 100 100 100 Rata de invatare 1e-3 1e-3 1e-3 SVM C 10 10 0,5

Figura 1. Plotata folosind matplotlib. Acuratetea instruirii modelelor DL-SVM privind clasificarea malware folosind setul de date Malimg.

Figura 1 rezuma acuratetea antrenamentului modelelor DL-SVM pentru 100 de epoci (echivalentul a 2500 de pasi, de cand 6400 × 100 ÷ 256 = 2500). In primul rand, modelul CNN-SVM si-a realizat antrenamentul in 3 minute si 41 de secunde, cu o precizie medie de antrenament de 80,96875%. Intre timp, modelul GRU-SVM si-a realizat antrenamentul in 11 minute si 32 de secunde, cu o precizie medie a antrenamentului de 90,9375%. In cele din urma, modelul MLP-SVM si-a realizat antrenamentul in 12 secunde, cu o precizie medie de antrenament de 99,5768229%.

Tabelul 2. Rezumatul rezultatelor experimentelor pe modelele DL-SVM.

Variabile CNN-SVM GRU-SVM MLP-SVM Precizie 77.2265625% 84.921875% 80.46875% Puncte de date 256000 256000 256000 Epoci 100 100 100 F1 0,79 0,85 0,81 Precizie 0,84 0,85 0,83 Recupere 0,77 0,85 0,80

Tabelul 2 rezuma rezultatele experimentului pe modelele DL-SVM privind clasificarea malware folosind setul de date Malimg.

Citare

Pentru a cita hartia, utilizati cu amabilitate urmatoarea intrare BibTex:

@article {agarap2017towards, title = {Catre construirea unui sistem inteligent anti-malware: o abordare de invatare profunda folosind suport vector machine (SVM) pentru clasificarea malware}, author = {Agarap, Abien Fred}, journal = {arXiv preprint arXiv: 1801.00318 }, an = {2017}}

Pentru a cita depozitul / software-ul, utilizati cu amabilitate urmatoarea intrare BibTex:

@misc {abien_fred_agarap_2017_1134207, author = {Abien Fred Agarap}, title = {AFAgarap / malware-classification v0.1-alpha}, month = dec, year = 2017, doi = {10.5281 / zenodo.1134207}, url = {https : //doi.org/10.5281/zenodo.1134207}}

Licenta

Copyright 2017 Abien Fred Agarap Licentiat sub licenta Apache, versiunea 2.0 („Licenta”); nu puteti utiliza acest fisier decat in ​​conformitate cu licenta. Puteti obtine o copie a Licentei la http://www.apache.org/licenses/LICENSE-2.0 Cu exceptia cazului in care este cerut de legea aplicabila sau este convenit in scris, software-ul distribuit in baza Licentei este distribuit pe o BAZA „CA ESTE”, FARA GARANTII SAU CONDITII DE ORICE TIP, fie expresa, fie implicita. Consultati licenta pentru limbajul specific care reglementeaza permisiunile si limitarile din licenta.