Компания Cruise, специализираща се в технологии за автоматично управление на автомобили, изходен код на проекта , предоставящ инструментариум за анализ на имиджи на фърмуер на базата на 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 или за формиране на цифрова подпись).
Източник: opennet.ru
