预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

二进制程序的动态符号化污点分析的中期报告 动态符号化污点分析(DynamicSymbolicTaintAnalysis),简称DSTA,是一种常用的二进制程序分析技术,能够检测程序运行时的数据流向与污点传播,进而发现程序中隐藏的安全漏洞。本报告为DSTA在实际应用中的中期报告,介绍了DSTA的基本原理、研究现状以及我们研究中的进展。 一、DSTA基本原理 DSTA基于符号执行(SymbolicExecution)和污点分析(TaintAnalysis)技术,它能够在执行二进制程序时跟踪指定的输入数据(即污点),并记录这些污点的传播情况,通过分析污点的传播路径,找出可能存在的漏洞。DSTA的过程可以简单地分为以下几个步骤: 1.对程序进行符号执行,生成符号执行树,即所有可能的执行路径。 2.标记程序中的污点,即指定输入数据作为污点,并跟踪其传播路径。 3.根据污点传播路径,分析程序中的漏洞。 DSTA的优点在于能够检测二进制程序中的隐藏漏洞,增强程序的安全性。 二、DSTA的研究现状 近年来,国内外学者对DSTA技术进行了广泛研究,提出了许多针对不同类型漏洞的DSTA方法。具体来说,常见的DSTA方法包括:符号执行和污点分析结合的方法、基于模型检测的方法、基于统计分析的方法等。 虽然DSTA技术在二进制程序分析领域占据重要地位,但是在实际使用中,DSTA仍然面临一些挑战。比如: 1.多线程程序的DSTA难度较大。因为多线程程序中存在数据共享,容易引起破坏。 2.大规模程序的DSTA速度较慢。如果程序体量很大,DSTA的执行时间会很长,降低分析的效率。 3.DSTA无法应对一些特定的漏洞类型。比如直接内存访问漏洞(DirectMemoryAccessVulnerability)等。 三、研究进展 针对上述问题,我们研究中正在进行以下试验: 1.针对多线程程序,我们正在考虑使用并发模型对程序进行建模,并在此基础上进行DSTA。 2.针对大规模程序,我们正在研究如何在分布式计算环境下进行DSTA,以加快程序分析速度。 3.针对一些特定漏洞,我们正在开发适配特殊漏洞的DSTA工具,以提高漏洞检测的准确率。 目前,我们已经初步实现了并发模型下的DSTA,并且正在进行性能测试,计划于近期开展分布式计算的DSTA试验。 四、总结 DSTA是一种常用的二进制程序分析技术,具有检测隐藏漏洞的优点。在实际应用中,DSTA面临一些挑战,但通过不断优化算法和工具,可以提高DSTA的效率和准确率。在未来的研究中,我们将继续深入挖掘DSTA的潜力,为二进制程序分析领域做出更大的贡献。