(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210163490.1
(22)申请日 2022.02.22
(71)申请人 湖南泛联新 安信息科技有限公司
地址 410005 湖南省长 沙市开福区伍家岭
街道栖凤路486号凯乐微谷商务中心1
栋1710、 171 1房
(72)发明人 杨智霖 周鑫 鲁俊
(74)专利代理 机构 长沙市护航专利代理事务所
(特殊普通 合伙) 43220
专利代理师 莫晓齐
(51)Int.Cl.
G06F 9/451(2018.01)
G06F 11/36(2006.01)
(54)发明名称
一种程序静态分析结果中最佳修复点的展
示方法
(57)摘要
本发明公开了一种程序静态分析结果中最
佳修复点的展 示方法, 该方法包括以下步骤: S1、
获取所有污点传播路径, 并对所获取的污点传播
路径进行去重处理; S2、 分析去重处理后的每一
条污点传播路径, 并基于分析结果进行组合以构
建全程序污点传播流图; S3、 基于全程序污点传
播流图获取每个节点的出度和入度, 并计算出每
个节点的路径数量; S4、 计算每个节点的综合评
估值并进行比较, 选取最大的综合评估值进行标
记, 进而得到最大综合评估值对应的最佳修复
点。 本发明通过对静态分析工具输出的所有污点
传播路径进行分析并构建出全程序污点传播流
图, 然后对全程序污点传播流图进行处理标记出
最佳修复点, 能够大大节省 代码审计人员的工作
量, 提高了 工作效率。
权利要求书1页 说明书3页 附图1页
CN 114546561 A
2022.05.27
CN 114546561 A
1.一种程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所述方法包括以下
步骤:
S1、 获取程序静态分析工具输出的所有污点传播路径, 然后对所获取的污点传播路径
进行去重处 理;
S2、 分析去重处理后的每一条污点传播路径, 并基于分析结果进行组合以构建全程序
污点传播 流图;
S3、 分析全程序污点传播流图以获取每个节点的出度和入度, 基于每个节点的出度和
入度计算出每 个节点的路径数量;
S4、 基于步骤S3中得到的每个节点的出度、 入度和路径数量计算每个节点的综合评估
值并进行比较, 选取最大综合评估值的节点进行标记, 进而得到最大综合评估值对应的最
佳修复点。
2.根据权利要求1所述的程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所
述程序静态分析工具 是指一种利用JDT分析源码的CodeSence Java引擎。
3.根据权利要求2所述的程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所
述步骤S1 中对所获取的污点传播路径进 行去重处理具体为: 循环遍历所获取的每一条污点
传播路径, 然后删除重复的污点传播路径。
4.根据权利要求3所述的程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所
述步骤S2的具体实现方式为: 获取具有前向边和后向边的污点传播路径, 将具有前向边和
后向边的污点传播路径中的路径节点沿着其后向边的方向进 行组合, 进而构建出全程序污
点传播流图。
5.根据权利要求4所述的程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所
述步骤S3的具体实现方式包括:
S31、 遍历全程序污点传播流 图中的每一个节点, 并查看与对应节点相关联的节点, 进
而获取每个节点的出度和入度, 其中, 节点的出度是指以该节点为弧尾, 起始于该节点的弧
的数目; 节点的入度是指以该节点 为弧头, 终止 于该节点的弧的数目;
S32、 基于每 个节点的出度和入度计算出每 个节点的路径数量, 用公式表示 为:
Ni=ni1×ni2 (1)
式(1)中, Ni表示第i个节点的路径 数量, ni1表示第i个节点的出度, ni2表示第i个节点的
入度。
6.根据权利要求5所述的程序静态分析结果中最佳修复点的展示方法, 其特征在于, 所
述步骤S4中每 个节点的综合评估值用公式表示 为:
Ai=ni1·a+ni2·b+Ni·c (2)
式(2)中, Ai表示第i个节点的综合评估值, a表示第i个节点的出度的权重, b表示第i个
节点的入度的权 重, c表示第i个节点的路径数量的权 重, 其中, a+b+c=1。权 利 要 求 书 1/1 页
2
CN 114546561 A
2一种程序静态分析结果中最佳修复点的展示方 法
技术领域
[0001]本发明涉及计算机程序数据处理技术领域, 具体而言, 涉及一种程序静态分析结
果中最佳修复点的展示方法。
背景技术
[0002]现有技术中, 程序静态分析大多采用污点分析技术, 其用于检测程序可能存在的
一些缺陷(如敏感数据泄露), 对于敏感数据泄露的检测一般是对敏感数据泄露的数据源头
进行检测, 然后通过污点传播分析技术找到该数据源头所携带 的数据, 并沿着程序的传播
路径直到找到敏感信息泄露的点。 这种敏感信息的源头, 我们称之为source点, 敏感信息泄
露的点, 我们称之为sink点; 从source点到sink点的污染传播路径, 我们称之为污点传播流
图。 在对程序的缺陷进行扫描分析时, 一般分析 的结果以这种污点传播流图在 界面上展示
出来。 然而, 由于分析时尽可能地遍历程序中的污点传播路径, 所以难免会存在一些重复的
污点传播路径, 甚至会有很多污点传播路径的节点存在重合的情况。 所以在 界面上对缺陷
代码进行审计时, 会存在很多重复的情况, 开发人员 在进行代码审计分析缺陷结果时难免
会陷入繁杂的污点传播结果中去。
[0003]鉴于此, 研究一种能够节省代码审计人员工作量的程序静态分析结果中最佳修复
点的展示方法是本领域 技术人员亟需解决的技 术问题。
发明内容
[0004]鉴于此, 本发明提出了一种程序静态分析结果中最佳修复点的展示方法, 所述方
法通过对静态分析工具输出的所有污点传播路径进行分析进而构建出全程序污点传播流
图, 然后对全程序污点传播流图进行处理进而标记出属于最佳修复点的节点, 能够大大节
省代码审计人员的工作量, 提高了 工作效率。
[0005]本发明提出的一种程序静态分析 结果中最佳修复点的展示方法, 包括:
[0006]S1、 获取程序静态分析工具输出的所有污点传播路径, 然后对所获取的污点传播
路径进行去重处 理;
[0007]S2、 分析去重处理后的每一条污点传播路径, 并基于分析结果进行组合以构建全
程序污点传播 流图;
[0008]S3、 分析全程序污点传播流图以获取每个节点的出度和入度, 基于每个节点的出
度和入度计算出每 个节点的路径数量;
[0009]S4、 基于步骤S3中得到的每个节点的出度、 入度和路径数量计算每个节点的综合
评估值并进行比较, 选取最大 的综合评估值进行标记, 进而得到最大综合评估值对应的最
佳修复点。
[0010]作为上述程序静态分析结果中最佳修复点的展示方法的优选方案, 所述程序静态
分析工具 是指一种利用JDT分析源码的CodeSence Java引擎。
[0011]作为上述程序静态分析结果中最佳修复点的展示方法的优选方案, 所述步骤S1中说 明 书 1/3 页
3
CN 114546561 A
3
专利 一种程序静态分析结果中最佳修复点的展示方法
文档预览
中文文档
6 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 11:24:36上传分享