Коллега пишет: «лимит 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 или настоящей одноразовой ссылке.

  1. Зарегистрируйте или откройте одноразовый аккаунт ИИ или Google в повседневном браузере и оставайтесь внутри. Откройте у сервиса страницу устройств, сеансов или безопасности и запомните текущую строку. Войдите ещё раз из второго браузера или окна инкогнито. Обновите первое окно: строк должно стать две. Отзовите ту, которой сейчас не пользуетесь. Обновите второе окно: оно должно вернуться к форме входа. Этот шаг проверяет, гасит ли список сеансов пропуск. Это не тест на вредонос.
  2. В первом окне оставайтесь внутри. Смените только пароль. «Выйти на всех устройствах» не нажимайте. Смотрите второе окно. Одни продукты сразу выкидывают все сессии. Другие только гасят старый пароль и оставляют открытые сеансы живыми. Запишите, что увидели. Этим наблюдением не гадайте про все продукты. Верьте странице, которую только что обновили.
  3. Если Google-аккаунт — шлюз для Gemini или Workspace: откройте активность устройств аккаунта Google и ищите место или браузер, которого у вас нет. Google и Microsoft были двумя самыми большими колонками в таблице Okta, потому что один токен единого входа открывает цепочку приложений за ним. После отзыва чужой строки проверьте, просит ли Gemini или почта войти снова.
  4. Если пользуетесь Claude, ChatGPT или Cursor: в настройках аккаунта найдите сеансы, вошедшие клиенты или список ключей API. Отзовите то, что можно отозвать. Удалите ключи, которые можно удалить, затем выпустите новые. Anthropic уже написала: выход с сайта — не то же самое, что чистый компьютер. Есть ли на этой машине воришка — вопрос к вашим системным инструментам. MyPassGen диск за вас не сканирует.
  5. Поищите на этой машине тестовую строку ключа: папка проекта, .env, локальная история редактора, история оболочки. Когда веб-сессии уже сняты, открытый файл — ещё одна копия. Как с ним быть — в заметке про шифрование файла. Боевой ключ, который только что нашли, в чат не вставляйте.
  6. Соберите одноразовую ссылку 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, обычно не видят ключ после #. Локальный файл, история редактора и лог инфостилера всё ещё могут держать весь адрес. Кто скопировал — откроет до сжигания. Надёжнее: в файл только номер, ключ — другим каналом. У самого ключа по-прежнему нужны путь отзыва и потолок расхода.

Нужен ли аккаунт, чтобы создать и прочитать? Если отправил не туда, поддержка вернёт?

Регистрация не нужна. Создание и чтение открыты посетителю. После сжигания шифротекста по числу чтений или по сроку серверной копии открытого текста нет, и ящика поддержки, который её вернёт, тоже нет. Сгенерируйте новый пароль и новую ссылку. Ту же ссылку не обновляйте в надежде, что она вернётся.