Compartir a través de


Seguridad del depurador

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.

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.

Cuadro de diálogo de error

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: