CN117421730B - 一种基于集成学习的代码片段敏感信息检测方法 - Google Patents
一种基于集成学习的代码片段敏感信息检测方法 Download PDFInfo
- Publication number
- CN117421730B CN117421730B CN202311163836.9A CN202311163836A CN117421730B CN 117421730 B CN117421730 B CN 117421730B CN 202311163836 A CN202311163836 A CN 202311163836A CN 117421730 B CN117421730 B CN 117421730B
- Authority
- CN
- China
- Prior art keywords
- sensitive information
- code segment
- word
- sample
- num
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 16
- 239000011159 matrix material Substances 0.000 claims abstract description 6
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000011218 segmentation Effects 0.000 claims description 18
- 239000012634 fragment Substances 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000012550 audit Methods 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 claims description 3
- 230000002787 reinforcement Effects 0.000 claims description 3
- 238000012706 support-vector machine Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 230000014509 gene expression Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004579 scanning voltage microscopy Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于集成学习的代码片段敏感信息检测方法,包括S1、对训练样本进行预处理,初始化配置文件;S2、从训练样本中提取特征,建立特征矩阵;S3、建立SVM‑AdaBoost模型并对该模型进行训练;S4、用训练好的SVM‑AdaBoost模型检测待测代码片段,初步判断代码片段是否存在敏感信息,并对存在敏感信息对样本进行自动标记。本发明加强了代码片段中敏感信息的检测能力,减少了人工检测的成本,同时基于集成学习结合多个基学习器可以获得比任意单个基学习器都要好的检测效果。
Description
技术领域
本发明涉及网络空间安全领域,具体涉及一种基于集成学习的代码片段敏感信息检测方法。
背景技术
随着互联网的发展,资源共建、共享成为一种主流,互联网在为大众提供方便的同时也存在着越来越多的风险。其中较为突出的则是敏感信息泄露。大部分的WEB漏洞在漏洞扫描工具检测、WEB应用防火墙等的帮助下可以进行自动化检测和防御,但是敏感信息泄露属于人为的逻辑漏洞,通常难以避免和被自动化检测到。
无论是在企业生产还是个人学习中,代码共享都是一种常见的行为,通过代码共享,开发者可以提高开发效率,促进协同与合作,增加代码的可用性,提高代码质量,促进技术进步。常见的代码共享平台包括:GitHub,GitLab,Bitbucket,SourceForge等。虽然代码共享平台为开发者带来了极大的便利,但共享的代码片段中可能包含私钥、密码、API令牌等敏感信息,这是一个极具危害的网络安全问题。2017年,北卡罗来纳州立大学(NCSU)网络安全团队开展了一项关于敏感信息泄漏的研究课题,六个月期间扫描GitHub公共代码库数十亿个(约占文件总数13%)文件后发现,超过100000个代码库文件包含了API令牌和加密密钥等敏感信息,且每天有数千个新的代码库文件在泄露新的敏感信息。
虽然已经有许多专门的安全检测工具去检测特定的开源代码片段是否包含敏感信息,但是这种工具通常是根据指定关键字的正则表达式进行搜索,导致检测提示的告警结果数量巨大,但其中绝大部分是误报结果,而真正包含敏感信息的告警结果内容却又隐藏其中。如果仅靠人工检测再审核,需要耗费大量人工时间,不仅效率低下,而且成本高昂。因此自动化地对代码片段是否包含敏感信息进行检测和审核是非常有必要的。
集成学习是机器学习的重点研究领域之一,其优势在于能通过结合多个模型的预测结果,可以有效提高模型的精度;能把多个模型的预测结果结合起来,可以降低模型方差,使模型更加稳定;能通过结合不同的模型,可以有效降低过拟合的风险;能通过结合多个模型的预测结果,有效提高模型的泛化能力;能通过分析每个模型的预测结果,从而提高模型的可解释性。
发明内容
本发明的目的在于克服现有技术的至少一个不足,提供种基于集成学习的代码片段敏感信息检测方法,提高了检测代码片段中是否包含敏感信息的效率,降低了敏感信息泄露的风险,净化了网络环境,保障了网络空间安全。
本发明所采取的技术方案是:
一种基于集成学习的代码片段敏感信息检测方法,包括如下步骤:
S1、对训练样本进行预处理,初始化配置文件;
S2、从训练样本中提取特征,建立特征矩阵;
S3、建立SVM-AdaBoost模型并对该模型进行训练;
S4、用训练好的SVM-AdaBoost模型检测待测代码片段,初步判断代码片段是否存在敏感信息,并对存在敏感信息对样本进行自动标记。
在一些代码片段敏感信息检测方法的实例中,步骤S1包括如下步骤:将训练样本分为敏感信息样本和一般信息样本,遍历所有训练样本,提取出文件后缀名、关键字黑名单、关键字白名单,再手动添加目标域名,以数据字典形式写入配置文件config.json。
在一些代码片段敏感信息检测方法的实例中,提取文件后缀名的步骤包括:
遍历所有敏感信息样本和一般信息样本,提取出样本文件后缀名,保存为字典形式{后缀名:id}。其中id初始值为1,每得到一个新的后缀名则将其写入字典,并将id值加1。
在一些代码片段敏感信息检测方法的实例中,提取关键字黑名单、关键字白名单的步骤包括:
(1)遍历所有敏感信息样本,利用分词库将所有代码片段分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为所有不重复的单词词频总和,计算不重复单词平均词频average=unfilter_num/filter_num,若一个单词的词频大于average,则将该单词列入关键字黑名单;
(2)遍历所有一般信息样本,利用分词库将所有代码片段分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为所有不重复的单词词频总和,计算不重复单词平均词频average=unfilter_num/filter_num,若一个单词的词频大于average,则将该单词列入关键字白名单。在一些代码片段敏感信息检测方法的实例中,
在一些代码片段敏感信息检测方法的实例中,步骤S2提取的特征包括:
hit_domain_account:代码片段中包含的步骤S1中添加的目标域名的数量;
all_domain_account:代码片段中包含的域名的数量;具体的,可以通过正则表达式r'(?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63}',提取样本中出现的网络域名总数。
unfilter_secret_list:关键字黑名单中的单词后面不同值的集合;提取该特征的步骤为:
3.1)定义分词处理函数dispart():将除'~','!','@','#','%','^','_','$'以外的符号当作分词符对传入的参数进行分词处理,将分词后长度大于2的单词加入集合output,返回集合output。
(3.2)按行遍历样本,如果该行内容中含有config.json中关键字黑名单的关键字,则对该行调用dispart()函数进行分词处理,将分词后位于关键字后面的词加入集合unfilter_secret_list。
filter_secret_list:关键字黑名单中的单词后面疑似为密码且相似度低的集合;提取该特征的步骤为:
(4.1)遍历集合unfilter_secret_list,把当前遍历的词记作secret,绝大多数情况下,网络上应用的密码长度要求大于5位,小于等于5位的密码可视为自定义的无用密码,因此如果secret长度大于5,进入下一步,否则遍历下一个词。
(4.2)通过函数difflib.SequenceMatcher().quick_ratio()比较secret与unfilter_secret_list中其余词的相似性,若最大相似度小于0.5,则将当前secret加入集合filter_secret_list。
rows:代码片段的文本行数;具体可以通过count()函数统计获得。
hit_whitelist:代码片段中含有的关键字白名单中的词的数量;具体的,可以通过正则表达式提取关键字白名单中的单词在代码片段文本中出现的个数。
extID:样本文件后缀名编号。具体的,提取样本文件名后缀,在config.json中找到后缀名对应的编号。
在一些代码片段敏感信息检测方法的实例中,步骤S3中对典型的增强学习迭代算法—Adaboost算法加以改进,使用典型的机器学习算法—支持向量机SVM作为Adaboost的弱分类器,建立SVM-AdaBoost模型并对模型进行训练;将训练好的SVM-AdaBoost模型保存为svm-adaBoost.pkl文件。
在一些代码片段敏感信息检测方法的实例中,因为特征数量较少,样本数量一般,因此选择Gaussian kernel作为核函数,惩罚系数C默认选择1,用来提高分类精度和减少训练时间。
在一些代码片段敏感信息检测方法的实例中,步骤S4中使用训练好的SVM-AdaBoost模型对待测代码片段进行分类,根据分类结果对待测代码片段样本进行标记,模型判定为包含敏感信息的样本标记为1,判定为不包含敏感信息的样本标记为2。
在一些代码片段敏感信息检测方法的实例中,还包括S5、人工再次验证标记后的样本是否存在敏感信息。
在一些代码片段敏感信息检测方法的实例中,步骤S5中由于被判定为包含敏感信息的样本代码片段中的敏感信息存在过期、验证信息被更改、误判时,引入人工对敏感信息有效性进行验证和审核。
在一些代码片段敏感信息检测方法的实例中,所述敏感信息包括但不限于私钥、令牌、密码、身份识别信息。
本发明的有益效果是:
本发明一些实例的检测方法,人工介入少,自动化程度高,检测效率高,误判率低,降低了敏感信息泄露的风险,净化了网络环境,保障了网络空间安全。
本发明一些实例的检测方法,加强了代码片段中敏感信息的检测能力,减少了人工检测的成本,同时基于集成学习结合多个基学习器可以获得比任意单个基学习器都要好的检测效果。
附图说明
图1是本发明基于集成学习的代码片段敏感信息检测方法流程图。
图2是本发明步骤S2中提取filter_secret_list和unfilter_secret_list流程图。
图3是本发明SVM-AdaBoost模型分类算法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
因原代码片段涉及真实的敏感信息,因此下面所有的代码片段实例中均使用'*'进行了脱敏处理。
如图1所示,本发明提供一种基于强化学习的代码片段敏感信息检测方法,包括如下步骤:
S1、对训练样本进行预处理,初始化配置文件;
更具体地,本步骤S1包括如下步骤:
(1)遍历所有敏感信息样本和一般信息样本文件,提取出文件后缀名,保存为字典形式{后缀名:id}。其中id初始值为1,每得到一个新的后缀名则将其写入字典,并将id值加1。
以敏感信息样本_config.yml,AAtest.js,api.md,application.yml,authorization_code.md为例,提取文件后缀名后得到后缀名字典ext_dict{“yml”:1,“js”:2,“md”:3}。
(2)遍历所有敏感信息样本,利用分词库将所有代码片段进行分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为所有不重复的单词词频总和,计算不重复单词平均词频average=unfilter_num/filter_num,若一个单词的词频大于average,则将该单词列入关键字黑名单blacklist,以集合形式保存。
以敏感信息样本application.yml,CdjxjyTest.java,email.php中的代码片段为例,代码片段如下:
对上述代码片段进行分词并统计词频后得到字典keyword_tmp:{'mail':1,'host':1,'smtp':3,'exmail':1,'com':1,'username':4,'n****ly':1,'password':4,'//设定验证内容':1,'creds':1,'new':1,'fud****3':1,'return':1,'array':2,'first':1,'b****a':1,'edu':1,'p:25':1,"'xy****aa":1}。单词词频总和unfilter_num为28,不重复的单词词频总和filter_num为19,不重复单词平均词频average为1.47368,词频大于average的词为['smtp','username','password','array'],将这些单词加入关键字黑名单blacklist,以集合形式保存。
(3)遍历所有一般信息样本,利用分词库将所有代码片段进行分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为所有不重复的单词词频总和,计算不重复的单词平均词频average=unfilter_num/filter_num,若一个单词的词频大于average,则将该单词列入关键字白名单whitelist,以集合形式保存。
(4)手动添加目标域名。例如,本次的检测目标要求是“xx.com”,“yy.com”相关资产,则将“xx.com”,“yy.com”加入域名列表domain。
(5)构造一个字典conf,将上述步骤中的后缀名字典ext_dict、关键字黑名单blacklist、关键字白名单whitelist、敏感域名domain保存至字典conf中,通过json.dump()将字典conf保存为config.json文件。
S2、从训练样本中提取特征,建立特征矩阵;
更具体地,本步骤S2包括如下步骤:
提取样本的数据特征,加上[-1,1]标签,转变成特征矩阵。如图2所示,具体特征及提取方法为:
(1)hit_domain_account:代码片段中包含的步骤S1中添加的目标域名的数量。通过正则表达式,提取样本中步骤S1中添加的目标域名数。以以下样本中的代码片段为例,代码片段如下:
若可能包含敏感信息代码片段的目标域名是edu.cn,则提取到的hit_domain_account为1。
(2)all_domain_account:代码片段中包含的域名的数量。通过正则表达式r'(?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63}'
提取样本中出现的网络域名总数,步骤(1)中代码片段为例,提取到的all_domain_account为2。
(3)unfilter_secret_list:关键字黑名单中的单词后面不同值的集合。提取该特征的步骤为:
(3.1)定义分词处理函数dispart():将除'~','!','@','#','%','^','_','$'以外的符号当作分词符对传入的参数进行分词处理,将分词后长度大于2的单词加入集合output,返回集合output。
(3.2)按行遍历样本,如果该行内容中含有config.json文件中关键字黑名单的关键字,则对该行调用dispart()函数进行分词处理,将分词后位于关键字后面的词加入集合unfilter_secret_list。
以下面代码片段为例:
<?php
$SQL_USER="d****it";
$SQL_PASSWORD="D****it@00";
$APP_ID="wx****e6";
$SECRET="720f14*****a6151";
$PAY_MCHID="1482330372";
$PAY_APPID="wx216b*****6170";
$PAY_SECRET="i23d8io********how02ow";
//test
//$SQL_PASSWORD="123456";
//$APP_ID="wx*******3ae699";
//$SECRET="668dae**********b7ffda7b3";
$MAIL_PASSWORD="its*****\$R";//smtp密码
?>
若关键字黑名单为['secret','password'],通过步骤(3)后可提取到secret,password后面的值,得到集合unfilter_secret_list:['d****it@00','720f14*****a6151',
'i23d8io********how02ow','123456','668dae**********b7ffda7b3','its*****\$r','smtp','密码']。
(4)filter_secret_list:关键字黑名单中的单词后面疑似为密码且相似度低的集合。提取该特征的步骤为:
(4.1)遍历集合unfilter_secret_list,把当前遍历的词记作secret,如果secret长度大于5,进入下一步,否则遍历下一个词。
(4.2)通过函数difflib.SequenceMatcher().quick_ratio()比较secret与unfilter_secret_list中其余词的相似性,若最大相似度小于0.5,则将当前secret加入集合filter_secret_list。
以步骤(3)中得到unfilter_secret_list为例,'smtp','密码'长度小于5,'668dae**********b7ffda7b3’与'720f14*****a6151'相似度大于0.5,因此最终得到filter_secret_list:['d****it@00','720f14*****a6151',
'i23d8io********how02ow','123456','668dae**********b7ffda7b3','its*****\$r',]。
(5)rows:代码片段的文本行数。通过count()函数统计获得。
(6)hit_whitelist:代码片段中含有的关键字白名单中的词的数量。通过正则表达式提取关键字白名单中的单词在代码片段中出现的个数。
[33]以关键字白名单[‘张三’,’ceshi’,’123456’]和下面代码为例:
[34]var client_id="张三";//申请的ID
var client_secret="123456";//申请的密码
var service="initService";
var scope="all";
[35]通过步骤(6),得到hit_whitelist的值为2。
(7)extID:样本文件后缀名编号。提取样本文件名后缀,在config.json中找到后缀名对应的编号。
[36]以步骤(1)中得到的后缀名字典ext_dict{“yml”:1,”js”:2,”md”:3},样本文件名为readme.md为例,提取到的extID为3。
S3、建立SVM-AdaBoost模型;
更具体地,如图3所示,本步骤S3包括如下步骤:
(1)初始化样本权重分布,每个样本权重相等。
(2)对样本训练多个SVM分类器,并为每个分类器计算其准确率。
(3)根据每个分类器的准确率计算其权重。分类器准确率越高,则其权重越大。
(4)将每个分类器的权重加权并结合,得到最终的分类器。
S4、使用训练好的SVM-AdaBoost模型对待测代码片段进行分类,根据结果对待测数据进行标记,模型判定为敏感信息样本的自动标记为1,判定为一般信息样本的自动标记为2。
S5、由于被判定为敏感信息样本的代码片段中泄露的敏感信息可能存在过期、验证信息被更改、误判等情况,因此需要人工对敏感信息的有效性、可利用性进行验证。
以上是对本发明所作的进一步详细说明,不可视为对本发明的具体实施的局限。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的简单推演或替换,都在本发明的保护范围之内。
Claims (6)
1.一种基于集成学习的代码片段敏感信息检测方法,其特征在于,包括如下步骤:
S1、对训练样本进行预处理,初始化配置文件;
S2、根据所述初始化配置文件从训练样本中提取特征,建立特征矩阵;
S3、利用特征矩阵建立SVM-AdaBoost模型并对该模型进行训练;
S4、用训练好的SVM-AdaBoost模型检测待测代码片段,初步判断代码片段是否存在敏感信息,并对存在敏感信息对样本进行自动标记;其中:
所述步骤S1包括如下步骤:将训练样本分为敏感信息样本和一般信息样本,遍历所有训练样本,提取出文件后缀名、关键字黑名单、关键字白名单,再手动添加目标域名,以数据字典形式写入配置文件;提取关键字黑名单、关键字白名单的步骤包括:
(1)遍历所有敏感信息样本,利用分词库将所有代码片段分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为去重后的单词数量,计算不重复单词平均词频average = unfilter_num / filter_num,若一个单词的词频大于average,则将该单词列入关键字黑名单;
(2)遍历所有一般信息样本,利用分词库将所有代码片段分词并统计词频,定义unfilter_num为所有单词词频的总和,定义filter_num为去重后的单词数量,计算不重复单词平均词频average = unfilter_num / filter_num,若一个单词的词频大于average,则将该单词列入关键字白名单;
所述步骤S3中对典型的增强学习迭代算法—Adaboost算法加以改进,使用典型的机器学习算法—支持向量机SVM作为Adaboost的弱分类器,建立SVM-AdaBoost模型并对模型进行训练;将训练好的SVM-AdaBoost模型保存为svm-adaBoost.pkl文件;
所述步骤S4中使用训练好的SVM-AdaBoost模型对待测代码片段进行分类,根据分类结果对待测代码片段样本进行标记,模型判定为包含敏感信息的样本标记为1,判定为不包含敏感信息的样本标记为2。
2.根据权利要求1所述的代码片段敏感信息检测方法,其特征在于,步骤S2提取的特征包括:
hit_domain_account:代码片段中包含的步骤S1中添加的目标域名的数量;
all_domain_account:代码片段中包含的域名的数量;
unfilter_secret_list:关键字黑名单中的单词后面不同值的集合;
filter_secret_list:关键字黑名单中的单词后面疑似为密码且相似度低的集合;
rows:代码片段的文本行数;
hit_whitelist:代码片段中含有的关键字白名单中的词的数量;
extID:样本文件后缀名编号。
3.根据权利要求1或2所述的代码片段敏感信息检测方法,其特征在于,还包括S5、人工再次验证标记后的样本是否存在敏感信息。
4.根据权利要求3所述的代码片段敏感信息检测方法,其特征在于,步骤S5中由于被判定为包含敏感信息的样本代码片段中的敏感信息存在过期、验证信息被更改、误判时,引入人工对敏感信息有效性进行验证和审核。
5.根据权利要求1所述的代码片段敏感信息检测方法,其特征在于,所述敏感信息包括私钥、令牌、密码、身份识别信息。
6.根据权利要求1所述的代码片段敏感信息检测方法,其特征在于,建立SVM-AdaBoost模型并对模型进行训练时,选择Gaussiankernel作为核函数,惩罚系数C默认选择1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311163836.9A CN117421730B (zh) | 2023-09-11 | 2023-09-11 | 一种基于集成学习的代码片段敏感信息检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311163836.9A CN117421730B (zh) | 2023-09-11 | 2023-09-11 | 一种基于集成学习的代码片段敏感信息检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117421730A CN117421730A (zh) | 2024-01-19 |
CN117421730B true CN117421730B (zh) | 2024-06-04 |
Family
ID=89527285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311163836.9A Active CN117421730B (zh) | 2023-09-11 | 2023-09-11 | 一种基于集成学习的代码片段敏感信息检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421730B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966031A (zh) * | 2015-07-01 | 2015-10-07 | 复旦大学 | 安卓应用程序中非权限相关隐私数据的识别方法 |
CN108171073A (zh) * | 2017-12-06 | 2018-06-15 | 复旦大学 | 一种基于代码层语义解析驱动的隐私数据识别方法 |
CN109359551A (zh) * | 2018-09-21 | 2019-02-19 | 深圳市璇玑实验室有限公司 | 一种基于机器学习的敏感图像识别方法与系统 |
CN109684840A (zh) * | 2018-12-20 | 2019-04-26 | 西安电子科技大学 | 基于敏感调用路径的Android恶意软件检测方法 |
WO2020215571A1 (zh) * | 2019-04-25 | 2020-10-29 | 平安科技(深圳)有限公司 | 一种识别敏感数据的方法、装置、存储介质及计算机设备 |
CN112131122A (zh) * | 2020-09-27 | 2020-12-25 | 北京软安科技有限公司 | 一种源代码缺陷检测工具误报评估方法及装置 |
CN112131120A (zh) * | 2020-09-27 | 2020-12-25 | 北京软安科技有限公司 | 一种源代码缺陷检测方法及装置 |
CN114996701A (zh) * | 2022-05-05 | 2022-09-02 | 天津理工大学 | 一种基于机器学习的安卓隐私泄露检测方法及系统 |
CN115455407A (zh) * | 2022-08-16 | 2022-12-09 | 北京比特易湃信息技术有限公司 | 一种基于机器学习的GitHub敏感信息泄露监控方法 |
CN115510455A (zh) * | 2022-10-13 | 2022-12-23 | 东南大学 | 一种基于串行集成学习的定向漏洞挖掘方法及系统 |
CN115774772A (zh) * | 2021-09-09 | 2023-03-10 | 中移物联网有限公司 | 一种敏感信息识别方法、装置及网络设备 |
-
2023
- 2023-09-11 CN CN202311163836.9A patent/CN117421730B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966031A (zh) * | 2015-07-01 | 2015-10-07 | 复旦大学 | 安卓应用程序中非权限相关隐私数据的识别方法 |
CN108171073A (zh) * | 2017-12-06 | 2018-06-15 | 复旦大学 | 一种基于代码层语义解析驱动的隐私数据识别方法 |
CN109359551A (zh) * | 2018-09-21 | 2019-02-19 | 深圳市璇玑实验室有限公司 | 一种基于机器学习的敏感图像识别方法与系统 |
CN109684840A (zh) * | 2018-12-20 | 2019-04-26 | 西安电子科技大学 | 基于敏感调用路径的Android恶意软件检测方法 |
WO2020215571A1 (zh) * | 2019-04-25 | 2020-10-29 | 平安科技(深圳)有限公司 | 一种识别敏感数据的方法、装置、存储介质及计算机设备 |
CN112131122A (zh) * | 2020-09-27 | 2020-12-25 | 北京软安科技有限公司 | 一种源代码缺陷检测工具误报评估方法及装置 |
CN112131120A (zh) * | 2020-09-27 | 2020-12-25 | 北京软安科技有限公司 | 一种源代码缺陷检测方法及装置 |
CN115774772A (zh) * | 2021-09-09 | 2023-03-10 | 中移物联网有限公司 | 一种敏感信息识别方法、装置及网络设备 |
CN114996701A (zh) * | 2022-05-05 | 2022-09-02 | 天津理工大学 | 一种基于机器学习的安卓隐私泄露检测方法及系统 |
CN115455407A (zh) * | 2022-08-16 | 2022-12-09 | 北京比特易湃信息技术有限公司 | 一种基于机器学习的GitHub敏感信息泄露监控方法 |
CN115510455A (zh) * | 2022-10-13 | 2022-12-23 | 东南大学 | 一种基于串行集成学习的定向漏洞挖掘方法及系统 |
Non-Patent Citations (3)
Title |
---|
Malware Detection Using Machine Learning;Prabhat Singh;《2021 International Conference on Technological Advancements and Innovations (ICTAI)》;20220114;全文 * |
基于HTTP数据包分析的安卓隐私泄露检测机制;黄锐聪;《软件导刊》;20210131;全文 * |
敏感数据的智能识别算法及自适应保护模型研究;何文竹;《贵州大学》;20210415;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117421730A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liao et al. | Soliaudit: Smart contract vulnerability assessment based on machine learning and fuzz testing | |
US10547628B2 (en) | Security weakness and infiltration detection and repair in obfuscated website content | |
Iqbal et al. | E-mail authorship verification for forensic investigation | |
CN109714341A (zh) | 一种Web恶意攻击识别方法、终端设备及存储介质 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
Spitters et al. | Authorship analysis on dark marketplace forums | |
Tsukerman | Machine Learning for Cybersecurity Cookbook: Over 80 recipes on how to implement machine learning algorithms for building security systems using Python | |
US20120189194A1 (en) | Mitigating use of machine solvable hips | |
CN107273752B (zh) | 基于词频统计和朴素贝叶斯融合模型的漏洞自动分类方法 | |
Chen et al. | {Cost-Aware} robust tree ensembles for security applications | |
Nowroozi et al. | An adversarial attack analysis on malicious advertisement URL detection framework | |
CN114595689B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
Dewanje et al. | A new malware detection model using emerging machine learning algorithms | |
CN112016317A (zh) | 基于人工智能的敏感词识别方法、装置及计算机设备 | |
AlGarni et al. | An efficient convolutional neural network with transfer learning for malware classification | |
Hara et al. | Machine-learning approach using solidity bytecode for smart-contract honeypot detection in the ethereum | |
CN112765660A (zh) | 一种基于MapReduce并行聚类技术的终端安全性分析方法和系统 | |
CN117195220A (zh) | 基于Tree-LSTM和BiLSTM的智能合约漏洞检测方法及系统 | |
CN115473726A (zh) | 一种识别域名的方法及装置 | |
CN106790025B (zh) | 一种对链接进行恶意性检测的方法及装置 | |
CN110020532B (zh) | 一种信息过滤方法、系统、设备及计算机可读存储介质 | |
CN111753299A (zh) | 一种基于分组集成的不平衡恶意软件检测方法 | |
CN114024761A (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN117421730B (zh) | 一种基于集成学习的代码片段敏感信息检测方法 | |
US20230039039A1 (en) | Process for determining a degree of data exposure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |