Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La capacidad de depurar otro proceso proporciona poderes extremadamente amplios que no tendría de otro modo, especialmente al depurar de forma remota. Un depurador malintencionado podría infligir daños generalizados en la máquina que se está depurando.
Sin embargo, muchos desarrolladores no se dan cuenta de que la amenaza de seguridad también puede fluir en la dirección opuesta. Es posible que el código malicioso del proceso depurado ponga en peligro la seguridad del equipo de depuración: hay una serie de vulnerabilidades de seguridad que deben ser contrarrestadas.
Procedimientos recomendados de seguridad
Hay una relación de confianza implícita entre el código que está depurando y el depurador. Si estás dispuesto a depurar algo, también deberías estar dispuesto a ejecutarlo. La conclusión es que debe poder confiar en lo que está depurando. Si no puede confiar en él, no debe depurarlo. O bien, debe depurarlo desde una máquina que pueda permitirse arriesgar y en un entorno aislado.
Para reducir la superficie de ataque potencial, se debe desactivar la depuración en las máquinas de producción. Por el mismo motivo, la depuración nunca debe habilitarse indefinidamente.
Seguridad de depuración administrada
Aquí tienes algunas recomendaciones generales que se aplican a toda la depuración gestionada.
Tenga cuidado al conectarse al proceso de un usuario que no es de confianza: al hacerlo, está asumiendo que es de confianza. Al intentar asociarse al proceso de un usuario que no es de confianza, aparecerá una confirmación del cuadro de diálogo de advertencia de seguridad que le preguntará si desea asociar al proceso. Los "usuarios de confianza" incluyen usted y un conjunto de usuarios estándar definidos normalmente en las máquinas que tienen instalado .NET Framework, como aspnet, localsystem, networkservice y localservice. Para obtener más información, vea Advertencia de seguridad: Adjuntar a un proceso propiedad de un usuario que no es de confianza puede ser peligroso. Si la siguiente información parece sospechosa o no está seguro, no se adjunte a este proceso.
Tenga cuidado al descargar un proyecto fuera de Internet y cargarlo en Visual Studio. Hacer esto es muy arriesgado incluso sin depurar. Al hacerlo, se supone que el proyecto y el código que contiene son de confianza.
Para obtener más información, consulte Depuración de código administrado.
Seguridad de depuración remota
La depuración local suele ser más segura que la depuración remota. La depuración remota aumenta el área total de superficie que se puede examinar.
El Monitor de depuración remota de Visual Studio (msvsmon.exe) se usa en la depuración remota y hay varias recomendaciones de seguridad para configurarlo. La manera preferida de configurar el modo de autenticación es Windows Authentication, ya que el modo sin autenticación es inseguro.
Al usar el modo de autenticación de Windows, tenga en cuenta que conceder un permiso de usuario que no es de confianza para conectarse a msvsmon es peligroso, ya que al usuario se le conceden todos los permisos en el equipo que hospeda msvsmon.
No depurar un proceso desconocido en una máquina remota: hay posibles vulnerabilidades de seguridad que podrían afectar a la máquina que ejecuta el depurador o que podrían poner en peligro msvsmon. Si absolutamente debe depurar un proceso desconocido, pruebe a depurar localmente y use un firewall para mantener localizadas las posibles amenazas.
Para obtener información sobre cómo configurar msvsmon, consulte Configuración del depurador remoto.
Seguridad de depuración de servicios web
Es más seguro depurar localmente, pero como probablemente no tiene Visual Studio instalado en el servidor web, es posible que la depuración local no sea práctica. Por lo general, la depuración de servicios web se realiza de forma remota, excepto durante el desarrollo, por lo que las recomendaciones para la seguridad de depuración remota también se aplican a la depuración de servicios web. Estos son algunos procedimientos recomendados adicionales. Para obtener más información, vea Depuración de servicios web XML.
No habilite la depuración en un servidor web que haya sido comprometido.
Asegúrese de que el Servidor Web sea seguro antes de proceder a depurarlo. Si no está seguro de que es seguro, no lo depure.
Tenga especial cuidado si está depurando un servicio web que está disponible en Internet.
Componentes externos
Tenga en cuenta el estado de confianza de los componentes externos con los que interactúa el programa, especialmente si no ha escrito el código. Tenga en cuenta también los componentes que puede usar Visual Studio o el depurador.
Símbolos y código fuente
Dos herramientas de Visual Studio que requieren pensar en la seguridad son las siguientes:
Servidor de origen, que proporciona versiones del código fuente de un repositorio de código fuente. Resulta útil cuando no tiene la versión actual del código fuente de un programa. Advertencia de seguridad: el depurador debe ejecutar un comando que no es de confianza.
Servidor de símbolos, que se usa para proporcionar los símbolos necesarios para depurar un bloqueo durante una llamada al sistema.
Consulte Especificar símbolos (.pdb) y archivos de código fuente.
Contenido relacionado
- Preparación y configuración del depurador
- Primer vistazo al depurador
- Advertencia de seguridad: la asociación a un proceso propiedad de un usuario que no es de confianza puede ser peligroso. Si la siguiente información le parece sospechosa o si tiene dudas, no la adjunte a este proceso.
- Advertencia de seguridad: El depurador debe ejecutar un comando que no es de confianza