Стартап CodeWall натравил автономного ИИ-агента на внутреннюю ИИ-платформу McKinsey & Company под названием Lilli — и за два часа пол��чил полный доступ к ее продакшн-базе данных. Без учетных данных, без инсайдерского доступа и без участия человека в процессе. Агент сам выбрал McKinsey в качестве цели, обнаружив на HackerOne публичную политику ответственного раскрытия уязвимостей и свежие обновления платформы. Lilli — это корпоративный ИИ-чат-бот для 43 000 сотрудников: поиск по 100 000 внутренних документов, анализ файлов, RAG поверх десятилетий исследований McKinsey. Платформой пользовались более 70% сотрудников, она обрабатывала свыше 500 000 промптов в месяц.

Точка входа оказалась банальной. Агент нашел в открытом доступе документацию к API платформы — более 200 эндпоинтов, 22 из которых работали без аутентификации. Один из них принимал поисковые запросы и записывал их в базу данных. Сами значения были защищены, но имена полей в JSON подставлялись в SQL-запросы как есть — классическая SQL-инъекция, которую штатный сканер OWASP ZAP не заметил. Агент заметил: имена полей возвращались в сообщениях об ошибках. За пятнадцать попыток он восстановил структуру запроса и получил доступ к живым данным.

Масштаб оказался впечатляющим: 46,5 млн сообщений в открытом виде — о стратегии, клиентских проектах, внутренних исследованиях и многом другом. 728 000 файлов, включая 192 000 PDF, 93 000 таблиц Excel и 93 000 презентаций PowerPoint. 57 000 аккаунтов сотрудников, 384 000 ИИ-ассистентов в 94 000 рабочих пространствах. Отдельно агент добрался до 3,68 млн фрагментов RAG-базы — фактически всей базы знаний, которая питала ответы Lilli.

Но самой опасной находкой стало не чтение данных. Системные промпты Lilli — инструкции, определяющие поведение ИИ, его ограничения и правила цитирования — хранились в той же базе, к которой агент получил доступ на запись. Одного SQL-запроса UPDATE в одном HTTP-вызове хватило бы, чтобы незаметно переписать эти инструкции: без деплоя, без изменения кода, без следов в логах. Атакующий мог подменить финансовые рекомендации для консультантов, встроить в ответы ИИ утечку данных или полностью отключить защитные ограничения — и 43 000 пользователей не заметили бы разницы.

McKinsey закрыла все уязвимости в течение суток после получения отчета 1 марта, отключила среду разработки и убрала публичную документацию API. Компания заявила, что расследование с привлечением сторонней компании не выявило доказательств несанкционированного доступа к клиентским данным. Впрочем, независимый аналитик Эдвард Киледжян указывает на важный нюанс: CodeWall доказал, что доступ к данным был возможен, но не продемонстрировал, что данные действительно скачивались. Открытым остается и вопрос о легитимности теста — давала ли политика раскрытия уязвимостей McKinsey право на систематическое чтение боевой базы данных.

P.S. Поддержать меня можно подпиской на канал "сбежавшая нейросеть", где я рассказываю про ИИ с творческой стороны.