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í.
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. To je velmi rizikové udělat i bez ladění. 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 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ý.
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í:
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í: Ladicí program 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í a příprava ladicího programu
- První seznámení s ladicím programem
- Upozornění zabezpečení: Připojení k procesu, jehož vlastníkem je nedůvěryhodný uživatel, může být nebezpečné. Pokud následující údaje vypadají podezřele nebo si nejste jistí, k tomuto procesu se nepřipojujte.
- Upozornění zabezpečení: Ladicí program musí spustit nedůvěryhodný příkaz.