Sicurezza durante il debug di Kernel-Mode
La sicurezza durante il debug in modalità kernel non riguarda mai la protezione del computer obiettivo. La destinazione è completamente vulnerabile al debugger, questa è la vera natura del debug.
Se durante l'avvio è stata abilitata una connessione di debug, rimarrà vulnerabile tramite la porta di debug fino al successivo avvio.
Tuttavia, è necessario preoccuparsi della sicurezza nel computer host. In una situazione ideale, il debugger viene eseguito come applicazione nel computer host, ma non interagisce con altre applicazioni in questo computer. Esistono tre possibili modi in cui possono verificarsi problemi di sicurezza:
Se si usano DLL di estensione danneggiate o distruttive, il debugger potrebbe eseguire azioni impreviste, eventualmente interessando il computer host.
È possibile che i file di simboli danneggiati o distruttivi possano anche causare l'esecuzione di azioni impreviste del debugger, che potrebbero influire sul computer host.
Se si esegue una sessione di debug remoto, un client imprevisto potrebbe tentare di collegarsi al server. O forse il cliente che stai aspettando potrebbe tentare di compiere azioni che non ti aspetti.
Se si desidera impedire a un utente remoto di eseguire azioni nel computer host, usare modalità protetta.
Un approccio per ridurre il rischio consiste nell'isolamento dell'host e del target in una rete privata isolata, utilizzando un hub di rete locale.
Per suggerimenti su come proteggersi da connessioni remote impreviste, vedere Sicurezza durante il debug remoto.
Se non si esegue il debug remoto, è comunque necessario prestare attenzione ai file di simboli non corretti e alle DLL di estensione. Non caricare simboli o estensioni non attendibili.
Debug del kernel locale
Solo gli utenti con privilegi di debug possono avviare una sessione di debug del kernel locale. Se si è l'amministratore di un computer che dispone di più account utente, è necessario tenere presente che qualsiasi utente con questi privilegi può avviare una sessione di debug del kernel locale, assegnando in modo efficace il controllo di tutti i processi nel computer e quindi concedendole l'accesso a tutte le periferiche.