Njësia 4 / 11

Skanimi i dobësive: Modelet e zakonshme të cenueshmërisë dhe analiza e automatizuar

Fitimet:

  • Aftësia për të njohur modelet e zakonshme të cenueshmërisë si rihyrja, kontrolli i aksesit, manipulimi i orakullit dhe ekzekutimi i parë dhe skanimi i tyre me një mjet analize statike + inteligjencë artificiale + njerëz
  • Aftësia për të dalluar pikat e forta të AI në shpjegimin e prodhimit të mjeteve dhe duke i dhënë përparësi pozitiveve dhe dobësive false në MEV dhe logjikën e biznesit
  • Kuptoni se një 'skanim i pastër' nuk është një certifikatë sigurie, se skanimi është vetëm një shtresë kontrolli

Ne pamë disiplinën holistike të auditimit në njësinë e mëparshme. Në këtë njësi, ne fokusohemi në një temë më teknike: skanimi i cenueshmërisë - kërkimi sistematik për modelet e njohura të cenueshmërisë në kod. Këtu do të përdorim AI, së bashku me mjetet e analizës statike, si një asistent që skanon dhe përshkruan modelet e njohura të cenueshmërisë. Qëllimi: të njihen në thellësi dobësitë më të zakonshme dhe të dallosh se ku është e besueshme AI dhe ku është e pamjaftueshme në skanimin e tyre.

Skanim statik dhe dinamik

Skanimi është i dy llojeve. Analiza statike — ekzaminimi i kodit pa e ekzekutuar: Mjete të tilla si Slither dhe Mythril skanojnë kodin e kontratës dhe tregojnë modele të njohura. Analiza dinamike/simbolike (ekzekutimi i kodit me hyrje të ndryshme ose eksplorimi i tij matematikisht): fuzzing (bombardimi me hyrje të rastësishme) dhe ekzekutimi simbolik (eksplorimi i të gjitha shtigjeve të mundshme) hyjnë në këtë grup.

AI nuk i zëvendëson këto mjete, por i plotëson ato: kur automjeti lëshon një paralajmërim, AI shpjegon paralajmërimin në gjuhë të thjeshtë; AI mund të kujtojë kur mjetit i mungon një model; Por vetëm AI nuk mund të garantojë se sa skanon. Rrjedha e duhur e punës: mjet + AI + njeri.

Këshillë: Jepni inteligjencës artificiale rezultatin e një mjeti analize statike (p.sh. raporti Slither) dhe kërkoni "shpjegoni çdo alarm në gjuhë të thjeshtë, cilat janë rreziqe reale dhe cilat mund të jenë pozitive false?" pyesni. Inteligjenca artificiale është e paçmueshme në bërjen e prodhimit të mjeteve të papërpunuara të kuptueshme dhe të prioritizuar për njerëzit.

Modelet më të zakonshme të cenueshmërisë

1. Rihyrje. Nëse një funksion thërret një kontratë të jashtme pa e përditësuar gjendjen e saj, kontrata e thirrur mund të kthehet, të aktivizojë përsëri të njëjtin funksion dhe të tërheqë fondin disa herë. Zgjidhja: urdhri i kontrolleve-efekteve-ndërveprimeve dhe ruajtja e rihyrjes.

2. Mungesa e kontrollit të aksesit. Një funksion kritik (tërheqje, tërheqje, përmirësim) bëhet publik aksidentalisht. Është një nga gabimet më të zakonshme dhe më të shtrenjta.

3. Manipulimi i orakullit. Mbështetja e verbër e kontratës në një burim të jashtëm çmimi (orakull). Sulmuesi manipulon çmimin në çast dhe mashtron protokollin. Zgjidhja: çmimi mesatar i ponderuar me kohë (TWAP), me shumë burime.

4. Mbyllje/nëngëzim i numrit të plotë. Kur një numër tejkalon vlerën maksimale të lejuar dhe kthehet në fillim. Modern Solidity kap shumicën e tij automatikisht, por rreziku mbetet në kodin e nivelit të ulët (montim).

5. Drejtimi i përparmë. Transaksionet shfaqen në grupin publik (mempool) përpara se të konfirmohen; Sulmuesi mund të shohë transaksionin tuaj dhe të fusë transaksionin e tij përpara tij. MEV (Maximal Extractable Value - vlera e nxjerrë nga sekuenca e transaksionit) është emri i përgjithshëm i këtij subjekti.

6. Mohimi i Shërbimit (DoS). Një lak bëhet shumë i shtrenjtë dhe e bën funksionin të papërdorshëm, ose një varësi nga një adresë bllokohet.

7. Rreziqet e përmirësimit. Përplasja e ruajtjes dhe abuzimi me autoritetin në kontratat e përmirësuara.

cenueshmëria

Besimi i skanimit të AI

Pse

rihyrje

lartë

Model i njohur, i qartë

kontrolli i aksesit

lartë

Myku mund të skanohet

Operacionet me numra të plotë

lartë

kontroll standard

Manipulimi i orakullit

e mesme

Kërkon kontekst

Përpara/MEV

Mesatar-I ulët

specifike për protokollin

gabim i logjikës së biznesit

të ulëta

Autentike, kontekstuale

Prompt i dobët / Prompt i fortë

Njoftim i dobët:

A ka ndonjë zbrazëti në këtë kod?

Njoftim i fuqishëm:

Roli juaj: asistent i kontrollit të sigurisë. Skanoni kontratën më poshtë për modelet e mëposhtme të njohura dhe "në rrezik/jo/i pasigurt" për secilën: rihyrja, kontrolli i aksesit, operacionet me numra të plotë, varësia nga orakulli, ekzekutimi i përparmë, DoS, siguria e azhurnimit. Lidhni çdo përcaktim me rreshtin përkatës dhe shpjegoni pse ekziston rreziku. Këto janë hipoteza që DO TË VERIFIKOHEN me një mjet analize statike dhe auditor. Vini re se mund të ketë rezultate false.

Katër shabllone të kopjueshëm

1) Përshkrimi i daljes së mjetit:

Më poshtë është raporti i një mjeti të analizës statike (Slither). Shpjegoni çdo alarm në gjuhë të thjeshtë: çfarë do të thotë, është një rrezik real apo një pozitiv i mundshëm fals, cili duhet të jetë prioriteti i tij? Mos merrni një vendim të prerë; Prioritet për konfirmimin e auditorit.

2) Shqyrtimi i fokusuar në rihyrje:

Gjeni të gjitha funksionet që bëjnë thirrje të jashtme në këtë kontratë. Shqyrtoni nëse rendi kontrolle-efekte-ndërveprime ndiqet për secilën prej tyre dhe nëse ka një roje rihyrjeje. Tregojini ato të rrezikshmet me një vijë. Shënoni nëse nuk jeni të sigurt; Gjenerimi i kodit të shfrytëzimit.

3) Harta e kontrollit të aksesit:

Listoni të gjitha funksionet e jashtme/publike në këtë kontratë dhe specifikoni "kush mund të telefonojë" (të gjithë/pronar/roli) për secilën. Kryeni operacione kritike (tërheqje, printim, përmirësim) dhe shënoni ato me kontroll të dobët të aksesit. Paraqisni atë me një tabelë.

4) Eliminimi fals pozitiv:

Konsideroni pse ky paralajmërim skanimi mund të mos jetë një rrezik REAL (false pozitiv): cili kontekst ose kusht kodi do ta zhvlerësonte këtë paralajmërim? Por mos thuaj “nuk ka absolutisht asnjë problem”; Rendisni pikat që kanë nevojë për konfirmim.

Tre mini kuti (në numër)

Rasti 1 - Vehicle + AI dyfishoi efikasitetin. Një ekip drejtoi Slither në një projekt me 12 kontrata dhe mori 140 paralajmërime. Sapo AI të shpjegonte dhe t'i jepte përparësi sinjalizimeve, rezultoi se 95 nga 140 sinjalizimet ishin false pozitive; Ekipi u fokusua në 45 kandidatë realë. Koha e triazhit u ul nga 2 ditë në 5 orë. Mësimi: AI është i fuqishëm në humanizimin e prodhimit të automjeteve.

Rasti 2 - AI rrëmbeu MEV. Në një kontratë DEX (shkëmbim i decentralizuar), AI i gjeti modelet standarde të pastra, por nuk arriti të zbulonte një cenueshmëri të përparme; sepse kjo ishte specifike për rendin e operacioneve të protokollit. Auditori njerëzor dhe simulimi i kapur. Mësimi: Rreziqet specifike të protokollit si MEV/përparimi janë zona e dobët e AI.

Rasti 3 - Shmangia e humbjes së kohës për një pozitiv të rremë. Ekipi u kursye nga një rishkrim i panevojshëm kur AI shpjegoi se një paralajmërim për rihyrje ishte në të vërtetë një pozitiv i rremë (funksioni ishte tashmë i ruajtur). Por ekipi ende e konfirmoi atë me një test të vetëm. Mësimi: UA jep përparësi; Konfirmimi vjen sërish me testim.

Kufijtë e skanimit

Skanimi gjen modele të njohura. As mjeti dhe as AI nuk janë të garantuara për të zbuluar një cenueshmëri të re, unike ose specifike për protokollin. Prandaj, shqyrtimi është pjesë e auditimit; jo ai vetë. Ideja se "skanimi është i pastër, pra do të thotë se është i sigurt" është një nga keqkuptimet më të rrezikshme në këtë fushë. Gërmimi mbledh frutat me varje të ulët; Për rreziqe të thella dhe unike, ekspertiza njerëzore, testimi, turbullimi dhe auditimi formal janë thelbësore.

Kujdes: Një raport "i pastër" i një mjeti skanimi ose AI nuk është një certifikatë sigurie. Paraqitja e tij në këtë mënyrë - veçanërisht për investitorët - është mashtruese dhe joetike.

Gabimet e zakonshme

  • Zëvendësimi i kontrollit për inspektim. Skanimi është një shtresë, jo e tërë.
  • Përdorimi i AI pa mjete. Analiza statike + AI + punë njerëzore së bashku.
  • Eliminimi i rezultateve false pa konfirmim. Çdo ekran është testuar/verifikuar nga njeriu.
  • Duke anashkaluar rreziqet specifike të protokollit (MEV) duke u mbështetur në AI. Zona e dobët e AI.
  • Mendimi "skanim i pastër" = "i sigurt". Nuk mund të gjejë të panjohurën.
  • Gjenerimi i kodit të shfrytëzimit. Vetëm përshkrimi i rrezikut mbrojtës është i ligjshëm.

Në përmbledhje

  • Skanimi i cenueshmërisë kërkon modele të njohura të cenueshmërisë me automjet + AI + njeri.
  • Inteligjenca artificiale është e fuqishme në shpjegimin dhe prioritizimin e rezultateve të mjeteve të analizës statike.
  • I besueshëm në modele të qarta si rihyrja dhe kontrolli i aksesit; I dobët në MEV dhe logjikën e biznesit.
  • Edhe eliminimi i rezultateve false kërkon konfirmim.
  • Një "skanim i pastër" nuk është një certifikatë sigurie; Nuk është një zëvendësim për mbikëqyrjen.

Detyra e aplikimit

Drejtoni një mjet analize statike në një kontratë mostër (nëse është e mundur) ose gjeni një raport të gatshëm Slither. Aplikoni kërkesën "Tool output description" në AI. Vlerësoni nëse AI: (1) shpjegon saktë paralajmërimet, (2) ka kuptim në dallimin midis pozitiveve të rreme dhe (3) humbet një rrezik specifik të protokollit. Plotësoni kolonat "automjeti i gjetur / AI i shpjeguar / i konfirmuar nga njeriu" në një tabelë.

listë kontrolli

  • [ ] E pozicionova kapakun si një shtresë kontrolli.
  • [ ] Kam përdorur mjetin e analizës statike + AI + njeriu së bashku.
  • [ ] Kërkova kategori sipas kategorisë për modele të njohura.
  • [ ] Kam eliminuar false pozitive me konfirmim.
  • [ ] Unë u mbështeta te njerëzit në fusha të dobëta si MEV/logjika e biznesit.
  • [ ] Unë nuk ofrova "pastrim të pastër" si garanci.
  • [ ] Kam punuar vetëm për qëllime mbrojtjeje; Unë nuk kam krijuar shfrytëzime.