Компания Cruise, специализирующаяся на технологиях автоматического управления автомобилями, открыла (https://medium.com/cruise/firmware-security-fwanalyzer-dcbd9...) исходные тексты проекта FwAnalyzer (https://www.fwanalyzer.io), предоставляющего инструменты для анализа образов прошивок на базе Linux и выявления в них потенциальных уязвимостей и утечек данных. Код написан на языке Go и распространяется (https://github.com/cruise-automation/fwanalyzer) под лицензией Apache 2.0.
Поддерживается анализ образов, использующих файловые системы ext2/3/4, FAT/VFat, SquashFS и UBIFS. Для раскрытия образа используются штатные утилиты, такие как e2tools, mtools, squashfs-tools и ubi_reader. FwAnalyzer извлекает из образа дерево каталогов и выполняет оценку содержимого на основе набора правил. Правила могут привязываться к метаданным ФС, типу файлов и содержимому. На выходе формируется отчёт в формате JSON, суммирующий извлечённую из прошивки информацию и выводящий предупреждения и список файлов, не соответствующих обработанным правилам.
Поддерживается проверка прав доступа к файлам и каталогам (например, выявляется доступ всем на запись и выставление некорректных UID/GID), определяется наличие исполняемый файлов с флагом suid и использование меток SELinux, выявляются забытые ключи шифрования и потенциально опасные файлы. В содержимом выделяются оставленные инженерные пароли и отладочные данные, выделяется информация о версиях, выполняется определение/сверка начинки по хэшам SHA-256 и осуществляется поиск с использованием статических масок и регулярных выражений. Возможна привязка внешних скриптов-анализаторов к определённым типам файлов. Для прошивок на базе Android определяются параметры сборки (например, использование режима ro.secure=1, состояние ro.build.type и активация SELinux).
FwAnalyzer можно использовать для упрощения анализа проблем с безопасностью в чужих прошивках, но основным назначением является контроль качества собственных прошивок или поставляемых сторонними поставщиками по контракту. Правила FwAnalyzer позволяют сформировать точную спецификацию состояния прошивки и выявлять недопустимые отклонения, такие как присвоение не тех прав доступа или оставление закрытых ключей и отладочного кода (например, проверка позволяет избежать такие ситуаций, как оставление (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5399) используемого на этапе тестирования ssh-сервера, предопределённый (https://www.opennet.dev/opennews/art.shtml?num=46175) инженерный пароль, доступный (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5457) на чтение /etc/config/shadow или забытые (https://www.opennet.dev/opennews/art.shtml?num=43043) ключи (https://www.opennet.dev/opennews/art.shtml?num=42986) формирования цифровой подписи).
URL: https://medium.com/cruise/firmware-security-fwanalyzer-dcbd9...
Новость: https://www.opennet.dev/opennews/art.shtml?num=51249