2012-06-16 23 views
5

Tengo un problema que parece que no puedo encontrar la respuesta, aunque estoy seguro de que está ahí. ¿Existe alguna manera de desactivar el registro y el acceso a archivos para un proceso recién creado? Estoy usando objetos Job (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682409(v=vs.85).aspx) y dice establecer los permisos para cada nuevo proceso de trabajo, y en algunos libros he leído que se pueden controlar cosas como el registro y el acceso a archivos.Deshabilitar el acceso de registro para un proceso específico (WinAPI)

Mientras buscaba mi respuesta, vi que necesitaba agregar LUID para cosas como SE_BACKUP_NAME y tal (o como se llame) pero ninguna de esas constantes de privilegios parece reflejar el tipo de control que quiero. Así que mi La pregunta exacta es: ¿Cómo voy a deshabilitar el acceso de escritura de registro/archivo para un proceso recién creado en un trabajo?

Estoy tratando de crear una aplicación de espacio aislado, por cierto. Esto es para evitar que realice cambios en el registro o escribir archivos mientras se ejecuta.

¡Cualquier ayuda sería apreciada!

+0

+1 para una pregunta bien escrita sobre un tema interesante. No soy de Windows, así que no tengo ni idea de cómo responderlo, pero ¡buena suerte y bienvenidos a SO! –

Respuesta

3

Windows tiene acceso a muchos recursos durante el inicio del proceso, por lo que si se desactiva correctamente el acceso al sistema de archivos y al registro, el proceso no se iniciará.

Lo ideal es que desee restringir el acceso una vez que se haya completado la inicialización del proceso, pero Windows no cuenta con un mecanismo para hacer esto para procesos arbitrarios. La zona de pruebas en el navegador Chrome depende de la cooperación del proceso de espacio aislado.

El documentation for the Chrome sandbox tiene una buena descripción de los diversos mecanismos de seguridad disponibles en Windows y explica cómo se usan en Chrome. Es una buena solución si estás tratando de guardar tu propio código.

+0

Tenga en cuenta que la parte de "intercepción" de la biblioteca de recinto de seguridad de Chrome probablemente podría imponerse desde el proceso de inicio mediante inyección de DLL. La "intercepción" se basa en el enganche API para restringir aún más lo que puede hacer el proceso de espacio aislado. –

0

No creo que pueda deshabilitar el acceso directo ya que muchos sistemas de subsistemas dependen de él (COM, el shell, alguna inicialización de DLL, depuración, etc.) Una alternativa sería permitir el acceso, pero a un entorno limitado que puede ser hecho con el integrity system. Establecerlo en low integrity bloqueará la mayoría de los accesos de escritura y es usado por IE en modo protegido.

Cuestiones relacionadas