Debuger zabezpieczeń
Możliwość debugowania inny proces daje bardzo szerokie uprawnienia, które użytkownik nie miałyby inaczej, szczególnie w przypadku, gdy zdalne debugowanie.Złośliwy debuger może szkodliwego rozpowszechnione na komputerze debugowany.Z tego względu istnieją ograniczenia, na który można wykonać debugowania.Aby uzyskać więcej informacji, zobacz Remote Debugging Permissions.
Jednak wielu programistów nie wie że zagrożenie bezpieczeństwa można również przepływem w kierunku przeciwnym.Istnieje możliwość, że złośliwy kod w debugowanym procesie stanowią zagrożenie dla bezpieczeństwa komputera debugowania: liczba naruszenia zabezpieczeń, które musi być chroniony przed.
Najważniejsze wskazówki dotyczące zabezpieczeń
Istnieje relacja zaufania niejawna między kod debugowany i debuger.Jeśli jesteś gotów do debugowania coś, należy także gotowa do uruchomienia go.Dolna linia jest, że musi być zaufania są debugowania.Jeśli nie masz zaufania, następnie powinna nie debugowania go lub należy zdebuguj go z komputera, na który mogą sobie pozwolić, aby narażać i w izolowanym środowisku.
W celu ograniczenia potencjalnego ataku, debugowanie powinna być wyłączona na komputerach produkcyjnych.Z tego samego powodu powinien nigdy być włączone debugowanie przez czas nieokreślony.
Zarządzane debugowanie zabezpieczeń
Poniżej przedstawiono ogólne zalecenia dotyczące wszystkich zarządzanych debugowania.
Należy zachować ostrożność podczas dołączania do procesu niezaufany użytkownik: po wykonaniu, przyjmuje się, że jest godna zaufania.Podczas próby dołączyć do procesu niezaufany użytkownik ostrzeżenie potwierdzenia okno dialogowe Zabezpieczenia pojawi zapytaniem, czy chcesz dołączyć do procesu. "Zaufani użytkownicy"można dołączyć, a zestaw standardowych użytkowników często są definiowane na maszyny jest.NET Framework zainstalowana, takich jak aspnet, localsystem, Usługa sieciowa, i localservice.Aby uzyskać więcej informacji, zobacz Ostrzeżenie o zabezpieczeniach: Dołączanie do procesu, posiadane przez niezaufany użytkownik może być niebezpieczne. Jeżeli następujące informacje wyglądają podejrzanie lub nie masz pewności, nie dołączyć do tego procesu.
Należy zachować ostrożność podczas pobierania projektu Internet i ładowanie go do Visual Studio.To jest bardzo ryzykowne nawet bez debugowania.Po wykonaniu tej czynności są przy założeniu, że projekt i kod, który zawiera są godne zaufania.
Aby uzyskać więcej informacji, zobacz Debugowanie kodu zarządzanego.
Zabezpieczenia zdalnego debugowania
Debugowanie lokalnego jest zwykle bezpieczniejsze niż zdalnego debugowania.Zdalne debugowanie zwiększa całkowitej powierzchni, która może być sondowany.
Visual Studio zdalnego debugowania Monitor (msvsmon.exe) jest używany w zdalne debugowanie i istnieje kilka zaleceń bezpieczeństwa dla jego konfiguracji.Preferowanym sposobem skonfigurowania trybu uwierzytelniania jest uwierzytelnianie systemu Windows, ponieważ tryb uwierzytelniania nie jest bezpieczna.
Podczas korzystania z trybu uwierzytelniania systemu Windows, należy pamiętać, że nadawanie uprawnień niezaufany użytkownik, aby połączyć się z msvsmon jest niebezpieczne, ponieważ użytkownik uzyskuje swoje uprawnienia na komputerze.
Nieznany proces, na komputerze zdalnym nie debugowania: istnieją potencjalne nadużyciom, która może wpłynąć na komputerze, na którym debuger, lub które mogłyby zagrozić msvsmon.exe, Visual Studio zdalnego debugowania monitora.Jeśli bezwzględnie musi debug nieznany proces, spróbuj debugowanie lokalnie i zachować wszelkie potencjalne zagrożenia lokalizowane za pomocą zapory.
Aby uzyskać więcej informacji, zobacz Instalator zdalnego debugowania.
Debugowanie zabezpieczeń usług sieci Web
Jest bezpieczniejsze debug lokalnie, ale ponieważ prawdopodobnie nie ma Visual Studio zainstalowane na serwerze sieci web, debugowanie lokalnego może być praktyczne.Ogólnie debugowania usługi sieci Web jest wykonywane zdalnie, z wyjątkiem podczas rozwoju, więc zalecenia dla zdalnego debugowania zabezpieczeń dotyczą także debugowania usługi sieci Web.Oto niektóre dodatkowe najlepszych praktyk.Aby uzyskać więcej informacji, zobacz Debugging XML Web Services.
Nie należy włączać debugowanie na serwerze sieci Web, który został złamany.
Upewnij się, że wiesz, że serwer sieci Web jest bezpieczne, przed jej debugowanie.Jeśli nie masz pewności, że jest on bezpieczny, nie zdebuguj go.
Należy zachować szczególną ostrożność, jeśli debugowania usługi sieci Web, który jest dostępny w Internecie.
Składniki zewnętrzne
Należy pamiętać o stan zaufania zewnętrzne składników, które program użyje, zwłaszcza, jeśli nie pisania kodu.Należy także pamiętać składników, Visual Studio lub użyć debugera.
Symbole i kod źródłowy
Dwa Visual Studio narzędzi, które wymagają myślenia o bezpieczeństwie są następujące:
Serwer źródłowy zawiera wersje kodu źródłowego z repozytorium kodu źródłowego.Jest przydatna, jeśli nie masz bieżącej wersji kodu źródłowego programu.Aby uzyskać więcej informacji, zobacz [OBSOLETE] Porady: pobieranie kodu źródłowego przy użyciu serwera źródłowego i Ostrzeżenie o zabezpieczeniach: Debuger musi wykonać polecenia niezaufane.
Symbol serwera, który jest używany do dostarczania symbole debugowania awarii podczas wywołania systemowego.Aby uzyskać więcej informacji, zobacz [OBSOLETE] Porady: określanie lokalizacji symboli i zachowania przy ładowaniu i [OBSOLETE] Porady: korzystanie z serwera symboli.
Zobacz też
Informacje
Ostrzeżenie o zabezpieczeniach: Debuger musi wykonać polecenia niezaufane