CN105574410B - 一种应用程序的安全检测方法及装置 - Google Patents

一种应用程序的安全检测方法及装置 Download PDF

Info

Publication number
CN105574410B
CN105574410B CN201510931311.4A CN201510931311A CN105574410B CN 105574410 B CN105574410 B CN 105574410B CN 201510931311 A CN201510931311 A CN 201510931311A CN 105574410 B CN105574410 B CN 105574410B
Authority
CN
China
Prior art keywords
application program
path
record
system time
file
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
CN201510931311.4A
Other languages
English (en)
Other versions
CN105574410A (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.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software 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 Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201510931311.4A priority Critical patent/CN105574410B/zh
Publication of CN105574410A publication Critical patent/CN105574410A/zh
Application granted granted Critical
Publication of CN105574410B publication Critical patent/CN105574410B/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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)
  • 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)
  • Storage Device Security (AREA)

Abstract

本发明的实施例公开一种应用程序的安全检测方法和装置,涉及计算机安全技术领域,为有效提高应用程序被恶意劫持的检测准确率而发明。所述应用程序的安全检测方法,包括:监视所述应用程序是否接收到用户的启动指示;当监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;获取并记录所述应用程序的进程启动路径;根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持。本发明适用于杀毒软件等安全类软件工具,用来检测恶意软件对应用程序的恶意劫持。

Description

一种应用程序的安全检测方法及装置
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种应用程序的安全检测方法及装置。
背景技术
计算机设备中安装有多种应用程序,恶意程序可以对这些应用程序的数据进行篡改,即恶意劫持该应用程序。以浏览器为例,当浏览器被恶意劫持时,恶意程序可以修改浏览器数据,从而达到修改默认浏览器、修改默认主顺、访问恶意网址等目的。
现有技术中,可在计算机设备中安装安全软件工具对应用程序进行防护,安全软件工具可以检测应用程序是否被恶意劫持,在检测到应用程序被恶意劫持时,对应用程序进行修复。具体的,安全软件通常通过应用程序的注册表键值来检测应用程序是否被恶意劫持。但是,在注册表键值被重定向,注册表函数被修改、注册表查询进程创建时被重定向等情况下,这种检测方式无法检测出应用程序被恶意劫持,即检测结果的准确率不高。
发明内容
有鉴于此,本发明实施例提供一种应用程序的安全监测方法及装置,能够有效提高应用程序被恶意劫持的检测准确率。
第一方面,本发明实施例提供一种应用程序的安全检测方法,包括:
监视所述应用程序是否接收到用户的启动指示;
当监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;
获取并记录所述应用程序的进程启动路径;
根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持。
结合第一方面,在第一方面的第一种可实施方式中,所述根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:
当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
结合第一方面,在第一方面的第二种可实施方式中:
所述方法还包括:
当监视到所述应用程序接收到启动指示时,获取并记录所述监视到所述应用程序接收到启动指示时的第一系统时间;
获取并记录所述应用程序的进程创建完成时的第二系统时间;
所述根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:
根据所述记录的第一系统时间、第二系统时间、第一文件路径和进程启动路径,确定所述应用程序是否被劫持。
结合第一方面的第二种可实施方式,在第一方面的第三种可实施方式中,所述根据所述记录的第一系统时间、第二系统时间、第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:
当所述记录的第二系统时间与第一系统时间的时间差小于预订阈值,且所述记录的第一文件路径与所述进程启动路径相同时,确定所述应用程序安全;
当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值且所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
结合第一方面,在第一方面的第四种可实施方式中,所述获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径包括:
利用IRP_MJ_CREATE函数,获取所述应用程序接收到所述启动指示后发送的读文件请求数据,提取所述读文件请求数据中的路径信息,根据所述路径信息获取并记录所述应用程序的第一文件路径;
所述获取并记录所述应用程序的进程启动路径包括:
利用PsSetCreateProcessNotifyRoutine函数注册的进程监控回调函数,获取并记录所述应用程序的进程启动路径。
结合第一方面或者前述第一方面任意一种可实施方式,在第一方面的第四种可实施方式中,所述应用程序包括浏览器。
第二方面,本发明实施例提供一种应用程序的安全检测装置,包括:
监视模块,用于监视所述应用程序是否接收到用户的启动指示;
第一路径获取模块,用于当所述监视模块监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;
第二路径获取模块,用于获取并记录所述应用程序的进程启动路径;
确定模块,用于根据所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,确定所述应用程序是否被劫持。
结合第二方面,在第二方面的第一种可实施方式中,所述确定模块用于根据所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,当所述第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
结合第二方面,在第二方面的第二种可实施方式中:
所述装置还包括:
第一系统时间记录模块,用于当所述监视模块监视到所述应用程序接收到启动指示时,获取并记录所述监视到所述应用程序接收到启动指示时的第一系统时间;
第二系统时间记录模块,用于获取并记录所述应用程序的进程创建完成时的第二系统时间;
所述确定模块用于根据第一系统时间记录模块记录的第一系统时间、所述第二系统时间记录模块记录的第二系统时间、所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,确定所述应用程序是否被劫持。
结合第二方面的第二种可实施方式,在第二方面的第三种可实施方式中,所述确定模块用于:当所述记录的第二系统时间与第一系统时间的时间差小于预订阈值,且所述记录的第一文件路径与所述进程启动路径相同时,确定所述应用程序安全;
当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值且所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
结合第二方面,在第二方面的第四种可实施方式中,所述第一路径获取模块用于:
利用IRP_MJ_CREATE函数,获取所述应用程序接收到所述启动指示后发送的读文件请求数据,提取所述读文件请求数据中的路径信息,根据所述路径信息获取并记录所述应用程序的第一文件路径;
所述第二路径获取模块用于:
利用PsSetCreateProcessNotifyRoutine函数注册的进程监控回调函数,获取并记录所述应用程序的进程启动路径。
结合第二方面或者前述第二方面任意一种可实施方式,在第二方面的第四种可实施方式中,所述应用程序包括浏览器。
本发明实施例提供的应用程序的安全检测方法及装置,根据应用程序的启动顺序,首先在用户下发启动指示即用户启动应用程序触发应用程序发送读文件请求时,获取该读文件请求数据并从该数据中获取应用程序的第一文件路径,然后在应用程序之后的启动过程中,获取该应用程序的进程启动路径,即从应用程序启动过程中的前后两个时间点获取两个路径信息,然后利用这两个路径信息确定应用程序是否被劫持。一方面,在启动过程中的前后两个时间点获取易于被恶意程序修改的关键路径信息来较为精确地判定应用程序是否被恶意劫持,另一方面,不会受到注册表键值的影响,即使注册表键值被重定向或注册表函数被恶意劫持,依然能够准确判断出应用程序是否被恶意劫持,再一方面,在技术实现上,本发明实施例是通过底层驱动代码实现,不易被恶意程序破坏和影响,因此,能够有效提高对恶意劫持的检测结果的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明应用程序的安全检测方法实施例一的流程示意图;
图2为本发明应用程序的安全检测方法实施例二的流程示意图;
图3为本发明应用程序的安全检测装置实施例一的结构示意图。
图4为本发明应用程序的安全检测装置实施例二的结构示意图。
具体实施方式
下面结合附图对本发明实施例的应用程序的安全检测方法及装置进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明应用程序的安全检测方法实施例一的流程示意图。需要说明的是,本发明应用程序的安全检测方法实施例可由具有安全防护功能的软件工具所执行使用,例如,杀毒类安全软件工具,非安全软件工具但具有安全防护功能的及时通信软件、购物软件等等,本发明对此不做限定。而所述应用程序同样不限,可以是任意一种安装在计算机设备(例如电脑、手机)等的应用程序,例如浏览器,即时通信工具等,本领域技术人员可以任意选择。
参看图1,本发明应用程序的安全检测方法实施例,包括如下步骤:
S101、监视应用程序是否接收到用户的启动指示。
用户可以通过点击应用程序图标、双击该应用程序的快捷方式图标、鼠标右键启动、选择开始菜单栏的程序选项、任务管理器启动等任意一种用户可以采用的启动方式下发启动指示。以应用程序为浏览器为例,除了上述启动方式外,当用户点击某网址链接时,同样表示用户下发了浏览器启动指示,浏览器将启动并访问该链接。
具体的,可以通过检测鼠标行为或者用户的触控操作,或者监控应用程序的用户进程,来监视应用程序是否接收到启动指示。
可以理解的是,本步骤可以采用现有技术中任意一种能够确定应用程序是否接收到启动指示的监视方式,本发明实施例对此不做限定。
S102、当监视到应用程序接收到启动指示时,获取应用程序接收到启动指示后发送的读文件请求,根据读文件请求获取并记录应用程序的第一文件路径。
本步骤中,第一文件路径具体可以为应用程序的目标文件路径。
当应用程序接收到启动指示时,将触发应用程序的用户态进程发送读文件请求(I/O请求),该读文件请求数据中包括路径信息,例如目标文件路径。在用户通过双击快捷方式图标下发启动指示的情况下,该读文件请求数据中包括快捷方式的图标路径信息。
本步骤中,可获取该读文件请求,并根据该读文件请求获取应用程序的目标文件路径(第一文件路径),并将其记录下来。例如,直接从读文件请求中获取目标文件路径并记录下来,或者,从读文件请求中获取应用程序的快捷方式的图标路径信息,然后,将其解析为应用程序的目标文件路径(第一路径信息)并记录下来。
举例而言,在一种具体实施中,对于应用程序而言,当用户态进程发出I/O请求后,I/O管理器将其转换为IRP(I/O Request Packet)请求,并将其发送给底层驱动,底层驱动捕获IRP请求。据此,本步骤中,可以利用windows文件过滤驱动框架功能号为IRP_MJ_CREATE的函数,在此函数中获取读文件请求数据,提取读文件请求数据中的路径信息,根据该路径信息获取并记录应用程序的第一文件路径。
S103、获取并记录应用程序的进程启动路径。
在发送读文件请求后,接下来,应用程序将启动进程,启动进程必然会使用进程启动路径,本步骤中将获取应用程序的进程启动路径。
举例而言,在一种具体实施中,对于应用程序而言,底层驱动会监视进程的创建和结束,例如利用PsSetCreateProcessNotifyRoutine函数注册进程监控回调函数,对进程的创建过程进行监视。据此,本步骤中,可以利用该进程监控回调函数获取应用程序的进程启动路径,并记录下来。
S104、根据记录的第一文件路径和进程启动路径,确定应用程序是否被劫持。
具体的,当记录的第一文件路径与进程启动路径不同时,确定应用程序被劫持。
对于计算机设备上安装的应用程序而言,通常情况下可采用如下的启动顺序:
用户发送启动指示(例如,用户双击应用程序的快捷方式图标)→用户态进程发送读文件请求,底层驱动捕获读文件请求→解析目标进程路径/读取注册表初始化进程启动信息→启动进程→底层驱动捕获进程的创建→显示应用程序界面。
在上述顺序的启动过程中,读文件请求数据中包括路径信息,例如目标文件路径(第一路径信息),或者其他可以被解析为应用程序的目标文件路径的路径信息,例如快捷方式的图标路径信息,而在后续的进程启动过程(即进程创建过程)中,必然会使用进程启动路径。在应用程序未被恶意劫持的情况下,目标文件路径和进程启动路径本应相同,而如果应用程序被恶意劫持,目标文件路径和进程启动路径容易被恶意程序修改。
基于此,本实施例的应用程序的安全检测方法中,巧妙地根据应用程序的启动顺序,首先在用户下发启动指示即用户启动应用程序触发应用程序发送读文件请求时,获取该读文件请求数据并从该数据中获取应用程序的第一文件路径,然后在应用程序之后的启动过程中,获取该应用程序的进程启动路径,即从应用程序启动过程中的前后两个与路径关联的时间点获取两个路径信息,然后利用这两个路径信息确定应用程序是否被劫持。
一方面,在应用程序的启动过程中的前后两个与路径关联的时间点获取易于被恶意程序修改的关键路径信息,可以较为精确地判定应用程序是否被恶意劫持,另一方面,不会受到注册表键值的影响,即使注册表键值被重定向或注册表函数被恶意劫持,依然能够准确判断出应用程序是否被恶意劫持,再一方面,在技术实现上,本发明实施例通过底层驱动代码实现,不易被恶意程序破坏和影响,因此,能够有效提高对恶意劫持的检测结果的准确率。
作为图1所示实施例的一种改进,图2为本发明应用程序的安全检测方法实施例二的流程示意图。首先需要说明的是,图2所示实施例中与图1所示实施例相关部分请参考前文对图1所示实施例的描述。参看图2,本应用程序的安全检测方法实施例,包括如下步骤:
S201、监视应用程序是否接收到用户的启动指示。
S202、当监视到应用程序接收到启动指示时,获取并记录监视到应用程序接收到启动指示时的第一系统时间,获取应用程序接收到启动指示后发送的读文件请求,根据读文件请求获取并记录应用程序的第一文件路径。
一旦监视到应用程序接收到启动指示时,获取并记录当前系统时间,即第一系统时间。可选的,可通过函数GetCurrentTime()获取第一系统时间。
S203、获取并记录应用程序的进程启动路径,以及应用程序的进程创建完成时的第二系统时间。
当应用程序的进程创建完成时,获取并记录当前系统时间,即第二系统时间。同样可通过函数GetCurrentTime()获取第二系统时间。
举例而言,利用PsSetCreateProcessNotifyRoutine函数注册进程监控回调函数,对进程的创建过程进行监视,当检测到回调函数时,即表明进程已经创建完成,此时即可获取当前的系统时间,即第二系统时间。
S204、根据记录的第一系统时间、第二系统时间、第一文件路径和进程启动路径,确定应用程序是否被劫持。
具体的,当第二系统时间与第一系统时间的时间差小于预订阈值,且第一文件路径与进程启动路径相同时,确定应用程序安全,即,在两个路径相同,且两个时间的时间差不大于预定阈值时,确定应用程序安全未被恶意劫持。举例而言,预定阈值可以为3000毫秒。而当满足如下至少一个条件时,确定应用程序被恶意劫持:
条件一,第一文件路径与进程启动路径相同。
条件二,第二系统时间与第一系统时间的时间差大于预订阈值。
经本发明的发明人发现,在应用程序的启动过程中,如果操作系统正常运转,通常情况下,从接收到用户的启动指示到应用程序进程创建完成,所经历的时间通常在固定的时长,例如3000毫秒左右,甚至更快,但若应用程序被恶意劫持,那么由于进程被恶意重定向等原因,所经历的时间将被拉长。因此,可通过第一系统时间和第二系统时间的时间差来判定应用程序是否被恶意劫持。本实施例综合系统时间和路径信息进行恶意劫持的判定,能够进一步提高判定的准确率。
考虑到操作系统可能会超负荷运转导致第一系统时间和第二系统时间之间的时间差过大,因此,在一种具体实施中,当第二系统时间与第一系统时间的时间差小于预订阈值,且第一文件路径与进程启动路径相同时,确定应用程序安全,而只要第一文件路径和进程启动路径不同,即确定应用程序被恶意劫持,而如果第一文件路径和进程启动路径相同,但第二系统时间与第一系统时间的时间差大于预订阈值,可认为应用程序疑似被恶意劫持,然后在配合其他现有技术已有的检测方式,进一步检测应用程序是否被恶意劫持。
本实施例的应用程序的安全检测方法中,巧妙地根据应用程序的启动顺序,首先在用户下发启动指示即用户启动应用程序触发应用程序发送读文件请求时,获取第一系统时间和该读文件请求数据并从该数据中获取应用程序的第一文件路径,然后在应用程序之后的启动过程中,获取该应用程序的进程启动路径和进程创建完成时的第二系统时间,即从应用程序启动过程中的前后两个与路径关联的时间点获取两个路径信息和两个时间信息,然后综合利用所记录的时间信息和路径信息确定应用程序是否被劫持,进一步提高了检测结果的准确率。而且,不会受到注册表键值的影响,即使注册表键值被重定向或注册表函数被恶意劫持,依然能够准确判断出应用程序是否被恶意劫持,此外,在技术实现上,本实施例可通过底层驱动代码实现,不易被恶意程序破坏和影响,因此,能够有效提高对恶意劫持的检测结果的准确率。
下面以应用程序为浏览器为例,对本发明的应用程序的安全检测方法进行进一步的详细说明。用户在启动浏览器时,可双击浏览器快捷方式图标,触发浏览器的用户态进程发出读文件请求,该请求中包括浏览器的快捷方式的图标文件路径,I/O管理器将读文件请求转换为IRP(I/O Request Packet)请求,并将其发送给底层驱动,即在用户双击图标后的第二个阶段,底层驱动捕获读文件IRP请求。本实施例,监视用户是否双击浏览器快捷方式图标,在用户双击时,获取双击时的第一系统时间并记录下来,并在底层捕获时,根据该IRP请求获取请求数据中的图标文件路径,并将其解析为目标文件路径(第一文件路径)并记录下来,具体利用功能号为IRP_MJ_CREATE的函数获取图标文件路径。
接下来,在底层驱动捕获读文件请求后,系统会解析浏览器目标进程路径,读取注册表初始化进程启动信息,启动进程,底层驱动会捕获进程的创建,之后显示浏览器程序界面。底层驱动捕获进程的创建,此过程是可以认为是浏览器启动过程的倒数第二个阶段,执行顺序靠后,具体通过PsSetCreateProcessNotifyRoutine函数来注册或注销一个进程创建销毁的通知回调函数,简单来说,利用此回调函数监视进程创建和结束。可利用该回调函数获取进程启动路径并知悉进程创建完成,进而获取进程创建完成时的第二系统时间。
在浏览器启动顺序中,“底层驱动捕获读文件请求”过程靠前,“底层驱动捕获进程的创建”过程靠后,本实施例的安全检测方法,在这两个过程中保存路径及系统时间。然后,利用第二系统时间和第一系统时间的时间差,和两个路径,确定浏览器是否被恶意劫持。如果时间差小于一个预定阈值,例如3000毫秒,且“底层驱动捕获进程的创建”得到的进程启动路径与“底层驱动捕获读文件请求”得到的第一文件路径相同,即可确定浏览器没有被劫持;反之,如果时间差大于预设阈值,或两者路径不相同,那么可确定浏览器被劫持。
图3为本发明应用程序的安全检测装置实施例一的结构示意图。
参看图3,本发明应用程序的安全检测装置实施例,包括:监视模块31、第一路径获取模块32、第二路径获取模块33、确定模块34;其中:
监视模块31,用于监视所述应用程序是否接收到用户的启动指示;
第一路径获取模块32,用于当监视模块3131监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;
第二路径获取模块33,用于获取并记录所述应用程序的进程启动路径;
确定模块34,用于根据第一路径获取模块32记录的第一文件路径和第二路径获取模块33记录的进程启动路径,确定所述应用程序是否被劫持。
在一种具体实施中,确定模块34用于根据第一路径获取模块32记录的第一文件路径和第二路径获取模块33记录的进程启动路径,当所述第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
参看图4,本实施例的装置在图3所示装置结构的基础上,进一步地,在一种具体实施中,所述装置还包括:
第一系统时间记录模块35,用于当监视模块31监视到所述应用程序接收到启动指示时,获取并记录所述监视到所述应用程序接收到启动指示时的第一系统时间;
第二系统时间记录模块36,用于获取并记录所述应用程序的进程创建完成时的第二系统时间;
确定模块34用于根据第一系统时间记录模块35记录的第一系统时间、第二系统时间记录模块36记录的第二系统时间、第一路径获取模块32记录的第一文件路径和第二路径获取模块33记录的进程启动路径,确定所述应用程序是否被劫持。
可选的,确定模块34用于:当所述记录的第二系统时间与第一系统时间的时间差小于预订阈值,且所述记录的第一文件路径与所述进程启动路径相同时,确定所述应用程序安全;
当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值且所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
在一种具体实施中,第一路径获取模块32用于:
利用IRP_MJ_CREATE函数,获取所述应用程序接收到所述启动指示后发送的读文件请求数据,提取所述读文件请求数据中的路径信息,根据所述路径信息获取并记录所述应用程序的第一文件路径;
在一种具体实施中,第二路径获取模块32用于:
利用PsSetCreateProcessNotifyRoutine函数注册的进程监控回调函数,获取并记录所述应用程序的进程启动路径。
举例而言,所述应用程序包括浏览器。
本发明实施例提供的应用程序的安全检测装置,根据应用程序的启动顺序,首先在用户下发启动指示即用户启动应用程序触发应用程序发送读文件请求时,获取该读文件请求数据并从该数据中获取应用程序的第一文件路径,然后在应用程序之后的启动过程中,获取该应用程序的进程启动路径,即从应用程序启动过程中的前后两个时间点获取两个路径信息,然后利用这两个路径信息确定应用程序是否被劫持。一方面,在启动过程中的前后两个时间点获取易于被恶意程序修改的关键路径信息来较为精确地判定应用程序是否被恶意劫持,另一方面,不会受到注册表键值的影响,即使注册表键值被重定向或注册表函数被恶意劫持,依然能够准确判断出应用程序是否被恶意劫持,再一方面,在技术实现上,本发明实施例是通过底层驱动代码实现,不易被恶意程序破坏和影响,因此,能够有效提高对恶意劫持的检测结果的准确率。
本发明实施例的装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的防护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的防护范围之内。因此,本发明的防护范围应以权利要求的防护范围为准。

Claims (5)

1.一种应用程序的安全检测方法,其特征在于,包括:
监视所述应用程序是否接收到用户的启动指示;
当监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;
获取并记录所述应用程序的进程启动路径;
根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持;
其中,所述根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持;
或者,所述方法还包括:当监视到所述应用程序接收到启动指示时,获取并记录所述监视到所述应用程序接收到启动指示时的第一系统时间;获取并记录所述应用程序的进程创建完成时的第二系统时间;所述根据所述记录的第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:
根据所述记录的第一系统时间、第二系统时间、第一文件路径和进程启动路径,确定所述应用程序是否被劫持;
其中,所述根据所述记录的第一系统时间、第二系统时间、第一文件路径和进程启动路径,确定所述应用程序是否被劫持包括:
当所述记录的第二系统时间与第一系统时间的时间差小于预订阈值,且所述记录的第一文件路径与所述进程启动路径相同时,确定所述应用程序安全;
当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值且所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
2.根据权利要求1所述的应用程序的安全检测方法,其特征在于,
所述获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径包括:
利用IRP_MJ_CREATE函数,获取所述应用程序接收到所述启动指示后发送的读文件请求数据,提取所述读文件请求数据中的路径信息,根据所述路径信息获取并记录所述应用程序的第一文件路径;
所述获取并记录所述应用程序的进程启动路径包括:
利用PsSetCreateProcessNotifyRoutine函数注册的进程监控回调函数,获取并记录所述应用程序的进程启动路径。
3.根据权利要求1至2任一项所述的应用程序的安全检测方法,其特征在于,所述应用程序包括浏览器。
4.一种应用程序的安全检测装置,其特征在于,包括:
监视模块,用于监视所述应用程序是否接收到用户的启动指示;
第一路径获取模块,用于当所述监视模块监视到所述应用程序接收到启动指示时,获取所述应用程序接收到所述启动指示后发送的读文件请求,根据所述读文件请求获取并记录所述应用程序的第一文件路径;
第二路径获取模块,用于获取并记录所述应用程序的进程启动路径;
确定模块,用于根据所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,确定所述应用程序是否被劫持;
其中,所述确定模块用于根据所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,当所述第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持;
或者,所述装置还包括:
第一系统时间记录模块,用于当所述监视模块监视到所述应用程序接收到启动指示时,获取并记录所述监视到所述应用程序接收到启动指示时的第一系统时间;
第二系统时间记录模块,用于获取并记录所述应用程序的进程创建完成时的第二系统时间;
所述确定模块用于根据第一系统时间记录模块记录的第一系统时间、所述第二系统时间记录模块记录的第二系统时间、所述第一路径获取模块记录的第一文件路径和所述第二路径获取模块记录的进程启动路径,确定所述应用程序是否被劫持;
其中,所述确定模块用于:当所述记录的第二系统时间与第一系统时间的时间差小于预订阈值,且所述记录的第一文件路径与所述进程启动路径相同时,确定所述应用程序安全;当所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值时,确定所述应用程序被劫持,或者,当所述记录的第二系统时间与第一系统时间的时间差大于预订阈值且所述记录的第一文件路径与所述进程启动路径不同时,确定所述应用程序被劫持。
5.根据权利要求4所述的应用程序的安全检测装置,其特征在于,所述第一路径获取模块用于:
利用IRP_MJ_CREATE函数,获取所述应用程序接收到所述启动指示后发送的读文件请求数据,提取所述读文件请求数据中的路径信息,根据所述路径信息获取并记录所述应用程序的第一文件路径;
所述第二路径获取模块用于:
利用PsSetCreateProcessNotifyRoutine函数注册的进程监控回调函数,获取并记录所述应用程序的进程启动路径。
CN201510931311.4A 2015-12-15 2015-12-15 一种应用程序的安全检测方法及装置 Active CN105574410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510931311.4A CN105574410B (zh) 2015-12-15 2015-12-15 一种应用程序的安全检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510931311.4A CN105574410B (zh) 2015-12-15 2015-12-15 一种应用程序的安全检测方法及装置

Publications (2)

Publication Number Publication Date
CN105574410A CN105574410A (zh) 2016-05-11
CN105574410B true CN105574410B (zh) 2018-07-31

Family

ID=55884529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510931311.4A Active CN105574410B (zh) 2015-12-15 2015-12-15 一种应用程序的安全检测方法及装置

Country Status (1)

Country Link
CN (1) CN105574410B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681813B (zh) * 2016-12-15 2020-06-12 腾讯科技(深圳)有限公司 一种系统管理方法及装置
CN107194244A (zh) * 2017-04-13 2017-09-22 福建省天奕网络科技有限公司 Vr游戏内存数据的保护方法及其系统
CN107643945A (zh) * 2017-08-16 2018-01-30 南京南瑞集团公司 一种Windows xp系统下监控进程创建和销毁的方法
CN110149298B (zh) * 2018-02-12 2023-08-08 北京京东尚科信息技术有限公司 一种劫持检测的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350053A (zh) * 2007-10-15 2009-01-21 北京瑞星国际软件有限公司 防止网页浏览器被漏洞利用的方法和装置
CN104063660A (zh) * 2013-03-20 2014-09-24 腾讯科技(深圳)有限公司 一种病毒扫描方法、装置及终端
CN104268475A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350052B (zh) * 2007-10-15 2010-11-03 北京瑞星信息技术有限公司 发现计算机程序的恶意行为的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350053A (zh) * 2007-10-15 2009-01-21 北京瑞星国际软件有限公司 防止网页浏览器被漏洞利用的方法和装置
CN104063660A (zh) * 2013-03-20 2014-09-24 腾讯科技(深圳)有限公司 一种病毒扫描方法、装置及终端
CN104268475A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的系统

Also Published As

Publication number Publication date
CN105574410A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN107211016B (zh) 会话安全划分和应用程序剖析器
CN109525558B (zh) 数据泄露检测方法、系统、装置及存储介质
CN105574410B (zh) 一种应用程序的安全检测方法及装置
CN108427633B (zh) 显示界面的处理方法及装置
US8595834B2 (en) Detecting unauthorized use of computing devices based on behavioral patterns
CN104376263B (zh) 应用程序行为拦截的方法和装置
CN102779255B (zh) 判断恶意程序的方法及装置
CN108632213B (zh) 设备信息处理方法及装置
CN103607385A (zh) 基于浏览器进行安全检测的方法和装置
CN106294159B (zh) 一种控制截屏的方法及截屏控制装置
CN110933103A (zh) 反爬虫方法、装置、设备和介质
US11431699B2 (en) Method and device for processing user operation
CN104253805A (zh) 一种浏览器的数据保护方法及浏览器
CN106412311A (zh) 一种数据传输方法及终端设备
CN104965731B (zh) 一种数据处理方法及电子终端
CN107180204A (zh) 一种防止信息被盗的方法、存储设备及移动终端
CN103544427A (zh) 移动终端的密码取回方法和装置
CN111813627A (zh) 应用审计方法、装置、终端、系统及可读存储介质
CN107992745A (zh) 一种基于安卓平台的界面劫持应对方法
CN108494749B (zh) Ip地址禁用的方法、装置、设备及计算机可读存储介质
CN107766068B (zh) 应用系统补丁安装方法、装置、计算机设备和存储介质
CN113472789A (zh) 一种攻击检测方法、攻击检测系统、存储介质和电子设备
CN115242461B (zh) 一种机器人操作系统ros安全测试系统及方法
CN103761473B (zh) 一种移动终端上的应用管理系统和方法
CN106332011B (zh) 一种短信加密通信的方法及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190117

Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Leopard Technology Co.,Ltd.

Address before: 100085 East District, No. 33 Xiaoying West Road, Haidian District, Beijing

Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.