按下电脑的电源键,你多半等着Windows系统桌面尽快跳出来,等待时间也从机械硬盘时代的几分钟,加快到SSD时代的几秒。但很多人没意识到:等你看到桌面的时候,电脑已经在好几个独立处理器上跑完了几百万条指令。计算机在各类控制器里运行了大量固件代码,完成了启动组件的加密签名校验、内存训练、设备初始化,把加载系统的准备工作全做好了。而这一切,都发生在操作系统正式启动之前。
这层看不见的预启动代码,正是电脑最容易出安全漏洞的环节。搞懂开机最初几秒发生了什么,既能帮你排查难缠的启动故障,也能让你更明白电脑内部到底是怎么运作的。顺带也能感受到,现在的计算机到底有多复杂。
整个启动的第一步:CPU里藏着微型子系统
主CPU还没“醒”过来的时候,电脑里就已经有代码在跑了。英特尔和AMD的处理器都自带独立的安全处理器,主板一通电它就启动,哪怕电脑处于关机状态也不停。我们先从英特尔的机制说起。
2008年之后生产的英特尔处理器,基本都搭载了英特尔管理引擎(Intel ME)。这是平台里一个完全独立的子系统,自带专属操作系统(固件11版本起采用MINIX3),能完整访问系统内存,甚至主系统宕机的时候,还能实现带外网络管理。
ME的权限能覆盖所有硬件:内存、存储、网卡无一例外。只要待机供电没断,它就一直以低功耗状态运行。这不是设计漏洞,也不是后门,但它出厂默认启用,普通用户很难彻底关停,业内一直担忧它存在被滥用的风险,甚至担心:ME已经形成了一套独立的计算环境,本质上剥夺了用户对电脑的控制权;而它的设计初衷,只是为企业提供远程管理、硬件级安全这类功能。
AMD的对应组件是平台安全处理器(PSP),2013年前后的AMD芯片就已搭载。在AMD平台上,一颗Arm Cortex-A5架构的PSP会先于x86核心启动,参与平台早期初始化与信任根校验。x86核心必须等PSP放行才能启动。主CPU还没执行半条指令,PSP就已经完成了固件的真实性校验。
这两类安全处理器是代码执行的第一层,在电脑本身的任何功能启动之前,它们就已经开始工作了。
固件的发展历程:从BIOS到UEFI
按下电源键,看着计算机像是在瞬间响应,但其实得等安全处理器放行,后面的步骤才会启动。这时候CPU才被唤醒,立刻去特定内存地址读取指令。在x86处理器上,这个地址是FFFFFFF0h,就在4GB地址空间下方16字节的位置。CPU从该地址取指,而这个地址通过芯片组映射到了固件区域,里面存放的就是系统固件。几十年来,系统固件的体量已经膨胀得非常夸张。
1981年初代IBM PC的BIOS仅占用8KB ROM空间,而现代UEFI固件最大可达32MB,体积翻了4000倍。原因在于,如今的固件要承担大量30多年前根本无法想象的工作。很多人包括计算机老用户都好奇BIOS和UEFI到底有什么区别。对普通用户来说,二者最终都能完成电脑启动,但底层的实现逻辑完全不一样。
过去十年买的“新”电脑,几乎都采用统一可扩展固件接口(UEFI),而非传统的基本输入输出系统(BIOS)。传统BIOS运行在16位模式下,仅能访问1MB内存;受主引导记录(MBR)限制,只能从2.2TB以下的硬盘启动,界面为纯文本,仅支持键盘操作。
而UEFI运行在32位或64位模式下,可访问全部系统内存;配合GPT分区表,理论上支持最大9.4ZB的硬盘启动。对于用户来说,最直观的不同是:它支持带鼠标操作的图形界面,可并行初始化硬件以缩短启动时间,还自带网络支持。
安全层面,UEFI最重要的升级是引入了安全启动(Secure Boot)机制:它会基于RSA证书校验启动组件的数字签名,校验通过才允许执行。这样就搭起了一条信任链,从固件到引导程序,再到操作系统内核,一环扣一环。尽管UEFI和BIOS都能完成电脑启动、管理底层设置,但二者的实现方式根本不是一个体系。
信任链的校验:流程比你想的复杂多了
计算机课上常说的电脑“过POST”,也就是Power-On Self-Test,指的是电脑完成了上电自检。绝大多数电脑的POST与初始化流程,都包含以下步骤,早期主板BIOS甚至会给你一一列出来:
·初始化CPU,加载微码补丁以修复处理器漏洞
·测试并配置内存,完成复杂的时序校准
·初始化存储控制器、USB接口、网卡和显卡
·运行诊断程序,验证硬件功能正常
·管理启动设备的选择与优先级
·开启安全启动时,校验启动组件的加密签名
·从扩展卡与外设加载附加固件
最后这一点特别重要:显卡、网卡、RAID卡等外设都自带嵌入式固件,称为可选ROM(Option ROM)。它们会在启动阶段运行,完成对应硬件的初始化,进一步扩充了操作系统启动前的执行代码量。
如今开启安全启动后,系统会对预启动环境中的UEFI引导程序、UEFI驱动强制执行签名校验。但总线上的所有固件并非都会按预期自动完成校验,尤其是第三方可选ROM,以及大量自行初始化的设备控制器。这也是可信平台模块(TPM)的重要性所在:这颗独立的安全芯片,用于实现度量启动。
具体来说,固件与早期启动组件会将哈希值记录到TPM的平台配置寄存器中,Windows的BitLocker这类工具就能通过这些度量值检测启动异常,进而触发恢复机制。
简单来说,一台Windows 11电脑的启动流程大致如下:
·安全处理器(ME/PSP)先校验固件合法性
·固件通过安全启动校验引导加载程序
·安全启动验证UEFI启动组件(Windows启动管理器winload)的签名;交接完成后,Windows自身的代码完整性机制会执行内核与驱动签名策略
·系统内核校验驱动与系统组件
理论上来说,这套流程能构建一条从硬件到软件完整的信任链。但实际情况是,网络大神们总能找到破解它的办法。
固件攻击一直存在,漏洞层出不穷
固件级恶意程序(常被称为启动木马bootkit),就算重装系统也删不掉,因为格式化硬盘碰不到固件区域。它还能躲开杀毒软件,毕竟安全工具都运行在系统层面,固件层级比系统更低。
之前提到英特尔ME管理引擎存在安全隐患,原因也在这里:ME运行于操作系统之下的硬件底层,拥有远超 Windows系统内核的硬件管控权限。只要恶意代码驻留在这一层,常规杀毒软件根本察觉不到,完全没法查杀。更致命的是,它是电脑最早启动的程序之一,系统还没加载,它就已经开始运行,能全程监控、记录电脑后续的所有操作和系统行为。清除固件恶意程序唯一相对可靠的办法,是重刷固件本身,前提是恶意程序没有驻留在外接设备中。说白了,在一些保密级高的要害部门,要是电脑主板中了固件病毒,直接换块新主板反而更稳妥。
这些年出现过不少UEFI启动恶意程序,最知名的当数Black Lotus(可以翻译为黑莲花),2022年在黑客市场流出,一套工具售价5000美元,专门针对开启安全启动的Windows 10/11电脑,也是首个被实锤、能绕过整套安全启动校验的商用恶意程序。它正是利用了安全启动生态的漏洞与证书吊销机制的缺陷发动攻击。
仅过去一年,就又曝出了不少新问题,比如2025年12月,拳头游戏发现多起启动早期直接内存访问(DMA)攻击漏洞(CVE-2025-14304、CVE-2025-11901、CVE-2025-14302、CVE-2025-14303),涉及华擎、华硕、技嘉、微星四大品牌主板。由于固件错误地报告DMA保护已启用(实际并未生效),攻击者只要能物理接触设备,就能通过PCIe设备注入恶意代码。
UEFI的另一个隐患,是用于校验自身完整性的板载证书需要更新。大量旧设备使用的微软UEFI CA2011证书都在今年6月到期。尽管多数UEFI实现都关闭了证书日期校验,但微软已明确表示:开启安全启动的设备,必须更新安全启动证书,才能继续运行Windows并接收常规更新。
按下电源键后的最初几秒,发生的事情对绝大多数人来说都是隐形的。但一旦有人利用固件漏洞绕过安全启动,后果会非常严重。比起恶意程序在你全盘格式化、重装系统后依然存活的情况,更麻烦的是,你根本察觉不到它的存在,反正杀毒软件肯定查不出来。
对普通用户来说,需要做的事很简单:保持系统更新,开着安全启动,主板BIOS更新发布后及时安装。
热门跟贴