NX Bit: novità dal fronte sicurezza per Microsoft

Una scoperta dei laboratori di ricerca Kaspersky Lab mette in evidenza alcuni aspetti della nuova caratteristica dei processori x64.
di Marco Giuliani pubblicata il 21 Novembre 2005, alle 11:27 nel canale SicurezzaMicrosoft
Tra le informazioni e le presentazioni avvenute, una in particolare ha lasciato perplessa l'intera comunità di sviluppatori.
Costin Raiu, direttore del centro di ricerche Kaspersky Labs in Romania, spesso intervistato da Hardware Upgrade, ha parlato per la prima volta pubblicamente di un particolare riguardante l'NX bit.
La caratteristica forse più interessante della nuova architettura x64, inclusa la recente architettura EM64 di Intel, é il Non-Executable Bit (NX Bit).
L'NX bit, riassunto in breve, permette di prevenire esecuzione di codice nello stack, in modo da bloccare a priori eventuali attacchi di tipo Buffer Overflow.
Molti tipi di exploit sfruttano questa falla per poter venire eseguiti - anche worm quali Blaster e Sasser che sfruttano delle falle di sistema per poter diffondersi.
Costin Raiu ha portato alla luce una scoperta del ricercatore russo di Kaspersky Lab Yury Mashevsky.
Il ricercatore ha analizzato la libreria NTDLL.dll scoprendo alcune chiamate al suo interno quali CheckNXCompatibility and CheckNXIncompatibleDllSection.
Seguendo i collegamenti Mashevsky ha scoperto che la dll controlla se all'interno del file che sta per essere eseguito una delle sezioni é denominata .aspack, .pcle or .sforce.
Se una di queste stringhe viene identificata, il controllo su questi file da parte dell'NX bit viene disattivato automaticamente, lasciando libertà assoluta all'esecuzione.
"Le applicazioni compresse con Starforce e/o ASPack funzionano attraverso dei meccanismi che non permettono di essere eseguiti se l'NX Bit é abilitato. Questo significa che se si prova ad eseguire questi programmi in un sistema Windows X64 con il bit NX abilitato, non funzioneranno. Quindi per permettere di eseguire questi programmi, Microsoft ha scelto di disabilitare automaticamente il bit NX per la corretta esecuzione. In altre parole se un programma é compresso con ASPAck o StarForce non godrà della protezione del bit NX. Un caso in cui Microsoft ha preferito la compatibilità sacrificando la sicurezza.
Ho parlato personalmente in veste non ufficiale con alcuni ricercatori di Microsoft che mi hanno assicurato la rimozione di questo controllo nelle future release di Windows x64.", ha dichiarato per Hardware Upgrade Costin Raiu.
Quindi anche un eventuale exploit per windows 64 verrebbe bloccato dalle funzioni NX, ma se il codice fosse compresso con ASPAck o StarForce la protezione verrebbe meno.
Costin ci ha anche assicurati che terrà d'occhio la situazione comunicandoci direttamente eventuali novità a riguardo.
19 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoMah, c'è il fatto che difficilmente un exploit si diffonderà compresso con quegli algoritmi...
è possibile disattivare manualmente l'NX... quindi xchè prevedere un sistema automatico e creare una falla di sicurezza?!?
Non ho mai avuto problemi fin'ora, non la ritengo una impostazione necessaria.
StarForce non è un compressore ma invece è una protezione molto diffusa e molto ostica che viene utilizzata nei giochi per PC. E' sempre più diffusa e di conseguenza porterebbe ad una disabilitazione frequente dell'NX Bit
Pistolpete: ovviamente le differenze che ci sono non sono visibili. con l'NX abilitato, la grafica è sempre quella, le performance sono sempre le stesse, in internet navighi uguale. il giorno però che arriva un worm - se non proprio un hacker in carne ed ossa - che tenta di sfruttare un buffer overflow per prendere il controllo del tuo computer, se hai l'NX abilitato non entra, altrimenti si. tanto per dire, correggetemi se sbaglio, anche i vari blaster e sasser dovessero ripresentarsi oggi con l'NX abilitato non riuscirebbero ad entrare.
in ogni caso c'è una domanda che mi pongo: l'NX è senz'altro un'ottima cosa per la sicurezza, proprio perchè va a mettere uno scudo su uno dei tipi di attacchi più pericolosi. grazie a questo, come s'è detto nell'articolo, è possibile contrassegnare le aree di dati in memoria come "eseguibile" o "dati": nel caso in cui si abbia un buffer sul quale sia possibile, per via del solito baco dell'applicazione, scrivere oltre i suoi "limiti" anche invadendo zone eseguibili il codice che verrebbe malignamente apposto non verrebbe eseguito in quanto non contrassegnato con il bit NX. ora: windows Vista farà largo uso del codice managed, nel quale le protezioni sui "confini" dei buffer (e molto altro) è già intrinseco al codice stesso, che nel momento in cui si usa ad es. un puntatore prima di andare avanti esegue un controllo se il puntatore è valido o meno. la domanda è: di fatto il codice managed non rende superfluo l'NX flag?
O che almeno abbiano la decenza di lasciarli disabilitati di default, se non sono necessari.
E l' Unplug 'n Pray non lo e' di sicuro...
quindi quando gioco con il mio amato The Suffering 2 [Starforce hai buggato l'intero gioco!
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".