zisky:
- Schopnost pochopit, že umělá inteligence rozšiřuje pole působnosti auditora, ale nenahrazuje jej, a je užitečná při skenování kategorií a vytváření návrhů.
- Být schopen rozpoznat, že umělá inteligence minula původní chybu zabezpečení a obchodní logiku a že plynulé „bezpečné“ prohlášení není zárukou
- Schopnost klasifikovat zjištění podle úrovně jejich závažnosti a pochopit, že konečné schválení a odborná odpovědnost spočívá na příslušném auditorovi.
Bezpečnostní audit (systematické zkoumání zranitelností inteligentní smlouvy) je nejzodpovědnější prací Web3. Jeden řádek, který auditor vynechá, může mít za následek ztráty v milionech dolarů. V této lekci se naučíte používat umělou inteligenci jako asistenta auditu; Naučíme se od generování vodítek k psaní přehledu zjištění. Ale nejkritičtější věta je tato: AI nekontroluje; Je to asistent, který zbystří zrak auditora. Konečné schválení je na kompetentním auditorovi, který přebírá odbornou odpovědnost.
Proč je audit důležitý pro bezpečnost
Auditorská zpráva ujišťuje projekt a investory, že „tento kodex byl zkontrolován“. Pokud je toto ujištění nepravdivé, následky jsou katastrofální: zneužitý protokol, ztracené finance, zhroucený projekt. Proto je použití AI při kontrole nejpečlivější částí tohoto modulu. AI rozšiřuje pole působnosti auditora (vybavuje si více vzorů, čte rychleji), ale nenahrazuje auditora.
Proč to neprojde? protože:
- AI nevidí jedinečnou/novou zranitelnost, která není v trénovacích datech.
- AI často postrádá chybu v obchodní logice protokolu – že kód je technicky správný, ale ekonomicky využitelný.
- Umělá inteligence může poskytnout falešné ujištění tím, že řekne „bezpečné“ plynulým jazykem; Toto je nejnebezpečnější výsledek.
Vrstvy používání AI v ovládání
1. Počáteční skenování a připomenutí vzoru. Umělá inteligence prochází známými vzory zranitelnosti, jako je kontrolní seznam: reentrancy, řízení přístupu, manipulace s orákulem, front-running. Tím je zajištěno, že auditor nevynechá žádnou kategorii.
2. Vysvětlení kódu. Vysvětlení složité funkce AI v jednoduchém jazyce umožňuje auditorovi rychle pochopit logiku; ale popis je vždy porovnáván s kódem.
3. Sepsání návrhu zjištění. Když auditor najde zranitelnost, AI ušetří čas při psaní návrhu zprávy (popis, dopad, navrhované řešení).
4. Generování protihypotézy. Zeptejte se AI "Jak lze tuto funkci zneužít?" Ptání se nám připomíná agresivní perspektivu.
Pozor: To, že AI říká „V tomto kódu jsem nenašel žádné zranitelnosti“, NEZNAMENÁ „tento kód je bezpečný“. Důkaz nepřítomnosti není nepřítomnost důkazu. Skutečnost, že AI nemůže něco najít, neznamená, že auditor nemusí tuto oblast zkoumat.
Nalezení úrovní závažnosti
Auditní zjištění jsou klasifikována podle úrovně závažnosti. AI by měla používat tento rámec při generování konceptů:
úroveň
Význam
příklad
kritický
Přímá ztráta/uzamčení fondu
Výběr prostředků s opakovaným vstupem
vysoká
Vážný dopad za určitých podmínek
Neautorizovaný tisk (máta)
střední
Omezený dopad nebo obtížný stav
Malá ztráta s odchylkou Oracle
nízká
Menší riziko, porušení dobré praxe
Chybějící vysílání události
Informace
Nezabezpečení, čitelnost
Nedostatek NatSpec
Slabá výzva / Silná výzva
Slabá výzva:
Je tato smlouva bezpečná?
Tato otázka nutí AI učinit absolutní, neoprávněný úsudek typu „ano/ne“ – přesně to, co nechceme.
Výkonná výzva:
Vaše role: asistent vedoucího auditora chytrých smluv. Naskenujte následující smlouvu kvůli zabezpečení. Postupně projděte následující kategorie: reentrancy, řízení přístupu, celočíselné operace, ověření vstupu, oracle/externí data, front-running, limit plynu. Pro každý NÁLEZ: (1) příslušný řádek kódu, (2) riziko příčiny, (3) odhadovaná závažnost (kritická/vysoká/střední/nízká), (4) návrh řešení. Toto jsou HYPOTÉZY, KTERÉ JE NUTNÉ POTVRZIT; Nedávejte "bezpečný" verdikt. Označte oblasti, u kterých si nejste jisti, jasně řekněte „nechte potvrdit auditorem“.
Čtyři kopírovatelné šablony
1) Procházení podle kategorií:
Naskenujte tuto smlouvu pro následující kategorie: reentrancy, řízení přístupu, přetečení celého čísla, ověření vstupu, závislost na oracle, front-running, DoS/gas. U každé kategorie řekněte „neexistuje/neexistuje žádné riziko/nejsem si jistý“ a připojte své odůvodnění k řádku v kódu. Nedělejte konečný soud.
2) Protihypotéza z pohledu útočníka:
Myslete jako útočník: jaké jsou způsoby zneužití této funkce? Napište každý scénář krok za krokem a uveďte, jaké podmínky jsou vyžadovány. Tyto scénáře jsou hypotézami, které mají být testovány; NEGENERUJTE skutečný exploit kód, pouze popište riziko.
3) Návrh zprávy o zjištěních:
Ohlaste následující ověřená zjištění ve formálním jazyce auditu: název, závažnost, popis, dopad, ovlivněný kód, kroky k reprodukci, navrhované řešení. Používejte uměřený a technický jazyk; přehánění. Předpokládejme, že nález je potvrzen auditorem, nevytvářejte nový nález.
4) Opravit ověření:
Níže je uvedena chyba zabezpečení a oprava použitá vývojářem. Zkontrolujte, zda oprava skutečně zavře zranitelnost; označte, zda vytváří nový vedlejší účinek nebo zranitelnost. Určitě neříkejte „zavřeno“; Končí „musí být potvrzeno testováním“.
Tři mini pouzdra (v číslech)
Případ 1 – AI zabránila přeskakování kategorií. Auditor se chystal zaměřit na smlouvu o 400 řádcích a vynechat kategorii orákula. Sken kategorií AI varoval, že „údaje o cenách jsou z jednoho zdroje, otevřené manipulaci“. Auditor to prozkoumal a zjistil, že jde skutečně o střední riziko. Lekce: Umělá inteligence udržuje disciplínu pokrytí.
Případ 2 – Falešné „bezpečné“ ujištění. Jiný tým se zeptal AI: "Je to bezpečné?" zeptal se; "Nezdá se, že by to byl významný problém," řekla AI. Prohlídka posádky byla lehká. Pak nezávislý auditor našel chybu obchodní logiky: výpočet, který byl technicky správný, ale jehož pobídky byly zneužitelné. Lekce: AI postrádá chybu obchodní logiky; Nelze mu věřit, že řekne „bezpečné“.
Případ 3 — Vypracování zprávy ušetřilo 3 hodiny. Auditor strávil půl dne ručním hlášením 8 zjištění. Jakmile jsem předal ověřená zjištění AI a vytiskl oficiální návrh, čas klesl o ~3 hodiny; Auditor věnoval čas prohlubování. Ponaučení: Umělá inteligence je bezpečná a efektivní při hlášení, protože zjištění již byla lidmi ověřena.
Zranitelnost obchodní logiky: slepé místo AI
Nejdražší zranitelnosti často nepocházejí z technické chyby v kódu, ale ze zneužitelnosti obchodní logiky: zaokrouhlování zneužití účtu s odměnou, ukradení hlasu pomocí flash půjčky, okamžitá manipulace s cenou. To jsou případy, kdy kód funguje „správně“, ale protokol lze ekonomicky oklamat. AI takové chyby pravděpodobně přehlédne – zejména ty, které jsou specifické pro protokol. Proto je kontrola obchodní logiky oblastí auditora s největší náročností na člověka a nejméně závislá na AI.
Tip: Zeptejte se AI „jak lze využít ekonomické pobídky tohoto protokolu? a použijte scénáře, které se objeví jako výchozí bod – ale nezapomeňte, že skutečnou analýzu byste měli provést vy a váš tým.
Časté chyby
- Zeptejte se AI "je to bezpečné?" Ptát se a důvěřovat svému ano. Absolutní úsudek není vyžadován.
- Zastavení recenze, když AI řekne „Nemohl jsem to najít“. Absence není důkaz.
- Delegování kontroly obchodní logiky na AI. Je to jeho největší slepé místo.
- Bez použití nezávislých nástrojů (Slither atd.). Samotná AI nestačí.
- Vložení nálezu vytvořeného AI do zprávy bez ověření. Riziko halucinací.
- Snažím se přenést odpovědnost za kontrolu na AI. Zodpovědnost leží na odborníkovi.
V souhrnu
- Audit je kritický z hlediska bezpečnosti; AI rozšiřuje rozsah auditora, ale nenahrazuje jej.
- AI postrádá původní chybu zabezpečení a obchodní logiku; Říci "bezpečné" není jistota.
- Nálezy jsou klasifikovány podle stupně závažnosti; AI je užitečná při generování konceptů.
- Protihypotézy a screening kategorií zachovávají disciplínu inkluze.
- Konečné schválení a odborná odpovědnost je vždy na kompetentním auditorovi.
Aplikační úkol
Najděte vzor smlouvy, která obsahuje známou zranitelnost (pro vzdělávací účely jsou příklady „zranitelných smluv“ dostupné v open source). Použijte výzvu „skenování podle kategorií“ na AI. Všimněte si, zda AI: (1) našla skutečnou zranitelnost, (2) vytvořila vymyšlená/falešná zjištění, (3) učinila absolutní soudy, jako je „bezpečné“. Poté jej porovnejte s nástrojem statické analýzy.
kontrolní seznam
- [ ] Zeptejte se AI "je to bezpečné?" Místo toho jsem měl skenování podle kategorií.
- [ ] Každé zjištění jsem považoval za hypotézu.
- [ ] Kontrolu obchodní logiky jsem provedl sám/tým.
- [ ] Ověřil jsem to pomocí nezávislého nástroje pro statickou analýzu.
- [ ] Potvrdil jsem, že AI si zjištění nevymýšlí.
- [ ] Nálezy jsem klasifikoval podle stupně závažnosti.
- [ ] Souhlasil jsem s tím, že konečné schválení náleží příslušnému auditorovi.