Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Защита   Найти похожие ветки 

 
Чапаев ©   (2007-02-24 09:04) [0]

Создаю дескриптор защиты ConvertStringSecurityDescriptorToSecurityDescriptor(), преобразую его к абсолютному MakeAbsoluteSD(), устанавливаю права SetSecurityInfo() на процесс (и/или его основной поток). В качестве строки описания дескриптора задаю O:SYG:SYD:(A;;GA;;;SY)(D;;GA;;;BA). Все функции отрабатывают успешно. Но администратор по-прежнему может завершить процесс. Почему так?


 
Игорь Шевченко ©   (2007-02-24 20:06) [1]


> Но администратор по-прежнему может завершить процесс. Почему
> так?


А какой дескриптор получается в итоге ? (Точнее, какой ACL) ? (глянуть можно Process Explorer"ом)


 
Eraser ©   (2007-02-24 21:13) [2]

> [0] Чапаев ©   (24.02.07 09:04)

не понял, зачем вот это

> преобразую его к абсолютному MakeAbsoluteSD


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

1. Заполняем массив структур EXPLICIT_ACCESS, для кажной устанавливаем нужный SID (AllocateAndInitializeSid), нужные права доступа и т.д.
2. Содаем и заполняем DACL ф-цией SetEntriesInAcl, передав ей массив структур EXPLICIT_ACCESS.
3. Выполняем SetSecurityInfo с DACL_SECURITY_INFORMATION (или PROTECTED_DACL_SECURITY_INFORMATION, там смотря по обстоятельствам), передав ф-ции полученный ранее DACL.


 
Чапаев ©   (2007-02-24 21:55) [3]

> А какой дескриптор получается в итоге ? (Точнее, какой ACL)
> ? (глянуть можно Process Explorer"ом)
Если я правильно понял про "глянуть Process Explorer"ом" (Properties -> Security), доступ имеют Built-in admins, Authenticated users и Everyone. Хотя GetSecurityInfo() выдаёт, что DACL имеено тот, какой я назначал.

> [2] Eraser ©   (24.02.07 21:13)
Буду пробовать...


 
Чапаев ©   (2007-02-24 22:00) [4]

Ага... У главного потока DACL именно такой, как я назначил.


 
Игорь Шевченко ©   (2007-02-24 22:11) [5]

Чапаев ©   (24.02.07 21:55) [3]

Ну вот, Built-in admins имеют, значит есть ACE, в котором есть SID админский. Я бы посмотрел полностью ACL (через тот же Process Explorer на вкладке Security|Permissions|Advanced - оно там все ACE показывает.


 
Чапаев ©   (2007-02-25 08:12) [6]

> [5] Игорь Шевченко ©   (24.02.07 22:11)
Хм... В имеющейся у меня версии 8.41 такого не вижу... Буду искать поновее.


 
Чапаев ©   (2007-02-25 08:33) [7]

Скачал Process Explorer 10.2. Всё страньше и страньше, как говорила Алиса. В Security|Permissions|Advanced -- всё как было задумано: запретить - администраторы - полный доступ; разрешить - SYSTEM - полный доступ.

Даже когда средствами Process Explorer"а явно запрещаю доступ всем, через диспетчер задач можно завершить.


 
Игорь Шевченко ©   (2007-02-25 10:10) [8]

А унаследованных прав в ACL случаем нету ?


 
Чапаев ©   (2007-02-25 10:52) [9]

Нету!


 
Игорь Шевченко ©   (2007-02-25 22:24) [10]

совсем забыл, у админа может быть вклчена по умелчанию привилегия отладки. С этой привилегией права недействительны. Кроме того, в случае XP процесс может быть открыт с опцией WRITE_DACL для того, чтобы изменить его дексриптор безопасности, и после этого изменения процесс уже убивается вполне легально. Всем этим занимается Task Manager



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
2-1184695162
Knob
2007-07-17 21:59
2007.08.12
Блокировка крестика но не на форме


2-1184346134
WFS
2007-07-13 21:02
2007.08.12
Как поменять название поля в базе данных (программным образом)?


15-1184656344
Kolan
2007-07-17 11:12
2007.08.12
Иконка врача есть у кого, нибудь?


2-1184177481
Kolan
2007-07-11 22:11
2007.08.12
Как динамически создать Separator в MainMenu?


15-1184238277
Михаил Сергеевич
2007-07-12 15:04
2007.08.12
Предложение создать среду разработки аналогичную 1С