[发明专利]一种基于PCA的密码硬编码检测方法、装置及介质有效
| 申请号: | 202010917043.1 | 申请日: | 2020-09-03 |
| 公开(公告)号: | CN112131570B | 公开(公告)日: | 2022-06-24 |
| 发明(设计)人: | 闫利华 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56 |
| 代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 pca 密码 编码 检测 方法 装置 介质 | ||
1.一种基于PCA的密码硬编码检测方法,其特征是,包括以下步骤:
步骤一,数据搜集,搜集密码硬编码误报的数据所在的函数代码块;
步骤二,提取步骤一所搜集的函数代码块中的特征值,得到特征集;
步骤三,利用步骤一中搜集到的函数代码块作为样本构建PCA模型;
步骤四,基于步骤三构建的PCA模型及步骤二得到的特征集,检测密码硬编码是否存在误报;
所述步骤三的具体步骤为:
步骤3.1,步骤一中搜集到的函数代码块为样本,个数为n,n为大于0的整数,每个样本有m种属性,m为大于0的整数,则每个样本提取一组特征集F得到F=(F1,F2...Fm),其中,Fm为样本的第m个属性;
步骤3.2,计算协方差矩阵C;
步骤3.3,采用奇异值分解,获取协方差矩阵C的特征值和对应的特征向量;
步骤3.4,将特征向量按对应特征值大小从上到下按行排列成矩阵U;
所述步骤3.2的具体步骤为:
是普通的变量,指的是特征值标准化后的值;为第i个特征的值,i取值范围是[1,m],Fj为样本的第j个属性;j的取值范围[1,m];
指的是第n个样本的第m个特征的值;
所述步骤四的具体步骤为:
步骤4.1,对待检测的代码段,利用步骤二的方法提取出特征值,得到特征集;
步骤4.2,计算步骤4.1得到的特征集与矩阵U距离d;
步骤4.3,设置阈值σ,所述步骤4.2计算得到的距离在阈值范围内都属于误报。
2.如权利要求1所述一种基于PCA的密码硬编码检测方法,其特征是,所述步骤一中,根据实际的fortify代码扫描的项目代码,检测误报的密码硬编码数据,搜集该误报的密码硬编码数据所在的函数代码块,该函数代码块为初始的样本数据。
3.如权利要求1所述一种基于PCA的密码硬编码检测方法,其特征是,所述步骤二中,提取的函数代码块中的特征值包括代码长度、函数返回值类型、调用key的返回值类型、key在异常代码中调用的次数、代码块中包含的关键字个数及注释中包含的关键字个数。
4.如权利要求3所述一种基于PCA的密码硬编码检测方法,其特征是,所述key为函数中被赋值为字符串的变量。
5.如权利要求3所述一种基于PCA的密码硬编码检测方法,其特征是,所述代码块中包含的关键字包括:‘key’、‘password’、‘pwd’、‘passwd’、‘encryption’、‘decrypt’、‘generate’、‘SHA256’、‘AES’或‘DES’。
6.一种基于PCA的密码硬编码检测装置,其特征是,采用权利要求1-5任意一项所述的一种基于PCA的密码硬编码检测方法进行检测,包括:
数据搜集模块,用于数据搜集,搜集密码硬编码误报的数据所在的函数代码块;
特征集计算模块,用于提取函数代码块的特征值,得到特征集;
PCA模型构建模块,用于构建PCA模型;
检测模块,用于检测密码硬编码是否存在误报。
7.一种计算机可读存储介质,其特征是,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任意一项所述的一种基于PCA的密码硬编码检测方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010917043.1/1.html,转载请声明来源钻瓜专利网。





