ImageVerifierCode 换一换
格式:PDF , 页数:15 ,大小:2.15MB ,
资源ID:2253525      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/2253525.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于控制流和数据流分析的内存拷贝类函数识别技术_尹小康.pdf)为本站会员(哎呦****中)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

基于控制流和数据流分析的内存拷贝类函数识别技术_尹小康.pdf

1、基于控制流和数据流分析的内存拷贝类函数识别技术尹小康芦斌蔡瑞杰朱肖雅杨启超刘胜利(数学工程与先进计算国家重点实验室(信息工程大学)郑州450001)()Memory Copy Function Identification Technique with Control Flow and Data FlowAnalysisYinXiaokang,LuBin,CaiRuijie,ZhuXiaoya,YangQichao,andLiuShengli(State Key Laboratory of Mathematical Engineering and Advanced Computing(Info

2、rmation Engineering University),Zhengzhou,450001)AbstractMemoryerrorvulnerabilityisstilloneofthemostwidelyusedandharmfulvulnerabilitiesincurrentcyber-attacks,whosetimelydiscoveryandrepairinbinaryprogramsbeargreatvalueinpreventingcyber-attacks.Memoryerror vulnerabilities are often associated with the

3、 misuse of memory copy functions.However,the currentidentificationtechniquesofmemorycopyfunctionsmainlyrelyonthematchingofsymboltablesandcodefeaturepattern,which have high false positive and false negative rates and poor applicability,and there are still manyproblemstobesolved.Toaddresstheaboveprobl

4、ems,weproposeamemorycopyfunctionidentificationtechnologyCPYFinder,basedonthecontrolflowofmemorycopyfunctions.CPYFinderliftsthebinarycodeintotheVEXIR(IntermediateRepresentation)codetoconstructandanalyzethedataflow,andidentifiesbinarycodeaccordingtothepatternofthememorycopyfunctiononthedataflow.Thisme

5、thodcanidentifythememorycopyfunctionsinstrippedbinaryexecutablesofvariousinstructionsetarchitectures(i.e.x86,ARM,MIPSandPowerPC)inashortruntime.ExperimentalresultsshowthatCPYFinderhasbetterperformanceinidentifyingmemorycopyfunctionsinClibraries and user-defined implementations.Compared with the stat

6、e-of-the-art works BootStomp and SaTC,CPYFindergetsabetterbalancebetweenprecisionandrecall,andhasequaltimeconsumptioncomparedwithSaTCand its runtime only amounts to 19%of BootStomp.In addition,CPYFinder also has better performance invulnerabilityfunctionidentification.Key words static analysis;data

7、flow analysis;intermediate representation;memory copy function;functionidentification摘要内存错误漏洞仍是当前网络攻击中造成危害最严重的漏洞之一.内存错误漏洞的产生往往与对内存拷贝类函数的误用有关.目前针对内存拷贝类函数的识别主要借助于符号表和代码特征模式匹配,具有较高的误报率和漏报率,并且适用性较差.提出了一种内存拷贝类函数识别技术 CPYFinder(copyfunctionfinder).该技术在内存拷贝类函数控制流特征的基础上,将二进制代码转换为中间语言表示 VEXIR(intermediaterepr

8、esentation)进行数据流的构建和分析,根据内存拷贝类函数在数据流上的特征进行识别.该技术能够在较低的运行时间下对多种指令集架构(x86,ARM,MIPS,PowerPC)的二进制程序中的内存拷贝类函数进行识别.实验结果表明,相比于最新的工作 BootStomp 和 SaTC,CPYFinder 在对内存拷收稿日期:20211011;修回日期:20220210基金项目:科技委基础加强重点项目(2019-JCJQ-ZD-113)ThisworkwassupportedbytheFoundationStrengtheningKeyProjectofScience&TechnologyComm

9、ission(2019-JCJQ-ZD-113).通信作者:刘胜利(mr_)计 算 机 研 究 与 发 展DOI:10.7544/issn1000-1239.202110990JournalofComputerResearchandDevelopment60(2):326340,2023贝类函数识别上具有更好的表现,在精准率和召回率上得到更好的平衡,并且运行时间与 SaTC 几乎相等,仅相当于 BootStomp 耗时的 19%.此外,CPYFinder 在漏洞函数识别上也具有更好的表现.关键词静态分析;数据流分析;中间表示;内存拷贝函数;函数识别中图法分类号TP309利用漏洞发起网络攻击仍是

10、当前网络攻击中的主要方式.漏洞攻击能够使目标设备瘫痪、实现对目标设备的突破控制,或者对重要文件的窃取.在利用漏洞发起的攻击中,危害性最高的漏洞之一为内存错误漏洞.内存错误漏洞包括内存溢出漏洞、内存泄漏漏洞和内存释放后重用漏洞等,这些漏洞能够实现任意代码执行,造成密钥、口令等信息的泄露.在通 用 漏 洞 披 露 组 织(Common Vulnerabilities andExposures,CVE)发布的 2021 年最危险的 25 种软件脆弱性分析1中,CWE-7872即越界写(out-of-boundswrite,OOBW)排 在 了 第 1 位,CWE-1253即 越 界 读(out-of

11、-bounds read,OOBR)排 在 第 3 位 以 及 CWE-1194即不当的内存缓冲区范围内的操作限制排在第 17 位.内存溢出漏洞和内存泄漏漏洞的发生常常跟内存的拷贝相关,在进行内存拷贝的时候缺少对长度的检查,或者对特殊的字节进行转换时发生长度的变化,都会导致对内存的越界写或者越界读5.因此内存拷贝类函数(下文简称拷贝类函数)的识别对内存错误漏洞的发现和修补具有重大意义和价值.本文提出了一种拷贝类函数识别技术 CPYFinder(copyfunctionfinder).该技术在不依赖函数名、符号表等信息的情况下,对函数的控制流进行分析,并将二进制代码转换成中间语言代码进行数据流的

12、分析,识别二进制程序中的拷贝类函数.本文的主要贡献包括 4 个方面:1)分析了不同架构下拷贝类函数的特点,构建了基于静态的分析方法的拷贝类函数识别模型.2)提出并实现了二进制程序中拷贝类函数识别技术 CPYFinder,该方法不依赖函数名、符号表等信息,能够识别无论是 C 语言库中还是用户自定义实现的拷贝类函数.3)提出的 CPYFinder 具有良好的适用性和扩展性,通过将二进制代码转换成中间语言代码进行数据流的分析,使得支持 x86,ARM,MIPS,PowerPC 指令集架构的二进制程序.4)从 GitHub 上收集了拷贝类函数,构建了测试数据集进行测试,并选取了真实的 CVE 漏洞函数

13、进行了测试.实验结果表明 CPYFinder 具有更好的表现,在精准率和召回率上得到更好的平衡,并且具有较低的运行时耗.CPYFinder 对提高下游分析任务具有重大价值.1相关工作拷贝类函数的识别对二进制程序中内存错误漏洞的发现和修补具有重大意义和价值.由于版权或者安全的需要,软件供应商在程序发布的时候往往是以二进制的形式进行发行,甚至会剥除程序中的函数名、符号表等信息.因此安全研究员只能在缺少源码的情况下对二进制程序进行分析,进而发现程序中的脆弱点并提供给供应商进行漏洞的修补.相比于对源代码的分析6,由于二进制代码中丢失了高级语言具有的信息,例如 C/C+中的函数原型、变量名、数据结构等信

14、息,因此对二进制程序进行分析具有更大的挑战.针对二进制程序的分析技术主要有二进制代码审计7、污点分析8-9、符号执行10-11等,这些技术在漏洞发现和分析中具有较好的效果.然而这些技术在一定程度上依赖函数名、符号表等信息,例如 Mouzarani 等人12在提出的基于混合符号执行的模糊测试技术中仍需要借助符号表对 memcpy,strcpy等函数的识别.DTaint13和 SaTC14等在进行静态污点分析中需要借助函数名,例如 memcpy,strncpy 等函数,来定位关键函数,进而进行后续的污点记录和传播等操作.当二进制程序剥除了函数名等信息时,上述技术的效果将会受到严重影响.此外,当前的

15、研究中还存在一个被忽视的问题:开发者在开发程序时会自定义实现类似于内存拷贝功能的函数,进而会引入内存错误漏洞.例如,漏洞CVE-2020-842315发 生 在 一 个 TP-Link TL-WR841NV10 路由器设备中,由函数 int stringModify(char*dst,size_t size,char*src)引 发 的 栈 溢 出 漏 洞.尽 管BootStomp8,Karonte9,SaTC14考虑到了对拷贝类函数的识别,但是它们的识别方法依据简单的代码特征:1)从内存中加载数据;2)存储数据到内存中;3)增加 1 个单元(字节 byte、字 word 等)的偏移值.然而满

16、足上述 3 个特征的函数并不一定具有拷贝数据的尹小康等:基于控制流和数据流分析的内存拷贝类函数识别技术327功能,而且会遗漏用户自定义实现的拷贝类函数,因此具有较高的误报率和漏报率.当前针对剥除函数名等信息的二进制程序中的函数识别技术,主要是以静态签名的方法为主,例如IDAPro 中 使 用 库 函 数 快 速 识 别 技 术(fastlibraryidentificationandrecognitiontechnology,FLIRT)16,工具 Radare217使用 Zsignature 技术对程序中的函数名进行识别,此类方法能够识别出签名库中包含已经签名的函数,例如 strcpy,memcpy 等函数.然而基于签名的函数识别技术容易受编译器类型(GCC,ICC,Clang 等)、编译器版本(v5.4.0,v9.2.0 等)、优化等级(O0O3)以及目标程序的架构(x86,ARM,MIPS 等)的影响.而且,每种优化等级又可以分为数十种优化选项18(在 GCCv7.5.0 中 O0 开启了 58 种优化选项,O1 开启了 92 种优化选项,O2 开启了 130 种优化选项,O3

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2