Вы сменили пароль, а он всё ещё внутри: что остаётся у атакующего после «я всё поменял»

от автора

Знакомая последовательность: человек понимает, что в его почту кто-то залез, меняет пароль, включает двухфакторную аутентификацию, выдыхает. Через неделю выясняется, что письма всё это время читали, а часть из них уходила на сторону.

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

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

Почему пароль не выгоняет

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

Отсюда простое следствие, которое почему-то не очевидно почти никому: смена пароля отзывает не пропуска, а только возможность выписать новый. Уже выписанные продолжают работать ровно столько, сколько им отмерено.

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

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

Что конкретно остаётся

Активные сессии. Браузер, в котором злоумышленник уже вошёл. Если он утащил не пароль, а куку — а это ровно то, что делают программы для кражи данных из браузера, — пароль он может и не знать вообще. Ему это не мешает.

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

Пароли приложений. Отдельные пароли для клиентов, не умеющих в двухфакторную аутентификацию. Живут собственной жизнью, двухфакторную проверку не проходят по определению и переживают смену основного пароля.

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

Данные для восстановления. Резервная почта, номер телефона, ключи восстановления. Тот, кто побывал внутри, обычно подменяет их на свои — и тогда даже после полной зачистки он вернётся через «забыли пароль», а вы уже нет.

Делегирование. В почтовых сервисах есть штатная возможность дать другому человеку читать вашу почту. Выданный доступ смены пароля не замечает.

Из этого списка люди обычно проверяют одно — правила пересылки. Остальное живёт годами.

Где смотреть: личные аккаунты

Google. Три страницы, по которым надо пройтись подряд:

  • myaccount.google.com/device-activity — устройства с активными сессиями.

  • myaccount.google.com/permissions — сторонние приложения и то, к чему у них доступ.

  • myaccount.google.com/apppasswords — пароли приложений, если они когда-либо создавались.

В самом Gmail нужны три вкладки настроек. «Пересылка и POP/IMAP» — автоматическая пересылка. «Аккаунты и импорт» — делегирование доступа и адреса, с которых разрешено писать от вашего имени. «Фильтры» — правила, которые прячут входящие.

Яндекс. id.yandex.ru, раздел безопасности: устройства и приложения, пароли приложений, история входов. История входов, кстати, полезнее всего — по ней видно чужие адреса и время.

Microsoft. account.microsoft.com/security, раздел активности входов. Там же отзыв доступа приложений и выход со всех устройств.

Общее правило: пройтись надо по всем перечисленным разделам, а не только по тому, где что-то нашлось. Один найденный чужой доступ не означает, что он единственный.

Где смотреть: корпоративная почта

Здесь всё то же самое, но администратору доступны нормальные инструменты.

Отзыв всех сессий пользователя в Entra ID:

Connect-MgGraph -Scopes 'User.RevokeSessions.All','User.ReadWrite.All'Revoke-MgUserSignInSession -UserId 'user@corp-holding.example'

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

Правила пересылки по всем ящикам — то, что стоит проверять регулярно, а не только при разборе:

Get-Mailbox -ResultSize Unlimited | ForEach-Object {    Get-InboxRule -Mailbox $_.UserPrincipalName -ErrorAction SilentlyContinue |      Where-Object { $_.ForwardTo -or $_.ForwardAsAttachmentTo -or $_.RedirectTo } |      Select-Object @{n='Mailbox';e={$_.MailboxOwnerId}}, Name, ForwardTo, RedirectTo, Enabled}

Отдельно — пересылка, настроенная не правилом, а свойством самого ящика: её правило выше не покажет.

Get-Mailbox -ResultSize Unlimited |  Where-Object { $_.ForwardingSmtpAddress -or $_.ForwardingAddress } |  Select-Object UserPrincipalName, ForwardingSmtpAddress, DeliverToMailboxAndForward

И согласия, выданные приложениям от имени пользователя, — то самое «разрешить приложению читать почту»:

Get-MgUserOauth2PermissionGrant -UserId 'user@corp-holding.example' |  Select-Object ClientId, Scope, ConsentType

В Scope смотрите на права вида Mail.Read, Mail.Send, offline_access. Последнее означает, что приложение получило право работать без участия пользователя — то есть постоянно.

Порядок действий, и почему он такой

Если аккаунт уже скомпрометирован, порядок важнее содержания. Делать надо так:

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

Сразу за этим — пароль. Обязательно новый, а не вариация старого: если пароль утёк, то утёк и его шаблон.

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

Потом — данные для восстановления. Резервная почта, номер, коды. Это шаг, который пропускают чаще всего, а он решает, вернётся человек через неделю или нет.

И только теперь — поиск следов. Правила, пересылки, приложения, делегирование, подключённые устройства.

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

Что из этого можно сделать заранее

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

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

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

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

ссылка на оригинал статьи https://habr.com/ru/articles/1074782/