[发明专利]一种应用程序安全检测方法、装置、电子设备和存储介质有效
申请号: | 202110287918.9 | 申请日: | 2021-03-17 |
公开(公告)号: | CN113010891B | 公开(公告)日: | 2023-02-07 |
发明(设计)人: | 李昊峰;孟海宁;郑恒杰;曹立庆;陆杰;李炼;高琳 | 申请(专利权)人: | 中科天齐(山西)软件安全技术研究院有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 胡晓静 |
地址: | 030032 山西省太原市山西省*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 安全 检测 方法 装置 电子设备 存储 介质 | ||
本申请提供一种应用程序安全检测方法、装置、电子设备和存储介质,该方法包括:从内存中获取待检测应用程序对应的常用路径边;根据各常用路径边对应的函数、源数据流值和/或目的数据流值,对常用路径边进行分组,得到有序的多个路径边集合;监控内存当前的存储量与预设的存储阈值之间的关系;当内存当前的存储量大于预设的存储阈值时,根据各路径边集合对应的顺序,按照预设交换比率在内存中选取待交换路径边集合,并将所选取的待交换路径边集合交换至磁盘。上述方案提供的安全检测方法,通过采用磁盘辅助的方式存储常用路径边,节省了内存资源,提高了IFDS算法的扩展性。
技术领域
本申请涉及网络安全技术领域,尤其涉及一种应用程序安全检测方法、装置、电子设备和存储介质。
背景技术
目前,为了对应用程序进行安全检测,通常将检测应用程序对应的Java程序分析问题抽象为过程间分布式子集问题(inter-procedural finite,distribute subset,简称:IFDS),根据IFDS分析结果确定应用程序的安全性。
但是,IFDS算法是内存密集型算法,对于某些应用程序,需要超过100GB的RAM内存预算,内存消耗较大。实践中,大容量内存需求明显限制了基于IFDS的工具的部署。
发明内容
本申请提供一种应用程序安全检测方法、装置、电子设备和存储介质,以解决现有技术的内存需求较高等缺陷。
本申请第一个方面提供一种应用程序安全检测方法,包括:
从内存中获取待检测应用程序对应的常用路径边;
根据各常用路径边对应的函数、源数据流值和/或目的数据流值,对所述常用路径边进行分组,得到有序的多个路径边集合;
监控所述内存当前的存储量与预设的存储阈值之间的关系;
当所述内存当前的存储量大于预设的存储阈值时,根据各路径边集合对应的顺序,按照预设交换比率在所述内存中选取待交换路径边集合,并将所选取的待交换路径边集合交换至磁盘。
可选的,还包括:
当磁盘中存储的任一路径边集合中任一路径边被访问时,将所述路径边所属的路径边集合交换回内存。
可选的,在从内存中获取待检测应用程序对应的常用路径边之前,所述方法还包括:
获取待检测应用程序;
根据所述待检测应用程序构建过程间控制流程图;
利用预设的IFDS算法对所述过程间控制流程图做可达性分析,以生成对应的路径边;
将所生成的路径边作为常用路径边存储至内存。
可选的,在从内存中获取待检测应用程序对应的常用路径边之前,所述方法还包括:
获取待检测应用程序和所述待检测应用程序的别名信息;
根据所述待检测应用程序构建过程间控制流程图;
利用预设的IFDS算法对所述过程间控制流程图做可达性分析,以生成对应的路径边;
在进行可达性分析过程中,根据得到的路径边所对应的语句类型和/或所述别名信息,确定常用路径边,将所述常用路径边存储至内存。
可选的,所述根据得到的路径边所对应的语句类型,确定常用路径边,包括:
判断所述路径边所对应的语句类型是否为循环语句或调用语句;
当所述路径边对应的语句类型为循环语句或调用语句时,确定所述路径边为常用路径边。
可选的,所述根据所述别名信息,确定常用路径边,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科天齐(山西)软件安全技术研究院有限公司,未经中科天齐(山西)软件安全技术研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110287918.9/2.html,转载请声明来源钻瓜专利网。