С възхода на AI пентестването много хора се питат дали то е толкова добро, колкото човек. Започвайки като пентестър преди дванадесет години и преминавайки през сходни роли до работата по AI пентестъра на Intruder,
успях да разбера предимствата и недостатъците и на двете. Ето как изглежда съпоставката между тях.
Стриктната методология никога не е била силната страна
Може би очаквате AI пентестърите да следват стриктни методологии по начина, по който протичат много пентестове, извършвани от хора.
В Intruder експериментирахме с този подход в самото начало – структурирани системи, в които всеки агент имаше конкретен тип уязвимост, която да търси. Това, което установихме, беше, че агентите пропускаха напълно неща извън техния обхват или погрешно категоризираха намереното като единственото нещо, което им е било казано да търсят, което водеше до объркващи доклади.
Пълната липса на структура също не доведе до добри резултати, тъй като напълно свободните агенти без никакви насоки не можеха да разпределят и управляват правилно големи приложения. Те можеха да открият интересни неща, но за сметка на пропускането на множество други уязвимости в нашите цели.
Проведохме множество тестове, за да намерим баланса между тези подходи, и се спряхме на предоставянето на свобода на агентите с общо дефинирани роли, за да им помогнем да подхождат към големи приложения и да ги управляват, както и по-строги защитни ограничения, за да не причиняват щети.
Това означава, че нашият AI пентестър не отмята точките от документ с методология, които обикновено бихте видели при пентест от човек. Това може да накара някои хора да се почувстват несигурни – стриктната методология дава увереност, че някой е прегледал вашето приложение и е тествал всичко от списъка. SQL инжектиране без автентикация трябва да бъде открито, а контролният списък е там, за да гарантира, че това ще стане.
Методологията създава у много хора представата, че пентестът от човек е напълно повторяем продукт, тъй като всеки тестващ ще може да следва методологията и всичко важно ще бъде открито. Реалността обаче е много по-нюансирана, тъй като пентестването е висококвалифицирана дейност и много от констатациите с най-голямо въздействие при един пентест идват от опита на тестващия да забелязва необичайно поведение и да го проучва задълбочено.
За нашия AI пентестър постигнахме много по-интересни и въздействащи резултати, като не се опитвахме да водим агентите си през конкретни типове уязвимости. Добър пример е комплексно заобикаляне на автентикацията, което агентите откриха и което е престояло в кодовата база в продължение на пет години пентестове, без нито един тестващ човек да го забележи.
Механиката на този проблем означава, че никога не би ви хрумнало да напишете ръководство за тестване, което да може да се следва стриктно за идентифицирането му, а ако бяхме опитали да ограничим твърде много нашия AI пентестър, той също никога нямаше да го открие.
Може да се каже, че откриването само на често срещаните неща все пак би било доста добро, но при пентест се открива толкова широк спектър от нетипични уязвимости. И само защото не са често срещани, не означава, че някой атакуващ не може да ги намери също, особено сега, когато изкуственият интелект се използва все повече за улесняване на атаките.
Стриктната методология, изпълнявана от компетентен тестващ, винаги е осигурявала само ниско базово ниво на надеждност, и дори това не правеше перфектно. Това, което прави един пентест добър, е онази част, която опитният тестващ върши извън контролния списък, и именно тук изкуственият интелект процъфтява – следвайки интуицията си през вашето приложение и намирайки неща, които никога не биха попаднали в списък.
Пентест с всяка основна версия. Сигурност, която е в крак с инженерната разработка.
Агентите за AI пентестване на Intruder осигуряват дълбочината на ръчно ангажиране при поискване: без време за изчакване, без разговори за определяне на обхвата, на малка част от цената.
Тествайте с всяка нова версия, затворете прозореца на излагане на риск и получете готов за одит доклад в рамките на часове.
Какво знаят и какво не могат да попитат
Нашите AI пентестове използват подход от типа „бяла кутия“ (white box), което означава, че агентите получават изходния код. Те преглеждат цялата кодова база и изграждат представа не само за това какво представлява всяка страница, но и как се очаква да функционира приложението и какви заявки могат да се правят. Извършването на това на нивото на детайлност, на което е способен изкуственият интелект, не е възможно за пентестър човек в рамките на обичайния времеви прозорец за пентест.
AI пентестърът също така изгражда разбиране за предназначението на приложението, като добър пример за това е контролът на достъпа – не е необходимо да му се казва, че потребителите с ниски привилегии не бива да имат достъп до административна функционалност или че определена част от данните е чувствителна.
Можете да им предоставите и допълнителна информация, точно както на тестващ човек. Например клиентите често посочват, че се притесняват потребителите им да не получат достъп до данните на други потребители, и пентестърът се справя отлично с фокусирането върху тези проблеми и идентифицирането на много от тях.
Това, което агентите не могат да направят, е да ви попитат за нещо, което вече не сте им дали или казали. Ако по време на пентест не разбирам какво прави дадена част от приложението, мога да попитам моето лице за контакт, а тези разговори могат да бъдат много полезни за правилното тестване на приложението и за оценката на риска в окончателния доклад.
Мога също така да уточня обхвата с лицето за контакт, ако е необходимо, или да поискам разрешение да проверя нещо, когато не съм сигурен дали съществува риск от нарушаване на нормалната работа.
Трябваше съзнателно да направим нашите агенти за AI пентестване предпазливи в това отношение, за да избегнем излизане извън обхвата.
Нито един от двата не намира всичко
Свободата, която позволява на агентите за AI пентестване да открият нещо като сложно заобикаляне на автентикацията, е същото нещо, което ги прави по-малко предвидими. Те решават къде да задълбаят и това няма да бъде еднакво всеки път.
Но резултатите от пентестовете винаги са варирали в зависимост от човека, който ги извършва. Ето защо много консултантски компании сменят вашия тестващ всяка година – различни хора откриват различни неща в едно и също приложение.
Това се свежда до опита, специализацията и инцидентните познания на хората.
Откривал съм проблеми благодарение на публикация в блог или спецификация, която случайно съм прочел години по-рано и е останала в съзнанието ми. И дори нещата от контролния списък понякога се пропускат. Хората допускат грешки, а методичното покриване на цяло приложение в продължение на няколко дни може да бъде трудно.
Постоянното покритие е нещо, върху чието подобряване работим активно, но то никога не е било предлагано безупречно от никого. Ето защо всеки доклад от пентест от човек идва с отказ от отговорност, който гласи именно това, въпреки че повечето хора го четат като формалност.
Препоръките за отстраняване, които не бих могъл да напиша
Всеки пентестър има категорично мнение за това какво прави един доклад добър. През годините изградих много свои собствени виждания, както и останалите настоящи и бивши пентестъри в Intruder. Именно около тези виждания изградихме нашия доклад.
Резюмето за ръководството е най-трудната страница от един доклад за правилно изготвяне. За много хора това е цялостното им впечатление от вашата работа, а в добра консултантска компания в него се влагат много усилия. Работихме упорито, за да стигнем до момента, в който агентите вече пишат наистина добри резюмета, и аз често ги чета първо в нашите собствени доклади, за да получа добър общ поглед, преди да навляза в детайлите.
Това, в което все още не са съвсем точни, е оценяването на риска. Те оценяват нещата по-високо, отколкото аз бих ги оценил, отчасти защото не могат да проведат разговорите с вас, които биха свалили оценката, и отчасти защото LLM клонят към предпазливост, когато започнете да говорите за киберсигурност.
Това е правилната посока, в която да се сбърка, но все пак означава, че ще виждате неща, обозначени като по-сериозни, отколкото са в действителност, и това е нещо, върху което работим.
Указанията за отстраняване на уязвимости са областта, в която агентите се справят отлично. След дълга седмица на тест за проникване е изкушаващо за човек да напише общи съвети, след което се усещате и се опитвате да се справите по-добре. За съжаление, обикновено сте ограничени от времето и най-вече от липсата на изходния код.
Агентите нямат нито един от тези два проблема, така че за всеки открит проблем те ще ви посочат реда код, който трябва да се промени, и с какво точно да се промени. Те също така пишат за смекчаващи мерки за сигурност, които могат да помогнат за намаляване на въздействието на проблема или да осигурят временно решение.
Виждаме как това ускорява скоростта, с която хората действително отстраняват проблемите. Имахме клиент със 78 проблема, който коригира всички тях в рамките на няколко дни – нещо, което като пентестер човек никога не съм виждал да се случва. Не бих могъл да напиша нивото на детайлност, което направи тези корекции възможни, за времето, с което щях да разполагам.
И така, толкова ли е добро AI пентестването, колкото човек?
AI пентестването и пентестването от хора са различни и щом спрете да се опитвате да ги класирате едно спрямо друго, сравнението става много по-полезно.
Агентите откриват сериозни проблеми в приложения, които човешки тестери вече са проверявали многократно. Те прочитат цялата кодова база, анализират всеки възможен път в нея и описват всеки открит случай заедно с корекцията, стигаща точно до конкретния ред код.
Освен това можете да стартирате такъв тест винаги, когато пожелаете. На цената на еднократно наемане на човешки екип можете да изпълните четири AI пентеста, което означава, че можете да извършвате задълбочено тестване редовно, а не веднъж годишно.
Това е ключов аспект, който се пропуска при традиционното тестване от хора, като приложенията често търпят множество непроверени промени между отделните тестове за проникване.
Автор
Написано от Daniel Thatcher, Security Research Engineer, Intruder
Daniel е изследовател по сигурността в Intruder с опит в тестовете за проникване и фокус върху експлоатирането на уеб приложения в сценарии от тип „черна кутия“.
Спонсорирано и написано от Intruder.