CN108205624B - 电子装置及检测恶意文件的方法 - Google Patents

电子装置及检测恶意文件的方法 Download PDF

Info

Publication number
CN108205624B
CN108205624B CN201611182164.6A CN201611182164A CN108205624B CN 108205624 B CN108205624 B CN 108205624B CN 201611182164 A CN201611182164 A CN 201611182164A CN 108205624 B CN108205624 B CN 108205624B
Authority
CN
China
Prior art keywords
dynamic link
execution file
import table
file
functions
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
Application number
CN201611182164.6A
Other languages
English (en)
Other versions
CN108205624A (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.)
Anjie Information Co., Ltd.
Original Assignee
Anjie Information 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 Anjie Information Co ltd filed Critical Anjie Information Co ltd
Priority to CN201611182164.6A priority Critical patent/CN108205624B/zh
Publication of CN108205624A publication Critical patent/CN108205624A/zh
Application granted granted Critical
Publication of CN108205624B publication Critical patent/CN108205624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种电子装置及检测恶意文件的方法。方法包括下列步骤。搜寻一执行文件,并拆解执行文件以得到一导入表。导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称。计算第一动态连结函式库与第二动态连结函式库之间的一距离。判断距离是否超过一门槛值。若距离超过门槛值,则检查执行文件中是否存在与导入表重复的内容。若执行文件中存在与导入表重复的内容,则执行文件为一恶意文件。

Description

电子装置及检测恶意文件的方法
技术领域
本发明是有关于一种电子装置及检测的方法,且特别是有关于一种电子装置及检测恶意文件的方法。
背景技术
随着网络技术的普及,很多资讯必须通过网络传递。当电子装置连上网络,一不小心就会受到恶意程序的攻击。现有的防毒技术是通过已知的恶意程序的特征值去检测及扫描文件,以找出恶意程序或恶意文件。举例来说,一般防毒软件主要通过已知的恶意程序的特征值去检测及扫描恶意文件。然而,此方法无法防止新型态的先进持续性威胁(AdvancedPersistent Threat,APT)及零时差(Zero-day)恶意程序的PE Infection攻击。因为,防毒软件公司并无这些新型态或客制化的恶意程序的特征值,故无法找出电子装置中的恶意程序或恶意文件。因此,如何有效的检测出电子装置中的恶意程序或恶意文件乃业界所重视的议题。
发明内容
本发明是有关于一种电子装置及检测恶意文件的方法,其利用检测恶意文件的方法快速筛选出疑似的恶意文件,再进一步准确确认疑似的恶意文件是否为恶意文件。
根据本发明的一实施例,提出一种检测恶意文件的方法。方法包括下列步骤。搜寻一执行文件,并拆解执行文件以得到一导入表(Import table)。导入表至少包括一第一动态连结函式库(Dynamic-link library,DLL)的名称及一第二动态连结函式库的名称。计算第一动态连结函式库与第二动态连结函式库之间的一距离。判断距离是否超过一门槛值。若距离超过门槛值,则检查执行文件中是否存在与导入表重复的内容。若执行文件中存在与导入表重复的内容,则判断执行文件为一恶意文件。
根据本发明的另一实施例,提供一种电子装置。电子装置包括一处理器及一储存单元。储存单元用以储存一执行文件。处理器用以搜寻执行文件,并拆解执行文件以得到一导入表。导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称。处理器计算第一动态连结函式库与第二动态连结函式库之间的一距离。处理器判断距离是否超过一门槛值。若距离超过门槛值,则处理器检查执行文件中是否存在与导入表重复的内容。若执行文件中存在与导入表重复的内容,则判断执行文件为一恶意文件。
下文是配合所附图式对本发明作详细说明如下。
附图说明
图1绘示电子装置的方块图。
图2绘示依照本发明的实施例的检测恶意文件的方法的流程图。
图3绘示导入表的一例的示意图。
图4绘示导入表的另一例的示意图。
图5绘示导入表的一例的示意图。
图6A绘示正常执行文件中的导入表及可移植执行文件标头的示意图。
图6B绘示被黑客新增地址的导入表的示意图。
其中,附图标记:
100:电子装置
102:处理器
104:储存单元
S202、S204、S206、S208、S210、S212、S214:流程步骤
300、400:导入表
400A、400B:区块
500:可移植执行文件标头
d1、d2、d3:距离
A:第一动态连结函式库的名称
B:第二动态连结函式库的名称
C:第三动态连结函式库的名称
D:第四动态连结函式库的名称
A1、A2、AM、B1、B2、BN、C1、C2、CP、D1、D2、DQ:函式的名称
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
图1绘示电子装置100的方块图。电子装置100包括一处理器102及一储存单元104。电子装置100例如可为桌上型电脑、笔记型电脑或平板电脑。储存单元104可为硬盘、记忆卡、记忆体,用以储存数据文件。
请参考第1及2图,图2绘示依照本发明的实施例的检测恶意文件的方法的流程图。首先,于步骤S202,处理器102搜寻一执行文件,并拆解执行文件以得到一导入表。具体来说,执行文件储存于储存单元104中,处理器102于储存单元104中搜寻执行文件。接着,处理器102拆解执行文件得到导入表。导入表为只读(Read only),记载执行文件导入了哪些动态连结函式库。请参考图3,图3绘示导入表300的一例的示意图。导入表300例如包括第一动态连结函式库的名称A、第二动态连结函式库的名称B及第三动态连结函式库的名称C。
于步骤S204,处理器102计算动态连结函式库与动态连结函式库之间的一距离。例如,处理器102计算出第一动态连结函式库与第二动态连结函式库之间的距离d1、第二动态连结函式库与第三动态连结函式库之间的距离d2。
接着,于步骤S206,处理器102判断距离是否超过一门槛值。若距离未超过门槛值,则进入步骤S208。若距离超过门槛值,则进入步骤S210。门槛值可为自定义的值。在一实施例中,门槛值是相关于多个正常动态连结函式库之间的距离的平均值及标准差。例如,门槛值为多个正常动态连结函式库之间的距离的平均值及加上两倍的标准差。然而,本发明的门槛值的定义不以此为限。请参考图3及4,图4绘示导入表300的另一例的示意图。每个动态连结函式库可包括多个函式,导入表300更包括动态连结函式库中的多个函式的名称及函式的地址。举例来说,导入表300包括第一动态连结函式库的名称A、第一动态连结函式库的多个函式的名称A1、A2、…、AM及各个函式的地址(例如是「0x00001、0x00005、…、0x00017」);第二动态连结函式库的名称B、第二动态连结函式库的多个函式的名称B1、B2、…、BN及各个函式的地址(例如是「0x00021、0x00025、…、0x00045」);第三动态连结函式库的名称C、第三动态连结函式库的多个函式的名称C1、C2、…、CP及各个函式的地址(例如是「0x00049、0x00053、…、0x00065」)。其中名称A1的函式为第一动态连结函式库中的第一个函式,名称AM的函式为第一动态连结函式库中的最后一个函式;名称B1的函式为第二动态连结函式库中的第一个函式,名称BN的函式为第二动态连结函式库中的最后一个函式;名称C1的函式为第三动态连结函式库中的第一个函式,名称CP的函式为第三动态连结函式库中的最后一个函式。
图3所述的第一动态连结函式库与第二动态连结函式库的距离d1是根据第一动态连结函式库中的最后一个函式的地址与第二动态连结函式库中的第一个函式的地址相减而得;第二动态连结函式库与第三动态连结函式库的距离d2是根据第二动态连结函式库中的最后一个函式的地址与第三动态连结函式库中的第一个函式的地址相减而得。也就是说,距离d1为0x00021-0x00017=10位元组(bytes);距离d2为0x00049-0x00045=4位元组。上述的函式的地址为相对虚拟地址(Relative Virtual Address,RVA)。
在一般程序编译时,程序所导入的动态连结函式库中的函式的地址会被定义好并记录于导入表中,且这些函式的地址之间的距离差距不会太大,例如大部分函式之间的距离为4~300位元组之间。我们发现若编译后所产生的执行文件遭到黑客攻击,黑客所新增的地址(以下称为恶意地址)与正常函式的地址之间的距离大部分会超过几万位元组。请再参考图3及4,处理器102计算出距离d1为4位元组、距离d2为4位元组。处理器102判断距离d1及距离d2皆未超过门槛值(假设门槛值为300位元组),表示导入表300没有被黑客新增恶意地址,则进入步骤S208,处理器102判断执行文件为正常文件。
请参考图5,图5绘示导入表400的一例的示意图。处理器102计算出距离d1为4、距离d2为4、距离d3为20100。处理器102判断距离d3超过门槛值(假设门槛值为300位元组),表示导入表400有可能被黑客新增恶意地址,则执行文件可能为恶意文件。接着,进入步骤S210,以进一步确认执行文件是否为恶意文件。
在步骤S206,可根据距离及门槛值快速筛选出哪些执行文件可能为恶意文件。在一实施例中,若门槛值设为多个正常动态连结函式库之间的距离的平均值及加上两倍的标准差,则筛选出恶意文件的准确率可达95%至97.5%(调整门槛值会改变准确率)。正常动态连结函式库之间的距离的平均值及标准差,可以利用新安装完成的系统进行测试计算,新安装完成的系统可假定为系统内所有文件均为正常文件,自新安装完成的一个或多个系统中搜寻所有执行文件,并计算各个执行文件中多个正常动态连结函式库之间的距离,可以自该些计算获得的距离计算平均值及标准差,作为设定本发明中门槛值的参考依据。在另一实施例中,若门槛值设为多个正常动态连结函式库之间的距离的两倍的标准差,则筛选出恶意文件的准确率可达97.5%。因此,在步骤S206,可通过距离是否超过门槛值可以快速筛选出疑似的恶意文件。接着,再通过步骤S210进一步准确确认是否为恶意文件。
在步骤S210,处理器102进一步检查执行文件中是否存在与导入表重复的内容,藉此决定执行文件是否为恶意文件。请参考图6A及6B,图6A绘示正常执行文件中的导入表300及可移植执行文件标头(PE header)500的示意图,图6B绘示被黑客新增恶意地址的导入表400的示意图。在图6A中,正常的程序在执行时,首先会读取可移植执行文件标头500的内容,依据可移植执行文件标头500的指标所指向的地址,可知接下来要读取导入表300的内容,以根据导入表300的内容载入并执行程序所用到的动态连结函式库。在图6B中,黑客的攻击手法(PE Infection攻击)如下所述。首先,复制导入表300的内容至空白(Padding)区块,如区块400A所示,也就是说区块400A的内容与导入表300的内容相同。接着,新增恶意地址,例如区块400B所示,也就是说区块400B的内容为新增的恶意地址。然后,修改可移植执行文件标头500的内容,使其指标指向导入表400。如此,在图6B的情况中,程序在执行时,首先会读取可移植执行文件标头500的内容,依据可移植执行文件标头500的指标读取导入表400的内容,以根据导入表400的内容载入及执行动态连结函式库及函式(包括正常的动态连结函式库及函式与恶意的动态连结函式库及函式)。
由于导入表300为只读,黑客不能新增恶意地址至导入表300中,因此黑客在攻击时一定会复制导入表300至空白区块,并新增恶意地址(如图6B所示)。藉由此特性,在步骤S210,可根据检查执行文件中是否存在有与导入表300内容相同的区块,来决定执行文件是否为恶意文件。
若执行文件中不存在有与导入表300内容相同的区块(如图6A所示),则进入步骤S212,表示执行文件并未被黑客攻击,则处理器102判断执行文件为正常文件。
若执行文件中存在有与导入表300内容相同的区块,例如图6B中的导入表300的内容与导入表400的区块400A的内容重复,表示执行文件已遭黑客攻击,则进入步骤S214,处理器102判断执行文件为恶意文件。在一实施例中,在步骤S214,若确定执行文件为恶意文件之后,处理器102更可根据导入表所记载的内容找出电子装置100中恶意的动态连结函式库及恶意函式。具体来说,请参考图5及6B,在确定执行文件为恶意文件之后(例如图6B的情况),处理器102可知导入表400的区块400B(也就是对应图5的第四动态连结函式库的名称D的内容)所记载内容为恶意动态连结函式库的名称及恶意函式的名称。藉此,处理器102可找出名称D的第四动态连结函式库为恶意文件,且名称D1、D2、…DQ的第四函式为恶意函式。
在步骤S210,可根据检查执行文件中是否存在与导入表重复的内容,判断执行文件是否为恶意文件,此判断方式的准确率可达100%。
基于上述,由于本发明并非通过特征值去检测及扫描恶意的动态连结函式库,而是通过被执行文件导入的动态连结函式库之间的距离,以及检查执行文件中是否存在与导入表重复的内容,决定执行文件是否为恶意文件并找出恶意动态连结函式库。因此,可有效防止新型态的先进持续性威胁及零时差恶意程序的PE Infection攻击。
熟习本发明所属领域的技艺者将想到,于此提出的本发明的多数修改及其他实施例,具有上述说明及相关图式中所提供的教导的益处。因此,应理解本发明并非受限于所揭露的具体实施例,且修改及其他实施例包括于以下的申请专利范围的范畴内。

Claims (14)

1.一种检测恶意文件的方法,其特征在于,包括:
搜寻一执行文件,并拆解该执行文件以得到一导入表,其中该导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称;
计算该第一动态连结函式库与该第二动态连结函式库之间的一距离;
判断该距离是否超过一门槛值,该门槛值是相关于多个正常动态连结函式库之间的距离的一平均值及一标准差;
若该距离未超过该门槛值,则判断该执行文件为正常文件;以及
若该距离超过该门槛值,则检查该执行文件中是否存在与该导入表重复的内容,若该执行文件中存在与该导入表重复的内容,则判断该执行文件为恶意文件。
2.根据权利要求1所述的方法,其特征在于,若该执行文件中不存在与该导入表重复的内容,则判断该执行文件为正常文件。
3.根据权利要求1所述的方法,其特征在于,该导入表更包括该第一动态连结函式库中的多个第一函式的名称与该些第一函式的地址,以及该第二动态连结函式库中的多个第二函式的名称与该些第二函式的地址,该距离为该些第一函式中的最后一个第一函式的地址与该些第二函式中的第一个第二函式的地址相减而得。
4.根据权利要求3所述的方法,其特征在于,该些第一函式的地址及该些第二函式的地址为相对虚拟地址。
5.根据权利要求3所述的方法,其特征在于,该门槛值为该平均值加上两倍的该标准差。
6.根据权利要求1所述的方法,其特征在于,该门槛值大于300位元组。
7.一种检测恶意文件的方法,其特征在于,包括:
搜寻一执行文件,并拆解该执行文件以得到一导入表,其中该导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称;
检查该执行文件中是否存在另一导入表的部分内容与该导入表的全部内容重复;以及
若该执行文件中存在与该导入表重复的内容,则判断该执行文件为恶意文件。
8.一种电子装置,其特征在于,包括:
一储存单元,用以储存一执行文件;以及
一处理器,用以搜寻该执行文件,并拆解该执行文件以得到一导入表,其中该导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称;
该处理器计算该第一动态连结函式库与该第二动态连结函式库之间的一距离,并判断该距离是否超过一门槛值,该门槛值是相关于多个正常动态连结函式库之间的距离的一平均值及一标准差;
其中若距离未超过该门槛值,则该处理器判断该执行文件为正常文件;
若该距离超过该门槛值,则该处理器检查该执行文件中是否存在与该导入表重复的内容,若该执行文件中存在与该导入表重复的内容,则该处理器判断该执行文件为恶意文件。
9.根据权利要求8所述的电子装置,其特征在于,若该执行文件中不存在与该导入表重复的内容,则该处理器判断该执行文件为正常文件。
10.根据权利要求8所述的电子装置,其特征在于,该导入表更包括该第一动态连结函式库中的多个第一函式的名称与该些第一函式的地址,以及该第二动态连结函式库中的多个第二函式的名称与该些第二函式的地址,该处理器将该些第一函式中的最后一个第一函式的地址与该些第二函式中的第一个第二函式的地址相减得到该距离。
11.根据权利要求10所述的电子装置,其特征在于,该些第一函式对应的地址及该些第二函式对应的地址为相对虚拟地址。
12.根据权利要求8所述的电子装置,其特征在于,该门槛值为该平均值加上两倍的该标准差。
13.根据权利要求8所述的电子装置,其特征在于,该门槛值大于300位元组。
14.一种电子装置,其特征在于,包括:
一储存单元,用以储存一执行文件;以及
一处理器,用以搜寻该执行文件,并拆解该执行文件以得到一导入表,其中该导入表至少包括一第一动态连结函式库的名称及一第二动态连结函式库的名称;
该处理器检查该执行文件中是否存在另一导入表的部分内容与该导入表的全部内容重复;以及
若该执行文件中存在与该导入表重复的内容,则该处理器判断该执行文件为恶意文件。
CN201611182164.6A 2016-12-20 2016-12-20 电子装置及检测恶意文件的方法 Active CN108205624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611182164.6A CN108205624B (zh) 2016-12-20 2016-12-20 电子装置及检测恶意文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611182164.6A CN108205624B (zh) 2016-12-20 2016-12-20 电子装置及检测恶意文件的方法

Publications (2)

Publication Number Publication Date
CN108205624A CN108205624A (zh) 2018-06-26
CN108205624B true CN108205624B (zh) 2021-09-17

Family

ID=62603034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611182164.6A Active CN108205624B (zh) 2016-12-20 2016-12-20 电子装置及检测恶意文件的方法

Country Status (1)

Country Link
CN (1) CN108205624B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013173729A1 (en) * 2012-05-18 2013-11-21 Cornell University Methods and systems for providing hardware security functions using flash memories
CN102981869B (zh) * 2012-11-05 2016-08-31 北京奇虎科技有限公司 一种系统启动项程序的运行处理方法和装置
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法

Also Published As

Publication number Publication date
CN108205624A (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
US10162967B1 (en) Methods and systems for identifying legitimate computer files
US10235520B2 (en) System and method for analyzing patch file
TWI622894B (zh) 電子裝置及偵測惡意檔案的方法
US20050021994A1 (en) Pre-approval of computer files during a malware detection
US20140096184A1 (en) System and Method for Assessing Danger of Software Using Prioritized Rules
US10853058B1 (en) Application similarity detection
JP5779334B2 (ja) 出力制御装置、出力制御プログラム、出力制御方法および出力制御システム
CN111460445A (zh) 样本程序恶意程度自动识别方法及装置
GB2485622A (en) Server detecting malware in user device.
JP2010182019A (ja) 異常検知装置およびプログラム
JP6000465B2 (ja) プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
US11601443B2 (en) System and method for generating and storing forensics-specific metadata
US11157620B2 (en) Classification of executable files using a digest of a call graph pattern
WO2023165257A1 (zh) 一种代码段动态度量方法、装置及电子设备
CN108205624B (zh) 电子装置及检测恶意文件的方法
WO2020007249A1 (zh) 一种操作系统安全主动防御方法及操作系统
KR102045500B1 (ko) 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램
CN106778276B (zh) 一种检测无实体文件恶意代码的方法及系统
US11599637B1 (en) Systems and methods for blocking malicious script execution
EP3848835B1 (en) Systems and methods for protecting against unauthorized memory dump modification
CN112685744B (zh) 一种利用栈相关寄存器检测软件漏洞的方法及装置
KR20130077184A (ko) 악성코드에 감염된 홈페이지 탐지 장치 및 방법
US11886584B2 (en) System and method for detecting potentially malicious changes in applications
GB2572637A (en) Detecting shared library hijacking
EP4095727A1 (en) System and method for detecting potentially malicious changes in applications

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190704

Address after: 10/F, No. 6, Section 4, Xinyi Road, Da'an District, 10683, Taipei City, Taiwan, China

Applicant after: Anjie Information Co., Ltd.

Address before: The new Taiwan Chinese Taiwan New Taipei City Xizhi District Five Road No. 88 8 floor

Applicant before: Acer Inc

GR01 Patent grant
GR01 Patent grant