Mga nadagdag:
- Kakayahang kilalanin ang mga karaniwang pattern ng kahinaan gaya ng reentrancy, access control, oracle manipulation at front-running at i-scan ang mga ito gamit ang static analysis tool + artificial intelligence + human
- Kakayahang makilala sa pagitan ng mga lakas ng AI sa pagpapaliwanag ng output ng tool at pag-prioritize ng mga maling positibo at kahinaan sa MEV at lohika ng negosyo
- Unawain na ang isang 'malinis na pag-scan' ay hindi isang sertipiko ng seguridad, na ang pag-scan ay isang layer lamang ng kontrol
Nakita namin ang holistic na disiplina ng pag-audit sa nakaraang yunit. Sa unit na ito, nakatuon kami sa isang mas teknikal na paksa: pag-scan ng kahinaan — ang sistematikong paghahanap para sa mga kilalang pattern ng kahinaan sa code. Dito gagamitin namin ang AI, kasama ang mga static na tool sa pagsusuri, bilang isang katulong na nag-scan at naglalarawan ng mga kilalang pattern ng kahinaan. Ang layunin: upang malaman ang pinakakaraniwang mga kahinaan nang malalim at makilala kung saan maaasahan ang AI at kung saan ito ay hindi sapat sa pag-scan sa kanila.
Static at dynamic na pag-scan
Ang pag-scan ay may dalawang uri. Static analysis — sinusuri ang code nang hindi ito pinapatakbo: Ini-scan ng mga tool gaya ng Slither at Mythril ang contract code at i-flag ang mga kilalang pattern. Dynamic/symbolic analysis (pagpapatakbo ng code na may iba't ibang input o paggalugad dito sa matematika): fuzzing (bombarding with random input) at symbolic execution (explore all possible paths) ay nabibilang sa grupong ito.
Hindi pinapalitan ng AI ang mga tool na ito, pinupunan nito ang mga ito: kapag nagbigay ng babala ang sasakyan, ipinapaliwanag ng AI ang babala sa simpleng wika; Ang AI ay maaaring magpaalala kapag ang tool ay nakaligtaan ng isang pattern; Ngunit ang AI lamang ay hindi magagarantiya kung gaano ito na-scan. Ang tamang daloy ng trabaho: tool + AI + tao.
Tip: Bigyan ang AI ng output ng isang static na tool sa pagsusuri (hal. Slither report) at tanungin ang "ipaliwanag ang bawat alerto sa simpleng wika, alin ang mga tunay na panganib at alin ang maaaring maling positibo?" magtanong. Napakahalaga ng AI sa paggawa ng hilaw na output ng tool na nauunawaan at nabibigyang-priyoridad sa mga tao.
Karamihan sa mga karaniwang pattern ng kahinaan
1. Muling pagpasok. Kung ang isang function ay tumawag sa isang panlabas na kontrata nang hindi ina-update ang estado nito, ang tinatawag na kontrata ay maaaring bumalik, i-trigger muli ang parehong function at bawiin ang pondo ng maraming beses. Solusyon: checks-effects-interactions order at reentrancy guard.
2. Kakulangan ng access control. Ang isang kritikal na function (withdrawal, withdrawal, upgrade) ay hindi sinasadyang ginawang pampubliko. Ito ay isa sa mga pinakakaraniwang at mamahaling pagkakamali.
3. Pagmamanipula ng Oracle. Ang bulag na pag-asa ng kontrata sa isang panlabas na pinagmumulan ng presyo (oracle). Agad na minamanipula ng umaatake ang presyo at dinadaya ang protocol. Solusyon: time-weighted average na presyo (TWAP), multi-source.
4. Integer overflow/underfall. Kapag ang isang numero ay lumampas sa maximum na pinapayagang halaga at bumalik sa simula. Awtomatikong nahuhuli ng Modern Solidity ang karamihan sa mga ito, ngunit nananatili ang panganib sa mababang antas (assembly) code.
5. Front-running. Lumalabas ang mga transaksyon sa pampublikong pool (mempool) bago sila kumpirmahin; Makikita ng umaatake ang iyong transaksyon at ipasok ang sarili niyang transaksyon sa harap nito. MEV (Maximal Extractable Value — ang value na nakuha mula sa pagkakasunud-sunod ng transaksyon) ay ang pangkalahatang pangalan ng paksang ito.
6. Pagtanggi sa Serbisyo (DoS). Ang isang loop ay nagiging masyadong mahal at ginagawang hindi nagagamit ang function, o ang isang dependency sa isang address ay na-lock.
7. I-upgrade ang mga panganib. Pagbangga sa imbakan at pag-abuso sa awtoridad sa mga naa-upgrade na kontrata.
kahinaan
Tiwala sa pag-scan ng AI
Bakit
muling pagpasok
mataas
Kilalang-kilala, malinaw na pattern
kontrol sa pag-access
mataas
Maaaring ma-scan ang amag
Mga operasyong integer
mataas
karaniwang kontrol
Pagmamanipula ng Oracle
daluyan
Nangangailangan ng konteksto
Front-running/MEV
Katamtaman-Mababa
tiyak na protocol
error sa lohika ng negosyo
mababa
Authentic, contextual
Mahinang prompt / Malakas na prompt
Mahinang prompt:
Mayroon bang butas sa code na ito?
Napakahusay na prompt:
Ang iyong tungkulin: security screening assistant. I-scan ang kontrata sa ibaba para sa mga sumusunod na kilalang pattern at "nasa panganib/wala/hindi sigurado" para sa bawat isa: reentrancy, access control, integer operations, oracledependency, front-running, DoS, upgrade security. Iugnay ang bawat pagpapasiya sa nauugnay na linya at ipaliwanag kung bakit may panganib. Ang mga ito ay mga hypotheses na AY MA-VERIFIED gamit ang isang static na tool sa pagsusuri at auditor. Tandaan na maaaring may mga maling positibo.
Apat na maaaring kopyahin na mga template
1) Paglalarawan ng output ng tool:
Nasa ibaba ang ulat ng isang static na tool sa pagsusuri (Slither). Ipaliwanag ang bawat alerto sa simpleng wika: ano ang ibig sabihin nito, ito ba ay isang tunay na panganib o isang posibleng maling positibo, ano ang dapat na prayoridad nito? Huwag gumawa ng matatag na desisyon; Unahin ang kumpirmasyon ng auditor.
2) Reentrancy focused screening:
Hanapin ang lahat ng function na gumagawa ng mga external na tawag sa kontratang ito. Suriin kung sinusunod ang pagkakasunud-sunod ng checks-effects-interactions para sa bawat isa sa kanila at kung mayroong reentrancy guard. Ipakita ang mga peligrosong may linya. Markahan kung hindi ka sigurado; Pagbuo ng exploit code.
3) I-access ang control map:
Ilista ang lahat ng panlabas/pampublikong tungkulin sa kontratang ito at tukuyin ang "sino ang maaaring tumawag" (lahat/may-ari/tungkulin) para sa bawat isa. Magsagawa ng mga kritikal na operasyon (withdraw, print, upgrade) at markahan ang mga may mahinang access control. Iharap ito sa isang mesa.
4) Maling positibong pag-aalis:
Isaalang-alang kung bakit maaaring hindi TUNAY na panganib ang babala sa pag-scan na ito (false positive): anong konteksto o kundisyon ng code ang magpapawalang-bisa sa babalang ito? Ngunit huwag sabihin na "wala talagang problema"; Ilista ang mga puntos na nangangailangan ng kumpirmasyon.
Tatlong mini case (sa mga numero)
Case 1 — Nadoble ang kahusayan ng Sasakyan + AI. Pinatakbo ng isang koponan si Slither sa isang 12-kontrata na proyekto at nakatanggap ng 140 na babala. Sa sandaling mayroon kaming AI na ipaliwanag at unahin ang mga alerto, lumabas na 95 sa 140 na alerto ay mga maling positibo; Nakatuon ang pangkat sa 45 tunay na kandidato. Bumaba ang oras ng triage mula 2 araw hanggang 5 oras. Aralin: Makapangyarihan ang AI sa paggawa ng tao sa output ng sasakyan.
Kaso 2 — Na-hijack ng AI ang MEV. Sa isang kontrata ng DEX (desentralisadong palitan), nakita ng AI na malinis ang mga karaniwang pattern ngunit nabigo itong makakita ng kahinaan sa unahan; dahil partikular ito sa pagkakasunud-sunod ng mga operasyon ng protocol. Nakuha ang auditor at simulation ng tao. Aralin: Ang mga panganib na partikular sa protocol tulad ng MEV/front-running ay ang mahinang lugar ng AI.
Kaso 3 — Iniwasang mag-aksaya ng oras sa isang false positive. Ang koponan ay naligtas sa isang hindi kinakailangang muling pagsulat nang ipaliwanag ng AI na ang isang babala sa muling pagpasok ay talagang isang maling positibo (ang function ay nababantayan na). Ngunit kinumpirma pa rin ito ng koponan sa isang pagsubok. Aralin: Ang AI ay inuuna; Ang kumpirmasyon ay muling kasama ng pagsubok.
Mga limitasyon ng pag-scan
Ang pag-scan ay nakakahanap ng mga kilalang pattern. Ang tool o ang AI ay hindi garantisadong makakatukoy ng bago, natatangi o partikular sa protocol na kahinaan. Samakatuwid, ang screening ay bahagi ng audit; hindi ang sarili niya. Ang ideya na "ang pag-scan ay malinis, kaya nangangahulugan ito na ito ay ligtas" ay isa sa mga pinaka-mapanganib na maling kuru-kuro sa larangang ito. Kinukuha ng dredging ang mababang-hang na prutas; Para sa malalim at natatanging mga panganib, ang kadalubhasaan ng tao, pagsubok, pag-fuzzing at pormal na pag-audit ay mahalaga.
Babala: Ang isang "malinis" na ulat ng isang tool sa pag-scan o AI ay hindi isang sertipiko ng seguridad. Ang pagpapakita nito sa ganoong paraan - lalo na sa mga namumuhunan - ay nakaliligaw at hindi etikal.
Mga karaniwang pagkakamali
- Pagpapalit ng screening para sa inspeksyon. Ang pag-scan ay isang layer, hindi ang kabuuan.
- Paggamit ng AI nang walang mga tool. Static analysis + AI + human work together.
- Pag-aalis ng mga maling positibo nang walang kumpirmasyon. Ang bawat screen ay nasubok/na-verify ng tao.
- Pag-bypass sa mga panganib na partikular sa protocol (MEV) sa pamamagitan ng pag-asa sa AI. mahinang lugar ng AI.
- Pag-iisip na "malinis na pag-scan" = "ligtas". Hindi nito mahahanap ang hindi alam.
- Pagbuo ng exploit code. Tanging defensive risk description lang ang lehitimo.
Sa buod
- Ang pag-scan ng kahinaan ay naghahanap ng mga kilalang pattern ng kahinaan na may sasakyan + AI + tao.
- Ang AI ay mahusay sa pagpapaliwanag at pag-prioritize ng static analysis tool na output.
- Maaasahan sa malinaw na mga pattern tulad ng reentrancy at access control; Mahina sa MEV at lohika ng negosyo.
- Kahit na ang pag-alis ng mga maling positibo ay nangangailangan ng kumpirmasyon.
- Ang "malinis na pag-scan" ay hindi isang sertipiko ng seguridad; Hindi ito kapalit ng pangangasiwa.
Gawain ng aplikasyon
Magpatakbo ng isang static na tool sa pagsusuri sa isang sample na kontrata (kung maaari) o maghanap ng isang handa na ulat ng Slither. Ilapat ang "tool output description" prompt sa AI. Suriin kung ang AI: (1) nagpapaliwanag nang tama ng mga babala, (2) may katuturan sa pagkilala sa pagitan ng mga maling positibo, at (3) nakakaligtaan ang isang panganib na partikular sa protocol. Punan ang mga column na "nahanap na sasakyan / ipinaliwanag ng AI / kinumpirma ng tao" sa isang talahanayan.
checklist
- [ ] Inilagay ko ang hatch bilang layer ng control.
- [ ] Gumamit ako ng static analysis tool + AI + human together.
- [ ] Naghanap ako ng kategorya ayon sa kategorya para sa mga kilalang pattern.
- [ ] Inalis ko ang mga maling positibo na may kumpirmasyon.
- [ ] Umasa ako sa mga tao sa mahihinang lugar gaya ng MEV/business logic.
- [ ] Hindi ako nag-alok ng "clean sweep" bilang kasiguruhan.
- [ ] Nagtrabaho lang ako para sa mga layunin ng pagtatanggol; Hindi ako gumawa ng mga pagsasamantala.