Udostępnij przez


Zagadnienia dotyczące zabezpieczeń wizualizatora

Pisanie wizualizatora obejmuje możliwe zagrożenia bezpieczeństwa. Obecnie nie istnieją znane luki w zabezpieczeniach dla tych potencjalnych zagrożeń, ale deweloperzy powinni wiedzieć o nich i podjąć odpowiednie środki ostrożności, zgodnie z opisem w tym miejscu, aby chronić przed przyszłymi programami wykorzystującymi luki.

Wizualizatory debuggera wymagają większych uprawnień niż są dozwolone przez aplikację o częściowym zaufaniu. Wizualizatory nie będą się ładować po zatrzymaniu w kodzie z ograniczonym zaufaniem. Aby debugować przy użyciu wizualizatora, należy uruchomić kod z pełnym zaufaniem.

Uwaga / Notatka

Zabezpieczenia dostępu kodu (CAS) zostały wycofane we wszystkich wersjach programu .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

Możliwy złośliwy składnik debuggee

Wizualizatory składają się z co najmniej dwóch klas: jednej po stronie debugera i jednej po stronie debugowanego. Wizualizatory są często wdrażane w oddzielnych zestawach umieszczonych w specjalnych katalogach, ale można je również załadować z debuggee. W takim przypadku debuger pobiera kod z debuggee i uruchamia go wewnątrz debugera z pełnym zaufaniem.

Uruchamianie kodu po stronie debugowanej z pełnym zaufaniem staje się problematyczne, gdy debugowany proces nie jest w pełni zaufany. Jeśli wizualizator spróbuje załadować zestaw o częściowym zaufaniu z debuggowanego programu do debugera, program Visual Studio zakończy działanie wizualizatora.

Jednak nadal istnieje niewielka luka w zabezpieczeniach. Strona debuggee może połączyć się ze stroną debugera, która została załadowana z innego źródła niż debuggee. Strona debugowania może następnie powiedzieć zaufanej stronie debuggera, aby wykonała akcje w jego imieniu. Jeśli zaufana klasa po stronie debugera uwidacznia na przykład mechanizm "usuń ten plik", debuggee częściowego zaufania może wywołać ten mechanizm, gdy użytkownik wywołuje jego wizualizator.

Aby wyeliminować tę lukę w zabezpieczeniach, należy pamiętać o interfejsach uwidocznionych przez wizualizatora.