Simbiote Rilevazione di attacco

5

Ho visto questo video su YouTube sull'hacking di telefoni Cisco (e altri sistemi embedded) e sono stato felicissimo quando il presentatore non solo ha violato, ma ha presentato una soluzione di sicurezza. Incuriosito, ho iniziato a leggere il documento di ricerca " Difendere i sistemi integrati con il software Symbiotes "di Cuit et al., In cui viene presentata la sua soluzione chiamata Symbiotes.

Ho alcune domande sui Symbiotes presentati nel documento:

  1. Il documento di ricerca menziona più volte che è possibile potenzialmente installare due Symbiotes su un singolo dispositivo. Quale sarebbe il vantaggio di installare più di un Symbiote?

  2. Quando si discutono gli attacchi contro il simbionte installato, il documento menziona che l'attaccante dovrebbe confrontare un'immagine della memoria del sistema embedded con il sistema Symbiote modificato che sta attaccando e afferma che ciò potrebbe causare l'attaccante essere rilevato a causa dell'utilizzo elevato di CPU e I / O. Perché un utente malintenzionato non può semplicemente copiare lentamente un'immagine sulla rete per evitare il rilevamento?

posta Seanny123 05.01.2013 - 23:20
fonte

1 risposta

3

Dalla carta che hai citato, ulteriori Symbiotes complicherebbero entrambi lo scenario di riscrittura del codice, rendendo la loro disabilitazione teoricamente più difficile; e i Symbiotes potrebbero essere fatti per proteggersi a vicenda, rendendo praticamente impossibile la disabilitazione.

L'attaccante dovrebbe ottenere un'immagine precisa di tutti i suoi punti di ingresso e disabilitarli tutti in un colpo solo, prima che una qualsiasi delle routine di integrità del Symbiote possa eseguire abbastanza per identificare la minaccia (ricorda, sono multitasking - l'attaccante forse non lo è, e probabilmente potrebbe avere a disposizione per un breve istantaneo l'intera potenza della CPU).

Per fare questo, però, l'attaccante dovrebbe fare ciò che tu proponi - per copiare lentamente l'immagine per l'analisi. Nello scenario proposto, questo è irrealizzabile, perché il codice che esegue la copia sarebbe identificato molto prima che potesse fare qualcosa di pericoloso. Ha bisogno di essere eseguito sulla macchina vittima e quel machhine è simbiotico. La copia dell'immagine lentamente dà al Symbiote più tempo in cui notare le istruzioni di copia, mentre la copia veloce attirerà l'attenzione sulla copia stessa.

Non sono molto chiaro su come due Symbiotes potrebbero proteggersi l'un l'altro anche se - mi sembra che questo richiederebbe in qualche modo che il secondo Symbiote diventi noto (e fidato) al primo , che potrebbe suggerire un possibile vettore di attacco. Ma questa potrebbe essere una svista da parte mia: non ho studiato approfonditamente la carta.

Un possibile modo di aggirare la sicurezza (specialmente se Symbiote non sta eseguendo molto velocemente) potrebbe anche essere offerto da questo:

The SEM injection process requires a handful of parameters specic to the target firmware, including a list of randomly chosen control-flow intercept points and locations of usable memory. All such parameters are computed automatically by a simple single pass analysis of the target binary

Idealmente l'attaccante conosce il sistema di destinazione e deve essere pensato per avere una copia dell'iniettore Symbiote. Pertanto, può eseguire da remoto la stessa analisi a passata unica e creare un elenco ampio ma limitato di punti di intercettazione insieme al loro contenuto originale (che l'utente malintenzionato potrebbe ricavare da un'immagine originale del sistema operativo della vittima). Per quanto grande possa essere, sarà sicuramente molto più piccola di tutta l'immagine del sistema operativo della vittima.

Pertanto, come primo stadio, è stato in grado di progettare un missile "desymbioting" composto da un exploit insieme al codice per ripristinare tutti quei punti di controllo alla normalità. Tale codice dovrebbe contenere un lungo elenco di posizioni di memoria (facilmente comprimibili con una strategia delta) insieme al contenuto in cui attingere.

Se tale codice dovesse essere eseguito tra un controllo Symbiote e il successivo, e se non attivasse dentro una chiamata di esecuzione Symbiote (che probabilmente causerebbe un arresto anomalo), quindi tutti i Symbiote nel il sistema di destinazione sarebbe reso inerte. Questo probabilmente pone un limite superiore a ciò che un simbionte può fare tra due chiamate consecutive al suo manager - le chiamate devono essere snelle e veloci, al fine di rilevare l'attacco in entrata prima che sia completamente distribuito.

Usando numeri reali dalla carta, circa 75K funzioni sono ritenute utilizzabili dal simbionte Doppelganger. È probabile che ciò richieda la disattivazione di 75k indirizzi e 75k DWORD (presumibilmente). Gli indirizzi 75k in 35 Mb di spazio sono in media circa mezzo kilobyte. È anche probabile che le aree uncinate abbiano una variabilità ridotta - cioè, sono codici di preambolo molto simili. In questo caso l'utente malintenzionato dovrebbe trasferire solo circa 75k delta di indirizzo - circa 150 Kb - e forse la stessa quantità di dati. Elaborare 300 Kb di informazioni non avrà bisogno di molto tempo e un pacchetto di attacco da 300 Kb, anche se imbarazzante, non è irragionevole.

Probabilmente, l'operazione di Symbiot potrebbe anche eseguire un intervento chirurgico polimorfico sul sistema operativo host , per aumentare i dati richiesti dall'aggressore per un "ripristino cieco". Ciò richiederebbe tuttavia che l'iniettore non fosse agnostico del sistema operativo. Il Gestore potrebbe scegliere una sezione di codice senza ramo di grandi dimensioni tra due dei suoi punti di attivazione e sostituirla con un altro meccanismo di attivazione di emergenza. Il primo punto di attivazione lo riporterebbe al codice originale, che verrebbe eseguito e sarebbe nuovamente sostituito dal codice di emergenza dalla seconda chiamata di attivazione. Se l'attaccante dovesse rimuovere tutti i punti di attivazione, il codice di emergenza non verrebbe mai scambiato, il successivo ciclo di esecuzione lo attiverebbe e l'attacco verrebbe bloccato.

Mentre il numero di sezioni di codice appropriate potrebbe essere relativamente piccolo, l'attaccante si trova contro una sorta di puzzle di Merkle - non sa quale sezione di codice è stata intrappolata nella bozza, quindi deve elaborare tutte le sezioni di codice ; e sono di grandi dimensioni . Questo gonfia i requisiti delle dimensioni del codice per un attacco riuscito, riportandolo al valore non ammissibile di "una copia dell'immagine originale non sincronizzata".

    
risposta data 07.01.2013 - 03:15
fonte

Leggi altre domande sui tag