Desbordamiento de búfer en Raspberry PI

2

¿El procesador ARM utilizado en Raspberry Pi es vulnerable a los desbordamientos de búfer estándar? Es decir, si un programa que tiene una vulnerabilidad de BO se ejecuta en un Pi, ¿será vulnerable a la explotación?

¿Cómo afecta la arquitectura única de ARM y SoC a la vulnerabilidad o la explotación?

Teniendo en cuenta la menor huella y la superficie de ataque más pequeña, ¿cuál sería un posible vector de ataque?

Y lo más interesante, ¿la Raspberry Pi es compatible con las protecciones integradas contra los desbordamientos, como ASLR, DEP / NX, canarios en general, etc.?

    
pregunta AviD 22.12.2013 - 10:29
fuente

1 respuesta

4

La pi de frambuesa se ejecuta en el procesador ARM1176JZF-S. ARM se utiliza en más dispositivos que solo el Rpi. La explotación de ARM es ciertamente posible. Echa un vistazo a los siguientes documentos:

También eche un vistazo a esta Defcon 18 .

En cuanto a la explotación, los desbordamientos de búfer son definitivamente posibles (consulte los documentos para detalles técnicos). En muchas plataformas nuevas, las pilas no son ejecutables, por lo que intentar explotarlas es más difícil que en el pasado. Las técnicas como ret2libc no funcionarán debido a la forma en que ARM realiza la administración de variables. A veces, las variables se insertan en los registros en lugar de colocarse en la pila, lo que hace que sea mucho más difícil extraer las variables correctas para saltar a un código de shell. Sin embargo, se puede usar otro tipo de ataque como se muestra en este documento que utiliza una adaptación de la técnica haciendo uso de la programación orientada al retorno.

ASLR es principalmente una responsabilidad del sistema operativo. Por lo tanto, dependerá en gran medida de qué sistema operativo esté ejecutando en su Rpi y si fue compilado con soporte ASLR. Los bits NX se implementan, pero se pueden sortear utilizando la Programación Orientada por Devolución.

Tenga en cuenta que el procesador ARM dentro de la frambuesa pi es compatible con TrustZone, que permite dos espacios:

  • Mundo seguro
  • Mundo normal

ARM utiliza núcleos virtuales para separar estos dos mundos, lo que permite diferentes privilegios de ejecución (por ejemplo, en Android, se utiliza para separar su módulo de pago móvil para que se ejecute en una zona completamente diferente a la de sus aplicaciones normales). Por lo tanto, incluso cuando pueda explotar su dispositivo, existe la posibilidad de que no obtenga acceso a datos confidenciales.

Con respecto a los vectores de ataque plausibles, dependería de para qué usas el Rpi. Para otros dispositivos que implementan ARM, los ataques se han utilizado, por ejemplo, para desbloquear cargadores de arranque (el exploit en realidad fue capaz de pasar de forma segura a las protecciones normales del mundo).

    
respondido por el Lucas Kauffman 22.12.2013 - 11:41
fuente

Lea otras preguntas en las etiquetas