Abilitare il DEP (Prevenzione dell'esecuzione dei dati) per tutti i programmi vale i rischi?

13

Prevenzione dell'esecuzione dei dati in Windows è presumibilmente una linea di difesa contro il codice dannoso "monitorando i programmi per assicurarsi che utilizzino la memoria del computer in modo sicuro". Tuttavia, so anche che non tutti i programmi sono creati per DEP, e se un app "sicura" viene bloccata e ritenuta non sicura possono verificarsi crash e altri problemi.

Nel pannello delle impostazioni di DEP (schermata di seguito), ho la possibilità di abilitare questo servizio per tutti i programmi installati sul mio computer.

DEP funziona davvero nella protezione dagli exploit (supponiamo che abbia già un buon AV e un firewall), o che non valga proprio il rischio di compatibilità?

    
posta bubbles 23.02.2014 - 00:32
fonte

1 risposta

14

Per capire che cosa fa DEP, devi prima conoscere un po 'di come la memoria è strutturata in un processo. Il concetto chiave è che il codice (istruzioni che la CPU può eseguire) e i dati (pile e oggetti) esistono in aree separate della memoria. L'input dell'utente, i file, i dati del programma, ecc. Vivono tutti nelle aree di memoria dei dati.

DEP consente di applicare questa separazione contrassegnando le pagine di codice in memoria come "eseguibili". Analogamente, NON contrassegnando le pagine di dati, il processore può ora riconoscere quando una regione di memoria è destinata alle istruzioni della CPU e quando non lo è. Come protezione, la CPU si guasta, consentendo al sistema operativo di terminare il processo quando DEP è abilitato e il processore si trova a cercare di eseguire il codice dalla memoria dati.

In sintesi, ciò significa che un utente non può semplicemente inserire dati contenenti codice eseguibile e, attraverso una vulnerabilità, puntare il puntatore dell'istruzione del processore a quei dati e iniziare l'esecuzione del codice, come era possibile in precedenza prima dell'adozione diffusa della DEP.

Come meccanismo di sicurezza, questa è una strategia per mitigare un exploit che esegue codice arbitrario / dannoso su un sistema. Tuttavia, gli exploit moderni sono tipici in grado di sconfiggere DEP.

Non ho mai incontrato un programma che non possa gestire DEP, mai, e l'ho abilitato da quando è stato offerto per la prima volta in Windows XP SP2. Questo non vuol dire che non ci siano programmi che potrebbero essere perturbati da esso, ma i programmi moderni, anche quelli estremamente complessi come i browser web, sono in grado di funzionare quando DEP è abilitato.

Dato il supporto hardware per DEP come indicato nello screenshot qui sopra e il diffuso supporto di applicazioni moderne per DEP (oltre a mitigazioni più avanzate come ASLR) non dovresti notare alcuna differenza di prestazioni con DEP abilitato e c'è un po 'di sicurezza aggiuntiva fornita dall'avere disabilitato. Detto questo, non vedo alcun motivo nell'esecuzione di DEP solo per i servizi di sistema: non c'è niente di male a eseguirlo per tutto. Se si incontra qualcosa che va in crash a causa di DEP, è possibile aggiungere quel singolo programma alla lista nera anche se prenderei in considerazione la possibilità di trovare un prodotto più attuale e assolutamente non consentire a un'applicazione fronte Internet di funzionare senza DEP (e tutto altre mitigazioni di sfruttamento disponibili) abilitate. Non sono a conoscenza dei rischi causati dall'attivazione di Protezione esecuzione programmi a livello globale: asserirei che accetti il tuo rischio non facendolo.

    
risposta data 23.02.2014 - 01:56
fonte

Leggi altre domande sui tag