¿La Raspberry Pi es vulnerable a la inyección más allá de la tarjeta SD?

10

Comprendo que es posible crear un código para un hardware / firmware determinado para inyectar un virus que no se eliminaría con una limpieza del disco duro. La tarjeta de video y la BIOS son ejemplos de un posible destino para este tipo de software malicioso que se almacenará.

¿Pero la Raspberry Pi posee esta posible vulnerabilidad? Suponiendo que no hubo manipulación física, ¿es seguro asumir que cuando se reemplaza la tarjeta SD, el dispositivo está limpio?

  

No hay BIOS per se, pero sí admitimos el arranque de código simple ...

No hay RTC. Apenas hay nada excepto lo básico. Por otro lado, se incluye una capacidad de GPU / video.

Entonces, esta pregunta me viene a la mente y me pregunto si alguien tiene la respuesta.

    
pregunta George Bailey 08.08.2012 - 20:05
fuente

4 respuestas

14

En principio, podría modificar el firmware del SoC (Sistema en el chip) (por ejemplo, el simple cargador de arranque que inicialmente le dice al chip que lea la tarjeta SD para obtener la imagen del firmware real para iniciar) cargando un nuevo firmware malicioso. que persistiría después de reemplazar la tarjeta SD.

Sin embargo, no estoy seguro de si el firmware SoC de Raspberry Pi es (fácilmente) modificable. Creo que es preprogramado de fábrica y puede que no sea regrabable ; aunque un atacante sofisticado siempre podría reemplazar el chip con uno malicioso programado de fábrica.

  

Hay un firmware en el SOC que no podrá tocar. Está preprogramado desde la fábrica. Y sí, se requiere para iniciar, y esta es la razón por la que la primera partición tiene que ser FAT porque así se diseña el firmware. Solo necesita una partición FAT lo suficientemente grande como para contener un cargador de arranque de algún tipo.

También de enlace :

  

Las tarjetas no incluyen almacenamiento NAND o NOR: todo está en la tarjeta SD, que tiene una partición FAT32 con firmware de GPU y una imagen de kernel, y una partición EXT2 con rootfs.

     

Actualmente no estamos usando un gestor de arranque, en realidad arrancamos a través de la GPU, que   Contiene un núcleo RISC propietario (arquitectura extravagante). La GPU monta la tarjeta SD, carga el firmware de la GPU y muestra la pantalla / video / 3d, carga una imagen del núcleo, reinicia el host de la tarjeta SD e inicia el ARM.   Podría reemplazar la imagen del kernel con una imagen del gestor de arranque, y eso funcionaría bien.

Lo que implica que hay un código simple en el SoC que en el arranque se monta la tarjeta SD y se lee el firmware, que en principio podría reemplazarse con un código malicioso. Aunque esto puede requerir reemplazar físicamente el chip con algo creado en una fábrica de chips que inicialmente cargó código malicioso.

    
respondido por el dr jimbob 08.08.2012 - 21:27
fuente
15

El procesador de aplicaciones BCM2835 que utilizamos no tiene almacenamiento persistente a bordo, por lo que no es posible un ataque del tipo que describe. El gestor de arranque de etapa cero se almacena en una ROM real y honesta a dios en el chip, por lo que no se puede sobrescribir.

    
respondido por el Eben Upton 30.12.2012 - 17:49
fuente
2

No puedo responder específicamente a la Raspberry PI pero me referiré a este artículo . De acuerdo con esto, es posible escribir código malicioso que no se limpiaría mediante procedimientos "típicos".

  

Debido a los esfuerzos de los programadores que han contribuido a esos   proyectos, Rakshasa trabaja en 230 modelos diferentes de placa base ..

    
respondido por el Digital fire 08.08.2012 - 20:56
fuente
1

IIRC, el Pi solo tiene 2 fichas; uno para cpu / memory / video, uno para USB y LAN. Si ninguno de estos respalda la escritura, entonces eso es prácticamente el final de la misma.

Sin embargo, vale la pena señalar que no hay una configuración de hardware única para el Pi; diferentes iteraciones han utilizado diferentes proveedores y modelos para estos chips. Entonces, teóricamente, la respuesta podría depender de la revisión que obtengas. Tendrías que revisar la hoja de datos para tu chip específico.

Aquí hay una lista de revisiones para este hardware con los números de modelo aislados para los dos chips:

Tableros RaspberryPi

    
respondido por el tylerl 09.08.2012 - 02:23
fuente

Lea otras preguntas en las etiquetas