LocalSystem
LocalSystem — это встроенная учётная запись Windows, обладающая наивысшим уровнем привилегий в рамках локальной операционной системы. Она является одной из трёх предопределённых системных учётных записей, наряду с LocalService и NetworkService, и используется операционной системой и её компонентами для выполнения критически важных задач, включая запуск системных служб, управление драйверами устройств и доступ к защищённым ресурсам.
История и происхождение
Учётная запись LocalSystem появилась в ранних версиях Windows NT (1993 год) как часть модели безопасности, построенной на основе подсистемы безопасности (Security Subsystem). В отличие от Windows 9x, где не было строгого разграничения привилегий, Windows NT внедрила концепцию учётных записей, токенов доступа (access tokens) и списков управления доступом (ACLs). LocalSystem была задумана как учётная запись, под которой работают системные процессы, не требующие аутентификации в сети, но имеющие полный контроль над локальной машиной. С выходом Windows 2000, а затем и более поздних версий (Windows XP, Windows 7, Windows 10, Windows 11), роль LocalSystem осталась неизменной, хотя архитектура безопасности претерпела изменения: в частности, появились ограничения для служб (Session 0 isolation) и механизмы обязательного контроля целостности (Mandatory Integrity Control, MIC), которые частично ограничивают действия процессов, работающих от имени LocalSystem.
Идентификаторы и атрибуты
Имя и SID
Учётная запись LocalSystem не имеет традиционного имени пользователя в том смысле, в каком его имеют обычные учётные записи. В системе она идентифицируется следующими способами:
- Имя учётной записи:
SYSTEM(в английских локализациях) илиСИСТЕМА(в русских). - SID (Security Identifier):
S-1-5-18. Это уникальный идентификатор безопасности, который не меняется между различными установками Windows. - Имя в диспетчере задач: В списке процессов (вкладка «Процессы») процессы, работающие от имени LocalSystem, отображаются как «Система» (System).
Привилегии
LocalSystem обладает следующими ключевыми привилегиями:
- SeTcbPrivilege (Act as part of the operating system) — позволяет процессу выступать в роли части операционной системы, обходя некоторые проверки безопасности.
- SeDebugPrivilege (Debug programs) — даёт доступ к отладке любых процессов, включая процессы других пользователей.
- SeBackupPrivilege (Back up files and directories) — позволяет читать любые файлы, независимо от их ACL, для целей резервного копирования.
- SeRestorePrivilege (Restore files and directories) — позволяет записывать файлы в любые директории, независимо от ACL.
- SeTakeOwnershipPrivilege (Take ownership of files or other objects) — позволяет становиться владельцем любого объекта (файла, раздела реестра, процесса).
- SeLoadDriverPrivilege (Load and unload device drivers) — позволяет загружать и выгружать драйверы устройств.
- SeIncreaseQuotaPrivilege (Adjust memory quotas for a process) — позволяет изменять квоты памяти для процессов.
В отличие от учётной записи Администратора (Administrator), LocalSystem не имеет пароля и не может быть использована для интерактивного входа в систему (за исключением специальных сценариев, например, через отладчик или службу). Её токен доступа всегда принадлежит локальной системе и не содержит учётных данных для сетевой аутентификации.
Использование
Системные службы
LocalSystem является учётной записью по умолчанию для многих критических служб Windows. К числу таких служб относятся:
- Служба Windows (Service Control Manager, SCM) — управляет запуском и остановкой всех служб.
- Служба Plug and Play (Plug and Play) — отвечает за обнаружение и настройку оборудования.
- Служба криптографии (Cryptographic Services) — управляет сертификатами и криптографическими операциями.
- Служба удалённого вызова процедур (RPC) — обеспечивает межпроцессное взаимодействие.
- Служба обновления Windows (Windows Update) — загружает и устанавливает обновления.
- Служба защиты программного обеспечения (Software Protection) — отвечает за проверку лицензий.
Драйверы устройств
Драйверы, работающие в режиме ядра (kernel-mode drivers), также выполняются в контексте LocalSystem. Это необходимо, поскольку драйверы имеют прямой доступ к аппаратному обеспечению и памяти ядра, что требует максимальных привилегий.
Планировщик задач
Задачи, настроенные на выполнение с наивысшими привилегиями (например, «Запускать с наивысшими правами»), могут быть настроены на выполнение от имени LocalSystem. Однако по умолчанию планировщик задач использует учётную запись SYSTEM для задач, связанных с обслуживанием системы.
Особенности безопасности
Уязвимости и риски
Поскольку LocalSystem обладает неограниченным доступом к локальным ресурсам, эксплуатация уязвимости в процессе, работающем от её имени, может привести к полному компрометации системы. Атакующий, получивший контроль над таким процессом, может:
- Установить руткит (rootkit) или шпионское ПО.
- Изменить системные файлы и реестр.
- Отключить средства защиты (антивирус, брандмауэр).
- Создать новые учётные записи с административными правами.
Ограничения в современных версиях Windows
Начиная с Windows Vista, Microsoft ввела механизм изоляции Session 0, который предотвращает взаимодействие служб, работающих от имени LocalSystem, с пользовательским интерфейсом (например, вывод окон на рабочий стол). Это снижает риск атак, использующих «shatter attacks» (атаки на окна сообщений). Кроме того, обязательный контроль целостности (Mandatory Integrity Control, MIC) присваивает процессам LocalSystem уровень целостности «Системный» (System Integrity Level), который выше, чем у процессов администратора (High Integrity Level), но не является абсолютным — некоторые действия, такие как запись в защищённые области реестра (например, HKEY_LOCAL_MACHINE\SAM), всё равно требуют дополнительных проверок.
Отличие от LocalService и NetworkService
- LocalService (
NT AUTHORITY\LOCAL SERVICE, SIDS-1-5-19) — имеет значительно меньше привилегий. Она не может получить доступ к сетевым ресурсам как анонимный пользователь и не имеет прав на отладку. Используется для служб, которым не требуется высокий уровень доступа (например, служба DHCP-клиента). - NetworkService (
NT AUTHORITY\NETWORK SERVICE, SIDS-1-5-20) — обладает теми же привилегиями, что и LocalService, но при доступе к сетевым ресурсам использует учётные данные компьютера (computer account). Используется для служб, которым требуется сетевая аутентификация (например, служба DNS-клиента).
Применение в разработке и администрировании
Запуск приложений от имени SYSTEM
В административной практике иногда требуется запустить приложение или скрипт с правами LocalSystem. Для этого используются:
- PsExec (утилита из пакета Sysinternals) — позволяет запускать процессы на удалённых и локальных системах от имени SYSTEM.
- SC (Service Control) — команда
sc createпозволяет создать службу, которая будет запускаться от имени LocalSystem. - Планировщик задач — задача с настройкой «Выполнять с наивысшими правами» может быть настроена на учётную запись SYSTEM.
Разработка служб
При разработке служб Windows (Windows Service) разработчик должен явно указать, под какой учётной записью будет работать служба. Если служба требует доступа к защищённым системным ресурсам (например, к реестру, файлам в C:\Windows\System32, драйверам), она должна быть настроена на LocalSystem. Однако для большинства служб рекомендуется использовать LocalService или NetworkService, чтобы минимизировать поверхность атаки.
Интересные факты
- Учётная запись LocalSystem не имеет пароля и не может быть заблокирована. Попытка сбросить или изменить пароль для учётной записи SYSTEM через стандартные средства (например,
net user) приведёт к ошибке, так как эта учётная запись не является обычной пользовательской. - В контексте безопасности Windows NT, LocalSystem иногда называют «суперпользователем» (superuser), по аналогии с root в Unix-подобных системах, хотя технические различия существенны: в Windows отсутствует единая учётная запись root, и LocalSystem не имеет сетевых привилегий по умолчанию.
- Процесс
smss.exe(Session Manager Subsystem) — один из первых процессов, запускаемых при загрузке Windows, работает от имени LocalSystem. Он отвечает за создание сессий и запуск подсистемы Win32. - В некоторых версиях Windows (например, Windows XP) было возможно войти в систему под учётной записью SYSTEM через отладчик (например,
ntsd), что использовалось для восстановления системы после сбоев.
Источники
- Microsoft Docs. «LocalSystem Account». Документация по безопасности Windows.
- Microsoft Docs. «Service Accounts». Руководство по управлению службами.
- Solomon, D. A., Russinovich, M. E. «Windows Internals, Part 1: System architecture, processes, threads, memory management, and more». 7th edition.
- Microsoft Sysinternals. «PsExec v2.4». Описание утилиты.
- TechNet. «Security Considerations for Service Accounts».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →