Event ID 4624. Парные сессии, уровень целостности и UAC

Событие 4624 в журнале Security фиксирует успешный вход пользователя в систему Windows. Это событие является одним из ключевых для мониторинга, так как оно позволяет отслеживать, кто и когда получил доступ к системе. Успешный вход может быть как легитимным, так и результатом компрометации учетной записи, поэтому аналитик SOC должен тщательно анализировать это событие.

Event ID 4624

  • Имя учетной записи: Учетная запись, которая вошла в систему.

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

  • Идентификатор безопасности (SID): Уникальный идентификатор учетной записи.

SID, RID, Well-known SID и все, что вы хотели знать про идентификатор безопасности

SID (Security Identifier) — это уникальный идентификатор, используемый в операционных системах Windows для обозначения пользователей, групп и других объектов безопасности. Он состоит из нескольких частей, включая относительный идентификатор (RID), который играет ключевую роль в идентификации объектов.

Структура SID

SID имеет следующую структуру:

S-R-X-Y1-Y2-...-Yn

Где:

  • S — префикс, указывающий на то, что это идентификатор безопасности.

  • R — номер версии SID (обычно 1).

  • X — идентификатор уровня авторитета (например, 5 для NT Authority).

  • Y1, Y2, ..., Yn — значения подчиненных полномочий, которые могут включать идентификаторы домена.

  • Yn — это относительный идентификатор (RID), который уникально определяет конкретный объект в рамках данного уровня авторитета.

Пример SID

Пример SID может выглядеть так:

S-1-5-21-1463437245-1224812800-863842198-500

Здесь:

  • S — указывает на то, что это SID.

  • 1 — версия.

  • 5 — указывает на NT Authority.

  • 21, 1463437245, 1224812800, 863842198 — значения подчиненных полномочий (идентификатор домена).

  • 500 — RID для учетной записи администратора.

Существуют также хорошо известные идентификаторы SID, которые имеют фиксированные значения во всех операционных системах:

S-1-0-0 - Null SID, значение SID неизвестно S-1-1-0 - Everyone S-1-5-32 - Built-in groups S-1-5-18 - Local System S-1-5-19 - Local Service S-1-5-20 - Network Service

Что такое RID?

RID (Relative Identifier) — это часть SID, которая определяет конкретную учетную запись или группу в рамках данного домена или локальной машины. RID всегда является уникальным в пределах одного домена или локальной системы и используется для различения объектов.

Известные RIDs

Некоторые хорошо известные RIDs включают: 500 - Учетная запись администратора 501 - Учетная запись гостя 512 - Группа "Domain Admins" 513 - Группа "Domain Users" 544 - Группа "Administrators"

RIDs для стандартных учетных записей пользователей начинаются с 1000. Например, первый созданный пользователь получит RID 1000, второй — 1001 и так далее.

  • Тип входа: Указывает, как был выполнен вход (например, интерактивный, удаленный, пакетный).

Все о типах входа

Событие 4624 в Windows указывает на успешный вход в систему и содержит информацию о типе входа, что позволяет определить, как именно была выполнена аутентификация пользователя.

Существует несколько типов входа:

  • System (0): Вход от имени системы, например, при загрузке операционной системы.

  • Interactive (2): Интерактивный вход с клавиатуры или экрана системы, что означает локальный вход пользователя. При входе через консоль VMWare реагистрируется тоже тип входа 2.

  • Network (3): Сетевой вход, используемый для доступа к сетевым ресурсам.

  • Batch (4): Вход для выполнения пакетных заданий, таких как задания по расписанию.

  • Service (5): Вход от имени службы.

  • Proxy (6): Вход через прокси-сервер.

  • Unlock (7): Разблокировка экрана. Регистрируется, если сесси яне была завершена.

  • NetworkCleartext (8): Сетевой вход с использованием открытого текста, например, Basic Authentication в IIS.

  • NewCredentials (9): Вход с новыми учетными данными.

  • RemoteInteractive (10): Подключение по RDP (Remote Desktop Protocol).

  • CachedInteractive (11): Локальный вход с использованием закешированных учетных данных.

  • CachedRemoteInteractive (12): Удаленный интерактивный вход с использованием закешированных учетных данных.

  • CachedUnlock (13): Разблокировка экрана с использованием закешированных учетных данных.

Посление 3 входа актуальным только для доменных учетных записей.

Кэширование учетных данных в Windows — это механизм, который позволяет доменным пользователям входить в систему, даже если контроллер домена недоступен.

Когда доменный пользователь впервые входит в Windows, его учетные данные (имя пользователя и хэш пароля) сохраняются на локальном компьютере (в реестре). Это позволяет пользователю повторно входить в систему с использованием старых учетных данных, если пароль не был изменен с момента последнего входа. Например, если пользователь изменил свой пароль в домене, но при этом не имел доступа к сети, он все равно сможет войти на локальный компьютер под старым паролем.

По умолчанию Windows сохраняет кэшированные учетные данные для 10 пользователей. Это значение можно изменить с помощью групповых политик, установив параметр "Количество предыдущих подключений к кэшу в случае отсутствия доступа к контроллеру домена". Этот параметр позволяет задать количество кэшируемых учетных записей от 0 до 50. Установка значения 0 запрещает кэширование учетных данных.

В доменах с функциональным уровнем Windows Server 2012 R2 или выше можно добавить учетные записи администраторов домена в группу "Protected Users", что предотвращает локальное сохранение кэшированных данных для входа.

  • Тип аутентификации: Метод аутентификации (например, Kerberos, NTLM).

  • Имя рабочей станции (WorkstationName): Имя компьютера, с которого был выполнен вход.

  • IP-адрес(IpAddress): IP-адрес, с которого был выполнен вход (если применимо).

Атаки методом Relay или Coerce Если имя рабочей станции не совпадает с IP-адресом, откуда был вход - это может указывать на одну из атак с перенаправлением аутентификации.

Если поле IpPort = 0, значит вход скорее всего был интерактивный или по RDP

  • Сессии (TargetLogonId): Сессия, которая создает на узле в результате входа. В рамках этой сессии в дальнейшем будут запущены все процессы. Иногда регистрируются две сессии для одного входа. Каждая из сессий будет ссылкается на другую в поле TargetLinkedLogonId. (Это связано с Mandatory Label и механизмом UAC).

  • Restricted Admin Mode: указывает, были ли закешированы учетные данные при входе. Может помочь в расследовании, чтобы понять, какие учетные данные потенцилаьно захватил атакующий.

  • Уровень имперсонализации (ImpersonationLevel): механизм, который позволяет процессу выполнять действия от имени другого пользователя.

Уровни имперсонализации

В Windows существует несколько уровней имперсонализации, которые определяют, насколько полно процесс может использовать права целевого пользователя:

  • Anonymous: Процесс не имеет доступа к информации о пользователе.

  • Identification: Процесс может узнать идентификатор пользователя, но не может выполнять действия от его имени.

  • Impersonation: Процесс может выполнять действия от имени пользователя на локальной системе.

  • Delegation: Процесс может выполнять действия от имени пользователя на удаленных системах (используется в делегировании).

Что можно обнаружить с помощью 4624, 4625

  • Обнаружение компрометации учетных записей:

    Успешный вход может быть результатом атаки методом перебора (Brute Force) или использования украденных учетных данных.

  • Мониторинг доступа к критически важным системам: Позволяет отслеживать доступ к серверам, базам данных и другим важным ресурсам. Входы в необычное время, с необычных IP-адресов или с использованием нестандартных методов аутентификации могут указывать на атаку.

Можно жестко зафиксировать кто, под какими учетными записями и откуда осуществляет вход на критические сервера. Например, контроллеры домена.

И создавать алерты на любое отклонение: подключение нового пользователя, подключение известного пользователя из нового места или новым способом.

  • Расследование инцидентов: Событие 4624 помогает установить, кто получил доступ к системе и когда это произошло. А также с какими правами был осуществлен доступ.

Связь с другими событиями

  1. EventID 4625 (Неудачный вход):

    • Неудачные попытки входа перед успешным входом могут указывать на атаку методом перебора (Brute Force).

  2. EventID 4672 (Специальные привилегии):

    • Если успешный вход выполнен от имени учетной записи с высокими привилегиями, будет зарегистрировано данное событие.

Mandatory Label

Когда пользователь входит в систему, Windows создает токен доступа (access token), который содержит информацию об уровне целостности. Этот токен используется для определения прав доступа пользователя. В событии 4624 Mandatory Label указывается в поле Impersonation Level.

Mandatory Label — это механизм, который используется в Windows для управления уровнем целостности (Integrity Level) процессов и объектов. Уровень целостности определяет, какие действия может выполнять процесс или пользователь. Например:

  • Системный уровень целостности (System Integrity): Этот уровень присваивается системным службам и критически важным процессам операционной системы.

  • Высокий уровень целостности (High Integrity): Административные права.

  • Средний уровень целостности (Medium Integrity): Стандартные права пользователя.

  • Низкий уровень целостности (Low Integrity): Ограниченные права (например, для браузера в защищенном режиме).

User Account Control (UAC)

UAC — это механизм безопасности в Windows, который ограничивает права административных учетных записей по умолчанию. Даже если пользователь входит в систему как администратор, его процессы запускаются с стандартными правами (Medium Integrity), если не требуется повышение прав.

Как UAC влияет на событие 4624

Когда пользователь с правами локального администратора входит в систему, UAC создает два токена доступа:

  1. Токен с ограниченными правами (Medium Integrity):

    • Используется для запуска большинства процессов.

    • Регистрируется как первая сессия в событии 4624.

  2. Токен с полными правами (High Integrity):

    • Используется только при выполнении задач, требующих административных прав.

    • Регистрируется как вторая сессия в событии 4624.

    • При выполнении таких действий, UAC запрашивает подтверждение, и только после этого изменяет контекст выполнения.

Именно поэтому при анализе события 4624 (успешный вход в систему) в Windows можно заметить, что иногда регистрируются два события 4624 - парные сессии для одного входа. Причем каждая из сессий будет ссылаться на другую в поле TargetLinkedLogonId. По значения ElevatedToken можно понять, какой именно такен каким уровнем целостности обладает. %%1842 - Yes - High Integrity %%1843 - No - Medium Integrity

Если пользователь пытается запустить программу, которая требует прав администратора, например, установщик программного обеспечения или утилита для изменения системных настроек, UAC запрашивает подтверждение. Это предотвращает несанкционированные изменения в системе и защищает от вредоносного ПО. Если текущему пользователю недостаточно прав, то окно UAC попросит ввести логин и пароль другого пользователя.

Контроль учетных записей пользователей (UAC) в Windows предоставляет несколько уровней уведомлений, которые позволяют пользователям управлять тем, как система реагирует на попытки приложений выполнять действия с повышенными привилегиями. Вот основные уровни UAC:

Уровни UAC

  1. Всегда уведомлять:

    • Уведомляет пользователя каждый раз, когда программа пытается внести изменения в систему или когда пользователь пытается изменить настройки, требующие прав администратора.

    • Это самый высокий уровень безопасности, так как требует подтверждения для всех действий, которые могут повлиять на систему.

  2. Уведомлять только при изменениях:

    • Уведомления появляются только тогда, когда программы пытаются внести изменения в систему. Если пользователь запускает приложение, которое не требует повышения привилегий, уведомление не отображается.

    • Это более сбалансированный подход между безопасностью и удобством.

  3. Уведомлять без затемнения экрана:

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

    • Этот уровень может быть менее безопасным, так как пользователь может не заметить запрос на подтверждение.

  4. Никогда не уведомлять:

    • UAC отключен полностью. Приложения могут запускаться с повышенными привилегиями без каких-либо предупреждений.

    • Этот уровень безопасности считается небезопасным и может привести к уязвимостям в системе.

Настройка UAC

  1. Откройте панель управления и выберите "Изменение параметров контроля учетных записей".

  2. Переместите ползунок на нужный уровень.

  3. Нажмите "ОК" и перезагрузите компьютер для применения изменений.

UACBypass

UAC запрашивает подтверждение пользователя или права администратора для выполнения задач, требующих повышенных привилегий. UAC Bypass — это обход механизма User Account Control (UAC) в Windows.

UAC позволяет некоторым доверенным процессам (например, установщикам или системным компонентам) выполнять действия с повышенными привилегиями без запроса подтверждения - через механизм AutoElevate. В манифесте приложения (XML-файл, описывающий свойства приложения) может быть указан атрибут autoElevate="true". Это позволяет приложению автоматически запрашивать повышенные права без взаимодействия с пользователем

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

FodHelper - классический пример такой утилиты, которая может использоваться для обхода UAC. Еще есть способы связанные с mmc.exe.

Обнаружить обход UAC можно по событиям запуска процессов, сравнивая Mandatory Label родителя и дочернего процесса. И процессы, использующие механизм AutoElevate не должны порождать дочерних процессов.

Last updated

Was this helpful?