Главная страница
    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.46 MB
Время: 0.053 c
15-1184445419
olevacho_
2007-07-15 00:36
2007.08.12
ошибка Microsoft .NET Framework v1.1 Redistributable


4-1172308669
plotn
2007-02-24 12:17
2007.08.12
Встроить элемент в shell-popup menu


11-1167329054
Thaddy
2006-12-28 21:04
2007.08.12
site problems


2-1184515931
Zagaevskiy
2007-07-15 20:12
2007.08.12
Язык системы


2-1184610269
Knob
2007-07-16 22:24
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский