ОБСУЖДЕНИЕ

Создание процессов с ограничением прав

2 ответов 3,9 тыс.
AI-выжимка обсуждения скоро

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

Статус
Закрыто для дальнейших ответов.
Автор темы
Проблема следующая: необходимо запускать процесс при этом ограничив его, например, запретив доступ к открытию файлов, или созданию дочерних процессов и т.п. Примером может служить, например, настройка прав для приложений в KIS 2009.

Пытаясь найти решение, я начал естеcтвенно с CreateProcess() и структуры SECURITY_ATTRIBUTES, разобрался с организацией прав доступа к объектам (списки DACL и SACL, ACEs), и пришел к выводу, что вся эта схема ровно противоположна тому, что нужно мне :) Т.е. с помощью SECURITY_ATTRIBUTES я могу указать кто из пользователей и что сможет или не сможет делать с созданным процессом, а как же указать, что может делать данный процесс?
Согласно логике организации доступа процессов к объектам (маркер доступа у процесса и дескриптор безопасности у объекта) получается, что для решения проблемы необходимо запустить процесс под именем отдельного пользователя (с этим как раз проблем нет), а перед этим создать дескриптор безопасности, указав в нем данного пользователя и запретив ему нужные операции, затем применить данный дискриптор ко всем объектам системы(!) - вот это уже по-моему бред... и чувствую не туда я уже пошел.
Помогите найти верный путь :)
 
На самом деле все достаточно просто - перехват API функций (CreateFile, CreateProcess) путем подмены таблицы импорта запускаемого процесса.
 
Да, соверешенно верно, с помощью перехвата API-функций лучше такое реализовать.
Вот материал интересный по теме: http://www.rsdn.ru/article/baseserv/IntercetionAPI.xml
Вопрос можно считать исчерпанным.
 
Статус
Закрыто для дальнейших ответов.