Domanda:
Sulle macchine Windows, è necessaria la patch per Spectre e Meltdown?
RockPaperLz- Mask it or Casket
2018-01-12 01:05:43 UTC
view on stackexchange narkive permalink

Da quello che ho letto, Spectre e Meltdown richiedono che un codice canaglia sia in esecuzione su una macchina Windows per poter attaccare. Il fatto è che, una volta che una scatola ha un codice canaglia in esecuzione, è già compromessa .

Dato che le patch Microsoft per Spectre e Meltdown secondo quanto riferito rallentare i sistemi con patch, sembra forse una buona decisione lasciare i sistemi Windows senza patch a livello di sistema operativo.

Supponendo che il codice canaglia non sia installato su Windows box, l'unico punto di facile penetrazione in un sistema sembra essere tramite javascript in esecuzione in un browser web. Eppure sia Firefox di Mozilla che Internet Explorer di Microsoft sono già stati aggiornati. Google Chrome non è attualmente patchato, ma secondo quanto riferito può essere eseguito in rigoroso isolamento del sito al fine di prevenire attacchi Sprectre e Meltdown riusciti.

Dato tutto quanto sopra (e assumendo le migliori pratiche per non eseguire codice sconosciuto), ha davvero senso applicare una patch a Windows per Spectre e Meltdown?

Windows è un sistema operativo multiutente.Se un utente senza privilegi di amministratore esegue un codice non autorizzato, tale codice non dovrebbe essere in grado di influenzare o compromettere altri utenti.Ma Meltdown gli permette di farlo.L'esecuzione di codice canaglia nello spazio utente _non_ dovrebbe significare che la tua macchina è completamente compromessa e, se lo fa, è un buco che necessita di patch.
@MikeScott - Direi che Windows è molto spesso una casella utente singolo, perché viene utilizzata da una sola persona.Per una scatola strettamente personale, penso che * potrebbe * avere senso * ritardare * questi aggiornamenti fino a quando MS non scoprirà il casino che hanno fatto finora.La mia esperienza personale è: il 90% di quello che faccio sul mio computer è fatto tramite Firefox in modalità utente - se un exploit passa attraverso FF, non importa più se può leggere tutto.https://xkcd.com/1200/
@Martin - Non può essere solo una scatola personale.Dovrebbe essere una casella personale in cui si accede a tutto ciò che è confidenziale attraverso e solo attraverso un browser patchato senza altro codice non attendibile in esecuzione sulla macchina.Secondo la mia risposta, ci sono molti più modi in cui viene eseguito codice non attendibile di quanto pensasse OP.
Tieni inoltre presente che poiché gli aggiornamenti di Windows non vengono più forniti come singole patch, l'unico modo per non installare la patch per Meltdown e Spectre è interrompere completamente l'installazione delle patch.
Un miglioramento generico della mentalità di * "dovremmo applicare questa patch?" * È cambiarla in * "per quanto tempo dovremmo ritardare l'applicazione di questa patch?" *.
Essere in grado di eseguire codice su una macchina non significa che sia compromessa: l'applicazione potrebbe essere e l'account ma non la scatola.Se trovo un RCE ma poi trovo che la scatola è completamente patchata ed esegue una rigorosa whitelist dell'applicazione e l'account è limitato / sandbox.Non ho compromesso la scatola e potrei non scoppiare mai.
Trovo divertente che i COSTI di queste patch siano discussi solo indirettamente qui.C'è una vaga menzione dell'estremo di spegnere un computer e bloccarlo, il che ovviamente non è una soluzione pratica, e tutti lo realizzano.Ma applicare una patch che riduce le prestazioni, diciamo, del 15 percento (non suona molto, giusto?) È come spegnere 1 computer su 7, non è vero?
Sei risposte:
Hector
2018-01-12 01:40:49 UTC
view on stackexchange narkive permalink

l'unico punto di facile penetrazione in un sistema sembra essere tramite javascript in esecuzione in un browser web.

Che ne dici di Flash? Giava? Silverlight? VBA in un documento d'ufficio? Esistono applicazioni che caricano pagine web all'interno di se stesse?

Il fatto è che, una volta che una scatola ha del codice non autorizzato in esecuzione, è già compromessa.

Con il codice in esecuzione con il tuo account utente si può fare molto. Ma compromesso è un termine relativo. Ad esempio, non è possibile installare un key logger di basso livello. Le autorizzazioni potrebbero impedirti di leggere lo spazio di memoria di altre applicazioni anche se eseguite con lo stesso account utente. E ovviamente non hai accesso a file e processi eseguiti con altri account utente. Un utente su una macchina aziendale non può dirottare un'altra sessione degli utenti registrati.

Essere in grado di leggere valori RAM arbitrari può darti i token di accesso necessari per sconfiggere tutto questo.

Anche l'esecuzione di codice nello spazio utente (compromettendo un account utente) produce molte prove forensi nei registri di controllo.Il recupero dei dati dalla cache L1 del processore attraverso il canale laterale è virtualmente non rilevabile tramite il sistema operativo o altre routine di alto livello.
@void_in Non è praticamente inosservabile.** È ** non rilevabile, ed è per questo che il difetto di sicurezza è così grave.Nessuno si aspettava che fosse un vettore di attacco.Ci sono voluti 20 anni per scoprirlo, ed è un concetto relativamente semplice.La falla di sicurezza utilizza qualcosa che accade costantemente su un computer.Non puoi assolutamente rilevare l'attacco.
@Nelson: la lettura di qualsiasi quantità utile di dati genererebbe numeri non realistici di determinati tipi di interruzioni.Quindi, con alcuni profili di sistema saresti tecnicamente in grado di rilevarlo, anche se a un costo in termini di prestazioni piuttosto elevato.
@Hector Non è necessariamente vero.Non c'è nulla di ereditato dall'exploit che richiede che tutta la formazione speculativa e la lettura dei dati vengano eseguite in un breve lasso di tempo.La chiave è se le letture speculative della CPU vengono mantenute per determinati file che vengono eseguiti ripetutamente.Se lo è, fallo funzionare a bassa velocità per un lungo periodo di tempo, aumentando lentamente la memoria letta fino a raggiungere i dati necessari per l'escalation dell'accesso, quindi il sistema è compromesso e nessuno è più saggio.
Gli interrupt @Hector: non sono tecnicamente necessari;questa è solo una particolare possibilità di exploit.
I plug-in Flash o Silverlight compilano JIT il codice non attendibile che sandbox?Non ho sentito parlare di attacchi Spectre plausibili attraverso il codice interpretato;troppo difficile addestrare il predittore del ramo indiretto.La fusione è ancora più improbabile;è necessario organizzare qualcosa per provare a caricare da un indirizzo del kernel.Forse puoi farlo tramite speculazioni errate di alcuni rami, ma è sicuramente molto più difficile quando non puoi eseguire codice macchina arbitrario.Javascript non ha puntatori tipo C che puoi semplicemente impostare sugli indirizzi del kernel ... Plausibile da una sandbox JIT, ma interpretato da troppi livelli.
@PeterCordes Entrambi usano JIT sì.Gli script Silverlight sono fondamentalmente .Net in modalità sandbox: puoi utilizzare qualsiasi linguaggio .Net.Per quanto riguarda JavaScript, esistono già prove di concetti e diversi fornitori di browser hanno confermato che i loro test interni lo hanno dimostrato possibile.
baldPrussian
2018-01-12 01:49:32 UTC
view on stackexchange narkive permalink

Nel mio mondo, applicare le patch è un dato di fatto. Lo faremo e ci vuole un'eccezione per NON applicare una patch.

In questo momento, quelli sono gli exploit che conosciamo per Spectre e Meltdown. Tuttavia, cosa garantisce che non ce ne saranno più? Inoltre, molti exploit disponibili (come Wannacry / Petya) coinvolgono sistemi che non sono patchati per questo problema noto.

Concluderei con questo pensiero: sei pronto a scommettere sulla tua reputazione professionale su applicare una patch nota per correggere una vulnerabilità nota? Mi sembra che non sia una scommessa saggia. Immagina nella tua azienda se il malware basato su uno di questi due entra nella tua rete. Una delle prime domande del management è: come è successo? Sapevamo che era possibile? C'erano prevenzioni disponibili e, in caso affermativo, le abbiamo applicate? Sono stato oggetto di queste domande sulla base delle decisioni della direzione di accettare un rischio per la sicurezza e non era un posto comodo dove stare.

Per rispondere alla tua domanda: no, non è necessario. Ma non farlo, IMO, è irresponsabile.

Penso che sia un eccellente esempio di eccezione alla regola in cui la direzione può concordare sul fatto che il rischio per la sicurezza è accettabile: hai una data di consegna del prodotto in 2 settimane e l'applicazione di patch alla tua griglia comporterà un rallentamento che ti farà perdere la scadenza.Come ha sottolineato baldPrussian, questa è una decisione del management: devono decidere che rendere quel rilascio è un valore migliore per l'azienda che avere le macchine patch immediatamente.
@CortAmmon In tal caso può essere utile lasciare che l'account manager comunichi con il cliente ciò che preferisce: spedire in tempo o spedire con la correzione X giorni dopo.Di solito è la cosa giusta da fare con exploit di questa portata (media).
I tuoi pensieri conclusivi mi ricordano cosa ha "causato" la violazione di Equifax ... https://www.theregister.co.uk/2017/09/14/missed_patch_caused_equifax_data_breach/ - una patch che non è stata distribuita.Non vorrei essere quella persona responsabile del patching.
@CortAmmon Sono stato in più di una situazione in cui qualcosa di molto meno critico ma comunque pericoloso aveva la priorità sulle consegne da un milione di dollari.Non ho mai incontrato un singolo cliente aziendale che non avesse compreso un ritardo in quella situazione;infatti di solito sono molto favorevoli.Scommetto che ha molto a che fare con il modo in cui l'account manager gestisce il messaggio.
Daniel Grover
2018-01-12 01:22:39 UTC
view on stackexchange narkive permalink

Sì, perché può essere utilizzato per l'escalation dei privilegi. Di solito, se un attacco compromette un host, hanno solo i privilegi dell'utente. Utilizzando questa vulnerabilità, possono aumentare i privilegi perdendo le credenziali. L'escalation dei privilegi è importante per gli aggressori che eseguono molti attacchi, come arp spoofing, SMB / LDAP relaying, token hijacking, credential dumping, ecc.

Cort Ammon
2018-01-12 05:07:14 UTC
view on stackexchange narkive permalink

Installa le patch a meno che tu non abbia un motivo molto valido per non farlo.

L'approccio che descrivi può essere riassunto sostanzialmente come questo:

Conosco l'exploit X. Potrei patchare il mio sistema operativo per risolvere l'exploit X, oppure potrei rivisitare attentamente ogni operazione che faccio sul mio computer (comprese le attività di aggiornamento automatico fatte per me). Se nessuna di queste attività rappresenta un rischio, non è necessario installare la patch.

Sì, in effetti, la tua logica è valida. È la stessa logica che dice "Un computer spento e scollegato è molto resistente agli hacker". Tuttavia, ti richiederà di esistere in un continuo stato di vigilanza. Ogni singolo byte di codice che viene trasferito al tuo computer deve provenire da una fonte affidabile al 100%. Potresti persino operare su una rete in cui questa logica è sufficientemente valida. Ma molto probabilmente non lo sei, quindi installa le patch. (Stuxnet potrebbe essere l'ultimo esempio di ciò che accade quando qualcuno pensa che la propria rete non sia bloccabile)

Dovrai rimanere in questo stato di vigilanza continua per sempre, o almeno finché non ti alleni e installi le patch.

Come Daniel Grover risponde, consideralo come un vettore per l'escalation dei privilegi. La sicurezza di molti sistemi dipende dal presupposto che un segreto sia effettivamente un segreto. Meltdown / Spectre sfida questo presupposto.

Quando la mia direzione mi chiede "come possiamo diventare completamente sicuri?", La mia risposta è "spegnere il dispositivo, racchiuderlo nel cemento, tagliare il cavo e seppellirlo in una palude da qualche parte. Questo è l'unico modo per diventare a prova di hacker".La sicurezza riguarda il modo in cui rallentiamo gli aggressori e rendiamo l'attacco non degno della ricompensa.
@baldPrussian Ho sentito una citazione simile: "L'unico computer veramente sicuro è spento, scollegato, sepolto in un bunker di cemento con guardie armate poste all'ingresso. Anche allora, lo controllo ogni tanto".
@CortAmmon Hai appena aiutato l'attaccante in un attacco DoS al tuo computer.
@NieDzejkob Ho consigliato un'analisi dei rischi per decidere correttamente le migliori misure di sicurezza.La sicurezza è sempre in equilibrio.
@CortAmmon Mi riferivo al commento su un bunker di cemento.
@NieDzejkob Ahh ho capito.Mi è mancato.
David Richerby
2018-01-13 02:24:19 UTC
view on stackexchange narkive permalink

Sulle macchine Windows, è necessario applicare le patch a Spectre e Meltdown?

Da quello che ho letto, Spectre e Meltdown richiedono ciascuno un codice canaglia per essere eseguito una casella di Windows in modo che gli attacchi abbiano luogo. Il fatto è che una volta che una scatola ha un codice canaglia in esecuzione, è già compromessa.

In primo luogo, sembra proprio che tu lo stia dicendo, per evitare di essere hackerato tramite Spectre o Meltdown, devi solo evitare di essere hackerato con qualsiasi metodo. Ma questa è una cosa molto più difficile da fare!

Secondo, confronta,

In un'azienda, è necessario chiudere la cassaforte?

Da quello che ho letto, rubare cose da una cassaforte richiede che un ladro si trovi all'interno dell'edificio. Il fatto è che una volta che un ladro è all'interno dell'edificio, è già compromesso.

Beh, certo, ma proteggiti da alcune cose che il ladro potrebbe fare è ancora meglio che alzare le mani e dire: "Beh, è ​​entrato così potrebbe anche prendere tutto".

casey
2018-01-14 23:52:09 UTC
view on stackexchange narkive permalink

Il miglior argomento che ho visto per applicare le patch quando è stato presentato con questa linea di pensiero è questo:

Rilevare Spectre e Meltdown è molto difficile e il tuo prodotto AV non fermerà questi attacchi .

Questi sono difetti nell'hardware che espone l'esecuzione speculativa (previsione dei rami, ecc.). Il tuo processore lo fa sempre e rilevare un uso dannoso sarà estremamente difficile da fare. L'intera strategia di mitigazione è quindi quella di applicare patch, poiché il rilevamento è fuori discussione.

Dato il numero di PoC exploit che sono stati sviluppati e dimostrati nell'ultima settimana (e solo da un'idea di cosa fossero i bug, prima che finisse l'embargo) non ho dubbi che exploit armati dannosi per questi esistono bug.

Chi sano di mente installa prodotti AV su un server?!?
@StephanSchinkel - Molte persone sono tenute per legge ad avere AV su un server.Ho un AV su ognuno dei miei server e client, sia Linux che Windows, e devo aggiornare le firme ogni singola settimana.
@StephanSchinkel potresti non avere AV ma probabilmente hai un SOC che esegue IDS, monitoraggio, gestione degli endpoint, registrazione, ecc. Il punto era che il rilevamento di questi exploit sarà difficile e non ti salverà.A parte questo, non ho visto dove i server specificati OP, solo "finestre".


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...