Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ý debugger může způsobit rozsáhlé poškození počítače, který je laděn.
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.
Osvědč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. Podstatné je, že 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é. Ze stejného důvodu by ladění nikdy nemělo být povoleno po neomezenou dobu.
Zabezpečení spravovaného ladění
Tady jsou některá obecná doporučení, která platí pro všechny řízené procesy ladění.
Při připojování k nedůvěryhodnému procesu uživatele buďte opatrní: když to uděláte, předpokládáte, že je důvěryhodný. Když se pokusíte připojit k nedůvěryhodnému procesu uživatele, zobrazí se dialogové okno s upozorněním zabezpečení s dotazem, jestli se chcete k procesu připojit. Důvěryhodní uživatelé zahrnují vás a sadu standardních uživatelů běžně definovaných na počítačích s nainstalovaným rozhraním .NET Framework, jako jsou aspnet, localsystem, networkservice a localservice. Další informace naleznete v tématu Upozornění zabezpečení: Připojení k procesu vlastněného nedůvěryhodným uživatelem může být nebezpečné. Pokud následující informace vypadají podezřele nebo si nejste jisti, nepřipojíte se k tomuto procesu.
Při stahování projektu z internetu buďte opatrní a načítejte ho do sady Visual Studio. I bez ladění je to velmi rizikové provádět. Když to uděláte, předpokládáte, že projekt a kód, který obsahuje, jsou důvěryhodné.
Další informace naleznete v tématu Ladění spravovaného kódu.
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 oblast, kterou lze zkoumat.
Monitor vzdáleného ladění sady Visual Studio (msvsmon.exe) se používá ve vzdáleném ladění a existuje několik doporučení zabezpečení pro jeho konfiguraci. 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ý.
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 dostupná 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í:
Zdrojový server, který poskytuje verze zdrojového kódu z úložiště zdrojového kódu. Je užitečné, když nemáte aktuální verzi zdrojového kódu programu. Upozornění zabezpečení: Debugger musí spustit nedůvěryhodný příkaz.
Server symbolů, který se používá k poskytování symbolů potřebných k ladění chybového ukončení během systémového volání.
Související obsah
- nastavení ladicího programu a příprava
- První pohled na debugger
- Upozornění zabezpečení: Připojení k procesu vlastněného nedůvěryhodným uživatelem může být nebezpečné. Pokud následující informace vypadají podezřele nebo si nejste jisti, nepřipojíte se k tomuto procesu.
- Upozornění zabezpečení: Ladicí program musí spustit nedůvěryhodný příkaz.