2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Tutkimuksen tausta : Viime vuosina syvän oppimisen haavoittuvuuden havaitsemistyökalut ovat saavuttaneet lupaavia tuloksia. Huippuluokan mallin F1-pistemäärä on 0,9 ja se on parempi kuin staattinen analysaattori. Tulokset ovat jännittäviä, koska syvällinen oppiminen voi mullistaa ohjelmistovarmuuden. Siksi alan yritykset, kuten IBM, Google ja Amazon, ovat erittäin kiinnostuneita ja investoivat voimakkaasti tällaisten työkalujen ja tietokokonaisuuksien kehittämiseen.
Olemassa olevat ongelmat : Vaikka syvän oppimisen haavoittuvuuden havaitseminen on lupaavaa, se ei ole vielä saavuttanut tietokonenäön ja luonnollisen kielen käsittelyn tasoa. Suuri osa nykyisestä tutkimuksesta keskittyy uusien syväoppimismallien kokeilemiseen ja niiden soveltamiseen sellaisiin tietokokonaisuuksiin kuin Devign- tai MSR-tietojoukot. Tiedämme kuitenkin hyvin vähän itse mallista, esim. minkä tyyppisiä ohjelmia malli pystyy käsittelemään tehokkaasti, pitäisikö meidän rakentaa malli jokaiselle haavoittuvuustyypille vai pitäisikö meidän rakentaa yhtenäinen malli kaikille haavoittuvuustyypeille hyvillä koulutustiedoilla Mitä sarja näyttää ja mitä tietoa malli käyttää päätöksiä tehdessään. Vastausten tietäminen näihin kysymyksiin voi auttaa meitä kehittämään, korjaamaan ja soveltamaan malleja paremmin. Näihin kysymyksiin on kuitenkin vaikea vastata syvän oppimisen mustan laatikon luonteen vuoksi. Paperin tarkoituksena ei ole tarjota täydellisiä ratkaisuja näihin ongelmiin, vaan tarkastella näitä tavoitteita.
Tieteellinen kysymys : Tässä artikkelissa tutkitaan ja toistetaan sarja huippuluokan syvän oppimisen haavoittuvuuden havaitsemismalleja ja luodaan tutkimuskysymyksiä näiden mallien ymmärtämiseksi. Tavoitteena on ottaa niistä oppia ja ohjeita tulevaisuuden mallien parempaan suunnitteluun ja virheenkorjaukseen.Paperi kehystää tutkimuskysymyksen ja jakaa sen kolmeen osa-alueeseen, nimittäinMallin ominaisuudet、harjoitustiedotjaMallin selitys . Erityisesti artikkelin ensisijaisena tavoitteena on ymmärtää syväoppimisen mahdollisuudet haavoittuvuuden havaitsemisongelmissa keskittyen erityisesti seuraaviin tutkimuskysymyksiin:
Paperin toinen tutkimuskohde on koulutusdata. Työn tavoitteena on ymmärtää, vaikuttaako harjoitustietojen koko ja koostumus mallin suorituskykyyn ja miten. Tarkemmin sanottuna artikkelissa rakennetaan seuraavat tutkimuskysymykset:
Lopuksi opinnäytetyön kolmas tutkimusalue on mallin tulkinta. Paperi käyttää SOTA-mallin tulkintatyökalua tutkiakseen:
tutkimussisältöä : Vastatakseen yllä oleviin kysymyksiin paperissa tutkitaan huippuluokan syväoppimismalleja ja toistetaan onnistuneesti 11 mallia niiden alkuperäisissä tietojoukoissa. Nämä mallit käyttävät erilaisia syväoppimisarkkitehtuureja, kuten GNN, RNN, LSTM, CNN ja Transformers. Näiden mallien vertailua varten paperi onnistui ajamaan 9 mallia kahdella suositulla tietojoukolla, Devign ja MSR. Syyt, miksi paperi valitsee nämä kaksi tietojoukkoa, ovat: (1) molemmat tietojoukot sisältävät todellisia projekteja ja haavoittuvuuksia (2) useimpien julkaisujen mallit on arvioitu ja viritetty Devign-tietojoukon avulla , ja dataan on merkitty haavoittuvuustyypit, mikä on ratkaisevan tärkeää tutkimuskysymyksemme kannalta. Huolellisesti suunniteltujen kokeiden ja uhkien huomioimisen kautta paperissa saatiin tuloksia kuuteen tutkimuskysymykseen. Kaiken kaikkiaan tämän artikkelin tutkimuspanokset sisältävät:
Edistyneimpien syväoppimismallien keräämiseksi artikkelissa tutkittiin artikkeleita vuosilta 2018–2022 ja viitattiin Microsoftin CodeXGLUE-luokitukseen ja IBM:n vikojen havaitsemisen D2A-luokitukseen. Paperi käytti kaikkia saatavilla olevia avoimen lähdekoodin malleja ja toisti onnistuneesti 11 mallia. Täydellinen luettelo malleista sekä syyt siihen, miksi emme pystyneet toistamaan joitain malleja, sisältyy paperin tietojen replikointipakettiin.
Kuten yllä olevasta taulukosta näkyy, toistetut mallit kattavat erilaisia syvän oppimisen arkkitehtuuria. Devign ja ReVeal käyttävät GNN:ää ominaisuuskaavioissa, integroivat ohjausvirran, tietoriippuvuudet ja AST:n. ReGVD käyttää GNN:ää tokeneissa. Code2Vec käyttää monikerroksista perceptronia (MLP) AST:ssa. VulDeeLocator ja SySeVR ovat RNN- ja Bi-LSTM-pohjaisia sekvenssimalleja. Viimeaikainen syväoppimisen havaitseminen käyttää esikoulutettuja muuntajia, mukaan lukien CodeBERT, VulBERTa-CNN, VulBERTa-MLP, PLBART ja LineVul.
Vastauksena artikkelin tutkimuskysymyksiin työ valitsi Devign- ja MSR-aineistot. Paperi tutkii näitä 11 mallia niiden alkuperäisissä kirjoituksissa käytetyillä aineistoilla, jotka on esitetty yllä olevassa taulukossa. Paperissa havaittiin, että Devign-tietojoukkoa on käytetty 8 mallin arvioimiseen ja virittämiseen. Tietojoukko on tasapainotettu tietojoukko, joka sisältää suunnilleen saman määrän haavoittuvia ja ei-haavoittuvia esimerkkejä, yhteensä 27 318 tietopistettä (jokaista esimerkkiä kutsutaan myös tietopisteeksi). LineVul käyttää MSR-tietojoukkoa, joka on äskettäin saatavilla oleva tietojoukko. Tietojoukko on epätasapainoinen ja sisältää 10 900 haavoittuvaa esimerkkiä ja 177 736 ei-haavoittuvaa esimerkkiä. Esimerkeissä on lähdeprojektinsa sekä Common Weakness Enumeration (CWE) -merkinnät, jotka osoittavat haavoittuvuuden tyypin. Paperi käyttää näitä aineiston ominaisuuksia muotoillessaan joitakin tutkimuskysymyksiä.
Paperi toistaa mallin tulokset alkuperäisen tietojoukon ja asetusten perusteella yllä olevan taulukon mukaisesti. Niiden joukossa sarakkeet A, P, R ja F edustavat yleisesti käytettyjä indikaattoreita syvän oppimisen haavoittuvuuden havaitsemisessa, mukaan lukien tarkkuus, tarkkuus, muistaminen ja F1-pisteet. Alkuperäiseen paperiin verrattuna paperin jäljennöstuloksissa on yleensä 2 % laskentavirhe. Erityistapauksia ovat ReVeal, jossa kirjoittajat vahvistivat, että tuloksemme korjasivat alkuperäisen paperin tietovuotovirheen, ja Devign, jossa paperi käytti kolmannen osapuolen replikoitua koodia (julkaisija Chakaborthy et al.), koska alkuperäinen Devign-koodi ei ollut avoin lähdekoodi.