Come ci si sente su una vulnerabilità vecchia di dieci anni in una vasta gamma di sistemi operativi basati su Unix, come Linux, OpenBSD, NetBSF, FreeBSD e Solaris? Sfortunatamente, questa domanda non è una teorica come tale debolezza (identificato come CVE-2017-1000364) è stato scoperto, lasciando attaccanti eseguono escalation di attacchi privilegi in cui è concesso l'accesso di root e di un cambio di gestione completa del sistema è a posto.
CVE-2017-1000364 è stata soprannominata Pila Slash ed è stato scoperto nella memoria modo veniva allocato sullo stack per i binari dello spazio utente, come spiegato dal ricercatori che la scoprì.
CVE-2017-1000364 Pila Slash Un difetto tecnico Riprendi
Come si spiega il bug? E 'abbastanza semplice - programmi utilizzano regioni di memoria speciali conosciute come pile, utilizzato per memorizzare i dati a breve termine. La pila può espandersi e contrarsi in via automatica durante l'esecuzione del programma, in relazione alle esigenze del programma proposta.
ricercatori Qualys rivelano che un programma pericoloso può provare a utilizzare più spazio di memoria rispetto a quella disponibile sullo stack. Questo potrebbe facilmente portare a overflow di memoria, causando la pila a scontrarsi con le regioni vicine di memoria e sovrascrivere il loro contenuto.
In aggiunta a quanto sopra, il difetto può ignorare il guard-page pila. Questa è una gestione della memoria di protezione da 2010 che è stato introdotto dopo che la falla è stata sfruttata negli anni precedenti. Come descritto dai ricercatori Qualys nella loro consulenza:
Sfortunatamente, una pila guard-page di pochi kilobyte è insufficiente: se lo stack-pointer ‘salta’ il guard-page-se si muove dalla pila in un'altra regione di memoria senza accedere al guard-page-allora eccezione di page fault è sollevato e la pila estende nell'altra regione di memoria.
CVE-2017-1000364 richiede anche l'accesso locale al sistema vulnerabile. Tuttavia, potrebbe anche essere sfruttata in remoto secondo le applicazioni coinvolte.
In realtà, CVE-2017-1000364 potrebbe essere sfruttata insieme ad altri difetti critici come la vulnerabilità Sudo, che era stata modificata proprio di recente. La vulnerabilità Sudo, CVE-2017-1000367, è una grave vulnerabilità di Linux radice una volta scoperto dai ricercatori Qualys. La falla è stata trovata a risiedere in “get_process_ttyname di Sudo()”La funzione per Linux e può consentire a un utente con privilegi sudo per eseguire comandi come root o elevare privilegi di radice.
Sfortunatamente, la cattiva notizia non finisce qui 7 proof-of-concept exploit sono stati creati per la vulnerabilità adatto per Linux, OpenBSD, NetBSD, FreeBSD, Solaris su entrambi 32- e processori 64 bit. I ricercatori sono stati inizialmente abbastanza attento a non spingere la loro proof-of-concetti che permettono sia agli utenti e gli amministratori ad affrontare la falla da patch propri sistemi vulnerabili. Questi sono stati comunque resi pubblici dopo gli aggiornamenti sono stati pubblicati da Fedora e Slackware. FreeBSD e NetBSD anche emesso patch.
La prova-of-concept comprendono quattro fasi - scontrandosi la pila con un'altra regione di memoria, in esecuzione lo stack pointer dell'inizio dello stack, saltando il guard-page pila, e infine, distruggendo la pila o altre regioni di memoria.
Mitigazione contro CVE-2017-1000364
Sulla base della loro ricerca, ricercatori Qualys raccomandano che i sistemi operativi interessati effettuare le seguenti operazioni:
Aumentare la dimensione della guardia pagine di stack ad almeno 1 MB, e consentono agli amministratori di sistema di modificare facilmente questo valore (per esempio, grsecurity / PaX introdotto / proc / sys / vm / heap_stack_gap in 2010). Questo primo, soluzione a breve termine è a buon mercato, ma può essere sconfitto da un
molto grande stack-based buffer.Ricompilare tutto il codice userland (ld.so, biblioteche, binari) con GCC di “-fstack-check” opzione, che impedisce lo stack puntatore di muoversi in un'altra regione di memoria senza accedere al guard-page pila (si scrive una parola per ogni pagina 4KB allocato sullo stack). questa seconda, soluzione a lungo termine è costoso, ma non può essere sconfitto (anche se il guard-page stack è solo 4KB, una pagina) — a meno che una vulnerabilità viene scoperta nella implementazione dello stack guard-page o la “-fstack-check” opzione.
Altri sistemi operativi (Windows, Androide, Mac) Anche vulnerabili a CVE-2017-1.000.364
Forse le cose non finiranno qui come i ricercatori ritengono inoltre che altri sistemi operativi come Windows e MacOS e anche Android potrebbe anche essere vulnerabili a questo difetto. Questo deve tuttavia essere ulteriormente confermata.
Ciò nonostante, parti interessate sono invitati ad aggiornare quanto prima.
Se non ci sono patch sono ancora disponibili per un particolare sistema operativo, gli utenti e gli amministratori possono provare a riavviare i propri sistemi o manualmente applicare limiti stack per applicazioni degli utenti locali per evitare exploit. Un altro consiglio utile è quello di ricompilare tutto il codice userland con la funzione -fstack-check, come visibile nelle suggerimenti di cui sopra.