Nyereség:
- Képes annak megértésére, hogy a mesterséges intelligencia kiterjeszti az auditor hatókörét, de nem helyettesíti, és hasznos a kategória-szkennelésben és a vázlatok megtalálásában.
- Az a képesség, hogy felismerjük, hogy a mesterséges intelligencia figyelmen kívül hagyta az eredeti sebezhetőséget és az üzleti logikai hibát, és hogy a folyékony „biztonságos” nyilatkozat nem jelent biztosítékot
- Képes a megállapításokat súlyosságuk szerint osztályozni, és megérteni, hogy a végső jóváhagyás és a szakmai felelősség az illetékes könyvvizsgálót terheli.
A biztonsági audit (az intelligens szerződések sebezhetőségeinek szisztematikus vizsgálata) a Web3 legfelelősebb feladata. Egy könyvvizsgáló által kihagyott egyetlen sor több millió dolláros veszteséget okozhat. Ebben az egységben megtanulhatja, hogyan használhatja az AI-t audit asszisztensként; A nyomok generálásától a leletvázlat megírásáig tanulunk. De a legkritikusabb mondat ez: az AI nem irányít; Ez egy asszisztens, amely élesíti a könyvvizsgáló szemét. A végső jóváhagyás az illetékes könyvvizsgálóé, aki szakmai felelősséget vállal.
Miért biztonsági szempontból kritikus az auditálás?
Egy könyvvizsgálói jelentés megnyugtatja a projektet és a befektetőket, hogy „ezt a kódexet felülvizsgálták”. Ha ez a biztosíték hamis, a következmények katasztrofálisak: kihasznált protokoll, elveszett finanszírozás, összeomlott projekt. Ezért ennek a modulnak a leggondosabb része a mesterséges intelligencia vizsgálati alkalmazása. Az AI kiterjeszti az auditor hatókörét (több mintát idéz fel, gyorsabban olvas), de nem helyettesíti az auditort.
Miért nem múlik el? Mert:
- Az AI nem látja az egyedi/új biztonsági rést, amely nem szerepel a betanítási adatokban.
- Az AI gyakran figyelmen kívül hagyja a protokoll üzleti logikájának hibáját – azt, hogy a kód technikailag helyes, de gazdaságilag kihasználható.
- A mesterséges intelligencia hamis megnyugvást adhat, ha folyékony nyelven kimondja, hogy „biztonságos”; Ez a legveszélyesebb eredmény.
Az AI használatának rétegei az irányításban
1. Első szkennelés és minta emlékeztető. A mesterséges intelligencia ismert sebezhetőségi mintákon megy keresztül, például egy ellenőrző listán: újrabelépés, hozzáférés-vezérlés, orákulum-manipuláció, előfutás. Ez biztosítja, hogy a könyvvizsgáló egyetlen kategóriát se hagyjon ki.
2. Kódmagyarázat. Egy összetett funkció egyszerű nyelven történő magyarázata lehetővé teszi az auditor számára, hogy gyorsan megértse a logikát; de a leírást mindig a kódhoz hasonlítják.
3. A megállapítások vázlatának megírása. Amikor az auditor sérülékenységet talál, az MI időt takarít meg a jelentéstervezet megírásával (leírás, hatás, megoldási javaslat).
4. Ellenhipotézis generálása. Kérdezd meg az AI-t "hogyan lehet visszaélni ezzel a funkcióval?" A „kérdezés” az agresszív perspektívára emlékeztet bennünket.
Figyelem: Csak azért, mert az AI azt mondja, hogy "nem találtam sebezhetőséget ebben a kódban", nem jelenti azt, hogy "ez a kód biztonságos". A hiányzás bizonyítéka nem a bizonyíték hiánya. Az a tény, hogy a mesterséges intelligencia nem talál valamit, nem teszi szükségtelenné, hogy az auditor megvizsgálja ezt a területet.
Súlyossági szintek megtalálása
Az ellenőrzési megállapításokat súlyosságuk szerint osztályozzák. Az AI-nak ezt a keretet kell használnia piszkozatok generálásakor:
Szint
Jelentése
példa
kritikus
Az alap elvesztése/kizárása közvetlenül lehetséges
Pénzfelvétel visszalépéssel
magas
Komoly hatás bizonyos körülmények között
Engedély nélküli nyomtatás (menta)
közepes
Korlátozott hatás vagy nehéz állapot
Kis veszteség Oracle eltéréssel
alacsony
Kis kockázat, a helyes gyakorlat megsértése
Az esemény közvetítése hiányzik
Információ
Nem biztonság, olvashatóság
NatSpec hiánya
Gyenge felszólítás / Erős felszólítás
Gyenge felszólítás:
Biztonságos ez a szerződés?
Ez a kérdés arra kényszeríti az MI-t, hogy abszolút, indokolatlan ítéletet hozzon, például „igen/nem” – pontosan mit nem akarunk.
Erőteljes felszólítás:
Az Ön szerepköre: a vezető intelligens szerződésvizsgáló asszisztense. Olvassa be a következő szerződést a biztonság érdekében. Menjen végig egyenként a következő kategóriákon: visszalépés, hozzáférés-vezérlés, egészszámú műveletek, bemeneti érvényesítés, oracle/külső adatok, előfutás, gázkorlát. Minden MEGÁLLAPÍTÁS esetén: (1) releváns kódsor, (2) ok kockázata, (3) becsült súlyosság (kritikus/magas/közepes/alacsony), (4) megoldási javaslat. Ezek MEGERŐSÍTENDŐ HIPOTÉZISEK; Ne mondjon "biztonságos" ítéletet. Jelölje meg azokat a területeket, amelyekről nem biztos, hogy egyértelműen azt mondja, hogy „hagyja, hogy a könyvvizsgáló erősítse meg”.
Négy másolható sablon
1) Kategória alapú böngészés:
Vizsgálja meg ezt a szerződést a következő kategóriákra vonatkozóan: újbóli beléptetés, hozzáférés-vezérlés, egész számok túlcsordulása, bemeneti érvényesítés, oracle-függőség, front-running, DoS/gas. Minden kategóriánál mondja azt, hogy "nincs/nincs kockázat/nem vagyok biztos benne", és csatlakoztassa az indoklást a kód sorához. Ne hozz végső ítéletet.
2) Ellenhipotézis a támadó szemszögéből:
Gondolkozz úgy, mint egy támadó: hogyan lehet visszaélni ezzel a funkcióval? Írja le az egyes forgatókönyveket lépésről lépésre, és jelezze, milyen feltételekre van szükség. Ezek a forgatókönyvek a tesztelendő hipotézisek; NE generáljon tényleges kihasználó kódot, csak írja le a kockázatot.
3) A megállapításokról szóló jelentés tervezete:
Jelentse a következő ellenőrzött megállapításokat hivatalos ellenőrzési nyelven: cím, súlyosság, leírás, hatás, érintett kód, reprodukálandó lépések, javasolt megoldás. Mért és szaknyelv használata; túlzás. Tételezzük fel, hogy a megállapítást a könyvvizsgáló megerősítette, ne tegyen új megállapítást.
4) Javítsa ki az ellenőrzést:
Az alábbiakban egy biztonsági rést és a fejlesztő által alkalmazott javítást láthatunk. Vizsgálja meg, hogy a javítás valóban bezárja-e a biztonsági rést; jelölje meg, hogy okoz-e új mellékhatást vagy sebezhetőséget. Ne mondd biztosan, hogy „zárva”; A végén a „teszttel meg kell erősíteni” szöveggel.
Három mini tok (számokban)
1. eset – A mesterséges intelligencia megakadályozta a kategóriaugrást. Egy auditor egy 400 soros szerződésre akart összpontosítani, és kihagyta az orákulum kategóriát. Az AI kategóriavizsgálata figyelmeztetést adott arra, hogy "az áradatok egyetlen forrásból származnak, manipulálhatók". A könyvvizsgáló megvizsgálta, és megállapította, hogy valóban közepes kockázatról van szó. Tanulság: Az AI fenntartja a lefedettségi fegyelmet.
2. eset – Hamis „biztonságos” biztosítás. Egy másik csapat megkérdezte az MI-t: „Biztonságos ez?” kérdezte; "Úgy tűnik, nincs jelentős probléma" - mondta az AI. A személyzet ellenőrzése könnyű volt. Aztán a független könyvvizsgáló üzleti logikai hibát talált: egy olyan számítást, amely technikailag helyes volt, de az ösztönzőket kihasználni lehetett. Tanulság: Az AI kihagyja az üzleti logikai hibát; Nem lehet megbízni benne, hogy „biztonságban” mondja.
3. eset – A jelentés elkészítése 3 órát takarított meg. A könyvvizsgáló a nap felét 8 megállapítás manuális jelentésével töltötte. Miután átadtam az ellenőrzött leleteket az MI-nek, és kinyomtattam a hivatalos piszkozatot, az idő ~3 órával csökkent; A könyvvizsgáló időt szentelt az elmélyülésnek. Tanulság: A mesterséges intelligencia biztonságos és hatékony a jelentéskészítésben, mert az eredményeket már emberileg ellenőrizték.
Üzleti logikai sebezhetőség: az AI vakfoltja
A legdrágább sebezhetőségek gyakran nem a kód technikai hibájából, hanem az üzleti logika kihasználhatóságából fakadnak: jutalomszámla kerekítése, szavazat gyorskölcsön-eltérítése, azonnali ármanipuláció. Ezek olyan esetek, amikor a kód "helyesen" működik, de a protokoll gazdaságosan átverhető. Az AI valószínűleg kihagyja az ilyen hibákat – különösen a protokollspecifikusakat. Ezért az üzleti logikai áttekintés a könyvvizsgáló leginkább emberigényes területe, és a legkevésbé támaszkodik az AI-ra.
Tipp: Kérdezd meg az MI-t, hogy „hogyan lehet kihasználni ennek a protokollnak a gazdasági ösztönzőit?” és használja kiindulópontként a felmerülő forgatókönyveket – de ne feledje, hogy Önnek és csapatának kell elvégeznie a valódi elemzést.
Gyakori hibák
- Kérdezd meg az MI-től: "Biztonságos?" Kérdezz és bízz az igenedben. Abszolút ítélet nem szükséges.
- A felülvizsgálat leállítása, amikor a mesterséges intelligencia azt mondja: „Nem találtam”. A hiányzás nem bizonyíték.
- Az üzleti logika felülvizsgálatának delegálása az MI-re. Ez a legnagyobb vakfoltja.
- Nem használ független eszközöket (Slither stb.). Az AI önmagában nem elég.
- A mesterséges intelligencia által kitalált lelet beillesztése a jelentésbe anélkül, hogy ellenőrizné. Hallucinációk veszélye.
- Próbáljuk az irányítási felelősséget az AI-ra hárítani. A felelősség a szakértőt terheli.
Összefoglalva
- Az audit biztonságkritikus; A mesterséges intelligencia kiterjeszti az auditor hatókörét, de nem helyettesíti.
- Az AI kihagyja az eredeti sebezhetőséget és az üzleti logikai hibát; A „biztonságos” mondás nem jelent bizonyosságot.
- A leleteket súlyossági szint szerint osztályozzák; Az AI hasznos a piszkozatok generálásakor.
- Az ellenhipotézisek és a kategóriaszűrés őrzi a befogadás fegyelmét.
- A végső jóváhagyás és a szakmai felelősség mindig az illetékes könyvvizsgálót terheli.
Pályázati feladat
Keressen egy mintaszerződést, amely egy ismert sebezhetőséget tartalmaz (oktatási célokra a "sebezhető szerződésekre" nyílt forráskódú példák állnak rendelkezésre). Alkalmazza a „kategória alapú keresés” promptot az AI-ra. Jegyezze meg, hogy az AI: (1) megtalálta-e a valódi sebezhetőséget, (2) koholt/hamis megállapításokat hozott-e, (3) abszolút ítéleteket hozott-e, például „biztonságos”. Ezután hasonlítsa össze egy statikus elemző eszközzel.
ellenőrző lista
- [ ] Kérdezd meg az MI-től: "biztonságos?" Ehelyett kategória alapú vizsgálatot végeztem.
- [ ] Minden egyes leletet hipotézisként kezeltem.
- [ ] Az üzleti logikai áttekintést magam/csapat készítettem.
- [ ] Egy független statikus elemző eszközzel keresztvalidáltam.
- [ ] Megerősítettem, hogy az AI nem gyárt leleteket.
- [ ] A leleteket a súlyossági fok szerint osztályoztam.
- [ ] Elfogadtam, hogy a végső jóváhagyás az illetékes könyvvizsgálóé.