Zabezpečení ladicího programu

Schopnost ladit jiný proces vám dává extrémně široké možnosti, které byste jinak neměli, zejména při vzdáleném ladění. Škodlivý ladicí program může způsobit rozsáhlé poškození počítače, který ladí.

Mnoho vývojářů si však neuvědomuje, že bezpečnostní hrozba může také proudit opačným směrem. Je možné, že škodlivý kód v procesu ladění zneškodní zabezpečení počítače ladění: existuje řada zneužití zabezpečení, proti kterým je potřeba chránit.

Doporučené postupy zabezpečení

Mezi kódem, který ladíte, a ladicím programem existuje implicitní vztah důvěryhodnosti. Pokud jste ochotni něco ladit, měli byste být také ochotni ho spustit. Na konci řádku musíte být schopni důvěřovat tomu, co ladíte. Pokud mu nemůžete důvěřovat, neměli byste ho ladit nebo byste ho měli ladit z počítače, který si můžete dovolit ohrozit a v izolovaném prostředí.

Aby se snížil potenciální prostor pro útok, mělo by být ladění na produkčních počítačích zakázané. Z stejného důvodu by ladění nikdy nemělo být povolené po neomezenou dobu.

Zabezpečení spravovaného ladění

Tady je několik obecných doporučení, která platí pro všechna spravovaná ladění.

Zabezpečení vzdáleného ladění

Místní ladění je obecně bezpečnější než vzdálené ladění. Vzdálené ladění zvyšuje celkovou plochu, kterou lze vysunou.

Nástroj Visual Studio Remote Debugging Monitor (msvsmon.exe) se používá ve vzdáleném ladění a pro jeho konfiguraci existuje několik doporučení zabezpečení. Upřednostňovaným způsobem konfigurace režimu ověřování je ověřování systému Windows, protože režim bez ověřování není nezabezpečený.

Error dialog

Při použití režimu ověřování systému Windows mějte na paměti, že udělení nedůvěryhodného uživatelského oprávnění pro připojení k nástroji msvsmon je nebezpečné, protože uživatel je udělena všechna vaše oprávnění na počítači, který hostuje msvsmon.

Neladit neznámý proces na vzdáleném počítači: existují potenciální zneužití, která by mohla ovlivnit počítač, na kterém běží ladicí program, nebo které by mohly ohrozit msvsmon. Pokud je naprosto nutné ladit neznámý proces, zkuste ho místně ladit a pomocí brány firewall uchovávejte všechny potenciální hrozby lokalizované.

Informace o konfiguraci nástroje msvsmon naleznete v tématu Nastavení vzdáleného ladicího programu.

Zabezpečení ladění webových služeb

Je bezpečnější ladit místně, ale protože pravděpodobně nemáte na webovém serveru nainstalovanou sadu Visual Studio, místní ladění nemusí být praktické. Obecně platí, že ladění webových služeb se provádí vzdáleně, s výjimkou během vývoje, takže doporučení pro zabezpečení vzdáleného ladění platí také pro ladění webových služeb. Tady jsou některé další osvědčené postupy. Další informace naleznete v tématu Ladění webových služeb XML.

  • Nepovolujte ladění na webovém serveru, který byl ohrožen.

  • Před laděním se ujistěte, že je webový server zabezpečený. Pokud si nejste jistí, že je zabezpečený, neodlaďte ho.

  • Buďte obzvláště opatrní, pokud ladíte webovou službu, která je vystavená na internetu.

Externí komponenty

Mějte na paměti stav důvěryhodnosti externích komponent, se kterými program komunikuje, zejména pokud jste kód nenapsali. Mějte také na paměti komponenty, které může sada Visual Studio nebo ladicí program používat.

Symboly a zdrojový kód

Dva nástroje sady Visual Studio, které vyžadují přemýšlet o zabezpečení, jsou následující: