La maggior parte dei nuovi PC è stata spedita con l'estensione Versione a 64 bit di Windows - sia Windows 7 che 8 - da anni ormai. Le versioni a 64 bit di Windows non si limitano a sfruttare la memoria aggiuntiva. Sono anche più sicure delle versioni a 32 bit.
I sistemi operativi a 64 bit non sono immuni al malware, ma hanno più funzionalità di sicurezza. Alcuni di questi si applicano anche alle versioni a 64 bit di altri sistemi operativi, come Linux. Gli utenti Linux otterranno vantaggi in termini di sicurezza cambiando a una versione a 64 bit della loro distribuzione Linux .
Randomizzazione del layout dello spazio degli indirizzi
ASLR è una funzione di sicurezza che fa sì che le posizioni dei dati di un programma vengano disposte in modo casuale nella memoria. Prima dell'ASLR, le posizioni dei dati di un programma nella memoria potevano essere prevedibili, il che rendeva gli attacchi a un programma molto più semplici. Con ASLR, un utente malintenzionato deve indovinare la posizione corretta in memoria quando tenta di sfruttare una vulnerabilità in un programma. Un'ipotesi errata può causare l'arresto anomalo del programma, quindi l'aggressore non sarà in grado di riprovare.
Questa funzione di sicurezza viene utilizzata anche nelle versioni a 32 bit di Windows e altri sistemi operativi, ma è molto più potente nelle versioni a 64 bit di Windows. Un sistema a 64 bit ha uno spazio degli indirizzi molto più ampio rispetto a un sistema a 32 bit, rendendo ASLR molto più efficace.
Firma obbligatoria del conducente
La versione a 64 bit di Windows impone la firma obbligatoria del driver. Tutto il codice del driver sul sistema deve avere una firma digitale. Ciò include i driver dei dispositivi in modalità kernel e i driver in modalità utente, come i driver della stampante.
La firma obbligatoria del driver impedisce l'esecuzione nel sistema di driver non firmati forniti dal malware. Gli autori di malware dovranno in qualche modo bypassare il processo di firma tramite un rootkit all'avvio o riuscire a firmare i driver infetti con un certificato valido rubato da uno sviluppatore di driver legittimo. Ciò rende più difficile l'esecuzione sul sistema dei driver infetti.
La firma dei driver potrebbe essere applicata anche alle versioni a 32 bit di Windows, ma non lo è, probabilmente per una compatibilità continua con i vecchi driver a 32 bit che potrebbero non essere stati firmati.
Per disabilitare la firma del driver durante lo sviluppo nelle edizioni a 64 bit di Windows, dovresti farlo allegare un debugger del kernel oppure utilizza un'opzione di avvio speciale che non persiste durante i riavvii del sistema.
Protezione dalle patch del kernel
KPP, noto anche come PatchGuard, è una funzionalità di sicurezza disponibile solo nelle versioni a 64 bit di Windows. PatchGuard impedisce al software, anche ai driver in esecuzione in modalità kernel, di applicare patch al kernel di Windows. Questo non è sempre stato supportato, ma è tecnicamente possibile sulle versioni a 32 bit di Windows. Alcuni programmi antivirus a 32 bit hanno implementato le loro misure di protezione antivirus utilizzando patch del kernel.
PatchGuard impedisce ai driver di dispositivo di applicare patch al kernel. Ad esempio, PatchGuard impedisce ai rootkit di modificare il kernel di Windows per incorporarsi nel sistema operativo. Se viene rilevato un tentativo di patch del kernel, Windows si spegnerà immediatamente con una schermata blu o si riavvierà.
Questa protezione potrebbe essere implementata sulla versione a 32 bit di Windows, ma non lo è stata, probabilmente per una compatibilità continua con il software legacy a 32 bit che dipende da questo accesso.
Protezione dell'esecuzione dei dati
DEP consente a un sistema operativo di contrassegnare determinate aree di memoria come "non eseguibili" impostando un "bit NX". Le aree di memoria che dovrebbero contenere solo dati non saranno eseguibili.
Ad esempio, su un sistema senza DEP, un utente malintenzionato potrebbe utilizzare una sorta di buffer overflow per scrivere codice in un'area della memoria di un'applicazione. Questo codice potrebbe quindi essere eseguito. Con DEP, l'attaccante potrebbe scrivere codice in una regione della memoria dell'applicazione, ma questa regione sarebbe contrassegnata come non eseguibile e non potrebbe essere eseguita, il che fermerebbe l'attacco.
I sistemi operativi a 64 bit hanno DEP basato su hardware. Sebbene sia supportato anche sulle versioni a 32 bit di Windows se si dispone di una CPU moderna, le impostazioni predefinite sono più rigorose e DEP è sempre abilitato per i programmi a 64 bit, mentre è disabilitato per impostazione predefinita per i programmi a 32 bit per motivi di compatibilità.
La finestra di dialogo di configurazione DEP in Windows è un po 'fuorviante. Come Microsoft’s documentation afferma, DEP è sempre utilizzato per tutti i processi a 64 bit:
“Le impostazioni di configurazione di DEP di sistema si applicano solo alle applicazioni e ai processi a 32 bit quando vengono eseguiti su versioni di Windows a 32 o 64 bit. Nelle versioni a 64 bit di Windows, se è disponibile DEP rinforzato dall'hardware, viene sempre applicato ai processi a 64 bit e agli spazi di memoria del kernel e non ci sono impostazioni di configurazione del sistema per disabilitarlo. "
WOW64
Le versioni a 64 bit di Windows eseguono il software Windows a 32 bit, ma lo fanno attraverso un livello di compatibilità noto come WOW64 (Windows a 32 bit su Windows a 64 bit). Questo livello di compatibilità applica alcune restrizioni a questi programmi a 32 bit, che potrebbero impedire il corretto funzionamento del malware a 32 bit. Anche il malware a 32 bit non potrà essere eseguito in modalità kernel - solo i programmi a 64 bit possono farlo su un sistema operativo a 64 bit - quindi questo potrebbe impedire il corretto funzionamento di alcuni vecchi malware a 32 bit. Ad esempio, se hai un vecchio CD audio con il rootkit di Sony, non sarà in grado di installarsi su una versione a 64 bit di Windows.
Anche le versioni a 64 bit di Windows non supportano i vecchi programmi a 16 bit. Oltre a impedire l'esecuzione di vecchi virus a 16 bit, ciò costringerà anche le aziende ad aggiornare i loro vecchi programmi a 16 bit che potrebbero essere vulnerabili e privi di patch.
Data la diffusione delle versioni a 64 bit di Windows, il nuovo malware sarà probabilmente in grado di funzionare su Windows a 64 bit. Tuttavia, la mancanza di compatibilità può aiutare a proteggere dal vecchio malware in circolazione.
A meno che non si utilizzino vecchi programmi a 16 bit scricchiolanti, hardware antico che offre solo driver a 32 bit o un computer con una CPU a 32 bit piuttosto vecchia, si dovrebbe utilizzare la versione a 64 bit di Windows. Se non sei sicuro di quale versione stai utilizzando ma hai un computer moderno con Windows 7 o 8, probabilmente stai utilizzando l'edizione a 64 bit.
Naturalmente, nessuna di queste funzionalità di sicurezza è infallibile e una versione a 64 bit di Windows è ancora vulnerabile al malware. Tuttavia, le versioni a 64 bit di Windows sono decisamente più sicure.
Credito immagine: William Hook su Flickr