He escrito un servicio .NET Windows que se ejecuta como "Sistema local". Hace poco leí que ejecutar un sistema local podría exponer la credencial del sistema a piratas informáticos, lo que les permitiría hacerse cargo del sistema. ¿Cuáles son los riesgos involucrados y cómo puedo evitarlos cuando ejecuto el servicio como Sistema local?¿Cuáles son los riesgos de seguridad al ejecutar un servicio de Windows como "sistema local"?
Respuesta
Los servicios que se ejecutan como LocalSystem
son parte del espacio de confianza del sistema. Técnicamente hablando, tienen el privilegio SeTcbName
. Esto significa, entre otros,, que dichos servicios pueden alterar cualquier configuración de seguridad, otorgarse privilegios y generalmente hacer cualquier cosa que Windows pueda hacer.
Como resultado, cualquier falla en su servicio - entrada no mejorada pasada a las funciones del sistema, rutas de búsqueda dll incorrectas, sobrepasamientos de búfer, lo que sea - se convierte en un agujero de seguridad crítico. Esta es la razón por la que ningún administrador del sistema en un entorno empresarial permitirá la instalación de su servicio si se ejecuta bajo LocalSystem
. Use las cuentas LocalService
y NetworkService
.
Con cualquier servicio que ejecute, o creo que cualquier aplicación, debe hacer que la aplicación elimine los permisos que no son necesarios para reducir el impacto de los piratas informáticos.
Por lo tanto, si el servicio no necesita escribir en el directorio local, o eliminar, entonces elimine ese permiso.
Además, puede ver si necesita acceder a las claves de registro.
Existen varios permisos que puede eliminar para limitar el daño que se puede hacer.
Editar: Es posible que desee hacer un hallazgo para S2. Window Services para obtener más información sobre los riesgos debidos al sistema local. http://www.sans.org/top20/
Creo que el problema principal es que si alguien descubre un error de seguridad en su servicio que le permite acceder a los recursos del sistema y/o ejecutar código, accede/ejecuta con derechos de sistema local (que son los mismos que en Administradores). La pregunta es: ¿estás totalmente seguro de que tu servicio es a prueba de hackers? : P
- 1. ¿Cuáles son los riesgos de seguridad al usar XMLHttpRequest entre dominios?
- 2. ¿Cuáles son los riesgos al usar Rational Team Concert?
- 3. ¿Cuáles son los riesgos de las sesiones de PHP?
- 4. ¿Cuáles son los riesgos de la comunicación JSONP entre dominios?
- 5. ¿Cuáles son los riesgos de usar datos: image/jpeg; base64?
- 6. Powershell - Crear tarea programada para ejecutar como sistema/servicio local
- 7. ¿Cuáles son los riesgos concretos de usar atributos HTML personalizados?
- 8. ¿Cómo ejecutar un proceso separado como usuario de dominio con un servicio de "sistema local"?
- 9. WCF Seguridad en un servicio de Windows
- 10. Formulario sin token CSRF: ¿cuáles son los riesgos
- 11. ¿Cuáles son los riesgos con el Proyecto Lombok?
- 12. ¿Beneficios de ejecutar Apache como un servicio?
- 13. ¿Cuáles son las mejores prácticas cuando se ejecuta un proceso como un servicio de Windows?
- 14. Ejecutar un servidor web Python como un servicio en Windows
- 15. ejecutar un servicio de Windows como una aplicación de consola
- 16. ¿Cuáles son las diferencias entre un servicio web y un servicio de Windows?
- 17. ¿Cuáles son los beneficios y riesgos de pasar a un enfoque de Arquitectura dirigida por modelo?
- 18. ¿Cuáles son los beneficios de usar el compilador de Roslyn como un servicio
- 19. Riesgos de seguridad al usar eval() para ejecutar la entrada del usuario en JavaScript
- 20. Ejecutar una aplicación WPF como un servicio de Windows
- 21. Cuáles son los beneficios de ejecutar Java en Linux (alejándose de Windows)
- 22. C#: servicio de Windows simple da como excepción de seguridad
- 23. Ventajas de ejecutar una aplicación como un servicio
- 24. Ejecución de msiexec desde un servicio (cuenta del sistema local)
- 25. ¿Cuáles son los riesgos de exponer la clave oauth no tan secreta? ¿Hay alguna solución?
- 26. Pros y contras de ejecutar Quartz.NET embedded o como un servicio de Windows
- 27. ¿Cuáles son los riesgos de ajustar Async/Await IAsyncOperations con el código Task.Wait()?
- 28. ¿Cómo evitar los riesgos de seguridad de UNLINK en PHP?
- 29. ¿Cuáles son los riesgos asociados con el alojamiento de Javascripts de terceros?
- 30. Problema al probar un servicio de Windows
Los administradores incorporados no tienen 'SeTcbName' de forma predeterminada después de NT 4, por lo que' LocalSystem' tiene aún más derechos que los administradores locales. –