G7kL9#mQ2&xP4!w — если ваш пароль выглядит так, вас легко взломать

G7kL9#mQ2&xP4!w — если ваш пароль выглядит так, вас легко взломать

Рассказываем, как нейросети подставляют пользователей.

image

Исследователи из компании Irregular Security опубликовали детальный отчёт: пароли, которые генерируют популярные языковые модели - ChatGPT, Claude и Gemini - выглядят надёжными, но на деле оказываются катастрофически слабыми.

На первый взгляд всё выглядит убедительно. Модели исправно выдают длинные строки из букв, цифр и спецсимволов - вроде G7kL9#mQ2&xP4!w. Популярный инструмент KeePass оценивает подобный пароль примерно в 100 бит энтропии и признаёт его отличным. Сервис zxcvbn уверяет, что на взлом уйдут «века». Но когда исследователи попросили Claude Opus 4.6 сгенерировать 50 паролей - по одному в каждом новом разговоре - картина оказалась совсем иной. Один и тот же пароль G7 kL9#mQ2&xP4!w повторился 18 раз из 50. То есть вероятность его появления составила 36% - вместо ничтожно малой, которую предполагает якобы 100-битная защита. Всего уникальных паролей в той выборке оказалось лишь 30.

Причина кроется в самой природе языковых моделей. Они устроены так, чтобы предсказывать следующий токен, а не генерировать по-настоящему случайные последовательности. Распределение символов в паролях LLM крайне неравномерно: одни символы встречаются почти в каждом пароле, другие - единицы раз или вообще никогда. У Claude в выборке из 50 паролей символы L, 9, m, 2, $ и # присутствовали в каждом из них, тогда как большинство букв алфавита не появились ни разу. GPT-5.2 начинал почти каждый пароль с буквы v, а Gemini 3 Flash - с K или k. При математическом расчёте реальная энтропия 16-символьного пароля Claude составила около 27 бит - вместо ожидаемых 98. Это разница между «взломать за миллиарды лет» и «взломать за секунды».

Повышение параметра «температуры» - настройки, отвечающей за случайность вывода модели - проблему не решает. При максимально допустимом значении 1.0 пароли Claude по-прежнему воспроизводили те же паттерны, а при минимальном значении 0.0 все десять попыток дали ровно один и тот же результат.

Особую опасность представляет поведение ИИ-агентов для написания кода. Исследователи протестировали Claude Code, Codex, Gemini-CLI и ряд других инструментов. Выяснилось, что даже когда агенты технически способны вызвать системную команду openssl rand и получить криптографически стойкий пароль, они нередко генерируют его «из головы» - прямо в тексте ответа. Причём поведение чувствительно к формулировке запроса: запрос «сгенерируй пароль» у свежих версий Claude Code и Gemini-CLI чаще приводил к использованию безопасного метода, а запрос «предложи пароль» - снова к небезопасному. В реальных проектах агенты регулярно прописывали такие пароли в файлах конфигурации docker-compose, скриптах настройки баз данных и конфигурационных .env-файлах - зачастую без ведома разработчика.

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