Kasu:
- Oskus mõista, et tehisintellekt laiendab audiitori ulatust, kuid ei asenda seda ning on kasulik kategooriate skaneerimisel ja koostamise leidmisel.
- Võimalus ära tunda, et tehisintellekt on jätnud märkamata algse haavatavuse ja äriloogika vea ning et ladus "turvaline" avaldus ei anna kinnitust
- Võimalus klassifitseerida leide nende tõsiduse astme järgi ja mõista, et lõpliku heakskiidu ja ametialase vastutuse kannab pädev audiitor.
Turvaaudit (tarkade lepingute süstemaatiline uurimine haavatavuste tuvastamiseks) on Web3 kõige vastutusrikkam töö. Üks audiitori vahele jäänud rida võib kaasa tuua miljonite dollarite suuruse kahju. Selles üksuses saate teada, kuidas kasutada tehisintellekti auditi assistendina; Õpime vihjete loomisest kuni leidude konspekti kirjutamiseni. Kuid kõige kriitilisem lause on järgmine: AI ei kontrolli; See on abiline, mis teeb audiitori silma teravaks. Lõpliku heakskiidu annab pädev audiitor, kes võtab endale ametialase vastutuse.
Miks on auditeerimine turvalisuse seisukohalt kriitiline?
Auditiaruanne kinnitab projektile ja investoritele, et "see kood on üle vaadatud". Kui see kinnitus on vale, on tagajärjed katastroofilised: ära kasutatud protokoll, rahastuse kaotamine, projekt kokku kukkunud. Seetõttu on tehisintellekti kasutamine kontrollimisel selle mooduli kõige ettevaatlikum osa. AI laiendab audiitori ulatust (tuletab meelde rohkem mustreid, loeb kiiremini), kuid ei asenda audiitorit.
Miks see läbi ei lähe? Sest:
- AI ei näe unikaalset/uut haavatavust, mida treeningandmetes pole.
- AI jätab sageli märkamata protokolli äriloogika vea – et kood on tehniliselt õige, kuid majanduslikult kasutatav.
- AI võib anda vale kindlustunde, öeldes soravas keeles „ohutu”; See on kõige ohtlikum tulemus.
AI kasutamise kihid kontrolli all
1. Esialgne skannimine ja mustri meeldetuletus. AI läbib tuntud haavatavuse mustreid nagu kontrollnimekiri: taassisenemine, juurdepääsukontroll, oraakliga manipuleerimine, eeskätt. See tagab, et audiitor ei jäta ühtegi kategooriat vahele.
2. Koodi selgitus. Keerulise funktsiooni selgitamine tehisintellektile lihtsas keeles võimaldab audiitoril loogikast kiiresti aru saada; aga kirjeldust võrreldakse alati koodiga.
3. Leidude mustandi kirjutamine. Kui audiitor leiab haavatavuse, säästab tehisintellekt aruande mustandi (kirjeldus, mõju, pakutud lahendus) kirjutamise aega.
4. Vastuhüpoteesi genereerimine. Küsige AI-lt "kuidas saab seda funktsiooni kuritarvitada?" "Küsimine" tuletab meile meelde agressiivset perspektiivi.
Tähelepanu: see, et tehisintellekt ütleb: "Ma ei leidnud selles koodis ühtegi haavatavust", EI tähenda, et "see kood on ohutu". Tõend puudumise kohta ei ole tõendite puudumine. Asjaolu, et tehisintellekt ei leia midagi, ei muuda audiitori jaoks selle valdkonna uurimist tarbetuks.
Raskusastmete leidmine
Auditi leiud liigitatakse nende raskusastme järgi. AI peaks kasutama seda raamistikku mustandite loomisel:
Tase
Tähendus
näide
kriitiline
Vahetult võimalik fondi kaotus/sulgus
Raha väljavõtmine taassisenemisega
kõrge
Teatud tingimustel tõsine mõju
Volitamata printimine (münt)
keskmine
Piiratud mõju või raske seisund
Väike kaotus Oracle'i kõrvalekaldega
madal
Väike risk, hea tava rikkumine
Sündmuse ülekanne puudub
Teave
Mitteturvalisus, loetavus
NatSpeci puudumine
Nõrk viip / Tugev viip
Nõrk viip:
Kas see leping on ohutu?
See küsimus sunnib tehisintellekti tegema absoluutset ja põhjendamatut otsust, nagu "jah/ei" – täpselt seda, mida me ei taha.
Võimas viip:
Teie roll: targa lepingu vanema audiitori assistent. Turvalisuse tagamiseks skannige järgmine leping. Läbige ükshaaval järgmised kategooriad: taassisenemine, juurdepääsukontroll, täisarvulised toimingud, sisendi valideerimine, oraakli/välised andmed, eeskätt, gaasi piirang. Iga LEIDU kohta: (1) asjakohane koodirida, (2) põhjusoht, (3) hinnanguline tõsidus (kriitiline/kõrge/keskmine/madal), (4) lahendusettepanek. Need on HÜPOTEESID, MIS ON KINNITATUD; Ärge andke "ohutut" otsust. Märkige need valdkonnad, milles te pole kindel, öeldes selgelt "las audiitor kinnitab".
Neli kopeeritavat malli
1) Kategooriapõhine sirvimine:
Skannige seda lepingut järgmiste kategooriate jaoks: taassisenemine, juurdepääsukontroll, täisarvude ületäitumine, sisendi valideerimine, oraakli sõltuvus, eeskätt, DoS/gaas. Iga kategooria kohta öelge "riski ei ole/ei ole/ma pole kindel" ja ühendage oma põhjendus koodis oleva reaga. Ärge langetage lõplikku otsust.
2) Vastuhüpotees ründaja vaatenurgast:
Mõelge nagu ründaja: kuidas seda funktsiooni kuritarvitada? Kirjutage iga stsenaarium samm-sammult ja märkige, millised tingimused on vajalikud. Need stsenaariumid on hüpoteesid, mida tuleb testida; ÄRGE genereerige tegelikku ärakasutamiskoodi, vaid kirjeldage riski.
3) Tulemuste aruande projekt:
Teatage järgmisest kontrollitud leiust ametlikus auditi keeles: pealkiri, tõsidus, kirjeldus, mõju, mõjutatud kood, reprodutseerimise sammud, pakutud lahendus. Kasuta mõõdetud ja tehnilist keelt; liialdus. Oletame, et leiu kinnitab audiitor, ära tee uut leidu.
4) Parandage kinnitus:
Allpool on haavatavus ja arendaja rakendatud parandus. Uurige, kas parandus kaob haavatavuse; märkige, kas see tekitab uue kõrvalmõju või haavatavuse. Ärge öelge kindlasti "suletud"; Lõpeta "tuleb testimisega kinnitada".
Kolm miniümbrist (numbrites)
Juhtum 1 – AI takistas kategooriate hüppamist. Audiitor kavatses keskenduda 400-reale lepingule ja jätta oraakli kategooria vahele. AI kategooria skaneerimine andis hoiatuse, et "hinnaandmed pärinevad ühest allikast, mis on avatud manipuleerimiseks". Audiitor uuris seda ja leidis, et tegemist on tõepoolest keskmise riskiga. Õppetund: AI säilitab katvuse distsipliini.
Juhtum 2 – vale "ohutu" kinnitus. Teine meeskond küsis tehisintellektilt "kas see on ohutu?" ta küsis; "Tundub, et olulist probleemi ei ole," ütles AI. Meeskonna kontroll oli kerge. Seejärel leidis sõltumatu audiitor äriloogika vea: arvutus, mis oli tehniliselt õige, kuid mille stiimuleid oli võimalik ära kasutada. Õppetund: AI jätab vahele äriloogika vea; Teda ei saa usaldada ütlemas "ohutu".
Juhtum 3 – aruande koostamine säästis 3 tundi. Audiitor kulutas pool päeva 8 leiust käsitsi teatades. Kui ma kontrollitud leiud AI-le andsin ja ametliku mustandi printisin, vähenes aeg ~3 tunni võrra; Audiitor pühendas aega süvenemisele. Õppetund: AI on aruandluses ohutu ja tõhus, sest leiud on juba inimlikult kontrollitud.
Äriloogika haavatavus: AI pimeala
Kõige kallimad haavatavused ei tule sageli mitte koodi tehnilisest veast, vaid äriloogika ärakasutatavusest: preemiakonto ümardamine, hääle kiirlaenu kaaperdamine, hetkeline manipuleerimine hinnaga. Need on juhtumid, kus kood töötab "õigesti", kuid protokolli saab säästlikult petta. Tõenäoliselt jätab tehisintellekt sellistest vigadest märkamata – eriti protokollispetsiifilised. Seetõttu on äriloogika ülevaatus audiitori kõige inimmahukam valdkond ja kõige vähem sõltuv tehisintellektist.
Vihje: küsige tehisintellektilt "kuidas saab selle protokolli majanduslikke stiimuleid ära kasutada?" ja kasutage lähtepunktina esile kerkivaid stsenaariume – kuid pidage meeles, et teie ja teie meeskond peaksite tegema tõelise analüüsi.
Levinud vead
- Küsige tehisintellektilt "kas see on ohutu?" Oma jah-sõna küsimine ja usaldamine. Absoluutne otsustus ei ole vajalik.
- Ülevaatuse peatamine, kui AI ütleb "Ma ei leidnud seda". Puudumine ei ole tõend.
- Äriloogika ülevaatuse delegeerimine tehisintellektile. See on tema suurim pimeala.
- Ei kasuta iseseisvaid tööriistu (Slither jne). AI-st üksi ei piisa.
- Tehisintellekti tehtud leiu lisamine aruandesse ilma seda kontrollimata. Hallutsinatsioonide oht.
- Proovin panna kontrollivastutuse AI-le. Vastutus lasub eksperdil.
Kokkuvõttes
- Audit on ohutuse seisukohalt kriitiline; AI laiendab audiitori ulatust, kuid ei asenda seda.
- Tehisintellektil puudub algne haavatavus ja äriloogika viga; "Ohutu" ütlemine ei anna kinnitust.
- Leiud liigitatakse raskusastme järgi; AI on kasulik mustandite loomisel.
- Vastuhüpotees ja kategooriate sõelumine säilitavad kaasamise distsipliini.
- Lõplik heakskiit ja professionaalne vastutus lasub alati pädeval audiitoril.
Rakenduse ülesanne
Otsige üles lepingu näidis, mis sisaldab teadaolevat haavatavust (hariduslikel eesmärkidel on avatud lähtekoodiga saadaval "haavatatavate lepingute" näited). Rakendage AI-le viip "Kategooriapõhine skannimine". Pange tähele, kas tehisintellekt: (1) leidis tõelise haavatavuse, (2) tegi väljamõeldud/valed järeldused, (3) tegi absoluutseid otsuseid, näiteks "turvaline". Seejärel võrrelge seda staatilise analüüsi tööriistaga.
kontrollnimekiri
- [ ] Küsige tehisintellektilt "kas see on ohutu?" Selle asemel tegin kategooriapõhise skaneerimise.
- [ ] Käsitlesin iga leidu hüpoteesina.
- [ ] Tegin äriloogika ülevaate ise/tiim.
- [ ] Ristvalideerisin selle sõltumatu staatilise analüüsi tööriistaga.
- [ ] Olen kinnitanud, et tehisintellekt ei koosta leide.
- [ ] Klassifitseerisin leiud raskusastme järgi.
- [ ] Nõustun, et lõpliku heakskiidu annab pädev audiitor.