Dlaczego 64-bitowa wersja systemu Windows jest bezpieczniejsza
Większość nowych komputerów została dostarczona z 64-bitową wersją systemu Windows - zarówno Windows 7, jak i 8 - od wielu lat. 64-bitowe wersje systemu Windows to nie tylko wykorzystanie dodatkowej pamięci. Są także bardziej bezpieczne niż wersje 32-bitowe.
64-bitowe systemy operacyjne nie są odporne na złośliwe oprogramowanie, ale mają więcej funkcji bezpieczeństwa. Niektóre z nich dotyczą także 64-bitowych wersji innych systemów operacyjnych, takich jak Linux. Użytkownicy Linuksa zyskają przewagę w zakresie bezpieczeństwa, przechodząc na 64-bitową wersję swojej dystrybucji Linuksa.
Randomizacja układu przestrzeni adresowej
ASLR to funkcja bezpieczeństwa, która powoduje losowe rozmieszczenie lokalizacji danych programu w pamięci. Przed ASLR lokalizacja danych programu w pamięci była przewidywalna, co znacznie ułatwiło ataki na program. W przypadku ASLR osoba atakująca musi odgadnąć poprawną lokalizację w pamięci, próbując wykorzystać lukę w zabezpieczeniach programu. Niepoprawne domysły mogą spowodować awarię programu, więc osoba atakująca nie będzie mogła spróbować ponownie.
Ta funkcja zabezpieczeń jest również używana w 32-bitowych wersjach systemu Windows i innych systemach operacyjnych, ale jest znacznie wydajniejsza w 64-bitowych wersjach systemu Windows. System 64-bitowy ma znacznie większą przestrzeń adresową niż system 32-bitowy, dzięki czemu ASLR jest o wiele bardziej efektywny.
Obowiązkowe podpisywanie sterowników
64-bitowa wersja systemu Windows wymusza obowiązkowe podpisywanie sterowników. Cały kod sterownika w systemie musi mieć podpis cyfrowy. Obejmuje to sterowniki urządzeń trybu jądra i sterowniki trybu użytkownika, takie jak sterowniki drukarek.
Obowiązkowe podpisywanie sterowników zapobiega uruchamianiu w systemie niepodpisanych sterowników dostarczanych przez szkodliwe oprogramowanie. Twórcy szkodliwego oprogramowania będą musieli w jakiś sposób ominąć proces podpisywania za pomocą rootkita rozruchowego lub zdążyć podpisać zainfekowane sterowniki ważnym certyfikatem skradzionym przez prawowitego programistę. Utrudnia to zainfekowanym sterownikom uruchamianie systemu.
Podpisywanie sterowników może być również egzekwowane w 32-bitowych wersjach systemu Windows, ale nie jest prawdopodobne, aby kontynuować zgodność ze starszymi sterownikami 32-bitowymi, które mogły nie zostać podpisane.
Aby wyłączyć podpisywanie sterowników podczas programowania w 64-bitowych wersjach systemu Windows, należy dołączyć debuger jądra lub użyć specjalnej opcji uruchamiania, która nie będzie obowiązywać podczas ponownego uruchamiania systemu.
Ochrona łat jądra
KPP, znany również jako PatchGuard, to funkcja bezpieczeństwa dostępna tylko w 64-bitowych wersjach systemu Windows. PatchGuard chroni oprogramowanie, nawet sterowniki działające w trybie jądra, przed łataniem jądra systemu Windows. To zawsze było nieobsługiwane, ale jest technicznie możliwe w 32-bitowych wersjach systemu Windows. Niektóre 32-bitowe programy antywirusowe wdrożyły środki ochrony antywirusowej za pomocą łatek jądra.
PatchGuard uniemożliwia sterownikowi urządzenia łatanie jądra. Na przykład PatchGuard uniemożliwia rootkitom modyfikowanie jądra systemu Windows w celu osadzenia ich w systemie operacyjnym. Jeśli zostanie wykryta próba łatania jądra, system Windows natychmiast zamknie się na niebieskim ekranie lub uruchomi się ponownie.
Ta ochrona może zostać zastosowana w 32-bitowej wersji systemu Windows, ale nie była - prawdopodobnie kontynuowana kompatybilność ze starszym oprogramowaniem 32-bitowym, które zależy od tego dostępu.
Ochrona wykonywania danych
Funkcja DEP pozwala systemowi operacyjnemu na oznaczanie określonych obszarów pamięci jako "niewykonywalne" poprzez ustawienie "bitów NX". Obszary pamięci, które mają przechowywać tylko dane, nie będą wykonywalne.
Na przykład w systemie bez funkcji DEP atakujący może użyć pewnego rodzaju przepełnienia bufora, aby zapisać kod w regionie pamięci aplikacji. Ten kod mógłby następnie zostać wykonany. Przy użyciu funkcji DEP atakujący może zapisać kod w regionie pamięci aplikacji - ale region ten zostanie oznaczony jako nie-wykonywany i nie może zostać wykonany, co zatrzyma atak.
64-bitowe systemy operacyjne mają sprzętową DEP. Chociaż jest to również obsługiwane w 32-bitowych wersjach systemu Windows, jeśli masz nowoczesny procesor, ustawienia domyślne są bardziej rygorystyczne, a funkcja DEP jest zawsze włączona dla programów 64-bitowych, podczas gdy jest wyłączona domyślnie dla programów 32-bitowych ze względu na kompatybilność.
Okno konfiguracji DEP w Windows jest trochę mylące. Jak stwierdza dokumentacja firmy Microsoft, funkcja DEP jest zawsze używana we wszystkich procesach 64-bitowych:
"Ustawienia konfiguracji DEP systemu mają zastosowanie tylko do 32-bitowych aplikacji i procesów podczas pracy w 32-bitowej lub 64-bitowej wersji systemu Windows. W 64-bitowych wersjach systemu Windows, jeśli sprzętowy protokół DEP jest dostępny, jest zawsze stosowany do procesów 64-bitowych i przestrzeni pamięci jądra i nie ma ustawień konfiguracji systemu, aby go wyłączyć. "
WOW64
64-bitowe wersje systemu Windows uruchamiają 32-bitowe oprogramowanie Windows, ale robią to za pośrednictwem warstwy kompatybilności zwanej WOW64 (Windows 32-bitowy w 64-bitowym systemie Windows). Ta warstwa zgodności wymusza pewne ograniczenia dla tych 32-bitowych programów, co może uniemożliwić poprawne działanie 32-bitowego złośliwego oprogramowania. 32-bitowe złośliwe oprogramowanie również nie będzie działać w trybie jądra - tylko 64-bitowe programy mogą to robić w 64-bitowym systemie operacyjnym - więc może to uniemożliwić prawidłowe funkcjonowanie starszego 32-bitowego złośliwego oprogramowania. Na przykład, jeśli masz starą płytę audio CD z rootkitem Sony, nie będzie on mógł zainstalować się w 64-bitowej wersji systemu Windows.
64-bitowe wersje systemu Windows również rezygnują z obsługi starszych 16-bitowych programów. Oprócz uniemożliwiania wykonywania starożytnych 16-bitowych wirusów, zmusi to również firmy do aktualizacji swoich dawnych 16-bitowych programów, które mogą być podatne na ataki i niezarejestrowane..
Biorąc pod uwagę, jak szeroko rozpowszechnione są 64-bitowe wersje systemu Windows, nowe złośliwe oprogramowanie prawdopodobnie będzie działać w 64-bitowym systemie Windows. Jednak brak zgodności może pomóc w ochronie przed starym złośliwym oprogramowaniem na wolności.
Jeśli nie używasz skrzypiących starych 16-bitowych programów, starożytny sprzęt oferujący tylko sterowniki 32-bitowe lub komputer z dość starym 32-bitowym procesorem, powinieneś używać 64-bitowej wersji systemu Windows. Jeśli nie masz pewności, której wersji używasz, ale masz nowoczesny komputer z systemem Windows 7 lub 8, prawdopodobnie używasz wersji 64-bitowej.
Oczywiście żadna z tych funkcji zabezpieczeń nie jest niezawodna, a 64-bitowa wersja systemu Windows nadal jest podatna na złośliwe oprogramowanie. Jednak 64-bitowe wersje systemu Windows są zdecydowanie bezpieczniejsze.
Image Credit: William Hook on Flickr