CN108647497A - 一种基于特征提取的api密钥自动识别*** - Google Patents

一种基于特征提取的api密钥自动识别*** Download PDF

Info

Publication number
CN108647497A
CN108647497A CN201810403303.6A CN201810403303A CN108647497A CN 108647497 A CN108647497 A CN 108647497A CN 201810403303 A CN201810403303 A CN 201810403303A CN 108647497 A CN108647497 A CN 108647497A
Authority
CN
China
Prior art keywords
feature
classification
extraction
api
code
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.)
Pending
Application number
CN201810403303.6A
Other languages
English (en)
Inventor
黄诚
方勇
刘亮
薛敏
赵翠镕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Original Assignee
Sichuan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan University filed Critical Sichuan University
Priority to CN201810403303.6A priority Critical patent/CN108647497A/zh
Publication of CN108647497A publication Critical patent/CN108647497A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明设计一种基于特征提取的能够对源代码中的API密钥进行自动识别的***,通过构建不同编程语言的源代码中的API密钥的共性特征,使用基于机器学习的分类算法对源代码中的API密钥进行快速准确地自动识别。

Description

一种基于特征提取的API密钥自动识别***
技术领域
本发明设计一种基于特征提取的能够对源代码中的API密钥进行自动识别的***,通过构建不同编程语言中的源代码中的API密钥的共性特征,使用基于机器学习的分类算法从而实现自动准确地检测出源代码中API密钥的目的。
背景技术
随着开源代码社区和版本控制***的发展,越来越多包含API密钥的项目代码未经脱敏处理就被上传至托管平台。API密钥通常被作为一种身份认证凭据,其泄露可能导致相关服务被恶意利用,从而造成难以估量的经济损失。发展信息科技具有必须性,重视网络安全具有重要性,维护互联网安全已经上升到国家层面,如何自动准确地对不同编程语言的源代码中的API密钥进行识别成为了防止信息泄露领域中一个亟待解决的问题。
在互联网的高速发展下,各种各样的API泄露事件层出不穷。2013年,上万个Amazon Web Service(AWS)密钥被发现上传至开源代码仓库GitHub,部分API密钥被恶意调用;被发现的Uber密钥可用于发送Uber***通知。这些API密钥的泄露可能导致恶意用户以开发者的身份***相关服务,进而造成相关服务被滥用。
目前已有的API密钥识别***,如“Truffle Hog”工具通过检索GitHub代码库的代码提交记录和分支,结合密钥的高熵特性,能检测出疑似API密钥。但是这种方式的判定机制单一,误报率较高。而其他的检测方式:简单模式匹配、启发式过滤和基于源码程序切片等方式,检测的有效率都普遍较低。尽管这几种方式结合使用能达到100%的正确率,但是检测仅针对AWS和Facebook密钥,且样本数较少,代表性低,更不具有较好的适用性。由此可见, API密钥使用特征提取与机器学习实现自动精确地对不同编程语言中的源码中API密钥识别具有重要的研究意义。
针对API密钥的特征提取和自动识别主要解决的难题在于:
(1)如何对不同编程语言中的源代码中可疑的API密钥字符串进行分析及筛选。
(2)如何对提取的可疑API密钥进行基本特征、随机性特征提取,对字符串所在的源码结构特征进行提取。
(3)如何选取最优特征子集生成决策树,构建组合分类器,实现分类识别的功能。
本***重点对于以上三个问题进行解决,实现一个特征提取的API密钥自动识别***。
发明内容
该发明是采用人工筛选和分类标记、基于信息熵和对数似然的API密钥随机性特征提取技术、基于属性计数结合余弦距离计算代码属性相似度的源码结构特征提取技术、基于随机森林的分类算法等多项技术开发的先进***,通过对样本数据进行预处理,对其中的可疑API密钥字符串进行特征提取,通过分类组合器识别出不同编程语言中的源代码中的API密钥。
该发明旨在实现如下目标:(1)***对不同编程语言的项目中的代码文件训练转换,根据一定的规则筛选得到可疑字符串。***对数据处理结果进行准备的分类并投票,识别得到当前***中输入的代码中的API密钥。
(2)***能够对收集到的样本代码进行预处理,能将不同编程语言的代码处理得到可疑字符串。有将样本训练生成转换矩阵、代码文件梳理、代码分析、可疑字符串筛选的处理处理能力。
(3)***使用基于信息熵和对数似然的计算方式对字符串的随机性特征进行提取额,使用属性计数结合余弦距离计算代码属性相似度的方式对源码结构特征进行提取。
(4)***具备预处理能力,能够将样本训练师生成一阶马尔科夫转换矩阵,对项目样本代码进行分类标记,根据一定规则将代码中的可疑字符串筛选出来。
(5)***具备特征提取能力,可以通过对可疑字符串进行信息熵和对数似然计算,进行随机性特征提取,对于字符串所在的源码文件,通过利用属性计数的方式,结合余弦距离计算代码属性相似度提取源码结构特征。
为了实现上述目的,该发明采用了如下技术方案:基于特征提取的API密钥识别***主要包括三个部分:数据预处理、特征提取、分类识别
数据预处理主要包括训练样本集、分类标记和可疑字符串筛选。***这部分首先对网络***中收集到的项目样本代码进行初始化处理,分类标记。再根据一定的规则对可疑字符串进行筛选送入基于机器学习的特征提取器。
特征提取模型主要针对数据预处理得到可疑字符串,通过构建API密钥的基本特征对其进行提取,通过基于信息熵和对数似然的方式对随机性特征进行提取,通过对字符串所在的源码进行基于属性基数结合余弦距离计算代码属性相似度的方式进行源码结构特征提取。
分类识别模块主要对提取到的特征进行训练,根据基尼系数选取最优的特征子集,构造出多颗子决策树,以此构建组合分类器。同于对每一颗子树的训练都采用随机有放回抽样的方式,以防止出现过度拟合,并对每个子决策树的分类结果进行投票,以投票结果作为模型的分类识别结果。
附图说明
图1是本发明的API密钥自动识别模型图
具体实施方式:
该基于特征提取的API密钥自动识别***包括三个模块:数据预处理模块,特征提取及处理模块,分类识别模块。
如图1所示为***的API自动识别模型图,详细地介绍了API密钥识别***的相关设计及部署架构。通过对样本中的项目文件进行梳理,按一定规则分析并筛选出可疑字符串,将***的原始样本经过数据预处理,特征提取模块对可疑字符串进行基本特征、随机性特征提取,并对可疑字符串所在的源码进行结构特征提取,完成API密钥识别***三类共7个特征的提取。
本发明的工作过程是:
使用一系列数学方法对API密钥进行提取特征,使用基于信息熵和对数似然的计算方式对API密钥的随机性特征进行提取,使用属性计数的方式结合余弦距离计算代码属性相似度的方法对源码结构特征进行提取。同时使用基于随机森林算法对选取的三类共7个特征进行训练,根据基尼系数选取最优特征子集,构造出多颗子决策树,以此构建组合分类器,对每一颗子树的训练都采用随机有放回抽样的方式,防止出现过度拟合的情况。并对各个子决策树,对其分类结果进行投票,最后以投票结果作为分类识别结果。
其中,基于特征提取的API识别模型改良过程如下:
改进后的API密钥的特征提取过程不再使用简单模式匹配,启发式过滤或源码程序切片等方式。而是基于以上几种研究方式,对样本进行基本特征统计、源代码静态结构分析。选取字符串长度、特税字符占比、数字占比、元音字符占比作为API密钥的基本特征,同时,通过信息熵和对数似然两种计算方式对API密钥的随机性特征进行提取,使用属性计数结合余弦距离计算代码属性相似度的方式对静态源码结构特征进行提取。并且由于三类特征值的值域不一定,还要对特征值进行归一化处理,以降低值域不同对分类结构造成的影响。
API密钥字符串之间的后继概率很低,导致计算出的P(X)极小,以至于计算机内部没有足够的位来表示,而将其大致归零。为了改善这种数值下溢问题,采用对数似然估计进行处理。似然估计在数值上与相应概率相等,而对数处理也并不影响原似然估计的单调性。
模型中使用的随机森林算法对选取的三类共七个特征进行训练,根据基尼系数选取最优特征子集,构造多颗子决策树,以此构建组合分类器。对于每一颗子树的训练都采用有放回抽样的方式,能有效防止出现过度拟合的情况。当输出新的待测样本时,对各个子决策树对分类结果进行投票,最后以投票结果作为模型的分类结果。

Claims (4)

1.本发明公开了一种基于特征提取的API密钥自动识别模型,其特征包括以下步骤:
(1)步骤一:预处理数据,对项目中的代码文件进行梳理,再根据一定的规则筛选出可疑字符串;
(2)步骤二:将经过预处理得到的可疑字符串用一定的数学方法进行基本特征和随机性特征提取,对可疑字符串所在的源码结构特征进行提取;
(3)步骤三:对提取到的三类特征值进行归一化处理,以降低值域不同对分类结构造成的影响;
(4)步骤四:基于随机森林的分类识别方法对提取的三类共7个特征进行训练,构建组合分类器,并对分类结果进行投票,自动识别API密钥;
(5)步骤五:建立多级威胁身份,将对***产生威胁的数据进行身份信息提取并保存在身份特征库中,同时身份特征库对行为判定进行指导;
(6)步骤六:选取最优特征子集构造多棵子决策树,将对***输入的包含API密钥的源代码进行预处理,再对基本特征、随机性特征、源码结构特征进行提取并保存在特征库中,同时特征将对分类结果投票进行指导。
2.根据权利要求1所述的基于机器学习的特征提取和组合分类构建的多层决策树识别器,其特征在于:基于人工筛选和分类标记的样本处理方式;基于可疑字符串和源码文件的特征提取,包括对可疑字符串进行基本特征提取和基于信息熵与对数似然的随机性特征提取方法,对源码文件进行基于属性计数结合余弦距离计算代码属性相似度的源码结构特征提取;基于随机森林的分类识别方式,通过构造出多棵子决策树,以此构建组合分类器;通过对分类结果进行投票作为分类识别结果。
3.根据本权利要求1所述的API密钥自动识别,其特征在于:对输入不同编程语言的项目代码进行预处理,获取API密钥特征,包括基本特征、随机性特征和源码特征共三类7个特征;根据基尼系数选取最优特征子集构造多棵子决策树,构建组合分类识别器。
4.根据权利要求1所述的基于人工筛选和分类标记的预处理模型,其特征在于:根据语料库生成一阶马尔科夫转换矩阵,对测试样本集中的代码文件进行基于后缀名的梳理,根据一定的规则对代码文件进行分析,进一步筛选出可疑字符串。
CN201810403303.6A 2018-04-28 2018-04-28 一种基于特征提取的api密钥自动识别*** Pending CN108647497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810403303.6A CN108647497A (zh) 2018-04-28 2018-04-28 一种基于特征提取的api密钥自动识别***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810403303.6A CN108647497A (zh) 2018-04-28 2018-04-28 一种基于特征提取的api密钥自动识别***

Publications (1)

Publication Number Publication Date
CN108647497A true CN108647497A (zh) 2018-10-12

Family

ID=63748240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810403303.6A Pending CN108647497A (zh) 2018-04-28 2018-04-28 一种基于特征提取的api密钥自动识别***

Country Status (1)

Country Link
CN (1) CN108647497A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159697A (zh) * 2019-12-27 2020-05-15 支付宝(杭州)信息技术有限公司 一种密钥检测方法、装置及电子设备
CN112702157A (zh) * 2020-12-04 2021-04-23 河南大学 一种基于改进随机森林算法的分组密码体制识别方法
CN114417422A (zh) * 2022-01-26 2022-04-29 湖南快乐阳光互动娱乐传媒有限公司 一种代码仓库中敏感信息的自动保护方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN204759452U (zh) * 2015-07-09 2015-11-11 华南理工大学 一种基于视频烟雾多特征融合的交通火灾检测***
CN105389585A (zh) * 2015-10-20 2016-03-09 深圳大学 一种基于张量分解的随机森林优化方法及***
CN106105100A (zh) * 2014-03-18 2016-11-09 Twc专利信托公司 低延时、高负载、高容量api网关
US20160344543A1 (en) * 2015-05-19 2016-11-24 Coinbase, Inc. Security system forming part of a bitcoin host computer
CN107302474A (zh) * 2017-07-04 2017-10-27 四川无声信息技术有限公司 网络数据应用的特征提取方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106105100A (zh) * 2014-03-18 2016-11-09 Twc专利信托公司 低延时、高负载、高容量api网关
US20160344543A1 (en) * 2015-05-19 2016-11-24 Coinbase, Inc. Security system forming part of a bitcoin host computer
CN204759452U (zh) * 2015-07-09 2015-11-11 华南理工大学 一种基于视频烟雾多特征融合的交通火灾检测***
CN105389585A (zh) * 2015-10-20 2016-03-09 深圳大学 一种基于张量分解的随机森林优化方法及***
CN107302474A (zh) * 2017-07-04 2017-10-27 四川无声信息技术有限公司 网络数据应用的特征提取方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
薛敏 等: "源代码中API密钥自动识别技术研究", 《HTTP://KNS.CNKI.NET/KCMS/DETAIL/31.1289.TP.20170925.1717.008.HTML》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159697A (zh) * 2019-12-27 2020-05-15 支付宝(杭州)信息技术有限公司 一种密钥检测方法、装置及电子设备
CN111159697B (zh) * 2019-12-27 2022-06-03 支付宝(杭州)信息技术有限公司 一种密钥检测方法、装置及电子设备
CN112702157A (zh) * 2020-12-04 2021-04-23 河南大学 一种基于改进随机森林算法的分组密码体制识别方法
CN114417422A (zh) * 2022-01-26 2022-04-29 湖南快乐阳光互动娱乐传媒有限公司 一种代码仓库中敏感信息的自动保护方法和装置

Similar Documents

Publication Publication Date Title
CN111639497B (zh) 一种基于大数据机器学习的异常行为发现方法
CN111738011A (zh) 违规文本的识别方法及装置、存储介质、电子装置
CN106570513A (zh) 大数据网络***的故障诊断方法和装置
CN112905421A (zh) 基于注意力机制的lstm网络的容器异常行为检测方法
CN107360152A (zh) 一种基于语义分析的Web威胁感知***
CN111259219B (zh) 恶意网页识别模型建立方法、识别方法及***
CN109872162A (zh) 一种处理用户投诉信息的风控分类识别方法及***
CN111143838B (zh) 数据库用户异常行为检测方法
CN108647497A (zh) 一种基于特征提取的api密钥自动识别***
CN108229170A (zh) 利用大数据和神经网络的软件分析方法和装置
CN109067800A (zh) 一种固件漏洞的跨平台关联检测方法
CN116361815B (zh) 基于机器学习的代码敏感信息及硬编码检测方法及装置
CN112148997A (zh) 一种用于灾害事件检测的多模态对抗模型的训练方法和装置
CN108984514A (zh) 词语的获取方法及装置、存储介质、处理器
CN115277180A (zh) 一种区块链日志异常检测与溯源***
CN116318830A (zh) 一种基于生成对抗网络的日志入侵检测***
Harbola et al. Improved intrusion detection in DDoS applying feature selection using rank & score of attributes in KDD-99 data set
CN110889451A (zh) 事件审计方法、装置、终端设备以及存储介质
CN109753798A (zh) 一种基于随机森林与FastText的Webshell检测模型
CN112257076A (zh) 一种基于随机探测算法和信息聚合的漏洞检测方法
CN111783063A (zh) 一种操作的验证方法和装置
CN116226769A (zh) 一种基于用户行为序列的短视频异常行为识别方法
CN113259369B (zh) 一种基于机器学习成员推断攻击的数据集认证方法及***
CN115842645A (zh) 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质
CN113722230A (zh) 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181012

WD01 Invention patent application deemed withdrawn after publication