Kasu:
- Võimalus ära tunda levinud haavatavuse mustreid, nagu taassisenemine, juurdepääsukontroll, oraakliga manipuleerimine ja eeskätt ning neid skannida staatilise analüüsi tööriistaga + tehisintellekt + inimene
- Võimalus teha vahet tehisintellekti tugevuste vahel tööriista väljundi selgitamisel ning valepositiivsete ja MEV-i ja äriloogika nõrkade külgede prioriseerimisel
- Mõistke, et "puhas skannimine" ei ole turvasertifikaat, et skannimine on vaid üks kontrollikiht
Auditi terviklikku distsipliini nägime eelmises üksuses. Selles üksuses keskendume tehnilisemale teemale: haavatavuse skannimine – koodis tuntud haavatavuse mustrite süstemaatiline otsimine. Siin kasutame AI-d koos staatilise analüüsi tööriistadega assistendina, mis skannib ja kirjeldab teadaolevaid haavatavuse mustreid. Eesmärk: õppida süvitsi tundma levinumaid turvaauke ja teha vahet, kus on AI usaldusväärne ja kus ebapiisav nende skannimisel.
Staatiline ja dünaamiline skaneerimine
Skannimist on kahte tüüpi. Staatiline analüüs – koodi uurimine ilma seda käivitamata: sellised tööriistad nagu Slither ja Mythril skannivad lepingukoodi ja märgistavad teadaolevad mustrid. Dünaamiline/sümboolne analüüs (koodi käivitamine erinevate sisenditega või selle matemaatiline uurimine): fuzzing (juhusliku sisendiga pommitamine) ja sümboolne täitmine (kõigi võimalike teede uurimine) kuuluvad sellesse rühma.
AI ei asenda neid tööriistu, vaid täiendab neid: kui sõiduk annab hoiatuse, selgitab tehisintellekt hoiatust lihtsas keeles; AI võib meelde tuletada, kui tööriist jätab mustri vahele; Kuid AI üksi ei saa garanteerida, kui palju see skannib. Õige töövoog: tööriist + AI + inimene.
Näpunäide. Andke tehisintellektile staatilise analüüsi tööriista väljund (nt Slitheri aruanne) ja küsige "selgitage iga hoiatus lihtsas keeles, millised on tõelised riskid ja millised võivad olla valepositiivsed?" küsi. Tehisintellekt on hindamatu väärtusega tööriistade väljundi inimestele arusaadavaks ja prioriteediks muutmisel.
Levinumad haavatavuse mustrid
1. Taassisenemine. Kui funktsioon kutsub välja välislepingu ilma selle olekut värskendamata, saab kutsutud leping tagasi minna, sama funktsiooni uuesti käivitada ja fondi mitu korda välja võtta. Lahendus: kontrollide-efektide-interaktsioonide järjekord ja taassisenemise valvur.
2. Juurdepääsu kontrolli puudumine. Kriitiline funktsioon (väljavõtt, väljavõtmine, täiendamine) tehakse kogemata avalikuks. See on üks levinumaid ja kulukamaid vigu.
3. Oraakli manipuleerimine. Lepingu pime tuginemine välisele hinnaallikale (oraakel). Ründaja manipuleerib koheselt hinnaga ja petab protokolli. Lahendus: ajaliselt kaalutud keskmine hind (TWAP), mitme allikaga.
4. Täisarvu ülevool/allalangemine. Kui arv ületab maksimaalse lubatud väärtuse ja naaseb algusesse. Modern Solidity püüab enamuse sellest automaatselt kinni, kuid risk jääb madala tasemega (kooste)koodi.
5. Eesjooks. Tehingud ilmuvad avalikus kogumis (mempool) enne nende kinnitamist; Ründaja näeb teie tehingut ja sisestab selle ette oma tehingu. MEV (Maximal Extractable Value – tehingujärjestusest eraldatud väärtus) on selle teema üldnimi.
6. Teenuse keelamine (DoS). Silmus muutub liiga kalliks ja muudab funktsiooni kasutuskõlbmatuks või aadressi sõltuvus lukku.
7. Uuenda riskid. Salvestuskokkupõrge ja volituste kuritarvitamine täiendatavates lepingutes.
haavatavus
AI skaneerimise usaldus
Miks
taassisenemine
kõrge
Tuntud selge muster
juurdepääsu kontroll
kõrge
Hallitust saab skaneerida
Täisarvulised tehted
kõrge
standardne juhtimine
Oraakli manipuleerimine
keskmine
Nõuab konteksti
Eessõit/MEV
Keskmine-Madal
protokolli spetsiifiline
äriloogika viga
madal
Autentne, kontekstuaalne
Nõrk viip / Tugev viip
Nõrk viip:
Kas selles koodis on lünk?
Võimas viip:
Teie roll: turvakontrolli assistent. Skannige allolevat lepingut järgmiste teadaolevate mustrite ja kõigi jaoks "riskis/pole/ebakindel" jaoks: taassisenemine, juurdepääsukontroll, täisarvulised toimingud, oracle-sõltuvus, eeskätt, DoS, täiendusturvalisus. Siduge iga määramine vastava reaga ja selgitage, miks on oht. Need on hüpoteesid, mida KONTROLLITAKSE staatilise analüüsi tööriista ja audiitoriga. Pange tähele, et võib esineda valepositiivseid tulemusi.
Neli kopeeritavat malli
1) Tööriista väljundi kirjeldus:
Allpool on staatilise analüüsi tööriista (Slither) aruanne. Selgitage iga hoiatust lihtsas keeles: mida see tähendab, kas see on reaalne oht või võimalik valepositiivne tulemus, mis peaks olema selle prioriteet? Ära tee kindlat otsust; Prioriteet audiitori kinnitusel.
2) Taassisenemisele keskendunud sõeluuring:
Selles lepingus leiate kõik funktsioonid, mis teevad väliskõnesid. Uurige, kas igaühe puhul järgitakse kontrollide-mõjude-interaktsioonide järjekorda ja kas on olemas taassisenemise valvur. Näidake riskantsemaid joonega. Märkige, kui te pole kindel; Kasutuskoodi genereerimine.
3) Juurdepääsu kaart:
Loetlege kõik selles lepingus olevad välised/avalikud funktsioonid ja määrake igaühe jaoks "kes saavad helistada" (kõik/omanik/roll). Tehke kriitilised toimingud (väljavõte, printimine, uuendamine) ja märkige need, mille juurdepääsukontroll on nõrk. Esitage see koos tabeliga.
4) Valepositiivne eliminatsioon:
Mõelge, miks see skannimishoiatus ei pruugi olla PÄRIS risk (valepositiivne): milline kontekst või kooditingimus muudaks selle hoiatuse kehtetuks? Kuid ärge öelge "pole absoluutselt mingit probleemi"; Loetlege punktid, mis vajavad kinnitust.
Kolm miniümbrist (numbrites)
Juhtum 1 – sõiduk + tehisintellekt kahekordistas tõhusust. Üks meeskond juhtis Slitherit 12 lepinguga projektis ja sai 140 hoiatust. Kui AI oli hoiatusi selgitanud ja tähtsuse järjekorda seadnud, selgus, et 140 hoiatusest 95 olid valepositiivsed; Meeskond keskendus 45 reaalsele kandidaadile. Triaažiaeg vähenes 2 päevalt 5 tunnini. Õppetund: AI on võimas sõiduki väljundi humaniseerimisel.
Juhtum 2 – AI kaaperdas MEV-i. DEX-i (detsentraliseeritud vahetus) lepingus leidis AI standardmustrid puhtana, kuid ei tuvastanud eesrindlikku haavatavust; sest see oli spetsiifiline protokolli toimingute järjekorrale. Jäädvustatud inimaudiitor ja simulatsioon. Õppetund: Protokollispetsiifilised riskid, nagu MEV / eeskätt, on AI nõrk valdkond.
Juhtum 3 – välditi ajaraiskamist valepositiivsele tulemusele. Meeskond pääses tarbetust ümberkirjutamisest, kui AI selgitas, et uuesti sisenemise hoiatus oli tegelikult valepositiivne (funktsioon oli juba kaitstud). Kuid meeskond kinnitas seda siiski ühe testiga. Õppetund: AI prioriteedid; Kinnitus tuleb jälle koos testimisega.
Skaneerimise piirangud
Skaneerimine leiab teadaolevaid mustreid. Ei tööriist ega AI ei garanteeri uut, ainulaadset või protokollispetsiifilist haavatavust. Seetõttu on sõelumine osa auditist; mitte tema ise. Mõte, et "skannimine on puhas, seega tähendab see ohutut" on üks ohtlikumaid väärarusaamu selles valdkonnas. Süvendamine korjab üles madalal rippuvad viljad; Sügavate ja ainulaadsete riskide jaoks on inimteadmised, testimine, segamine ja ametlik auditeerimine hädavajalikud.
Ettevaatust. Skannimistööriista või tehisintellekti "puhas" aruanne ei ole turvasertifikaat. Selle esitlemine - eriti investoritele - on eksitav ja ebaeetiline.
Levinud vead
- Sõelumise asendamine kontrolliga. Skaneerimine on üks kiht, mitte kogu.
- AI kasutamine ilma tööriistadeta. Staatiline analüüs + AI + inimese töö koos.
- Valepositiivsete tulemuste kõrvaldamine ilma kinnituseta. Iga ekraan on testitud/inimese kontrollitud.
- Protokollispetsiifiliste riskide (MEV) möödahiilimine tehisintellektile tuginedes. AI nõrk ala.
- Mõeldes "puhas skannimine" = "turvaline". See ei leia tundmatut.
- Kasutuskoodi genereerimine. Ainult kaitsev riskikirjeldus on õigustatud.
Kokkuvõttes
- Haavatavuse skannimine otsib teadaolevaid haavatavuse mustreid koos sõiduki + tehisintellekti + inimesega.
- AI on võimas staatilise analüüsi tööriista väljundi selgitamisel ja tähtsuse järjekorda seadmisel.
- Usaldusväärne selgete mustritega, nagu naasmine ja juurdepääsu kontroll; Nõrk MEV-s ja äriloogikas.
- Isegi valepositiivsete tulemuste kõrvaldamine nõuab kinnitust.
- "Puhas skannimine" ei ole turvasertifikaat; See ei asenda järelevalvet.
Rakenduse ülesanne
Käivitage staatilise analüüsi tööriist lepingu näidisel (võimaluse korral) või leidke valmis Slitheri aruanne. Rakendage AI-le viip "tööriista väljundi kirjeldus". Hinnake, kas tehisintellekt: (1) selgitab hoiatusi õigesti, (2) on valepositiivsete väärtuste eristamisel mõistlik ja (3) jätab protokollispetsiifilise riski vahele. Täitke tabelis veerud „Leitud sõiduk / AI selgitatud / inimene kinnitas“.
kontrollnimekiri
- [ ] Positsioneerisin luugi juhtelemendi kihina.
- [ ] Kasutasin koos staatilise analüüsi tööriista + AI + inimest.
- [ ] Otsisin teadaolevaid mustreid kategooriate kaupa.
- [ ] Kõrvaldasin valepositiivsed tulemused kinnitusega.
- [ ] Toetusin inimestele sellistes nõrkades valdkondades nagu MEV/äriloogika.
- [ ] Ma ei pakkunud "puhast pühkimist" tagatiseks.
- [ ] Töötasin ainult kaitseotstarbel; Ma ei loonud ärakasutusi.