一种工业控制软件漏洞智能审计方法、系统及介质
本发明涉及工业控制软件分析领域,尤其涉及一种工业控制软件漏洞智能审计方法、系统及介质。
背景技术:
1、随着工业网络与以太网接入,源代码中的路径处理、认证授权、配置读写、日志输出、脚本执行和跨语言调用可能形成安全风险。现有静态分析器能够快速产出风险点,但静态分析器发现规则命中、局部语法模式或者一段数据流,并不当然证明对应问题已经满足可利用条件;真实结论还取决于输入是否低可信、入口是否可达、保护措施是否有效、权限边界是否跨越以及目标版本是否符合等安全前提。
2、现有公开号为cn122174244a的发明专利公开了一种融合规则语义与代码属性图的代码漏洞检测方法及系统。该方案以规则命中函数和语义补充候选函数为基础,提取代码属性图中的调用上下文与数据流路径,并输出漏洞存在性判断、漏洞类型和原因,有助于扩大候选范围并降低模型上下文开销。但是,根据其公开内容,该方案没有明确给出由原始告警到局部图证据的双路由契约,也没有明确在关键安全前提缺失时保留可复核的弃权结果,更没有公开将人工更正转换为可编译类型化查询变更的机制。也有公开号为cn119848869a的发明专利公开了一种基于语句级代码属性图查询的软件漏洞静态检测方法。该方案以语句粒度构建和精简代码属性图,并在图数据库中执行查询以发现漏洞,主要解决图规模和查询效率问题。但是,根据其公开内容,该方案没有明确处理告警定位映射失败后的保留路径,也没有明确根据证据充分性将结果划分为证据支持、证据反驳和弃权三种状态。以及公开号为cn120805137a的发明专利公开了一种基于压缩代码属性图和边类型差异化处理的漏洞检测方法。该方案通过语法子树聚合压缩代码属性图,并以边类型差异化的学习处理提高检测效果,主要侧重图表示压缩与模型推断。但是,根据其公开内容,该方案没有明确建立以单个告警为锚点的有界证据片段、证据路由以及人工校核后的确定性查询演化闭环。更有公开号为cn110955898a的发明专利公开了一种建站系统的漏洞审计方法、系统及相关装置。该方案将代码转化为抽象语法树和控制流图,对其进行数据流分析、疑似漏洞去重并生成报告,对传统静态检测具有参考价值。但是,根据其公开内容,该方案没有明确多语言语义保持、局部证据包、缺失前提的显式保留以及通过受类型约束的反馈产生查询变更的处理方式。
3、上述现有方案虽然分别涉及代码属性图、规则扫描、图查询或者模型辅助检测,但是仍存在以下不足:第一,静态告警常只描述局部语法、数据流或者规则命中,难以同时说明入口信任级别、认证保护、持久化配置、执行权限和目标版本等安全前提,容易增加误报审查负担;第二,将全仓源代码或全局程序图直接交给模型会引入大量无关上下文,而只提供告警文本或少量代码片段又缺少可核验的程序关系;第三,对于没有可靠cpg映射或者安全前提缺失的告警,直接丢弃会遗漏风险,直接认定为漏洞又会引入未经证实的威胁条件;第四,如果由模型直接生成或修改可执行静态分析查询,容易产生不合法的类、谓词、接口、跨语言语义假设或者未经验证的覆盖变化,难以保证变更可回滚、可编译和可重复执行;第五,如果历史漏洞编号、补丁、受影响版本和预留标签直接参与查询优化,容易使评测信息泄漏至优化过程,难以客观复现查询效果。因此,需要一种能够围绕原始告警构建可追溯证据、在证据不足时显式保留缺口、并以受控方式吸收人工校核结果的工业控制软件漏洞审计方法。
技术实现思路
1、本发明的目的在于克服现有技术的缺点,提供了一种工业控制软件漏洞智能审计方法、系统及介质,解决了现有技术存在的不足。
2、本发明的目的通过以下技术方案来实现:一种工业控制软件漏洞智能审计方法,所述方法包括:
3、s1、获取工业控制软件的固定版本源代码,对其执行一种或多种静态分析器,将结果统一为sarif风险点集合;
4、s2、按照标准化文件路径、行号重叠程度、所属方法和源类别一致性,将风险点a定位到cpg节点,以为中心,仅沿预先允许的边类型集e扩展,并以有限的最大跳数h限制扩展范围,同时,根据告警路径位置和入口关系确定关联方法集合并补入这些方法所属节点;
5、s3、按照选定的证据路由为每个风险点形成结构化审计记录,并对审计记录执行证据充分判断和三态审计;
6、s4、将证据支持和证据反驳两类决定性记录提交安全审计人员进行源码复核,将每个静态分析查询表示为由语义源、语义汇、守卫、上下文约束和输出规格组成查询基因g;
7、s5、对候选变更执行确定性验收,使用冻结查询和人工复核后的审计记录生成漏洞审计报告。
8、所述s1具体包括:
9、对每个风险点a保存规则标识、主位置、线程流位置、源文件版本和代码语言,并生成稳定告警标识,风险点仅作为审计锚点,不直接作为漏洞标签;
10、针对不同代码语言分别生成保留其原生语义的cpg;c/c++图保留指针、边界、文件或进程接口及命令行入口,java图保留控制器、注解、服务、持久化和日志关系,javascript图保留路由、请求、中间件、动态执行和配置关系;
11、不同语言工件之间只有在存在可核验绑定依据时才记录上下文关系,不把语法邻近、控制流可达或者推测的跨语言关系伪装成攻击者可控的数据流。
12、所述按照选定的证据路由为每个风险点形成结构化审计记录具体包括:
13、通过公式表示风险点的审计记录,其中,为入口条件,为语义源,为语义汇,为证据路径,为守卫集合,为上下文约束,为版本前提,为证据充分性状态,为所选证据路由且取cpg路由或sarif路由;
14、cpg路由只允许引用证据包中的真实节点和边,sarif路由只允许引用原始风险点、相邻线程流步骤和对应源码片段,每个被结论依赖的入口、来源、汇点、路径、守卫、权限、配置和版本事实均写入可回指的稳定工件标识。
15、所述对审计记录执行证据充分判断和三态审计包括:
16、只有结论所依赖的各项事实均有稳定程序工件支撑时,才为充分,并允许模型根据审计记录输出证据支持或者证据反驳,任何关键安全前提缺失时,输出弃权并登记缺失的入口、保护、权限、配置、版本或者跨语言关联前提;
17、在路由下模型决策为当时,,当时,,其中,f为在证据充分条件下由审计记录到证据支持或证据反驳的决策映射,其中,表示证据充分状态,表示弃权状态。
18、所述s4中多个查询基因采样评价向比较,其中,表示有效输出,表示与人工更正的一致性,表示稳定性,表示语义多样性,u表示弃权率,x表示矛盾率,k表示复杂度,表示运行时间;
19、模型只能依据类型化反馈,从预先登记的描述符目录中提出增加、删除、拆分、合并、保留、废弃或者放宽这些受类型约束的候选变更,不得直接输出可执行查询代码,也不得引用目录外的类、谓词或接口,确定性控制器把通过约束的描述符编译到预定义查询模板中,其中,表示基于当前查询基因g施加一项或多项相容的受类型约束变更后得到的候选查询基因。
20、所述对候选变更执行确定性验收包括:
21、候选g'只有同时通过模式校验、描述符目录校验、编译、测试、评测信息隔离、证据校验和覆盖校验时才能接受,其验收条件如下为,其中,schema、catalog、compile、tests、isolation、evidence和coverage依次表示模式、目录、编译、测试、隔离、证据和覆盖的布尔检验;
22、任一检验不通过时,系统拒绝该候选,保留原查询状态并记录失败阶段、描述符组合和拒绝原因,全部通过且评价非劣的候选进入查询归档并用于下一轮审计。
23、一种工业控制软件漏洞智能审计系统,所述系统包括:静态分析与风险点标准化模块、cpg生成与语言适配模块、告警锚点与局部证据映射模块、双路由证据包模块、证据充分性审计模块、人工校核与类型化反馈模块、查询演化与确定性编译模块以及验收和报告模块;
24、所述静态分析与风险点标准化模块:汇集不同静态分析器产生的风险信息并形成统一、可追溯的审计锚点;
25、所述cpg生成与语言适配模块:构建可供证据提取的程序关系图并保留不同语言的原生语义;
26、所述告警锚点与局部证据映射模块:把sarif风险点定位到cpg中的具体程序位置并提取范围受控的局部证据;
27、所述双路由证据包模块:在cpg映射成功与失败两种情况下均保留可审计证据;
28、所述证据充分性审计模块:判断结论所依赖的安全前提是否具有稳定程序工件支撑并输出三态结果;
29、所述人工校核与类型化反馈模块:复核决定性结论并把人工更正转换为机器可处理的约束信息;
30、所述查询演化与确定性编译模块:生成受控的查询变更并阻止模型直接输出可执行查询代码;
31、所述验收和报告模块:验证查询候选、冻结有效查询并形成可追溯的漏洞审计报告。
32、所述cpg生成与语言适配模块具体通过各语言前端生成语法、控制流、调用、控制依赖、定义使用和引用,登记语言特定的边类型和语义属性,并仅在存在配置或接口或绑定文件可核验工件时记录跨语言上下文关系来实现;
33、所述告警锚点与局部证据映射模块具体通过标准化文件路径、行号重叠、所属方法和源类别一致性进行节点匹配,以匹配节点为中心沿允许边类型在有限跳数内扩展,同时补入关联方法节点,并记录映射置信度、截断状态和失败原因来实现;
34、所述双路由证据包模块具体通过路由条件判断,在映射稳定且局部图完整时封装真实节点、真实边、源码位置、入口和配置线索形成局部cpg证据包,在不能稳定映射或关键路径不完整时封装规则、位置、线程流、源码片段和原始来源形成sarif回退证据包,并以统一字段输出两类证据来实现;
35、所述证据充分性审计模块具体通过逐项核验入口、来源、汇点、路径、守卫、权限、配置和版本事实,将其绑定至可回指的工件标识,证据充分时输出证据支持或证据反驳,证据不足时输出弃权并登记缺失前提来实现。
36、所述静态分析与风险点标准化模块具体通过调用一种或多种静态分析器,解析其sarif输出,统一文件路径、规则标识、主位置、线程流位置、代码语言和源文件版本,并根据上述字段生成稳定告警标识来实现;
37、所述人工校核与类型化反馈模块具体通过向审计人员呈现结构化审计记录,记录原结论、更正结论、证据路由及前提变化,再把更正内容编码为受模式和描述符目录约束的类型化操作来实现;
38、所述查询演化与确定性编译模块具体通过将查询表示为由语义源、语义汇、守卫、上下文约束和输出规格组成的查询基因,限制模型仅从登记的描述符目录提出增加、删除、拆分、合并、保留、废弃或放宽的候选操作,再由确定性控制器执行类型检查并编译至预定义查询模板来实现;
39、所述验收和报告模块具体通过依次执行模式、描述符目录、编译、测试、评测信息隔离、证据和覆盖校验,结合评价向量保存非支配候选,拒绝未通过候选并保留失败原因,在达到预算或停止条件后冻结查询,随后按稳定告警标识汇总三态结论、证据路由、缺失前提及候选验收记录来实现。
40、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现一种工业控制软件漏洞智能审计方法的步骤。
41、本发明具有以下优点:
42、1、不把静态告警直接作为漏洞结论,而是要求入口、来源、汇点、路径、守卫、权限、配置和版本等被依赖事实均具有可追溯工件,使安全结论从规则命中转变为证据支持的主张,降低缺少威胁前提所造成的误报审查负担。
43、2、仅对证据充分的决定性记录进行人工复核,将稳定告警标识、证据路由、原结论、更正结论以及前提变化编码为类型化反馈;将查询表示为由语义源、语义汇、守卫、上下文约束和输出规格构成的查询基因,限制模型仅能从登记目录中提出受类型约束的变更,再由确定性控制器编译为预定义查询模板,从而把人工经验转化为可验证而非任意生成的查询修改。
44、3、对每个查询候选同时实施模式、描述符目录、编译、测试、评测信息隔离、证据和覆盖校验,并结合有效输出、人工更正一致性、稳定性、语义多样性、弃权率、矛盾率、复杂度和运行时间保存非支配候选;查询冻结前隔离历史漏洞材料,冻结后再用于回放,并在多语言分析中保留各语言原生语义且不虚构缺少工件支撑的跨语言数据流。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com