固件安全评估,英文名称 firmware security testing methodology 简称 FSTM。该指导方法主要是为了安全研究人员、软件开发人员、顾问、爱好者和信息安全专业人员进行固件安全评估。
我们基于 FSTM 进行测试流程如下:
id |
阶段 |
描述 |
1 |
信息收集 |
固件的相关技术文档的详细使用说明 |
2 |
获取固件 |
使用本文中介绍的多种办法获取固件 |
3 |
分析固件 |
固件的功能、特性 |
4 |
提取文件系统 |
从固件中获取文件系统 |
5 |
分析文件系统内容 |
静态分析提取的文件系统的配置文件和二进制文件中的漏洞 |
6 |
仿真固件 |
模拟固件文件和组件 |
7 |
动态分析 |
根据固件和应用程序接口进行动态测试 |
8 |
运行时分析 |
在设备运行时分析编译的二进制文件 |
9 |
二进制利用 |
利用上述手段发现的漏洞实现命令执行 |
0x01:信息搜集
可搜集与固件相关如下基础信息:
- 基于的CPU架构
- 操作系统平台
- 引导程序配置
- 硬件原理图
- 数据表
- 代码行估计
- 源代码存储库位置
- 第三方组建
- 开源许可证(GPL)
- 变更日志
- FCC ID
- 设计和数据流程图
- 威胁建模
- 渗透测试报告之类
- 一些测试平台的测试(Jira、错误赏金平台 bugcrowd 或 hackerone )
搜集方法:
- 利用开发团队及其内部产品线获取准确和最新的数据,及其项目设计原理和应用的安全设置,进而判断出与安全风险有关的信息和某些特定功能点。
- 开源情报(
OSINT:Open source intelligence)技术手段来获取数据
在搜集信息中遇到开源软件的处理方式:
- 下载开源软件存储库,并根据代码库执行手动和自动静态分析
-
开源软件有其自身的静态分析工具 ,Example:
- Coverity 对 Das U-Boot进行的分析
- semmle的LGTM对Dropbear的分析:
获取如上信息后便可进行粗略的威胁建模:标识出可攻击功能点和影响范围,方便测试时进行漏洞点的贯穿使用。