- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
固件漏洞挖掘技术与实例分析
郑庆棠
360企业安全代码安全实验室
提 纲
1. 固件概述
2. 挖掘流程
3. 案例分析
1. 固件概述
① 固件定义及组成
② 存在形式、架构及操作系统
固件定义及组成
定义
嵌入在硬件设备中一系列软件的组合
组成
Firmware-固件
Boot Others
Kernel FileSystem
Loader (其他,如
(内核) (文件系统)
(启动器) 用户应用等)
存在形式、架构及操作系统
存在形式
a) 网络设备:路由器、交换机、防火墙…
b) 监视设备:摄像头、视频录像机、闭路电视摄像头
c) 计算设备:服务器、个人PC
d) 工控设备:PLC
e) 其他设备:打印机、无人机、机顶盒、Smart TV…
架构
a) ARM、MIPS、PowerPC
b) x86、x86-64
操作系统
a) Linux(OpenWRT/FreeBSD/…)
b) VxWorks
c) …
2. 挖掘流程
固件获取
供应商官网
搜索引擎
Github
设备本身
a) 升级功能
b) 串口 或 调试接口(JTAG等)
c) SD卡/TF卡/硬盘等
固件形态
a) 完整固件
b) 升级文件
c) 混淆 or 加密文件
d) 虚拟化
文件系统提取
压缩 <- 减少固件大小
a) 归档/压缩: tar、cpio、gzip、zlib、lzma、xz…
b) 文件系统: squashfs、ubifs、cramfs、romfs、ext2/3/4fs、yaffs、jffs2…
提取
a) 自动提取
- binwalk + 众多工具/插件(解压缩工具 +相应文件系统提取工具)
- 简单快速,支持插件式扩展
- firmware-mod-kit
b) 手动提取
- 熟悉各种文件系统magic
静态检测
已有产品
/
面向用户
a) 供应商、企业、安全研究人员/机构
模拟仿真 -> 系统模拟
原始内核 + 根文件系统镜像 + 初始化镜像 + qemu
a) 普适性不强
qemu-static + 文件系统
a) 主要针对单个应用
特定内核镜像 + 自制根文件系统镜像 + qemu (firmadyne)
a) mips(2.6.32) & arm(3.10、4.1)
b) 自动化程度高
自制qemu镜像 + 文件系统
a) Debian系列
b) 自交叉编译系列
- buildroot +
文档评论(0)