Табыстар:
- Қайта кіру, кіруді басқару, oracle манипуляциясы және алдыңғы жұмыс сияқты жалпы осалдық үлгілерін тану және оларды статикалық талдау құралы + жасанды интеллект + адам арқылы сканерлеу мүмкіндігі
- Құралдың нәтижесін түсіндіруде және MEV және бизнес логикасында жалған позитивтер мен әлсіз жақтарды анықтауда AI күшті жақтарын ажырата білу
- «Таза сканерлеу» қауіпсіздік сертификаты емес екенін, сканерлеу басқарудың бір ғана деңгейі екенін түсініңіз
Біз аудиттің біртұтас пәнін алдыңғы бөлімде көрдік. Бұл бөлімде біз неғұрлым техникалық тақырыпқа назар аударамыз: осалдықты сканерлеу — кодтағы белгілі осалдық үлгілерін жүйелі іздеу. Мұнда біз AI-ны статикалық талдау құралдарымен бірге белгілі осалдық үлгілерін сканерлейтін және сипаттайтын көмекші ретінде қолданамыз. Мақсаты: ең жиі кездесетін осалдықтармен тереңірек танысу және AI қай жерде сенімді және оларды сканерлеуде қай жерде жеткіліксіз екенін ажырату.
Статикалық және динамикалық сканерлеу
Сканерлеу екі түрлі болады. Статикалық талдау — кодты іске қоспай-ақ тексеру: Slither және Mythril сияқты құралдар келісімшарт кодын сканерлейді және белгілі үлгілерді белгілейді. Бұл топқа динамикалық/символдық талдау (әртүрлі кірістермен кодты іске қосу немесе оны математикалық түрде зерттеу): fuzzing (кездейсоқ енгізу арқылы бомбалау) және символдық орындау (барлық мүмкін болатын жолдарды зерттеу) жатады.
AI бұл құралдарды алмастырмайды, ол оларды толықтырады: көлік құралы ескерту бергенде, AI ескертуді қарапайым тілмен түсіндіреді; Құрал үлгіні жіберіп алған кезде AI еске сала алады; Бірақ AI өзі қаншалықты сканерлейтініне кепілдік бере алмайды. Дұрыс жұмыс процесі: құрал + AI + адам.
Кеңес: AI-ға статикалық талдау құралының нәтижесін беріңіз (мысалы, Slither есебі) және «әр ескертуді қарапайым тілмен түсіндіріңіз, қайсысы нақты тәуекелдер және қайсысы жалған позитивтер болуы мүмкін?» деп сұраңыз. сұраңыз. AI шикі құралдың шығуын адамдарға түсінікті және басымдыққа ие етуде баға жетпес құндылық болып табылады.
Ең көп таралған осалдық үлгілері
1. Қайта кіру. Егер функция сыртқы келісім-шартты күйін жаңартпай шақырса, шақырылған келісімшарт кері оралып, сол функцияны қайта іске қосып, қорды бірнеше рет алып тастай алады. Шешім: тексерулер-эффекттер-өзара әрекеттесу тәртібі және қайта кіру күзетшісі.
2. Қол жеткізуді басқарудың болмауы. Сыни функция (алып тастау, алып тастау, жаңарту) кездейсоқ жария болады. Бұл ең көп таралған және қымбат қателердің бірі.
3. Oracle манипуляциясы. Келісімшарттың сыртқы баға көзіне (oracle) соқыр тәуелділігі. Шабуылдаушы бағаны лезде басқарады және хаттаманы алдайды. Шешуі: уақыт бойынша өлшенген орташа баға (TWAP), көп көзден.
4. Бүтін санның асып кетуі/төмен түсуі. Сан максималды рұқсат етілген мәннен асып, басына оралғанда. Заманауи Solidity оның көп бөлігін автоматты түрде ұстайды, бірақ тәуекел төмен деңгейлі (құрастыру) кодта қалады.
5. Алдын ала жүгіру. Транзакциялар расталғанға дейін қоғамдық пулда (мемпулда) пайда болады; Шабуылдаушы сіздің транзакцияңызды көре алады және оның алдына өзінің транзакциясын енгізе алады. MEV (Maximal Extractable Value — транзакциялар тізбегінен алынған мән) осы пәннің жалпы атауы болып табылады.
6. Қызмет көрсетуден бас тарту (DoS). Цикл тым қымбатқа түседі және функцияны жарамсыз етеді немесе мекенжайға тәуелділік құлыпталады.
7. Тәуекелдерді жаңарту. Жаңартылатын келісім-шарттардағы сақтаудағы соқтығысу және өкілеттіктерді теріс пайдалану.
осалдық
AI сканерлеу сенімі
Неліктен
қайта кіру
жоғары
Белгілі, айқын үлгі
қол жеткізуді басқару
жоғары
Қалыпты сканерлеуге болады
Бүтін операциялар
жоғары
стандартты бақылау
Oracle манипуляциясы
орташа
Мәтінмәнді қажет етеді
Алдын ала жүгіру/MEV
Орташа-төмен
арнайы хаттама
іскерлік логикалық қате
төмен
Шынайы, контекстік
Әлсіз шақыру / Күшті шақыру
Әлсіз шақыру:
Бұл кодта бос орын бар ма?
Күшті шақыру:
Сіздің рөліңіз: қауіпсіздік скрининг көмекшісі. Төмендегі келісім-шартты келесі белгілі үлгілер үшін сканерлеңіз және әрқайсысы үшін «қауіпте/жоқ/сенімсіз»: қайта кіру, кіруді басқару, бүтін операциялар, oracle тәуелділік, алдыңғы жұмыс, DoS, қауіпсіздікті жаңарту. Әрбір анықтауды тиісті жолға байланыстырыңыз және неліктен тәуекел бар екенін түсіндіріңіз. Бұл статикалық талдау құралымен және аудитормен ТЕКСЕЛЕНетін гипотезалар. Жалған позитивтер болуы мүмкін екенін ескеріңіз.
Көшірілетін төрт үлгі
1) Құрал шығысының сипаттамасы:
Төменде статикалық талдау құралының есебі берілген (Slither). Әрбір ескертуді қарапайым тілмен түсіндіріңіз: бұл нені білдіреді, бұл нақты тәуекел немесе мүмкін жалған позитив пе, оның басымдығы қандай болуы керек? Қатты шешім қабылдамаңыз; Аудитордың растауына басымдық беріңіз.
2) Қайта түсуге бағытталған скрининг:
Осы келісім-шартта сыртқы қоңыраулар жасайтын барлық функцияларды табыңыз. Олардың әрқайсысы үшін тексеру-әсер-өзара әрекеттесу тәртібі орындалғанын және қайта кіру күзетшісінің бар-жоғын тексеріңіз. Тәуекелдерді сызықпен көрсетіңіз. Сенбесеңіз белгілеңіз; Эксплойт кодын жасау.
3) Қол жеткізуді басқару картасы:
Осы келісім-шарттағы барлық сыртқы/қоғамдық функцияларды тізімдеңіз және әрқайсысы үшін «кім қоңырау шала алады» (әркім/ие/рөл) көрсетіңіз. Маңызды әрекеттерді орындаңыз (алып тастау, басып шығару, жаңарту) және қол жеткізуді басқаруы әлсіз әрекеттерді белгілеңіз. Оны кестемен ұсыныңыз.
4) Жалған оң жою:
Неліктен бұл сканерлеу ескертуі REAL қауіп (жалған оң) болмауы мүмкін екенін қарастырыңыз: қандай контекст немесе код жағдайы бұл ескертуді жарамсыз етеді? Бірақ «мүлдем проблема жоқ» деп айтпаңыз; Растауды қажет ететін нүктелерді көрсетіңіз.
Үш шағын іс (санмен)
1-жағдай — Көлік + AI екі есе тиімділік. Бір команда Slither-ді 12 келісімшарттық жоба бойынша іске асырды және 140 ескерту алды. Біз AI түсіндіріп, ескертулерге басымдық бергеннен кейін, 140 ескертудің 95-і жалған болып шықты; Команда 45 нақты үміткерге назар аударды. Триаждау уақыты 2 күннен 5 сағатқа дейін қысқарды. Сабақ: AI көліктің шығуын гуманизациялауда күшті.
2-жағдай – AI MEV-ді ұрлады. DEX (орталықтандырылмаған биржа) келісімшартында AI стандартты үлгілерді таза деп тапты, бірақ алдыңғы орында тұрған осалдықты анықтай алмады; себебі бұл хаттаманың әрекеттер тәртібіне тән болды. Адам аудиторы және модельдеу түсірілді. Сабақ: MEV/алдын ала жүгіру сияқты хаттамаға тән тәуекелдер AI әлсіз аймағы болып табылады.
3-жағдай - Жалған позитивке уақытты жоғалтпау. AI қайта кіру туралы ескерту шын мәнінде жалған позитивті (функция бұрыннан қорғалған) екенін түсіндіргенде, команда қажетсіз қайта жазудан құтылды. Бірақ команда оны бір сынақ арқылы растады. Сабақ: AI басымдықтары; Растау қайтадан тестілеумен бірге келеді.
Сканерлеудің шектері
Сканерлеу белгілі үлгілерді табады. Құралға да, АИ-ге де жаңа, бірегей немесе хаттамаға тән осалдықты анықтауға кепілдік берілмейді. Сондықтан скрининг аудиттің бір бөлігі болып табылады; өзі емес. «Сканерлеу таза, демек ол қауіпсіз дегенді білдіреді» деген пікір осы саладағы ең қауіпті қате түсініктердің бірі болып табылады. Тереңдеу төмен ілулі жемісті жинайды; Терең және бірегей тәуекелдер үшін адам тәжірибесі, тестілеу, анықтау және ресми аудит маңызды.
Абайлаңыз: Сканерлеу құралының немесе AI туралы «таза» есеп қауіпсіздік сертификаты емес. Оны осылай ұсыну - әсіресе инвесторларға - жаңылыс және этикалық емес.
Жалпы қателер
- Скринингті тексеруге ауыстыру. Сканерлеу тұтас емес, бір қабат.
- Құралдарсыз AI пайдалану. Статикалық талдау + AI + адамның бірлескен жұмысы.
- Растаусыз жалған позитивтерді жою. Әрбір экран сыналған/адам тексерген.
- AI-ге сүйену арқылы протоколға тән тәуекелдерді (MEV) айналып өту. AI әлсіз аймағы.
- Ойлау «таза сканерлеу» = «қауіпсіз». Ол белгісізді таба алмайды.
- Эксплойт кодын жасау. Тек қорғаныс тәуекелінің сипаттамасы заңды.
Қысқаша айтқанда
- Осалдықты сканерлеу көлік + AI + адам арқылы белгілі осалдық үлгілерін іздейді.
- AI статикалық талдау құралының шығысын түсіндіруде және басымдық беруде күшті.
- Қайта кіру және қол жеткізуді басқару сияқты анық үлгілерде сенімді; MEV және бизнес логикасында әлсіз.
- Тіпті жалған позитивтерді жоюдың өзі растауды қажет етеді.
- «Таза сканерлеу» қауіпсіздік сертификаты емес; Бұл қадағалауды алмастырмайды.
Қолданбалы тапсырма
Үлгі келісім-шартта статикалық талдау құралын іске қосыңыз (мүмкіндігінше) немесе дайын Slither есебін табыңыз. Жасанды интеллектке «құралдың шығыс сипаттамасы» сұрауын қолданыңыз. AI: (1) ескертулерді дұрыс түсіндіреді, (2) жалған позитивтерді ажырату мағынасы бар ма, және (3) хаттамаға тән тәуекелді жіберіп алғанын бағалаңыз. Кестедегі «көлік табылды / AI түсіндірді / адам растады» бағандарын толтырыңыз.
бақылау парағы
- [ ] Мен люкті басқару элементінің қабаты ретінде орналастырдым.
- [ ] Мен статикалық талдау құралын + AI + адамды бірге қолдандым.
- [ ] Мен белгілі үлгілерді санат бойынша іздедім.
- [ ] Мен растау арқылы жалған позитивтерді жойдым.
- [ ] Мен MEV/бизнес логикасы сияқты әлсіз салаларда адамдарға сендім.
- [ ] Мен кепілдік ретінде «таза тазалауды» ұсынған жоқпын.
- [ ] Мен тек қорғаныс мақсатында жұмыс істедім; Мен эксплуаттарды жасаған жоқпын.