El microcontrolador STM8 con fallas en la carretera.

Eva Jiménez
Eva Jiménez

La ingeniería inversa o la modificación de un dispositivo a menudo requieren que acceda al firmware almacenado en un microcontrolador. Debido a que a las empresas generalmente no les gusta que las personas intenten echar un vistazo a sus propios datos, la mayoría de los dispositivos comerciales son legibles. [rumpeltux] encontró este problema cuando intentó descartar el firmware en un módulo de comunicación en serie inalámbrico HC-12 por razones aún desconocidas. Hackear el dispositivo fue un desafío que aceptó de buen grado y, al final, logró construir un arreglo barato para un problema de voltaje.

Un problema de voltaje es una forma de inyección defectuosa, p. Ej. Utilizado con éxito para hackear Playstation Vita. Implica la inyección de picos de voltaje en la línea eléctrica para obligar al motor de arranque a omitir los controles de seguridad. Lo difícil es intentar encontrar la forma correcta de la forma de onda y la mejor manera de inyectar la señal.

Si bien ya existen placas de código abierto para inyecciones defectuosas como ChipWhisperer, [rumpeltux] eligió construir su propio diseño alrededor de FPGA. Usando una placa EPM240 barata, algunos MOSFET y un convertidor serie USB, los costos totales de la configuración de fallas fueron menos de 20 euros. [rumpeltux] luego registró un mayor número de trazas de voltaje en el pin VCC alrededor de la fase de reinicio y analizó las diferencias. Esto le ayudó a indicar el mejor momento para inyectar la señal y refinar el espacio de búsqueda. Después de algunos intentos fallidos de estropear los pines VCC y GND, tuvo la suerte de usar uno de los pines reguladores de voltaje en su lugar.

Asegúrese de no perderse el discurso de Samy Kamkar en la Supercon 2019 si desea saber más sobre los ataques a dispositivos o cómo escuchar a las personas que usan una bolsa de trozos de papa.

  • Alex Rossie dice:

    EPM240 es un CPLD, aunque Max II incorpora correctamente algunas características arquitectónicas más comunes en FPGA.

  • huele a bicicletas dice:

    Hago esto en el trabajo, no para intentar piratear el firmware, sino para probar el nuevo silicio en busca de fallas en el inicio. Esta es una forma más cara de hacer esto, pero funciona bastante bien: las fuentes de alimentación más antiguas / agradables de HP / Agilent / Keysight tienen un interruptor o una configuración de interruptor que las hace actuar como amplificadores de potencia o seguidores de voltaje o como quieras llamarlo, así que descartarán una salida grande cuando se les proporcione un generador de formas de onda arbitrario. Puede usar un microcontrolador como su AWG si lo desea. Algunos de los consumibles de Agilent podían soportar pendientes de 5V / nS, y compré algunos consumibles de 600W que funcionaban, como el HP 6038A, por menos de $ 100 en eBay. Es más fácil configurar el AWG si tiene una configuración GPIB o ethernet porque entonces puede cargar formas de onda que construyó en Excel al AWG, pero si usa un microcontrolador con un DAC rápido, como el Teensys más nuevo, sería mucho más fácil interfaz para la mayoría de los usuarios domésticos. No es necesario que hable con el PS en absoluto. Simplemente sigue. Usamos esto para las pruebas de arranque ISO 16750, donde simula el voltaje variable de la batería de un automóvil mientras el motor está arrancando, y funcionó muy bien.

    • huele a bicicletas dice:

      También puede hacer esto más barato pero con más diseño, por ejemplo, utilizando un amplificador operativo OPA541 como seguidor de voltaje. Hicimos un paralelo de muchos de ellos para hacer una gran fuente de alimentación variable rápida para la prueba ISO 16750, que necesitaba 30 A, mientras que todavía manejamos tiempos altos de 10 V / uS. Sin embargo, en ninguna parte era tan robusto como la fuente de alimentación comercial.

    • RW versión 0.0.3 dice:

      Me estaba preguntando sobre el tiempo de actividad de una fuente de alimentación ATX típica si subes y bajan la línea de alimentación.

      • tambalearse dice:

        Así que mídelo entonces, como un verdadero ingeniero

        • Un hombre viejo dice:

          “Creo que tengo un cable en alguna parte. Algún día tendré que ir a buscarlo. “

      • tekkieneet dice:

        La línea eléctrica buena es una salida equivalente a los controladores de la fuente de alimentación en la fuente de alimentación. No desea desactivar el interruptor de encendido / apagado. No creo que la fuente de alimentación esté demasiado feliz de ver un problema en la línea de encendido / apagado ni puede cambiar lo suficientemente rápido en microsegundos para una carga pequeña.

        Probablemente sea más fácil tomar un LDO actual ajustable con un pin / EN (habilitar) que puede encender / apagar de manera lógica. También puede perder el tiempo ajustando el voltaje de salida un poco por encima del umbral.

        Todo esto me hace preguntarme por qué el detector de desactivación dentro de los microcontroladores no lo detecta.

        • Artenz dice:

          En este proyecto, está problematizando el LDO interno. Quizás el detector de averías mida la señal delante del LDO.

          • tekkieneet dice:

            Mi pregunta también es sobre las partes que no tienen su regulador interno (para el núcleo) roto. Si solo los proveedores también verificaran que el riel interno esté desactivado correctamente (al menos hasta la salida del código de arranque del sistema oculto), podrían cerrar un agujero de seguridad.

    • solipso dice:

      “Algunos de los suministros de Agilent podrían gestionar 5V / nS”
      No puedo creerlo.

      • huele a bicicletas dice:

        Mirando hacia atrás, creo que tienes razón: esa es la enorme velocidad de uno de los AWG que utilizo. Parece que 5V / uS es más típico del Agilent que más uso.

  • Jii dice:

    Pareces tener un buen ambiente para un pasatiempo.

    • Jii dice:

      Aaaa y eso fue una respuesta a los olores de las bicicletas. demonio

  • Prehistoriador dice:

    ¡De ninguna manera! Hice un truco muy similar con hardware similar y obtuve resultados casi idénticos. Es como ciencia o algo así.
    Llegué al escenario donde el problema de vcc no funcionó, pero miré ese pin de vcap con hermosos ojos.

  • CMH62 dice:

    Realmente disfruté de un enlace desde el [rumpeltux] un blog sobre esta explotación. El enlace va a una charla en 35C3 sobre un dispositivo Sony Vita alimentado por voltaje. Discurso muy informativo. ¡Y la “imagen aleatoria de Amazon” bromeó a mi alrededor 47 fue divertidísima!
    https://media.ccc.de/v/35c3-9364-viva_la_vita_vida#t=1633

  • Manu dice:

    ¿Se fusiona el Detector Detector Brown (como el de los microcontroladores PIC) para evitar que el problema funcione?

    • Jarrett dice:

      No, la idea es provocar una caída de voltaje lo suficientemente rápido como para hacer que una sola lectura de ROM falle, pero no lo suficiente como para activar un BOR o cualquier otro proceso.

      • Manu dice:

        Afortunadamente, tuve un proyecto en el que el rayo se corrompió debido a una fuente de alimentación defectuosa y el BOD salvó el día. Si puede superarlo con pulsos muy cortos, es bastante difícil producir un producto confiable (por otro lado, es responsabilidad del desarrollador hacer una fuente de alimentación bastante buena …)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *