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 — номер версии SID (обычно 1).
X — идентификатор уровня авторитета (например,
5для NT Authority).Y1, Y2, ..., Yn — значения подчиненных полномочий, которые могут включать идентификаторы домена.
Yn — это относительный идентификатор (RID), который уникально определяет конкретный объект в рамках данного уровня авторитета.
Пример SID
Пример SID может выглядеть так:
Здесь:
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 помогает установить, кто получил доступ к системе и когда это произошло. А также с какими правами был осуществлен доступ.
Связь с другими событиями
EventID 4625 (Неудачный вход):
Неудачные попытки входа перед успешным входом могут указывать на атаку методом перебора (Brute Force).
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 создает два токена доступа:
Токен с ограниченными правами (Medium Integrity):
Используется для запуска большинства процессов.
Регистрируется как первая сессия в событии 4624.
Токен с полными правами (High Integrity):
Используется только при выполнении задач, требующих административных прав.
Регистрируется как вторая сессия в событии 4624.
При выполнении таких действий, UAC запрашивает подтверждение, и только после этого изменяет контекст выполнения.
Именно поэтому при анализе события 4624 (успешный вход в систему) в Windows можно заметить, что иногда регистрируются два события 4624 - парные сессии для одного входа. Причем каждая из сессий будет ссылаться на другую в поле TargetLinkedLogonId. По значения ElevatedToken можно понять, какой именно такен каким уровнем целостности обладает. %%1842 - Yes - High Integrity %%1843 - No - Medium Integrity
Если пользователь пытается запустить программу, которая требует прав администратора, например, установщик программного обеспечения или утилита для изменения системных настроек, UAC запрашивает подтверждение. Это предотвращает несанкционированные изменения в системе и защищает от вредоносного ПО. Если текущему пользователю недостаточно прав, то окно UAC попросит ввести логин и пароль другого пользователя.
Контроль учетных записей пользователей (UAC) в Windows предоставляет несколько уровней уведомлений, которые позволяют пользователям управлять тем, как система реагирует на попытки приложений выполнять действия с повышенными привилегиями. Вот основные уровни UAC:
Уровни UAC
Всегда уведомлять:
Уведомляет пользователя каждый раз, когда программа пытается внести изменения в систему или когда пользователь пытается изменить настройки, требующие прав администратора.
Это самый высокий уровень безопасности, так как требует подтверждения для всех действий, которые могут повлиять на систему.
Уведомлять только при изменениях:
Уведомления появляются только тогда, когда программы пытаются внести изменения в систему. Если пользователь запускает приложение, которое не требует повышения привилегий, уведомление не отображается.
Это более сбалансированный подход между безопасностью и удобством.
Уведомлять без затемнения экрана:
Уведомления показываются, но рабочий стол не затемняется. Это позволяет пользователю продолжать взаимодействовать с другими окнами приложения во время появления уведомления.
Этот уровень может быть менее безопасным, так как пользователь может не заметить запрос на подтверждение.
Никогда не уведомлять:
UAC отключен полностью. Приложения могут запускаться с повышенными привилегиями без каких-либо предупреждений.
Этот уровень безопасности считается небезопасным и может привести к уязвимостям в системе.
Настройка UAC
Откройте панель управления и выберите "Изменение параметров контроля учетных записей".
Переместите ползунок на нужный уровень.
Нажмите "ОК" и перезагрузите компьютер для применения изменений.
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?