Overflow del buffer su Raspberry PI

2

Il processore ARM utilizzato su Raspberry Pi è vulnerabile agli overflow del buffer standard? Cioè, se un programma che ha una vulnerabilità BO viene eseguito su un Pi, sarà vulnerabile allo sfruttamento?

In che modo l'architettura unica di ARM e SoC influisce sulla vulnerabilità o sull'exploit?

Considerando l'impronta inferiore e la superficie di attacco più piccola, quale sarebbe un probabile vettore di attacco?

E, cosa più interessante, il Raspberry Pi supporta qualsiasi protezione incorporata contro gli overflow, come ASLR, DEP / NX, canarini in generale, ecc.?

    
posta AviD 22.12.2013 - 10:29
fonte

1 risposta

4

Il raspberry pi gira sul processore ARM1176JZF-S. ARM è utilizzato in più dispositivi oltre al solo RPI. Lo sfruttamento ARM è certamente possibile. Dai uno sguardo ai seguenti articoli:

Dai anche un'occhiata alla Defcon 18 presentazione.

Per quanto riguarda lo sfruttamento, i buffer overflow sono sicuramente possibili (fare riferimento ai documenti per i dettagli tecnici). Su molte nuove piattaforme gli stack non sono eseguibili, quindi tentare di sfruttarli è più difficile rispetto al passato. Tecniche come ret2libc non funzioneranno a causa del modo in cui ARM esegue la gestione delle variabili. A volte le variabili vengono spostate tra i registri anziché essere messe in pila, il che rende molto più difficile far apparire le variabili giuste per passare a un pezzo di shellcode. È possibile utilizzare un altro tipo di attacco, tuttavia, come dimostrato in questo documento che usa un adattamento della tecnica facendo uso della programmazione orientata al ritorno.

ASLR è principalmente una responsabilità del sistema operativo. Quindi dipenderà in gran parte dal sistema operativo in esecuzione sul tuo RPI e se è stato compilato con il supporto ASLR. I bit NX sono implementati ma possono essere elusi usando la programmazione orientata al rendimento.

Si noti che il processore ARM all'interno del raspberry pi supporta TrustZone che consente due spazi:

  • Secure World
  • Normal World

ARM utilizza nuclei virtuali per separare questi due mondi, che consentono diversi privilegi di esecuzione (ad esempio su Android questo viene utilizzato per separare il modulo di pagamento mobile da eseguire in una zona completamente diversa rispetto alle normali applicazioni). Pertanto, anche quando potresti essere in grado di sfruttare il tuo dispositivo, esiste comunque la possibilità che non avrai accesso ai dati riservati.

Per quanto riguarda i vettori di attacco plausibili, dipenderà da cosa usi Rpi. Per gli altri dispositivi che implementano ARM, gli attacchi sono stati utilizzati, ad esempio, per sbloccare i caricatori di avvio (in realtà l'exploit era in grado di bypassare le normali protezioni mondiali sicure).

    
risposta data 22.12.2013 - 11:41
fonte

Leggi altre domande sui tag