A lot of security events are caused by software vulnerabilities, and the exploits are the main approaches to compromise the information systems. Vulnerability localization and diagnosis aim to locate the root causes of vulnerabilities, identify the context to trigger vulnerabilities, and confirm whether the vulnerabilities could be exploit or not, which are desirable to be automated and efficient as much as possible. To model the characters of exploit and the abnormal program behaviors caused by vulnerabilities are the chain challenges. At present, most of the attack detection techniques are based on the characters of attack manifestation, such as overwriting the return addresses, or overwriting the function pointers. However, Such detection techniques could only detect the attack manifestations, not the attacks. This research investigates algorithms and techniques to model the abnormal behaviors of exploits and diagnose the vulnerabilities. First, we aim to construct the exploit character model from the viewpoint of program language semantics, by catching the mechanism that exploits generally violate the program language semantics. Second, the vulnerability analysis on the binary is limited by the missing of data structures and types. For this research issue, we demonstrate that the format of program input has strong mapping relationships with the data structure of programs. Thus, we design the collaborative data structure reversing techniques to reverse the security-critical data structures which are used to store the input or may be corrupted by the input. Third, this research investigates techniques to automated locate the root causes of vulnerability and diagnose the context within which the vulnerability could be triggered, to identify the key steps of sophisticated exploit, and isolate the malicious code which is hidden in the exploit. At last, we construct the binary analysis platform through the fine-grained taint tracking for the vulnerability localization and diagnosis, and use the realistic vulnerable programs and the corresponding proof-of-concept expoit to evaluate our approaches. This research is expected to be valuable to improve the automation of vulnerability detection, and to be scientific significant for the software security testing, software protection, and so on.
软件漏洞是众多安全事件的源头。漏洞定位与诊断是漏洞挖掘中的难点问题,漏洞利用的异常建模及检测是解决该问题的关键挑战。针对当前漏洞利用特征不够底层、不适于对抗多样化和复杂化的攻击等问题,本课题跳出"以攻击特征为对象"的漏洞利用特征建模方式,从程序的语言语义角度,研究基于数据结构的漏洞利用特征和异常检测模型,阐述更为底层的漏洞利用机理,探索提升异常检测准确率的新途径;针对二进制程序缺失符号和类型、数据结构逆向推理的不精确等问题,揭示"程序输入的结构与代码数据结构之间的协同映射"这一规律,研究双向协同的数据结构逆向推理算法;针对复杂漏洞利用中多个攻击步骤的隐蔽性问题,研究基于数据结构异常检测的差分式漏洞定位方法、基于上下文回溯的漏洞诊断方法,最后以实例验证。本课题拟在漏洞利用特征及异常检测模型上取得突破,研究成果在自动化漏洞挖掘等方面具有极大应用价值,对安全测试、软件保护等具有重要的科学意义。
软件漏洞是众多安全事件的源头,而漏洞利用则是主要的攻击手段。在诸多的软件漏洞中,内存数据损坏(Memory Corruptions)漏洞占据了相当大部分的比例。考虑到漏洞存在的普遍性及漏洞的高危性,内存数据损坏漏洞的挖掘依然是信息安全领域的研究重点。本课题研究拟推动漏洞挖掘的有效性及自动化等方面的发展,具有非常重要的应用价值。. 数据结构损坏可作为一种较为底层的漏洞利用特征,对数据结构损坏的检测则可成为异常检测的主要思路。沿着这一思路,本课题首先针对当前二进制程序上的漏洞利用特征不够底层、不能应对多样化的漏洞利用手段等问题,从程序的语言语义角度,研究基于数据结构的漏洞利用特征及异常检测模型;提出上下文感知的软件缺陷失效分析方法成果发表在SCI期刊IJSEKE上;其次,针对二进制程序缺失数据结构这一问题,揭示“程序输入的结构与代码数据结构之间的协同映射”这一规律,建立程序输入与代码数据结构之间的映射模型,提出双向协同的数据结构逆向推理算法,成果发表在《China Communications》;再次,在漏洞利用特征模型和数据结构逆向推理算法的基础上,针对漏洞利用的隐蔽性问题,通过对比正常执行与漏洞利用的数据结构差异,研究基于数据结构异常检测的差分式漏洞定位与诊断方法,提出基于输入误用的软件漏洞利用检测及诊断方法,成果发表在COMPSAC 2015国际会议上;提出了针对复杂漏洞利用攻击的诊断方法,不仅能够检测攻击,还能够诊断出关键的攻击步骤,成果发表在《Journal of Systems and Software》上;最后,研究漏洞定位与诊断的二进制分析工具,设计并开发完成原型系统,并以具体的漏洞利用实例进行验证,同时,项目组积极推进成果转化,与华为技术有限公司就混合式模糊测试、安全测试及风险评估系统等展开产学研合作。. 在研究计划方面,本项目受资助以来,严格按照项目申请书中的研究计划进行,在保证基本研究任务的同时,又在相关领域进行了适当扩展。在成果形式上,共发表论文13篇,培养博士生3人,硕士生6人,提交一项专利申请,提交一项软件著作权申请,依托该项目成果及原型系统,与华为技术有限公司建立安全测试相关的产学研项目3项。
{{i.achievement_title}}
数据更新时间:2023-05-31
硬件木马:关键问题研究进展及新动向
栓接U肋钢箱梁考虑对接偏差的疲劳性能及改进方法研究
面向云工作流安全的任务调度方法
结核性胸膜炎分子及生化免疫学诊断研究进展
敏感性水利工程社会稳定风险演化SD模型
第一原理与启发式知识协同作用的定性诊断推理方法研究
基于漏洞数据集的漏洞特征库分析与预测方法研究
基于知识的机械设备诊断推理的理论与方法
基于协同设计的高速列车制动系统维护感知建模与嵌入诊断推理