excanear/epa

GitHub: excanear/epa

EPA 是一个基于 Buildroot 的便携式 CLI 嵌入式 Linux 环境,专用于在目标机器上快速采集硬件、固件和系统清单并生成结构化报告。

Stars: 0 | Forks: 0

# 开发中 # 扫描 Portable Appliance (EPA) **一个便携的、仅限 CLI 的嵌入式 Linux 设备环境,用于硬件、固件和系统的审计、信息收集以及事件响应。** [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Status](https://img.shields.io/badge/status-v0.1_in_progress-yellow.svg)](docs/roadmap.md) [![Platform](https://img.shields.io/badge/platform-x86__64_%7C_QEMU-lightgrey.svg)](docs/build.md) [![Language](https://img.shields.io/badge/language-C-informational.svg)](core/)
EPA 直接启动进入其自己的 shell —— 没有登录提示,没有桌面,没有 systemd,也没有其他的 userspace。它的存在是为了在你被授权检查的机器上快速回答一个问题: *这个系统究竟是什么?* ``` epa# hardware cpu epa# firmware info epa# report json Report written to /var/reports/epa-report-2026-07-28T19-42-00.json ``` ## 为什么 事件响应人员和审计员通常需要一个值得信赖的、最小的、一次性的环境,以便在目标机器上启动并收集完整的硬件/固件/系统清单,而无需引入整个桌面 OS。EPA 就是这个环境:一个专门构建的设备环境,而不是一个在通用 Linux 发行版上拼接工具的产物。 ## 设计 - **仅限 CLI。** 永远没有 GUI。一切都在 `epa#` 提示符下进行。 - **EPA *就是* OS。** EPA 自己的 C 代码在一个基于 Buildroot 的最小根文件系统上作为 PID 1 运行。没有 init 系统,没有登录管理器,除了 EPA 自己的之外没有其他 shell —— 该设备直接启动进入其中。 - **一次实现,两种输出。** 每个模块(`hardware cpu`、`firmware info`、...)只需编写一次,并呈现为人类可读的 shell 输出,或作为结构化 JSON 报告的一部分 —— 绝不重复。请参阅 [docs/architecture.md](docs/architecture.md)。 - **原生优于 vendored。** 只要实际可行,数据将直接从 `/proc` 和 `/sys` 读取。唯一 vendored 的外部工具是 `smartmontools`,用于读取磁盘 SMART 数据。 - **QEMU 优先,真实硬件其次。** 针对 QEMU x86_64 进行开发和测试;ARM64/RISC-V 以及物理硬件的启用已在路线图中。 ## 状态 EPA 正处于早期的积极开发中。**v0.1** 是当前的目标: | 领域 | 状态 | |---|---| | 启动至 `epa#` shell(Buildroot + 自定义 PID 1 init) | 🚧 进行中 | | `hardware cpu / memory / pci / usb / disk` | 已规划 | | `firmware info` (BIOS/UEFI, SMBIOS, ACPI, Secure Boot, TPM) | 已规划 | | `system info` | 已规划 | | `report json` | 已规划 | | `/etc/epa.conf` | 已规划 | | 网络、存储、文件系统、日志、安全、插件 | 在 v0.5 / v1.0 之前不在范围内 | 有关完整的 v0.1 → v0.5 → v1.0 计划,请参阅 [docs/roadmap.md](docs/roadmap.md);要了解为什么某些文件夹目前是占位符,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 快速开始 需要 Linux 构建环境(原生 Linux 或 Windows 上的 WSL2)。Buildroot 无法在包含空格的路径中构建 —— 有关完整的前置条件列表和故障排除,请参阅 [docs/build.md](docs/build.md)。 ``` make setup # one-time: init the Buildroot submodule, check host tools make run # build (if needed) and boot in QEMU, drops into epa# ``` ## 仓库结构 ``` boot/ QEMU boot scripts, kernel cmdline kernel/ Linux kernel config fragment core/ epa-init (PID 1), module framework, JSON writer, config parser cli/ the epa# shell: line editing, dispatch, builtins modules/ hardware / firmware / system / report module implementations br2-external/ Buildroot external tree (package, defconfig, board files) config/ /etc/epa.conf template + schema tests/ unit tests + QEMU boot smoke test docs/ architecture, build guide, module authoring, roadmap scripts/ setup / build / run wrappers ``` `network/`、`storage/`、`filesystem/`、`security/`、`browsers/`、`drivers/`、`plugins/` 作为未来里程碑的占位符存在 —— 每个目录下都有一个 `README.md` 标明其目标版本。 ## 法律声明 / 仅限授权使用 EPA 专为您拥有或明确授权检查的系统进行审计和事件响应而构建。它不尝试绕过加密、身份验证或其他保护机制,而且根据设计,它永远不会这样做。请负责任地使用,并仅在您有权限的地方使用。 ## 贡献 该项目尚处于起步阶段,架构仍在不断完善 —— 添加新模块前请参阅 [docs/architecture.md](docs/architecture.md) 了解模块协议,并在其发布后(v0.1 里程碑 M7)参阅 [docs/module-authoring.md](docs/module-authoring.md)。 ## License [MIT](LICENSE)。
标签:固件审计, 客户端加密, 嵌入式Linux, 库, 应急响应, 无线安全, 硬件审计, 系统信息收集, 身份验证强制