Возможности Приложение Тарифы API Демо Блог Презентация Документация Запросить демо
← Все статьи

Натравили ИИ-хакера на свой биллинг: автономный пентест Strix

Платформа · 12 минут

После взлома одного из наших серверов в мае — того самого, куда залез майнинг-ботнет, — вопрос «а что нашёл бы настоящий атакующий?» перестал быть теоретическим. Обычно на него отвечает пентест: живой специалист неделю ковыряет систему руками. Мы решили проверить, на что способен новый класс инструментов — автономный ИИ-пентестер, который не просто сканирует, а сам пытается ломать и доказывает каждую дыру рабочим эксплойтом.

Взяли Strix — open-source-инструмент, где несколько ИИ-агентов ведут себя как команда хакеров: поднимают приложение, картируют его, подбирают атаки и проверяют находки настоящими proof-of-concept. Ниже — честный рассказ, как мы его завели (спойлер: с приключениями) и что он у нас нашёл.

Правило номер один: никогда по продакшену

Strix не сканер уязвимостей в привычном смысле. Он реально атакует: шлёт вредоносные запросы, пробует SQL-инъекции, подставляет чужие идентификаторы, пытается обойти авторизацию. Направлять такое на боевой биллинг с живыми абонентами нельзя — это мусорные данные, ложные списания, сорванные алерты в лучшем случае.

Поэтому цель — наш демо-стенд demo.billing.smit34.ru: обезличенная копия, которую не жалко. Перед запуском мы сделали две вещи. Во-первых, обновили стенд до текущей версии биллинга (v3.6.0, build 2623) — иначе проверять устаревший код бессмысленно. Во-вторых, сняли полный бэкап базы: что бы агент ни устроил, стенд восстанавливается одной командой.

Обновление стенда само оказалось мини-историей. Скрипт ночной синхронизации демо тянет с боевого сервера только данные — код обновляется отдельно. При переносе кода всплыла ровно та ловушка, о которой мы писали не раз: рабочее дерево на боевом сервере отставало от того, что реально крутится в контейнере. В демо приехала устаревшая копия одного модуля и дубль миграции — стенд отвечал 500, пока мы не подтянули код прямо из живого контейнера и не убрали лишний файл. Прод так не чинят на бегу — потому и тренируемся на демо.

Где это запускать, если ты в России

Strix — это Linux, Docker и обращения к большой языковой модели. Каждый из трёх пунктов выстрелил.

Рабочая машина не подошла сразу: системный диск был забит под ноль, а api.anthropic.com из российского адреса просто не открывается — та же стена, в которую упирается наш собственный ИИ-ассистент. Docker локально тоже не смог бы скачать образ песочницы: места нет.

Боевой сервер отпал по другой причине. Прокси, через который биллинг ходит к нейросети, там есть — но международный канал сервера жёстко порезан. Образ песочницы Strix весит почти 6 ГБ; на такой скорости он качался бы полночи. Вдобавок выяснилось, что из России сейчас перехвачен и сам Docker Hub: адрес registry-1.docker.io отдаёт чужой сертификат (какой-то filecloudonline вместо реестра). Пришлось искать образы на зеркалах, до которых достаём.

Сработал третий вариант — наш зарубежный VPS, тот самый, что уже проксирует ИИ-трафик биллинга. Ubuntu 24.04, свежий Docker, быстрый канал и прямой доступ к нейросетям без всяких прокси. Движок — там, цель — наш демо-стенд, бюджет запуска ограничили сверху, чтобы автономный агент не ушёл в долгую.

А каким мозгом его питать

Отдельная история — какая нейросеть будет думать за агентов. И здесь два очевидных кандидата отпали по совершенно разным причинам.

Claude подходил идеально: он и умный, и, в отличие от многих, спокойно берётся за авторизованный пентест собственной системы. Не взял по прозаической причине — на счету закончились деньги. Пополнить в моменте было нечем.

ChatGPT (пробовали и gpt-4o, и свежий gpt-5.6) просто отказался работать: на первых же запросах вернул «этот контент помечен как возможный киберриск». Политика OpenAI не даёт использовать модель для наступательной безопасности — даже когда ты честно тестируешь свою систему с её же учётными данными. Формально понятно, на практике — инструмент в руках недоступен.

Выручил Grok (модель grok-4.6): и по карману, и берётся за задачу без нравоучений. На нём и поехали. Мораль на будущее: для средств безопасности годится не «лучшая модель вообще», а та, что одновременно доступна из твоей сети и согласна делать работу. Из России это сужает выбор вдвойне.

flowchart LR
  A[Зарубежный VPS<br/>Strix + песочница Docker] -->|прямой доступ| B[Нейросеть<br/>Claude Sonnet]
  A -->|атаки по HTTPS| C[demo.billing.smit34.ru<br/>обезличенная копия v3.6.0]
  D[Боевой биллинг] -.->|только снимок кода| C
  style D stroke-dasharray: 4 4

Как выглядит работа автономного пентестера

Запуск — одна команда: цель, режим, ограничение бюджета и файл с инструкциями (что в зоне действия, какие учётные данные для входа, на чём сфокусироваться). Дальше Strix сам поднимает контейнер-песочницу и разворачивает в нём команду агентов.

Первое, что он делает, — разведка: обходит все страницы, снимает отпечаток технологий, собирает формы и параметры. Затем строит модель угроз и список задач с приоритетами — и мы видели этот список живьём: «картирование поверхности», «проверка IDOR на объектах абонент/финансы/заявка» с меткой critical, и так далее. Каждую задачу берёт отдельный агент, а найденное тут же пытается подтвердить эксплойтом — Strix принципиально не отдаёт находку без доказательства, чтобы не заваливать отчёт ложными срабатываниями статических анализаторов.

Что он нашёл

Главный результат приятно скучный: ни одной подтверждённой эксплуатируемой уязвимости. Strix прогонял стандартный набор атак по методологиям OWASP WSTG и PTES с трёх позиций атакующего — аноним, абонент, админ — и ни одну дыру не смог довести до рабочего эксплойта.

Итоговая сводка Strix: 0 уязвимостей, стоимость $15, модель grok-4.6
Итог прогона: цель, ноль эксплуатируемых уязвимостей, расход токенов и стоимость

Важно, что это не «сканер ничего не нашёл» — часть проверок агент закрыл с доказательством, то есть показал, что защита реально работает:

Карта проверок Strix: закрытые с доказательством контроли и открытые лиды
Что проверено: слева — закрыто с доказательством, ниже — лиды на ручную доработку

Честный список того, что осталось открытым

Ноль уязвимостей — не то же самое, что «всё идеально». Strix сам, без прикрас, отметил, где прогон был неполным, и это самое ценное в отчёте:

flowchart TD
  A[Прогон standard,<br/>тайм-бокс] --> B[Закрыто с доказательством]
  A --> C[Осталось открытым<br/>= лиды на доработку]
  B --> B1[SSRF на адресных API]
  B --> B2[SQLi на адресных API]
  B --> B3[REST API требует токен]
  C --> C1[IDOR в /lk/ — не было<br/>учётки абонента]
  C --> C2[Подпись платёжного вебхука]
  C --> C3[SSRF/RCE через NAS SOAP]
  C --> C4[XSS / CSRF на формах]

Самый показательный пробел — IDOR в личном кабинете (можно ли, зная свой номер, открыть чужой счёт или заявку по соседнему ID). Проверить его агент не смог по простой причине: мы дали ему вход в админку, а кабинет пускает по договору/телефону/e-mail, и двух разных абонентских сессий у него не было. Так что перебор чужих ID остаётся непроверенным, а не опровергнутым. Урок на следующий раз: пентестеру нужно давать те же учётки, что и настоящему клиенту.

Ещё три поверхности агент только наметил: подпись платёжного вебхука (поддельный «платёж» — это прямой убыток, проверять обязательно), SOAP-эндпоинты NAS (run_script — по сути управление командами на оборудовании) и XSS/CSRF на формах кабинета и админки. По каждому Strix оставил конкретный план перепроверки — вплоть до «отправьте вебхук без подписи и убедитесь, что баланс не меняется».

И отдельным списком — гигиена, которую стоит закрыть независимо от находок: единая схема аутентификации API вместо «зоопарка» заголовков (и никакого alg: none в JWT), ограничение попыток входа в админку, единообразные ошибки «неверный логин/пароль», флаги Secure/HttpOnly/SameSite на куки, выключенный DEBUG и заголовки безопасности (HSTS, CSP, X-Frame-Options).

Стоил весь прогон около 15 долларов и примерно полчаса: 23,7 млн входных токенов (почти все — из кэша), 142 тысячи на выходе. За эти деньги мы получили структурированный отчёт по методологии, карту проверенных поверхностей и приоритизированный список на ручную доработку. Живому пентестеру за такую же карту пришлось бы заплатить в разы больше — но и глубину он дал бы другую.

Что мы вынесли из эксперимента

Автономный ИИ-пентест — это не замена живому специалисту, а неутомимый первый эшелон. Он за один прогон систематически прощупывает то, на что у человека уходят часы рутины: перебирает пейлоады инъекций, подставляет чужие идентификаторы, ищет открытые точки. И, в отличие от статических сканеров, не заваливает отчёт «возможными» проблемами — то, что не удалось подтвердить эксплойтом, честно помечает как «не воспроизвелось».

Границы тоже очевидны. Модель попроще пропустит хитрую логическую дыру. Многие находки — это лиды на ручную проверку, а не готовый вердикт. И сам инструмент капризен к окружению: из России его пришлось запускать в обход трёх блокировок сразу, а половина топовых нейросетей для такой задачи недоступна — по деньгам или по политике.

Главный итог — не список из отчёта, а привычка. После взлома мы решили не ждать следующего «сюрприза», а регулярно смотреть на свой продукт глазами атакующего. Автономный агент делает такой взгляд дешёвым и повторяемым: обновили демо-копию, натравили, разобрали находки. Один раз настроил — гоняй хоть каждый релиз.

Ответственно и по правилам. Всё, что описано, — тест своей инфраструктуры на изолированной обезличенной копии, с полным бэкапом и без единого запроса к чужим системам. Направлять подобные инструменты на чужие ресурсы без письменного разрешения — уже не пентест, а атака со всеми вытекающими. Мы проверяем только себя.

Как это устроено внутриПолный лог прогона, отчёт по OWASP и грабли запуска Strix из России — в канале разработки.

Посмотреть на своих данных

Покажем платформу на живом стенде и разберём ваш случай. Или спросите ассистента прямо сейчас — он отвечает по документации и настройкам.

Поделиться ВКонтакте Telegram

Читайте также

7 мин
Клиенты

AI-агент в поддержке: что он закрывает сам, а что отдаёт человеку

Три четверти обращений закрываются без оператора — но только если агент подключён к биллингу и умеет вовремя позвать человека. Разбираем, где проходит эта граница.

Читать →
6 мин
Сеть и оборудование

Оборудование под подотчёт: как склад перестаёт быть тетрадкой

Роутеры «где-то у монтажников», недостача, которую находят раз в год, и списание задним числом. Как выглядит учёт, при котором вещь всегда числится за кем-то одним.

Читать →
7 мин
Деньги

Платежи юрлиц: как перестать разбирать выписку руками

Оплата пришла, а клиент числится должником и уходит в блокировку. Разбираем путь платежа от письма банка до зачисления и то, почему часть платежей всегда придётся смотреть глазами.

Читать →