Ricerca Vuln: reverse engineering, debugging o fuzzing?

9

Mi chiedo come gli hacker trovino vulnerabilità.

Se usano la fuzzing, gli ingegneri della sicurezza lo fanno, ed è probabile che gli ingegneri della sicurezza (che lavorano in un'azienda) abbiano più risorse di un gruppo di hacker.

Il reverse engineering richiede molto tempo e penso che non sia abbastanza affidabile da cui dipendere. È davvero così, o mi sto perdendo qualcosa?

Ciò che ho in mente sono questi concorsi in cui gli hacker hanno un giorno di tempo per trovare una vulnerabilità per un browser e sfruttarlo. Come lo fanno? E il tempo assegnato per un browser open source (chrome) è lo stesso tempo assegnato a un browser a sorgente chiuso (Internet Explorer).

    
posta jaja 08.11.2011 - 11:39
fonte

3 risposte

12

Il percorso di base per sfruttare una vulnerabilità legata all'overflow è trovare un arresto anomalo (spesso tramite fuzzing), valutare l'arresto anomalo e se presenta un percorso di attacco e quindi creare qualcosa per sfruttarlo.

A volte dove uno guarda può coinvolgere la conoscenza dell'architettura, come quando Charlie Miller ha notato che iOS 4.3 ha una sezione di memoria che esegue codice non firmato . Nel caso di tutti i suoi attacchi Apple, credo che la fonte sia stata chiusa. I punti deboli dell'iniezione SQL sono simili: stai iniziando con una greppia sapendo dove è un buon posto dove guardare.

Mentre è più semplice identificare e correggere un bug via fonte dopo aver trovato un crash, il lavoro per configurare l'ambiente può essere privo di valore se l'obiettivo è semplicemente scrivere un exploit funzionante. Spesso, lo spazio rilevante di un programma riguarderà meno di 1 KB di codice macchina.

Dal mio punto di vista, l'open source consente di visualizzare i bug che vengono aggiunti mentre accadono e dire, "Ehi, quel po 'di codice sembra assurdo." Oltre a ciò, il lavoro per sfruttare il lavoro closed-source e open-source è spesso lo stesso. Per quanto riguarda il reverse engineering, è raro a meno che tu non stia tentando di modificare o ricreare un'applicazione piuttosto che lanciare un exploit da essa.

Non sottovaluterei la capacità dei gruppi di hacker di dedicare molte risorse di elaborazione a un'attività. I gruppi Warez sono stati conosciuti nel corso della storia di Internet per raccogliere risorse di storage e larghezza di banda considerevoli. Potrebbe essere ingenuo pensare che i gruppi di hacker non accumulino la stessa potenza della CPU.

Infine, la maggior parte delle persone che fanno questo per un tempo abbastanza lungo mantengono un exploit scoperto o due in alto piuttosto che rilasciandolo.

    
risposta data 08.11.2011 - 14:21
fonte
9

Per vedere le tue ipotesi:

molti gruppi di attacco hanno risorse molto più grandi di quelle delle aziende

  • in una tipica sicurezza aziendale è un centro di costo, quindi non hanno mai abbastanza personale o denaro
  • nel mondo black hat, trovare difetti di sicurezza è un flusso di entrate

La fuzzing viene eseguita da ingegneri della sicurezza e black hat

    La
  • fuzzing è per sua stessa natura fallibile. È possibile utilizzare così tanti algoritmi di fuzzing diversi da non trovare tutti i problemi (questo è ovviamente vero per tutti i test di sicurezza)

il reverse engineering richiede molto tempo

  • assolutamente, tuttavia questo è qualcosa che i cappelli neri hanno. Alcuni assumono squadre di bambini intelligenti per fare solo il codice del reverse engineer. Alcuni inseriscono individui nei team di sviluppo per importare il codice. Se guadagna, la regola generale è che qualcuno lo proverà.

le competizioni di un giorno di exploit

  • Charlie Miller stesso afferma di sviluppare gli exploit in vista di queste competizioni quindi ha alcuni strumenti pronti.
risposta data 08.11.2011 - 17:30
fonte
1

La fonte principale di vulnerabilità sono gli incidenti piuttosto che quelli intenzionali.

Quando il browser si blocca, gli esperti di sicurezza eseguono il debug di ciò che è successo con un debugger e vedono se riescono a riprodurre l'arresto anomalo. Quindi, viene dal notare i vulns mentre accadono, piuttosto che cercare i vulns.

Durante la programmazione, come la creazione di un sito Web, quando si utilizza una funzione oscura, gli esperti si chiedono come funzioni quell'oscura funzione e cosa succede quando lo usano in modo errato.

Solo un numero relativamente piccolo di vulnerabilità viene trovato da personaggi come Charlie Miller. In questi casi, è perché hanno speso anni a decodificare un prodotto e possono trovare ripetutamente vulnerabilità in base alle conoscenze esistenti.

    
risposta data 09.11.2011 - 00:31
fonte

Leggi altre domande sui tag