Можно ли запретить владение файлом?

Мне интересно, есть ли способ запретить пользователям (в том числе входящим в группу администраторов) вступать во владение файлом?

Я изначально создаю такой файл из моего сервиса, который работает под Local System учетная запись. Затем я установил этот файл DACL в D:(A;OICI;GA;;;SY) позволить только SYSTEM учетной записи, чтобы иметь полный доступ, и установить my service как владелец:

DWORD dwRes = ::SetNamedSecurityInfo(
strDataFilePath,
SE_FILE_OBJECT,
OWNER_SECURITY_INFORMATION,  // change only the object's owner
pMyServiceUserSid,           // User SID for my service
NULL,
NULL,
NULL);

Но после того, как все это будет сделано, я все еще могу стать владельцем этого файла через Windows Explorer в качестве администратора:

введите описание изображения здесь

1

Решение

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

Все, что вы делаете, — это усложняет для администратора изменение файла, потому что он должен сначала стать владельцем. В этом есть заслуга; это даже не позволяет администраторам вносить непреднамеренные изменения. Никто «случайно» не становится владельцем файла.

Обычные обходные пути — это назначить всем неадминистративные учетные записи (что на самом деле и нужно делать), либо зашифровать файл с помощью внешних средств.

Итог: не давайте людям, которым вы не доверяете, административный доступ к вашей машине или вашим файлам.

7

Другие решения

Невозможно помешать любому пользователю с достаточными правами стать владельцем файла.

Административные учетные записи имеют (или могут предоставить себе) любые привилегии — это означает, что они могут делать все, что им нужно, включая переопределение контроля доступа, установленного другими учетными записями, включая другие административные учетные записи.

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

4

Отказ от ответственности: это не будет слишком легко.

Если предположить, что цель состоит в том, чтобы предотвратить использование администратором встроенных инструментов ОС и часто используемых инструментов сторонних производителей от владения (и вас не волнует загрузка администратором альтернативных ОС, удаление дисков и различные другие угрозы, требующие физического доступа), то следующий подход будет надежным.

  1. Реализация 4 контрмер в этом статья. Под внедрением я подразумеваю работу с вашими поставщиками для получения аппаратного и программного обеспечения, которое поддерживает описанные технологии.
  2. Внедрите драйвер фильтра файловой системы, который действует как антивирусное ПО для раннего запуска (ELAM) и при необходимости останавливает операцию вступления в силу Я считаю, что API ELAM не являются общедоступными. Если это правда, вам придется работать с MS напрямую, чтобы получить доступ.

Без физического доступа этот подход также (по крайней мере, по замыслу) побеждает вредоносное ПО, включая руткиты. Обратите внимание, что «физический доступ» включает в себя блокировку контроллеров удаленного доступа, таких как iDRAC и iLO, которые разрешают удаленный доступ к функциям, которые традиционно доступны только через локальный доступ, включая загрузку альтернативной ОС через удаленный носитель.

Если вам нужен более простой, но менее надежный подход, вы можете реализовать только драйвер фильтра файловой системы (не как ELAM).

0
По вопросам рекламы [email protected]