本技术涉及数据处理技术领域,提供了一种程序安全分析技术,包括获取待分析程序的实体和漏洞描述数据,旨在增强程序安全性。
背景技术
程序实体(简称实体)是指程序使用的数据或内容,包括变量、函数、对象、类、模块(module)、包(package)和命名空间(namespace)等。在程序分析和验证领域,一个被分析或被验证的程序经常会用到在它外部定义的程序实体,如何精确而简洁地描述它们,是该领域必须要解决的一个挑战。此外,程序实体被该程序的编程语言所定义,编程语言没有描述实体安全特征的方法,如何把这些安全特征简洁而精确地描述出来也是必须要解决的问题。
目前,一种广泛应用的方法是直接用编写被分析程序的语言(简称原语言)编写有关实体的替代代码。譬如对print库函数,可以把它的替代代码写成空语句,这样,程序分析或验证工具(简称分析器)在处理它时,就可以简单地对它做空语句处理,从而让分析或验证进行下去而不影响对所关注特征的处理。但是,该方法使用被分析程序的原语言只能描述原语言内部的实体,不能描述实体的安全特征以及实体与外部环境之间的关系,使得影响程序分析或验证的准确度。
实现思路