Firma Microsoft wyjaśniła, w jaki sposób wykorzystuje automatyczną inicjalizację pamięci do naprawiania określonych błędów pamięci systemu Windows 10. Liczba omawianych luk ostatnio rośnie, zwłaszcza w oprogramowaniu tworzonym przy użyciu C lub C.++.
Błędy pamięci systemu Windows 10
Problem z niezainicjowaną pamięcią polega na tym, że nie można określić prawdziwej natury zawartych w niej wartości. Złośliwi mogą go wykorzystać do wyrządzenia szkód, takich jak naruszenie poufności lub kradzież danych.
Nie wszystkie języki programowania, na przykład C ++, powodują, że inicjalizacja pamięci jest obowiązkowa. Ich twórcy nie mieli jednak złych intencji.
Chcieli po prostu stworzyć zasób zorientowany na wydajność, a także dać programistom trochę swobody.
Z drugiej strony są to błędy pamięci systemu Windows 10, które Microsoft próbował wyeliminować. Firma podała, że tego typu problemy stanowiły 5-10% problemów bezpieczeństwa, którymi zajmowała się w latach 2017-2018.
Automatyczna inicjalizacja
Firma Microsoft opracowała InitAll jako narzędzie wymuszające automatyczną inicjalizację pamięci. Funkcja bezpieczeństwa jest ukierunkowana na struktury danych, tablice i skalary.
Według firmy automatycznej inicjalizacji podlegają następujące komponenty:
- Cały kod trybu jądra (tj. Wszystko skompilowane za pomocą / KERNEL) w repozytorium kodu systemu Windows
- Cały kod Hyper-V (hiperwizor, komponenty trybu jądra, komponenty trybu użytkownika)
- Szereg innych projektów, takich jak usługi trybu użytkownika związane z siecią
Wymuszanie inicjalizacji pamięci dla kodu trybu jądra jest z pewnością mile widzianym pomysłem. W rękach złego aktora takie niskopoziomowe instrukcje systemowe lub programy mogą spowodować wiele spustoszenia.
Ze względu na problemy z wydajnością Microsoft powiedział, że InitAll nie ma jeszcze zastosowania do wszystkich typów zmiennych.
Metody, które nie zadziałały
Firma Microsoft wdrożyła statyczne metody wykrywania niezainicjowanych zmiennych. Nie zawsze eliminowały one wszystkie zagrożenia. Ponadto techniki rozmyte nie są idealne, zwłaszcza gdy badasz ogromny system, taki jak system operacyjny Windows.
Przegląd kodu też nie działa. Na początek jest podatny na błędy. Po drugie, trudno go skalować.
Miejmy nadzieję, że Microsoft niedługo udoskonali funkcję InitAll, aby naprawić wszystkie błędy pamięci systemu Windows 10.
W razie jakichkolwiek pytań lub sugestii zawsze możesz do nas odpowiedzieć w sekcji komentarzy poniżej.
- Bezpieczeństwo cybernetyczne
- bezpieczeństwo