zisky:
- Schopnosť rozpoznať bežné vzorce zraniteľnosti, ako je opätovný vstup, kontrola prístupu, manipulácia s orákulom a front-run, a skenovať ich pomocou nástroja na statickú analýzu + umelá inteligencia + človek
- Schopnosť rozlišovať medzi silnými stránkami AI pri vysvetľovaní výstupu nástroja a uprednostňovaní falošne pozitívnych a slabých stránok v MEV a obchodnej logike
- Pochopte, že „čisté skenovanie“ nie je bezpečnostný certifikát, ale skenovanie je len jedna vrstva kontroly
Holistickú disciplínu auditu sme videli v predchádzajúcej jednotke. V tejto časti sa zameriavame na technickejšiu tému: skenovanie zraniteľností — systematické vyhľadávanie známych vzorcov zraniteľnosti v kóde. Tu budeme používať AI spolu s nástrojmi na statickú analýzu ako asistenta, ktorý skenuje a popisuje známe vzorce zraniteľnosti. Cieľ: Do hĺbky spoznať najčastejšie slabé miesta a rozlíšiť, kde je AI spoľahlivá a kde je pri ich skenovaní nedostatočná.
Statické a dynamické skenovanie
Skenovanie je dvoch typov. Statická analýza – skúmanie kódu bez jeho spustenia: Nástroje ako Slither a Mythril skenujú kód zmluvy a označujú známe vzory. Do tejto skupiny patrí dynamická/symbolická analýza (spustenie kódu s rôznymi vstupmi alebo jeho matematické skúmanie): fuzzing (bombardovanie náhodným vstupom) a symbolické vykonávanie (preskúmanie všetkých možných ciest).
AI nenahrádza tieto nástroje, ale ich dopĺňa: keď vozidlo vydá varovanie, AI vysvetlí varovanie v jednoduchom jazyku; AI môže pripomenúť, keď nástroj vynechá vzor; Samotná AI však nemôže zaručiť, koľko skenuje. Správny pracovný postup: nástroj + AI + človek.
Tip: Poskytnite AI výstup nástroja na statickú analýzu (napr. správu Slither) a opýtajte sa „vysvetlite každé upozornenie v jednoduchom jazyku, ktoré sú skutočné riziká a ktoré by mohli byť falošne pozitívne?“ spýtaj sa. Umelá inteligencia je neoceniteľná v tom, aby bol výstup surových nástrojov pre ľudí zrozumiteľný a prioritný.
Najčastejšie vzorce zraniteľnosti
1. Reentrancy. Ak funkcia zavolá externú zmluvu bez aktualizácie jej stavu, volaná zmluva sa môže vrátiť späť, znova spustiť rovnakú funkciu a viackrát vybrať fond. Riešenie: príkaz kontroly-efektov-interakcií a stráženie opätovného vstupu.
2. Nedostatok kontroly prístupu. Kritická funkcia (výber, stiahnutie, aktualizácia) je náhodne zverejnená. Je to jedna z najčastejších a najdrahších chýb.
3. Manipulácia s Oracle. Slepé spoliehanie sa zmluvy na externý cenový zdroj (orákulum). Útočník okamžite manipuluje s cenou a oklame protokol. Riešenie: časovo vážená priemerná cena (TWAP), viaczdrojová.
4. Pretečenie/podpad celého čísla. Keď číslo prekročí maximálnu povolenú hodnotu a vráti sa na začiatok. Modern Solidity väčšinu z toho zachytí automaticky, ale riziko zostáva v nízkoúrovňovom (montážnom) kóde.
5. Predný chod. Transakcie sa objavia vo verejnom fonde (mempool) pred ich potvrdením; Útočník môže vidieť vašu transakciu a vložiť pred ňu svoju vlastnú transakciu. MEV (Maximal Extrahovateľná hodnota — hodnota extrahovaná zo sekvencie transakcií) je všeobecný názov tohto subjektu.
6. Odmietnutie služby (DoS). Slučka sa stáva príliš drahou a robí funkciu nepoužiteľnou alebo sa zablokuje závislosť od adresy.
7. Riziká aktualizácie. Kolízia úložiska a zneužitie právomocí v zmluvách s možnosťou rozšírenia.
zraniteľnosť
AI skenovanie dôveru
Prečo?
opätovný vstup
vysoká
Dobre známy, jasný vzor
kontrola prístupu
vysoká
Pleseň je možné skenovať
Celočíselné operácie
vysoká
štandardné ovládanie
Oracle manipulácia
stredná
Vyžaduje kontext
Predný chod/MEV
Stredne nízka
špecifický pre protokol
chyba obchodnej logiky
nízka
Autentické, kontextové
Slabá výzva / Silná výzva
Slabá výzva:
Je v tomto kóde medzera?
Výkonná výzva:
Vaša úloha: asistent bezpečnostnej kontroly. Naskenujte zmluvu nižšie, aby ste našli nasledujúce známe vzory a pre každý z nich „v riziku/nie/neistý“: opätovný vstup, kontrola prístupu, celočíselné operácie, závislosť na oracle, front-running, DoS, aktualizácia zabezpečenia. Prepojte každé rozhodnutie s príslušným riadkom a vysvetlite, prečo existuje riziko. Toto sú hypotézy, ktoré BUDÚ VERIFIKOVANÉ pomocou nástroja na statickú analýzu a audítora. Upozorňujeme, že môžu existovať falošné pozitívne výsledky.
Štyri kopírovateľné šablóny
1) Popis výstupu nástroja:
Nižšie je uvedená správa nástroja na statickú analýzu (Slither). Vysvetlite každé upozornenie v jednoduchom jazyku: čo znamená, je to skutočné riziko alebo možný falošne pozitívny výsledok, čo by malo byť jeho prioritou? Nerobte pevné rozhodnutie; Uprednostnite potvrdenie audítorom.
2) Skríning zameraný na opätovný vstup:
V tejto zmluve nájdete všetky funkcie, ktoré uskutočňujú externé hovory. Preskúmajte, či sa pri každom z nich dodržiava poradie kontroly-účinkov-interakcií a či existuje strážca opätovného vstupu. Tie rizikové ukážte čiarou. Označte, ak si nie ste istý; Generovanie exploit kódu.
3) Mapa kontroly prístupu:
Uveďte všetky externé/verejné funkcie v tejto zmluve a pre každú uveďte „kto môže volať“ (každý/vlastník/rola). Vykonajte kritické operácie (výber, tlač, upgrade) a označte tie, ktoré majú slabé riadenie prístupu. Prezentujte ho tabuľkou.
4) Falošná pozitívna eliminácia:
Zvážte, prečo toto varovanie skenovania nemusí predstavovať SKUTOČNÉ riziko (falošne pozitívne): aký kontext alebo podmienka kódu by toto varovanie zrušila? Ale nehovorte „neexistuje absolútne žiadny problém“; Uveďte body, ktoré je potrebné potvrdiť.
Tri mini puzdrá (v číslach)
Prípad 1 – Vozidlo + AI zdvojnásobila účinnosť. Jeden tím prevádzkoval Slither na projekte s 12 zmluvami a dostal 140 upozornení. Keď sme nechali AI vysvetliť a uprednostniť upozornenia, ukázalo sa, že 95 zo 140 upozornení bolo falošne pozitívnych; Tím sa zameral na 45 reálnych kandidátov. Čas triedenia sa skrátil z 2 dní na 5 hodín. Ponaučenie: Umelá inteligencia je silná pri humanizácii výkonu vozidla.
Prípad 2 – AI unesená MEV. V zmluve DEX (decentralizovaná výmena) AI zistila, že štandardné vzory sú čisté, ale nepodarilo sa jej odhaliť predchádzajúcu zraniteľnosť; pretože to bolo špecifické pre poradie operácií protokolu. Zachytený ľudský audítor a simulácia. Ponaučenie: Riziká špecifické pre protokoly, ako je MEV/predný chod, sú slabou oblasťou AI.
Prípad 3 – Zabránenie plytvaniu časom falošným pozitívom. Tím bol ušetrený zbytočného prepisovania, keď AI vysvetlila, že varovanie o opätovnom vstupe bolo v skutočnosti falošne pozitívne (funkcia už bola strážená). Tím to ale aj tak potvrdil jediným testom. Lekcia: AI uprednostňuje; Potvrdenie opäť prichádza s testovaním.
Limity skenovania
Skenovanie nájde známe vzory. Ani nástroj, ani AI nie sú zaručené, že detegujú novú, jedinečnú alebo protokolovo špecifickú zraniteľnosť. Preto je skríning súčasťou auditu; nie on sám. Myšlienka, že "skenovanie je čisté, takže to znamená, že je bezpečné", je jednou z najnebezpečnejších mylných predstáv v tejto oblasti. Bagrovanie zbiera nízko visiace ovocie; Pre hlboké a jedinečné riziká sú nevyhnutné ľudské odborné znalosti, testovanie, fuzzing a formálny audit.
Upozornenie: „Čistá“ správa skenovacieho nástroja alebo AI nie je bezpečnostný certifikát. Prezentovať to týmto spôsobom – najmä investorom – je zavádzajúce a neetické.
Časté chyby
- Nahradenie skríningu za kontrolu. Skenovanie je jedna vrstva, nie celok.
- Používanie AI bez nástrojov. Statická analýza + AI + ľudská práca spolu.
- Odstránenie falošných poplachov bez potvrdenia. Každá obrazovka je testovaná/overená človekom.
- Obchádzanie rizík špecifických pre protokol (MEV) spoliehaním sa na AI. Slabá oblasť AI.
- Myslenie „čisté skenovanie“ = „bezpečné“. Nevie nájsť neznáme.
- Generovanie exploit kódu. Iba defenzívny popis rizika je legitímny.
V súhrne
- Skenovanie zraniteľnosti hľadá známe vzorce zraniteľnosti s vozidlom + AI + človekom.
- AI je výkonná pri vysvetľovaní a uprednostňovaní výstupu nástroja statickej analýzy.
- Spoľahlivé v jasných vzorcoch, ako je opätovný vstup a kontrola prístupu; Slabé v oblasti MEV a obchodnej logiky.
- Dokonca aj odstránenie falošných poplachov vyžaduje potvrdenie.
- "Čisté skenovanie" nie je bezpečnostný certifikát; Nie je náhradou za dohľad.
Aplikačná úloha
Spustite nástroj na statickú analýzu na vzorovej zmluve (ak je to možné) alebo nájdite hotovú správu Slither. Použite výzvu "tool output description" na AI. Vyhodnoťte, či AI: (1) správne vysvetľuje varovania, (2) dáva zmysel pri rozlišovaní medzi falošne pozitívnymi výsledkami a (3) prehliada riziko špecifické pre protokol. Vyplňte stĺpce „nájdené vozidlo / vysvetlená AI / človek potvrdený“ v tabuľke.
kontrolný zoznam
- [ ] Poklop som umiestnil ako vrstvu kontroly.
- [ ] Spolu som použil nástroj statickej analýzy + AI + človek.
- [ ] Hľadal som kategóriu po kategórii známe vzory.
- [ ] Potvrdením som odstránil falošné poplachy.
- [ ] Spoliehal som sa na ľudí v slabých oblastiach, ako je MEV/obchodná logika.
- [ ] Neponúkol som "čisté zametanie" ako záruku.
- [ ] Pracoval som len na účely obrany; Nevytvoril som exploity.