Egység 3 / 11

Intelligens szerződés-ellenőrzési támogatás: Biztonsági áttekintés és megállapítások tervezete

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óé.