Haittaohjelmien tunnistus ja luokittelu Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Haittaohjelmien tunnistus ja luokittelu Amazon Rekognitionin avulla

Erään artikkeli Cybersecurity Venturesin toimesta Ransomwaren (erilainen haittaohjelma, joka voi estää käyttäjiä pääsemästä heidän tietoihinsa, elleivät he maksa lunnaita) aiheuttamat vahingot kasvoivat 57-kertaisesti vuonna 2021 vuoteen 2015 verrattuna. Lisäksi sen ennustetaan maksavan uhreilleen 265 miljardia dollaria ( USD) vuosittain vuoteen 2031 mennessä. Tätä kirjoitettaessa Ransomware-hyökkäysten taloudellinen vero on hieman yli 50th sijasta niiden maiden luettelossa BKT.

Haittaohjelmien aiheuttaman uhan vuoksi on kehitetty useita tekniikoita haittaohjelmahyökkäysten havaitsemiseen ja hillitsemiseen. Kaksi yleisintä nykyään käytettyä tekniikkaa ovat allekirjoitukseen ja käyttäytymiseen perustuva tunnistus.

Allekirjoitukseen perustuva tunnistus määrittää tunnetulle haitalliselle kohteelle yksilöllisen tunnisteen, jotta kohde voidaan tunnistaa tulevaisuudessa. Se voi olla tiedostoon liitetty ainutlaatuinen koodimalli tai tunnetun haittaohjelmakoodin tiiviste. Jos tunnettu kuvion tunniste (allekirjoitus) löydetään skannattaessa uusia objekteja, objekti merkitään haitalliseksi. Allekirjoitukseen perustuva tunnistus on nopeaa ja vaatii vähän laskentatehoa. Se taistelee kuitenkin polymorfisia haittaohjelmatyyppejä vastaan, jotka muuttavat jatkuvasti muotoaan välttääkseen havaitsemisen.

Käyttäytymiseen perustuva tunnistus arvioi epäilyttävät kohteet niiden käyttäytymisen perusteella. Artefakteja, joita haittaohjelmien torjuntatuotteet voivat harkita, ovat prosessivuorovaikutukset, DNS-kyselyt ja verkkoyhteydet objektista. Tämä tekniikka toimii paremmin polymorfisten haittaohjelmien havaitsemisessa kuin allekirjoituspohjainen, mutta sillä on joitain haittoja. Sen arvioimiseksi, onko objekti haitallinen, sen on suoritettava isäntäkoneessa ja luotava tarpeeksi artefakteja, jotta haittaohjelmien torjuntatuote havaitsee sen. Tämä sokea piste voi antaa haittaohjelman saastuttaa isäntäkoneen ja levitä verkon läpi.

Nykyiset tekniikat ovat kaukana täydellisyydestä. Tämän seurauksena tutkimus jatkuu tavoitteena kehittää uusia vaihtoehtoisia tekniikoita, jotka parantavat kykyämme torjua haittaohjelmia. Yksi viime vuosina noussut uusi tekniikka on kuvapohjainen haittaohjelmien tunnistus. Tämä tekniikka ehdottaa syväoppivan verkon kouluttamista tunnetuilla haittaohjelmien binäärien kanssa, jotka on muunnettu harmaasävykuviksi. Tässä viestissä esittelemme, kuinka voit suorittaa kuvapohjaisten haittaohjelmien havaitsemisen Amazonin tunnistus Muokatut etiketit.

Ratkaisun yleiskatsaus

Monien luokittelumallin ja haittaohjelmien tunnistusmallin kouluttamiseksi valmistelemme ensin koulutus- ja testitietojoukot, jotka sisältävät erilaisia ​​haittaohjelmatyyppejä, kuten flooderia, mainosohjelmia, vakoiluohjelmia jne. sekä hyvänlaatuisia kohteita. Muunnamme sitten kannettavat suoritettavat (PE) -objektit harmaasävykuviksi. Seuraavaksi koulutamme mallin kuvien avulla Amazon Rekognitionilla.

Amazon Rekognition on palvelu, jonka avulla on helppo suorittaa erilaisia ​​visuaalisia analyysejä sovelluksissasi. Rekognition Image auttaa sinua rakentamaan tehokkaita sovelluksia miljoonien kuvien etsimiseen, tarkistamiseen ja järjestämiseen.

Amazon Rekognition Custom Labels perustuu Rekognitionin olemassa oleviin ominaisuuksiin, jotka on jo koulutettu kymmeniin miljooniin kuviin useissa luokissa.

Amazon Rekognition Custom Labels on täysin hallittu palvelu, jonka avulla käyttäjät voivat analysoida miljoonia kuvia ja käyttää niitä monien erilaisten koneoppimisongelmien ratkaisemiseen, mukaan lukien kuvien luokittelu, kasvojen tunnistus ja sisällön valvonta. Kulissien takana Amazon Rekognition perustuu syvään oppimistekniikkaan. Palvelu käyttää konvoluutiohermoverkkoa (CNN), joka on valmiiksi koulutettu suurelle merkitylle tietojoukolle. Altistumalla tällaiselle perustotuusdatalle algoritmi voi oppia tunnistamaan kuvioita useista eri aloista olevista kuvista ja sitä voidaan käyttää monissa teollisuuden käyttötapauksissa. Koska AWS ottaa vastuun malliarkkitehtuurin rakentamisesta ja ylläpidosta sekä sopivan koulutusmenetelmän valinnasta käsillä olevaan tehtävään, käyttäjien ei tarvitse käyttää aikaa koulutustehtävien edellyttämän infrastruktuurin hallintaan.

Ratkaisuarkkitehtuuri

Seuraava arkkitehtuurikaavio antaa yleiskatsauksen ratkaisusta.

Ratkaisu on rakennettu käyttämällä AWS-erä, AWS-veljeskuntaja Amazonin tunnistus. AWS Batchin avulla voit suorittaa satoja erälaskentatöitä Fargatessa. Fargate on yhteensopiva molempien kanssa Amazonin elastisten säiliöiden palvelu (Amazon ECS) ja Amazon Elastic Kubernetes Service (Amazon EKS). Amazon Rekognitionin mukautettujen tarrojen avulla voit käyttää AutoML:ää tietokonenäköön kouluttaaksesi mukautettuja malleja havaitsemaan haittaohjelmat ja luokittelemaan erilaisia ​​haittaohjelmaluokkia. AWS Step Functions -toimintoja käytetään tietojen esikäsittelyn järjestämiseen.

Tätä ratkaisua varten luomme esikäsittelyresurssit kautta AWS-pilven muodostuminen. CloudFormation-pinomalli ja AWS-erä-, Fargate- ja Step-toimintojen lähdekoodi ovat saatavilla GitHub-arkisto.

aineisto

Mallin kouluttamiseksi tässä esimerkissä käytimme seuraavia julkisia tietojoukkoja haitallisen ja hyvänlaatuisen poimimiseen Kannettava suoritettava (PE):

Suosittelemme lukemaan huolellisesti tietojoukkojen asiakirjat (Sophos/Reversing Labs README, PE-haittaohjelmien koneoppimistietojoukko) käsitelläksesi haittaohjelmaobjekteja turvallisesti. Halutessasi voit käyttää myös muita tietojoukkoja, kunhan ne tarjoavat haittaohjelmia ja hyvänlaatuisia objekteja binäärimuodossa.

Seuraavaksi käymme läpi seuraavat ratkaisun vaiheet:

  • Esikäsittele objektit ja muunna kuviksi
  • Ota esikäsittelyresurssit käyttöön CloudFormationin avulla
  • Valitse malli
  • Harjoittele mallia
  • Arvioi malli
  • Kustannukset ja suorituskyky

Esikäsittele objektit ja muunna kuviksi

Käytämme Step Functions -toimintoja organisoidaksemme objektin esikäsittelyn työnkulun, joka sisältää seuraavat vaiheet:

  1. Ota meta.db sqllite-tietokanta sorel - 20m S3-säihön ja muunna se .csv-tiedostoksi. Tämä auttaa meitä lataamaan .csv-tiedoston Fargate-säilöön ja viittaamaan metatietoihin, kun käsittelemme haittaohjelmaobjekteja.
  2. Ota esineet sorel-20m S3 -ämpäristä ja luo objektiluettelo csv-muodossa. Suorittamalla tämän vaiheen luomme sarjan .csv-tiedostoja, joita voidaan käsitellä rinnakkain, mikä vähentää esikäsittelyyn kuluvaa aikaa.
  3. Muunna esineet sorel-20m S3 -kauhasta kuviksi erilaisilla töillä. AWS Batch array -töillä on yhteiset parametrit haittaohjelmaobjektien muuntamiseksi kuviksi. Ne toimivat kokoelmana kuvanmuunnostöitä, jotka on jaettu useille isännille ja toimivat samanaikaisesti.
  4. Valitse mallikoulutukseen ennalta määrätty määrä kuvia, joissa on joukko töitä, jotka vastaavat haittaohjelmien luokkia.
  5. Samoin kuin vaiheessa 2, otamme hyvänlaatuiset objektit benign-160k S3 -ämpäristä ja luomme luettelon objekteista csv-muodossa.
  6. Vaiheen 3 tapaan muunnamme kohteet hyvänlaatuisesta 160k S3 -ämpäristä kuviksi, joissa on erilaisia ​​töitä.
  7. Amazon Rekognitionin oletuskiintiön mukautettujen tarrojen koulutukseen (250 XNUMX kuvaa) vuoksi valitse mallikoulutukseen ennalta määrätty määrä hyvänlaatuisia kuvia.
  8. Kuten seuraavassa kuvassa näkyy, kuvat tallennetaan S3-säihöön, joka on ensin osioitu haittaohjelmilla ja hyvänlaatuisilla kansioilla ja sitten haittaohjelmatyypeillä.
    Koulutus S3 ämpäri
    Koulutuksen tietojoukko

Ota esikäsittelyresurssit käyttöön CloudFormationin avulla

Edellytykset

Seuraavat edellytykset vaaditaan ennen kuin voit jatkaa:

Resurssien käyttöönotto

CloudFormation-pino luo seuraavat resurssit:

parametrit

  • STACK_NAME – CloudFormation-pinon nimi
  • AWS_REGION – AWS-alue, jossa ratkaisu otetaan käyttöön
  • AWS_PROFIILI – Nimetty profiili, joka koskee AWS CLI -komentoa
  • ARTEFACT_S3_BUCKET – S3-ämpäri, johon infrastruktuurikoodi tallennetaan. (Ämpäri on luotava samalle alueelle, jossa ratkaisu asuu).
  • AWS_ACCOUNT – AWS-tilin tunnus.

Käytä seuraavia komentoja ottaaksesi käyttöön resurssit

Varmista, että telakointiagentti on käynnissä koneessa. Käyttöönotot tehdään bash-skripteillä, ja tässä tapauksessa käytämme seuraavaa komentoa:

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

Tämä rakentaa ja ottaa käyttöön paikalliset artefaktit, joihin CloudFormation-malli (esim. cloudformation.yaml) viittaa.

Harjoittele mallia

Koska Amazon Rekognition huolehtii mallikoulutuksesta puolestasi, tietokonenäköä tai erittäin erikoistunutta ML-osaamista ei tarvita. Sinun on kuitenkin toimitettava Amazon Rekognitionille ämpäri, joka on täytetty asianmukaisesti merkittyillä syöttökuvilla.

Tässä viestissä koulutamme kahta riippumatonta kuvien luokitusmallia mukautettujen tarrojen avulla:

  1. Haittaohjelmien tunnistusmalli (binääriluokitus) – tunnistaa, onko kohde haitallinen vai hyvänlaatuinen
  2. Haittaohjelmien luokittelumalli (moniluokkaluokitus) – tunnistaa tietyn haitallisen kohteen haittaohjelmaperhe

Mallikoulutuksen esittely

Seuraavassa ohjeessa luetellut vaiheet koskevat molempia malleja. Siksi sinun on suoritettava vaiheet kaksi kertaa, jotta voit kouluttaa molemmat mallit.

  1. Kirjaudu sisään AWS-hallintakonsoli ja avaa Amazon Rekognition console.
  2. Valitse vasemmasta ruudusta Käytä mukautettuja tarroja. Amazon Rekognition Custom Labels -aloitussivu näytetään.
  3. Valitse Amazon Rekognition Custom Labels -aloitussivulta Aloita.
  4. Valitse vasemmasta ruudusta Projektit.
  5. Valita Luo projekti.
  6. In Projektin nimi, anna projektillesi nimi.
  7. Valita Luo hanke luodaksesi projektisi.
  8. In Projektit -sivulla, valitse projekti, johon haluat lisätä tietojoukon. Projektisi tietosivu tulee näkyviin.
  9. Valita Luo tietojoukko. Luo tietojoukko sivu näytetään.
  10. In Aloitetaan konfigurointi, valitse Aloita yhdestä tietojoukosta antaa Amazon Rekognitionin jakaa tietojoukon harjoittelua ja testausta varten. Huomaa, että saatat päätyä erilaisiin testinäytteisiin kussakin mallin koulutusiteraatiossa, mikä johtaa hieman erilaisiin tuloksiin ja arviointimittareihin.
  11. Valita Tuo kuvia Amazon S3 -säiliöstä.
  12. In S3 URI, anna S3-säilön sijainti ja kansiopolku. Samaa esikäsittelyvaiheesta saatua S3-säilöä käytetään molempien tietojoukkojen luomiseen: haittaohjelmien tunnistus ja haittaohjelmien luokittelu. Haittaohjelmien tunnistustietojoukko osoittaa juureen (esim. s3://malware-detection-training-{account-id}-{region}/), kun taas haittaohjelmien luokitustietojoukko osoittaa haittaohjelmakansioon (ts. s3://malware-detection-training-{account-id}-{region}/malware) S3-kauhan. Harjoittelutiedot
  13. Valita Liitä kuviin tarrat automaattisesti kansion perusteella.
  14. Valita Luo tietojoukkoja. Projektisi tietojoukot-sivu avautuu.
  15. On Junamalli sivu, valitse Junamalli. Projektisi Amazon-resurssinimen (ARN) tulee olla kohdassa Valitse projekti muokkauslaatikko. Jos ei, anna projektisi ARN.
  16. In Haluatko kouluttaa malliasi? valintaikkuna, valitse Junamalli.
  17. Kun koulutus on suoritettu, valitse mallin nimi. Koulutus on päättynyt, kun mallin tila on TRAINING_COMPLETED.
  18. In Mallit -osiossa Käytä mallia -välilehteä aloittaaksesi mallin käytön.

Katso lisätietoja Amazon Rekognitionin mukautetuista tarroista Aloittaminen opas.

Arvioi malli

Kun koulutusmallit ovat valmiit, pääset arviointimittareihin valitsemalla Tarkista mittarit mallisivulla. Amazon Rekognition tarjoaa sinulle seuraavat mittarit: F1-pisteet, keskimääräinen tarkkuus ja yleinen muistaminen, joita käytetään yleisesti luokitusmallien suorituskyvyn arvioinnissa. Jälkimmäiset ovat tarrojen lukumäärän keskiarvoja.

In Etiketin tehokkuus -osiosta löydät näiden mittareiden arvot tunnistekohtaisesti. Lisäksi, jos haluat saada arvot Tosi positiivinen, Väärä positiivinen ja Väärä negatiivinen, valitse Näytä testitulokset.

Haittaohjelmien tunnistusmallin mittarit

Saimme seuraavat tulokset tasapainotetusta 199,750 XNUMX kuvan ja kahdella tunnisteella (hyvänlaatuinen ja haittaohjelma) sisältävästä tietojoukosta:

  • F1-pisteet – 0.980
  • Keskimääräinen tarkkuus - 0.980
  • Kokonaispalautus - 0.980

Haittaohjelmien tunnistusmallin mittarit

Haittaohjelmien luokitusmallin mittarit

Saimme seuraavat tulokset tasapainotetusta 130,609 11 kuvan ja 11 tunnisteella (XNUMX haittaohjelmaperhettä) sisältävästä tietojoukosta:

  • F1-pisteet – 0.921
  • Keskimääräinen tarkkuus - 0.938
  • Kokonaispalautus - 0.906

Haittaohjelmien luokitusmallin mittarit

Sen arvioimiseksi, toimiiko malli hyvin, suosittelemme sen suorituskyvyn vertaamista muihin alan vertailuarvoihin, jotka on koulutettu saman (tai ainakin samanlaisen) tietojoukon perusteella. Valitettavasti tätä viestiä kirjoitettaessa ei ole olemassa vertailevia tutkimusryhmiä, jotka ratkaisevat tämän ongelman käyttämällä samaa tekniikkaa ja samoja tietojoukkoja. Datatiedeyhteisössä mallin, jonka F1-pistemäärä on yli 0.9, katsotaan kuitenkin toimivan erittäin hyvin.

Kustannukset ja suorituskyky

Resurssien palvelimettomasta luonteesta johtuen kokonaiskustannuksiin vaikuttaa kunkin palvelun käyttöaika. Toisaalta suorituskykyyn vaikuttavat käsiteltävän tiedon määrä ja koulutusdatajoukon koon syöttäminen Amazon Rekognitionille. Kustannus- ja tehokkuusarvioinnissamme otamme huomioon seuraavan skenaarion:

  • Sorel-tietojoukosta luetteloidaan ja käsitellään 20 miljoonaa esinettä.
  • PE Malware Machine Learning Dataset -tietojoukosta on luetteloitu ja käsitelty 160,000 XNUMX objektia.
  • Koulutus-S240,000-ämpäriin kirjoitetaan noin 3 160,000 objektia: 80,000 XNUMX haittaohjelmaobjektia ja XNUMX XNUMX hyvänlaatuista objektia.

Tämän skenaarion perusteella mallien esikäsittelyn ja käyttöönoton keskimääräiset kustannukset ovat 510.99 USD. Sinulta veloitetaan lisäksi $4 USD/h jokaisesta mallin käyttötunnista. Löydät yksityiskohtaisen kustannuserittelyn osoitteesta arvio luotu kautta AWS -hinnoittelulaskin.

Suorituskyvyn kannalta nämä ovat mittauksemme tulokset:

  • ~2 tuntia esikäsittelyn valmistumiseen
  • ~40 tuntia haittaohjelmien havaitsemismallin koulutuksen suorittamiseen
  • ~40 h haittaohjelmien luokittelumallin koulutukseen

Siivota

Vältäksesi tulevia maksuja, pysäkki ja poistaa Amazon Rekognition -mallit ja poista esikäsittelyresurssit -sovelluksen kautta tuhota.sh käsikirjoitus. Seuraavat parametrit vaaditaan, jotta komentosarja suoritetaan onnistuneesti:

  • STACK_NAME – CloudFormation-pinon nimi
  • AWS_REGION – Alue, jossa ratkaisu otetaan käyttöön
  • AWS_PROFIILI – Nimetty profiili, joka koskee AWS CLI -komentoa

Käytä seuraavia komentoja suorittaaksesi ./malware_detection_deployment_scripts/destroy.sh käsikirjoitus:

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

Yhteenveto

Tässä viestissä osoitimme kuinka suorittaa haittaohjelmien havaitseminen ja luokittelu Amazon Rekognitionin avulla. Ratkaisut noudattavat palvelintonta mallia hyödyntäen hallittuja palveluita tietojen esikäsittelyyn, orkestrointiin ja mallin käyttöönottoon. Toivomme, että tämä viesti auttaa sinua jatkuvissa pyrkimyksissäsi torjua haittaohjelmia.

Tulevassa postauksessa näytämme käytännön käyttötapauksen haittaohjelmien havaitsemisesta käyttämällä tässä viestissä käytettyjä malleja.


Tietoja kirjoittajista

Edvin HallvaxhiuEdvin Hallvaxhiu on vanhempi maailmanlaajuinen turvallisuusarkkitehti AWS Professional Services -palveluista ja on intohimoinen kyberturvallisuudesta ja automaatiosta. Hän auttaa asiakkaita rakentamaan turvallisia ja yhteensopivia ratkaisuja pilveen. Työn ulkopuolella hän pitää matkustamisesta ja urheilusta.

Rahul ShauryaRahul Shaurya on päätietoarkkitehti, jolla on AWS Professional Services. Hän auttaa ja tekee tiivistä yhteistyötä asiakkaiden kanssa, jotka rakentavat tietoalustoja ja analyyttisiä sovelluksia AWS:lle. Työn ulkopuolella Rahul rakastaa pitkiä kävelylenkkejä koiransa Barneyn kanssa.

Bruno DheftoBruno Dhefto on maailmanlaajuinen turvallisuusarkkitehti, jolla on AWS Professional Services. Hän on keskittynyt auttamaan asiakkaita rakentamaan turvallisia ja luotettavia arkkitehtuureja AWS:ssä. Työn ulkopuolella häntä kiinnostavat uusimmat teknologiapäivitykset ja matkustaminen.

Nadim MajedNadim Majed on data-arkkitehti AWS:n asiantuntijapalveluissa. Hän työskentelee rinnakkain asiakkaiden kanssa, jotka rakentavat tietoalustojaan AWS:lle. Töiden ulkopuolella Nadim pelaa pöytätennistä ja rakastaa jalkapallon katsomista.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen