ANÁLISIS DE SEGURIDAD DEL SOFTWARE EMBEBIDO EN REWIRE
El proyecto REWIRE prevé una solución de ciberseguridad escalable para hardware y software de código y especificaciones abiertos para dispositivos IoT. Los socios universitarios e industriales del proyecto REWIRE colaborarán en la investigación y el desarrollo de una cadena de herramientas que garantice la integración de la ciberseguridad en todo el ciclo de vida de un dispositivo sobre una base de confianza cero. Esto incluirá la garantía de seguridad de los procesos que comienzan en la incorporación del dispositivo a un sistema, el arranque, la seguridad de las comunicaciones con otros dispositivos de la red REWIRE y la verificación del software/firmware, incluidas las actualizaciones seguras.
Bureau Veritas Cybersecurity está investigando y desarrollando un eslabón de esta cadena de herramientas que garantizará que las amenazas a la seguridad puedan ser descubiertas y tratadas eficazmente a través de un mecanismo automatizado de validación y verificación del firmware, dirigido al firmware de dispositivos utilizados en ciudades inteligentes, satélites inteligentes y automoción inteligente.
TÉCNICAS DE ANÁLISIS BINARIO
Utilizando técnicas punteras de análisis binario, Bureau Veritas Cybersecurity está desarrollando un módulo capaz de detectar fallos en el software. Dado que los dispositivos utilizados en estos contextos suelen tener un código muy especializado, detectar estos fallos puede resultar difícil. El software depende de ciertos componentes de hardware que pueden variar de un dispositivo a otro, y en muchos casos el código fuente no está disponible. Por ello, el módulo de pruebas de Bureau Veritas Cybersecurity emula el código como si se ejecutara en su hardware original, y en el proyecto REWIRE en su conjunto se toman decisiones de diseño para la arquitectura de hardware de los dispositivos. Esto permite un análisis preciso de los fallos, contribuyendo a un software embebido más seguro.
Análisis de seguridad del software integrado en REWIRE
El desempaquetado del firmware se realiza mediante una combinación de marcos de trabajo para el procesamiento de archivos binarios (como el firmware). Estas herramientas producen un sistema de archivos que contiene los archivos de configuración, las bibliotecas y el software que se ejecuta en el dispositivo y, si se dispone de una imagen completa del firmware, puede incluir un cargador de arranque y un kernel.
Dado que el firmware será emulado, es importante que se preserve su integridad y que las referencias, como enlaces simbólicos, bibliotecas y archivos de configuración, también estén intactas. Por lo tanto, generalmente se ejecuta un paso de sanitización para comprobar si tales referencias están en su lugar antes de emular realmente el firmware.
ANÁLISIS EN TIEMPO DE EJECUCIÓN
El análisis del tiempo de ejecución se refiere al momento en que el software del firmware está listo para ejecutarse. Esto puede significar que se ejecuta en hardware, pero dado que el firmware en el ámbito de aplicación se ejecuta en varios dispositivos, con posiblemente algunos periféricos, el análisis en tiempo de ejecución no puede depender de que el hardware esté disponible. Suponerlo significaría que la verificación se escalaría mal, ya que habría que utilizar muchos dispositivos. Por lo tanto, un análisis en tiempo de ejecución se basa generalmente en muchas técnicas que permiten evaluar el código de bytes sin ejecutarlo en el hardware para el que se compiló. Las técnicas utilizadas en el análisis estático del código son el análisis de taint, que detecta cualquier patrón de vulnerabilidad de inyección en el código fuente, y la ejecución simbólica, como medio de analizar un programa para determinar qué entradas hacen que se ejecute cada parte de un programa y, por tanto, podrían causar problemas.
El análisis dinámico suele consistir en la ejecución simbólica, el análisis taint y el fuzzing, un método automatizado de prueba de software que inyecta entradas no válidas, malformadas o inesperadas en un sistema para revelar defectos y vulnerabilidades del software.
FUZZING GUIADO POR COBERTURA
Al emular el firmware de esta manera, se puede hacer fuzzing con gran control, ya que se puede comprobar cada detalle de la CPU virtual utilizada para emular el firmware. No debería sorprendernos que la forma más rápida de detectar vulnerabilidades en el firmware sea el fuzzing guiado por cobertura, una técnica en la que se realiza un seguimiento de las ramas del software a las que se llega al proporcionar una determinada entrada, y la entrada que alcanza nuevas ramas se utiliza para pruebas posteriores. De este modo, se puede probar rápidamente una gran parte del software.
"El resultado de la verificación del firmware servirá de entrada para un comprobador de teoremas en una blockchain, que atestigua el correcto funcionamiento del dispositivo". Los resultados del proceso de verificación se utilizarán como entrada para elaborar un teorema sobre la seguridad del dispositivo. Además, cualquier vulnerabilidad descubierta en el proceso de verificación se utilizará como entrada para la herramienta de análisis de amenazas, que también se implementará dentro del proyecto REWIRE.
Más información
¿Desea saber más sobre el proyecto REWIRE? Contáctenos y le responderemos en el plazo de un día laborable.