随着软件系统规模及复杂度与日俱增,即便经过前期严格的源码审计和测试,成品二进制软件中仍然存在无法回避的大量软件缺陷,严重威胁系统安全。直接面向最终二进制软件进行跨语言边界、跨组件的深度缺陷发掘,能够更有效找出软件中更隐蔽、更深层次的缺陷。然而,已有二进制软件测试与缺陷发掘方法尚无法满足高效、全面、低误报、跨指令集(ISA)平台等缺陷发掘需求。本课题重点研究在无需源码情况下,如何直接对大型二进制软件进行动态自动化测试,全面发掘其中缺陷。以建立高效、精确、全面且具有ISA重定向能力的基于动态测试用例生成的缺陷发掘系统为目的,在程序分支路径动态覆盖技术、基于虚拟化的精确数据追踪与调试技术、完备的路径可达约束收集及其自动化判定理论、缺陷发掘的性能优化技术以及发现缺陷后的自动确认与分类技术等方面进行了深入的研究。最终,形成一套高效、自动、全面、低误报的二进制软件缺陷发掘系统及其相关理论。
本项目面向二进制软件预发布测试,按照计划完成了全部研究工作,并对研究内容进行了扩展。针对二进制软件跨语言、跨组件进行缺陷发掘困难的问题,研究了基于动态测试用例生成的二进制软件缺陷自动发掘技术。项目首先重点研究了面向二进制程序分析的 虚拟运行环境仿真技术,设计并实现了一套基于虚拟机机制的新型软件动态控制框架与分 析方法,采用面向领域脚本语言(DSL)方式,构建了相应的动态执行控制模型与动态数 据捕捉模型,大大降低了动态程序分析难度,加快了分析速度。基于该虚拟动态控制框架 与分析方法,展开了对程序动态行为分析与精确动态测试用例生成的相关技术研究。之后, 基于已有元指令设计经验,针对现有元指令设计无法有效支撑符号化条件约束优化的问题, 引入了多种新型位向量操作,提出并设计了面向符号化约束优化的新型元指令体系结构。 同时,针对目前元指令映射粒度不细的问题,提出了体系结构级元指令映射方法与模型, 该方法将指令动作与 CPU 具体体系结构实现相关联,使得动态测试用例生成过程,可以有 效发现指令执行内部的如 CPU 保护异常等更细粒度的软件缺陷。提出完备的路径约束判定 理论,在该理论指导下,通过突破全局平面内存模型的信息保存与获取技术与精确符号化 指针范围分析技术,结合完备路径可达约束分析,使得动态测试用例对路径探索过程中的 指针缺陷发掘效率大幅提高。由于目前实际软件均为多线程程序,软件缺陷确认与定位容 易因多线程异步执行导致指令流乱序,缺陷点难以定位。项目引入确定性并行技术,提出 了多个优化技术,使得在对系统效率影响不大的情况下,保证了动态执行过程与确定缺陷 回放,从而稳定定位缺陷。. 项目研究期间,发表学术论文 41 篇,其中 SCI 检索 10 篇,EI 检索 26 篇,其中在 PPoPP 等顶级会议发表的相关研究,在国际学术领域引起关注;相关研究获军队科技进步一等奖 1 项;已公示专利 4 项;培养毕业博士生 2 人硕士 3 人。项目相关技术发掘最新的 UltraVNC 客户端软件缺陷多处,已提交相关部门。本项目提出的基于动态测试用例生成的二进制软 件缺陷自动发掘技术,大大提高了软件动态自动化缺陷发掘的精确度与效率,形成一套高 效、自动、全面、低误报的二进制软件缺陷发掘系统及其相关理论,对我国信息系统安全 防御、测试与缺陷发现有重大意义。
{{i.achievement_title}}
数据更新时间:2023-05-31
涡度相关技术及其在陆地生态系统通量研究中的应用
内点最大化与冗余点控制的小型无人机遥感图像配准
F_q上一类周期为2p~2的四元广义分圆序列的线性复杂度
惯性约束聚变内爆中基于多块结构网格的高效辐射扩散并行算法
Himawari-8/AHI红外光谱资料降水信号识别与反演初步应用研究
基于模型的测试用例优化生成与自动执行
基于模型检验的测试用例生成方法研究
面向实时通信协议的结构化测试用例自动生成方法研究
组合测试用例的生成及演化技术