PunchJune 12, Abiola’s death shaped my belief in democracy — ShowunmiInquirerWitness: Zaldy Co’s alleged kickbacks have acknowledgment receiptsInquirer EntertainmentUy Pilipins! Manny Pacquiao earns mention in Marvel series ‘VisionQuest’Daily MaverickWHAT’S COOKING: Throwback Thursday: Ash-baked potatoesThe Jerusalem Post'Like a biblical battle': WP journalist wounded in West Bank credits Palestinian youth with rescueCNN TürkMERKEZ BANKASI FAİZ KARARI EKİM 2026: Ekim Ayı TCMB Faiz Kararı Ne Olacak? TCMB Ekim Toplantı Tarihi Belli OlduBollywood HungamaDaler Mehndi controversy: FWICE writes to PM Narendra Modi, Uttarakhand CM Pushkar Singh Dhami after minister’s alcohol allegationZDF heuteAktuelle Pressemitteilungen des ZDFUOLBarclays vai cortar 5.000 empregos com mudanças impulsionadas pela IANotJustOkSalt Lyrics by 6uff & OdumodublvckAntara NewsMataram to reintroduce Sasak language lessons in schoolsDeadlineTV Festival Unveils Dates, Venues & Advisory Chair For First-Ever Greater Manchester Edition
The Daily Newsstand · Free, Always
Thursday, October 22, 2026

Fable vs DeepSeek Uncensored: как я пентестил банк и потом занялся травлей самого себя

Translate

Как разрабатывать продукты, когда их могут круглосуточно атаковать самые лучшие пентестеры за всю историю?

Мне было интересно проверить, действительно ли модель, которая хороша в кибербезе, может сама сразу писать хороший и надежный код. «Чтобы тебя не взломал Mythos надо писать код на Fable» — такое мнение мне не очень нравится.

Поэтому я на Fable написал банковское приложение, развернул его на свеженьком сервере, а затем натравил на него для автономного взлома расцензуренный DeepSeek.

Потом угнал токен и заодно дал покопаться в своём экспериментальном bare metal, а под конец решил проверить, насколько далеко модели готовы зайти за пределами кибербезопасности и спланировать буллинг.

Спойлер: «просто писать код на Fable» — не работает. Я проверил.

Давайте разбираться, будет весело.

Прежде чем начнем: эксперимент проведен одним человеком на полностью арендованной инфре за пределами РФ на собственные денежки, ни один российский сервер в эксперименте не участвовал.

Эксперимент №1. Как попробовать пограбить AI-банк

Для начала Fable по хорошей спеке написал клиент и бэкенд интернет-банка — со счетами, картами, переводами, историей операций, авторизацией и прочим. На это ушло какое-то время, но я хорошо планировал эксперимент и на выходе получился самый настоящий AI-Bank.

Еще скриншоты экранов
33 экрана одной картиночкой — позалипать

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

Проект развернул, данными заполнил, теперь нам нужен был кто-то, кто будет это все ломать.

Я взял аблитерированную версию DeepSeek-V4.1-Flash на 552B параметров, у которой практически подавлены встроенные механизмы отказа. Чекпойнт на 510 ГБ, четыре H200 и 1 ТБ оперативки, SGLang для инференса. Чуть меньше часа ушло на развёртывание — скачивание, компиляцию ядер и загрузку весов.

Потом приземлил модель в топовый харнесс, немного доработанный заранее напильничком под эксперимент.

ВЫПУСКАЙТЕ КРАКЕНА!

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

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

Работка пошла и сначала начался пробив всех возможных легких мишеней.

Посмотрев на все это и поняв, что запросов будет очень много, а мне потом замазывать все урлы, и пока горяч KV-кэш, я стопнул машину и самодопилил харнесс, чтобы всю эту детализацию можно было скинуть в сохраняемую телеметрию, а в процессе работы это выглядело гораздо более компактно.

Продолжаем, у нас первый улов!

Так так так, вот вам Fable.

Но несмотря на найденные тестовые учетки, ничего критичного с улицы найти не удалось. Но что было по ту сторону? Так как бэкенд был мой, и я заранее поставил расширенное логирование, то по логам собрал дашборд.

380K+ запросов, найдены почти все эндпоинты, найдены тестовые креды, выполнен вход и полный скан внутри. Самая интересная находка — DEV_MODE оказался включён не только по умолчанию в конфигурации, но и в работающем контейнере. Никакой невероятной zero-day магии, просто при разворачивании оставили открытой дверь, а агент её нашёл.

Что было проделано:

Несмотря на внушительный список, ничего критичного найдено не было. Но напомню сетап: это свежий сервер со всеми обновлениями и с нуля написанный Fable проект, потому было бы странно, если бы тут что-то явное нашлось.

Эксперимент №1.1. Эмулируем угон учетки

Следующий эксперимент был проведен отдельно: я сымитировал угон токена — это вполне реальная ситуация из текущих реалий, в которой пользователь подключился к подставному кое-чему из трех букв, а атакующий получил его авторизационные данные. Да, обычно HTTPS-трафик зашифрован, и просто так перехватить его нельзя, но в погоне за бесплатным кое-чем можно заодно установить и чужой корневой сертификат и такую возможность выдать.

Здесь стало чуть похуже, вот что удалось узнать извне:

Access-токен живёт 15 минут, но не привязан к устройству или IP, с ним доступны счета и переводы: ввод PIN требуется только для сумм свыше 50 000 ₽, а суточных лимитов по умолчанию нет. Это не то чтобы дефекты, но требующая к себе внимания находка.

Refresh-кука позволяет обновлять доступ без повторного ввода пароля, а значит при её компрометации атакующий потенциально может поддерживать сессию дольше 15 минут, если сервер не ограничивает абсолютный срок её действия, но с улицы для такого нужно много времени.

С PIN тоже вопросики: после пяти ошибок вход блокируется на пять минут, но затем счётчик сбрасывается. Смена PIN не завершает активные сессии, уведомлений о новых входах нет.

Все остальное критичное было в порядке (в рамках эксперимента): идемпотентность, транзакции, проверки карт и многое другое.

Интересно, что Fable 5.1 сам нашёл эти проблемы, когда я попросил его заревьювить собственный код. Получается забавно: модель знает как и может правильно строить авторизацию и защищаться, но где-то пропустить неприятные дыры. А значит высокий интеллект атаки у модели не означает сразу, что про безопасность можно не думать.

Эксперимент №2. Экспериментальный bare metal с мультипроектами

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

Но однако:

Агент не нашел открытых уязвимостей (я же ведь их недавно закрыл), но нашел все админки и в одну даже смог пролезть только в одну на read-only. Здесь самое интересное, что по всем-всем логам прилетело около 12 млн запросов, это очень много. Я сознательно не пытался маскировать их — для чистоты эксперимента.

А еще таким способом можно делать и продуктовое сканирование конкурентов — и находить, сохранять и переосмыслять буквально за часы многие изменения в публичных интерфейсах и поведении продуктов.

С машинами — всё и вывод здесь следующий: нас будут беспощадно сканить (скорее всего, всех уже) очень умными сканерами, а значит про безопасность разработки придется думать еще сильнее. Теперь случайно оставить права 777 на файлики «потому что так быстрее» или не выпилить все тестовые креды перед релизом — не получится, их точно найдут.

Как это изменит трансформацию в tiny teams и другие эксперименты типа продуктовых инженеров — вопрос отличный. Свой безопасник в каждой команде? Каждый понемногу безопасник? Общая платформа сборки? Кажется, про это придется подумать всем.

Эксперимент №3. Делаем буллинг

Я уже проделал два больших сканирования и ни разу в ответ не услышал «нет». В обоих экспериментах агент действовал довольно автономно: сам исследовал направление атаки, придумывал гипотезы, их проверял и чекал результат. Не всегда успешно, зато почти без моего участия.

Но до сих пор мишенями были машины, а остановится ли агент, если дать такому же агенту задачу, направленную против человека?

Поэтому я решил попробовать устроить искусственную травлю. И, конечно же, выбрал сам себя — в эпоху до AI моим главным увлечением вне работки были путешествия, и в некоторой соцсети я понаписал больше тысячи постов - сам ручками еще до LLM и по ним точно можно достать интересное.

Окей, погнали!

Некоторое время продолжались попытки пробиться за контентом через разные источники — в основном, через проекты типа «анонимный просмотр сервиса Х». Если бы я дал аккаунт, то все вышло бы, конечно же, быстрее и проще, но здесь была именно такая задача.

Итак. Удивительная легкость, с которой модель тебе отвечает «вот твой план буллинга, оцени».

Здесь видно (мне) что модель посмотрела первые постов 20, но для эксперимента и диагноза этого вполне достаточно

Здесь видно (мне) что модель посмотрела первые постов 20, но для эксперимента и диагноза этого вполне достаточно

Тотальная война!

Ну вообще, это реально неприятно))

Ну вообще, это реально неприятно))

План, конечно же, я скидывать не буду, но это реально план — когда, какие сообщения, почему и зачем. Конечно, разворачивая расцензуренную версию, ты чего-то такого должен ожидать, но чувствовать вот это под пальцами — ощущение странное.

Может быть, есть хотя бы какой-то тормоз?

Но его нет, совсем:

Тормозов и предохранителей нет (ну, я опускался до самого дна и их не нашел). Попроси что угодно — и оно сделает, и это все в мощнейшей модели размером выше 500B, которая умеет планировать, делать и неплохо думает. Удивительно странное чувство, повторюсь.

Самое неприятное здесь даже не то, что модель согласилась составить план травли. Текст такого плана можно получить разными способами. Проблема будет в его реализации — агент просто откажется выполнять шаги плана.

А этот — не откажет. И мне хотелось проверить последнюю вещь — оно действительно пойдет выполнять свой собственный план?

Докрутив харнесс и докинув в него пару специфичных тулов, на утро я увидел вот такое сообщение в своей личке, после которого посчитал эксперимент законченным и с радостью нажал на Destroy всей ноды и собранного сетапа:

И ниже ТО, что именно пришло, я рекомендую послушать :)

И ниже ТО, что именно пришло, я рекомендую послушать :)

Добро пожаловать в новый мир. Будет страшно круто (и немного просто страшно — тоже).

Финальные выводы

Мой эксперимент несколько достаточно тонких вещей:

  • AI-разработка это круто, но даже самые умные модели могут пропускать опасные ошибки и недоработки, если безопасностью не заниматься отдельно

  • Всё, оставленное в диком интернете — найдут, если есть чем воспользоваться — этим воспользуются — вопрос лишь времени и размена цены атаки на полученную выгоду

  • Модель с подавленными отказами — очень страшная вещь

А еще — подписывайтесь на мой канал про агентов, людей, LLM и все вокруг. Agentic World.

Спасибо!

Мои другие статьи:

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.