Embodiments of the present disclosure disclose methods and devices for detecting vulnerabilities. One specific implementation of this method includes: identifying the function matching the dangerous function in the set of pre-stored dangerous functions from the target code as the function to be processed; determining the type of input variables of the function to be processed; and determining whether there are loopholes in the function to be processed according to the type determined. The implementation improves the flexibility of detecting vulnerabilities in code.
【技术实现步骤摘要】
用于检测漏洞的方法和装置
本公开的实施例涉及计算机
,具体涉及用于检测漏洞的方法和装置。
技术介绍
信息社会对软件的依赖不断增加,随着软件数量快速增长,软件存在的信息安全问题日益彰显,成为信息安全和用户隐私方面的重要隐患。目前,不论在商业软件还是开源软件中,软件的漏洞随处可见。随着软件数量以及软件漏洞的增加,采用人工方式检查软件中的代码是否存在漏洞已经不再现实。因此,相关技术中,存在自动对软件中的代码进行漏洞检测的需求。
技术实现思路
本公开的实施例提出了用于检测漏洞的方法和装置。第一方面,本公开的实施例提供了一种用于检测漏洞的方法,该方法包括:包括:从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数;确定待处理函数的输入变量的类型;根据所确定的类型,确定待处理函数是否存在漏洞。在一些实施例中,从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数,包括:对目标代码进行语法解析,得到目标代码的语法树(syntaxtree),其中,语法树包括至少一个子树,子树用于描述目标代码中的表达式;对于至少一个子树中的子树,响应于确定该子树所描述的表达式中包括函数,确定所包括的函数是否属于危险函数集合,响应于确定属于,将所包括的函数作为待处理函数。在一些实施例中,确定待处理函数的输入变量的类型,包括:确定预先确定的不可控变量集合中是否存在与输入变量相匹配的不可控变量;响应于确定不存在,确定输入变量的类型为第二类型,其中,第二类型用于表征变量可控。在一些实施例中,预先确定的不可控变量集合通过如下步骤确定:从根节 ...
【技术保护点】
1.一种用于检测漏洞的方法,包括:从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数;确定所述待处理函数的输入变量的类型;根据所确定的类型,确定所述待处理函数是否存在漏洞。
【技术特征摘要】
1.一种用于检测漏洞的方法,包括:从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数;确定所述待处理函数的输入变量的类型;根据所确定的类型,确定所述待处理函数是否存在漏洞。2.根据权利要求1所述的方法,其中,所述从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数,包括:对所述目标代码进行语法解析,得到所述目标代码的语法树,其中,所述语法树包括至少一个子树,子树用于描述所述目标代码中的表达式;对于所述至少一个子树中的子树,响应于确定该子树所描述的表达式中包括函数,确定所包括的函数是否属于所述危险函数集合,响应于确定属于,将所包括的函数作为待处理函数。3.根据权利要求2所述的方法,其中,所述确定所述待处理函数的输入变量的类型,包括:确定预先确定的不可控变量集合中是否存在与所述输入变量相匹配的不可控变量;响应于确定不存在,确定所述输入变量的类型为第二类型,其中,所述第二类型用于表征变量可控。4.根据权利要求3所述的方法,其中,所述预先确定的不可控变量集合通过如下步骤确定:从根节点至子节点方向遍历所述语法树,得到所述至少一个子树所描述的至少一个表达式中的变量集合;确定所述变量集合中的变量的类型,将类型为第一类型的变量确定为不可控变量,存入不可控变量集合,其中,所述第一类型用于表征变量不可控。5.根据权利要求3所述的方法,其中,所述根据所确定的类型,确定所述待处理函数是否存在漏洞,包括:响应于确定所述输入变量的类型为第二类型,确定所述待处理函数存在漏洞。6.根据权利要求1-5之一所述的方法,其中,所述方法还包括:响应于确定所述待处理函数存在漏洞,发出预先设定的、对应于所述待处理函数的报警信息。7.一种用于检测漏洞的装置,包括:函数确定单元,被配置成从目标代码中确定出与预先存储的危险函数集合中的危险函数相匹配的函数,作为待处理函数;类型确定单...
【专利技术属性】
技术研发人员:王诗雨,刘钟航,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。