Единици
1. Вовед во вештачката интелигенција во блокчејн и веб3: улоги, граници, автентикација и безбедност-критичност 2. Поддршка за паметно пишување договори: Solidity/Vyper Draft и генерирање безбедно кодови 3. Поддршка за паметна ревизија на договор: безбедносен преглед и нацрт-наоди 4. Скенирање на ранливост: вообичаени модели на ранливост и автоматска анализа 5. Анализа на податоци во синџирот: Да се создаде смисла за блокирање, трансакции и податоци од паричник 6. Анализа на DeFi и протокол: ликвидност, MEV и економски напади 7. Токеномичко моделирање: снабдување, дистрибуција, поттик и симулација 8. Документација и техничко пишување: Бела книга, NatSpec и Упатство за употреба 9. Измама, влечење и откривање ризик: црвени знамиња на синџирот 10. Безбедносно-критична ревизија, одобрување од експерти и одговорна употреба 11. Работен тек од крај до крај, управување, верификација и етика
Единица 3 / 11

Поддршка за паметна ревизија на договор: безбедносен преглед и нацрт-наоди

Добивки:

  • Способност да се разбере дека вештачката интелигенција го проширува опсегот на ревизорот, но не го заменува и е корисна при скенирање на категории и изнаоѓање нацрт.
  • Да се препознае дека вештачката интелигенција ја пропушти оригиналната ранливост и грешка во деловната логика, и дека течното „безбедно“ изјава не е гаранција
  • Способност да се класифицираат наодите според нивното ниво на сериозност и да се разбере дека конечното одобрување и професионалната одговорност е на надлежниот ревизор.

Безбедносната ревизија (систематско испитување на паметен договор за пропусти) е најодговорната работа на Web3. Една линија пропуштена од ревизор може да резултира со загуби од милиони долари. Во оваа единица ќе научите како да користите вештачка интелигенција како асистент за ревизија; Ќе научиме од генерирање индиции до пишување преглед на наодите. Но, најкритичната реченица е оваа: ВИ не контролира; Тоа е асистент кој го изострува окото на ревизорот. Конечното одобрение го има надлежниот ревизор кој презема професионална одговорност.

Зошто ревизијата е критична за безбедноста

Ревизорскиот извештај ги уверува проектот и инвеститорите дека „овој код е прегледан“. Ако ова уверување е лажно, последиците се катастрофални: искористен протокол, изгубено финансирање, пропаднат проект. Затоа, употребата на вештачка интелигенција во инспекцијата е највнимателниот дел од овој модул. ВИ го проширува опсегот на ревизорот (потсетува повеќе обрасци, чита побрзо), но не го заменува ревизорот.

Зошто не поминува? Бидејќи:

  • ВИ не може да ја види уникатната/новата ранливост што ја нема во податоците за обуката.
  • Вештачката интелигенција често го пропушта пропустот во деловната логика на протоколот - дека кодот е технички исправен, но економски може да се искористи.
  • Вештачката интелигенција може да даде лажно уверување со тоа што ќе каже „безбедно“ на течен јазик; Ова е најопасниот исход.

Слоеви на користење на вештачка интелигенција во контрола

1. Почетно скенирање и потсетник за шема. Вештачката интелигенција поминува низ познати обрасци на ранливост како листа за проверка: повторно влегување, контрола на пристап, манипулација со пророчи, предни. Ова осигурува дека ревизорот не пропушта ниту една категорија.

2. Објаснување на кодот. Објаснувањето на сложена функција на ВИ на едноставен јазик му овозможува на ревизорот брзо да ја сфати логиката; но описот секогаш се споредува со кодот.

3. Пишување нацрт на наодите. Кога ревизорот ќе најде ранливост, вештачката интелигенција заштедува време за пишување на нацрт-извештајот (опис, влијание, предложено решение).

4. Генерирање контра-хипотеза. Прашајте ја вештачката интелигенција „како може да се злоупотреби оваа функција? Прашувањето „ нè потсетува на агресивната перспектива.

Внимание: Само затоа што вештачката интелигенција вели „Не најдов никакви пропусти во овој код“ НЕ значи „овој код е безбеден“. Доказот за отсуство не е отсуство на докази. Фактот дека вештачката интелигенција не може да најде нешто не го прави непотребно ревизорот да ја испита таа област.

Наоѓање нивоа на сериозност

Ревизорските наоди се класифицирани според степенот на нивната сериозност. ВИ треба да ја користи оваа рамка кога генерира нацрти:

Ниво

Значење

пример

критички

Директно можно губење/заклучување на фондови

Повлекување средства со повторен влез

високо

Сериозно влијание во одредени услови

Неовластено печатење (нане)

средно

Ограничено влијание или тешка состојба

Мала загуба со отстапување на Oracle

низок

Мал ризик, прекршување на добрата практика

Недостасува пренос на настан

Информации

Небезбедност, читливост

Недостаток на NatSpec

Слаб промпт / Силен промпт

Слаба навестување:

Дали овој договор е безбеден?

Ова прашање ја принудува вештачката интелигенција да донесе апсолутна, неоправдана пресуда како „да/не“ - токму она што ние не го сакаме.

Моќен потсетник:

Вашата улога: помошник на постар ревизор за паметни договори. Скенирајте го следниов договор за безбедност. Поминете низ следните категории една по една: повторно влегување, контрола на пристап, операции со цели броеви, валидација на влезови, oracle/надворешни податоци, предни, ограничување за гас. За секое НАОДИ: (1) релевантна линија на код, (2) предизвикува ризик, (3) проценета сериозност (критична/висока/средна/ниска), (4) предлог решение. Ова се ХИПОТЕЗИ ЗА ПОТВРДУВАЊЕ; Не давајте „безбедна“ пресуда. Обележете ги областите за кои не сте сигурни јасно велејќи „да потврди ревизорот“.

Четири шаблони за копирање

1) Прелистување врз основа на категории:

Скенирајте го овој договор за следните категории: повторно влегување, контрола на пристап, прелевање на цели броеви, валидација на влезот, зависност од oracle, предно, DoS/gas. За секоја категорија, кажете „нема/нема ризик/не сум сигурен“ и поврзете го вашето оправдување со линијата во кодот. Не донесувајте конечна пресуда.

2) Контрахипотеза од перспектива на напаѓачот:

Размислете како напаѓач: кои се начините за злоупотреба на оваа функција? Напишете го секое сценарио чекор по чекор и наведете кои услови се потребни. Овие сценарија се хипотезите што треба да се тестираат; НЕ генерирајте вистински код за експлоатација, само опишете го ризикот.

3) Нацрт извештај за наодите:

Пријавете го следниот проверен наод на формален ревизорски јазик: наслов, сериозност, опис, влијание, погоден код, чекори за репродукција, предложено решение. Користете измерен и технички јазик; претерување. Да претпоставиме дека наодот е потврден од ревизорот, не измислувајте нов наод.

4) Поправете ја верификацијата:

Подолу е ранливоста и поправката применета од развивачот. Проверете дали поправката всушност ја затвора ранливоста; означете дали создава нов несакан ефект или ранливост. Не кажувајте сигурно „затворено“; Заврши со „мора да се потврди со тестирање“.

Три мини футроли (во бројки)

Случај 1 - вештачката интелигенција спречи скокање на категоријата. Ревизорот требаше да се фокусира на договор од 400 линии и да ја прескокне категоријата оракул. Скенирањето на категоријата на вештачката интелигенција даде предупредување дека „податоците за цените се од еден извор, отворени за манипулација“. Ревизорот го испитал и утврдил дека навистина е среден ризик. Лекција: ВИ одржува дисциплина за покривање.

Случај 2 - Лажно „безбедно“ уверување. Друг тим ја праша вештачката интелигенција „дали е ова безбедно? праша тој; „Се чини дека нема значаен проблем“, рече АИ. Увидот на екипажот беше лесен. Тогаш независниот ревизор најде деловно-логички пропуст: пресметка која беше технички исправна, но чии стимулации беа искористливи. Лекција: вештачката интелигенција промаши грешка во деловната логика; Не може да му се верува да каже „безбедно“.

Случај 3 - Изготвувањето на извештајот заштеди 3 часа. Ревизорот поминувал половина од денот рачно известувајќи за 8 наоди. Откако ги дадов проверените наоди на вештачката интелигенција и го испечатив официјалниот нацрт, времето падна за ~ 3 часа; Ревизорот посвети време на продлабочување. Поука: вештачката интелигенција е безбедна и ефикасна во известувањето бидејќи наодите се веќе човечки потврдени.

Ранливост на деловната логика: слепа точка на вештачката интелигенција

Најскапите пропусти честопати не доаѓаат од техничка грешка во кодот, туку од искористеноста на деловната логика: заокружување на експлоатација на наградна сметка, блиц заем киднапирање на глас, моментална манипулација со цена. Ова се случаи кога кодот работи „правилно“, но протоколот може да се измами економски. Вештачката интелигенција веројатно ќе пропушти такви грешки - особено оние специфични за протоколот. Затоа, прегледот на деловната логика е најчовечко интензивната област на ревизорот и најмалку зависна од вештачката интелигенција.

Совет: Прашајте ја вештачката интелигенција „како може да се искористат економските стимулации на овој протокол? и користете ги сценаријата што се појавуваат како почетна точка - но запомнете дека вие и вашиот тим треба да ја направите вистинската анализа.

Вообичаени грешки

  • Прашајте ја вештачката интелигенција "дали е безбедно?" Барање и верување во вашето да. Апсолутно расудување не е потребно.
  • Запирање на прегледот кога вештачката интелигенција ќе каже „Не можев да го најдам“. Отсуството не е доказ.
  • Делегирање на преглед на деловната логика на вештачката интелигенција. Тоа е неговата најголема слепа точка.
  • Некористење независни алатки (Slither итн.). Само вештачката интелигенција не е доволна.
  • Внесување на наодот направен од вештачката интелигенција во извештајот без да се потврди. Ризик од халуцинации.
  • Обидувајќи се да ја ставите одговорноста за контрола на вештачката интелигенција. Одговорноста е на експертот.

Сумирано

  • Ревизијата е критична за безбедноста; ВИ го проширува опсегот на ревизорот, но не го заменува.
  • Вештачката интелигенција ја пропушта оригиналната ранливост и бубачка за деловна логика; Да се ​​каже „безбедно“ не е гаранција.
  • Наодите се класифицирани според степенот на сериозност; ВИ е корисна за генерирање нацрти.
  • Контрахипотезите и скринингот на категории ја зачувуваат дисциплината на вклучување.
  • Конечното одобрување и професионалната одговорност секогаш е кај надлежниот ревизор.

Задача за апликација

Најдете примерок од договор кој содржи позната ранливост (за едукативни цели, примери на „ранливи договори“ се достапни во отворен код). Применете го известувањето „скенирање базирано на категорија“ на вештачката интелигенција. Забележете дали вештачката интелигенција: (1) ја откри вистинската ранливост, (2) произведе измислени/лажни наоди, (3) донесе апсолутни пресуди како што е „безбедно“. Потоа споредете го со алатка за статичка анализа.

листа за проверка

  • [ ] Прашајте ја вештачката интелигенција "дали е безбедно?" Наместо тоа, имав скенирање засновано на категорија.
  • [ ] Секој наод го третирав како хипотеза.
  • [ ] Јас го направив прегледот на деловната логика себеси/тимот.
  • [ ] Вкрстено го потврдив со независна алатка за статичка анализа.
  • [ ] Потврдив дека вештачката интелигенција не фабрикува наоди.
  • [ ] Ги класифицирав наодите според степенот на сериозност.
  • [ ] Прифатив дека конечното одобрение е кај надлежниот ревизор.