Об этом проекте
BootIntel — это инструмент командной строки на Rust, который объединяет интерактивный терминал UART с потоковым анализом журналов загрузки. Он захватывает сеанс последовательного порта, сохраняет необработанные байты и по мере поступления данных определяет загрузчики, ядра, устройства и рискованные настройки загрузки. Локальное распознавание работает офлайн без учётной записи, а серверный анализ по явному согласию добавляет сопоставление CVE и отчёты.
Типичный рабочий процесс: `bootintel ports` выводит список последовательных адаптеров с метаданными USB VID/PID; `bootintel analyze /dev/ttyUSB0 --baud 115200 --log-file boot.log` открывает UART, сохраняет необработанные байты и выводит находки по ходу работы; `bootintel scan boot.log --format text` повторно анализирует сохранённый захват офлайн. Форматы вывода включают text, JSON, SARIF и JUnit, а `--gate-critical` предназначен для проверок в CI. Флаг `--tui` (функция сборки) отображает разделённую панель ratatui с потоком последовательного порта, находками и панелями сервера.
Помимо захвата, инструмент предлагает `verdict` для оценки того, что допускает среда U-Boot (возможность прерывания автозагрузки, проверка образов, пути netboot, перезапись bootargs, сохранение saveenv) полностью офлайн, `diff` для сравнения загрузок, `share` для встраивания журнала в URL через сжатие lz-string без загрузки на сервер и `analyze --interrupt-autoboot` для прерывания автозагрузки и извлечения среды. Подкоманды также включают batch, watch, cve, bench, replay, manpage, detectors, schema, export, view, demo, init, doctor и completions.
Особое внимание уделяется приватности: локальное распознавание никогда не требует учётной записи, ввод из последовательного порта никогда не отправляется автоматически, а серверный анализ выполняется только явно через `--api` или `--api --preview`. CLI документирует коды выхода в стиле sysexits, чтобы можно было различать пустые захваты (2), нераспознанные журналы (3), сбои проверок (gate failures), ограничения частоты (75) и ошибки аутентификации (77). Варианты установки включают однострочник для shell, PowerShell, Homebrew, Docker, Nix, crates.io и переиспользуемый композитный GitHub Actions, с контрольными суммами SHA256 и аттестациями происхождения сборки. Проект распространяется под лицензией Apache-2.0 и поддерживает Linux, macOS и Windows с минимальной версией Rust 1.90+.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.