#windows #security #winapi #uac #network-security
#Windows #Безопасность #winapi #uac #сеть-безопасность
Вопрос:
Есть ли какой-либо способ предоставить доступ к сетевым ресурсам процессам низкого обязательного уровня (UAC)?
Дополнительное объяснение: Чтобы перенести некоторые проблемы безопасности сторонних библиотек, мы рассматриваем возможность установки режима целостности для изоляции процесса на низкий уровень, но нам нужно, чтобы процесс свободно читал / записывал из указанного общего ресурса файловой системы (путь UNC, возможно, на отдельном компьютере).
Кто-нибудь знает, есть ли способ сделать это?
Спасибо
Ответ №1:
Да, это доступно по умолчанию. Целостность процесса влияет только на локальную безопасность, а не на удаленную безопасность. Это можно доказать, создав версию Notepad с низким уровнем целостности —
- Копировать C:windowssystem32notepad.exe в местоположение, т.е. C:testlownote.exe
- Запустите icacls C:testlownote.exe /setintegritylevel Low
- Запустите lownote
- Подтвердите с помощью Process Explorer (http://live.sysinternals.com/procexp.exe ) он работает с низкой целостностью. Обратите внимание, что вы можете открывать файлы на жестком диске, но не можете сохранять их, за исключением разделов с низкой целостностью профиля пользователя «Перейти к сети», «путь» с использованием общего ресурса UNC — вы можете открывать / сохранять файлы нормально.
При этом вы можете столкнуться с сообщениями об отказе в доступе при использовании процесса с низкой целостностью для записи в сетевые ресурсы. Эту причину можно найти с помощью procmon на компьютере, на котором запущено ваше приложениеhttp://live.sysinternals.com/ProcMon.exe и результатом фильтрации для включения является «ДОСТУП ЗАПРЕЩЕН», а имя процесса — это имя вашего процесса.
Что не будет доступно, так это сопоставления дисков…при попытке прочитать HKCU [местоположение буквы диска] вы увидите сообщение «доступ запрещен»
Согласно документации MSDN:
Однако вы можете использовать другие типы связи между процессом с низким уровнем целостности и процессом с более высоким уровнем целостности. Типы связи, которые вы можете использовать, включают:
- Буфер обмена (копировать и вставлять)
- Удаленный вызов процедуры (RPC)
- Сокеты
- Оконные сообщения, которые процессу с более высокой степенью целостности явно разрешено получать от процессов с более низкой степенью целостности, вызывая ChangeWindowMessageFilter
- Разделяемая память, где процесс с более высокой степенью целостности явно понижает обязательную метку в разделе общей памяти (Важно, это особенно опасно, и процесс с более высокой степенью целостности должен тщательно проверять все данные, записанные в раздел общего доступа.)
- COM-интерфейсы, где права на запуск активации устанавливаются программно процессом с более высокой степенью целостности, чтобы разрешить привязку от клиентов с низкой степенью целостности
- Именованные каналы, где создатель явно устанавливает обязательную метку на канале, чтобы разрешить доступ к процессам с более низкой целостностью
ссылка http://msdn.microsoft.com/en-us/library/bb625960.aspx