AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Bios Security Analysis

skill-mikewuping-bios-security-analysis-bios-security-analysis · by MikeWuPing

|

No reviews yet
0 installs
21 views
0.0% view→install

Install

$ agentstack add skill-mikewuping-bios-security-analysis-bios-security-analysis

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mikewuping-bios-security-analysis-bios-security-analysis)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Bios Security Analysis? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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 的方法:

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 AptioAMITSESetupAmiWrapperSetupAmiBoardInfo —— 消费级主板最常见
  • InsydeH2O:多见于笔记本
  • Phoenix SecureCore:企业级

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

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

4. 固件卷 (FV) 枚举

使用 uefi_firmware 库:

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 开头):

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 模块:

# 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 锁定:PiSmmCpuDxeSmmSmmAccessSmmControl
  • BIOS Guard:BiosGuardServices → 硬件级别的 SPI 闪存保护
  • HSTI:HstiIhvSmm → 硬件安全测试接口
  • SPI 保护:FlashDriverSmmSpiSmmSpiSmmStub

仅可通过运行时验证的检查项(静态分析无法验证):

  • HSFS.FLOCKDN 寄存器状态
  • BIOSCNTL.BIOSWE、BIOSCNTL.BLE
  • SMRR 配置
  • SMM 通信缓冲区输入验证

10. CSM/遗留启动检测

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

关键 CSM 模块CsmDxeCsmVideoCsmBlockIoLegacyRegionDxeAmiLegacyInterruptTcgLegacy

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

11. 安全关键词搜索分类

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

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 包:

pip install uefi_firmware

uefi_firmware 提供:FirmwareVolumeFirmwareFileFirmwareFileSystemCompressedSectionEFI_FILE_TYPESEFI_SECTION_TYPESsearch_firmware_volumessguidLzmaDecompressTianoDecompressEfiDecompress

使用的 Python 内置模块:structlzmazlibrehashlibdatetime

输出目录组织

始终创建以下目录:

  • 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.

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

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.