Как предоставить доступ Network Share к процессу низкого обязательного уровня? - PullRequest
0 голосов
/ 10 октября 2011

Есть ли способ предоставить доступ к общим сетевым ресурсам процессам низкого обязательного уровня (UAC)?

Дальнейшее объяснение: Чтобы перенести некоторые проблемы безопасности библиотек сторонних производителей, мы рассматриваем настройку режима целостности для изоляции процесса наНизкий, но нам нужно, чтобы процесс мог свободно считывать и записывать из указанного общего ресурса файловой системы (UNC-путь, возможно, на отдельном компьютере).

Кто-нибудь знает, есть ли способ сделать это?

Спасибо

1 Ответ

4 голосов
/ 10 октября 2011

Да, это доступно по умолчанию.Целостность процесса влияет только на локальную безопасность, а не на удаленную.Это может быть доказано созданием версии блокнота с низкой целостностью -

  1. . Скопируйте C: \ windows \ system32 \ notepad.exe в папку, например C: \ test \ lownote.exe
  2. Запустите lownote
  3. Подтвердите с помощью Process Explorer (http://live.sysinternals.com/procexp.exe) он работает с низким уровнем целостности. Обратите внимание, что вы можете открывать файлы на жестком дискено не может сохранить их, кроме как в разделах с низким уровнем целостности профиля пользователя. Перейдите к сети, укажите путь с помощью общего ресурса UNC - вы можете нормально открывать / сохранять файлы.

При этом вы можете встретить доступЗапрещенные сообщения при использовании процесса с низким уровнем целостности для записи в сетевые ресурсы. Эту причину можно найти с помощью procmon на компьютере, на котором запущено ваше приложение http://live.sysinternals.com/ProcMon.exe, и включив фильтрацию Result «ACCESS DENIED», а имя процесса -имя вашего процесса.

То, что не будет доступно, - это сопоставления дисков ... вы увидите сообщение «Отказано в доступе» при попытке прочитать HKCU [местоположение буквы диска]

As per Документация MSDN:

Однако вы можете использовать другие типы связи между процессом с низким уровнем целостности и процессом с более высоким уровнем целостности.Типы связи, которые вы можете использовать:

  • Буфер обмена (копирование и вставка)
  • Удаленный вызов процедур (RPC)
  • Сокеты
  • Сообщения окна, которые процессу с более высокой целостностью было явно разрешено получать от процессов с более низкой целостностью, вызывая ChangeWindowMessageFilter
  • Совместно используемая память, где процесс с более высокой целостностью явно понижает обязательную метку в разделе общей памяти (это важноЭто особенно опасно, и процесс с более высокой целостностью должен быть осторожен при проверке всех данных, которые записываются в общий раздел.)
  • COM-интерфейсы, где права активации запуска устанавливаются программно процессом с более высокой целостностью, чтобыразрешить привязку от клиентов с низким уровнем целостности
  • Именованные каналы, где создатель явно устанавливает обязательную метку для канала, чтобы разрешить доступ к процессам с более низкой целостностью

ref http://msdn.microsoft.com/en-us/library/bb625960.aspx

...