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ą również 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 uzyskają korzyści bezpieczeństwa, przechodząc na 64-bitową wersję swojej dystrybucji Linuksa.
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.
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 dostarczonych przez szkodliwe oprogramowanie. Twórcy szkodliwego oprogramowania będą musieli w jakiś sposób ominąć proces podpisywania za pomocą rootkita podczas startu systemu lub udokumentować 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ć kompatybilność 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ła podczas ponownego uruchamiania systemu.
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 naprawianiem 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ę z niebieskim ekranem 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 32-bitowym oprogramowaniem, które zależy od tego dostępu.
Funkcja DEP umożliwia systemowi operacyjnemu oznaczenie pewnych 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 mógł zapisać kod w regionie pamięci aplikacji - ale region ten zostałby oznaczony jako nierealny i nie mógł zostać wykonany, co zatrzymałoby atak.
64-bitowe systemy operacyjne mają sprzętową funkcję 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 nieco 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 działania w 32-bitowych lub 64-bitowych wersjach systemu Windows. W 64-bitowych wersjach systemu Windows, jeśli wymuszona sprzętowo funkcja DEP jest dostępna, zawsze jest stosowana do procesów 64-bitowych i przestrzeni pamięci jądra i nie ma żadnych ustawień konfiguracji systemu, aby ją wyłączyć. "
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 na tych 32-bitowych programach, co może uniemożliwić prawidłowe 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 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 pradawnych 16-bitowych wirusów, zmusi to również firmy do uaktualnienia swoich dawnych 16-bitowych programów, które mogą być podatne na ataki i niezałatwione.
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, starego sprzętu oferującego tylko sterowniki 32-bitowe lub komputera 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 wciąż jest podatna na złośliwe oprogramowanie. Jednak 64-bitowe wersje systemu Windows są zdecydowanie bezpieczniejsze.
Image Credit: William Hook on Flickr