Detectarea și clasificarea programelor malware cu Amazon Rekognition PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Detectarea și clasificarea programelor malware cu Amazon Rekognition

Potrivit unui articol de Cybersecurity Ventures, daunele cauzate de Ransomware (un tip de malware care poate bloca utilizatorii să-și acceseze datele dacă nu plătesc o răscumpărare) a crescut de 57 de ori în 2021, comparativ cu 2015. În plus, se estimează că va costa victimele sale 265 de miliarde de dolari ( USD) anual până în 2031. La momentul redactării acestui articol, rata financiară a atacurilor ransomware scade cu puțin peste 50th poziție într-o listă de țări clasate după lor PIB-ul.

Având în vedere amenințarea pe care o reprezintă programele malware, au fost dezvoltate mai multe tehnici pentru a detecta și a limita atacurile malware. Cele mai frecvente două tehnici utilizate astăzi sunt detectarea bazată pe semnătură și comportament.

Detectarea bazată pe semnătură stabilește un identificator unic despre un obiect rău intenționat cunoscut, astfel încât obiectul să poată fi identificat în viitor. Poate fi un model unic de cod atașat unui fișier sau poate fi hash-ul unui cod malware cunoscut. Dacă un identificator de model cunoscut (semnătură) este descoperit în timpul scanării unor obiecte noi, atunci obiectul este marcat ca rău intenționat. Detectarea bazată pe semnătură este rapidă și necesită o putere de calcul redusă. Cu toate acestea, se luptă împotriva tipurilor de malware polimorfe, care își schimbă continuu forma pentru a evita detectarea.

Detectarea bazată pe comportament judecă obiectele suspecte pe baza comportamentului lor. Artefactele care pot fi luate în considerare de produsele anti-malware sunt interacțiunile proceselor, interogările DNS și conexiunile la rețea de la obiect. Această tehnică funcționează mai bine la detectarea malware-ului polimorf în comparație cu cea bazată pe semnătură, dar are unele dezavantaje. Pentru a evalua dacă un obiect este rău intenționat, trebuie să ruleze pe gazdă și să genereze suficiente artefacte pentru ca produsul anti-malware să-l detecteze. Acest punct orb poate lăsa malware-ul să infecteze gazda și să se răspândească prin rețea.

Tehnicile existente sunt departe de a fi perfecte. Drept urmare, cercetările continuă cu scopul de a dezvolta noi tehnici alternative care să ne îmbunătățească capacitățile de combatere a programelor malware. O tehnică nouă care a apărut în ultimii ani este detectarea malware-ului pe bază de imagini. Această tehnică propune antrenarea unei rețele de învățare profundă cu fișiere binare malware cunoscute convertite în imagini în tonuri de gri. În această postare, vă prezentăm cum să efectuați detectarea malware-ului bazată pe imagini Amazon Rekognition Etichete personalizate.

Prezentare generală a soluțiilor

Pentru a antrena un model de clasificare multiplă și un model de detectare a malware-ului, pregătim mai întâi seturile de date de instruire și testare care conțin diferite tipuri de malware, cum ar fi flooder, adware, spyware etc., precum și obiecte benigne. Apoi convertim obiectele executabile portabile (PE) în imagini în tonuri de gri. Apoi, antrenăm un model folosind imaginile cu Amazon Rekognition.

Amazon Rekognition este un serviciu care simplifică efectuarea diferitelor tipuri de analize vizuale asupra aplicațiilor dvs. Rekognition Image vă ajută să creați aplicații puternice pentru a căuta, verifica și organiza milioane de imagini.

Amazon Rekognition Custom Labels se bazează pe capabilitățile existente ale Rekognition, care sunt deja antrenate pe zeci de milioane de imagini din mai multe categorii.

Amazon Rekognition Custom Labels este un serviciu complet gestionat care permite utilizatorilor să analizeze milioane de imagini și să le utilizeze pentru a rezolva multe probleme diferite de învățare automată (ML), inclusiv clasificarea imaginilor, detectarea feței și moderarea conținutului. În culise, Amazon Rekognition se bazează pe o tehnologie de învățare profundă. Serviciul folosește o rețea neuronală de convoluție (CNN), care este pre-antrenată pe un set de date mare etichetat. Fiind expus la astfel de date de adevăr, algoritmul poate învăța să recunoască modele în imagini din multe domenii diferite și poate fi utilizat în multe cazuri de utilizare din industrie. Deoarece AWS preia construirea și întreținerea arhitecturii modelului și selectarea unei metode de instruire adecvate sarcinii în cauză, utilizatorii nu trebuie să petreacă timp gestionând infrastructura necesară pentru sarcinile de instruire.

Arhitectura soluțiilor

Următoarea diagramă de arhitectură oferă o privire de ansamblu asupra soluției.

Soluția este construită folosind Lot AWS, AWS Fargate, și Amazon Rekognition. AWS Batch vă permite să rulați sute de joburi de calcul batch pe Fargate. Fargate este compatibil cu ambele Amazon Elastic Container Service (Amazon ECS) și Serviciul Amazon Elastic Kubernetes (Amazon EKS). Etichetele personalizate Amazon Rekognition vă permit să utilizați AutoML pentru computer vision pentru a antrena modele personalizate pentru a detecta malware și a clasifica diferite categorii de malware. Funcțiile AWS Step sunt utilizate pentru a orchestra preprocesarea datelor.

Pentru această soluție, creăm resursele de preprocesare prin Formarea AWS Cloud. Șablonul de stivă CloudFormation și codul sursă pentru funcțiile AWS Batch, Fargate și Step sunt disponibile într-o Repository GitHub.

Setul de date

Pentru a antrena modelul în acest exemplu, am folosit următoarele seturi de date publice pentru a extrage elementele rău intenționate și benigne Executabil portabil (PE):

Vă încurajăm să citiți cu atenție documentația setului de date (Sophos/Reversing Labs README, Setul de date PE Malware Machine Learning) pentru a gestiona în siguranță obiectele malware. Pe baza preferințelor dvs., puteți utiliza și alte seturi de date, atâta timp cât acestea furnizează malware și obiecte benigne în format binar.

În continuare, vă vom ghida prin următorii pași ai soluției:

  • Preprocesați obiectele și convertiți-le în imagini
  • Implementați resurse de preprocesare cu CloudFormation
  • Alegeți modelul
  • Antrenează modelul
  • Evaluați modelul
  • Cost și performanță

Preprocesați obiectele și convertiți-le în imagini

Utilizăm Step Functions pentru a orchestra fluxul de lucru de preprocesare a obiectelor, care include următorii pași:

  1. Ia meta.db baza de date sqllite din sorel-20m S3 bucket și convertiți-l într-un fișier .csv. Acest lucru ne ajută să încărcăm fișierul .csv într-un container Fargate și să ne referim la metadate în timp ce procesăm obiectele malware.
  2. Luați obiectele din găleată sorel-20m S3 și creați o listă de obiecte în format csv. Efectuând acest pas, creăm o serie de fișiere .csv care pot fi procesate în paralel, reducând astfel timpul necesar pentru preprocesare.
  3. Convertiți obiectele din găleată Sorel-20m S3 în imagini cu o serie de lucrări. Lucrările de matrice AWS Batch au parametri comuni pentru conversia obiectelor malware în imagini. Acestea rulează ca o colecție de lucrări de conversie a imaginilor care sunt distribuite pe mai multe gazde și rulează concomitent.
  4. Alegeți un număr prestabilit de imagini pentru antrenamentul modelului cu o serie de joburi corespunzătoare categoriilor de malware.
  5. Similar cu Pasul 2, luăm obiectele benigne din găleată S160 benign-3k și creăm o listă de obiecte în format csv.
  6. Similar cu Pasul 3, convertim obiectele din găleată S160 benign-3k în imagini cu o serie de lucrări.
  7. Datorită cotei implicite Amazon Rekognition pentru instruirea etichetelor personalizate (250K imagini), alegeți un număr predeterminat de imagini benigne pentru antrenamentul modelului.
  8. După cum se arată în imaginea următoare, imaginile sunt stocate într-o găleată S3 partiționată mai întâi de malware și foldere benigne, apoi, ulterior, malware-ul este partiționat de tipuri de malware.
    Găleată de antrenament S3
    Set de date de antrenament

Implementați resursele de preprocesare cu CloudFormation

Cerințe preliminare

Următoarele cerințe preliminare sunt necesare înainte de a continua:

Implementarea resurselor

Stiva CloudFormation va crea următoarele resurse:

parametrii

  • STACK_NAME – Numele stivei CloudFormation
  • AWS_REGION – Regiunea AWS în care va fi implementată soluția
  • AWS_PROFILE – Profil denumit care se va aplica la comanda AWS CLI
  • ARTEFACT_S3_BUCKET – Bucket S3 unde va fi stocat codul infrastructurii. (Găleata trebuie creată în aceeași regiune în care se află soluția).
  • AWS_ACCOUNT – ID-ul contului AWS.

Utilizați următoarele comenzi pentru a implementa resursele

Asigurați-vă că agentul docker rulează pe computer. Implementările se fac folosind scripturi bash, iar în acest caz folosim următoarea comandă:

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

Aceasta construiește și implementează artefactele locale la care șablonul CloudFormation (de exemplu, cloudformation.yaml) face referire.

Antrenează modelul

Deoarece Amazon Rekognition se ocupă de formarea modelului pentru dvs., viziunea computerizată sau cunoștințele ML foarte specializate nu sunt necesare. Cu toate acestea, va trebui să furnizați Amazon Rekognition o găleată plină cu imagini de intrare etichetate corespunzător.

În această postare, vom antrena două modele independente de clasificare a imaginilor prin funcția de etichete personalizate:

  1. Model de detectare a programelor malware (clasificare binară) – identificați dacă obiectul dat este rău intenționat sau benign
  2. Model de clasificare a programelor malware (clasificare multi-clasă) – identificați familia de malware pentru un anumit obiect rău intenționat

Rezumat al antrenamentului model

Pașii enumerați în următoarea instrucțiune se aplică ambelor modele. Prin urmare, va trebui să parcurgeți pașii de două ori pentru a antrena ambele modele.

  1. Conectați-vă la Consola de administrare AWS și deschideți Amazon Rekognition consolă.
  2. În panoul din stânga, alegeți Utilizați etichete personalizate. Este afișată pagina de destinație Amazon Rekognition Custom Labels.
  3. Din pagina de destinație Amazon Rekognition Custom Labels, alegeți Incepe.
  4. În panoul din stânga, Alegeți Proiecte.
  5. Alege Creați un proiect.
  6. In Numele proiectului, introduceți un nume pentru proiectul dvs.
  7. Alege Creați un proiect pentru a vă crea proiectul.
  8. În Proiecte pagina, alegeți proiectul la care doriți să adăugați un set de date. Se afișează pagina de detalii a proiectului dvs.
  9. Alege Creați set de date. Creați set de date este afișată pagina.
  10. In Se începe configurarea, alege Începeți cu un singur set de date pentru a permite Amazon Rekognition să împartă setul de date pentru instruire și testare. Rețineți că este posibil să obțineți mostre de testare diferite în fiecare iterație de antrenament a modelului, rezultând rezultate și valori de evaluare ușor diferite.
  11. Alege Importați imagini din cupa Amazon S3.
  12. In S3 URI, introduceți locația compartimentului S3 și calea folderului. Același bucket S3 furnizat de la pasul de preprocesare este utilizat pentru a crea ambele seturi de date: detectarea malware și clasificarea malware. Setul de date de detectare a programelor malware indică rădăcină (adică, s3://malware-detection-training-{account-id}-{region}/) din compartimentul S3, în timp ce setul de date de clasificare a programelor malware indică folderul de programe malware (adică, s3://malware-detection-training-{account-id}-{region}/malware) a găleții S3. Date de instruire
  13. Alege Atașați automat etichete imaginilor în funcție de folder.
  14. Alege Creați seturi de date. Se deschide pagina seturi de date pentru proiectul dvs.
  15. Pe Model de tren pagina, alege Model de tren. Numele resurselor Amazon (ARN) pentru proiectul dvs. ar trebui să fie în Alegeți proiectul caseta de editare. Dacă nu, atunci introduceți ARN-ul pentru proiectul dvs.
  16. În Vrei să-ți antrenezi modelul? caseta de dialog, alegeți Model de tren.
  17. După terminarea antrenamentului, alegeți numele modelului. Antrenamentul se termină când starea modelului este TRAINING_COMPLETED.
  18. În modele secțiunea, alegeți Folosiți modelul pentru a începe să utilizați modelul.

Pentru mai multe detalii, verificați etichetele personalizate Amazon Rekognition Noțiuni de bază ghid.

Evaluați modelul

Când modelele de instruire sunt finalizate, puteți accesa valorile de evaluare selectând Verificați valorile pe pagina modelului. Amazon Rekognition vă oferă următoarele valori: scor F1, precizie medie și reamintire generală, care sunt utilizate în mod obișnuit pentru a evalua performanța modelelor de clasificare. Acestea din urmă sunt valori medii în funcție de numărul de etichete.

În Performanță pe etichetă secțiunea, puteți găsi valorile acestor valori pe etichetă. În plus, pentru a obține valorile pentru Adevărat pozitiv, Fals pozitiv și Fals negativ, selectați Vizualizați rezultatele testelor.

Valorile modelului de detectare a programelor malware

Pe setul de date echilibrat de 199,750 de imagini cu două etichete (benigne și malware), am primit următoarele rezultate:

  • Scorul F1 – 0.980
  • Precizie medie – 0.980
  • Rechemare generală – 0.980

Valorile modelului de detectare a programelor malware

Valori ale modelului de clasificare a programelor malware

Pe setul de date echilibrat de 130,609 imagini cu 11 etichete (11 familii de malware), am primit următoarele rezultate:

  • Scorul F1 – 0.921
  • Precizie medie – 0.938
  • Rechemare generală – 0.906

Valori ale modelului de clasificare a programelor malware

Pentru a evalua dacă modelul funcționează bine, vă recomandăm să îi comparați performanța cu alte repere din industrie care au fost instruite pe același set de date (sau cel puțin similar). Din păcate, la momentul scrierii acestui articol, nu există organisme de cercetare comparative care să rezolve această problemă folosind aceeași tehnică și aceleași seturi de date. Cu toate acestea, în cadrul comunității științei datelor, un model cu un scor F1 peste 0.9 este considerat a funcționa foarte bine.

Cost și performanță

Datorită naturii fără server a resurselor, costul total este influențat de timpul în care fiecare serviciu este utilizat. Pe de altă parte, performanța este afectată de cantitatea de date procesată și de fluxul de dimensiune a setului de date de antrenament către Amazon Rekognition. Pentru exercițiul nostru de estimare a costurilor și performanței, luăm în considerare următorul scenariu:

  • 20 de milioane de obiecte sunt catalogate și procesate din setul de date Sorel.
  • 160,000 de obiecte sunt catalogate și procesate din setul de date PE Malware Machine Learning.
  • Aproximativ 240,000 de obiecte sunt scrise în găleata S3 de antrenament: 160,000 de obiecte malware și 80,000 de obiecte benigne.

Pe baza acestui scenariu, costul mediu pentru preprocesarea și implementarea modelelor este de 510.99 USD. Veți fi taxat suplimentar cu 4 USD/h pentru fiecare oră în care utilizați modelul. Puteți găsi defalcarea detaliată a costurilor în estima generate prin intermediul Calculator de prețuri AWS.

Din punct de vedere al performanței, acestea sunt rezultatele măsurătorii noastre:

  • ~2 ore pentru ca fluxul de preprocesare să se finalizeze
  • ~40 de ore pentru finalizarea instruirii modelului de detectare a programelor malware
  • ~40 de ore pentru finalizarea instruirii modelului de clasificare a programelor malware

Curăță

Pentru a evita costurile viitoare, opri și șterge modelele Amazon Rekognition și ștergeți resursele de preprocesare prin intermediul distruge.sh scenariu. Următorii parametri sunt necesari pentru a rula cu succes scriptul:

  • STACK_NAME – Numele stivei CloudFormation
  • AWS_REGION – Regiunea în care este implementată soluția
  • AWS_PROFILE – Profilul numit care se aplică comenzii AWS CLI

Utilizați următoarele comenzi pentru a rula ./malware_detection_deployment_scripts/destroy.sh scenariu:

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

Concluzie

În această postare, am demonstrat cum să realizați detectarea și clasificarea programelor malware utilizând Amazon Rekognition. Soluțiile urmează un model fără server, utilizând servicii gestionate pentru preprocesarea datelor, orchestrare și implementarea modelului. Sperăm că această postare vă va ajuta în eforturile dumneavoastră continue de a combate programele malware.

Într-o postare viitoare vom arăta un caz practic de utilizare al detectării malware-ului prin consumarea modelelor implementate în această postare.


Despre autori

Edvin HallvaxhiuEdvin Hallvaxhiu este arhitect senior de securitate globală cu AWS Professional Services și este pasionat de securitate cibernetică și automatizare. El îi ajută pe clienți să construiască soluții sigure și conforme în cloud. În afara serviciului, îi plac călătoriile și sportul.

Rahul ShauryaRahul Shaurya este arhitect principal de date cu AWS Professional Services. El ajută și lucrează îndeaproape cu clienții construind platforme de date și aplicații analitice pe AWS. În afara serviciului, lui Rahul îi place să facă plimbări lungi cu câinele său Barney.

Bruno DheftoBruno Dhefto este un arhitect de securitate globală cu AWS Professional Services. El se concentrează pe a ajuta clienții să construiască arhitecturi sigure și de încredere în AWS. În afara serviciului, este interesat de cele mai recente actualizări tehnologice și de călătorii.

Nadim MajedNadim Majed este un arhitect de date în cadrul serviciilor profesionale AWS. El lucrează cot la cot cu clienții construindu-și platformele de date pe AWS. În afara serviciului, Nadim joacă tenis de masă și îi place să se uite la fotbal/fotbal.

Timestamp-ul:

Mai mult de la Învățare automată AWS