Dela via


Felsökningssäkerhet

Möjligheten att felsöka en annan process ger dig mycket breda krafter som du annars inte skulle ha, särskilt när du felsöker på distans. Ett skadligt felsökningsprogram kan orsaka omfattande skador på den dator som debuggas.

Många utvecklare inser dock inte att säkerhetshotet också kan flöda i motsatt riktning. Det är möjligt att skadlig kod i processen som felsöks kan äventyra säkerheten för datorn som används för felsökning: det finns ett antal säkerhetsintrång som behöver skyddas från.

Metodtips för säkerhet

Det finns en implicit förtroenderelation mellan den kod som du felsöker och felsökningsprogrammet. Om du är villig att felsöka något bör du också vara villig att köra det. Slutsatsen är att du måste kunna lita på det du felsöker. Om du inte kan lita på det bör du inte felsöka det, eller så bör du felsöka det från en dator som du har råd att äventyra och i en isolerad miljö.

För att minska den potentiella attackytan bör felsökning inaktiveras på produktionsdatorer. Av samma anledning bör felsökning aldrig aktiveras på obestämd tid.

Hanterad felsökningssäkerhet

Här följer några allmänna rekommendationer som gäller för all hanterad felsökning.

Fjärrfelsökningssäkerhet

Lokal felsökning är vanligtvis säkrare än fjärrfelsökning. Fjärrdebuggning ökar den totala ytan som kan undersökas.

Visual Studio Remote Debugging Monitor (msvsmon.exe) används vid fjärrfelsökning och det finns flera säkerhetsrekommendationer för att konfigurera den. Det bästa sättet att konfigurera autentiseringsläget är Windows-autentisering eftersom inget autentiseringsläge är osäkert.

Felmeddelanderuta

När du använder Windows-autentiseringsläge bör du vara medveten om att det är farligt att bevilja en obetrodd användare behörighet att ansluta till msvsmon, eftersom användaren beviljas alla dina behörigheter på den dator som är värd för msvsmon.

Felsök inte en okänd process på en fjärrdator: det finns potentiella kryphål som kan påverka datorn som kör felsökningsprogrammet, eller som kan äventyra msvsmon. Om du absolut måste felsöka en okänd process kan du prova att felsöka lokalt och använda en brandvägg för att hålla eventuella hot lokaliserade.

Information om hur du konfigurerar msvsmon finns i Konfigurera fjärrfelsökaren.

Webbtjänstfelsökningssäkerhet

Det är säkrare att felsöka lokalt, men eftersom du förmodligen inte har Visual Studio installerat på webbservern kanske lokal felsökning inte är praktiskt. I allmänhet utförs felsökning av webbtjänster via fjärranslutning, förutom under utveckling, så rekommendationerna för fjärrfelsökningssäkerhet gäller även för felsökning av webbtjänster. Här följer några ytterligare metodtips. Mer information finns i Felsöka XML-webbtjänster.

  • Aktivera inte felsökning på en webbserver som har komprometterats.

  • Kontrollera att webbservern är säker innan du felsöker den. Om du inte är säker på att den är säker ska du inte felsöka den.

  • Var särskilt försiktig om du felsöker en webbtjänst som är tillgänglig på Internet.

Externa komponenter

Tänk på förtroendestatusen för externa komponenter som ditt program interagerar med, särskilt om du inte skrev koden. Tänk också på komponenter som Visual Studio eller felsökningsprogrammet kan använda.

Symboler och källkod

Två Visual Studio-verktyg som kräver att du tänker på säkerhet är följande: