CN102542196B - 一种恶意代码发现和预防方法 - Google Patents

一种恶意代码发现和预防方法 Download PDF

Info

Publication number
CN102542196B
CN102542196B CN201110375297.6A CN201110375297A CN102542196B CN 102542196 B CN102542196 B CN 102542196B CN 201110375297 A CN201110375297 A CN 201110375297A CN 102542196 B CN102542196 B CN 102542196B
Authority
CN
China
Prior art keywords
malicious code
kernel objects
title
kernel
objects
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
CN201110375297.6A
Other languages
English (en)
Other versions
CN102542196A (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.)
Beijing ahtech network Safe Technology Ltd
Original Assignee
Beijing Antiy Electronic Equipment 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 Beijing Antiy Electronic Equipment Co Ltd filed Critical Beijing Antiy Electronic Equipment Co Ltd
Priority to CN201110375297.6A priority Critical patent/CN102542196B/zh
Publication of CN102542196A publication Critical patent/CN102542196A/zh
Application granted granted Critical
Publication of CN102542196B publication Critical patent/CN102542196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种恶意代码发现和预防方法,该方法主要包括获取系统句柄信息步骤,获取系统内核对象信息步骤,内核对象过滤步骤,匹配处理步骤,创建内核对象步骤。本发明克服了恶意代码静态检测中启发式检测的不准确性问题;增加了恶意代码静态检测中恶意代码免杀者定位修改特征码的难度,使其免杀普通特征码的样本难以躲过本发明提出的检测方法;克服了动态监测中虚拟机检测执行指令数的限制;本发明克服了恶意代码预防方法中主动防御占用过多系统资源的问题。

Description

一种恶意代码发现和预防方法
技术领域
本发明涉及本计算机反病毒技术领域,尤其涉及一种在动态环境中检测和预防恶意代码的方法。
背景技术
在互联网高度开放的今天,恶意代码已经从原来的娱乐目的发展为经济,政治目的,已经从原来的简单经营模式发展为一条完整的地下产业链。这条完整的产业链包括:恶意代码制造者,恶意代码销售者,恶意代码使用者,恶意代码免杀支持者,恶意代码获取信息处理者(信息出售,将利益转变为合法性利益)。由于最顶端的恶意代码编写者数量较少限制了新技术病毒增加的速度缓慢,但大量的免杀支持者使恶意代码的变种快速的增加。所以,遏制恶意代码发展的方法就是打断这条产业链,作为技术角度出发,只能针对恶意代码最初的源码编译版本和恶意代码变种进行处理。
下面是当前恶意代码的检测和预防方法:
恶意代码检测方法包括:静态检测和动态监测。
静态检测:特征码检测(文件特征,内存特征,网络特征)是反病毒工程师通过分析恶意代码从中提出的一段二进制代码或者通过自动化提取的一段二进制代码。由于这段特征能够被大量的恶意代码免杀者接触到,而每个免杀者采用的修改方法有可能不相同,这样就产生大量的变种。启发式检测,根据恶意代码文件自身的特征进行经验型的判断。
动态检测:虚拟机检测,杀毒软件通过模拟指令使恶意代码运行在一个虚拟环境中,判断恶意代码的前多少条指令中是否存在恶意行为。
恶意代码预防方法:通过虚拟机检测的结果来判断是否让程序真正运行;主动防御是基于程序行为自主分析判断的实时防护技术,不以病毒的特征码作为判断病毒的依据,而是从最原始的病毒定义出发,直接将程序的行为作为判断病毒的依据。
发明内容
本发明的目的在于针对Windows平台的恶意代码,提出一种能够在动态系统环境中检测和预防的方法。
本发明克服了恶意代码静态检测中启发式检测的不准确性问题;增加了恶意代码静态检测中恶意代码免杀者定位修改特征码的难度,使其免杀普通特征码的样本难以躲过本发明提出的检测方法;克服了动态监测中虚拟机检测执行指令数的限制;本发明克服了恶意代码预防方法中主动防御占用过多系统资源的问题。
为解决上述问题,本发明实现方法主要包括以下步骤:
步骤一:获取当前系统环境中所有object的信息。
object(内核对象)是代表系统资源的数据结构,比如一个文件,线程,或者图像。一个程序不能直接访问object数据,而是必须获得一个object handle用来检测和修改系统资源。每个handle在一张内部表中有一个记录,每个记录包含资源的地址和类型。
步骤二:过滤要检测的object类型,主要过滤mutex、event和Semaphore类型的object
mutex、event和Semaphore三种类型的object主要用来线程同步和单一实例,由于恶意代码大多数都必须单实例运行,所以必须采用上面三种中的一种object来实现。这也是本发明的基础。
步骤三:对步骤二中过滤出的object名字进行特征匹配,基于object唯一性的特性作为判断条件,如果匹配则认为已经感染恶意代码,转到步骤四,否则转到步骤八。
特征指的是获取的恶意代码创建的内核对象的名称。
步骤四:阻塞等待,创建与恶意代码创建的object名称相同的object(即步骤三中匹配到的object),这样可以在恶意代码进程结束后立即被创建一个object来阻止恶意代码再次运行。
步骤五:获取object匹配的进程PID,根据PID获取进程名,如果获取成功则跳转到步骤六,否则跳转到步骤七。
步骤六:判断进程名是否为白名单进程,如果是则重启进程。跳转到步骤八:
白名单进程指系统进程或者第三方进程。
步骤七:终止感染恶意代码的进程,阻止恶意代码的再次运行。
步骤八:上述步骤完成后,无论是否已经发现恶意代码都可以从特征库中选择创建要预防的恶意代码内核对象(步骤三中匹配的object除外),阻止恶意代码的运行,这样可以预防当前流行的恶意代码或者需要预防的恶意代码,这个步骤的主要作用在于预防,区别于步骤三的查杀。而创建一个内核对象相对主动防御来说对系统资源的消耗非常小。
本发明的有益效果是:
本发明最大的优点和创新点是:对恶意代码的发现和预防不依赖恶意代码本身特征,而是根据恶意代码对系统环境的影响来发现和预防恶意代码。本发明占用很少的系统资源对系统动态环境进行分析,判断是否感染恶意代码,如果感染则结束恶意程序,使主机受到保护。或者通过创建内核对象的方法免疫恶意代码,防止恶意代码感染系统,使用户得到保护。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种恶意代码发现和预防方法流程图;
图2为本发明一种恶意代码发现和预防方法实施例流程图;
图3为本发明一种恶意代码发现和预防方法实施例的匹配处理例程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提出了一种基于系统动态环境的恶意代码发现和预防方法,即通过系统中所有的mutex、event和Semaphore三种Object,通过名称特征发现恶意代码和创建特定名称的Object来预防恶意代码。
如图1所示,本发明恶意代码发现和预防方法包括步骤:
S101:获取当前系统环境中所有object的信息。
object(内核对象)是代表系统资源的数据结构,比如一个文件,线程,或者图像。一个程序不能直接访问object数据,而是必须获得一个object handle用来检测和修改系统资源。每个handle在一张内部表中有一个记录,每个记录包含资源的地址和类型。
S102:过滤要检测的object类型,主要过滤mutex、event和Semaphore类型的object
mutex、event和Semaphore三种类型的object主要用来线程同步和单一实例,由于恶意代码大多数都必须单实例运行,所以必须采用上面三种中的一种object来实现。这也是本发明的基础。
S103:对S102中过滤出的object名字进行特征匹配,基于object唯一性的特性作为判断条件,如果匹配则认为已经感染恶意代码,转到S104,否则转到S108。
特征指的是获取的恶意代码创建的内核对象的名称。
S104:阻塞等待,创建与恶意代码创建的object名称相同的object(即S103中匹配到的object),这样可以在恶意代码进程结束后立即被创建一个object来阻止恶意代码再次运行。
S105:获取object匹配的进程PID,根据PID获取进程名,如果获取成功则跳转到S106,否则跳转到S107。
S106:判断进程名是否为白名单进程,如果是则重启进程。跳转到S108:
白名单进程指系统进程或者第三方进程。
S107:终止感染恶意代码的进程,阻止恶意代码的再次运行。
S108:上述步骤完成后,无论是否已经发现恶意代码都可以从特征库中选择创建要预防的恶意代码内核对象(S103中匹配的object除外),阻止恶意代码的运行,这样可以预防当前流行的恶意代码或者需要预防的恶意代码,这个步骤的主要作用在于预防,区别于S103的查杀。而创建一个内核对象相对主动防御来说对系统资源的消耗非常小。
图2为基于系统动态环境的恶意代码发现和预防方法的实施例流程图。如图2所示,主要包括的步骤有:获取系统句柄信息步骤,获取系统内核对象信息步骤,Object过滤步骤,匹配处理步骤,创建Object步骤。具体包括:
S201:获取系统句柄信息步骤
通过调用ZwQuerySystemInformation函数,指定第一个参数SYSTEM_INFORMATION_CLASS 为SystemHandleInformation获取当前系统中所有的句柄信息。如果获取成功,则进入S202,否则进入S205。
S202:获取系统内核对象信息步骤
通过调用ZwQueryObject函数,分别制定第二个参数OBJECT_INFORMATION_CLASS为ObjectTypeInformation和ObjectNameInformation来获取Object的类型信息和名称信息。如果获取成功则进入S203,否则进入S205。
S2031至S2033:Object过滤步骤
对S202中获得的所有Object进行类型判断,取出类型为mutex、event或者Semaphore的Object。如图2中的对象类型是否包含mutex,对象类型是否包含event和对象类型是否包含Semaphore。如果包含其中的任何一种则分别进入S2041至S2043,否则进入S205。
S2041至S2043:匹配处理步骤
对S2031至S2033中过滤出来的Object进行匹配,主要过程如图3匹配处理例程图,匹配处理例程具体包括以下步骤:
S4301:获取对象名称步骤,从S202中获取的Object信息中取出S203中对应的Object的名称。获取成功,进入S4302,否则进入S205。
S4302:匹配特征步骤。将S4301中取出的名称与特征库中名称进行对比。如果匹配成功则进入S4303,否则进入S205。
S4303:调用函数WaitForSingleObject,将第一个参数hHandle执行S4302中匹配的Object所对应的句柄进行阻塞等待。当函数返回,立即执行相应的Create系列函数创建与S4302中相同的Object。
S4304:根据S4302中获得的Object,对比S201中获取的句柄信息获取Object相应的PID(进程编号)。如果成功则进入S4305,否则进入S205。
S4305:通过调用ZwQuerySystemInformation函数,指定第一个参数SYSTEM_INFORMATION_CLASS 为SystemProcessesAndThreadsInformation获取系统中进程的信息。包括PID到进程名的映射。如果成功则进入S4306,否则进入S4308。
S43096:将S4305中获取的进程名与白名单中的进程名进行匹配。如果匹配则进入S4307,否则进入S4308。
S4307:重启进程步骤。首先终止S4304获取到的进程,根据S4305中的进程名创建新的正常进程。
S4308:终止进程步骤,终止进程。
S205:根据特征库创建Object。
特征库由Object的类型和Object的名称组成的结构的集合,这些Object来自对恶意代码的分析。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (3)

1.一种恶意代码发现和预防方法,其特征在于,包括步骤:
获取当前系统环境中所有内核对象的信息;所述内核对象是代表系统资源的数据结构;
过滤所述内核对象的类型,获取指定类型的内核对象作为待检测内核对象;所述指定类型的内核对象包括mutex、event和Semaphore类型的内核对象;
将待检测内核对象的名称与特征库中预先获取的恶意代码创建的内核对象的名称进行特征匹配,如果匹配成功则判断待检测内核对象为感染恶意代码的内核对象;
分别创建用于阻塞等待,与所述感染恶意代码的内核对象名称相同的内核对象;
获取所述感染恶意代码的内核对象的进程PID,根据所述进程PID获取进程名;
如果能够成功获取进程名,并且成功获取的进程为白名单进程,则重新启动所述成功获取的进程;所述白名单进程是指系统进程或第三方软件的进程;
否则,终止所述感染恶意代码的内核对象的进程。
2.如权利要求1所述的恶意代码发现和预防方法,其特征在于,所述内核对象包括文件、线程、图像。
3.如权利要求1所述的恶意代码发现和预防方法,其特征在于,还包括步骤:将待检测内核对象的名称与特征库中预先获取的恶意代码创建的内核对象的名称进行特征匹配,如果匹配不成功,则从特征库中选择预先获取的恶意代码创建的内核对象,分别创建与所选择的内核对象名称相同的内核对象。
CN201110375297.6A 2011-11-23 2011-11-23 一种恶意代码发现和预防方法 Active CN102542196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110375297.6A CN102542196B (zh) 2011-11-23 2011-11-23 一种恶意代码发现和预防方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110375297.6A CN102542196B (zh) 2011-11-23 2011-11-23 一种恶意代码发现和预防方法

Publications (2)

Publication Number Publication Date
CN102542196A CN102542196A (zh) 2012-07-04
CN102542196B true CN102542196B (zh) 2014-09-17

Family

ID=46349063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110375297.6A Active CN102542196B (zh) 2011-11-23 2011-11-23 一种恶意代码发现和预防方法

Country Status (1)

Country Link
CN (1) CN102542196B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902919B (zh) * 2012-08-30 2015-11-25 北京奇虎科技有限公司 一种可疑操作的识别处理方法、装置和系统
CN103809955B (zh) * 2012-11-15 2018-10-09 腾讯科技(深圳)有限公司 结束进程的方法和装置
CN105303111B (zh) * 2015-10-16 2019-02-15 珠海豹趣科技有限公司 一种用户终端中恶意进程的识别方法、装置及用户终端
CN108875357B (zh) * 2017-12-20 2020-05-12 北京安天网络安全技术有限公司 一种程序启动方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206692A (zh) * 2006-12-20 2008-06-25 联想(北京)有限公司 检测进程的方法及设备
CN101373505A (zh) * 2008-06-17 2009-02-25 华为技术有限公司 释放句柄的方法、装置及文件删除系统
CN102243699A (zh) * 2011-06-09 2011-11-16 深圳市安之天信息技术有限公司 一种恶意代码检测方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320594A1 (en) * 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206692A (zh) * 2006-12-20 2008-06-25 联想(北京)有限公司 检测进程的方法及设备
CN101373505A (zh) * 2008-06-17 2009-02-25 华为技术有限公司 释放句柄的方法、装置及文件删除系统
CN102243699A (zh) * 2011-06-09 2011-11-16 深圳市安之天信息技术有限公司 一种恶意代码检测方法及系统

Also Published As

Publication number Publication date
CN102542196A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
Rasthofer et al. Harvesting runtime values in Android applications that feature anti-analysis techniques.
US9679136B2 (en) Method and system for discrete stateful behavioral analysis
US10055585B2 (en) Hardware and software execution profiling
US20240012907A1 (en) Cloud based just in time memory analysis for malware detection
US7934261B1 (en) On-demand cleanup system
EP3756121B1 (en) Anti-ransomware systems and methods using a sinkhole at an electronic device
US8307434B2 (en) Method and system for discrete stateful behavioral analysis
US11151252B2 (en) Just in time memory analysis for malware detection
US20070180529A1 (en) Bypassing software services to detect malware
RU2726032C2 (ru) Системы и способы обнаружения вредоносных программ с алгоритмом генерации доменов (dga)
CN102542196B (zh) 一种恶意代码发现和预防方法
US10515213B2 (en) Detecting malware by monitoring execution of a configured process
US20130160124A1 (en) Disinfection of a File System
CN103679013A (zh) 系统恶意程序检测方法及装置
CN105550581A (zh) 一种恶意代码检测方法及装置
US10902122B2 (en) Just in time memory analysis for malware detection
KR101431192B1 (ko) 모바일 단말의 루팅 공격 이벤트 검출 방법
JP5613000B2 (ja) アプリケーション特性解析装置およびプログラム
Stirparo et al. In-memory credentials robbery on android phones
CN112395603B (zh) 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备
CN115270126B (zh) 一种检测Java内存马的方法、装置、电子设备及存储介质
CN101719892A (zh) 一种计算机防护方法
CN104778406A (zh) 一种基于文件指纹对恶意代码统一命名的方法及其系统
Park Malware expert: Execution tracking
CN115391793B (zh) 一种基于FlowDroid工具的实时漏洞检测系统、方法与存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100080 Haidian District City, Zhongguancun, the main street, No. 1 Hailong building, room 1415, room 14

Applicant after: Beijing Antiy Electronic Installation Co., Ltd.

Address before: 100084, 2B-521, bright city, No. 1, Nongda South Road, Beijing, Haidian District

Applicant before: Beijing Antiy Electronic Installation Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100080 Beijing city Haidian District minzhuang Road No. 3, Tsinghua Science Park Building 1 Yuquan Huigu a

Patentee after: Beijing ahtech network Safe Technology Ltd

Address before: 100080 Haidian District City, Zhongguancun, the main street, No. 1 Hailong building, room 1415, room 14

Patentee before: Beijing Antiy Electronic Installation Co., Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for finding and preventing malicious codes

Effective date of registration: 20190719

Granted publication date: 20140917

Pledgee: Bank of Longjiang, Limited by Share Ltd, Harbin Limin branch

Pledgor: Beijing ahtech network Safe Technology Ltd

Registration number: 2019230000008

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210810

Granted publication date: 20140917

Pledgee: Bank of Longjiang Limited by Share Ltd. Harbin Limin branch

Pledgor: BEIJING ANTIY NETWORK TECHNOLOGY Co.,Ltd.

Registration number: 2019230000008