Категория > Новости > Практика разбитых окон. Как устроена система безопасности Windows и как ее обходят - «Новости»

Практика разбитых окон. Как устроена система безопасности Windows и как ее обходят - «Новости»


19-06-2020, 16:03. Автор: Berrington
Когда-то считалось, что система локальной безопасности Windows похожа на кованые железные ворота с хитрым замком, стоящие посреди чистого поля: выглядят грозно, но вот эффективность весьма сомнительна. Времена меняются, и механизмы защиты винды понемногу эволюционируют. Сегодня мы поговорим о том, как устроена безопасность в современных версиях Windows.

Практика разбитых окон. Как устроена система безопасности Windows и как ее обходят - «Новости»
WARNING

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




В Windows все активные сущности, которые могут быть аутентифицированы операционной системой (пользователи или группы), называются участниками безопасности (security principals). Все участники безопасности имеют уникальный идентификатор переменной длины — Security ID (SID). Структура SID следующая — S-R-IA-SA-RID, например S-1-5-21-1687231434-1254558764-1544283289-1004, РіРґРµ:


  • S — литеральный префикс, указывает на то, что идентификатор является SID (это просто конвенция наименования);

  • R — однобайтное значение версии или ревизии (revision) SID. РџРѕРєР° существует только версия 1;

  • IA — источник выдачи (issuing authority), шестибайтное значение. Указывает, в чьей области ответственности был выдан SID (буквально authority значит «орган власти»). Почти всегда имеет значение 5 (SECURITY_NT_AUTHORITY), Р·Р° исключением well-known SID, Рѕ которых РјС‹ РїРѕРіРѕРІРѕСЂРёРј чуть позже. Например, 1 означает SECURITY_WORLD_SID_AUTHORITY Рё относится Рє well-known-РіСЂСѓРїРїРµ Everybody;

  • SA — уполномоченный центр (sub-authority). Уникальное (в рамках IA) значение, состоит из четырех частей: 4-байтного числа, указывающего, кем был выдан идентификатор (контроллером домена или локальным компьютером), и 12-байтного значения, которое делится на три части и идентифицирует конкретный объект, выдавший идентификатор. Смысл этого поля в том, что при наличии нескольких доменов в лесу объекты в разных доменах будут иметь уникальный SA;

  • RID — относительный идентификатор (Relative-ID), 4-байтное значение, служит для разделения объектов внутри домена. Для встроенных учетных записей RID всегда будет РѕРґРёРЅ Рё тот же (например, для учетной записи администратора RID = 500).

Если быть более точным, то существует SID машины (machine SID) и SID домена (domain SID). А сам SID представляет собой базовый идентификатор (S, R, IA, SA) + RID.


Также есть стандартные так называемые well-known SID для пользователей и групп. Они имеют один и тот же SID на любых системах (например, группа Everyone или пользователь System).


WWW


Поизучать SID можно с помощью утилиты PsGetsid.exe из пакета Sysinternals. А почитать о структуре SID более подробно можно, например, в этих публикациях:




Также РїСЂРё администрировании можно допустить небольшой недочет, связанный СЃ дубликацией СЃРёРґРѕРІ. Р?РЅРѕРіРґР° РѕРЅ влияет РЅР° безопасность или функциональность (например, РєРѕРіРґР° РћРЎ развертывают, просто РєРѕРїРёСЂСѓСЏ РґРёСЃРє). РћР± этом можно почитать подробнее РІ статье Марка Руссиновича, еще РѕРґРЅРѕР№ статье Рё РІ VMware knowledge base.


SID, в свою очередь, входит в так называемый маркер доступа — программный объект (структура в ядре Windows), который закрепляется за сессией (logon session) участников безопасности после авторизации. За выдачу маркера, как и за аутентификацию, отвечает LSASS (local security authority subsystem).


Помимо всего прочего, в маркер включены SID пользователя и его групп, а также механизм привилегий на совершение каких-либо действий (например, привилегия на отладку debug, которая, кстати, используется в mimikatz для получения доступа к системным процессам).


После того как удаляется последний ассоциированный СЃ сессией токен, LSASS удаляет Рё саму сессию — таким образом завершается сеанс пользователя. Можно поподробнее изучить структуру маркера доступа РІ отладчике СЏРґСЂР° (kernel debugger) СЃ помощью команды dt_TOKEN. Вообще, если не получается нагуглить подробности о внутреннем устройстве Windows, можно изучить структуру самому с помощью средств отладки. Подробности представлены в документации Microsoft. С привилегиями может быть, например, связана такая вещь, как bypass traverse checking.


WWW

Маркеры доступа тоже могут иметь проблемы с безопасностью. Вот несколько ссылок для более подробного изучения:


  • Интересная исследовательская работа Брайана Александера

  • Блог по пентесту и редтиму ired.team

  • Выступление Андреа Пьерини с конференции Hack in Paris

  • Статья Windows Privilege Abuse: Auditing, Detection, and Defense (Palantir Security)


В свою очередь, для «пассивных» объектов, которые предназначены для предоставления к ним доступа извне (их называют securable objects), используется SD — security descriptor. Это дескриптор для управления доступом к данным объектам (например, процесс может иметь SD или SD может быть привязан к файлу в NTFS). У SD тоже, кстати, бывают проблемы с безопасностью.



Перейти обратно к новости