Winst:
- Mogelijkheid om veelvoorkomende kwetsbaarheidspatronen zoals herintreding, toegangscontrole, orakelmanipulatie en front-running te herkennen en deze te scannen met een statische analysetool + kunstmatige intelligentie + mens
- Vermogen om onderscheid te maken tussen de sterke punten van AI bij het verklaren van de output van tools en het prioriteren van valse positieven en zwakke punten in MEV en bedrijfslogica
- Begrijp dat een 'schone scan' geen beveiligingscertificaat is, maar dat scannen slechts één controlelaag is
We zagen de holistische discipline van auditing in de vorige unit. In deze unit concentreren we ons op een meer technisch onderwerp: vulnerability scanning – het systematisch zoeken naar bekende kwetsbaarheidspatronen in code. Hier zullen we AI, samen met statische analysetools, gebruiken als assistent die bekende kwetsbaarheidspatronen scant en beschrijft. Het doel: de meest voorkomende kwetsbaarheden diepgaand leren kennen en onderscheiden waar AI betrouwbaar is en waar het niet volstaat om deze te scannen.
Statisch en dynamisch scannen
Er zijn twee soorten scannen. Statische analyse – de code onderzoeken zonder deze uit te voeren: Tools zoals Slither en Mythril scannen de contractcode en markeren bekende patronen. Dynamische/symbolische analyse (de code uitvoeren met verschillende invoer of deze wiskundig verkennen): fuzzing (bombarderen met willekeurige invoer) en symbolische uitvoering (alle mogelijke paden verkennen) vallen in deze groep.
AI vervangt deze tools niet, maar vult ze aan: wanneer het voertuig een waarschuwing geeft, legt AI de waarschuwing in duidelijke taal uit; AI kan eraan herinneren wanneer de tool een patroon mist; Maar AI alleen kan niet garanderen hoeveel het scant. De juiste workflow: tool + AI + mens.
Tip: Geef de AI de output van een statische analysetool (bijvoorbeeld Slither-rapport) en vraag “leg elke waarschuwing in duidelijke taal uit, wat zijn echte risico’s en welke kunnen valse positieven zijn?” vragen. AI is van onschatbare waarde bij het begrijpelijk maken en prioriteren van de uitvoer van onbewerkte tools voor mensen.
Meest voorkomende kwetsbaarheidspatronen
1. Herintreding. Als een functie een extern contract aanroept zonder de status ervan bij te werken, kan het opgeroepen contract teruggaan, dezelfde functie opnieuw activeren en het fonds meerdere keren opnemen. Oplossing: controle-effecten-interacties en herintredingsbewaking.
2. Gebrek aan toegangscontrole. Een kritieke functie (intrekking, intrekking, upgrade) wordt per ongeluk openbaar gemaakt. Het is een van de meest voorkomende en dure fouten.
3. Orakelmanipulatie. De blinde afhankelijkheid van het contract van een externe prijsbron (orakel). De aanvaller manipuleert de prijs onmiddellijk en misleidt het protocol. Oplossing: tijdgewogen gemiddelde prijs (TWAP), meerdere bronnen.
4. Overloop/onderschrijding van gehele getallen. Wanneer een getal de maximaal toegestane waarde overschrijdt en terugkeert naar het begin. Modern Solidity vangt het grootste deel ervan automatisch op, maar het risico blijft bestaan in code op laag niveau (assemblage).
5. Vooraan lopend. Transacties verschijnen in de openbare pool (mempool) voordat ze worden bevestigd; De aanvaller kan uw transactie zien en zijn eigen transactie ervoor invoegen. MEV (Maximal Extractable Value – de waarde die uit de transactiereeks wordt gehaald) is de algemene naam van dit onderwerp.
6. Denial-of-Service (DoS). Een lus wordt te duur en maakt de functie onbruikbaar, of een afhankelijkheid van een adres raakt vergrendeld.
7. Upgraderisico's. Opslagbotsing en misbruik van autoriteit in opwaardeerbare contracten.
kwetsbaarheid
AI-scanvertrouwen
Waarom
herintreding
hoog
Bekend, duidelijk patroon
toegangscontrole
hoog
Schimmel kan worden gescand
gehele bewerkingen
hoog
standaard controle
Orakel-manipulatie
middelmatig
Vereist context
Vooraan/MEV
Gemiddeld-laag
protocolspecifiek
bedrijfslogische fout
laag
Authentiek, contextueel
Zwakke prompt/sterke prompt
Zwakke prompt:
Zit er een maas in deze code?
Krachtige prompt:
Jouw rol: assistent veiligheidsonderzoek. Scan het onderstaande contract op de volgende bekende patronen en 'in gevaar/niet/onzeker' voor elk: herintreding, toegangscontrole, geheeltallige bewerkingen, orakelafhankelijkheid, front-running, DoS, upgradebeveiliging. Koppel elke vaststelling aan de betreffende regel en leg uit waarom er sprake is van een risico. Dit zijn hypothesen die ZULLEN worden geverifieerd met een statische analysetool en auditor. Houd er rekening mee dat er mogelijk valse positieven zijn.
Vier kopieerbare sjablonen
1) Beschrijving van de gereedschapsuitgang:
Hieronder vindt u het rapport van een statische analysetool (Slither). Leg elke waarschuwing in duidelijke taal uit: wat betekent deze, is het een reëel risico of een mogelijk vals-positief resultaat, wat moet de prioriteit ervan zijn? Neem geen definitief besluit; Geef prioriteit aan bevestiging door de auditor.
2) Herintredingsgerichte screening:
Vind in dit contract alle functies die extern bellen. Onderzoek of de volgorde van controles-effecten-interacties voor elk van hen wordt gevolgd en of er een herintredingsbewaker is. Toon de risicovolle met een lijn. Markeer als u het niet zeker weet; Het genereren van exploitcode.
3) Toegangscontrolekaart:
Vermeld alle externe/publieke functies in dit contract en specificeer voor elk "wie kan bellen" (iedereen/eigenaar/rol). Voer kritieke bewerkingen uit (intrekken, afdrukken, upgraden) en markeer de bewerkingen met zwakke toegangscontrole. Presenteer het met een tafel.
4) Vals-positieve eliminatie:
Bedenk waarom deze scanwaarschuwing mogelijk geen ECHT risico vormt (vals positief): welke context of codevoorwaarde zou deze waarschuwing ongeldig maken? Maar zeg niet "er is absoluut geen probleem"; Maak een lijst van de punten die bevestiging nodig hebben.
Drie minikoffers (in aantallen)
Geval 1 — Voertuig + AI verdubbelde de efficiëntie. Eén team voerde Slither uit op een project met twaalf contracten en ontving 140 waarschuwingen. Nadat we de AI de alerts hadden laten uitleggen en prioriteren, bleek dat 95 van de 140 alerts false positives waren; Het team richtte zich op 45 echte kandidaten. De triagetijd nam af van 2 dagen naar 5 uur. Les: AI is krachtig in het humaniseren van de voertuigproductie.
Geval 2 – AI heeft MEV gekaapt. In een DEX-contract (gedecentraliseerde uitwisseling) vond de AI de standaardpatronen schoon, maar slaagde er niet in een front-running kwetsbaarheid te detecteren; omdat dit specifiek was voor de werkingsvolgorde van het protocol. Menselijke auditor en simulatie vastgelegd. Les: Protocolspecifieke risico's zoals MEV/front-running zijn het zwakke punt van AI.
Geval 3 — Voorkomen dat er tijd wordt verspild aan een vals-positief resultaat. Het team bleef een onnodige herschrijving bespaard toen de AI uitlegde dat een herintredingswaarschuwing eigenlijk een vals-positief was (de functie was al bewaakt). Maar het team bevestigde het nog steeds met een enkele test. Les: AI geeft prioriteit; Bevestiging komt opnieuw met testen.
Grenzen van scannen
De scan vindt bekende patronen. Noch de tool, noch de AI zal gegarandeerd een nieuwe, unieke of protocolspecifieke kwetsbaarheid detecteren. Daarom is screening onderdeel van de audit; niet hijzelf. Het idee dat “de scan schoon is en dus veilig is” is een van de gevaarlijkste misvattingen op dit gebied. Baggeren levert het laaghangende fruit op; Voor diepgaande en unieke risico's zijn menselijke expertise, testen, fuzzing en formele audits essentieel.
Let op: Een “schoon” rapport van een scantool of AI is geen beveiligingscertificaat. Het op die manier presenteren – vooral aan beleggers – is misleidend en onethisch.
Veel voorkomende fouten
- Vervanging van screening voor inspectie. Scannen is één laag, niet het geheel.
- AI gebruiken zonder tools. Statische analyse + AI + menselijk werk samen.
- Het elimineren van valse positieven zonder bevestiging. Elk scherm wordt getest/door mensen geverifieerd.
- Protocolspecifieke risico’s (MEV) omzeilen door te vertrouwen op AI. Het zwakke gebied van AI.
- Denken "schone scan" = "veilig". Het kan het onbekende niet vinden.
- Het genereren van exploitcode. Alleen een defensieve risicobeschrijving is legitiem.
Samengevat
- Kwetsbaarheidsscannen zoekt naar bekende kwetsbaarheidspatronen met voertuig + AI + mens.
- AI is krachtig in het uitleggen en prioriteren van de output van statische analysetools.
- Betrouwbaar in duidelijke patronen zoals herintreding en toegangscontrole; Zwak in MEV en bedrijfslogica.
- Zelfs het elimineren van valse positieven vereist bevestiging.
- Een "schone scan" is geen beveiligingscertificaat; Het is geen vervanging voor toezicht.
Applicatie taak
Voer een statische analysetool uit op een voorbeeldcontract (indien mogelijk) of zoek een kant-en-klaar Slither-rapport. Pas de prompt "Tool Output Beschrijving" toe op de AI. Evalueer of de AI: (1) waarschuwingen correct uitlegt, (2) zinvol is bij het maken van onderscheid tussen valse positieven, en (3) een protocolspecifiek risico mist. Vul de kolommen 'voertuig gevonden / AI uitgelegd / mens bevestigd' in een tabel in.
controlelijst
- [ ] Ik heb het luik gepositioneerd als een laag van het besturingselement.
- [ ] Ik heb de statische analysetool + AI + mens samen gebruikt.
- [ ] Ik zocht categorie voor categorie naar bekende patronen.
- [ ] Ik heb valse positieven met bevestiging geëlimineerd.
- [ ] Ik vertrouwde op mensen op zwakke gebieden zoals MEV/bedrijfslogica.
- [ ] Ik heb geen "clean sweep" als garantie aangeboden.
- [ ] Ik werkte alleen voor defensiedoeleinden; Ik heb geen exploits gecreëerd.