Опубликован код анализатора безопасности прошивок FwAnalyzer
9 августа 2019 года
Компания Cruise, специализирующаяся на технологиях автоматического управления автомобилями, открыла исходные тексты проекта FwAnalyzer, предоставляющего инструменты для анализа образов прошивок на базе Linux и выявления в них потенциальных уязвимостей и утечек данных. Код написан на языке Go и распространяется под лицензией 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 позволяют сформировать точную спецификацию состояния прошивки и выявлять недопустимые отклонения, такие как присвоение не тех прав доступа или оставление закрытых ключей и отладочного кода (например, проверка позволяет избежать такие ситуаций, как оставление используемого на этапе тестирования ssh-сервера, предопределённый инженерный пароль, доступный на чтение /etc/config/shadow или забытые ключи формирования цифровой подписи).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.