🔐 Windows Access Tokens: шпаргалка по тому, как работает авторизация под капотом Привет, коллеги!
Привет, коллеги! Нашел отличную схему, которая наглядно объясняет механику маркеров доступа (Access Tokens) в Windows. Без понимания этой базы траблшутинг прав доступа или аудит безопасности превращается в гадание на кофейной гуще.
Давайте разберем основные моменты:
🔹 Что такое Access Token?
Это объект, который описывает контекст безопасности конкретного процесса или потока (по сути, «паспорт» пользователя в системе).
🔹 Жизненный цикл токена (от логина до проводника)
1. Вы вводите креды (LogonUI.exe).
2. Данные передаются через winlogon.exe в подсистему LSA.
3. Если аутентификация успешна, lsass.exe создает маркер доступа (Access Token) для этой сессии входа.
4. winlogon.exe запускает userinit.exe (и следом explorer.exe).
Главное правило: любой новый процесс в этой сессии просто получает копию первичного токена (Primary Token) своего родителя.
🔹 Анатомия токена (Субъект)
Что лежит внутри вашего "паспорта"?
• SID самого пользователя и групп, в которых он состоит.
• Privileges (выданные привилегии).
• Logon ID (уникальный LUID, идентифицирующий сессию входа).
• Default DACL (список доступа по умолчанию, который будет применяться ко всем новым файлам/папкам, создаваемым этим юзером).
🔹 Как система проверяет права (Субъект ➔ Объект)?
Когда ваш процесс пытается открыть файл (Объект), Windows берет ваш маркер доступа и сравнивает его с дескриптором безопасности файла (Security Descriptor). Конкретно - со списком контроля доступа DACL, который состоит из записей ACE (Access Control Entries). Если SID из токена совпадает с разрешающим правилом ACE - доступ открыт.
🔹 Имперсонация (Impersonation)
У каждого процесса есть свой основной маркер (Primary Token). Но отдельные потоки (threads) внутри этого процесса могут использовать маркеры имперсонации (Impersonation Tokens). Это важнейшая фича, которая позволяет службам (services) временно выполнять действия от имени обратившегося к ним клиента, используя его права, а не права учетной записи самой службы (например, SYSTEM или Network Service).
Сохраняйте картинку в избранное, чтобы структура всегда была под рукой! 📌
👉 @i_odmin