[发明专利]一种基于PCA的密码硬编码检测方法、装置及介质有效
| 申请号: | 202010917043.1 | 申请日: | 2020-09-03 |
| 公开(公告)号: | CN112131570B | 公开(公告)日: | 2022-06-24 |
| 发明(设计)人: | 闫利华 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56 |
| 代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 pca 密码 编码 检测 方法 装置 介质 | ||
本发明公开了一种基于PCA的密码硬编码检测方法、装置及介质,检测方法包括:步骤一,数据搜集,搜集密码硬编码误报的数据所在的函数代码块;步骤二,提取步骤一所搜集的函数代码块中的特征值,得到特征集;步骤三,利用步骤一中搜集到的函数代码块作为样本构建PCA模型;步骤四,基于步骤三构建的PCA模型及步骤二得到的特征集,检测密码硬编码是否存在误报。本发明的方法降低了代码扫描中对硬编码检测的误报率,提高了开发人员和代码审核人员的工作效率。
技术领域
本发明涉及密码硬编码检测技术领域,尤其涉及一种基于PCA的密码硬编码检测方法、装置及介质。
背景技术
密码硬编码就是将密码以明文的形式直接写到代码中,这种方式可能给企业、客户带来严重的安全风险。主要危害表现在两个方面:(1)只要能够拿到该代码的人都能够获得该用户名和密码;(2)在代码投入使用之后,必须对软件进行修补才能更改加密密钥。如果受加密密钥保护的帐户遭受入侵,系统所有者将必须在安全性和可用性之间做出选择。
因此,为了降低存在的安全风险,会在代码投入使用之前对其进行安全扫描,常用的扫描工具有fortify扫描工具。Fortify是一款静态代码扫描工具,可以帮助程序员分析源码漏洞,一旦检测出安全问题,安全编码规则包会提供有关问题的信息。但是fortify对密码硬编码的误报率非常高,为了确认是否是误报,开发人员需要对fortify扫描出来的密码硬编码问题逐一的进行二次核实确认。对误报的情况,需要把其添加到过滤规则中去。如果密码硬编码的误报比较多,这会极其降低开发人员的工作效率。
人工进行二次复核的方式存在以下两个问题:
1、开发人员花费大量的精力用在复核和记录上,降低开发效率。
2、在对项目代码进行安全审核时,需要对每个问题进行审核,降低了审核的效率。
所以,降低代码中密码硬编码的误报率是非常有必要的。
发明内容
本发明的目的就是为了解决上述问题,提供一种基于PCA的密码硬编码检测方法、装置及介质,可以降低代码扫描中对硬编码检测的误报率,提高代码扫描和代码审核的质量和效率。
为了实现上述目的,本发明采用如下技术方案:
一种基于PCA的密码硬编码检测方法,包括以下步骤:
步骤一,数据搜集,搜集密码硬编码误报的数据所在的函数代码块;
步骤二,提取步骤一所搜集的函数代码块中的特征值,得到特征集;
步骤三,利用步骤一中搜集到的函数代码块作为样本构建PCA模型;
步骤四,基于步骤三构建的PCA模型及步骤二得到的特征集,检测密码硬编码是否存在误报。
所述步骤一中,根据实际的fortify代码扫描的项目代码,检测误报的密码硬编码数据,搜集该误报的密码硬编码数据所在的函数代码块,该函数代码块为初始的样本数据。
所述步骤二中,提取的函数代码块中的特征值包括代码长度、函数返回值类型、调用key的返回值类型、key在异常代码中调用的次数、代码块中包含的关键字个数及注释中包含的关键字个数。
所述key为函数中被赋值为特定字符串的变量。
所述代码块中包含的关键字包括但不限于:‘key’、‘password’、‘pwd’、‘passwd’、‘encryption’、‘decrypt’、‘generate’、‘SHA256’、‘AES’或‘DES’。
所述步骤三的具体步骤为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010917043.1/2.html,转载请声明来源钻瓜专利网。





