文章链接

撰文:阿法兔

本文是笔者最近关于基础安全领域的人、趋势、现象的观察,把系列思考总结成为了文章,试图从几个角度,探讨一个国内相对较少有人探讨的赛道——固件安全市场和需求变化的方向,文末也写了过去几年我关于风险投资、行业新动向的一些观察和想法。当然,也欢迎读者朋友们一同进行探讨:)

一、前提知识

先明确几个知识点的具体意思:

固件安全中固件的定义:

我们这里主要指基于通用计算机上的固件,例如服务器、笔记本和台式机上运行的固件,例如 UEFI/BIOS/Coreboot。

UEFI/BIOS/Coreboot 都是些啥?

UEFI 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,UEFI 是一种新的主板引导初始化的标注设置。

BIOS 是英文「Basic Input Output System」的缩略词,直译过来后中文名称就是「基本输入输出系统」。在 IBM PC 兼容系统上,是一种业界标准的固件接口,BIOS 是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个 ROM 芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从 CMOS 中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS 还向作业系统提供一些系统参数。系统硬件的变化是由 BIOS 隐藏,程序使用 BIOS 功能而不是直接控制硬件。现代作业系统会忽略 BIOS 提供的抽象层并直接控制硬件组件。

Coreboot 是一个开源软件项目,旨在替换大多数计算机中专有的 BIOS(固件)。coreboot 会执行一些硬件初始化,然后执行其他引导逻辑。通过分离硬件初始化和以后的启动逻辑,coreboot 可以从直接运行固件,在闪存中运行操作系统,加载自定义引导程序或实现固件标准(例如 PC BIOS 服务或 UEFI)的专用应用程序扩展。这使系统仅包含目标应用程序中必需的功能,从而减少了所需的代码量和闪存空间。

这些固件和计算机关系何在?

  1. 首先他们都被储存在硬件的 Flash ROM 里
  2. 硬件上电点亮
  3. 三者开始初始化硬件
  4. 在内存初始化结束后,
  5. BIOS 自己运行(每个主板厂商开发自己的,很累)
  6. UEFI 自己运行(但主板厂商很舒服,标准统一)