CN109543408A - 一种恶意软件识别方法和*** - Google Patents

一种恶意软件识别方法和*** Download PDF

Info

Publication number
CN109543408A
CN109543408A CN201811265151.4A CN201811265151A CN109543408A CN 109543408 A CN109543408 A CN 109543408A CN 201811265151 A CN201811265151 A CN 201811265151A CN 109543408 A CN109543408 A CN 109543408A
Authority
CN
China
Prior art keywords
malware
contrast characteristic
strings
string
software
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.)
Granted
Application number
CN201811265151.4A
Other languages
English (en)
Other versions
CN109543408B (zh
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.)
Aspire Digital Technologies Shenzhen Co Ltd
Original Assignee
Aspire Digital Technologies Shenzhen Co Ltd
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 Aspire Digital Technologies Shenzhen Co Ltd filed Critical Aspire Digital Technologies Shenzhen Co Ltd
Priority to CN201811265151.4A priority Critical patent/CN109543408B/zh
Publication of CN109543408A publication Critical patent/CN109543408A/zh
Application granted granted Critical
Publication of CN109543408B publication Critical patent/CN109543408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种恶意软件识别方法和***,方法包括:解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从smali代码中提取对应的特征编码,计算特征编码的哈希值以生成特征串;将特征串与对比集合中的对比特征串集合进行交叉对比,对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;计算对比中标的比例,当比例大于阈值则判断待检测软件为恶意软件。***用于执行方法。通过根据路径层级/类名/方法名的提取规则合适的特征串,根据特征串和对比特征串集合的中标比例以判断是否属于恶意软件,能够准确判断软件是否类似现有恶意软件或者属于恶意软件的变异。

Description

一种恶意软件识别方法和***
技术领域
本发明涉及手机安全技术领域,尤其是一种恶意软件识别方法和***。
背景技术
作为数据处理、传输的终端,软件的安全性的要求不言而喻,现有的安全方案包括1、利用文件签名方案和文件哈希值校验进行恶意软件的检测,适用于已知恶意软件的查杀,或者识别相同开发者发布的恶意软件;2、分析程序的基本块并得到其流程图,将API全路径哈希编码值与其连接关系组成的图指纹作为恶意行为特征,然后利用子图同构理论进行恶意软件的行为匹配;这两种方案的缺点在于:利用文件签名方案进行恶意软件检测,针对恶意软件二次打包或进行签名替换会导致方案1的失败;而方案2需分析程序的基本块并得到其流程图,将API全路径哈希编码值与其连接关系组成的图指纹作为恶意行为特征,如果API路径发生细微变化,或者恶意软件中增加防逆向代码保护措施导致流程图稍不准确,现有方案就无法有效识别。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种恶意软件识别方法和***。
本发明所采用的技术方案是:一种恶意软件识别方法,包括步骤:S1、解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;S2、将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;S3、计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件。
优选的,还包括步骤S0:采集已有的恶意软件,解析所述恶意软件以获取行为逻辑代码,根据预设的提取规则从所述行为逻辑代码中提取对应的特征编码,计算特征编码的哈希值以生成对比特征串,根据行为逻辑代码的目的区别所述对比特征串为对比特征串集合。
优选的,所述计算对比中标的比例的具体步骤包括:记录所述特征串与对比特征串集合的匹配个数M,对应的,对比中标的比例
本发明所采用的技术方案是:一种恶意软件识别***,包括:处理模块,用于解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;对比模块,用于将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;判断模块,用于计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件。
优选的,还包括预处理模块,用于采集已有的恶意软件,解析所述恶意软件以获取行为逻辑代码,根据预设的提取规则从所述行为逻辑代码中提取对应的特征编码,计算特征编码的哈希值以生成对比特征串,根据行为逻辑代码的目的区别所述对比特征串为对比特征串集合。
优选的,所述计算对比中标的比例的具体步骤包括:记录所述特征串与对比特征串集合的匹配个数M,对应的,对比中标的比例
本发明的有益效果是:
本发明通过根据路径层级/类名/方法名的提取规则合适的特征串,根据特征串和对比特征串集合的中标比例以判断是否属于恶意软件,能够准确判断软件是否类似现有恶意软件或者属于恶意软件的变异。
附图说明
图1是本发明的一种恶意软件识别方法的示意图;
图2是本发明的恶意软件判断流程图;
图3是本发明一种恶意软件识别***的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1,
本实施例的目的在于说明现有技术的缺点和本发明的解决思路。
恶意软件变种的显著特征是恶意行为的实现代码通常不会改变(即类名、方法名和逻辑不变),改变的是代码路径(即恶意代码的存放地址),只要路径稍作改动就可以快速发布多个恶意软件变种。恶意软件识别如果仅根据文件的哈希值进行查杀,或根据文件全路径进行比对,当恶意软件稍作变种,查杀就会失效。因此本实施例提供如图1所示的一种恶意软件识别方法,包括步骤:S0:采集已有的恶意软件,解析所述恶意软件以获取行为逻辑代码,根据预设的提取规则从所述行为逻辑代码中提取对应的特征编码,计算特征编码的哈希值以生成对比特征串,根据行为逻辑代码的目的区别所述对比特征串为对比特征串集合;S1、解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;S2、将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;S3、计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件。其中,具体的步骤包括:
S0:获取/采集已有的恶意软件(具体识别方式包括人工标示具体的软件,或者基于安全软件供应商提供的异常软件的数据库),采用逆向工程的方式解析这些已有的恶意软件,获得smali代码;在smali代码中进行分析,获取典型恶意行为代码(其原理是软件一定具备某种执行步骤,该步骤也一定会指向一种行为,例如打开手机/计算机的某种未授权功能,或者启动非法的数据流向,而这些行为所依据的代码/行为逻辑代码基本是行业内常用的,因为有能力根据目的编写非常用代码的人不需要仰赖非法软件来赚钱,同时即使存在这样的异类,也并非本实施例的主要应对目标;而恶意行为代码可以是根据使用者自身的能力进行定义,也可以是获取开源的安全软件供应商提供的数据);定位恶意行为代码,提取“路径/类名/方法名”;将“路径/类名/方法名”转换为包含“路径层级+类名+方法名”的原始特征码/特征编码(例如路径层级:第一层路径PATH_L1、第二层路径PATH_L2,n层路径就是PATH_Ln,则对应的一个恶意代码(即原始特征码)的具体实施例子就可以为PATH_L1/PATH_L2/MainService/.method public onCreate()V);对原始特征码计算哈希值后生成对比特征串(5EF20B2FA655F6C01BFEFFF5CADF36A7);将恶意代码的对比特征串集合在一起,形成此恶意软件的特征基准集(即对比特征串集合),同时根据不同的恶意行为(例如涉及启动支付软件的归为一类,发送短信的归为一类,具体可以根据实际需要由使用者自行设置)将不同类型的对比特征串集合以形成包括X个(不限定个数)用于作为判断软件恶意与否的基准的对比特征串集合,不同的对比特征串集合组成对比合集。
S1:具体类似于S0;
S2:如上述S0所述,对比特征串集合包括若干个对比特征串,因为针对不同行为逻辑(恶意行为及其目的),其代码也会显著不同,而本实施出于防止误判的可能性,需要多次进行交叉对比,即将待测试的软件所提取的特征串和对比特征串集合中的全部子集合(即实际的对比特征串)进行比对,当特征串和对比特征串A/B/C/D···进行一一对比,对比结果一致则为中标(即特征串和对比特征串一致),当中标的比例大于一定的阈值时,则说明这个特征串对应的软件和恶意软件很相似,则判断其为恶意软件,具体的对比中标的比例
实施例2
本实施例用于说明优选的方案。
实施例1所描述的对比合集,其倾向于说明同一恶意行为的软件的处理方式,执行一定行为的软件,其具体的实施步骤也包括很多个小步骤,这些小步骤所对应的对比特征串属于实施例1所描述的情况内。
而实际上发明需要面对的是多种恶意行为的软件的判断,即一开始是无法判断那一个才是最合适的对比特征串集合(即金融盗窃有一个对比特征串集合,信息窃取有一个对比特征串集合),两种恶意行为对应软件的逻辑行为的区别较大;而本实施例倾向于解释这种情况下的本发明的解决思路。
本实施例提供如图2所示的恶意软件判断流程:
S01、构建基于“路径层级+类名+方法名”的对比特征串合集(包括多种恶意行为对应的对比特征串合集,例如存在4种);
S02、解析待测试软件的smali代码以获取特征串;
S03、根据特征串和对比特征串合集的中标比例执行步骤S04或者步骤S05或步骤S06;
S04、当中标比例小于90%则认为其不属于当前的对比特征串合集,则更换步骤S03中的对比特征串合集并重新执行步骤S03;
S05、当中标比例大于90%则认为属于当前的对比特征串合集,则标记该待测试软件为恶意软件(更进一步的,如果该对比特征串合集为A1合集,则可以标记该待测试软件属于A1类型的恶意软件),执行步骤S07;
S06、当所有的对比特征串合集的中标比例都小于90%,则判断待检测的软件属于正常软件,执行步骤S07;
S07、结束。
实施例3
本实施例目的是提供如图3所示的一种恶意软件识别***,包括:处理模块1,用于解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;对比模块2,用于将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;判断模块3,用于计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件,其中,处理模块1连接对比模块2,对比模块2连接判断模块3。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (6)

1.一种恶意软件识别方法,其特征在于,包括步骤:
S1、解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;
S2、将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;
S3、计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件。
2.根据权利要求1所述的恶意软件识别方法,其特征在于,还包括步骤S0:
采集已有的恶意软件,解析所述恶意软件以获取行为逻辑代码,根据预设的提取规则从所述行为逻辑代码中提取对应的特征编码,计算特征编码的哈希值以生成对比特征串,根据行为逻辑代码的目的区别所述对比特征串为对比特征串集合。
3.根据权利要求1所述的恶意软件识别方法,其特征在于,所述计算对比中标的比例的具体步骤包括:
记录所述特征串与对比特征串集合的匹配个数M,对应的,对比中标的比例
4.一种恶意软件识别***,其特征在于,包括:
处理模块,用于解析待检测软件的dex文件的smali代码,根据路径层级/类名/方法名的提取规则从所述smali代码中提取对应的特征编码,计算所述特征编码的哈希值以生成特征串;
对比模块,用于将所述特征串与对比集合中的对比特征串集合进行交叉对比,所述对比集合包括X个用于作为判断软件恶意与否的基准的对比特征串集合;
判断模块,用于计算对比中标的比例,当所述比例大于阈值则判断所述待检测软件为恶意软件。
5.根据权利要求4所述的一种恶意软件识别***,其特征在于,还包括预处理模块,用于采集已有的恶意软件,解析所述恶意软件以获取行为逻辑代码,根据预设的提取规则从所述行为逻辑代码中提取对应的特征编码,计算特征编码的哈希值以生成对比特征串,根据行为逻辑代码的目的区别所述对比特征串为对比特征串集合。
6.根据权利要求4所述的一种恶意软件识别***,其特征在于,所述计算对比中标的比例的具体步骤包括:
记录所述特征串与对比特征串集合的匹配个数M,对应的,对比中标的比例
CN201811265151.4A 2018-10-29 2018-10-29 一种恶意软件识别方法和*** Active CN109543408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811265151.4A CN109543408B (zh) 2018-10-29 2018-10-29 一种恶意软件识别方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811265151.4A CN109543408B (zh) 2018-10-29 2018-10-29 一种恶意软件识别方法和***

Publications (2)

Publication Number Publication Date
CN109543408A true CN109543408A (zh) 2019-03-29
CN109543408B CN109543408B (zh) 2021-10-12

Family

ID=65845667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811265151.4A Active CN109543408B (zh) 2018-10-29 2018-10-29 一种恶意软件识别方法和***

Country Status (1)

Country Link
CN (1) CN109543408B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399729A (zh) * 2019-04-11 2019-11-01 国家计算机网络与信息安全管理中心 一种基于组件特征权重的二进制软件分析方法
CN111310184A (zh) * 2020-03-05 2020-06-19 北京安码科技有限公司 基于rich头部标识的pe文件特征码生成方法、***、电子设备及存储介质
CN114172703A (zh) * 2021-11-26 2022-03-11 杭州安恒信息技术股份有限公司 一种恶意软件识别方法、装置、介质
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables
US20220382862A1 (en) * 2021-05-28 2022-12-01 AO Kaspersky Lab System and method for detecting potentially malicious changes in applications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2199941A2 (en) * 2008-12-18 2010-06-23 Symantec Corporation Methods and systems for detecting malware
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、***及设备
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法
CN104252595A (zh) * 2013-06-28 2014-12-31 贝壳网际(北京)安全技术有限公司 应用程序的分析方法、装置和客户端
CN106933642A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 应用程序的处理方法及处理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2199941A2 (en) * 2008-12-18 2010-06-23 Symantec Corporation Methods and systems for detecting malware
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、***及设备
CN104252595A (zh) * 2013-06-28 2014-12-31 贝壳网际(北京)安全技术有限公司 应用程序的分析方法、装置和客户端
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法
CN106933642A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 应用程序的处理方法及处理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399729A (zh) * 2019-04-11 2019-11-01 国家计算机网络与信息安全管理中心 一种基于组件特征权重的二进制软件分析方法
CN110399729B (zh) * 2019-04-11 2021-04-27 国家计算机网络与信息安全管理中心 一种基于组件特征权重的二进制软件分析方法
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables
CN111310184A (zh) * 2020-03-05 2020-06-19 北京安码科技有限公司 基于rich头部标识的pe文件特征码生成方法、***、电子设备及存储介质
US20220382862A1 (en) * 2021-05-28 2022-12-01 AO Kaspersky Lab System and method for detecting potentially malicious changes in applications
CN114172703A (zh) * 2021-11-26 2022-03-11 杭州安恒信息技术股份有限公司 一种恶意软件识别方法、装置、介质

Also Published As

Publication number Publication date
CN109543408B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
CN109543408A (zh) 一种恶意软件识别方法和***
CN109299135B (zh) 基于识别模型的异常查询识别方法、识别设备及介质
CN110233849B (zh) 网络安全态势分析的方法及***
CN108989150B (zh) 一种登录异常检测方法及装置
CN102279786B (zh) 一种监测应用程序有效访问量的方法及装置
CN102664875A (zh) 基于云模式的恶意代码类别检测方法
CN108418777A (zh) 一种钓鱼邮件检测方法、装置及***
Xiao et al. From patching delays to infection symptoms: Using risk profiles for an early discovery of vulnerabilities exploited in the wild
CN109886016B (zh) 用于检测异常数据的方法、设备和计算机可读存储介质
CN105718795B (zh) Linux下基于特征码的恶意代码取证方法及***
CN105072214A (zh) 基于域名特征的c&c域名识别方法
CN113132311A (zh) 异常访问检测方法、装置和设备
CN106998336B (zh) 渠道中的用户检测方法和装置
CN110334510A (zh) 一种基于随机森林算法的恶意文件检测技术
CN108171057B (zh) 基于特征匹配的Android平台恶意软件检测方法
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN111368894B (zh) 一种fcbf特征选择方法及其在网络入侵检测中的应用
CN114285587A (zh) 域名鉴别方法和装置、域名分类模型的获取方法和装置
US9323987B2 (en) Apparatus and method for detecting forgery/falsification of homepage
CN115982713A (zh) 漏洞修复方法、装置、电子设备和计算机可读存储介质
CN109324985A (zh) 一种基于机器学习的自动适应场景的sql注入识别方法
Periyasamy et al. Prediction of future vulnerability discovery in software applications using vulnerability syntax tree (PFVD-VST).
US20190156024A1 (en) Method and apparatus for automatically classifying malignant code on basis of malignant behavior information
CN111209567B (zh) 提高检测模型鲁棒性的可知性判断方法及装置
KR101792631B1 (ko) 퍼지 해싱을 사용한 함수의 api 기반 소프트웨어의 유사성 측정방법 및 그 시스템

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518000 w601, Shenzhen Hong Kong industry university research base, 015 Gaoxin South 7th Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: ASPIRE DIGITAL TECHNOLOGIES (SHENZHEN) Co.,Ltd.

Address before: 518000 south wing, 6th floor, west block, Shenzhen Hong Kong industry university research base building, South District, high tech Industrial Park, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: ASPIRE DIGITAL TECHNOLOGIES (SHENZHEN) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant