CN112463606B - 一种软件检测方法、装置、设备及可读存储介质 - Google Patents
一种软件检测方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112463606B CN112463606B CN202011347560.6A CN202011347560A CN112463606B CN 112463606 B CN112463606 B CN 112463606B CN 202011347560 A CN202011347560 A CN 202011347560A CN 112463606 B CN112463606 B CN 112463606B
- Authority
- CN
- China
- Prior art keywords
- software
- target
- gui interface
- target software
- malicious
- 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
Links
- 238000001514 detection method Methods 0.000 claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 145
- 230000006399 behavior Effects 0.000 claims description 37
- 230000003993 interaction Effects 0.000 claims description 37
- 238000001914 filtration Methods 0.000 claims description 21
- 230000002452 interceptive effect Effects 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 6
- 238000013522 software testing Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种软件检测方法、装置、设备及可读存储介质,该方法包括:获取待检测的目标软件;对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;根据GUI界面检测结果确定目标软件是否为恶意软件。在该方法中,可以基于软件本身是否具有GUI界面对软件是否恶意进行检测,可达到降低误报的目的。
Description
技术领域
本发明涉及计算机安全技术领域,特别是涉及一种软件检测方法、装置、设备及可读存储介质。
背景技术
恶意软件检测主要包括静态特征检测和动态行为检测,不管采用何种方法都会面临误报的问题。其中,误报(FP,False Positive)指将正常软件检测成恶意软件。
将正常软件检测成恶意软件,不仅会使得安全检测软件检测结果不可靠,还可能会因某些杀毒策略导致正常软件无法正常使用,为用户的正常使用带来不便。
综上所述,如何有效地解决软件检测对应的误报等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种软件检测方法、装置、设备及可读存储介质,以通过GUI界面的有无确定软件是否恶意,可以降低误报。
为解决上述技术问题,本发明提供如下技术方案:
一种软件检测方法,包括:
获取待检测的目标软件;
对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果;
根据所述GUI界面检测结果确定所述目标软件是否为恶意软件。
应用本发明实施例所提供的方法,获取待检测的目标软件;对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;根据GUI界面检测结果确定目标软件是否为恶意软件。
通过对恶意软件和正常软件进行研究发现,如果某软件具有GUI界面,则该软件为恶意软件的概率会比较低,即恶意软件一般不具有GUI界面。也就是说,通过确定软件是否存在GUI界面,可以降低误报。因而,可对目标软件进行是否具有GUI界面的检测。然后,根据GUI界面检测结果确定目标软件是否为恶意软件。也就是说,在本方法中可以基于软件本身是否具有GUI界面确定软件是否为恶意软件,可达到降低误报的目的。
优选地,所述获取待检测的目标软件,包括:
对软件进行静态检测和/或动态检测,得到初检结果;
当所述初检结果为恶意软件时,确定所述软件为所述待检测的目标软件。
能够对采用静态检测和/或动态检测得到初检结果,进一步基于是否具有GUI界面对初检结果进行有效修正。
优选地,所述根据所述GUI界面检测结果确定所述目标软件是否为恶意软件,包括:
若所述GUI界面检测结果为所述目标软件具有所述GUI界面,确定所述目标软件为安全软件;
若所述GUI界面检测结果为所述目标软件无所述GUI界面,确定所述目标软件为恶意软件。
对采用静态检测和/或动态检测得到初检结果,基于是否具有GUI界面对初检结果进行有效修正。
优选地,若所述目标软件具有所述GUI界面,则确定所述目标软件为安全软件,具体包括:
若所述目标软件具有所述GUI界面,则进一步检测所述目标软件是否具有对应的用户交互行为;
若所述目标软件具有所述用户交互行为,则确定所述目标软件为安全软件。
不仅参照GUI界面是否有无,还进一步参照了用户交互行为的情况,能够有效保障检测结果的准确率。
优选地,所述初检结果具有包括所述软件的恶意概率;
所述根据所述GUI界面检测结果确定所述目标软件是否为恶意软件,包括:
在所述GUI界面检测结果表明所述目标软件有所述GUI界面的情况下,则降低所述目标软件对应的恶意概率;
在所述GUI界面检测结果表明所述目标软件无所述GUI界面的情况下,则增加所述目标软件对应的恶意概率;
在所述目标软件的恶意概率大于恶意阈值时,确定所述目标软件为恶意软件。
对采用静态检测和/或动态检测得到初检结果,基于是否具有GUI界面对初检结果进行有效修正。
优选地,还包括:
在检测到所述目标软件有所述GUI界面的情况下,检测所述目标软件是否具有对应的用户交互行为;
在所述目标软件具有所述用户交互行为,则再次降低所述目标软件对应的恶意概率。
不仅参照GUI界面是否有无,还进一步参照了用户交互行为的情况,能够有效保障检测结果的准确率。
优选地,所述对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果,包括:
在检测进程与目标进程处于同一会话的情况下,将所述检测进程与所述目标进程的窗口站进行关联;所述目标进程与所述目标软件对应;
将所述检测进程与所述目标进程的桌面进行关联;
利用所述窗口站和所述桌面,枚举所有窗口,对枚举的所述窗口进行过滤;
在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面。
优选地,将所述检测进程与所述目标进程的桌面进行关联,包括:
将所述检测进程与所述目标进程的交互桌面进行关联。
优选地,对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果,包括:
在检测进程与目标进程处于不同会话的情况下,获取与所述目标进程对应目标会话中的程序管理器标志;所述目标进程与所述目标软件对应;
利用所述程序管理器标志在所述目标会话中创建代理进程;
利用所述代理进程枚举所有窗口,对枚举的所述窗口进行过滤;
在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面。
优选地,所述在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面,包括:
在所述目标窗口非所述控制台窗口,且尺寸大于阈值的情况下,确定所述目标软件具有所述GUI界面。
一种软件检测装置,包括:
待测试软件确定模块,用于获取待检测的目标软件;
GUI界面检测模块,用于对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果;
恶意判定模块,用于根据所述GUI界面检测结果确定所述目标软件是否为恶意软件。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述软件检测方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述软件检测方法的步骤。
相应地,本发明实施例还提供了与上述软件检测方法相对应的软件检测装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种软件检测方法的实施流程图;
图2为本发明实施例中一种GUI界面检测流程示意图;
图3为本发明实施例中一种软件检测方法的具体实现流程图;
图4为本发明实施例中一种软件检测装置的结构示意图;
图5为本发明实施例中一种电子设备的结构示意图;
图6为本发明实施例中一种电子设备的具体结构示意图;
图7为本发明实施例中另一种软件检测方法的实施流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例所提供的技术方案,下面对本发明实施例所涉及的相关术语进行解释说明:
图形用户界面(GUI界面,Graphical User Interface):又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。
桌面(Desktop):桌面具有逻辑显示表面并包含用户界面对象,例如窗口,菜单和挂钩。它可以用来创建和管理窗口,每个桌面对象都是一个安全对象。创建桌面后,该桌面将与调用进程的当前窗口站关联,并分配给调用线程。
窗口站(Windows Station):可以被描述为包含桌面和进程的安全边界。一个窗口站包含一个剪贴板,一个原子表和一个或多个桌面对象。每个窗口站对象都是一个安全对象。创建窗口站后,该窗口站将与调用过程关联并分配给当前会话。只有被称为WinSta0的窗口站才被允许与用户交互,在WinSta0下共载入三个桌面:登陆界面,交互桌面,和屏幕保护桌面。
会话(Session):会话代表了一个用户登录到系统中以后的执行环境,其中的对象包括所有的窗口,桌面和窗口站。一个会话可以包含多个窗口站,而每个窗口站又可以拥有多个桌面。在系统控制台登录的用户会话为Session 0,其他通过远程桌面或终端服务登录到系统中的会话可以是Session 1、Session 2等。
explorer.exe指Windows程序管理器(或称为文件资源管理器),它用于管理Windows图形壳,包括桌面和文件管理。程序管理器标志对应explorer.exe的Token(标签)。
请参考图1,图1为本发明实施例中一种软件检测方法的流程图,该方法可以应用于安全检查软件中(如常见的杀毒软件),也可以应用于可以获得安全检查软件的软件检测名单的其他设备或软件中,该方法包括以下步骤:
S100、获取待检测的目标软件。
其中,目标软件可以为任意一个需要进行安全检测的软件。即该软件可以为未知其安全性的软件。当然,该目标软件也可以为采用了其他安全检测技术,初步确定了其安全性的软件。
S200、对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果。
需要说明的是,通过对恶意软件和正常软件进行研究发现,如果某软件具有GUI界面,则该软件为恶意软件的概率会比较低,即恶意软件一般不具有GUI界面。也就是说,通过确定软件是否存在GUI界面,可以降低误报。
检测目标软件中是否具有GUI界面,可具体检测该目标软件中是否具有桌面,在有桌面的情况下,确定具有GUI界面。
当然,也可对外输出目标软件是否具有GUI界面的弹框,通过从该弹框中获取用户输入的勾选信息,进而确定该目标软件是否具有GUI界面。
检测目标软件是否具有GUI界面,对应的GUI界面检测结果则对应为有GUI界面或无GUI界面。
在实际应用中,安全检查软件可以结合自身的会话,目标软件通过会话,来确定目标软件是否有GUI界面。具体的,由于不同的会话之间的隔绝的,因此对于不同的会话情况,确定目标软件是否有GUI界面的具体实现方式有所区别。下面分别以不同会话情况,对如何检测目标软件是否具有GUI界面进行详细说明:
情况1:在本发明的一种具体实施方式中,对于步骤S102对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果,可具体包括:
步骤一、在检测进程与目标进程处于同一会话的情况下,将检测进程与目标进程的窗口站进行关联;目标进程与目标软件对应;
步骤二、将检测进程与目标进程的桌面进行关联;
步骤三、利用窗口站和桌面,枚举所有窗口,对枚举的窗口进行过滤;
步骤四、在过滤得到与目标进程关联的目标窗口的情况下,确定目标软件具有GUI界面。
其中,步骤二还可进一步优化为将检测进程与目标进程的交互桌面进行关联。即,如此,便可仅检测交互GUI界面,而有交互GUI界面的软件为恶意软件的概率相较于有GUI界面而言,实质更低。即,检测是否具有GUI界面可对软件检测名单进行修正。
情况2、在本发明的一种具体实施方式中,对于步骤S102对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果,可具体包括:
步骤一、在检测进程与目标进程处于不同会话的情况下,获取与目标进程对应目标会话中的程序管理器标志;目标进程与目标软件对应;
步骤二、利用程序管理器标志在目标会话中创建代理进程;
步骤三、利用代理进程枚举所有窗口,对枚举的窗口进行过滤;
步骤四、在过滤得到与目标进程关联的目标窗口的情况下,确定目标软件具有GUI界面。
需要说明的是,无论是针对上述情况1还是针对上述情况2,在执行步骤在过滤得到与目标进程关联的目标窗口的情况下,确定目标软件具有GUI界面,还可具体为:在目标窗口非控制台窗口,且尺寸大于阈值的情况下,确定目标软件具有GUI界面。也就是说,不仅要求检测出目标窗口,还要求该目标窗口不是Console控制台窗口,也不是很小的窗口。如此,便可防止恶意软件创建小窗口来对抗检测。
对比情况1和情况2可见,情况1针对检测进程和目标进程的会话为同一个的情况下,直接基于检测进程得到GUI界面检测结果;而情况2针对检测进程和目标进程的会话非同一个的情况下,通过创建代理进程的方式得到GUI界面检测结果。二者虽有区别,但存在一些雷同步骤,为了便于说明,下面以举例的方式对情况1和情况2进行结合说明。
请参考图2,图2为本发明实施例中一种GUI界面检测流程示意图。该检测流程涉及三个进程,分别是恶意软件检测进程(本文简称检测进程,可对应安全检测软件本身)、被检测进程(即目标进程,与目标软件对应)和代理进程。
由于不同Session之间是隔绝的,所以如果被检测进程在其它Session中则需要通过代理进程来检测其是否有交互GUI界面及用户交互行为。整个检测过程包括以下步骤:
步骤1、获取检测进程的Session ID,记为Session X;Session即会话。
步骤2、获取目标进程Session ID,记为Session Y。
步骤3、判断Session X是否等于Session Y,如果等于则转入步骤4,即在相同的Session中检测目标进程是否有交互GUI界面及用户交互行为;否则转入步骤9,即在不同的Session中检测目标进程是否有交互GUI界面及用户交互行为;
步骤4、备份检测进程的窗口站和桌面,以便于以后恢复;
步骤5、打开WinSta0窗口站并且设置检测进程关联到目标进程的WinSta0窗口站。
步骤6、打开交互桌面并且设置检测线程关联到目标线程的交互桌面。
其中步骤5和步骤6这两步的作用让检测进程关联到目标进程的交互桌面,以便接下来可以枚举包括目标检测的窗口。
步骤7、枚举所有窗口,过滤出和目标进程关联的窗口,然后再依次过滤掉Console控制台窗口和很小的窗口,如果目标进程有较大的交互GUI窗口则认为目标进程大概率为正常软件。
步骤8、恢复当前进程窗口站和桌面。
步骤9、获取目标Session中explorer.exe进程对应的Token,通过该Token在目标Session中创建代理进程,检测并返回结果。其中,检测并返回结果,即指由代理检测执行上述步骤5和步骤7,并将结果反馈给检测进程。
在图2中,虚线左侧由检测进程执行,虚线右侧由代理进程执行,代理进程枚举窗口时,可参照虚线左侧的枚举窗口的实现过程。
S300、根据GUI界面检测结果确定目标软件是否为恶意软件。
具体的,若目标软件存在GUI界面,则确定目标软件为安全软件;若目标软件无GUI界面,则确定目标软件为恶意软件。
应用本发明实施例所提供的方法,获取待检测的目标软件;对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;根据GUI界面检测结果确定目标软件是否为恶意软件。
通过对恶意软件和正常软件进行研究发现,如果某软件具有GUI界面,则该软件为恶意软件的概率会比较低,即恶意软件一般不具有GUI界面。也就是说,通过确定软件是否存在GUI界面,可以降低误报。因而,可对目标软件进行是否具有GUI界面的检测。然后,根据GUI界面检测结果确定目标软件是否为恶意软件。也就是说,在本方法中可以基于软件本身是否具有GUI界面确定软件是否为恶意软件,可达到降低误报的目的。
在本发明的一种具体实施方式中,上述步骤S100可具体包括:
步骤一、对软件进行静态检测和/或动态检测,得到初检结果;
步骤二、当初检结果为恶意软件时,确定软件为待检测的目标软件。
为便于描述,下面将上述两个步骤结合起来进行说明。
也就是说,可以预先对软件进行初步检测,检测的方式可以为静态检测、动态检测,和动态检测与静态检测相结合的方式进行。得到初检结果之后,便可基于该初检结果的具体情况,确定其是否为目标软件,即当初检结果为恶意软件,则对应将该软件确定为目标软件。也就是说,目标软件是需要进行再次检测修改其初检结果的软件。该初检结果可以具体显示软件是否为恶意软件的判断结果,也可以包括表征软件为恶意软件的概率。
在本发明的一种具体实施方式中,若初检结果仅包括显示软件是否为恶意软件的判断结果。相应地,上述步骤S300根据GUI界面检测结果确定目标软件是否为恶意软件,包括:
情况1:若GUI界面检测结果为目标软件具有GUI界面,确定目标软件为安全软件;
情况2:若GUI界面检测结果为目标软件无GUI界面,确定目标软件为恶意软件。
即,当目标软件有GUI界面,则直接将初检结果修改为安全软件,若目标软件无GUI界面,则认定初检结果为准确的,即目标软件为恶意软件。
进一步地,若软件既存在GUI界面,又有用户交互行为,则可更加肯定其属于安全软件。因而,上述情况1,还可以具体包括:
步骤1、若目标软件具有GUI界面,则进一步检测目标软件是否具有对应的用户交互行为;
步骤2、若目标软件具有用户交互行为,则确定目标软件为安全软件。
检测是否存在用户交互行为的方式可参照上文描述,在此不在一一赘述。
在本发明的一种具体实施方式中,若初检结果具体包括软件的恶意概率;
根据GUI界面检测结果确定目标软件是否为恶意软件,包括:
步骤一、在GUI界面检测结果表明目标软件有GUI界面的情况下,则降低目标软件对应的恶意概率;
步骤二、在GUI界面检测结果表明目标软件无GUI界面的情况下,则增加目标软件对应的恶意概率;
步骤三、在目标软件的恶意概率大于恶意阈值时,确定目标软件为恶意软件。
其中,恶意阈值可预先进行设置。也就是说,GUI界面检测结果的具体情况可以用于在确定目标软件是否为恶意软件时,对恶意概率进行调整修正,如对应降低或增加特定比例的恶意概率,或者对应降低或增加特定数值的恶意概率,以便最终确定目标软件是否为恶意软件。
当然,用户交互行为也可以对恶意概率进行调整修改,以便最终确定目标软件是否为恶意软件。具体的,在检测到目标软件有GUI界面的情况下,检测目标软件是否具有对应的用户交互行为;在目标软件具有用户交互行为,则再次降低目标软件对应的恶意概率。当然,在实际应用中,基于用户交互行为对恶意概率进行修正时,还可按照与GUI界面有无对应的特定比例或数值不同的特定比例或数值对恶意概率进行调整。
请参考图7,图7为本发明实施例中另一种软件检测方法的流程图,该方法包括:
S101、获取软件检测名单,并从软件检测名单中选出疑似恶意的目标软件。
当该方法应用于安全检查软件中,便可直接利用自身的恶意软件检查流程对软件进行安全检查,得到软件检测名单。在本实施例中对具体采用静态特征检测,或动态行为检测,或二者的结合进行安全检查并不做限定。
当该方法应用于非安全检查软件的其他软件或设备,则可通过与安全检查软件进行通信的方式,得到软件检测名单。当然,也可以通过读取存储介质,得到已存储的软件检测名单。
在得到软件检测名单之后,便可利用该软件检测名单确定出疑似恶意的目标软件。
具体的,若软件检测名单具体为进行恶意软件检测后,检出的恶意软件清单,则可直接将该恶意软件清单中的各个软件均确定为疑似恶意软件;若软件检测名单具体为进行恶意软件检测后,采用恶意概率对各个软件进行表征,则可将恶意概率处于误报筛查范围内的软件确定为疑似恶意软件。其中,误报筛查范围可根据实际筛选精度需求进行设置,如需要高精度时,则设置较大的范围,若精度要求较低时,则可设置较小的范围。具体范围的选取可根据历史统计结果选出误报可能最大的恶意概率所处范围。
确定出疑似恶意的目标软件之后,便可执行步骤S102的操作。
S102、对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果。
S103、按照与GUI界面检测结果对应的修正方式,对软件检测名单进行修正。
得到GUI界面检测结果之后,基于一般地恶意软件不会有GUI界面,因而可基于GUI界面检测结果对软件检测名单进行修正。修正的方式可直接修改目标软件是否为恶意软件的判定结果,也可为修改目标软件为恶意软件的可能性指标值(如恶意概率)。具体的,当目标软件具有GUI界面,或不具有GUI界面,对软件检测名单进行修正的修正方式不同。即,当目标软件具有GUI界面时,将目标软件直接修正为或偏向安全软件,反正,则将目标软件直接修正为或偏向恶意软件。
在本发明的一种具体实施方式中,上述步骤S103可具体包括:
步骤一、在GUI界面检测结果表明目标软件有GUI界面的情况下,则将软件检测名单中的目标软件修正为安全软件;
步骤二、在GUI界面检测结果表明目标软件无GUI界面的情况下,则将软件检测名单中的目标软件修正为恶意软件。
为便于描述,下面将上述两个步骤结合起来进行说明。
在确定目标软件有GUI界面的情况下,此时可认为目标软件不应当为恶意软件,软件检测名单存在误判,可直接对软件检测名单中的目标软件修正为安全软件。
在确定目标软件无GUI界面的情况下,此时可认为目标软件应当为恶意软件,软件检测名单存在误判,可直接对软件检测名单中的目标软件修正为恶意软件。
需要说明的是,若目标软件在软件检测名单中即为安全软件,而目标软件又有GUI界面,此时可无需对软件检测名单进行修正,当然也可在软件检测名单中对该目标软件进行重点标注,表明其经过GUI界面检测判断,确系为安全软件。相应地,对于目标软件在软件检测名单中即为恶意软件,而目标软件又无GUI界面的情况可参照于此,在此不再一一赘述。
在本发明的一种具体实施方式中,上述步骤S103可具体包括:
步骤一、在GUI界面检测结果表明目标软件有GUI界面的情况下,则降低软件检测名单中的目标软件对应的恶意概率;
步骤二、在GUI界面检测结果表明目标软件无GUI界面的情况下,则增加恶意概率。
为便于描述,下面将上述两个步骤结合起来进行说明。
即,在本实施例中,软件检测名单中用恶意概率来表征各个软件为恶意软件的概率情况。当检测到目标软件有GUI界面,则可确定目标软件为恶意软件的概率更低,可通过对恶意概率进行降低的方式对软件检测名单进行修正;当检测到目标软件无GUI界面,则可确定目标软件为恶意软件的概率更高,可通过对恶意概率进行增加的方式对软件检测名单进行修正。
具体的,对于具体增加多少概率,降低多少概率,可根据实际应用需求进行设置,即对有无GUI界面赋予修正恶意概率的幅度为±a%,其中a的值可根据实际情况统计而确定,或根据经验设置。
需要说明的是,在本发明的其他实施例中,除采用GUI界面是否有无的检测结果对软件检测名单进行之外,还可结合签名,白名单或者用户自定义信任名单,流行度等因素对软件检测名单进行修正,以降低误报。其中,1、检查签名:通过校验其签名合法性来降低误报;2、白名单或者用户自定义信任名单:通过检查是否在白名单或者用户自定义信任列表中来降低误报;3、流行度(Prevalence)检查:即通过检查该文件流行程度来降低误报,一般认为流行程度越高则是恶意软件的概率越低。具体的,可参考图3所示,图3为本发明实施例中一种软件检测方法的具体实现流程图。
在本发明的一种具体实施方式中,若基于GUI界面检测结果对软件检测名单中的恶意概率进行修正,还可进一步基于该目标软件是否存在用户交互行为的检测结果,对恶意概率进行再次纠正。即,若某个软件存在GUI界面,且该软件具有对应的用户交互行为,则该软件为恶意软件的概率也会降低。因此在利用GUI界面检测结果对恶意概率进行修正之后,还可执行以下步骤:
步骤一、在检测到目标软件有GUI界面的情况下,检测目标软件是否具有对应的用户交互行为;
步骤二、在目标软件具有用户交互行为,则降低恶意概率。
为便于说明,下面将上述两个步骤结合起来进行说明。
其中,用户交互行为指用户进行键盘输入,鼠标操作,摄像头语音输入等人机交互。其中,用户交互行为本身可采用多种检测方式进行,例如可采用事件钩子方式,对输入设备进行监控,从而确定目标软件具有用户交互行为。
在捡测到目标软件有GUI界面的情况下,可检出目标软件是否具有对应的用户交互行为,如果有,则可降低恶意概率。具体的,对于降低的幅度大小,可根据预先对用户交互行为与恶意概率的对应情况进行设置,可通过统计历史数据得到该对应情况。当然,也可根据经验而设置或调整。
应用本发明实施例所提供的方法,获取软件检测名单,并从软件检测名单中选出疑似恶意的目标软件;对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;按照与GUI界面检测结果对应的修正方式,对软件检测名单进行修正。
在获取到软件检测名单之后,可首先基于软件检测名单确定出疑似恶意的目标软件。即目标软件可能为恶意软件,也可能是误报对应的正常软件。通过对恶意软件和正常软件进行研究发现,如果某软件具有GUI界面,则该软件为恶意软件的概率会比较低,即恶意软件一般不具有GUI界面。也就是说,通过确定软件是否存在GUI界面,可以降低误报。因而,可对目标软件进行是否具有GUI界面的检测。然后,按照与GUI界面检测结果对应的修正方式,根据GUI界面检测结果对软件检测名单进行修正。也就是说,在本方法中可以基于软件本身是否具有GUI界面对软件检测名单进行修正,可达到降低误报的目的。
相应于上面的方法实施例,本发明实施例还提供了一种软件检测装置,下文描述的软件检测装置与上文描述的软件检测方法可相互对应参照。
参见图4所示,该装置包括以下模块:
待测试软件确定模块101,用于获取待检测的目标软件;
GUI界面检测模块102,用于对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;
恶意判定模块103,用于根据GUI界面检测结果确定目标软件是否为恶意软件。
应用本发明实施例所提供的装置,获取待检测的目标软件;对目标软件进行检测,得到表示目标软件是否具有GUI界面的GUI界面检测结果;根据GUI界面检测结果确定目标软件是否为恶意软件。
通过对恶意软件和正常软件进行研究发现,如果某软件具有GUI界面,则该软件为恶意软件的概率会比较低,即恶意软件一般不具有GUI界面。也就是说,通过确定软件是否存在GUI界面,可以降低误报。因而,可对目标软件进行是否具有GUI界面的检测。然后,根据GUI界面检测结果确定目标软件是否为恶意软件。也就是说,在本装置中可以基于软件本身是否具有GUI界面确定软件是否为恶意软件,可达到降低误报的目的。
在本发明的一种具体实施方式中,待测试软件确定模块101,具体用于对软件进行静态检测和/或动态检测,得到初检结果;当初检结果为恶意软件时,确定软件为待检测的目标软件。
在本发明的一种具体实施方式中,恶意判定模块103,具体用于若GUI界面检测结果为目标软件具有GUI界面,确定目标软件为安全软件;若GUI界面检测结果为目标软件无GUI界面,确定目标软件为恶意软件。
在本发明的一种具体实施方式中,恶意判定模块103,具体用于若目标软件具有GUI界面,则进一步检测目标软件是否具有对应的用户交互行为;若目标软件具有用户交互行为,则确定目标软件为安全软件。
在本发明的一种具体实施方式中,初检结果具体包括软件的恶意概率,恶意判定模块103,具体用于在GUI界面检测结果表明目标软件有GUI界面的情况下,则降低目标软件对应的恶意概率;在GUI界面检测结果表明目标软件无GUI界面的情况下,则增加目标软件对应的恶意概率;在目标软件的恶意概率大于恶意阈值时,确定目标软件为恶意软件。
在本发明的一种具体实施方式中,恶意判定模块103,还用于在检测到目标软件有GUI界面的情况下,检测目标软件是否具有对应的用户交互行为;在目标软件具有用户交互行为,则再次降低目标软件对应的恶意概率。
在本发明的一种具体实施方式中,GUI界面检测模块102,具体用于在检测进程与目标进程处于同一会话的情况下,将检测进程与目标进程的窗口站进行关联;目标进程与目标软件对应;将检测进程与目标进程的桌面进行关联;利用窗口站和桌面,枚举所有窗口,对枚举的窗口进行过滤;在过滤得到与目标进程关联的目标窗口的情况下,确定目标软件具有GUI界面。
在本发明的一种具体实施方式中,GUI界面检测模块102,具体用于将检测进程与目标进程的交互桌面进行关联。
在本发明的一种具体实施方式中,GUI界面检测模块102,具体用于在检测进程与目标进程处于不同会话的情况下,获取与目标进程对应目标会话中的程序管理器标志;目标进程与目标软件对应;利用程序管理器标志在目标会话中创建代理进程;利用代理进程枚举所有窗口,对枚举的窗口进行过滤;在过滤得到与目标进程关联的目标窗口的情况下,确定目标软件具有GUI界面。
在本发明的一种具体实施方式中,GUI界面检测模块102,具体用于在目标窗口非控制台窗口,且尺寸大于阈值的情况下,确定目标软件具有GUI界面。
相应于上面的方法实施例,本发明实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种软件检测方法可相互对应参照。
参见图5所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的软件检测方法的步骤。
具体的,请参考图6,图6为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的软件检测方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种软件检测方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的软件检测方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (11)
1.一种软件检测方法,其特征在于,包括:
获取待检测的目标软件;
对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果;
根据所述GUI界面检测结果确定所述目标软件是否为恶意软件,包括:
若所述GUI界面检测结果为所述目标软件具有所述GUI界面,则检测所述目标软件是否具有对应的用户交互行为,若所述目标软件具有所述用户交互行为,则确定所述目标软件为安全软件;
若所述GUI界面检测结果为所述目标软件无所述GUI界面,则确定所述目标软件为恶意软件。
2.根据权利要求1所述的软件检测方法,其特征在于,所述获取待检测的目标软件,包括:
对软件进行静态检测和/或动态检测,得到初检结果;
当所述初检结果为恶意软件时,确定所述软件为所述待检测的目标软件。
3.根据权利要求2所述的软件检测方法,其特征在于,所述初检结果具体包括所述软件的恶意概率;
所述根据所述GUI界面检测结果确定所述目标软件是否为恶意软件,包括:
在所述GUI界面检测结果表明所述目标软件有所述GUI界面的情况下,则降低所述目标软件对应的恶意概率;
在所述GUI界面检测结果表明所述目标软件无所述GUI界面的情况下,则增加所述目标软件对应的恶意概率;
在所述目标软件的恶意概率大于恶意阈值时,确定所述目标软件为恶意软件。
4.根据权利要求3所述的软件检测方法,其特征在于,还包括:
在检测到所述目标软件有所述GUI界面的情况下,检测所述目标软件是否具有对应的用户交互行为;
在所述目标软件具有所述用户交互行为,则再次降低所述目标软件对应的恶意概率。
5.根据权利要求1所述的软件检测方法,其特征在于,所述对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果,包括:
在检测进程与目标进程处于同一会话的情况下,将所述检测进程与所述目标进程的窗口站进行关联;所述目标进程与所述目标软件对应;
将所述检测进程与所述目标进程的桌面进行关联;
利用所述窗口站和所述桌面,枚举所有窗口,对枚举的所述窗口进行过滤;
在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面。
6.根据权利要求5所述的软件检测方法,其特征在于,将所述检测进程与所述目标进程的桌面进行关联,包括:
将所述检测进程与所述目标进程的交互桌面进行关联。
7.根据权利要求1所述的软件检测方法,其特征在于,对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果,包括:
在检测进程与目标进程处于不同会话的情况下,获取与所述目标进程对应目标会话中的程序管理器标志;所述目标进程与所述目标软件对应;
利用所述程序管理器标志在所述目标会话中创建代理进程;
利用所述代理进程枚举所有窗口,对枚举的所述窗口进行过滤;
在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面。
8.根据权利要求5至7任一项所述的软件检测方法,其特征在于,所述在过滤得到与所述目标进程关联的目标窗口的情况下,确定所述目标软件具有所述GUI界面,包括:
在所述目标窗口非控制台窗口,且尺寸大于阈值的情况下,确定所述目标软件具有所述GUI界面。
9.一种软件检测装置,其特征在于,包括:
待测试软件确定模块,用于获取待检测的目标软件;
GUI界面检测模块,用于对所述目标软件进行检测,得到表示所述目标软件是否具有GUI界面的GUI界面检测结果;
恶意判定模块,用于根据所述GUI界面检测结果确定所述目标软件是否为恶意软件;
其中,所述恶意判定模块,具体用于若所述GUI界面检测结果为所述目标软件具有所述GUI界面,则检测所述目标软件是否具有对应的用户交互行为,若所述目标软件具有所述用户交互行为,则确定所述目标软件为安全软件;若所述GUI界面检测结果为所述目标软件无所述GUI界面,则确定所述目标软件为恶意软件。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述软件检测方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述软件检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011347560.6A CN112463606B (zh) | 2020-11-26 | 2020-11-26 | 一种软件检测方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011347560.6A CN112463606B (zh) | 2020-11-26 | 2020-11-26 | 一种软件检测方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463606A CN112463606A (zh) | 2021-03-09 |
CN112463606B true CN112463606B (zh) | 2023-11-03 |
Family
ID=74808641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011347560.6A Active CN112463606B (zh) | 2020-11-26 | 2020-11-26 | 一种软件检测方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463606B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8776227B1 (en) * | 2010-10-21 | 2014-07-08 | Symantec Corporation | User interface based malware detection |
US9686300B1 (en) * | 2014-07-14 | 2017-06-20 | Akamai Technologies, Inc. | Intrusion detection on computing devices |
CN108491722A (zh) * | 2018-03-30 | 2018-09-04 | 广州汇智通信技术有限公司 | 一种恶意软件检测方法及系统 |
CN110543765A (zh) * | 2019-08-28 | 2019-12-06 | 南京市晨枭软件技术有限公司 | 一种恶意软件检测方法 |
CN110879889A (zh) * | 2019-11-27 | 2020-03-13 | 武汉虹旭信息技术有限责任公司 | Windows平台的恶意软件的检测方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580221B2 (en) * | 2016-12-29 | 2023-02-14 | Dropbox, Inc. | Malware detection and content item recovery |
US10762202B2 (en) * | 2018-04-11 | 2020-09-01 | Crowdstrike, Inc. | Securely and efficiently providing user notifications about security actions |
-
2020
- 2020-11-26 CN CN202011347560.6A patent/CN112463606B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8776227B1 (en) * | 2010-10-21 | 2014-07-08 | Symantec Corporation | User interface based malware detection |
US9686300B1 (en) * | 2014-07-14 | 2017-06-20 | Akamai Technologies, Inc. | Intrusion detection on computing devices |
CN108491722A (zh) * | 2018-03-30 | 2018-09-04 | 广州汇智通信技术有限公司 | 一种恶意软件检测方法及系统 |
CN110543765A (zh) * | 2019-08-28 | 2019-12-06 | 南京市晨枭软件技术有限公司 | 一种恶意软件检测方法 |
CN110879889A (zh) * | 2019-11-27 | 2020-03-13 | 武汉虹旭信息技术有限责任公司 | Windows平台的恶意软件的检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112463606A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9882926B2 (en) | Detecting stored cross-site scripting vulnerabilities in web applications | |
US10192074B2 (en) | Technique for data loss prevention through clipboard operations | |
US9282112B2 (en) | System and method for determining category of trust of applications performing interface overlay | |
US8918885B2 (en) | Automatic discovery of system integrity exposures in system code | |
US9323925B2 (en) | Method and system for prevention of windowless screen capture | |
US10162966B1 (en) | Anti-malware system with evasion code detection and rectification | |
US9177136B2 (en) | Information device, program, method, and computer readable recording medium for preventing execution of malicious program code | |
US11120124B2 (en) | Method for detecting a deviation of a security state of a computing device from a desired security state | |
CN110929264A (zh) | 漏洞检测方法、装置、电子设备及可读存储介质 | |
US20230160860A1 (en) | Stack pivot exploit detection and mitigation | |
CN114065196A (zh) | Java内存马检测方法、装置、电子设备与存储介质 | |
JP6383445B2 (ja) | 保護されたアプリケーションへのアクセスを阻止するシステム及び方法 | |
US9529489B2 (en) | Method and apparatus of testing a computer program | |
JP6714112B2 (ja) | グラフィカルユーザインターフェース要素に関連した悪意のある行為の軽減 | |
CN108509796B (zh) | 一种风险性的检测方法及服务器 | |
CN112463606B (zh) | 一种软件检测方法、装置、设备及可读存储介质 | |
US10063558B2 (en) | Method for blocking unauthorized data access and computing device with feature of blocking unauthorized data access | |
CN111159714B (zh) | 一种访问控制中主体运行时可信验证方法及系统 | |
CN112685744B (zh) | 一种利用栈相关寄存器检测软件漏洞的方法及装置 | |
CN115292707A (zh) | 基于动态类调用序列的可信度判断方法及装置 | |
CN114564720A (zh) | 程序文件审核方法、装置、电子设备及存储介质 | |
CN114095218A (zh) | 一种资产漏洞管理方法及装置 | |
CN113254932A (zh) | 应用程序的风险检测方法、装置、电子设备和介质 | |
CN115422555B (zh) | 后门程序检测方法、装置、电子设备及存储介质 | |
CN117034261B (zh) | 一种基于标识符的异常检测方法、装置、介质及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |