Коллега пишет: «лимит Claude только что обновился и сразу опустел, окно я не открывал». Запись в менеджере паролей — с прошлого месяца. Телефон код не присылал. Через два дня в почте письмо от Anthropic: необычный расход, принудительный выход, сохранённый способ оплаты снят. В письме сказано: Claude не взломали. Инфостилер на этом компьютере скопировал сессию входа вместе с тем, что он и так собирает.
В предыдущей заметке разобрано, какие поля закрыть маской, прежде чем вставить пароль в ChatGPT или Gemini: там путь после того, как открытый текст уже в окне чата, и читают ли его ещё обучение и ссылка «Поделиться». Здесь другой вопрос. Когда вход уже выполнен, доказательство «это я» всё ещё лежит в местах, которые вы сами открываете — и которые может скопировать программа на этой машине. Если ключ всё же нужно отдать, берите одноразовую ссылку вида s.html?id=…#…. Создать и прочитать можно без аккаунта. Инструменты MyPassGen открываются сразу. Дальше не разбираем, как распространяется конкретный троян. Сверяем цифры, которые Okta и Anthropic уже опубликовали, и строки, которые видны в списке сеансов.
Сначала разведите две задачи
Новый пароль и второй фактор закрывают следующее окно входа. Cookie сессии или JWT, уже выданные браузеру, и ключ API в файле конфигурации сами не сгорают от того, что вы набрали другую строку. Сначала отзовите сеансы и смените ключи, потом решайте, стоит ли снова входить с этой машины. Смену пароля не подставляйте вместо «Выйти на всех устройствах».
Почему аккаунт открывается после смены пароля
Сайт не спрашивает пароль на каждый клик. После успешного входа браузер держит сессию: cookie, JWT, а в одностраничном приложении часто ещё токен в localStorage или sessionStorage. Дальнейшие запросы предъявляют это ещё действующее доказательство. Сервер не проверяет, можете ли вы сейчас повторить пароль. Okta Threat Intelligence 9 сентября 2026 в заметке Signing in without actually signing in называет такое доказательство skeleton key: положите неистёкший токен в другой браузер — атакующий уже внутри. Поле логина, поле пароля и запрос MFA больше не появляются.
Это не тот же путь, что «пароль угадали». Ключи доступа и аппаратные ключи поднимают планку у окна входа. Okta отдельно пишет: они усложняют захват связки «логин плюс пароль» и при этом не останавливают украденный сессионный токен или ключ API. Смена пароля в настройках обычно бьёт только по тому, кто снова пойдёт через форму входа. Уже выданные сеансы живут до истечения, отзыва на сервере или удаления строки в списке «устройства, на которых выполнен вход». Сменить пароль и не открыть этот список — всё равно что поменять ключ от двери и оставить действующий пропуск на столе.
В русской практике ту же мысль формулируют жёстче: вы «всё поменяли», а пропуск ещё внутри. На Хабре разбирали, что после смены пароля остаются сессионная кука, токен обновления и пароль приложения; отзыв сеансов нужно делать отдельно, иначе уже выданный доступ продолжает работать. Это совпадает с тем, что пишут Okta и CISA: при компрометации недостаточно заменить строку в менеджере паролей. Сначала отзовите активные сеансы и refresh-токены, потом меняйте пароль — и лучше с чистого устройства.
Заметка про буфер закрывала остаток после «Копировать»: пароль ушёл из поля генератора в системный буфер, см. кто ещё читает буфер обмена после копирования пароля. Сессионный токен уходит со страницы входа в профиль браузера и в память. Оба остатка лежат на этом устройстве. Ни один не заканчивается от того, что вы уже нажали «Копировать» или уже вошли. После закрытия инкогнито закладки и «Загрузки» всё ещё могут держать полную одноразовую ссылку — этот путь в После закрытия окна инкогнито пароль остаётся в загрузках, закладках и буфере обмена. Сессии чаще живут в повседневном профиле. Закрыть окно — не значит отозвать их.
Okta: живые токены в дампе на 7 ГБ
Okta разобрала бесплатный дамп логов, выложенный в Telegram-канал 2 августа 2026. Архив около 7 ГБ, 5 871 заражённая машина в 162 странах. Считали материал, связанный с аутентификацией, затем отдельно — партию, которая на день публикации ещё не истекла. Именно её покупатель воспроизводит в первую очередь.
В формате cookie Netscape у Google (Workspace и потребительские аккаунты) было 9 829 уникальных токенов аутентификации; 9 213 на 2 августа ещё действовали, на 4 144 машинах. Microsoft (Entra и потребительские) — 2 491 / 1 763 / 1 753. Anthropic — 561 / 164 / 404. Cursor — 32 / 16 / 26. В той же таблице Amazon, Gamma, Notion, Character.ai, Poe.com и Pika AI. Google, Microsoft и Amazon стоят за одним шлюзом единого входа, поэтому эти числа — основные токены шлюза, не рейтинг популярности каждого продукта.
JWT — вторая стопка. В наборе 44 791 уникальный JWT; Okta пометила 555 как вероятные для аутентификации в сервисах ИИ. Отдельный поиск нашёл 2 937 связанных с входом JWE, большинство выдано NextAuth.js у OpenAI. Без ключа расшифровки тело не прочитать; неистёкший токен всё равно можно воспроизвести как есть. Вместе 1 843 JWT и JWE на 2 августа ещё не истекли. Okta также пишет: в 17,7% тел JWT лежат открытые имя, телефон или почта. После истечения токена эта строка личности не исчезает. Её всё ещё берут для фишинга.
Короткоживущие токены доступа часто держатся минуты или час и продлеваются refresh-токеном с флагом HttpOnly — чтобы скрипт страницы не читал долгую половину. Okta прямо: вредонос этой границей не связан. Когда одностраничное приложение кладёт JWT в LocalStorage или SessionStorage, та же копировка забирает и его. Украденных сессий самой Okta в этом дампе они не видели. «Переоценить сессию после смены IP или устройства» они записали как корпоративную идею детекта. У личного аккаунта такого шлюза нет. Строки отзываете вы сами в списке сеансов.
Anthropic: выход не чистит компьютер
В конце августа 2026 Anthropic начала писать части пользователей Claude. BleepingComputer, SecurityWeek, Help Net Security и Malwarebytes цитировали одно и то же уведомление. Компания написала: чужие сессии входа в Claude сняли обычным инфостилером с чужих компьютеров, затем этими сессиями вошли в аккаунт и сожгли лимит. Если расход выглядел так, будто его только что пополнили и тут же опустошили, пока вы Claude не открывали, — скорее всего этот путь. Отдельно: нет оснований считать, что вредонос связан с Claude, ставится через Claude или связан с тем, что вы делали внутри Claude. Help Net Security приводит ещё одну фразу: телефоны и планшеты в эту волну, похоже, не попали.
SecurityWeek перечислила названные семейства: Vidar, Lumma, StealC, RedLine и Acreed на Windows и меньший набор Atomic Stealer (AMOS) на Mac. Это универсальные воришки. Обычно они приходят с неофициальной загрузкой или вредоносным приложением, затем копируют сохранённые пароли браузера, cookie входа и другие локальные учётные данные. Сессия Claude — один пункт в этом урожае. Потом кто-то начал вынимать именно этот пункт и пользоваться им.
Со стороны компании: принудительный выход из затронутых сессий, снятие сохранённых способов оплаты, возврат списаний, которые они сочли несанкционированными. Главная фраза уведомления такая: выход из Claude останавливает уже украденные сессии, но не снимает вредонос. Машина на месте. Следующий вход пишет новую сессию, её можно скопировать тем же способом. Их порядок: сначала привести устройство в порядок, затем сменить пароль привязанной почты, включить двухфакторную аутентификацию и только потом снова добавить способ оплаты. Выход отзывает пропуск. Компьютер он не дезинфицирует.
Та же последовательность звучит и в немецких рекомендациях BSI, которые пересказывали русскоязычные издания: при заражении сначала чистая система, потом новые пароли, потом отдельное завершение всех сеансов. Кто меняет пароль на заражённой машине, сразу отдаёт новую строку той же программе. Кто меняет пароль и не жмёт «Выйти везде», оставляет действующий cookie у того, кто его уже скопировал. Два пропуска подряд — не «я уже всё сделал».
Ключи API, LocalStorage и открытый конфиг
Cookie сессии закрывает вход на сайте. Ключ API закрывает программу, которая вызывает модель от вашего имени. Okta прогнала TruffleHog по тому же дампу и нашла 24 ключа, ещё действительных на момент публикации, у Google Gemini, OpenAI, Groq и OpenRouter. Они привели три счёта с украденных ключей: почти 1 млн долларов у одной организации, 25 000 у архитектора ПО и 600 000 кредитов у конторы, которая тестирует ИИ. Ключ в файле конфигурации или в переменной окружения — самый быстрый способ стартовать. Для программы на этой машине это и самый быстрый способ превратить ваш лимит в чужой. OpenAI, Anthropic и другие позволяют повесить на ключ потолок расхода и список разрешённых IP. Без этих шлюзов украденный ключ считают уже допущенным к списанию.
Устойчивее схема OAuth 2.0: приложение получает короткоживущий токен доступа, refresh-токен лежит в системной связке ключей или в менеджере паролей, область прав — как можно уже. Okta ставит «не кладите открытый ключ API в конфиг или переменную окружения» на один уровень с паролем. Если коллеге ключ всё же нужен, не пишите его в открытый файл, который уедет в Git или в синхронизируемый диск — этот путь в Перед тем как бросить файл в облако: кто получит открытый текст и каким каналом передавать пароль. Полная одноразовая ссылка в конфиге — тоже допуск: кусок после # не входит в строку HTTP-запроса, но файл на диске и объектное хранилище держат всю строку, см. Когда пароль нужно отдать коллеге один раз, почему ключ ставят после # в адресе.
Браузеры ставят свои тормоза. Okta упоминает App-Bound Encryption Google 2024 года и Device-Bound Session Credentials, которые криптографически привязывают сессию к устройству. Они пишут: обходы ABE появились быстро, DBSC ещё рано — сайту нужно поддержать это на сервере, а Chrome 145 для Windows умеет это с марта 2026. Пока ваш сервис DBSC не говорит, человеку остаётся сверять два места: нет ли в списке сеансов чужого устройства и не лежит ли ключ в открытом файле.
Что закрывают пароль, код и сессия
Возьмите один тестовый аккаунт и профиль браузера, которым вы управляете. Пройдите «только сменить пароль», «отозвать все сеансы» и «отозвать веб-сессии, файл с ключом не трогать». Страницы, которые ещё открываются, будут разными. Таблица написана от дверей, которые вы сами нажимаете, не от маркетинговых названий.
| Что вы сделали | Следующее окно входа | Что обычно остаётся у другого |
|---|---|---|
| Сменили пароль, «Выйти на всех устройствах» не нажимали | Старый пароль не подходит | Неистёкший cookie или JWT может оставить его уже внутри |
| Включили MFA или passkey; программа на машине уже скопировала сессию | Окно входа спросит второй фактор | Воспроизведение сессии обычно минует и окно, и код |
| Сервер принудительно вышел (например, после письма Anthropic) | Нужно войти заново | Старые сессии гаснут; новую снова скопируют, если машина грязная |
Все веб-сессии сняты; ключ API в .env не меняли |
Сайт просит новый вход | Кто держит ключ, всё ещё списывает API |
| В файле только номер одноразовой ссылки; ключ ушёл по телефону | К входу не относится | В логах и файлах нет полного допуска; для расшифровки нужны обе половины |
Пятую строку с первыми четырьмя не смешивайте. Полный адрес s.html?id=…#… в репозитории или в чате всё равно оставляет один допуск в локальном файле и в логе инфостилера. Хост, который хранит шифротекст, ключ не видит. Разделите номер и ключ — полнотекстовый поиск не найдёт ссылку, которая открывается. Полную ссылку храните как сам пароль.
Проверка на месте
Шаги ниже не опираются на обещание бренда. Берите тестовый аккаунт и тестовый пароль, которыми никогда не войдёте в живую работу, например orange-lake-7. Не тренируйтесь на текущем мастер-пароле, боевом ключе API или настоящей одноразовой ссылке.
- Зарегистрируйте или откройте одноразовый аккаунт ИИ или Google в повседневном браузере и оставайтесь внутри. Откройте у сервиса страницу устройств, сеансов или безопасности и запомните текущую строку. Войдите ещё раз из второго браузера или окна инкогнито. Обновите первое окно: строк должно стать две. Отзовите ту, которой сейчас не пользуетесь. Обновите второе окно: оно должно вернуться к форме входа. Этот шаг проверяет, гасит ли список сеансов пропуск. Это не тест на вредонос.
- В первом окне оставайтесь внутри. Смените только пароль. «Выйти на всех устройствах» не нажимайте. Смотрите второе окно. Одни продукты сразу выкидывают все сессии. Другие только гасят старый пароль и оставляют открытые сеансы живыми. Запишите, что увидели. Этим наблюдением не гадайте про все продукты. Верьте странице, которую только что обновили.
- Если Google-аккаунт — шлюз для Gemini или Workspace: откройте активность устройств аккаунта Google и ищите место или браузер, которого у вас нет. Google и Microsoft были двумя самыми большими колонками в таблице Okta, потому что один токен единого входа открывает цепочку приложений за ним. После отзыва чужой строки проверьте, просит ли Gemini или почта войти снова.
- Если пользуетесь Claude, ChatGPT или Cursor: в настройках аккаунта найдите сеансы, вошедшие клиенты или список ключей API. Отзовите то, что можно отозвать. Удалите ключи, которые можно удалить, затем выпустите новые. Anthropic уже написала: выход с сайта — не то же самое, что чистый компьютер. Есть ли на этой машине воришка — вопрос к вашим системным инструментам. MyPassGen диск за вас не сканирует.
- Поищите на этой машине тестовую строку ключа: папка проекта,
.env, локальная история редактора, история оболочки. Когда веб-сессии уже сняты, открытый файл — ещё одна копия. Как с ним быть — в заметке про шифрование файла. Боевой ключ, который только что нашли, в чат не вставляйте. - Соберите одноразовую ссылку MyPassGen на ту же тестовую фразу, срок 24 часа, число чтений 1. В чат или тикет вставьте только часть до решётки,
s.html?id=…. Ключ скажите по телефону или лично. Открывается без аккаунта. С одним номером получатель должен увидеть неполную ссылку; для расшифровки нужны обе половины. После чтения перезапишите буфер. Адрес с#в синхронизируемый профиль браузера не сохраняйте.
На корпоративном аккаунте добавьте полшага: спросите, включён ли принудительный SSO, есть ли оценка риска сессии, стоят ли на ключах API потолок расхода и список IP. MyPassGen не скажет, сохранил ли конкретный шлюз ещё одну копию. Верьте окнам, которые только что открыли.
Если ключ нужно передать — разделите канал
Для передачи один на один, которую собеседник откроет сейчас, не пишите ключ API в открытый текст, который уедет в репозиторий, в синхронизируемый диск или в архив чата. Сгенерируйте пароль на этом устройстве и заверните в одноразовую ссылку. Генератор MyPassGen в случайном режиме даёт 6–128 символов, по умолчанию 16, ниже 8 предупреждает, что слабо. Открывается без аккаунта. Результат как рабочие данные не уходит. При создании браузер шифрует AES-256-GCM. Одна заметка — не больше 32 КБ. Читаний по умолчанию 1, максимум 10. Срок — 1 час, 24 часа, 7 дней или только по счётчику, без TTL. На сервере только шифротекст.
Когда в репозитории или в тикете всё же нужен вход, разделите канал. В файле — только ответственный, номер и фраза «ключ по телефону». Звонок, личная передача или другой мессенджер несут только кусок после #. Одна половина не расшифровывает. Это приём использования, не заводская настройка. Страница создания по-прежнему выдаёт одну полную ссылку — так удобнее отдать один на один. На канале, который рисует карточки превью, сначала прогоните тестовую ссылку и посмотрите, считает ли превью чтение, см. Если вставить одноразовую ссылку в Slack или Telegram, сожжёт ли превью её раньше вас.
Пакет ключей или выгрузка больше 32 КБ в текстовую одноразовую ссылку не лезут. Берите шифрование файлов: потоковый AES-256-GCM в браузере, один файл до 5 ГБ, выход .lock / .enc, пароль — другим каналом. Сначала зашифруйте на этом устройстве, потом синхронизируйте; с той стороны должен быть только шифротекст. Незашифрованный .env в облако или на чтение расширению браузера — тот же класс задачи, что cookie сессии, оставленный программе на машине: доказательство «это я» ушло из окна, в котором вы его держали.
Когда сверили «одна смена пароля выкидывает ли вторую сессию» и «после отзыва строки второе окно возвращается к форме входа», на вопрос статьи уже можно ответить: пароль сменили, MFA включена, а неистёкшая сессия ИИ в браузере или открытый ключ API всё ещё могут впустить другого. Anthropic отозвала старые пропуска. Okta посчитала токены, которые в день публикации дампа ещё жили. Список сеансов годится для сверки. Он плохо годится для мысли «пароль уже сменил — значит, кончено».
Частые вопросы
Я сменил пароль. Другой человек уже не войдёт?
Старым паролем в окне входа он не пройдёт. Это не то же самое, что все уже выданные сессии погасли сразу. Верьте списку, который обновляете в «устройствах с входом». Okta описывает воспроизведение неистёкшего токена как обход пароля и MFA. Сначала отзовите сеансы, затем смените пароль. Сделайте оба шага. Не делайте только тот, который легче запомнить.
MFA или passkey заменяют одноразовую ссылку?
Нет. MFA и passkey стерегут окно входа. Сессионный токен доказывает «уже внутри». Уведомление Anthropic тоже ставит задачу как кражу сессий, не угадывание пароля. Чтобы сверить «видел ли сервер что-то кроме шифротекста», берите одноразовую ссылку и вкладку «Сеть». «Я включил второй фактор» сюда не подставляйте.
Чем полный одноразовый URL в .env лучше самого ключа API?
Серверные логи и превью, которые берут только HTML, обычно не видят ключ после #. Локальный файл, история редактора и лог инфостилера всё ещё могут держать весь адрес. Кто скопировал — откроет до сжигания. Надёжнее: в файл только номер, ключ — другим каналом. У самого ключа по-прежнему нужны путь отзыва и потолок расхода.
Нужен ли аккаунт, чтобы создать и прочитать? Если отправил не туда, поддержка вернёт?
Регистрация не нужна. Создание и чтение открыты посетителю. После сжигания шифротекста по числу чтений или по сроку серверной копии открытого текста нет, и ящика поддержки, который её вернёт, тоже нет. Сгенерируйте новый пароль и новую ссылку. Ту же ссылку не обновляйте в надежде, что она вернётся.