Добици:
- Способност разумевања да вештачка интелигенција проширује делокруг ревизора, али га не замењује, и корисна је у скенирању категорија и проналажењу нацрта.
- Бити у стању да препозна да је вештачка интелигенција пропустила првобитну рањивост и грешку пословне логике и да течна „безбедна“ изјава није гаранција
- Способност класификације налаза према степену озбиљности и разумевање да коначно одобрење и професионална одговорност лежи на надлежном ревизору.
Ревизија безбедности (систематско испитивање паметног уговора на рањивости) је најодговорнији посао Веб3. Једна линија коју ревизор пропусти може довести до милионских губитака. У овој јединици ћете научити како да користите АИ као помоћника ревизије; Научићемо од генерисања трагова до писања нацрта налаза. Али најкритичнија реченица је ова: АИ не контролише; То је помоћник који изоштрава око ревизора. Коначну сагласност даје надлежни ревизор који преузима професионалну одговорност.
Зашто је ревизија критична за безбедност
Извештај ревизије уверава пројекат и инвеститоре да је „овај кодекс прегледан“. Ако је ова гаранција лажна, последице су катастрофалне: искоришћен протокол, изгубљено финансирање, пропао пројекат. Стога је употреба АИ у инспекцији најпажљивији део овог модула. АИ проширује делокруг ревизора (присећа више образаца, чита брже), али не замењује ревизора.
Зашто не прође? јер:
- АИ не може да види јединствену/нову рањивост која није у подацима о обуци.
- АИ често пропушта грешку у пословној логици протокола — да је код технички исправан, али економски искористив.
- АИ може дати лажно уверење говорећи „безбедно“ на течном језику; Ово је најопаснији исход.
Слојеви коришћења АИ у контроли
1. Почетно скенирање и подсетник за шаблон. АИ пролази кроз познате обрасце рањивости као што је контролна листа: поновни улазак, контрола приступа, манипулација оракулом, напредовање. Ово осигурава да ревизор не пропусти ниједну категорију.
2. Објашњење кода. Објашњавање сложене функције АИ једноставним језиком омогућава ревизору да брзо схвати логику; али се опис увек упоређује са кодом.
3. Писање нацрта налаза. Када ревизор пронађе рањивост, АИ штеди време у писању нацрта извештаја (опис, утицај, предложено решење).
4. Генерисање контрахипотезе. Питајте АИ "како се ова функција може злоупотребити?" Питати " нас подсећа на агресивну перспективу.
Пажња: Само зато што АИ каже „Нисам пронашао рањивост у овом коду“ НЕ значи „овај код је безбедан“. Доказ одсуства није одсуство доказа. Чињеница да АИ не може да пронађе нешто не чини непотребним да ревизор испита ту област.
Проналажење нивоа озбиљности
Налази ревизије су класификовани према степену озбиљности. АИ треба да користи овај оквир када генерише нацрте:
Ниво
Значење
пример
критичан
Губитак средстава/блокада директно могућ
Повлачење средстава са поновним уласком
висока
Озбиљан утицај у одређеним условима
Неовлашћено штампање (ковница)
средње
Ограничен утицај или тешко стање
Мали губитак са Орацле девијацијом
ниско
Мањи ризик, кршење добре праксе
Недостаје емитовање догађаја
Информације
Небезбедност, читљивост
Недостатак НатСпец-а
Слаби промпт / Јаки промпт
Слабо обавештење:
Да ли је овај уговор безбедан?
Ово питање приморава АИ да донесе апсолутну, неоправдану пресуду попут „да/не“ — управо оно што не желимо.
Снажан упит:
Ваша улога: помоћник вишег ревизора паметних уговора. Скенирајте следећи уговор ради безбедности. Прођите кроз следеће категорије једну по једну: поновни улазак, контрола приступа, целобројне операције, валидација уноса, пророчанство/спољни подаци, фронт-руннинг, ограничење гаса. За сваки НАЛАЗ: (1) релевантни ред кода, (2) ризик од узрока, (3) процењена озбиљност (критична/висока/средња/ниска), (4) предлог решења. Ово су ХИПОТЕЗЕ КОЈЕ СЕ ПОТВРЂУ; Немојте давати „сигурну“ пресуду. Означите области за које нисте сигурни да јасно кажете „нека ревизор потврди“.
Четири шаблона за копирање
1) Прегледање засновано на категоријама:
Скенирајте овај уговор за следеће категорије: поновни улазак, контрола приступа, преливање целог броја, валидација уноса, зависност од оракула, покретање унапред, ДоС/гас. За сваку категорију реците „нема/нема ризика/нисам сигуран“ и повежите своје оправдање са линијом у коду. Немојте доносити коначну пресуду.
2) Контрахипотеза из перспективе нападача:
Размишљајте као нападач: који су начини за злоупотребу ове функције? Напишите сваки сценарио корак по корак и наведите који су услови потребни. Ови сценарији су хипотезе које треба тестирати; НЕМОЈТЕ генерисати стварни код експлоатације, само опишите ризик.
3) Нацрт извештаја о налазима:
Пријавите следећи верификовани налаз на формалном језику ревизије: наслов, озбиљност, опис, утицај, код на који се утиче, кораци за репродукцију, предложено решење. Користите одмерен и технички језик; претеривање. Претпоставимо да је налаз потврдио ревизор, не измишљајте нови налаз.
4) Поправи верификацију:
Испод је рањивост и исправка коју је применио програмер. Испитајте да ли поправка заиста затвара рањивост; означите да ли ствара нови нежељени ефекат или рањивост. Немојте сигурно рећи „затворено“; Завршите са "мора бити потврђено тестирањем".
Три мини кофера (у бројевима)
Случај 1 — АИ је спречио прескакање категорија. Ревизор се спремао да се фокусира на уговор од 400 редова и прескочи категорију пророчанства. АИ скенирање категорија дало је упозорење да су "подаци о ценама из једног извора, отворени за манипулацију". Ревизор га је прегледао и утврдио да је заиста у питању средњи ризик. Лекција: АИ одржава дисциплину покривања.
Случај 2 — Лажно „сигурно“ уверење. Други тим је питао АИ „да ли је ово безбедно?“ упитао је; „Изгледа да нема значајног проблема“, рекао је АИ. Преглед посаде је био лаган. Тада је независни ревизор пронашао грешку у пословној логици: прорачун који је био технички исправан, али чији су подстицаји били искористиви. Лекција: АИ пропушта грешку пословне логике; Не може му се веровати да каже „безбедно“.
Случај 3 — Израда извештаја је уштедела 3 сата. Ревизор је провео пола дана ручно извештавајући о 8 налаза. Када сам проверене налазе дао АИ и одштампао званични нацрт, време је пало за ~3 сата; Ревизор је посветио време продубљивању. Поука: АИ је сигурна и ефикасна у извештавању јер су налази већ верификовани од стране људи.
Рањивост пословне логике: слепа тачка вештачке интелигенције
Најскупље рањивости често не произилазе из техничке грешке у коду, већ из искоришћавања пословне логике: заокруживање искоришћавања наградног рачуна, брза отмица гласа зајма, тренутна манипулација ценом. То су случајеви у којима код ради „исправно“, али се протокол може економично преварити. АИ ће вероватно пропустити такве грешке - посебно оне специфичне за протокол. Стога је преглед пословне логике најинтензивнија област ревизора и најмање се ослања на АИ.
Савет: Питајте АИ „како се могу искористити економски подстицаји овог протокола?“ и користите сценарије који се појављују као полазну тачку — али запамтите да ви и ваш тим треба да урадите праву анализу.
Уобичајене грешке
- Питајте АИ "да ли је безбедно?" Питати и веровати вашем да. Апсолутна пресуда није потребна.
- Заустављање прегледа када АИ каже „Нисам могао да га пронађем“. Одсуство није доказ.
- Делегирање прегледа пословне логике на АИ. То је његова највећа слепа тачка.
- Не користе независне алате (Слитхер итд.). Само вештачка интелигенција није довољна.
- Стављање налаза које је направила АИ у извештај без верификације. Ризик од халуцинација.
- Покушавам да одговорност за контролу ставимо на АИ. Одговорност је на стручњаку.
Укратко
- Ревизија је критична за безбедност; АИ проширује делокруг ревизора, али га не замењује.
- АИ пропушта оригиналну рањивост и грешку пословне логике; Рећи "сигурно" није гаранција.
- Налази се класификују према степену озбиљности; АИ је корисна у генерисању нацрта.
- Контрахипотезе и скрининг категорије чувају дисциплину инклузије.
- Коначно одобрење и професионална одговорност увек лежи на надлежном ревизору.
Задатак апликације
Пронађите пример уговора који садржи познату рањивост (у образовне сврхе, примери „рањивих уговора“ су доступни у отвореном коду). Примените промпт „скенирање засновано на категоријама“ на АИ. Обратите пажњу да ли је АИ: (1) пронашао праву рањивост, (2) произвео измишљене/лажне налазе, (3) донео апсолутне пресуде као што је „безбедно“. Затим га упоредите са алатом за статичку анализу.
контролна листа
- [ ] Питајте АИ "да ли је безбедно?" Уместо тога, имао сам скенирање засновано на категоријама.
- [ ] Сваки налаз сам третирао као хипотезу.
- [ ] Ја/тим сам урадио преглед пословне логике.
- [ ] Унакрсно сам га потврдио помоћу независног алата за статичку анализу.
- [ ] Потврдио сам да АИ не измишља налазе.
- [ ] Налаз сам класификовао према степену тежине.
- [ ] Прихватио сам да коначно одобрење припада надлежном ревизору.