CN109670311A - 基于高级语义的恶意代码分析与检测方法 - Google Patents
基于高级语义的恶意代码分析与检测方法 Download PDFInfo
- Publication number
- CN109670311A CN109670311A CN201910156582.5A CN201910156582A CN109670311A CN 109670311 A CN109670311 A CN 109670311A CN 201910156582 A CN201910156582 A CN 201910156582A CN 109670311 A CN109670311 A CN 109670311A
- Authority
- CN
- China
- Prior art keywords
- code
- natural language
- description
- malicious code
- program
- 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
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。有益效果在于:通过本发明所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于高级语义的恶意代码分析与检测方法。
背景技术
恶意软件是指任何对计算机和网络存在着潜在危害的计算机软件。目前,恶意代码的数量和种类逐年增加,并且制作技术发展迅速,对全球网络环境安全带来巨大威胁。
现有技术对应用恶意代码检测提供了多种不同的技术思路。
如公布号为CN107688742A的发明专利公开了一种大规模快速移动应用APP检测和分析方法,该方法是通过反编译技术进行编译并获得应用的自然语言特征,然后通过使用面向DEX的特征图像处理技术得到该APP的DEX图像特征;利用HASH算法确定APP是否重打包应用,如确定为重打包应用,则通过判断自然语言特征、DEX图像特征及APP重打包三者的参数值之和是否超过设定阈值对APP检测和分析,该方法的本质是对APP应用特征参数进行提取和判断,并采用HASH算法对特征参数进行计算,并根据计算结果确定APP应用的安全型。
又如公布号为CN107180191A的发明专利公开了一种基于半监督学习的恶意代码分析方法和系统,该方法通过提取恶意代码的静态特征与动态特征,然后对特征参数分析并对其进行重要性排名,根据排名进行进一步检测。
又如公布号为CN106096405A的发明专利公开了一种基于Dalvik指令抽象的Android恶意代码检测方法,该方法首先根据现有确定恶意代码建立恶意代码检测模型,然后对待检测APP进行反编译处理获得应用特征参数,最后将待检测APP应用的特征参数与恶意代码检测模型进行比较,以此进行恶意代码检测。
又如公布号CN106951782A的发明专利公开了一种面向安卓应用的恶意代码检测方法,该方法是在服务器端通过随机森林算法对预先提取的应用特征值进行分析,由此建立应用和恶意代码关系数据库,终端上传应用代码样本,从数据库服务器中拿到数据进行匹配,得到检测结果。
但对现有技术分析可见,无论是动态检测还是静态检测,均是基于代码的特征参数进行对比分析实现对恶意代码的判定,不同点在于对代码的特征参数处理方式有所不同。
基于特征参数(敏感元素及代码结构等)的恶意代码检测存在较大的技术缺陷,主要体现如下:
恶意代码语义分析多基于动态行为层上的语义分析,需要动态执行,由于触发条件的局限性,不能充分提炼出代码完整的行为特征,阻碍进一步语义分析。此外,由于语义特征较少,当前的语义分析方法多依赖于专家经验,制定相应的语义规则,进行规则匹配实现恶意代码检测,检测效果受限于特定的规则。
代码的静态分析少有覆盖大量代码的语义分析,大量的研究工作多基于静态分析从代码中提取敏感元素、代码结构等特征,利用机器学习等算法进行决策分类。此类方法依赖于大量的带标注样本,且无法检测新式的恶意应用。
也即现有技术不能根据代码的最终行为目的进行检测,仅仅是根据代码中的某几个特征点进行程序的合法性判定,由此造成准确性不高的缺陷。
发明内容
本发明针对现有技术的不足,提出了一种基于高级语义的恶意代码分析与检测方法,从待检测应用全局出发,根据代码的全局行为目的进行分析,确定应用是否为或含有恶意代码,从而实现对现有及未来可能出现恶意代码进行准确识别。
利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。
本发明所所述技术方案的基本原理:基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测,
本发明所述技术方案的有益效果在于:通过本发明所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。
附图说明
图1为本发明所述一种基于高级语义的恶意代码分析与检测方法实现原理示意图。
具体实施方式
本发明给出了一种基于高级语义的恶意代码分析与检测方法实现的实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
图1给出了本发明所述一种基于高级语义的恶意代码分析与检测方法实现原理图。
基于高级语义的恶意代码分析与检测方法具体步骤为:
步骤一:获取应用程序的源代码;
步骤二:提取源代码中的关键方法并确定关键方法之间的调用关系,同时提取串行序列;
步骤三:根据提取的串行序列,在线API查询并生成自然语言文本;
步骤四:构建恶意程序动机描述库,所述动机描述库根据恶意负载攻击模式描述生成基于自然语言的伪代码;
步骤五:根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。
具体的,实现针对Android平台开发的应用程序的恶意代码分析与检测方法具体为:
步骤一:通过逆向工程技术获取应用程序的源代码;可通过Dex2Jar,APKIDE等将dex中的二进制代码转换成Java代码,从而获取应用程序的高级语言的源代码;
步骤二:提取源代码中的关键方法以及方法之间的调用关系,构建源代码执行流程的串行序列,如果有多个程序入口,构建多个这样的串行序列;
步骤三:基于步骤二中所述的串行序列,查询Java语言的开发API文档,生成源代码的自然语言文本描述;
步骤四:根据已知恶意程序相关信息,基于自然语言描述的恶意程序概念、相应的恶意负载概念人工生成恶意负载攻击模式文本描述,并基于自然语言生成文本描述的伪代码,构建恶意程序动机描述库;
步骤五:最终根据构建的自然语言描述库,基于Doc2vec工具生成相应的文档向量表示;对程序生成的自然语言描述,同样基于Doc2vec生成对应的向量表示,与构建的自然语言描述库中的向量做相似性比对,设定恶意威胁的阈值,最终实现恶意代码的分析与检测。
进一步的,所述关键方法是指包含敏感元素的代码块。
进一步的,所述敏感元素包括敏感API、敏感action及敏感字符串。
申请人需要特别说明的是,本发明中所述的敏感API、敏感action及敏感字符串的具体指代是本领域技术人员所应掌握的基本知识,是软件开发过程中应当掌握的必备技能,因此,在本发明所述技术方案中,不对所述的敏感API、敏感action及敏感字符串进行详细解释和说明。
本发明所所述技术方案是利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。
本发明所所述技术方案的基本原理:基于当前成熟的自然语言分析的知识,通过自然语言描述恶意程序概念、相应的恶意负载构建恶意程序动机描述库,最终根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测,
本发明所述技术方案的有益效果在于:通过本发明所述技术方案能够全面准确地描述代码信息,提取的语义特征更加丰富,实时更新恶意程序动机描述库即可检测全部的恶意程序,包括未来出现的新式恶意程序。
以上对本发明所提供的一种基于高级语义的恶意代码分析与检测方法进行了详细介绍,本文中应用了实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (6)
1.一种基于高级语义的恶意代码分析与检测方法,其特征在于:利用逆向工程技术获得应用程序的源代码,将待检测代码转换成自然语言文本,并进行基于高级语义的恶意代码分析以确定代码的动机描述,并根据动机描述确定待检测代码是否为恶意代码。
2.如权利要求1所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述恶意代码分析与检测方法的具体步骤为:
步骤一:获取应用程序的源代码;
步骤二:提取源代码中的关键函数并确定关键函数之间的调用关系,同时提取串行序列;
步骤三:根据提取的串行序列,在线API查询并生成自然语言文本;
步骤四:构建恶意程序动机描述库,所述动机描述库根据恶意负载攻击模式描述生成基于自然语言的伪代码;
步骤五:根据构建的自然语言描述库对程序生成的自然语言描述利用自然语言相关技术进行文本分类,实现恶意代码的分析与检测。
3.如权利要求1所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述应用程序包括基于Android平台开发的APP应用。
4.如权利要求1或3所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:实现针对Android平台开发的应用程序的恶意代码分析与检测方法具体为:
步骤一:通过逆向工程技术获取应用程序的源代码;可通过Dex2Jar,APKIDE等将dex中的二进制代码转换成Java代码,从而获取应用程序的高级语言的源代码;
步骤二:提取源代码中的关键方法以及方法之间的调用关系,构建源代码执行流程的串行序列,如果有多个程序入口,构建多个这样的串行序列;
步骤三:基于步骤二中所述的串行序列,查询Java语言的开发API文档,生成源代码的自然语言文本描述;
步骤四:根据已知恶意程序相关信息,基于自然语言描述的恶意程序概念、相应的恶意负载概念人工生成恶意负载攻击模式文本描述,并基于自然语言生成文本描述的伪代码,构建恶意程序动机描述库;
步骤五:最终根据构建的自然语言描述库,基于Doc2vec工具生成相应的文档向量表示;对程序生成的自然语言描述,同样基于Doc2vec生成对应的向量表示,与构建的自然语言描述库中的向量做相似性比对,设定恶意威胁的阈值,最终实现恶意代码的分析与检测。
5.如权利要求4所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述关键方法是指包含敏感元素的代码块。
6.如权利要求5所述的一种基于高级语义的恶意代码分析与检测方法,其特征在于:所述敏感元素包括敏感API、敏感action及敏感字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910156582.5A CN109670311A (zh) | 2019-03-01 | 2019-03-01 | 基于高级语义的恶意代码分析与检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910156582.5A CN109670311A (zh) | 2019-03-01 | 2019-03-01 | 基于高级语义的恶意代码分析与检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109670311A true CN109670311A (zh) | 2019-04-23 |
Family
ID=66151517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910156582.5A Pending CN109670311A (zh) | 2019-03-01 | 2019-03-01 | 基于高级语义的恶意代码分析与检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670311A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143842A (zh) * | 2019-12-12 | 2020-05-12 | 广州大学 | 一种恶意代码检测方法及系统 |
CN112860362A (zh) * | 2021-02-05 | 2021-05-28 | 达而观数据(成都)有限公司 | 一种机器人自动化流程的可视化调试方法及调试系统 |
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
US20230385408A1 (en) * | 2022-05-31 | 2023-11-30 | Acronis International Gmbh | Antimalware Scan with Decompilation |
-
2019
- 2019-03-01 CN CN201910156582.5A patent/CN109670311A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143842A (zh) * | 2019-12-12 | 2020-05-12 | 广州大学 | 一种恶意代码检测方法及系统 |
CN111143842B (zh) * | 2019-12-12 | 2022-07-01 | 广州大学 | 一种恶意代码检测方法及系统 |
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
CN112860362A (zh) * | 2021-02-05 | 2021-05-28 | 达而观数据(成都)有限公司 | 一种机器人自动化流程的可视化调试方法及调试系统 |
CN112860362B (zh) * | 2021-02-05 | 2022-10-04 | 达而观数据(成都)有限公司 | 一种机器人自动化流程的可视化调试方法及调试系统 |
US20230385408A1 (en) * | 2022-05-31 | 2023-11-30 | Acronis International Gmbh | Antimalware Scan with Decompilation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737899B (zh) | 一种基于机器学习的智能合约安全漏洞检测方法 | |
CN109670311A (zh) | 基于高级语义的恶意代码分析与检测方法 | |
CN107967208B (zh) | 一种基于深度神经网络的Python资源敏感缺陷代码检测方法 | |
CN105069355B (zh) | webshell变形的静态检测方法和装置 | |
CN104123493B (zh) | 应用程序的安全性检测方法和装置 | |
CN108268777B (zh) | 一种利用补丁信息进行未知漏洞发现的相似性检测方法 | |
CN106503558B (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
CN106951780B (zh) | 重打包恶意应用的静态检测方法和装置 | |
Kamtuo et al. | Machine Learning for SQL injection prevention on server-side scripting | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
CN109271788B (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
KR102058966B1 (ko) | 악성 어플리케이션 탐지 방법 및 그 장치 | |
CN108229170B (zh) | 利用大数据和神经网络的软件分析方法和装置 | |
CN109992969B (zh) | 一种恶意文件检测方法、装置及检测平台 | |
CN112733156A (zh) | 基于代码属性图的软件脆弱性智能检测方法、系统及介质 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN106874762B (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
CN113297580B (zh) | 基于代码语义分析的电力信息系统安全防护方法及装置 | |
CN109933977A (zh) | 一种检测webshell数据的方法及装置 | |
CN116702160B (zh) | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 | |
CN109902487B (zh) | 基于应用行为的Android应用恶意性检测方法 | |
Nugraha et al. | Malware detection using decision tree algorithm based on memory features engineering | |
CN117725592A (zh) | 一种基于有向图注意力网络的智能合约漏洞检测方法 | |
CN111898126A (zh) | 一种基于动态获取用户界面的Android重打包应用检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190423 |
|
WD01 | Invention patent application deemed withdrawn after publication |