Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.46 MB
Время: 0.046 c
15-1184238631
Zagaevskiy
2007-07-12 15:10
2007.08.12
SMS


2-1184691358
Strange man
2007-07-17 20:55
2007.08.12
Скорость работы с объектами в Delphi


6-1141228505
Gnobobel
2006-03-01 18:55
2007.08.12
Indy: Не посылаются Cookies.


3-1177672039
DelphiLexx
2007-04-27 15:07
2007.08.12
DBGridEh1.SumList.RecalcAll приводит к блокировке DBGridEh2


2-1184846089
Fleg
2007-07-19 15:54
2007.08.12
Форма





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский