22936 Letture

Bloccare i malware abilitando la funzionalità SEHOP in Windows

Tra i suggerimenti che consentono, in ambiente Windows, di proteggersi dai malware e dalle altre minacce provenienti dalla Rete, è cosa comune fare riferimento all'installazione di antivirus, firewall, alla tempestiva installazione degli aggiornamenti via a via rilasciati per il sistema operativo e per tutte le altre applicazioni. Quest'ultima è una prassi essenziale dal momento che consente di ripararsi dall'azione di quei componenti dannosi che sfruttano falle già conosciute per insediarsi sul sistema dell'utente (suggeriamo, a tal proposito, la lettura dell'articolo Aggiornare Windows e le altre applicazioni mettendo in sicurezza il sistema: Secunia PSI 3.0).

Per neutralizzare sul nascere i tentativi di aggressione sferrati dai malware che cercano di far leva sulle vulnerabilità software, uno dei consigli consiste nell'abilitazione della funzionalità SEHOP di Windows. Si tratta di un suggerimento del quale si parla poco di frequente ma che può aiutare per mettere in sicurezza il sistema e bloccare i malware prima che possano infettare il personal computer.


Acronimo di Structured Exception Handler Overwrite Protection, SEHOP è uno strumento che Microsoft ha deciso di integrare in tutte le versioni più recenti di Windows (leggasi Windows Vista e Windows 7) ma che è abilitato di default solamente in Windows Server 2008 ed in Windows Server 2008 R2.
Tra i vari metodi per eseguire exploit (così si chiamano quei codici che, sfruttando un bug od una vulnerabilità software permettono di avviare operazioni nocive, acquisire privilegi utente più elevati o causare malfunzionamenti), ossia per provocare il caricamento di codice arbitrario, c'è la sovrascrittura della cosiddetta "catena SEH".
Tutti i programmi implementano delle procedure per la gestione delle eccezioni ossia di quelle situazioni in cui si verificano particolari condizioni od eventi che alterano la normale esecuzione delle istruzioni (si pensi al try ... catch del linguaggio Java o di C#). Un attacco SEH overwriting prova ad alterare la routine di gestione dell'errore facendo in modo che essa faccia riferimento al codice arbitrario messo a punto dall'aggressore. Ovviamente, affinché tale codice dannoso venga eseguito, per il malintenzionato è indispensabile individuare una strategia adatta.

La funzionalità SEHOP, integrata anche in Windows Vista così come in Windows 7, sebbene non sia attivata in modo predefinito, si occupa di esaminare in tempo reale quando viene generata un'eccezione in un qualunque programma in esecuzione. A questo punto, SEHOP provvede a verificare che la catena SEH non sia stata in alcun modo modificata.
È quindi facile comprendere come anche SEHOP, accanto a strumenti come DEP e ASLR, si riveli un'ottima soluzione per prevenire numerose tipologie d'attacco. Si tratta di soluzioni che che non offrono una protezione a 360 gradi ma che comunque danno la possibilità di evitare l'esposizione a concreti rischi d'infezione.

Secondo Microsoft, la stragrande maggioranza delle applicazioni sarebbe compatibile con la funzionalità SEHOP sebbene, in alcune circostanze, non siano esclusi possibili malfunzionamenti. Nel caso di programmi scritti in maniera non adeguata, potrebbe infatti accadere che SEHOP venga tratto in inganno: in questo caso, il funzionamento dell'applicazione verrebbe temporaneamente bloccato.

Per attivare la funzionalità SEHOP in Windows Vista e Windows 7, è possibile aprire il Prompt dei comandi con i diritti di amministratore quindi digitare quanto segue:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" /v DisableExceptionChainValidation /t REG_DWORD /d 0 /f

Questo comando consente di inserire un nuovo valore nel registro di sistema di Windows e richiedere l'abilitazione di SEHOP per tutte le applicazioni che si sono installate e che si installeranno in futuro. La modifica avrà efficacia solamente previo reboot del personal computer.
Qualora si volesse disabilitare SEHOP e ripristinare la configurazione predefinita di Windows Vista o di Windows 7, basterà utilizzare il comando che segue:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel" /v DisableExceptionChainValidation /t REG_DWORD /d 1 /f

Anche in questo caso, affinché la modifica abbia effetto, è indispensabile riavviare il sistema operativo.

Decidere quali applicazioni tenere sotto controllo con EMET

EMET, acronimo di Enhanced Mitigation Experience Toolkit, è un software gratuito che consente di impiegare alcune famose funzionalità di protezione offerte dalle più recenti versioni di Windows estendendone l'utilizzo alle applicazioni di terze parti, anche le più "datate".
Il software, sviluppato nei laboratori di Microsoft, può essere sfruttato, tra l'altro, per elevare le difese di programmi ormai obsoleti.

La scoperta di nuove pericolose vulnerabilità è ormai all'ordine del giorno e codici exploit, in grado di sfruttarle, vengono sviluppati e distribuiti in Rete con una rapidità disarmante. Il mantenere le applicazioni sempre aggiornate, mediante l'installazione di patch ed aggiornamenti, è divenuta quindi una necessità sempre più pressante. Nel caso in cui si dovesse subire un attacco prima di aver messo in sicurezza i vari software in uso sui propri sistemi, le conseguenze potrebbero essere devastanti (infezione da malware, perdite di dati, sottrazione di informazioni personali, elevati costi in termini di produttività e perdite di profitto).

Le tecnologie per la riduzione dei rischi sono pensate per rendere più difficile, per un aggressore, sfruttare le vulnerabilità di sicurezza insite in un qualunque software. EMET è un'applicazione gratuita che consente di interagire con alcune tecnologie per l'attenuazione dei rischi offrendo alcuni vantaggi:
- non c'è bisogno del codice sorgente di alcun programma. EMET, a differenza di tecnologie come DEP (Data Execution Prevention) non necessita del codice sorgente di un'applicazione e di una successiva sua ricompilazione.
- configurazione molto flessibile. EMET offre la possibilità di applicare politiche per la riduzione del rischio a singole applicazioni od a specifici processi. Non c'è quindi bisogno di attivare la protezione di EMET su un'intera suite di programmi ma è possibile restringere l'azione ad un singolo componente software.
- possibilità di "irrobustire" le applicazioni più datate. EMET è concepito per proteggere soprattutto quei programmi che talvolta non sono più supportati dal rispettivo produttore. È cosa comune, soprattutto nelle realtà aziendali, doversi trovare a che fare con applicazioni obsolete che non godono più di aggiornamenti periodici. Mentre si valuta il passaggio a soluzioni software più recenti, si può pensare di impiegare EMET per scongiurare rischi di infezione derivanti ad esempio dalla presenza di vulnerabilità note ma non sanate.


L'interfaccia grafica di cui è dotato EMET rende molto più semplice l'individuazione delle applicazione da "proteggere" e non è necessario alcun intervento sulla configurazione del registro di sistema di Windows.

Microsoft ricorda che l'applicazione di alcune tecnologie di sicurezza su talune applicazioni potrebbe inibirne irrimediabilmente il funzionamento. E' quindi caldamente consigliato testare con attenzione le modifiche applicate su sistemi di prova preparati "ad hoc" prima di estendere il medesimo intervento sulle macchine usate in produzione.

EMET è compatibile con Windows XP SP3, Windows Vista SP1 e successivi, Windows 7. Per quanto riguarda i sistemi server, Microsoft assicura la compatibilità dell'utility con Windows Server 2003 SP1 e successivi, Windows Server 2008 e Windows Server 2008 R2.
Non tutti gli interventi sono però applicabili su tutte le versioni di Windows. La tabella che segue (fonte: Microsoft), riassume quali tecnologie sono utilizzabili, facendo leva su EMET, nelle varie versioni di Windows:

Sui sistemi a 64 bit, alcuni interventi a livello di singola applicazione sono permessi solo per quanto riguarda l'esecuzione di processi a 32 bit.

DEP (Data Execution Prevention) è una difesa capace di marcare tutte le locazioni di memoria associate ad un determinato processo come non eseguibili a meno che le stesse celle non contengano codice. Qualora si tenti di accedere ad una cella di memoria "dati", l'operazione verrà bloccata sollevando un'eccezione (status access violation) quindi terminerà il processo "incriminato".

Vediamo come si presenta la schermata principale di EMET e verifichiamo quali impostazioni il software mette a disposizione. A seconda della versione di Windows in uso, EMET – una volta avviato – mostrerà le funzionalità di protezione attivabili sul sistema.

La finestra mostra lo stato delle protezioni mentre cliccando su Configure system è possibile attivare le difese a livello di sistema (sui componenti già conosciuti da EMET) oppure abilitarle solamente per singole applicazioni (pulsante Configure apps).


Ogni intervento richiede il riavvio del sistema operativo (la necessità di effettuare l'operazione viene ricordata mediante un messaggio mostrato nella finestra principale del programma oltre che con una finestra di dialogo alla chiusura di EMET).

Avendo precedentemente attivato la funzionalità di protezione SEHOP, EMET mostrerà un'icona di colore verde accanto alla voce corrispondente, nella finestra principale del programma (riquadro System status).
Facendo clic sul pulsante Configure apps quindi su Add, si può eventualmente stabile se disabilitare la funzionalità SEHOP per uno o più eseguibili. Si tratta, questa, di una procedura da applicare nel caso in cui uno o più programmi si dovessero mostrare incompatibili con SEHOP.

EMET 3.0 è prelevabile gratuitamente facendo riferimento a questa pagina quindi cliccando su Download.


Bloccare i malware abilitando la funzionalità SEHOP in Windows - IlSoftware.it