Moria и Mithril упрощают проверку прошивок перед включением оборудования в сеть
Moria и Mithril упрощают проверку прошивок перед включением оборудования в сеть Мэтт Браун представил два открытых инструмента: Moria извлекает содержимое прошивки, Mithril ищет в нём ключи, учётные данные, программные компоненты и связанные с ними известные уязвимости. Главное изменение в Moria - собственные распаковщики файловых систем на C++. SquashFS, JFFS2, UBI/UBIFS, YAFFS2 и другие форматы обрабатываются внутри программы. Не нужно отдельно устанавливать и согласовывать версии sasquatch, jefferson и ubi-reader. При этом заявление об отсутствии зависимостей относится именно к внешним распаковщикам: библиотеки сжатия zlib, liblzma, lz4 и zstd остаются. Это решает вполне приземлённую проблему подготовки рабочего места. В обсуждении под анонсом сопровождающий unblob поддержал такой подход: на обновление старых распаковщиков не хватало ресурсов. Браун сообщил, что накопил около 1000 образов прошивок для поиска нестандартных случаев. Это его рабочая коллекция, а не опубликованный результат сравнительного испытания. Mithril составляет перечень программных компонентов и версий - SBOM. Источники данных включают базы пакетов, строки версий внутри исполняемых файлов и имена библиотек. Поэтому отсутствие пакетного менеджера в устройстве не лишает анализ смысла. Найденные компоненты сопоставляются с локальной базой OSV/NVD, результаты дополняются отметками KEV и оценками EPSS.ются отметками KEV и оценками EPSS. KEV отмечает уязвимости с подтверждённым применением в атаках. EPSS оценивает вероятность эксплуатации уязвимости в ближайшие 30 дней. Переносить эту оценку на вероятность взлома конкретного устройства нельзя. Для военной лаборатории прикладной сценарий - входной контроль прошивок закупаемого оборудования. До подключения можно обнаружить встроенный закрытый ключ, пустое поле пароля или старую библиотеку и сформулировать конкретные требования поставщику. Само сканирование работает без сетевых запросов: базу уязвимостей загружают отдельно. Это позволяет анализировать прошивки на изолированном рабочем месте. Есть существенная оговорка для проверки устойчивости оборудования. Обычный текстовый вывод Mithril скрывает часть найденных CVE, в том числе некоторые уязвимости, вызывающие отказ в обслуживании. Так устроен фильтр результатов. Для камеры или сетевого узла прекращение работы само по себе может сорвать задачу. Поэтому при такой проверке стоит смотреть все найденные CVE компонентов через --component-cves-all или JSON-вывод -j. Пустой результат проверки ядра тоже не означает отсутствия уязвимостей: по умолчанию используется ограниченный перечень. Результат сканирования требует проверки: найденный ключ ещё не доказывает, что устройство его использует, а совпадение версии с CVE - что производитель не перенёс исправление в свою сборку. Полезный результат для инженера - перечень находок с файлами, смещениями и основаниями, по которому можно проверить оборудование и потребовать исправлений. Вступайте в наш спецотряд в составе БАРС Свердловской области: @recruit_mog_bot(Telegram) Полезная Нагрузка