Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Platforma .NET oferuje wiele obiektów, które ułatwiają rozwiązywanie problemów z zabezpieczeniami podczas tworzenia aplikacji. Natywne wdrożenie AOT opiera się na tych funkcjach i udostępnia kilka, które mogą pomóc w zabezpieczaniu Twoich aplikacji.
Brak generowania kodu środowiska uruchomieniowego
Ponieważ natywna funkcja AOT generuje cały kod podczas publikowania aplikacji, nie trzeba generować nowego kodu wykonywalnego w czasie wykonywania. Umożliwia to uruchamianie aplikacji w środowiskach, które nie zezwalają na tworzenie nowych stron kodu wykonywalnego w czasie wykonywania. Cały kod wykonywany przez procesor CPU może być podpisany cyfrowo.
Ograniczona powierzchnia odbicia
Gdy aplikacje są publikowane za pomocą natywnej funkcji AOT, kompilator analizuje użycie odbicia w aplikacji. Tylko elementy programu, które zostały uznane za cele refleksji, są dostępne do refleksji w czasie wykonywania. Miejsca w programie, które próbują wykonać nieograniczone odbicie, są oflagowane za pomocą ostrzeżeń o przycinaniu. Nie można odzwierciedlić elementów programu, które nie miały być celami refleksji. To ograniczenie może zapobiec klasie problemów, w których złośliwy aktor kontroluje to, co program odzwierciedla i wywołuje niezamierzony kod. To ograniczenie obejmuje podejścia wykorzystujące Assembly.LoadFrom lub Reflection.Emit — żadne z nich nie działa z natywną kompilacją AOT, a ich użycie jest oznaczone ostrzeżeniem podczas kompilacji.
Ochrona przepływu sterowania
Control Flow Guard to wysoce zoptymalizowana funkcja zabezpieczeń platformy w systemie Windows, która została utworzona w celu zwalczania luk w zabezpieczeniach związanych z uszkodzeniem pamięci. Umieszczając ścisłe ograniczenia dotyczące tego, skąd aplikacja może wykonywać kod, znacznie trudniej jest wykorzystać luki w zabezpieczeniach, takie jak przepełnienie buforu.
Aby włączyć funkcję Control Flow Guard w natywnej aplikacji AOT, ustaw właściwość ControlFlowGuard w projekcie, który został opublikowany.
<PropertyGroup>
<!-- Enable control flow guard -->
<ControlFlowGuard>Guard</ControlFlowGuard>
</PropertyGroup>
Technologia egzekwowania przepływu sterowania - stos cieni (.NET 9+)
Technologia egzekwowania przepływu sterowania (CET) Shadow Stack to funkcja procesora komputerowego. Zapewnia ona możliwości obrony przed atakami złośliwego oprogramowania opartymi na programowaniu zwrotnym (ROP).
Opcja CET jest domyślnie włączona podczas publikowania w systemie Windows. Aby wyłączyć CET, ustaw CetCompat parametr w opublikowanym projekcie.
<PropertyGroup>
<!-- Disable Control-flow Enforcement Technology -->
<CetCompat>false</CetCompat>
</PropertyGroup>