技术新讯 > 电子通信装置的制造及其应用技术 > 一种电力信息系统漏洞扫描验证智能化方法与流程  >  正文

一种电力信息系统漏洞扫描验证智能化方法与流程

  • 国知局
  • 2024-08-02 14:00:55

本发明涉及网络安全,尤其涉及一种电力信息系统漏洞扫描验证智能化方法。

背景技术:

1、电力web业务系统的先天性漏洞隐患使得公司面临网络与信息安全风险向电力系统传导风险。国内外对电力业务系统后门、漏洞和脆弱性等方面的研究日益重视和深入,一些电力业务系统产品的安全漏洞信息和攻击代码在互联网上传播,导致对电力业务系统网络安全实施攻击的门槛逐渐降低,电力信息系统网络安全形势日益严峻。庞大的系统规模使得完全依赖人工的漏洞隐患排查工作,在时效性、准确性等方面均有欠缺。

2、产生上述原因主要是电力系统漏洞隐患排查/处置率较低,依靠人工进行漏洞安全巡查、督查的方式无法应对数量庞大的web系统,导致大量漏洞隐患未处置;现有传统漏扫类产品漏洞隐患误报/漏报率高,采用版本匹配方式进行漏洞识别,缺乏对漏洞的验证能力,导致误报率极高;人员技术水平参差不齐,优秀经验难以固化,人工漏洞挖掘的效果与人员专业素质密切相关,少量优秀人员的工作难以通过多个一般人员替代,并且,漏洞挖掘技巧由个人掌握,随着人员流动,难以实现优秀经验的固化。所以,利用人工智能技术,对优秀人工漏洞渗透验证经验进行学习,以模型的形式固化漏洞渗透验证经验,有利于提升漏洞挖掘水平和效率,降低电力信息网络web系统“带病”上线运行的隐患概率,提升公司业务系统自身安全健壮性。

技术实现思路

1、本发明的目的在于提供一种电力信息系统漏洞扫描验证智能化方法,形成智能化、无损化的电力信息网络web系统资产识别与漏洞智能探测技术体系,全面提升电力信息网络web系统的深层级漏洞挖掘以及攻击的精准识别能力。

2、为实现上述目的,本发明的技术方案是:一种电力信息系统漏洞扫描验证智能化方法,包括:

3、s1、构建基于机器学习的web系统漏洞识别模型;

4、s2、漏洞智能化验证;采用基于靶机的漏洞智能利用验证模式和基于人工经验树的漏洞智能利用验证模式进行组合实现漏洞智能化验证;

5、s3、web漏洞渗透测试payload自动提取;

6、s4、基于知识图谱的web漏洞渗透测试;

7、s5、利用循环神经网络指导web漏洞渗透验证。

8、在本发明一实施例中,所述步骤s1中,基于机器学习的web系统漏洞识别模型,有两个阶段:学习阶段和识别阶段;在学习阶段,从漏洞库中收集一系列的漏洞作为输入,学习阶段的输出是漏洞自动化识别模型;在识别阶段,将目标漏洞输入,然后提取目标漏洞的特征并生成对应的特征向量,漏洞自动化识别模型经过分类识别目标漏洞的类型,最终输出己识别的漏洞报告;具体的,学习阶段,包括:

9、步骤1)、待训练漏洞特征提取,漏洞特征是多个可量化的漏洞特性,这些漏洞特性能够用于区分漏洞的类型,包括元特征、文本特征和代码特征;

10、步骤2)、待训练漏洞特征向量生成,步骤1)中提取的多类漏洞特征用于生成每个漏洞的特征向量,每一个特征向量有一个对应的标签表示漏洞的类型;

11、步骤3)、自动化识别模型构建,基于训练集中带标签的漏洞特征向量构建及训练漏洞自动化识别模型;

12、识别阶段,包括:

13、步骤4)、目标漏洞特征提取,从目标漏洞中提取出三种类型的特征,即元特征、文本特征和代码特征;

14、步骤5)、目标漏洞特征向量生成,将步骤4)中提取的目标漏洞特征被转换成向量表示;

15、步骤6)、漏洞自动化识别,通过在学习阶段中训练好的漏洞自动化识别模型,基于测试集,来识别与漏洞相对应的特征向量类型,当特征向量被识别为“1”时,意味着相应的漏洞是一个已识别漏洞,并输出漏洞报告。

16、在本发明一实施例中,步骤1)或步骤4)中代码特征提取的具体方式为:

17、①通过分析漏洞的附件attachment字段下载相应漏洞对应的补丁文件,一个补丁由diff头和diff段组成。diff头给出了对补丁信息的基本描述,diff段则显示补丁中代码的变化;②基于前缀符号“-”和“+”计算在一个漏洞补丁中添加或删除的代码行数,基于前缀符号“+++”计算在漏洞补丁中修改的文件的数量;③扫描添加或删除行的代码,检查是否存在危险函数或外部输入函数;危险函数是指容易出现安全问题的库函数或api函数,外部输入函数是指直接接收一个或多个外部输入的库函数或api函数;④计算漏洞修复复杂度。

18、在本发明一实施例中,步骤1)或步骤4)中特征向量生成的具体方式为:

19、特征向量在三个维度上描述漏洞报告:元特征、文本特征和代码特征;对于每一个维度,一系列特性被提取,因此,一个漏洞的特征向量表示为:

20、vreport ={vmeta,vtext,vcode} (1)

21、其中,meta是由一组元特征转化而来的,tet是由一组文本特征转换而来的,code是由一组代码特征转换而来的;

22、对于元特征,经过数值映射和归一化处理,最终转换为元特征向量,表示为:

23、

24、其中,vm1对应漏洞提交的时间,vm2表示漏洞严重度,取值范围为0到6,对应6种不同的严重度标签,其中“0”表示对应的严重度字段为空,vm3表示漏洞优先级,取值范围为0到5,对应5种不同的优先级标签,其中“0”表示对应的优先级字段为空,vmi(4≤i≤6)依次对应危险函数和外部输入函数中的其他字段;

25、对于文本特征,将重点放在漏洞的概述summary字段上,它是一个用来概括漏洞的句子;借助自然语言处理技术分析这个句子,最终将其转换为句向量形式,作为文本特征向量,包括以下三个步骤:

26、①词语切分tokenization,词语切分是一个通过词法分析,根据分隔符,将句子拆分成一组令牌tokens的过程,在切分时,tokens还应该被转换为小写字母,并且删除特殊字符;

27、②停止词移除stop words removal,从上一步生成的tokens集合中删除停止词stop words;

28、③向量生成vector generation,停止词删除后,得到大量的有意义的tokens,为将这些tokens映射为向量,使用word2vec工具库,将一个token转换为固定维度的向量,即词向量word embedding,最后,累加所有组成句子的tokens对应的词向量,最终得到句向量,即公式(3)所示,由于词向量能够训练为不同的固定维度,相应的句向量因此也有不同的维度n;

29、

30、对于代码特征,提取漏洞清单的附件字段,通过解析补丁文件之后,通过计算生成对应的代码特征向量,表示为:

31、

32、其中,vc1、vc2取值为“1”时,表示在漏洞补丁文件中存在至少一个危险函数或外部输入函数,否则,赋值为“0”,vc3对应漏洞补丁中添加或删除的代码行数,vc4对应漏洞补丁涉及的文件数量,vc5对应漏洞补丁复杂度。

33、在本发明一实施例中,步骤1)中漏洞自动化识别模型的构建方式为:

34、在生成特征向量之后,利用支持向量机svm来构建漏洞自动化识别模型,选择径向基函数rbf作为核函数,为求解svm的最优化问题,确定c和g参数,分别对应于损失函数和gamma函数;基于训练集,即带标签的特征向量,采用10-折交叉验证和网格搜索来选取参数c和g的全局最优组合,最终构建一个模型参数精确调整的漏洞自动化识别模型;

35、对目标进行遍历,获得从初始状态到目标状态的所有测试路径;在漏洞自动化识别模型遍历时,将会提取所有类型的漏洞威胁,分别确认初始状态和探测结果状态,创建各自子状态转换图,最终形成全局状态,最终通过自动化漏洞识别进行综合的判定,输出漏洞自动化识别模型检测结果。

36、在本发明一实施例中,步骤s3具体实现方式为:

37、s31、基于tf-idf对不同路径下的web日志数据样本分别进行特征向量化,按参数维度对特征向量进行汇聚;

38、s32、基于特征向量提取出样本参数在同路径同参数key的其他参数值中异常分数as;

39、s33、设置阈值t,取出as大于t的异常参数值作为输出;

40、s34、基于异常参数值实现web漏洞渗透测试的payload自动提取。

41、在本发明一实施例中,步骤s4中,知识图谱为包括基础维、漏洞维、威胁维和报警事件维和攻击规则五个维度的网络安全知识图谱,其构建方式为:收集五个维度的知识信息,分别包括cve漏洞知识、capec攻击分类识、cwe主机软件知识、snort报警事件知识以及攻击规则专家知识;通过编写xml处理程序以及正则表达式抽取实体属性信息;使用图数据库neo4j作为知识图谱构建工具,通过编写cypher语句将相应知识信息插入到知识图谱中。

42、在本发明一实施例中,所述步骤s5具体实现如下:

43、步骤s51、对于人工漏洞渗透验证经验进行划分,人工漏洞渗透验证经验中描述了一个完整的漏洞渗透验证过程,根据不同漏洞渗透验证方法的使用,将人工漏洞渗透验证经验划分成多个片段,包括:片段1:获取目标环境信息寻找用户登录窗口;片段2:登录窗口+进一步获取目标环境信息获取登录口令;片段3:登录口令+进一步获取目标环境信息读取敏感数据;

44、步骤s52、对步骤(1)中建立的关联数据样本,通过独热编码one-hot转换成能够输入lstm神经网络的数据格式;

45、步骤s53、对输入数据进行预处理:对于目标环境信息进行独热编码转换后,由于不同经验中记录的目标环境信息存在差异,转换后的数据长度不一定相等,为后续输入lstm神经网络的便利性,统一规定数据维度为128位,对于长度不足的数据采用0位不足,对于超出的数据利用哈希函数进行降维;

46、步骤s54、构建lstm神经网络:基于步骤s51划分得到的片段能够看出,各片段之间存在关联性,前一片段的输出能够作为下一片段输入的一部分,因此,lstm神经网络的输入中,时间步长time_step设置为2,一个片段的输入数据为128维度,因此lstm的输入层设计的输入参数为128个,包含隐藏层2个,每一隐藏层中有2个cell,输出层也为128个参数,在输出层后添加一个线性全连接层,将128个参数作为输入,设置输出参数为24;

47、步骤s55、训练lstm神经网络中的参数;

48、步骤s56、利用训练好的lstm神经网络指导漏洞渗透验证,通过资产扫描、识别获取目标系统的信息,利用步骤s51-s53对获取的目标环境信息进行预处理,将处理完成后的128位数据输入训练好的lstm神经网络,根据输出的24位数据,选取对应的渗透验证方法进行漏洞的验证。

49、在本发明一实施例中,目标环境信息中包含:系统类型、系统版本、服务类型、服务版本、中间件类型、中间件版本、开发语言、数据响应包内容;漏洞渗透方法包括:信息泄露漏洞、命令执行漏洞、任意文件读取漏洞、iis中间件漏洞、weblogic中间件漏洞、nginx中间件漏洞智能利用模块、php漏洞智能利用模块、tomcat中间件漏洞智能利用模块、jboss中间件漏洞智能利用模块、sql注入漏洞、管理入口漏洞、form框架漏洞智能利用模块、编辑器漏洞、xss漏洞、文件上传漏洞、命令注入漏洞、xml外部实体漏洞、任意文件下载漏洞、目录遍历漏洞、文件包含漏洞、cms漏洞、常见服务漏洞、硬件及系统漏洞;将片段1、2、3中的描述进行归类,建立目标环境信息与漏洞渗透方法的关联数据样本。

50、相较于现有技术,本发明具有以下有益效果:本发明一种电力信息系统漏洞扫描验证智能化方法,能够形成智能化、无损化的电力信息网络web系统资产识别与漏洞智能探测技术体系,全面提升电力信息网络web系统的深层级漏洞挖掘以及攻击的精准识别能力,为公司网络安全领域在科研、技术和装备等方面的研究做出补充,提升企业安全可控能力,促进网络与信息安全防护方案在各行业的规模化应用,对推进国家信息安全的发展具有重大示范意义。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241359.html

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