# Bios Security Analysis

> |

- **Type:** Skill
- **Install:** `agentstack add skill-mikewuping-bios-security-analysis-bios-security-analysis`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [MikeWuPing](https://agentstack.voostack.com/s/mikewuping)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [MikeWuPing](https://github.com/MikeWuPing)
- **Source:** https://github.com/MikeWuPing/bios-security-analysis/tree/main/skills/bios-security-analysis

## Install

```sh
agentstack add skill-mikewuping-bios-security-analysis-bios-security-analysis
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# BIOS/UEFI 固件安全分析

从初始镜像识别到深度解压、模块枚举、微码审计、证书分析、最终报告输出的完整方法论。

## 核心工作流

分析新 BIOS 镜像时按以下顺序执行：

### 1. 初步鉴定

- 识别文件类型：`file ` —— 预期 "Intel serial flash for PCH ROM" 或类似输出
- 大小检查：现代 UEFI BIOS 通常为 16MB 或 32MB
- 计算哈希：MD5 + SHA256 用于唯一标识
- 判断格式：UEFI Capsule（头部为 Capsule GUID）还是原始 SPI 镜像
- 原始 SPI 镜像的 Flash Descriptor 从偏移 0x10 开始

### 2. Intel Flash Descriptor 解析

Flash Descriptor 位于 SPI 镜像偏移 0x10 处：

```
签名 (0x10): 0x0FF0A55A (LE)
FLMAP0 (FD 偏移 0x00): FCBA[0:7], NC[8:9], FRBA[16:23]
FLMAP1 (偏移 0x04): 包含 FMBA 等
```

Region Descriptor 从 FRBA 开始，每条 4 字节 (Base[0:11], Limit[12:23], Access[24:27])。

区域名称: Descriptor, BIOS, ME, GbE, Platform Data, EC。

Flash Descriptor 解析是确定各区域布局（BIOS 区、ME 区等）的关键前提。

### 3. BIOS 原始供应商识别 (IBV)

确定 Independent BIOS Vendor 的方法：

```python
vendor_patterns = {
    'AMI': [b'AMI Aptio', b'AMITSESetup', b'AmiWrapperSetup', b'American Megatrends'],
    'Insyde': [b'InsydeH2O', b'Insyde Software'],
    'Phoenix': [b'Phoenix SecureCore', b'Phoenix Technologies'],
}
```

- **AMI Aptio**：`AMITSESetup`、`AmiWrapperSetup`、`AmiBoardInfo` —— 消费级主板最常见
- **InsydeH2O**：多见于笔记本
- **Phoenix SecureCore**：企业级

同时检查：ACPI OEMID/OEM Table ID、DXE/PEI 模块 GUID、Setup IFR 架构特征。

确认供应商后，检索该供应商历史上公开发布的安全公告和已知 CVE 列表，逐项比对目标 BIOS 中是否包含受影响版本的模块。

### 4. 固件卷 (FV) 枚举

使用 `uefi_firmware` 库：

```python
from uefi_firmware.uefi import FirmwareVolume, FirmwareFileSystem, EFI_FILE_TYPES, sguid, search_firmware_volumes

# search_firmware_volumes 返回 FV 偏移列表（指向 _FVH 签名位置）
fv_offsets = search_firmware_volumes(data)  # 返回 int 列表

# FV 头部在偏移 - 0x28 处（ZeroVector 在 _FVH 前 0x28 字节）
for fv_off in fv_offsets:
    fv_start = fv_off - 0x28
    fv_hdr = data[fv_start:fv_start+0x48]
    fv_len = struct.unpack_from('= 0x100 and total_size  0x1000 and cpuid != 0xFFFFFFFF:
                patches.append(...)
        pos = idx + 4
    return patches
```

**Raptor Lake (13/14 代) CPUID**：0x000B0670, 0x000B0671, 0x000B06E0, 0x000B06F0, 0x000B06F2, 0x000B06F5

**Alder Lake (12 代) CPUID**：0x00090671, 0x00090672, 0x00090675, 0x000906A0, 0x000906A3, 0x000906A4

**最新微码版本参考**（检查 Intel GitHub：`Intel-Linux-Processor-Microcode-Data-Files`）：
- ADL-S: 0x42E（约 2024 年末）
- RPL-S: 0x12A（约 2025 年 3 月），可能已存在更新的内部版本

### 7. Secure Boot 证书分析

#### 在解压后的 FV 中查找证书

搜索 DER 编码的 X.509 证书（以 `0x30 0x82` 开头）：

```python
pos = 0
while pos H', fv_data, pos+2)[0]
        if 500 = 50 → 1900+）
- GeneralizedTime 格式：`YYYYMMDDHHMMSSZ`
- 前两个连续的时间值分别是 notBefore 和 notAfter
- 验证条件：两者间隔应  5 年`（非根证书）→ 标记

#### DBX（吊销数据库）分析

搜索 `EFI_CERT_SHA256_GUID`（`C1C41626-504C-4092-ACA9-41F936934328`，LE 字节：`2616C4C14C509240ACA941F936934328`）。

DBX 条目是 `EFI_SIGNATURE_LIST` 结构，每条 48 字节（16 字节 Owner GUID + 32 字节 SHA256 哈希）。DBX 为空（< 50 条）意味着平台不阻止任何已知的已吊销引导加载程序。

**需检查的已知已吊销引导加载程序**：
- BlackLotus (2023): `77fa9abd...`
- BootHole GRUB2 (CVE-2020-10713): `e75b63d0...`
- BootHole shim (CVE-2020-14372): `36382848...`

### 8. CSME 固件版本审计

CSME 固件存储在闪存的 ME 区域。版本提取方法：

```python
# CPD (Code Partition Directory) 条目 —— 标识 ME 模块
for m in re.finditer(rb'\x24CPD', data):
    cpd_name = data[m.start()+0x18:m.start()+0x28].decode('ascii', errors='replace').strip()

# 从字符串提取版本
for m in re.finditer(rb'PCHC(\d+\.\d+\.\d+\.\d+)', data):
    pchc_ver = m.group(1).decode('ascii')

# ADL 平台 CSME 关键组件：
# - CSME ROM: 16.1.x —— ME 主内核
# - PCHC: 16.1.x —— PCH 配置
# - PMCP: 160.x —— 电源管理
# - SPHY: 13.x —— 南桥 PHY
# - ISHC: 5.x —— 集成传感器集线器控制器
```

**与 Intel PSIRT 安全公告交叉比对**：
- INTEL-SA-00847 (2024-03, CVSS 8.8): CSME 16.1 特定版本
- INTEL-SA-00783 (2023-08, CVSS 8.2): CSME 16.1.30 及更早版本
- INTEL-SA-00614 (2022-11, CVSS 7.8): 多个 CSME 16.1 版本
- CVE-2022-36392 (CVSS 8.2), CVE-2022-29871 (CVSS 7.8)

**重要提示**：静态分析无法最终确定 CSME 补丁是否已应用。必须使用 Intel CSMEVDT（CSME Version Detection Tool）进行运行时验证。

### 9. SMM 攻击面分析

从解压后的 FV 枚举 SMM 模块：

```python
# SMM 模块在 FFS 中的类型为 0x0A
# 需要关注的 SMI Handler（按 UI 名称搜索）：
smi_handlers = [
    'PchSmiDispatcher',  # PCH SMI 事件分发器
    'CrbSmi',            # Command Register Buffer SMI
    'NbSmi',             # 北桥 SMI
    'SleepSmi',          # 睡眠状态 SMI
    'TcoSmi',            # TCO 看门狗 SMI
    'SmiFlash',          # 通过 SMI 更新闪存
    'SmiVariable',       # 通过 SMI 更新变量
    'NvramSmm',          # NVRAM SMM 处理程序
]
```

**安全检查项**：
- SMM 通信缓冲区：存在 `PiSmmCommunicationSmm` → 需检查缓冲区验证
- SMRAM 锁定：`PiSmmCpuDxeSmm`、`SmmAccess`、`SmmControl`
- BIOS Guard：`BiosGuardServices` → 硬件级别的 SPI 闪存保护
- HSTI：`HstiIhvSmm` → 硬件安全测试接口
- SPI 保护：`FlashDriverSmm`、`SpiSmm`、`SpiSmmStub`

**仅可通过运行时验证的检查项**（静态分析无法验证）：
- HSFS.FLOCKDN 寄存器状态
- BIOS_CNTL.BIOSWE、BIOS_CNTL.BLE
- SMRR 配置
- SMM 通信缓冲区输入验证

### 10. CSM/遗留启动检测

CSM (Compatibility Support Module) 启用遗留 BIOS 启动，可绕过 Secure Boot。

**关键 CSM 模块**：`CsmDxe`、`CsmVideo`、`CsmBlockIo`、`LegacyRegionDxe`、`AmiLegacyInterrupt`、`TcgLegacy`

只要发现以上任一模块 → CSM 已启用 → Secure Boot 存在被绕过风险。

### 11. 安全关键词搜索分类

对模块按 UI 名进行分类时，搜索以下关键词：

```python
security_keywords = {
    'SMM': ['Smm', 'SMI', 'SMRAM', 'SmmChild', 'SmmCore', 'SmmAccess', 'SmmControl'],
    'SecureBoot': ['SecureBoot', 'ImageSecurity', 'ImageVerification'],
    'S3/睡眠': ['S3', 'BootScript', 'S3Save', 'LockBox'],
    'SPI/闪存': ['Spi', 'Flash', 'Fvb', 'FirmwareVolumeBlock', 'SpiLock', 'FlashSmm'],
    'TPM/安全': ['Tcg', 'Tpm', 'Tcg2', 'TrEE', 'Txt', 'BiosGuard', 'BootGuard'],
    'Setup/配置': ['Setup', 'AMITSE', 'AmiTse', 'HiiDatabase', 'FormBrowser'],
    '内存保护': ['Memory', 'MemTest', 'HeapGuard', 'PoolGuard', 'NullDetection', 'StackGuard'],
    'CSM/遗留': ['Csm', 'Legacy', 'LegacyBios', 'LegacyRegion', 'LegacyInterrupt'],
    '网络': ['Pxe', 'Snp', 'Mnp', 'Arp', 'Ip4', 'Ip6', 'Tcp', 'Http', 'Tls', 'UNDI'],
    'OEM/AMI': ['AmiDebug', 'AmiCpu', 'Maxsun', 'MsOc', 'OcSupport', 'AmiBoard', 'AmiTse'],
}
```

## EFI GUID 速查表

BIOS 安全分析中重要的 GUID：

```
# 证书相关
CERT_X509_GUID:     A159C0A5-E494-4AA7-87B5-AB155C2BF072
CERT_SHA256_GUID:   2616C4C1-4C50-4092-ACA9-41F936934328

# Secure Boot 变量
IMAGE_SECURITY_DATABASE (db/dbx): CBB219D7-3A3D-4596-A3BC-DAD00E67656F
GLOBAL_VARIABLE (PK/KEK):         61DFE48B-CA93-11D2-AA0D-00E098032B8C

# LZMA 压缩
LZMA_CUSTOM_DECOMPRESS: EE4E5898-3914-4259-9D6E-DC7BD79403CF

# 固件文件系统
FFS1: 7A9354D9-0468-444A-81CE-0BF617D890DF
FFS2: 8C8CE578-8A3D-4F1C-9935-896185C32DD3
FFS3: 5473C07A-3DCB-4DCA-BD6F-1E9689E7349A
NVRAM_EVSA: FFF12B8D-7696-4C8B-A985-2747075B4F50

# AMI NVRAM
NVAR: CEF5B9A3-476D-497F-9FDC-E98143E0422C
```

## 工具依赖

必需的 Python 包：
```bash
pip install uefi_firmware
```

`uefi_firmware` 提供：`FirmwareVolume`、`FirmwareFile`、`FirmwareFileSystem`、`CompressedSection`、`EFI_FILE_TYPES`、`EFI_SECTION_TYPES`、`search_firmware_volumes`、`sguid`、`LzmaDecompress`、`TianoDecompress`、`EfiDecompress`

使用的 Python 内置模块：`struct`、`lzma`、`zlib`、`re`、`hashlib`、`datetime`

## 输出目录组织

始终创建以下目录：
- `output/` —— 解压后文件、模块列表、提取的微码、证书审计结果
- `report/` —— 最终分析报告（纯文本 + Word）
- `scripts/` —— 分析脚本（可复用）

## 报告结构规范

编写最终报告时，**严格分离**两类问题：
1. **已确认的问题** —— 可通过静态扫描、版本比对、CVE 匹配验证的
2. **待运行时检验的可能问题** —— 需要运行时验证的（SMRAM 锁、SPI 寄存器状态、SMM 输入验证）

两类问题不得混写在同一个章节中。

报告章节建议：
1. 项目概述
2. 分析方法与工具链
3. BIOS 基本信息（供应商、平台、CSME 版本等）
4. 固件解包统计
5. 微码版本审计
6. 已确认的安全问题
7. 待运行时检验的可能问题
8. 附加观察
9. Secure Boot 证书与 DBX 审计
10. CSME 及其他子固件安全审计
11. 关键安全模块列表
12. 输出文件清单
13. 结语

使用严重级别：HIGH（高危）、MEDIUM（中危）、LOW（低危）

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [MikeWuPing](https://github.com/MikeWuPing)
- **Source:** [MikeWuPing/bios-security-analysis](https://github.com/MikeWuPing/bios-security-analysis)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-mikewuping-bios-security-analysis-bios-security-analysis
- Seller: https://agentstack.voostack.com/s/mikewuping
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
