本发明属于漏洞检测,尤其涉及基于策略自优化的小程序漏洞大规模动态检测方法与系统。
背景技术:
1、随着小程序这一新型web应用在各大超级应用中的普及,在给用户带来极大方便的同时,小程序也涉及存储或传输海量用户的隐私敏感信息,部分小程序还涉及提供消费服务。一旦小程序出现安全问题,将会带来严重危害。
2、小程序这一新兴应用范式,存在很多由于本身底层设计导致的通用漏洞,然而如今小程序数量已经达到百万级,这类通用漏洞会影响数十万甚至数百万的小程序。部分通用漏洞必须在小程序运行到某个特定场景才会触发,而且每个小程序设计上都存在差异,如小程序授权登录按钮的名称可以为用户一键登录、本机号码一键登录、手机号快捷登录、手机号登录等各种形式。
3、现有方法无法解决小程序规模大、业务逻辑实现差异多样的问题。
4、例如,首先根据待测小程序名称及其appid检索到待测小程序,并获取静态前端源码,提取关键字符串代码段,并对关键字符串代码段进行安全风险评估。之后对小程序进行模拟点击操作,启动漏洞扫描器进行漏洞扫描。然而该方法没有关注模拟点击的顺序是否正确,错误的点击顺序无法进行后续的测试;也没有关注动态测试过程中如何对输入框进行填充;并且使用此方法大规模检测效率极低。
5、例如,对小程序前端源码转换成代码属性图,然后在代码属性图中查询匹配包含已知漏洞特征的代码片段来检测漏洞。该方法仅仅针对小程序前端代码进行静态测试,对于隐藏在后端逻辑中需要动态触发的漏洞无效。
6、例如,通过向宿主程序注入代理来获取小程序链接,然后调用检测工具根据获取的小程序链接进行安全检测。仅仅根据获取到的链接难以对小程序进行高覆盖测试。
7、例如,深入逆向分析宿主程序,选择有效位置进行挂钩,解决测试过程中难以获取信息和控制小程序页面跳转导航问题。然而应用程序的加密混淆算法愈加复杂,对其进行逆向十分复杂。
8、因此,如何对小程序的特定场景通用漏洞进行大规模自动检测面临着技术挑战。
技术实现思路
1、本发明提出基于策略自优化的小程序漏洞大规模动态检测方案;旨在解决现有小程序动态测试方法难以大规模收集海量小程序、难以对大规模多样的小程序自适应测试的技术难题。
2、本发明第一方面公开一种基于策略自优化的小程序漏洞大规模动态检测方法,所述方法包括:
3、步骤s1、通过关键词检索来收集若干小程序,将收集到的小程序关联信息存储至待测小程序数据库,并动态更新关键词集合;
4、步骤s2、将存在通用漏洞的特定场景测试任务划分为若干子任务,调用小程序动态测试工具,基于若干子任务对待测小程序数据库中关联信息对应的小程序进行漏洞检测;
5、步骤s3、根据漏洞检测结果,生成漏洞检测报告,动态优化小程序动态测试工具的测试策略。
6、根据本发明第一方面的方法,在步骤s1中:
7、构建关键词集合,遍历关键词集合中尚未被检索的各个关键词,通过检索收集若干小程序;
8、提取收集到的小程序的关联信息,并将关联信息存储至待测小程序数据库,所述关联信息包括小程序的名称、id、描述信息;
9、从小程序的名称和描述信息中筛选出新关键词,将筛选出的新关键词补入关键词集合,以动态更新关键词集合。
10、根据本发明第一方面的方法,在步骤s2中:
11、获取存在通用漏洞的特定场景测试任务,并将所述特定场景测试任务划分为若干子任务;
12、调用小程序动态测试工具,以执行:
13、将待测小程序数据库中关联信息对应的小程序作为被测小程序,依次对每一个被测小程序进行漏洞检测;具体包括:
14、基于自动化工具pywinauto根据预先构建的测试策略集合中的测试策略依次模拟运行各个子任务,以执行小程序特定业务场景的动态测试,同时利用https拦截工具对报文进行拦截。
15、根据本发明第一方面的方法,在步骤s3中:获取https拦截工具拦截到的报文,在所述报文中匹配所述通用漏洞的特征;其中:
16、若匹配成功,则测试成功;进一步生成漏洞检测报告;
17、若匹配不成功,则测试失败;获取当前测试的子任务页面的控件信息,将所述控件信息发送至大语言模型llm,由大语言模型llm基于所述控件信息生成新的测试策略,并将新的测试策略添加至测试策略集合,以动态优化小程序动态测试工具的测试策略。
18、本发明第二方面公开一种基于策略自优化的小程序漏洞大规模动态检测系统,所述系统包括:
19、第一处理单元,被配置为:通过关键词检索来收集若干小程序,将收集到的小程序关联信息存储至待测小程序数据库,并动态更新关键词集合;
20、第二处理单元,被配置为:将存在通用漏洞的特定场景测试任务划分为若干子任务,调用小程序动态测试工具,基于若干子任务对待测小程序数据库中关联信息对应的小程序进行漏洞检测;
21、第三处理单元,被配置为:根据漏洞检测结果,生成漏洞检测报告,动态优化小程序动态测试工具的测试策略。
22、根据本发明第二方面的系统,所述第一处理单元具体被配置为:
23、构建关键词集合,遍历关键词集合中尚未被检索的各个关键词,通过检索收集若干小程序;
24、提取收集到的小程序的关联信息,并将关联信息存储至待测小程序数据库,所述关联信息包括小程序的名称、id、描述信息;
25、从小程序的名称和描述信息中筛选出新关键词,将筛选出的新关键词补入关键词集合,以动态更新关键词集合。
26、根据本发明第二方面的系统,所述第二处理单元具体被配置为:
27、获取存在通用漏洞的特定场景测试任务,并将所述特定场景测试任务划分为若干子任务;
28、调用小程序动态测试工具,以执行:
29、将待测小程序数据库中关联信息对应的小程序作为被测小程序,依次对每一个被测小程序进行漏洞检测;具体包括:
30、基于自动化工具pywinauto根据预先构建的测试策略集合中的测试策略依次模拟运行各个子任务,以执行小程序特定业务场景的动态测试,同时利用https拦截工具对报文进行拦截。
31、根据本发明第二方面的系统,所述第三处理单元具体被配置为:获取https拦截工具拦截到的报文,在所述报文中匹配所述通用漏洞的特征;其中:
32、若匹配成功,则测试成功;进一步生成漏洞检测报告;
33、若匹配不成功,则测试失败;获取当前测试的子任务页面的控件信息,将所述控件信息发送至大语言模型llm,由大语言模型llm基于所述控件信息生成新的测试策略,并将新的测试策略添加至测试策略集合,以动态优化小程序动态测试工具的测试策略。
34、本发明第三方面公开一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面所述的基于策略自优化的小程序漏洞大规模动态检测方法。
35、本发明第四方面公开一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面所述的基于策略自优化的小程序漏洞大规模动态检测方法。
36、综上,本方法首先通过基于关键词增强的小程序大规模收集方法,缓解了小程序检索功能单次检索只能获取小部分相关小程序的限制,根据检索结果不断提取新关键词,增强关键词集合进行后续检索收集。其次本方法通过基于策略自优化的小程序漏洞动态检测方法对特定场景的通用漏洞进行大规模检测,在初始策略的基础上,通过依次对收集的小程序数据库中每个小程序进行测试,测试过程中不断优化测试策略,提高对大规模复杂多样小程序动态测试的适配性。
37、本发明实现如下技术效果:(1)利用所述方法,可以获取互联网上海量的小程序数据集,可用于后续大规模检测;(2)利用所述方法,能够通过对所收集小程序的依次测试,持续自动优化动态测试某业务场景的测试策略;(3)利用所述方法,可以对包含某通用漏洞的业务场景,实现高适配大规模的漏洞检测。
1.一种基于策略自优化的小程序漏洞大规模动态检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种基于策略自优化的小程序漏洞大规模动态检测方法,其特征在于,在步骤s1中:
3.根据权利要求2所述的一种基于策略自优化的小程序漏洞大规模动态检测方法,其特征在于,在步骤s2中:
4.根据权利要求3所述的一种基于策略自优化的小程序漏洞大规模动态检测方法,其特征在于,在步骤s3中:获取https拦截工具拦截到的报文,在所述报文中匹配所述通用漏洞的特征;其中:
5.一种基于策略自优化的小程序漏洞大规模动态检测系统,其特征在于,所述系统包括:
6.根据权利要求5所述的一种基于策略自优化的小程序漏洞大规模动态检测系统,其特征在于,所述第一处理单元具体被配置为:
7.根据权利要求6所述的一种基于策略自优化的小程序漏洞大规模动态检测系统,其特征在于,所述第二处理单元具体被配置为:
8.根据权利要求7所述的一种基于策略自优化的小程序漏洞大规模动态检测系统,其特征在于,所述第三处理单元具体被配置为:获取https拦截工具拦截到的报文,在所述报文中匹配所述通用漏洞的特征;其中:
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-4任一项所述的一种基于策略自优化的小程序漏洞大规模动态检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-4任一项所述的一种基于策略自优化的小程序漏洞大规模动态检测方法。
