Табыстар:
- Жасанды интеллект аудитордың қызмет аясын кеңейтетінін, бірақ оны алмастырмайтынын және санаттарды сканерлеуде және жобаны табуда пайдалы екенін түсіну қабілеті.
- Жасанды интеллект бастапқы осалдықты және іскерлік логикалық қатені жіберіп алғанын және еркін «қауіпсіз» мәлімдеме сенімділік емес екенін мойындай алу
- Нәтижелерді маңыздылық деңгейіне қарай жіктеу және түпкілікті бекіту мен кәсіби жауапкершілік құзыретті аудиторға жүктелетінін түсіну мүмкіндігі.
Қауіпсіздік аудиті (осалдықтарға смарт келісім-шартты жүйелік тексеру) Web3-тің ең жауапты жұмысы болып табылады. Аудитор өткізіп алған бір жол миллиондаған доллар шығынға әкелуі мүмкін. Бұл бөлімде сіз AI-ны аудит көмекшісі ретінде пайдалануды үйренесіз; Біз анықтамалар жасаудан қорытындылар жоспарын жазуды үйренеміз. Бірақ ең сыни сөйлем мынау: AI басқармайды; Бұл аудитордың көзін ұштайтын көмекші. Соңғы мақұлдау кәсіби жауапкершілікті өзіне алатын құзыретті аудиторға беріледі.
Неліктен аудит қауіпсіздік үшін өте маңызды?
Аудиторлық есеп жоба мен инвесторларды «осы код қаралды» деп сендіреді. Егер бұл кепілдік жалған болса, салдары апатты болады: пайдаланылған хаттама, жоғалған қаржыландыру, құлаған жоба. Сондықтан, тексеруде AI пайдалану осы модульдің ең мұқият бөлігі болып табылады. AI аудитордың ауқымын кеңейтеді (көбірек үлгілерді еске түсіреді, жылдамырақ оқиды), бірақ аудиторды алмастырмайды.
Неге өтпейді? Өйткені:
- AI жаттығу деректерінде жоқ бірегей/жаңа осалдықты көре алмайды.
- AI жиі хаттаманың іскерлік логикасындағы кемшілікті жіберіп алады - код техникалық тұрғыдан дұрыс, бірақ экономикалық тұрғыдан пайдалануға болады.
- AI еркін тілде «қауіпсіз» деп жалған сенімділік бере алады; Бұл ең қауіпті нәтиже.
Басқаруда AI пайдалану деңгейлері
1. Бастапқы сканерлеу және үлгіні еске салғыш. AI тексеру тізімі сияқты белгілі осалдық үлгілерінен өтеді: қайта кіру, кіруді басқару, oracle манипуляциясы, алдыңғы жұмыс. Бұл аудитордың кез келген санаттарды жіберіп алмауын қамтамасыз етеді.
2. Кодты түсіндіру. AI-ға күрделі функцияны қарапайым тілмен түсіндіру аудиторға логиканы тез түсінуге мүмкіндік береді; бірақ сипаттама әрқашан кодпен салыстырылады.
3. Қорытындылардың жобасын жазу. Аудитор осалдықты тапқан кезде, АИ есеп жобасын жазу уақытын үнемдейді (сипаттама, әсер, ұсынылған шешім).
4. Қарсы гипотезаны құру. AI-дан «бұл функцияны қалай теріс пайдалануға болады?» Деп сұраңыз. «Сұрау бізге агрессивті көзқарасты еске салады.
Назар аударыңыз: AI «Мен бұл кодта осалдықтарды таппадым» дегені «бұл код қауіпсіз» дегенді білдірмейді. Жоқтың дәлелі - дәлелдердің жоқтығы емес. AI бірдеңе таба алмау фактісі аудиторға бұл аймақты тексеруді қажет етпейді.
Ауырлық деңгейлерін табу
Аудит нәтижелері олардың ауырлық деңгейіне қарай жіктеледі. AI жобаларды жасау кезінде осы құрылымды пайдалануы керек:
Деңгей
Мағынасы
мысал
сыни
Қорды жоғалту/локуттау тікелей мүмкін
Қайта енгізу арқылы қаражатты алу
жоғары
Белгілі бір жағдайларда ауыр әсер
Рұқсатсыз басып шығару (минт)
орташа
Шектеулі әсер немесе қиын жағдай
Oracle ауытқуымен шағын жоғалту
төмен
Кішігірім тәуекел, жақсы тәжірибені бұзу
Оқиғаның трансляциясы жоқ
Ақпарат
Қауіпсіздік, оқуға ыңғайлылық
NatSpec жетіспеушілігі
Әлсіз шақыру / Күшті шақыру
Әлсіз шақыру:
Бұл келісімшарт қауіпсіз бе?
Бұл сұрақ AI-ны «иә/жоқ» сияқты абсолютті, негізсіз пайымдауға мәжбүр етеді - дәл біз қаламайтын нәрсе.
Күшті шақыру:
Сіздің рөліңіз: аға смарт келісімшарт аудиторының көмекшісі. Қауіпсіздік үшін келесі келісім-шартты сканерлеңіз. Келесі санаттарды бір-бірден өтіңіз: қайта кіру, қатынасты басқару, бүтін операциялар, енгізуді тексеру, oracle/сыртқы деректер, алдыңғы жұмыс, газ шектеуі. Әрбір ТАБЫЛУҒА: (1) сәйкес код жолы, (2) қауіп себебі, (3) болжамды ауырлық (Критикалық/Жоғары/Орташа/Төмен), (4) шешім ұсынысы. Бұл РЕТТЕУ КЕРЕК ГИПОТЕЗАЛАР; «Қауіпсіз» үкім шығармаңыз. «Аудитор растасын» деп анық айта алмайтын жерлеріңізді белгілеңіз.
Көшірілетін төрт үлгі
1) Санаттарға негізделген шолу:
Осы келісім-шартты келесі санаттар үшін сканерлеңіз: қайта кіру, кіруді басқару, бүтін сандардың толып кетуі, енгізуді тексеру, oracle тәуелділігі, алдыңғы жұмыс, DoS/газ. Әрбір санат үшін «қауіп бар/қауіп жоқ/ мен сенімді емеспін» деп айтыңыз және негіздемеңізді кодтағы жолға қосыңыз. Соңғы үкім шығармаңыз.
2) шабуылдаушының көзқарасы бойынша қарсы гипотеза:
Шабуылдаушы сияқты ойлаңыз: бұл функцияны теріс пайдаланудың жолдары қандай? Әрбір сценарийді кезең-кезеңімен жазып, қандай шарттар қажет екенін көрсетіңіз. Бұл сценарийлер тексерілетін гипотезалар болып табылады; Нақты эксплуатациялық кодты жасамаңыз, тек тәуекелді сипаттаңыз.
3) Қорытындылар туралы есептің жобасы:
Ресми аудит тілінде келесі тексерілген нәтижені хабарлаңыз: тақырып, ауырлық дәрежесі, сипаттама, әсер, әсер ететін код, қайта құру қадамдары, ұсынылған шешім. Өлшемді және техникалық тілді қолдану; асыра сілтеу. Қорытындыны аудитор растады делік, жаңа тұжырым жасамаңыз.
4) Тексеруді түзету:
Төменде осалдық және әзірлеуші қолданған түзету берілген. Түзету осалдықты шынымен жапатынын тексеріңіз; жаңа жанама әсерді немесе осалдықты тудыратынын белгілеңіз. Сөзсіз «жабық» деп айтпаңыз; «Тестілеу арқылы расталуы керек» деп аяқтаңыз.
Үш шағын іс (санмен)
1-жағдай – AI санаттың өтуіне жол бермеді. Аудитор 400 жолдық келісімшартқа назар аударып, oracle санатын өткізіп жібермекші болды. AI санатын сканерлеу «баға деректері бір көзден алынған, манипуляцияға ашық» деген ескерту берді. Аудитор оны тексеріп, оның шын мәнінде орташа тәуекел екенін анықтады. Сабақ: AI қамту тәртібін сақтайды.
2-жағдай – жалған «қауіпсіз» кепілдік. Басқа команда AI-дан «бұл қауіпсіз бе?» Деп сұрады. ол сұрады; «Ешқандай проблема жоқ сияқты», - деді AI. Экипажды тексеру жеңіл болды. Содан кейін тәуелсіз аудитор іскерлік логикалық кемшілікті тапты: техникалық тұрғыдан дұрыс, бірақ ынталандырулары пайдалануға болатын есептеу. Сабақ: AI іскери логикалық қатені жіберіп алады; Оған «қауіпсіз» деп сенуге болмайды.
3-жағдай — Есепті құрастыру 3 сағатты үнемдеді. Аудитор жарты күнді қолмен есеп беруге жұмсады. Мен тексерілген нәтижелерді AI-ға беріп, ресми жобаны басып шығарғаннан кейін уақыт ~ 3 сағатқа қысқарды; Аудитор тереңдетуге уақыт бөлді. Сабақ: AI есеп беруде қауіпсіз және тиімді, өйткені нәтижелер адам тарапынан тексерілген.
Бизнес логикасының осалдығы: AI-ның соқыр нүктесі
Ең қымбат осалдықтар көбінесе кодтағы техникалық қателіктен емес, бизнес логикасының пайдалану мүмкіндігінен туындайды: сыйақы шотын дөңгелектеу, дауысты жедел несие ұрлау, бағаны лезде манипуляциялау. Бұл код «дұрыс» жұмыс істейтін, бірақ хаттаманы экономикалық тұрғыдан алдауға болатын жағдайлар. AI мұндай қателерді, әсіресе хаттамаға тән қателерді жіберіп алуы мүмкін. Сондықтан бизнес-логикалық шолу - бұл аудитордың ең көп адамды қажет ететін және АИ-ге ең аз тәуелді саласы.
Кеңес: АИ-ден «осы хаттаманың экономикалық ынталандыруларын қалай пайдалануға болады?» Деп сұраңыз. және бастапқы нүкте ретінде пайда болатын сценарийлерді пайдаланыңыз, бірақ сіз және сіздің команда нақты талдау жасау керек екенін есте сақтаңыз.
Жалпы қателер
- AI-дан «бұл қауіпсіз бе?» Деп сұраңыз. Иә деп сұрау және сену. Абсолютті пайымдау қажет емес.
- AI «Мен оны таба алмадым» деген кезде шолуды тоқтату. Келмеу дәлел емес.
- Бизнес логикасын тексеруді AI-ға беру. Бұл оның ең үлкен соқыр жері.
- Тәуелсіз құралдарды қолданбау (Slither, т.б.). Жалғыз AI жеткіліксіз.
- АИ жасаған қорытындыны оны тексермей есепке қою. Галлюцинация қаупі.
- Бақылау жауапкершілігін AI-ға қоюға тырысу. Жауапкершілік сарапшыға жүктеледі.
Қысқаша айтқанда
- Аудит қауіпсіздік тұрғысынан маңызды; AI аудитордың ауқымын кеңейтеді, бірақ оны алмастырмайды.
- AI бастапқы осалдықты және бизнес логикалық қатені жіберіп алады; «Қауіпсіз» деп айту кепілдік емес.
- Қорытындылар ауырлық дәрежесіне қарай жіктеледі; AI жобаларды жасауда пайдалы.
- Қарсы гипотеза және категория скринингі қосу тәртібін сақтайды.
- Соңғы бекіту және кәсіби жауапкершілік әрқашан құзыретті аудиторға жүктеледі.
Қолданбалы тапсырма
Белгілі осалдықты қамтитын келісімшарт үлгісін табыңыз (білім беру мақсаттары үшін «осал келісімшарттардың» мысалдары ашық көзде қолжетімді). Жасанды интеллектке «санатқа негізделген сканерлеу» сұрауын қолданыңыз. AI: (1) нақты осалдықты тапты ма, (2) ойдан шығарылған/жалған тұжырымдар жасады ма, (3) «қауіпсіз» сияқты абсолютті пайымдаулар жасады ма екеніне назар аударыңыз. Содан кейін оны статикалық талдау құралымен салыстырыңыз.
бақылау парағы
- [ ] AI-дан "бұл қауіпсіз бе?" Оның орнына менде санатқа негізделген сканерлеу болды.
- [ ] Мен әрбір тұжырымды гипотеза ретінде қарастырдым.
- [ ] Мен өзім/топ бизнес логикасын шолу жасадым.
- [ ] Мен оны тәуелсіз статикалық талдау құралымен айқас тексердім.
- [ ] Мен AI тұжырымдарды ойдан шығармайтынын растадым.
- [ ] Мен нәтижелерді ауырлық деңгейіне қарай жіктедім.
- [ ] Мен түпкілікті бекіту құзыретті аудиторға тиесілі екенін қабылдадым.