
Framework de experimentación Bluetooth para chips Broadcom y Cypress.
Los chips de Broadcom se utilizan en aproximadamente mil millones de dispositivos, como todos los iPhones, MacBooks, la serie Samsung Galaxy S, la serie Google Nexus más antigua, los Thinkpads más antiguos, los Raspberry Pis, varios dispositivos IoT y más. En 2016, Cypress adquirió la división de IoT de Broadcom. Desde entonces, las variantes de firmware divergieron ligeramente, ya que Broadcom mantuvo clientes no IoT como Apple y Samsung. Sin embargo, la interacción con el firmware y el mecanismo de actualización se mantuvo igual. Aplicamos ingeniería inversa a cómo los sistemas operativos parchean este firmware e interactúan con él. Basándonos en eso, desarrollamos un framework de experimentación Bluetooth que es capaz de parchear el firmware. Esto permite diversas funcionalidades que de otro modo solo serían posibles con una implementación de radio definida por software de pila completa, como inyectar y monitorizar paquetes en la capa de enlace.
InternalBlue no solo se ha utilizado para nuestra propia investigación en el Secure Mobile Networking Lab (SEEMOO). Además, los prototipos de ataque KNOB y BIAS se implementaron utilizando mensajes LMP de InternalBlue y los ataques SweynTooth también experimentaron con InternalBlue para elaborar mensajes LCP. Ten en cuenta que, a diferencia de herramientas como btlejack o Ubertooth, InternalBlue no tiene como objetivo realizar ataques Machine-in-the-Middle. Sin embargo, el dispositivo que ejecuta InternalBlue puede enviar paquetes arbitrarios y también inyectarlos en conexiones existentes. Durante la monitorización, todos los paquetes que recibe el dispositivo que ejecuta InternalBlue se capturan, y no hay pérdida de paquetes. InternalBlue no tiene ningún problema con el análisis de conexiones cifradas o Bluetooth Clásico. Si tienes solicitudes de funcionalidades específicas para tu investigación de seguridad, no dudes en abrir un ticket.
Además de la investigación en seguridad, InternalBlue también abre posibilidades para análisis adicionales como estadísticas y mejoras de rendimiento de Bluetooth Low Energy. Cualquier cosa que pueda mejorarse dentro de una pila Bluetooth puede probarse directamente en dispositivos comerciales.
Nuestra investigación reciente incluye Frankenstein, que emula el firmware, incluidos los cambios de hilo y la entrada de módem virtual. El firmware emulado puede conectarse a un host Linux. Por lo tanto, el enfoque es de pila completa. Lo usamos principalmente para fuzzing y encontramos vulnerabilidades que implican respuestas del host que deben activarse. Frankenstein se encuentra en un repositorio separado, pero depende de InternalBlue para tomar instantáneas de estado, etc., en un dispositivo físico.
Además, acabamos de publicar Polypyus. Permite el diffing de binarios solo con binarios, independiente de IDA y Ghidra. Sin embargo, se integra en ese flujo de trabajo al identificar buenos puntos de partida para análisis posteriores. Ya lo hemos probado en varios firmwares Wi-Fi y Bluetooth de Broadcom.
¿Buscas nuestras mediciones del generador de números aleatorios que realizamos dentro del análisis de CVE-2020-6616? Puedes encontrarlas aquí.
También hay algunos hooks más dinámicos para HCI con Frida en iOS y Android. Usamos esto para estudiar el comportamiento de advertencia en la interfaz de usuario ante ataques MitM. Sin embargo, probablemente sea útil para muchos otros experimentos.
Debido a Spectra 👻🌈 los comandos de escritura y lectura de RAM están deshabilitados después de la inicialización del controlador. Las soluciones alternativas para esto se describen en las instrucciones correspondientes de Android e iOS, se añadirán bypasses para otros dispositivos si es necesario.
Copyright 2018-2021 The InternalBlue Team
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar con el Software sin restricción, incluidos, sin limitación, los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, O EN RELACIÓN CON EL SOFTWARE O EL USO U OTROS ACUERDOS EN EL SOFTWARE.