Компанията Theori създаде 28 приложения с помощта на кодиращи агенти с изкуствен интелект и сканира всяко едно от тях през своята платформа за тестване за проникване (pentesting). Приложенията бяха разработени от пет различни модела на Anthropic и OpenAI. Част от приложенията бяха създадени по спецификация, други – от неформални насоки (prompts), а трети бяха пренаписани от стара кодова база на PHP.
Екипът очакваше да открие масово инжектиране на код – SQL инжекции, крос-сайт скриптинг (XSS) и други грешки, които обикновено преобладават в ръководствата за сигурност. Те обаче почти не се появиха. Моделите самостоятелно са използвали подготвени заявки (prepared statements) и ORM технологии, като са пречиствали входящите данни.
Андрю Уези, технически директор в Theori, обяснява това с общите характеристики на лесно откриваемите грешки: „Водещите модели разбират по-добре добре документираните класове уязвимости, но тези класове уязвимости също така са по-прости и изискват по-малко контекст за идентифициране и коригиране“, споделя той пред Help Net Security. Често един ред код показва дефекта и един ред код го отстранява.
Изчерпването на ресурси и проблемите с отказ от обслужване (DoS) се оказаха най-често срещаните недостатъци – 21% от всички констатации. Неограничено странициране, липса на лимити за честота на заявките (rate limits), синхронна работа, която блокира целия процес – тези проблеми се появиха в почти всеки проект.
Въздействието се усеща при експлоатация – сървърът може да натрупа огромна сметка или атакуващ да го срине.
Уези поставя тези проблеми в категорията, която моделите все още пропускат: „Класовете уязвимости, с които моделите все още се затрудняват, са тези, които изискват разбиране на системно ниво“, казва той. „Уязвимостите от тип изчерпване на ресурси изискват разбиране на ограниченията на системата: колко заявки в секунда се очаква да обработва тя.“ Моделът трябва да знае колко заявки трябва да приема услугата и колко голям може да бъде каченият файл, а често тези параметри не присъстват никъде в кода.
Грешките, които растат с приложението
Разкриването на тайни (secrets exposure) представлява близо половината от критичните констатации. Твърдо кодирани ключове, стойности по подразбиране за SECRET_KEY, JWT тайни, които позволяват на атакуващ да фалшифицира сесия. Тези дефекти присъстват в шаблоните за бърз старт, с които са обучени моделите, и преминават успешно всяка проверка от типа „работи ли“.
Проблемите с контрола на достъпа разкриват зависимост от мащаба на проекта. IDOR уязвимостите, при които потребителят има достъп до данни извън своите разрешения, съставляват 11% от констатациите при малките проекти.
При пренаписаната CMS система този дял достига 28%. Проверката за собственост на един и същ потребител е локална и лесна. Но правило, което обхваща стотици крайни точки в голямо приложение, почти винаги оставя пропуски.
Първоначалното сканиране откри 8 827 потенциални проблема. От Theori отстраниха дублиращите се данни и разработиха доказателства за концепцията (PoC експлоати), за да потвърдят останалите заплахи.
В крайна сметка останаха 434 реални уязвимости.
Ръчният преглед беше тясно място още преди навлизането на кодирането с изкуствен интелект. Обемът на генерирания код увеличи тази пропаст. Уези вижда само един изход: „Няма друг избор, освен да се използват автоматизирани инструменти за преглед, поне за преглед ред по ред и проверка за уязвимости в сигурността“, казва той.
Той обаче запазва ролята на хората за задачите, изискващи преценка: „Хората все още трябва да ръководят същинския преглед: моделиране на заплахите, архитектура на високо ниво и продуктови решения. По време на прегледите на сигурността автоматизацията допълва експертите, а не ги заменя“, допълва той.
Самата автоматизация също трябва да покрие определени критерии – нисък процент на фалшиви положителни резултати и корекции за сигурност, които отстраняват основната причина, без да нарушават работата на системата. Уези формулира това ясно: „Екипите трябва да проследяват дали тези инструменти решават реални проблеми, или просто харчат токени без никаква стойност.“