Hai dimostrato uno dei lati negativi dell'utilizzo dell'autenticazione di SQL Server rispetto all'autenticazione di Windows. Questo è il motivo per cui Microsoft consiglia di utilizzare l'autenticazione di Windows a meno che non si abbia una buona ragione per non farlo. Qui è una descrizione dei pro e dei contro di ciascuno. In particolare:
The encrypted SQL Server Authentication login password, must be passed over the network at the time of the connection. Some applications that connect automatically will store the password at the client. These are additional attack points.
Qui è un altro articolo di Microsoft che parla di come proteggere la connessione di SQL Server stringhe per Entity Framework, ma le stesse regole si applicano anche se non si utilizza EF. Questa dichiarazione ribadisce il motivo per cui raccomandano sempre l'utilizzo dell'autenticazione di Windows:
Be aware that logon information and passwords may be visible in a memory dump.
When data source logon and password information is supplied in the connection string, this information is maintained in memory until garbage collection reclaims the resources. This makes it impossible to determine when a password string is no longer in memory. If an application crashes, a memory dump file may contain sensitive security information, and the user running the application and any user with administrative access to the computer can view the memory dump file. Use Windows Authentication for connections to Microsoft SQL Server.
Per quanto riguarda l'eventuale utilizzo di applicazioni malware esistenti? Certamente sappiamo che può esistere, e tu lo hai dimostrato tu stesso. Tutto ciò che serve è che un'applicazione venga eseguita con autorizzazioni sufficienti per visualizzare la memoria di un'altra applicazione che memorizza le password in memoria. La parte difficile è che è probabile che tu abbia bisogno di sapere come è strutturata la memoria per trarne vantaggio. In altre parole, probabilmente avresti bisogno di sapere come funziona l'applicazione e poi costruisci lo sniffer di memoria attorno ad esso. Forse ci sono parole chiave generali che puoi cercare, ma ciò richiederebbe un bel po 'di fortuna. Un po 'come cercare sul fondo oceanico le navi perse che potrebbero ancora avere dei tesori in esse; a un certo punto il costo / la ricompensa non ne vale la pena.
Detto questo, se sapessi che una particolare (popolare) applicazione ha questo tipo di falla nella sicurezza, puoi tentare di progettare un malware che sia su misura per quell'applicazione, e quindi indirizzare gli utenti dell'applicazione per cercare di convincerli per installare il tuo malware sullo stesso computer.