Protezione esecuzione programmi, cos'è e a cosa serve


La "Protezione esecuzione programmi" è una funzionalità presente nel sistema operativo Microsoft Windows, che consente di aumentare la protezione da virus ed altri rischi (per conoscere tutti i pericoli ai quali sono esposti i nostri dispositivi consulta l'articolo "Minacce informatiche, disamina e classificazione").

NB: L'articolo fa riferimento alla versione disponibile, nell'ultimo rilascio del sistema operativo in cui è integrato, al momento della sua stesura (Windows 10.0.14393).

Che cos'è la protezione esecuzione programmi

Questa funzionalità è stata introdotta a partire da Windows XP Service Pack 2 ed è stata mantenuta in tutte le versioni successive. Essa è un insieme di tecnologie hardware e software che consente di effettuare verifiche aggiuntive sulla memoria RAM utilizzata dai processi, con l'obiettivo di impedire l'esecuzione di codice dannoso nel sistema.

Grazie al suo utilizzo possiamo ottenere un grande vantaggio: ossia impedire l'esecuzione di codice dalle pagine di dati. Generalmente quest'ultimo non viene eseguito dall'heap e dallo stack predefiniti.
La "Protezione esecuzione programmi", dunque, può essere applicata sia all'hardware che al software portando i seguenti vantaggi:
  • Applicata all'hardware: ci permette di rilevare il codice in esecuzione da questi percorsi e viene generata un'eccezione al momento dell'esecuzione.
  • Applicata al software: può impedire a codice dannoso di trarre vantaggio dai meccanismi di gestione delle eccezioni di Windows.
Andiamo a vedere nel dettaglio questi due metodi di applicazione:

Protezione esecuzione programmi applicata all'hardware

Essa viene applicata, nello specifico, all'hardware del nostro processore. Il suo operato consiste nel contrassegnare la memoria RAM del computer con un attributo che indichi che non deve essere eseguito codice da essa. La "Protezione esecuzione programmi" funziona in base alla pagina di memoria virtuale (in Windows conosciuta come "file di Paging", in sistemi unix-like come "swap"; essa è un'estensione della RAM, tramite il disco rigido, utile qualora la memoria non dovesse essere sufficiente) ed agisce cambiando, in genere, un bit nella voce PTE (Page Table Entry) per contrassegnare la pagina di memoria.

Quindi quando applicata all'hardware, questa tecnologia, va a contrassegnare tutti i percorsi di memoria di un processo come "non eseguibili", a meno che un percorso non contenga esplicitamente codice eseguibile.
In questo modo potremo difenderci da alcune tipologie di attacchi che tentano di inserire del codice e di eseguirlo da percorsi di memoria "non eseguibili". La funzionalità Protezione esecuzione programmi consente di impedire queste offensive intercettandole e generando un'eccezione.

La modalità di implementazione della "Protezione esecuzione programmi" nell'hardware e il modo in cui viene contrassegnata la pagina di memoria virtuale sono determinati dall'architettura del processore. Tuttavia i processori che supportano la funzionalità Protezione esecuzione programmi applicata all'hardware possono generare un'eccezione quando il codice viene eseguito da una pagina contrassegnata da un insieme di attributi appropriato.

AMD (Advanced Micro Devices) e Intel hanno definito e reso disponibili architetture compatibili con Windows e con la funzionalità Protezione esecuzione programmi.

A partire da Windows XP SP2 la versione a 32 bit di Windows utilizza uno dei seguenti elementi:
  • La funzionalità del processore di protezione della pagina che impedisce l'esecuzione (NX, No Execute) definita da AMD. 
  • La funzionalità del bit di disattivazione dell'esecuzione (XD, Execute Disable Bit) definito da Intel.
Per utilizzare queste funzionalità del processore, quest'ultimo deve essere in esecuzione in modalità PAE (Physical Address Extension). Tuttavia in Windows la modalità PAE è attivata automaticamente per supportare la funzionalità "Protezione esecuzione programmi", quindi gli utenti non devono attivare separatamente la modalità PAE mediante l'opzione di avvio /PAE (Per vedere come attivare la funzionalità "Protezione esecuzione programmi" leggi il capitolo "CONFIGURARE LA PROTEZIONE ESECUZIONE PROGRAMMI").
NB: Poiché i kernel a 64 bit supportano la modalità AWE (Address Windowing Extensions), non esiste un kernel PAE separato nelle versioni a 64 bit di Windows.

Protezione esecuzione programmi applicata al software

Se applicata al software essa consente di effettuare delle verifiche progettate per bloccare codice dannoso che sfrutta i meccanismi di gestione delle eccezioni di Windows.
La "Protezione esecuzione programmi" applicata al software può essere eseguita da qualunque processore in grado di eseguire una versione di Windows pari o superiore a XP Service Pack 2.

Per impostazione predefinita, questo tipo di funzionalità consente di proteggere solo i programmi ed i servizi essenziali di sistema, indipendentemente dalle capacità del processore relative alla "Protezione esecuzione programmi" applicata all'hardware.

Vantaggi nell'utilizzo della protezione esecuzione programmi

Come accennato nel primo capito dell'articolo, la "Protezione esecuzione programmi" ci offre, principalmente, il vantaggio di poter impedire l'esecuzione di codice dalle pagine di dati, ad esempio le pagine di heap predefinite, diverse pagine dello stack e pagine del pool di memoria. In genere il codice non viene eseguito dall'heap e dallo stack predefiniti. Questa funzionalità applicata all'hardware rileva il codice in esecuzione da questi percorsi e genera un'eccezione al momento dell'esecuzione. Se l'eccezione non viene gestita, il processo viene interrotto. L'esecuzione di codice dalla memoria protetta in modalità kernel causa un errore di interruzione.
La "Protezione esecuzione programmi" consente di bloccare una serie di intrusioni nella protezione e, in modo specifico, un programma dannoso in cui un virus o un altro tipo di attacco abbia introdotto un processo con ulteriore codice e il successivo tentativo di esecuzione di quest'ultimo, infatti in un sistema con attivata questa funzione l'esecuzione del codice inserito causa un'eccezione. Applicata al software essa può impedire ai programmi di trarre vantaggio dai meccanismi di gestione delle eccezioni di Windows.

Configurare la protezione esecuzione programmi

Come spiegato nel capito "PROTEZIONE ESECUZIONE PROGRAMMI APPLICATA AL SOFTWARE" essa per impostazione predefinita protegge solo i programmi ed i servizi essenziali di sistema. Andiamo a vedere come fare ad attivarla per tutto il software che viene eseguito nel nostro computer:
  • Rechiamoci in "Start\Sistema Windows\Pannello di controllo\Sistema e sicurezza\Sistema" e facciamo click su "Impostazioni di sistema avanzate".




  • Apriamo, dalla scheda "Prestazioni", le impostazioni tramite il relativo tasto. Ci troveremo di fronte una nuova finestra.


  • Rechiamoci nell'ultimo tab, ossia "Protezione esecuzione programmi" e mettiamo la spunta su "Attiva protezione esecuzione programmi per tutti i programmi e si servizi tranne quelli selezionati:


  • Premiamo su ok, ci avviserà della necessità di riavviare il sistema, ed il gioco è fatto. Al prossimo riavvio la "Protezione esecuzione programmi" agirà su tutto il codice eseguito dal computer.
NB: Se questa funzionalità dovesse generale dei problemi con uno o più programmi (personalmente non mi è mai accaduto in anni di utilizzo), recarsi nel precedente menù rieseguendo i primi tre punti del precedente elenco, ed inserire nella lista delle eccezioni i software incompatibili.

Conclusione

Ora conosci a fondo tutte le potenzialità della "Protezione esecuzione programmi", lo strumento per la protezione dall'esecuzione di software indesiderato integrato in Windows. Se hai trovato utile l'articolo condividilo sui social e, qualora tu voglia dire la tua, non esitare a commentare.
Stampa

Commenti

Articoli più popolari di Tecno Salotto

MacroDroid, tutte le mie migliori macro

Minacce informatiche, disamina e classificazione

U.A.C. (User Account Control, Controllo Account Utente)

MacroDroid, la nuova frontiera dell’automazione su Android