Форум: "WinAPI";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизЗащита Найти похожие ветки
← →
Чапаев © (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c