Yunit 3 / 11

Suporta sa Pag-audit ng Matalinong Kontrata: Pagsusuri sa Seguridad at Mga Pagtuklas sa Draft

Mga nadagdag:

  • Kakayahang maunawaan na pinalalawak ng artificial intelligence ang saklaw ng auditor, ngunit hindi ito pinapalitan, at kapaki-pakinabang sa pag-scan ng kategorya at paghahanap ng pagbalangkas.
  • Ang kakayahang makilala na ang artificial intelligence ay hindi nakuha ang orihinal na kahinaan at error sa lohika ng negosyo, at ang isang matatas na 'secure' na pahayag ay hindi kasiguruhan
  • Kakayahang pag-uri-uriin ang mga natuklasan ayon sa kanilang antas ng kabigatan at maunawaan na ang panghuling pag-apruba at propesyonal na responsibilidad ay nakasalalay sa karampatang auditor.

Ang pag-audit ng seguridad (sistematikong pagsusuri ng isang matalinong kontrata para sa mga kahinaan) ay ang pinakaresponsableng trabaho ng Web3. Ang isang linyang napalampas ng isang auditor ay maaaring magresulta sa milyun-milyong dolyar na pagkalugi. Sa yunit na ito matututunan mo kung paano gamitin ang AI bilang isang audit assistant; Matututo tayo mula sa pagbuo ng mga pahiwatig hanggang sa pagsulat ng balangkas ng mga natuklasan. Ngunit ang pinaka-kritikal na pangungusap ay ito: Hindi kinokontrol ng AI; Isa itong katulong na nagpapatalas ng mata ng auditor. Ang huling pag-apruba ay nakasalalay sa karampatang auditor na umaako ng propesyonal na responsibilidad.

Bakit kritikal sa seguridad ang pag-audit

Tinitiyak ng isang ulat sa pag-audit ang proyekto at mga namumuhunan na "nasuri na ang code na ito." Kung mali ang katiyakang ito, ang mga kahihinatnan ay nakapipinsala: pinagsamantalahan na protocol, nawalang pondo, gumuhong proyekto. Samakatuwid, ang paggamit ng AI sa inspeksyon ay ang pinakamaingat na bahagi ng modyul na ito. Pinapalawak ng AI ang saklaw ng auditor (naaalala ang higit pang mga pattern, nagbabasa nang mas mabilis) ngunit hindi pinapalitan ang auditor.

Bakit hindi pumasa? dahil:

  • Hindi nakikita ng AI ang kakaiba/bagong kahinaan na wala sa data ng pagsasanay.
  • Madalas na nakakaligtaan ng AI ang depekto sa lohika ng negosyo ng protocol—na ang code ay teknikal na tama ngunit magagamit sa ekonomiya.
  • Ang AI ay maaaring magbigay ng maling katiyakan sa pamamagitan ng pagsasabi ng "ligtas" sa matatas na wika; Ito ang pinaka-mapanganib na kinalabasan.

Mga layer ng paggamit ng AI sa kontrol

1. Paunang pag-scan at paalala ng pattern. Ang AI ay dumadaan sa mga kilalang pattern ng kahinaan tulad ng isang checklist: reentrancy, access control, oracle manipulation, front-running. Tinitiyak nito na ang auditor ay hindi makaligtaan ng anumang mga kategorya.

2. Pagpapaliwanag ng code. Ang pagpapaliwanag ng isang kumplikadong function sa AI sa simpleng wika ay nagbibigay-daan sa auditor na mabilis na maunawaan ang lohika; ngunit ang paglalarawan ay palaging inihahambing sa code.

3. Pagsulat ng draft ng mga natuklasan. Kapag nakahanap ang auditor ng kahinaan, ang AI ay nakakatipid ng oras sa pagsulat ng draft ng ulat (paglalarawan, epekto, iminungkahing solusyon).

4. Pagbuo ng kontra-hypothesis. Tanungin ang AI "paano maaabuso ang function na ito?" Ang pagtatanong " ay nagpapaalala sa atin ng agresibong pananaw.

Pansin: Dahil lang sa sinabi ng AI na "Wala akong nakitang kahinaan sa code na ito" ay HINDI nangangahulugang "ligtas ang code na ito". Ang ebidensya ng kawalan ay hindi kawalan ng ebidensya. Ang katotohanan na ang AI ay hindi makahanap ng isang bagay ay hindi ginagawang hindi kinakailangan para sa auditor na suriin ang lugar na iyon.

Paghahanap ng mga antas ng kalubhaan

Ang mga natuklasan sa pag-audit ay inuri ayon sa kanilang antas ng kalubhaan. Dapat gamitin ng AI ang framework na ito kapag bumubuo ng mga draft:

Antas

Ibig sabihin

halimbawa

kritikal

Direktang posibleng mawala/lockout ang pondo

Pag-withdraw ng mga pondo na may muling pagpasok

mataas

Malubhang epekto sa ilang mga kundisyon

Hindi awtorisadong pag-print (mint)

daluyan

Limitadong epekto o mahirap na kondisyon

Maliit na pagkawala sa Oracle deviation

mababa

Maliit na panganib, paglabag sa mabuting kasanayan

Nawawalang broadcast ng kaganapan

Impormasyon

Di-seguridad, madaling mabasa

Kakulangan ng NatSpec

Mahinang prompt / Malakas na prompt

Mahinang prompt:

Ligtas ba ang kontratang ito?

Pinipilit ng tanong na ito ang AI na gumawa ng ganap, hindi makatwirang paghuhusga tulad ng "oo/hindi" — kung ano mismo ang hindi natin gusto.

Napakahusay na prompt:

Ang iyong tungkulin: assistant sa senior smart contract auditor. I-scan ang sumusunod na kontrata para sa seguridad. Isa-isang suriin ang mga sumusunod na kategorya: reentrancy, access control, integer operations, input validation, oracle/external data, front-running, gas limit. Para sa bawat PAGHAHANAP: (1) nauugnay na linya ng code, (2) sanhi ng panganib, (3) tinantyang kalubhaan (Kritikal/Mataas/Katamtaman/Mababa), (4) panukalang solusyon. Ito ay mga HYPOTHESES NA KUMPIRMADO; Huwag magbigay ng "ligtas" na hatol. Markahan ang mga lugar na hindi mo sigurado na malinaw na sinasabing "hayaan ang auditor na kumpirmahin".

Apat na maaaring kopyahin na mga template

1) Pagba-browse batay sa kategorya:

I-scan ang kontratang ito para sa mga sumusunod na kategorya: reentrancy, access control, integer overflow, input validation, oracle dependency, front-running, DoS/gas. Para sa bawat kategorya, sabihin ang "walang panganib/hindi ako sigurado" at ikonekta ang iyong katwiran sa linya sa code. Huwag gumawa ng pangwakas na paghatol.

2) Counter-hypothesis mula sa pananaw ng umaatake:

Mag-isip tulad ng isang umaatake: ano ang mga paraan upang abusuhin ang function na ito? Isulat ang bawat senaryo nang sunud-sunod at isaad kung anong mga kundisyon ang kinakailangan. Ang mga sitwasyong ito ay ang mga hypotheses na susuriin; HUWAG bumuo ng aktwal na exploit code, ilarawan lamang ang panganib.

3) Draft na ulat ng mga natuklasan:

Iulat ang sumusunod na na-verify na paghahanap sa pormal na wika ng pag-audit: pamagat, kalubhaan, paglalarawan, epekto, apektadong code, mga hakbang sa pagpaparami, iminungkahing solusyon. Gumamit ng sinukat at teknikal na wika; pagmamalabis. Ipagpalagay na ang paghahanap ay kinumpirma ng auditor, huwag gumawa ng bagong paghahanap.

4) Ayusin ang pag-verify:

Nasa ibaba ang isang kahinaan at ang pag-aayos na inilapat ng developer. Suriin kung talagang isinasara ng pag-aayos ang kahinaan; markahan kung lumilikha ito ng bagong side effect o kahinaan. Huwag sabihing "sarado" para sigurado; Magtatapos sa "dapat kumpirmahin sa pamamagitan ng pagsubok".

Tatlong mini case (sa mga numero)

Kaso 1 — Pinigilan ng AI ang paglukso ng kategorya. Ang isang auditor ay malapit nang tumuon sa isang 400-linya na kontrata at laktawan ang kategorya ng orakulo. Ang pag-scan ng kategorya ng AI ay nagbigay ng babala na "ang data ng presyo ay mula sa iisang pinagmulan, bukas sa pagmamanipula". Sinuri ito ng auditor at nalaman na ito ay talagang isang katamtamang panganib. Aralin: Ang AI ay nagpapanatili ng disiplina sa pagsakop.

Kaso 2 — Maling "ligtas" na kasiguruhan. Tinanong ng isa pang koponan ang AI "ligtas ba ito?" tanong niya; "Mukhang walang malaking problema," sabi ni AI. Magaan ang inspeksyon ng crew. Pagkatapos ay natagpuan ng independiyenteng auditor ang isang business-logic na depekto: isang kalkulasyon na teknikal na tama ngunit ang mga insentibo ay pinagsamantalahan. Lesson: Nami-miss ng AI ang business logic error; Hindi siya mapagkakatiwalaang magsabi ng "ligtas".

Case 3 — Ang pag-draft ng ulat ay na-save ng 3 oras. Ang auditor ay gumugugol ng kalahating araw sa manu-manong pag-uulat ng 8 natuklasan. Sa sandaling ibinigay ko ang na-verify na mga natuklasan sa AI at nai-print ang opisyal na draft, ang oras ay bumaba ng ~3 oras; Ang auditor ay naglaan ng oras sa pagpapalalim. Aralin: Ang AI ay ligtas at mahusay sa pag-uulat dahil ang mga natuklasan ay na-verify na ng tao.

Kahinaan sa lohika ng negosyo: blind spot ng AI

Ang pinakamahal na mga kahinaan ay kadalasang hindi nagmumula sa isang teknikal na error sa code, ngunit mula sa pagiging mapagsamantala ng lohika ng negosyo: rounding exploitation ng reward account, flash loan hijacking ng isang boto, instant manipulation ng isang presyo. Ito ang mga kaso kung saan ang code ay gumagana nang "tama" ngunit ang protocol ay maaaring dayain nang matipid. Malamang na makaligtaan ng AI ang gayong mga error—lalo na ang mga partikular sa protocol. Samakatuwid, ang pagsusuri sa lohika ng negosyo ay ang pinaka-masinsinang lugar ng auditor at ang hindi gaanong umaasa sa AI.

Pahiwatig: Tanungin ang AI "paano mapagsamantalahan ang mga pang-ekonomiyang insentibo ng protocol na ito?" at gamitin ang mga senaryo na lumalabas bilang panimulang punto — ngunit tandaan na dapat mong gawin at ng iyong koponan ang tunay na pagsusuri.

Mga karaniwang pagkakamali

  • Tanungin ang AI "ligtas ba ito?" Nagtatanong at nagtitiwala sa iyong oo. Hindi kinakailangan ang ganap na paghatol.
  • Itinigil ang pagsusuri kapag sinabi ng AI na "Hindi ko ito mahanap". Ang kawalan ay hindi ebidensya.
  • Ang pagtatalaga ng pagsusuri sa lohika ng negosyo sa AI. Ito ang pinakamalaking blind spot niya.
  • Hindi gumagamit ng mga independiyenteng kasangkapan (Slither atbp.). Ang AI lang ay hindi sapat.
  • Ang paglalagay ng paghahanap na ginawa ng AI sa ulat nang hindi ito bini-verify. Panganib ng mga guni-guni.
  • Sinusubukang ilagay ang responsibilidad sa kontrol sa AI. Ang responsibilidad ay nasa eksperto.

Sa buod

  • Ang pag-audit ay kritikal sa kaligtasan; Pinapalawak ng AI ang saklaw ng auditor ngunit hindi ito pinapalitan.
  • Nami-miss ng AI ang orihinal na kahinaan at bug ng lohika ng negosyo; Ang pagsasabi ng "ligtas" ay hindi kasiguruhan.
  • Ang mga natuklasan ay inuri ayon sa antas ng kalubhaan; Ang AI ay kapaki-pakinabang sa pagbuo ng mga draft.
  • Ang counter-hypothesis at pag-screen ng kategorya ay nagpapanatili ng disiplina sa pagsasama.
  • Ang pangwakas na pag-apruba at propesyonal na responsibilidad ay palaging nasa karampatang auditor.

Gawain ng aplikasyon

Maghanap ng sample na kontrata na naglalaman ng kilalang kahinaan (para sa mga layuning pang-edukasyon, ang mga halimbawa ng "mahina na mga kontrata" ay available sa open source). Ilapat ang "category based scanning" prompt sa AI. Pansinin kung ang AI: (1) natagpuan ang tunay na kahinaan, (2) gumawa ng gawa-gawa/maling mga natuklasan, (3) gumawa ng mga ganap na paghatol gaya ng “secure.” Pagkatapos ay ihambing ito sa isang static na tool sa pagsusuri.

checklist

  • [ ] Tanungin ang AI "ligtas ba ito?" Sa halip, nagkaroon ako ng pag-scan na nakabatay sa kategorya.
  • [ ] Itinuring ko ang bawat natuklasan bilang isang hypothesis.
  • [ ] Ginawa ko ang business logic review sa aking sarili/team.
  • [ ] I cross-validated ito gamit ang isang independent static analysis tool.
  • [ ] Kinumpirma ko na ang AI ay hindi gumagawa ng mga natuklasan.
  • [ ] Inuri ko ang mga natuklasan ayon sa antas ng kalubhaan.
  • [ ] Tinanggap ko na ang huling pag-apruba ay nakasalalay sa karampatang auditor.