[发明专利]一种跨架构固件堆内存的缺陷检测方法及系统有效
申请号: | 202010335247.4 | 申请日: | 2020-04-24 |
公开(公告)号: | CN111597109B | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 高健;许怡文;姜宇;罗冰;何跃鹰;张晓明;张嘉玮;孙中豪;曹可建;李建强;何清林;王庆;邢燕祯 | 申请(专利权)人: | 清华大学;国家计算机网络与信息安全管理中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/22;G06F11/26 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 杨云云 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 架构 固件堆 内存 缺陷 检测 方法 系统 | ||
本发明实施例提供一种跨架构固件堆内存的缺陷检测方法及系统。该方法包括:获取仿真器和固件中的应用程序,在仿真器中基于二进制翻译技术对应用程序进行解析,使得应用程序与预设测试环境系统架构进行适配;通过遍历执行注册堆内存读写钩子函数和堆内存分配钩子函数,映射生成影子内存,基于影子内存执行预设内存缺陷检测算法,得到堆内存缺陷检测结果。本发明实施例通过仿真执行模块的跨平台特性,免于将检测工具部署到固件所在设备中,极大克服了传统内存检测工具需要部署到设备中的不切实际需求,提高对固件测试的效率,解决IoT设备存储空间有限的问题,同时内存缺陷检测模块也为在跨架构固件场景下检测多种堆内存缺陷提供有效解决方案。
技术领域
本发明涉及缺陷检测技术领域,尤其涉及一种跨架构固件堆内存的缺陷检测方法及系统。
背景技术
随着物联网IoT设备数量飞速增长,到2020年底IoT设备数量预计可达99亿台。当今实施攻击的技术门槛越来越低,IoT终端设备成为新的攻击对象,路由器、摄像头、冰箱、扫地机器人、水表、智能路灯都会成为潜在的攻击目标。卡巴斯基IoT安全报告《New trendsin the world of IoT threats》指出,近年来捕获到的IoT恶意样本数量呈现爆炸式增长。据Gartner公司预测,2020年底各企业所察觉的超过25%的网络攻击涉及IoT设备。
缓冲区溢出等内存安全性缺陷一直是网络攻击中常常被利用的漏洞。根据美国国家计算机通用漏洞数据库(National Vulnerability Database,NVD)的统计,在过去三年内,已披露的漏洞中至少9.82%的漏洞和内存缺陷相关,包括缓冲区溢出、释放后使用(use-after-free,UAF)等。而单单在2019年Cisco设备中与内存相关的漏洞就有27项被收录在知名的漏洞信息披露库CVE Details中。如:CVE-2019-1663是一个影响Cisco公司多个低端设备的堆栈缓冲区内存缺陷,由于管理界面未对登录表单的“pwd”字段进行严格的过滤,底层在处理请求时,strcpy函数中出现堆栈溢出情况,使得未经身份验证的远程攻击者可以在设备上执行任意恶意代码。通过缓冲区溢出等内存安全性漏洞入侵设备连带的影响或许就是利用短短几天时间构建十万量级的IoT僵尸网络,引发Tb级的DoS攻击。
然而,现存相对有效的主流内存检测工具如Page Heap、Purify等存在不支持多处理器架构的问题。如Purify可以在Intel-IA32构架的Linux系统以及Windows上使用,但不支持IoT设备中常用的ARM构架。而对于多构架支持较好的Valgrind、Dr.Memory等内存检测工具能运作的前提必须是能成功装载在测试固件所在的运行环境中,但是对于已出产的固件设备,这种需求是难以满足的。例如,Valgrind工具包提供了多种检测程序安全性的工具,虽然支持某些版本的ARM、MIPS、X86、AMD64等构架,但这些安全检查工具必须要部署到目标设备上才能运行。在无法获得制作固件的源代码时,在源码上展示出良好性能的AddressSanitizer,基于编译时插装的内存安全检查工具也无法在IoT设备固件上发挥作用。即使某些基于二进制运行时插装的内存检查工具可以在固件运行的设备上安装,也会受制于IoT的存储空间小和计算处理能力弱的问题,检测效率低效,无法搭配模糊测试技术完成对大量测试输入的众多执行路径的堆内存安全性检查。
由此可见,针对IoT设备跨构架、低处理能力、低存储容量、设备生态封闭的特点,目前主流的内存安全检测工具在跨架构的固件检测背景下难以施展拳脚,受制于处理器架构支持不足、实施困难、实施后效率低的关键问题。
发明内容
本发明实施例提供一种跨架构固件堆内存的缺陷检测方法及系统,用以解决现有技术中跨架构固件内存缺陷检测方法存在的处理器架构支持不足、实施困难、实施后效率低等问题。
第一方面,本发明实施例提供一种跨架构固件堆内存的缺陷检测方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学;国家计算机网络与信息安全管理中心,未经清华大学;国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010335247.4/2.html,转载请声明来源钻瓜专利网。