Avatar: A Framework to Support Dynamic Security Analysis of Embedded Systems’ Firmwares

DOI:10.14722/ndss.2014.23229

21th Network and Distributed System Security Symposium (NDSS), San Diego (USA), February 2014 (acceptance rate: 18.6%)

简介

解决源码和硬件文档缺失情况下的固件分析,动态污点和符号执行这种动态分析需要有针对每种固件的精准的执行环境,这是相当困难的。

本文开发了Avatar框架,在真实硬件和模拟器之间构建执行环境,执行复杂的动态分析,通过硬件设备与模拟器之间的IO接口访问机制,描述几种关键技术,在两种环境中动态优化代码和数据的分布来提高系统性能。应用在三种不同的安全场景,包括逆向分析、漏洞挖掘、后门探测,并在三种不同设备中使用Avatar进行实际分析。

几个贡献

在物理设备与外部模拟器之间架构一个软件代理Avatar,可以执行模拟器中的固件指令,来对物理设备进行IO操作

1、Avatar,动态分析框架,可以模拟固件执行

2、满足用户需求,优化性能的几个技术

3、在不同设备中测试三种安全应用场景 逆向工程、漏洞发现、后门检测

动态固件分析

三种常用的方法

1、完整的硬件模拟

可模拟已知标准固件,对未知的嵌入式系统支持性差

通常用于固件开发团队,外部测试难以进行污点分析和符号执行等安全测试

2、硬件相似性

容易出现误报和误操作,适用于几百行代码的小型系统

3、固件改写

特定固件系统(如基于Linux)的可以,难以进行整体分析和针对具体某设备的分析

结论

开发了Avatar框架,用于嵌入式设备软件的动态分析。通过对实际设备的内存访问创建一个友好的模拟分析环境,可运行固件代码进行分析,尤其是对于未知的设备。

Avatar在真实的测试时表现优异,可扩展性好。成功在三种不同场景应用,逆向工程、漏洞发现和后门探测。

未来会添加更好的分析技术提高bug探测率,比如增加Howard恢复内存结构和AEG模块等。提高启发式状态探测和提高对错误倾向代码分析的覆盖率。

在ARM架构测试OK,可支持X86目标,扩展到QEMU支持的MIPS和PowerPC架构,以便支持更多设备。

您可能还喜欢...