Ha demostrado uno de los inconvenientes de usar la autenticación de SQL Server en lugar de la autenticación de Windows. Es por esto que Microsoft recomienda usar la autenticación de Windows a menos que tenga una buena razón para no hacerlo. Aquí es una descripción de los pros y los contras de cada uno. En particular:
La contraseña de inicio de sesión autenticada de SQL Server cifrada, se debe pasar a través de la red en el momento de la conexión. Algunas aplicaciones que se conectan automáticamente almacenarán la contraseña en el cliente. Estos son puntos de ataque adicionales.
Aquí es otro artículo de Microsoft que habla sobre cómo asegurar la conexión de SQL Server cadenas para Entity Framework, pero las mismas reglas se aplican incluso si no está utilizando EF. Esta declaración reitera por qué recomiendan usar siempre la autenticación de Windows:
Tenga en cuenta que la información de inicio de sesión y las contraseñas pueden estar visibles en un volcado de memoria.
Cuando la información de inicio de sesión y contraseña del origen de datos se proporciona en la cadena de conexión, esta información se mantiene en la memoria hasta que la recolección de basura recupera los recursos. Esto hace que sea imposible determinar cuándo una cadena de contraseña ya no está en la memoria. Si una aplicación falla, un archivo de volcado de memoria puede contener información de seguridad confidencial, y el usuario que ejecuta la aplicación y cualquier usuario con acceso administrativo a la computadora pueden ver el archivo de volcado de memoria. Use la autenticación de Windows para las conexiones a Microsoft SQL Server.
¿En cuanto a si alguna aplicación de malware existente se aprovecha de esto? Ciertamente, sabemos que pueden existir, y usted mismo lo ha demostrado. Todo lo que se requiere es que una aplicación se ejecute con suficientes permisos para ver la memoria de otra aplicación que almacena las contraseñas en la memoria. La parte difícil es que es probable que necesites saber cómo está distribuida la memoria para poder aprovechar esto. En otras palabras, probablemente necesite saber cómo funciona primero la aplicación, y luego construir el rastreador de memoria a su alrededor. Quizás hay palabras clave generales que podrías buscar, pero eso requeriría un poco de suerte. Algo así como buscar en el fondo del océano barcos perdidos que aún podrían tener algunos tesoros en ellos; en algún punto, el costo / recompensa simplemente no hace que valga la pena.
Dicho esto, si supiera que una aplicación particular (popular) tenía este tipo de falla de seguridad, podría intentar diseñar un malware que se adapte a esa aplicación, y luego dirigirse a los usuarios de esa aplicación para intentar convencerlos. para instalar su malware en la misma máquina.