it-swarm-eu.dev

Cosa significa "bruciare un giorno zero"?

Ho notato un commento su questa risposta dove un altro utente ha detto

... ma richiede il rischio di bruciare un giorno 0, cosa che le persone non sono sempre così disposte a fare.

Ho fatto una ricerca su Internet per la frase "masterizzare un giorno 0" (e permutazioni simili come 0 giorno, zero giorno, ecc.) E non molto è tornato. È ovvio che "masterizzare" significa "esaurire" in questo caso. Capisco la maggior parte di ciò che l'utente intendeva, ma probabilmente non tutti i motivi per cui era importante (aka contesto). Sto cercando una risposta canonica, con alcuni ragionamenti sul perché "bruciare un giorno zero" è una cosa costosa.

Mr Robot s01e06 tocca questo quando Elliot e Darlene iniziano a discutere su cosa è andato storto nel loro tentativo di hacking.

Ho trovato altre persone su questo SE usando la stessa terminologia:

163

Sono stato io a scrivere il commento che hai citato.

Risposta rapida: Viene bruciato un giorno 0 quando l'exploit viene usato troppo spesso o a casaccio, risultando così scoperto e corretto. Praticamente ogni volta che viene utilizzato un giorno 0, si rischia di essere bruciato. L'uso di uno 0 giorni in modo più parsimonioso e cauto può aumentare la sua durata. L'idioma intende confrontare un giorno 0 con una risorsa non rinnovabile come il combustibile che perde il suo valore una volta esaurito.

Questo probabilmente proviene dal linguaggio brucia i tuoi ponti :

Distruggere il proprio percorso, connessioni, reputazione, opportunità, ecc., Particolarmente intenzionalmente.


Che cos'è un giorno 0?

Un 0day è una vulnerabilità sfruttabile che non è nota pubblicamente. Quando viene scoperto uno 0 giorni, può essere trasformato in un exploit funzionante, "armato". Come tutte le vulnerabilità, se viene scoperto in pubblico, di solito verrà corretto e riparato, rendendo così l'exploit non funziona più. Ogni volta che usi un exploit, devi necessariamente trasmettere informazioni preziose a un sistema che non controlli (ancora). Se il sistema viene ampiamente monitorato, è possibile scoprire la tecnica dell'exploit e, con essa, le conoscenze necessariamente necessarie per correggere la vulnerabilità e distribuire patch a tutti i sistemi interessati.

Cosa significa "bruciarne" uno?

Sono stato io a scrivere il commento a cui ti riferisci. Per "bruciare" un gergo di 0 giorni è usarlo troppo spesso o usarlo in una situazione ad alto rischio in cui è probabile che venga scoperto a causa del suo utilizzo. Come il combustibile, una volta esaurito o "bruciato", un giorno 0 non avrà più lo stesso valore (entrambi in termini monetari* e termini tattici). Smette di essere un giorno 0 una volta che non è più in mani private.

Gli amici possono lasciarti "prendere in prestito" un giorno per usarti, a condizione che non lo bruci. Ciò significa che ti stanno dicendo che puoi usarlo, ma si fidano di te per stare molto attenti a non usarlo in un modo tale da rendere probabile che venga trovato e riparato, privandone l'accesso.

Qualcuno potrebbe decidere di rivelare improvvisamente il giorno 0 in pubblico. Soprattutto quando non viene fatto utilizzando la divulgazione coordinata, viene spesso chiamato cadere uno 0 giorni, che brucerà anche lo 0 giorni. Questo è un po 'raro ma non inaudito. Qualche anno fa su IRC, un ragazzo si è unito e ci ha informato di una vulnerabilità legata all'esecuzione di codice in modalità remota in TeamViewer che comportava l'invio di file dannosi WinHelp (che contengono Visual Basic codice) o qualcosa del genere lungo quelle linee. Dal primo posto in cui ha rivelato che si trovava nel mezzo di un IRC generale relativo alla sicurezza, stava bruciando un giorno lasciandolo cadere.

* 0 giorni di solito hanno un valore monetario letterale. Un giorno 0 può variare da un migliaio di dollari a un massimo di un milione, a seconda di una varietà di fattori come esclusività, applicabilità, affidabilità, specificità, natura condizionata, ecc.

Quanto valgono 0 giorni?

I broker di sfruttamento spesso acquistano o vendono bug con promesse di esclusività. Ad esempio, è possibile vendere un bug a condizione che venga venduto al prezzo più alto a una sola persona, non a più persone. Ciò riduce la possibilità che venga scoperto, ma significa che vieni pagato solo una volta. In alternativa, potresti vendere un exploit a quante persone vogliono acquistarlo. Dovresti venderlo a un prezzo inferiore perché verrà bruciato molto rapidamente, rendendo la sua durata piuttosto breve. Ovviamente, quando viene bruciato uno 0 giorni, non è più altrettanto utile poiché funzionerà solo su sistemi obsoleti. Il valore reale dipende da alcuni fattori. Valgono di più se:

  • Lavora su una varietà di sistemi.

  • Non dipendere da una configurazione specifica.

  • Sono affidabili e funzionano sempre.

  • Sono silenziosi e non lasciano tracce nei registri.

  • Sono venduti a uno o un numero limitato di acquirenti.

Molti appaltatori che si occupano di exploit pagheranno il prezzo completo in piccole somme per un periodo di tempo. Se il giorno 0 viene scoperto prima che tu sia pagato per intero, interromperanno i pagamenti. Questo si comporta come disincentivo a venderlo a più appaltatori o usarlo spesso da soli. Fondamentalmente ti costringe a garantire loro che rimarrà uno 0 giorni, o semplicemente non sarai pagato per intero.

Inoltre, 0days vengono acquistati per più da appaltatori governativi che da broker di exploit casuali. Potresti essere in grado di vendere a Raytheon SI una catena di exploit completa Chrome completa di bypass sandbox e escalation di privilegi locali (LPE) per centinaia di migliaia di dollari. Lo stesso l'exploit sarebbe solo una frazione di quel prezzo se lo vendessi a J. Random Broker su IRC. Il motivo è semplicemente che i governi corrotti vogliono essere non competitivi e avere ampi soldi dai contribuenti per ottenere vulnerabilità esclusive in modo che possano giornalisti di sciopero dei droni proteggere la loro nazione.

Come vengono bruciati 0 giorni?

Esistono molte attività che possono rischiare di bruciare un giorno 0. Alcuni esempi:

  • Usare un exploit che non è affidabile e può creare un coredump.

  • Usare un exploit che è condizionale e funziona solo per alcune configurazioni.

  • Utilizzo di un exploit che comporta la registrazione di un evento.

  • Usare un exploit contro un bersaglio sofisticato e paranoico.

  • Semplicemente usando un exploit troppo spesso, aumentandone l'esposizione.

  • Darlo o scambiarlo con un amico che non ne è responsabile.

Non perdono la vendita di 0 giorni a governi o appaltatori governativi.

222
forest

Un giorno zero è una vulnerabilità sconosciuta dal produttore del software e per la quale non esiste alcuna patch.

Quando si utilizza una vulnerabilità zero-day contro un server remoto, è possibile che il modo in cui funziona. Gli amministratori dell'applicazione potrebbero notare che sono stati hackerati, guardare nei registri e scoprire la vulnerabilità che è stata utilizzata per hackerarli. Se poi risolvono la vulnerabilità, la vulnerabilità non è più una vulnerabilità zero-day e la sua conoscenza è inutile.

Ad esempio questo Flash zero-day veniva attivamente sfruttato ed è così che Adobe ha appreso della vulnerabilità.

In alcuni casi, l'utilizzo di un giorno zero non espone la vulnerabilità. Ad esempio, è possibile utilizzare zero giorni per eseguire il root di un sistema operativo mobile senza che il produttore del software apprenda la vulnerabilità.

113
Sjoerd

Le ricerche sulla sicurezza trovano exploit. Il giorno in cui lo segnalano è il giorno Zero perché gli sviluppatori inizieranno a lavorare per correggerlo.

I ricercatori di Good Security (come in white hat) pubblicheranno il giorno zero agli sviluppatori prima di pubblicarlo nel resto della comunità. In molti casi lo pubblicano solo nella comunità perché altrimenti i responsabili del codice li hanno ignorati.

I ricercatori di Bad Security (come in black hat) archivieranno questo exploit per una giornata piovosa. Bruciare un giorno zero ... sta toccando l'archivio dei giorni di pioggia. Questo di solito viene fatto solo per obiettivi di alto valore.

Indipendentemente da Divulgato o Usato, il tempo di exploit è finito dal momento in cui gli sviluppatori responsabili del codice si rendono conto di ciò che sta accadendo. Quindi, in un certo senso l'exploit è esaurito o bruciato.

23

Concentrandoti in particolare sulla tua domanda su come bruciare un giorno 0 può essere una cosa costosa:

Con un valore monetario letterale, CaffeineAddiction La risposta ha coperto molto bene.

C'è un altro tipo di valore che non ho mai visto menzionato: quando viene deliberatamente rilasciato al pubblico per consentire a una comunità di aggirare le regole di un produttore. Un esempio di questo è nella comunità di jailbreak (rooting di dispositivi iOS). Si parla spesso di non "bruciare un giorno 0" su un'iterazione minore di iOS. Soprattutto perché Apple diventano più difficili da trovare, se un giorno 0 fosse trovato l'11.3.1 si parlerebbe di aspettare fino all'11.4, o addirittura 12.0 per rilasciarlo.

A differenza di altri attacchi in cui il rischio aumenta man mano che viene utilizzato, un jailbreak garantisce essenzialmente la perdita del giorno 0 poiché viene reso completamente pubblico.

9
CeePlusPlus