Automated Dynamic Firmware Analysis at Scale: A Case Study on Embedded Web Interfaces

In Proceedings of the 11th ACM Asia Conference on Computer and Communications Security (ASIACCS), June 2016.

介绍

嵌入式设备的web接口用于用户交互和管理,也暴露了一个攻击面

本文开发了一款自动化动态固件分析框架挖掘web层漏洞,全系统模拟,仅软件相关的环境,无需任何物理设备,动态+静态分析方法

静态分析局限:web页面多种技术 php/cgi/html/jsp等,误报率高

动态分析局限:服务端语言支持较差,需要执行环境,不适用于复杂的IOT系统

可扩展动态分析:需要真实物理设备,成本高;运行环境依赖性

模拟固件方法:硬件、内存等环境要求;手工配置,可扩展性差

研究的固件都是基于Linux系统,这些设备交互来自kernel,web层接口间接或不与硬件交互

静态分析

优点:可扩展 易自动化

缺点:误报、漏报高 IOT语言支持差

动态分析

优点:服务端无关,确认静态漏洞

缺点:需要运行环境,漏洞检测模块等

运行web接口

1、非原生web接口系统搭建

简单部署、容易自动化和扩展

平台依赖和CGI型固件支持性差,甚至自定义web server和版本

2、固件和web接口模拟

读取固件架构  多种架构情况(upgrade时选择某种架构)

方法:读取ELF文件头;统计操作分布

分析框架细节

A、固件选择

1)Linux系统

2)web服务文件(httpd,lighttpd)、配置文件(boa.conf,lighttpd.conf)

3)client server脚本文件(html/javascript/php/perl)

B、文件系统预处理

查找root文件系统 —  搜索关键目录(/bin/,/sbin/,/etc/)

    关键文件(/init,/bin/sh,)

1)固件解包

2) web server探索

配置文件,启动命令,文件路径,站点地图

C、分析 动态+静态

D、结果分析

动态+静态结果输出,log分析

1)文件系统变化

模拟前、模拟后、动态分析后 diff 文件区别 — log文件、新创建文件等

2)抓取交互信息

input output交互信息

E、结果攻击验证

编写poc进行exp,自动化攻击模块(future),手动验证等

局限性

1、仅限网上公开的固件

2、仅限基于Linux的固件

3、只支持arm/mips/mipsel架构

4、新版本固件漏洞可能已经修补

实验结果

1925固件、54厂商 — 246满足模拟条件(web server/chroot) — 45固件存在漏洞

future work

支持更多固件镜像,更精确更深入的动态分析

总结:

本文主要针对IOT设备的Web层进行漏洞检测,对网络公开的固件进行解压和过滤,提取存在web server和chroot文件系统的固件系统,使用已有工具进行静态和动态分析,设计了一款可扩展和自动化的动态固件分析框架,并发现了数量可观的web漏洞。

难点在于需要部署模拟执行环境,适应IOT固件的复杂性。

您可能还喜欢...