Towards Automated Dynamic Analysis for Linux-based Embedded Firmware

NDSS ’16, 21-24 February 2016, San Diego, CA, USA

Copyright 2016 Internet Society, ISBN 1-891562-41-X

http://dx.doi.org/10.14722/ndss.2016.23415

FIRMADYNE

https://github.com/firmadyne/firmadyne

基于Linux系统的网络物联网设备自动化可扩展动态分析系统

1、网络爬虫

从ftp和web站点爬取固件镜像,设置爬取规则,比如文件扩展名白名单(img/chk/bin/stk/zip/tar/sys/rar/pkg/rmt等),过滤掉升级包和无用的包等

2、提取解压

读取ELF头,确定架构和文件类型,使用binwalk API解压,注意设置的黑名单(PE32 windows/ELF Linux/ binaries Mactosh等),使用第三方工具库如jefferson/sasquatch提取JFFS32/SquashFS文件类型,以及结合其他工具jffsdump/unsquashfs/bat/firmware-mod-kit等

3、模拟执行

主要关注的几种架构类型 — MIPS(大端序、小端序) ARM(小端序)

模拟工具QEMU

4、自动分析

1)web页面

提取web server页面,过滤掉静态文件(png/css/js等),注意Response状态码2xx,过滤4xx和5xx等,用户认证过程和方式–客户端cookie、server ip、账号登录等

2)snmp信息

使用snmpwalk工具进行SNMP协议分析,注意OIDs等敏感信息

3)漏洞检测

使用Metasploit框架的POC和EXP进行漏洞检测

4)额外功能

调试和攻击模块,代码执行动态跟踪功能,可以结合IDA Pro

结果

在固件样本中发现了14个未知的漏洞,使用metasploit中的60个poc进行检测

漏洞类型 — 命令注入、缓冲区溢出、信息泄露、 CVE-2014-0659 (配置信息读取和任意代码执行)、CVE-2013-0229(DOS)、CVE-2014-0224(openssl ChangeCipherSpec 导致mitm攻击)

总结

此工具整合了爬虫、提取、模拟和漏洞检测模块,可以有效检测出固件中的漏洞

受限于支持的固件类型,固件架构和漏洞检测EXP数量

未来可以扩展至RTOS(实时操作系统)系统如VxWorks中,固件提取时加入统计分析技术,处理混淆和加密的固件类型等。

您可能还喜欢...