Cruise, empresa especializada en tecnologías de conducción automatizada, códigos fuente del proyecto , que proporciona herramientas para analizar imágenes de firmware basadas en Linux e identificar posibles vulnerabilidades y fugas de datos en ellos. El código está escrito en Go y licenciado bajo Apache 2.0.
Admite análisis de imágenes utilizando los sistemas de archivos ext2/3/4, FAT/VFat, SquashFS y UBIFS. Para abrir la imagen se utilizan utilidades estándar, como e2tools, mtools, squashfs-tools y ubi_reader. FwAnalyzer extrae el árbol de directorios de la imagen y evalúa el contenido según un conjunto de reglas. Las reglas se pueden vincular a los metadatos del sistema de archivos, el tipo de archivo y el contenido. El resultado es un informe en formato JSON, que resume la información extraída del firmware y muestra advertencias y una lista de archivos que no cumplen con las reglas procesadas.
Se admite la comprobación de los derechos de acceso a archivos y directorios (por ejemplo, detecta el acceso de escritura para todos y la configuración de UID/GID incorrectos), se determina la presencia de archivos ejecutables con la bandera suid y el uso de etiquetas SE.Linux, detectando claves de cifrado olvidadas y archivos potencialmente peligrosos. Se resaltan las contraseñas de ingeniería abandonadas y los datos de depuración, se extrae la información de la versión, se identifica y verifica la carga útil mediante hashes SHA-256, y se realiza una búsqueda utilizando máscaras estáticas y expresiones regulares. Se pueden vincular scripts de análisis externos a tipos de archivos específicos. Para firmware basado en Android Se definen los parámetros de compilación (por ejemplo, el uso del modo ro.secure=1, el estado ro.build.type y la activación de SE).Linux).
FwAnalyzer se puede utilizar para simplificar el análisis de problemas de seguridad en firmware de terceros, pero su objetivo principal es monitorear la calidad del firmware que pertenece o es suministrado por proveedores contratados de terceros. Las reglas de FwAnalyzer le permiten generar una especificación precisa del estado del firmware e identificar desviaciones inaceptables, como asignar derechos de acceso incorrectos o dejar claves privadas y códigos de depuración (por ejemplo, la verificación le permite evitar situaciones como utilizado durante las pruebas del servidor ssh, contraseña de ingeniería, para leer /etc/config/shadow o formación de una firma digital).
Fuente: opennet.ru
