In che modo il collegamento a un processo con un debugger può compromettere la sicurezza del sistema?

4

Visual Studio mostra un avviso, cercando di collegarsi a un processo di un altro utente:

Cercandounaspiegazione,hotrovato l'articolo MSDN , sostenendo che:

An untrusted process that contains malicious code has the potential to damage the computer doing the debugging.

A mia conoscenza, è proprio l'opposto - in realtà è possibile allegare un processo con un debugger al fine di prevenire il suo comportamento (presumibilmente malevolo). Supponendo che nel mio sistema sia già in esecuzione un codice dannoso, come attaccarlo con un debugger può compromettere ulteriormente la sicurezza del sistema?

    
posta enkryptor 21.06.2016 - 12:54
fonte

2 risposte

2

Se scorri verso il basso la pagina del link msdn fornito sotto l'intestazione Vedi anche c'è un collegamento a Sicurezza di debugger che afferma:

The ability to debug another process gives you extremely broad powers that you would not otherwise have, especially when debugging remotely. A malicious debugger could inflict widespread damage on the machine being debugged.

However, many developers do not realize that the security threat can also flow in the opposite direction. It is possible for malicious code in the debuggee process to jeopardize the security of the debugging machine: there are a number of security exploits that must be guarded against.

Sicurezza debugger fornisce quindi le migliori pratiche per vari scenari di debug.

Per rispondere alla domanda specifica in che modo il collegamento con un debugger può compromettere ulteriormente la sicurezza del sistema? , Debugger Security fornisce un esempio di:

Do not debug an unknown process on a remote machine: there are potential exploits that might affect the machine running the debugger, or that might compromise msvsmon.exe, the Visual Studio Remote Debugging Monitor.

    
risposta data 21.06.2016 - 20:43
fonte
3

La tua nota che si tratta di un "processo utente diverso" è la chiave qui. Se il processo dannoso è limitato al contesto di quell'utente, quindi il collegamento di un debugger (che in genere richiede autorizzazioni approfondite) consente al processo di accedere a più risorse.

Mentre un debugger potrebbe essere usato per prevenire attività dannose, non c'è modo per il debugger di sapere esattamente cosa farai. Potresti semplicemente eseguire il processo fino al completamento per analizzare i log più tardi.

L'avvertimento è appropriato, anche se ci sono probabilmente modi in cui non è necessario. Meglio averlo per ricordare a tutti i veri problemi.

    
risposta data 21.06.2016 - 13:00
fonte

Leggi altre domande sui tag