技术新讯 > 电子通信装置的制造及其应用技术 > 基于机器学习的自动化渗透测试方法和系统、电子设备与流程  >  正文

基于机器学习的自动化渗透测试方法和系统、电子设备与流程

  • 国知局
  • 2025-01-10 13:13:20

本发明涉及网络安全测试,具体涉及一种基于机器学习的自动化渗透测试方法和系统、电子设备。

背景技术:

1、渗透测试是一种常用的安全评估的方法,旨在评估计算机系统、网络和应用程序的安全性,验证网络防御措施的有效性。渗透测试通过模拟真实的攻击行为,发现网络空间中的弱点、漏洞和安全风险,并针对发现的问题进行报告。渗透测试是一个非常复杂的过程,包括信息收集,漏洞扫描,测试方案制定和漏洞利用等,这个过程需要大量经验的支撑,缺乏经验很容易产生误判,从而影响测试准确性和测试效率。

2、自动化渗透测试是指通过模型或规则的方式代替人类经验完成渗透测试的技术。目前,大多数的自动化渗透测试都是基于深度强化学习实现的,存在数据需求量大、训练时间长和计算资源消耗大等问题。

技术实现思路

1、为了克服上述依赖经验的渗透测试无法保证测试准确性和效率以及自动化渗透测试的数据需求量大、耗时耗资源的问题,本发明提供一种基于机器学习的自动化渗透测试方法和系统、电子设备。

2、一方面,本发明提供一种基于机器学习的自动化渗透测试方法,包括:

3、利用嗅探工具对测试目标进行目标信息收集,得到目标信息文件;

4、基于所述目标信息文件中的信息标签进行所述目标信息文件的内容筛选,得到目标关键信息列表;

5、基于机器学习模型进行所述目标关键信息列表中每条关键信息的漏洞利用信息匹配,得到每条关键信息对应的漏洞利用信息;

6、基于获取到的测试信息、所述目标关键信息列表和每条关键信息对应的漏洞利用信息,生成对应的渗透测试用例,并执行所述渗透测试用例。

7、可选地,所述利用嗅探工具对测试目标进行目标信息收集,得到目标信息文件,包括:

8、获取输入的与测试目标关联的测试目标信息和嗅探配置信息;

9、基于所述测试目标信息和所述嗅探配置信息,生成嗅探测试指令;调用nmap工具自动执行所述嗅探测试指令,得到嗅探信息;

10、将所述嗅探信息存储为xml文件,得到所述目标信息文件。

11、可选地,所述基于所述目标信息文件中的信息标签进行所述目标信息文件的内容筛选,得到目标关键信息列表,包括:

12、遍历所述目标信息文件的内容,基于所述目标信息文件的标签特征筛选出与所述标签特征对应的数据类型的内容数据,形成多条关键信息;

13、基于表格数据结构进行多条关键信息的存储,得到所述目标关键信息列表。

14、可选地,每条关键信息至少包括目标端口、目标系统类型、目标服务、目标产品和漏洞标识。

15、可选地,所述机器学习模型为决策树模型,所述机器学习模型的训练过程包括:

16、基于metasploit的exploits模块构建训练数据集;

17、基于所述训练数据集针对漏洞利用类别的熵进行所述训练数据集的数据子集的划分,直到划分的每个数据子集的熵为0,训练完成;

18、将每个所述数据子集及其对应的漏洞利用类别作为一个子树,形成所述决策树模型。

19、可选地,所述机器学习模型的训练过程还包括:

20、若所述数据子集的熵不为0,基于所述数据子集中的各标签特征进行所述数据子集的子集分割;

21、对于每个标签特征的分割结果,基于所述数据子集在分割前后的信息增益在各所述标签特征中筛选出分割特征,并将所述分割特征的分割结果作为所述数据子集的当前分割结果;

22、重复所述子集分割过程,直到分割结果的熵为0或分割结果为单一标签特征。

23、可选地,所述基于所述数据子集在分割前后的信息增益在各所述标签特征中筛选出分割特征,包括:

24、基于每个分割后子集的数据量在分割前的数据子集中的数据量的占比,确定各分割后子集的熵权重,基于每个分割后子集的熵权重和对应分割后子集的熵,确定所述数据子集在分割后的熵;

25、基于所述数据子集在分割前后的熵的差值,确定所述数据子集在分割前后的信息增益;

26、选择所述信息增益的最大值对应的标签特征作为所述分割特征。

27、可选地,所述数据子集在分割前后的信息增益的计算公式为:

28、

29、其中,ig表示数据子集在分割前后的信息增益,s表示分割前的数据子集,h(s)表示分割前的数据子集的熵,|s|表示分割前的数据子集的大小,k表示分割后子集的数量,|sj|表示分割后第j个子集的大小,h(sj)表示分割后第j个子集的熵;

30、所述数据子集的熵的计算公式为:

31、

32、其中,n表示数据子集中漏洞利用类别的类别总数,i表示漏洞利用类别的序号,p(i)表示第i个漏洞利用类别的数据量在数据子集中的占比。

33、可选地,所述基于机器学习模型进行所述目标关键信息列表中每条关键信息的漏洞利用信息匹配,得到每条关键信息对应的漏洞利用信息,包括:

34、将所述目标关键信息列表输入所述决策树模型,根据决策规则在所述决策树模型的各节点进行决策测试,直到移动至所述决策树模型的叶节点,得到每条关键信息的漏洞利用信息。

35、可选地,在基于机器学习模型进行所述目标关键信息列表中每条关键信息的漏洞利用信息匹配之前,所述方法还包括:

36、对所述目标关键信息列表进行多余数据和缺省值对应行的删除,得到预处理后的目标关键信息列表;

37、对所述预处理后的目标关键信息列表中的每条关键信息进行针对字符串的编码,得到对应数值型的目标关键信息列表。

38、可选地,所述执行所述渗透测试用例,包括:

39、响应于对测试界面中与目标测试用例对应控件的选择操作,查找所述目标测试用例的用例信息;

40、基于所述目标测试用例的用例信息生成对应的目标测试指令;

41、调用msfconsole工具执行所述目标测试指令进行初步渗透测试。

42、可选地,所述执行所述渗透测试用例,还包括:

43、若所述初步渗透测试成功,继续进行深入测试,直到测试结束;

44、若所述初步渗透测试失败,自动执行除所述目标测试用例之外的剩余渗透测试用例,直到全部的剩余渗透测试用例执行完成,基于执行结果进行所述测试目标的安全评估。

45、另一方面,本发明还提供一种基于机器学习的自动化渗透测试系统,包括:

46、信息收集模块,用于利用嗅探工具对测试目标进行目标信息收集,得到目标信息文件;

47、筛选模块,用于基于所述目标信息文件中的信息标签进行所述目标信息文件的内容筛选,得到目标关键信息列表;

48、信息匹配模块,用于基于机器学习模型进行所述目标关键信息列表中每条关键信息的漏洞利用信息匹配,得到每条关键信息对应的漏洞利用信息;

49、渗透测试模块,用于基于获取到的测试信息、所述目标关键信息列表和每条关键信息对应的漏洞利用信息,生成对应的渗透测试用例,并执行所述渗透测试用例。

50、可选地,所述信息收集模块包括:

51、信息获取子模块,用于获取输入的与测试目标关联的测试目标信息和嗅探配置信息;

52、嗅探子模块,用于基于所述测试目标信息和所述嗅探配置信息,生成嗅探测试指令;调用nmap工具自动执行所述嗅探测试指令,得到嗅探信息;

53、信息存储子模块,用于将所述嗅探信息存储为xml文件,得到所述目标信息文件。

54、可选地,所述筛选模块包括:

55、标签筛选子模块,用于遍历所述目标信息文件的内容,基于所述目标信息文件的标签特征筛选出与所述标签特征对应的数据类型的内容数据,形成多条关键信息;

56、表存储子模块,用于基于表格数据结构进行多条关键信息的存储,得到所述目标关键信息列表。

57、可选地,每条关键信息至少包括目标端口、目标系统类型、目标服务、目标产品和漏洞标识。

58、可选地,所述机器学习模型为决策树模型,所述系统还包括模型训练模块,所述模型训练模块包括:

59、数据集构建子模块,用于基于metasploit的exploits模块构建训练数据集;

60、子集划分子模块,用于基于所述训练数据集针对漏洞利用类别的熵进行所述训练数据集的数据子集的划分,直到划分的每个数据子集的熵为0,训练完成;

61、决策树形成子模块,用于将每个所述数据子集及其对应的漏洞利用类别作为一个子树,形成所述决策树模型。

62、可选地,所述子集划分子模块还用于:

63、若所述数据子集的熵不为0,基于所述数据子集中的各标签特征进行所述数据子集的子集分割;

64、对于每个标签特征的分割结果,基于所述数据子集在分割前后的信息增益在各所述标签特征中筛选出分割特征,并将所述分割特征的分割结果作为所述数据子集的当前分割结果;

65、重复所述子集分割过程,直到分割结果的熵为0或分割结果为单一标签特征。

66、可选地,所述子集划分子模块还用于:

67、基于每个分割后子集的数据量在分割前的数据子集中的数据量的占比,确定各分割后子集的熵权重,基于每个分割后子集的熵权重和对应分割后子集的熵,确定所述数据子集在分割后的熵;

68、基于所述数据子集在分割前后的熵的差值,确定所述数据子集在分割前后的信息增益;

69、选择所述信息增益的最大值对应的标签特征作为所述分割特征。

70、可选地,所述数据子集在分割前后的信息增益的计算公式为:

71、

72、其中,ig表示数据子集在分割前后的信息增益,s表示分割前的数据子集,h(s)表示分割前的数据子集的熵,|s|表示分割前的数据子集的大小,k表示分割后子集的数量,|sj|表示分割后第j个子集的大小,h(sj)表示分割后第j个子集的熵;

73、所述数据子集的熵的计算公式为:

74、

75、其中,n表示数据子集中漏洞利用类别的类别总数,i表示漏洞利用类别的序号,p(i)表示第i个漏洞利用类别的数据量在数据子集中的占比。

76、可选地,所述信息匹配模块具体用于:

77、将所述目标关键信息输入所述决策树模型,根据决策规则在所述决策树模型的各节点进行决策测试,直到移动至所述决策树模型的叶节点,得到每条关键信息的漏洞利用信息。

78、可选地,所述系统还包括:

79、预处理模块,用于对所述目标关键信息列表进行多余数据和缺省值对应行的删除,得到预处理后的目标关键信息列表;

80、编码模块,用于对所述预处理后的目标关键信息列表中的每条关键信息进行编码,得到对应数值型的目标关键信息列表。

81、可选地,所述渗透测试模块还用于:

82、响应于对测试界面中与目标测试用例对应控件的选择操作,查找所述目标测试用例的用例信息;

83、基于所述目标测试用例的用例信息生成对应的目标测试指令;

84、调用msfconsole工具执行所述目标测试指令进行初步渗透测试。

85、可选地,所述渗透测试模块还用于:

86、若所述初步渗透测试成功,继续进行深入测试,直到测试结束;

87、若所述初步渗透测试失败,自动执行除所述目标测试用例之外的剩余渗透测试用例,直到全部的剩余渗透测试用例执行完成,基于执行结果进行所述测试目标的安全评估。

88、另一方面,本发明还提供一种电子设备,包括:至少一个处理器和存储器;所述存储器和处理器通过总线相连;

89、所述存储器,用于存储一个或多个程序;

90、当所述一个或多个程序被所述至少一个处理器执行时,实现上述中任意一项所述的基于机器学习的自动化渗透测试方法。

91、另一方面,本发明还提供一种可读存储介质,其上存有执行程序,所述执行程序被执行时,实现上述中任意一项所述的基于机器学习的自动化渗透测试方法。

92、与现有技术相比,本发明的有益效果为:

93、本发明提供一种基于机器学习的自动化渗透测试方法和系统,一方面,利用嗅探工具对测试目标进行目标信息收集得到目标信息文件,基于目标信息文件中的信息标签进行目标信息文件的内容筛选,得到目标关键信息列表,可以在漏洞利用信息匹配之前自动提取关键信息,降低信息收集对于测试人员专业性和经验的依赖性,减少关键信息提取的错误率,同时列表形式的信息便于自动读取和处理,提升测试准确性和效率。另一方面,使用机器学习模型来模拟人工漏洞利用选择的过程,避免了人工操作产生误判的情况,可以提升漏洞选择的准确性和测试效率,同时,相较于深度强化学习方式,降低了测试过程的计算资源消耗,提升测试效率,且降低了模型训练过程对数据量、计算资源和训练时间的要求,大大降低了测试成本。

本文地址:https://www.jishuxx.com/zhuanli/20250110/351709.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。