프로젝트 소개

BootIntel은 대화형 UART 시리얼 터미널과 스트리밍 부트 로그 분석을 결합한 Rust 명령줄 도구입니다. 시리얼 세션을 캡처하고 원시 바이트를 보존하며, 부트로더, 커널, 장치 및 위험한 부팅 설정이 도착하는 즉시 식별합니다. 로컬 식별은 계정 없이 오프라인으로 실행되며, 옵트인 서버 분석은 CVE 매칭 및 보고서를 추가합니다. 일반적인 워크플로: `bootintel ports`는 USB VID/PID 메타데이터와 함께 시리얼 어댑터를 나열합니다. `bootintel analyze /dev/ttyUSB0 --baud 115200 --log-file boot.log`는 UART를 열고 원시 바이트를 보존하며 인라인으로 결과를 출력합니다. `bootintel scan boot.log --format text`는 저장된 캡처를 오프라인으로 다시 스캔합니다. 출력 형식은 텍스트, JSON, SARIF 및 JUnit을 포함하며, CI 게이팅을 위한 `--gate-critical` 옵션이 있습니다. `--tui` 플래그(빌드 기능)는 시리얼 스트림, 결과 및 서버 창이 있는 분할 화면 ratatui 대시보드를 렌더링합니다. 캡처 외에도 이 도구는 U-Boot 환경이 허용하는 것을 완전히 오프라인으로 평가하는 `verdict`(자동 부팅 중단 가능성, 이미지 검증, 네트워크 부팅 경로, bootargs 재작성, saveenv 영속성), 펌웨어 부팅을 비교하는 `diff`, lz-string 압축을 통해 업로드 없이 URL에 로그를 포함하는 `share`, 그리고 자동 부팅을 중단하고 환경을 가져오는 `analyze --interrupt-autoboot`을 제공합니다. 하위 명령에는 batch, watch, cve, bench, replay, manpage, detectors, schema, export, view, demo, init, doctor 및 completions도 포함됩니다. 프라이버시가 강조됩니다: 로컬 감지는 계정을 요구하지 않으며, 시리얼 입력은 자동으로 전송되지 않고, 서버 분석은 `--api` 또는 `--api --preview`를 통한 명시적 옵트인입니다. CLI는 sysexits 스타일 종료 코드를 문서화하여 CI가 빈 캡처(2), 인식되지 않은 로그(3), 게이트 실패(1), 속도 제한(75) 및 인증 실패(77)를 구분할 수 있게 합니다. 설치 옵션에는 셸 원라이너, PowerShell, Homebrew, Docker, Nix, crates.io 및 재사용 가능한 GitHub Actions 복합 액션이 포함되며, SHA256 체크섬 및 빌드 출처 증명이 제공됩니다. 이 프로젝트는 Apache-2.0 라이선스이며 Rust 1.90+ MSRV로 Linux, macOS 및 Windows를 대상으로 합니다.