阻挡对受保护的应用程序的访问的系统和方法与流程

文档序号:13625922阅读:283来源:国知局
阻挡对受保护的应用程序的访问的系统和方法与流程

本发明总体上涉及计算机安全领域,以及,具体地,涉及阻挡对受保护的应用程序的访问的系统和方法。



背景技术:

目前,用于计算设备、包括个人电子计算机器(计算机)上的各种应用程序(软件)的数量持续增长。在大量应用程序中,存在许多恶意程序,该恶意程序能够对计算机或计算机的用户(特别是用户的数据)造成损害,诸如网络蠕虫、键盘追踪器、计算机病毒以及能够为了窃取显示在用户计算设备上的机密信息的目的进行截屏的应用程序。

保护计算设备的用户的机密数据防备此类程序是一个急迫的问题。此类数据可利用各种应用程序的窗口(诸如浏览器)显示给用户。恶意应用程序能够获取对显示在计算设备的屏幕上的信息的访问,并截屏(屏幕的快照),或获取对计算设备的屏幕上的图像的二进制表示的访问(数据通过访问操作系统的系统函数或形成图像的对应驱动程序来表征图像,该图像由应用程序窗口构成,且该图像显示在计算设备的屏幕上)。

存在一些通常实现为杀毒软件应用程序的方法,凭借于此,杀毒软件应用程序拦截进程对表征计算设备的屏幕上的图像的数据的访问。在运行的应用程序的窗口中,如果存在属于受保护的应用程序(例如,运行在“沙盒”中的应用程序)的窗口,则可阻挡对表征计算设备的屏幕上的图像的数据的访问。

已知的方法没有解决阻挡对显示给用户的信息的访问的问题。本发明使得阻挡对信息的访问的问题的更有效的解决方案成为可能。



技术实现要素:

本文公开了用于阻挡对受保护的应用程序的访问的系统和方法。示例性方法包括:拦截进程对待显示在用户的计算设备上的第一信息的访问;基于对所述进程的所述访问的所述拦截确定第二信息,所述第二信息与所述进程相关;确定所述用户的计算设备的显示器上的与所述第一信息相关的区域;分析所述区域和与所述进程相关的至少一个图形界面之间的一个或多个交叉;以及,基于所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析,阻挡所述进程对所述第一信息的所述访问。

在一个示例性方面中,所述区域的所述确定包括以下操作中的至少一个操作:确定显示器的对应于所述区域的位置;确定对应于所述区域的设备上下文;确定对应于所述区域的表面;以及确定对应于所述区域的窗口标识符。

在一个示例性方面中,所述第二信息包括进程标识符和线程标识符中的至少一者。

在一个示例性方面中,所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析包括:确定与所述进程相关的所述至少一个图形界面包含所述显示器上的所述区域、包含在所述显示器上的所述区域中、或者与所述显示器上的所述区域至少部分地交叉。

在一个示例性方面中,所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析包括:基于与所述进程相关的所述图形界面包含所述显示器上的所述区域、包含在所述显示器上的所述区域中、或者与所述显示器上的所述区域至少部分地交叉的所述确定来计算所述区域的重要性等级;以及基于关于所述进程的所述信息计算危险等级。

在一个示例性方面中,基于所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析,确定是否阻挡所述进程对所述第一信息的所述访问包括:组合所述重要性等级和所述危险等级;以及将所述重要性等级和所述危险等级的组合与预定阈值作比较。

在一个示例性方面中,基于与所述进程相关的所述至少一个图形界面包含所述显示器上的所述区域、包含在所述显示器上的所述区域中、或者与所述显示器上的所述区域至少部分地交叉的所述确定的所述区域的所述重要性等级的所述计算包括:从信息数据库访问与所述区域至少部分地交叉的一个或多个元素相关的机密性的一个或多个系数;以及基于考虑所述机密性的一个或多个系数的算法计算所述重要性等级。

在一个示例性方面中,所述方法还包括:计算所述机密性的一个或多个系数;以及在所述信息数据库中存储计算的所述机密性的一个或多个系数。

在一个示例性方面中,所述阻挡所述进程对所述第一信息的所述访问包括:在所述用户的设备的存储器中,取代显示给用户的所述信息的二进制表示。

在一个示例性方面,所述方法还包括:基于所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析,确定与所述进程相关的应用程序是否是恶意的。

在一个示例性方面中,提供了用于控制对用户的计算设备上的应用程序的访问的系统,所述系统包括:至少一个处理器,所述至少一个处理器配置成:拦截进程对待显示在所述用户的计算设备上的第一信息的访问;基于对所述进程的所述访问的所述拦截确定第二信息,所述第二信息与所述进程相关;确定所述用户的计算设备的显示器上的与所述第一信息相关的区域;分析所述区域和与所述进程相关的至少一个图形界面之间的一个或多个交叉;以及,基于所述区域和与所述进程相关的所述至少一个图形界面之间的所述一个或多个交叉的所述分析,阻挡所述进程对所述第一信息的所述访问。

本发明的上述示例性方面的简化综述有助于提供对本发明的基本理解。该综述不是所有考虑方面的广泛概述,且既不意在识别所有方面的主要要素或关键要素,也不意在描绘本发明的任何方面或所有方面的范围。为了实现上述内容,本发明的一个或多个方面包括所描述的且尤其在权利要求书中所指出的特征。

附图说明

并入到说明书中且构成该说明书的一部分的附图示出了本发明的一个或多个示例性方面,且结合详细描述用于解释它们的原理和实现方式。

图1示出了用于阻挡对用户的计算设备上的受保护的应用程序的访问的示例性系统的结构图;

图2示出了用于阻挡对用户的计算设备上的受保护的应用程序的访问的示例性方法的流程图;

图3示出了通用计算机系统的示例,在该通用计算机系统上能够实施阻挡对受保护的应用程序的访问的该系统和方法的多个方面。

具体实施方式

本文在用于阻挡对计算设备上的受保护的应用程序的访问的系统、方法和计算机程序产品的情况中描述本发明的示例性方面。本领域技术人员将认识到以下描述仅是说明性的,而不旨在以任何方式进行限定。其它方面将容易地将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。

以下术语将用来描述本发明的示例性方面。

恶意应用程序可以是能够对计算机或该计算机的用户的数据造成损害的应用程序。恶意应用程序的例子可包括网络蠕虫、键盘追踪器和/或计算机病毒。恶意程序所造成的损害可包括:(例如为了窃取的目的)对计算机资源(包括存储在计算机上的数据)非法访问,以及对该资源的非法使用(包括为了存储数据、执行计算等)。

可信应用程序可以是不会对计算机或对它的用户造成损害的应用程序。可信应用程序可包括由可信软件开发商开发的应用程序,从可信资源(诸如列在可信网站数据库中的网站)下载的应用程序,和/或与可存储在可信应用程序的数据库中的标识符(例如应用程序文件的消息摘要算法5(md5))相关的应用程序。开发商的标识符,诸如数字证书(例如与可信应用程序相关的数字证书)也可被存储在可信应用程序的数据库中。

非可信应用程序可以为非可信的、但也没有被识别为有害的应用程序,例如使用杀毒软件应用程序。

恶意文件可以是作为恶意应用程序的组成部分的文件。

非可信的文件可以是作为非可信的应用程序的组成部分的文件。

可信文件可以是作为可信应用程序的组成部分的文件。

恶意进程可以是从恶意应用程序运行的进程。

非可信的进程可以是从非可信的应用程序运行的进程。

可信进程可以是从可信应用程序运行的进程。

对显示给用户的信息的访问可包括系统函数的至少一次调用,其结果是显示给用户的信息的二进制表示被加载到计算设备的存储器(例如ram)中。此类函数的例子是windows系统应用程序接口(winapi)函数bitblt。

对显示给用户的信息的访问的危险等级(简称访问危险等级)可以是数字(诸如从0到+∞、或从0到1000中的一个数字,其中,如果计算时等级高于1000,则它的值被认为是1000),当当显示给用户的信息的访问更具恶意进程的特点时,则该数字可更大。

图1示出了用于阻挡对用户的计算设备上的受保护的应用程序的访问的示例性系统的结构图。该系统包括以下部件:拦截模块130、交叉分析模块140、安全提供模块150。在一个示例性方面中,该系统进一步包括信息数据库160。所述系统可位于用户的计算设备(例如,个人计算机、笔记本、智能手机或其它计算设备)上,其为了简单起见被称为“计算设备”,将在下文进一步提供对该计算设备的详细描述。

在一个示例性方面中,该计算设备包含显示器110(在一个示例性方面中,所述显示器110不是该计算设备的一部分,而是和其它输入/输出设备一起连接至该计算设备)。该显示器110可将信息显示给计算设备的用户(以下称为“用户”),所显示的信息可包括文本、图形图像等。该信息可通过操作系统(os)的图形界面的各种元素(例如,windows操作系统中的任务面板)显示,也可凭借在该计算设备上执行的进程120的图形界面115(115a、115b和115c)的元素显示。在一个示例性方面中,图形界面的此类元素可以是进程窗口120。在另一个方面中,图形界面115的该元素可以是进程插件(widget)120。在又一个方面中,图形界面115的该元素可以是弹出窗口。在又一个方面中,图形界面115的该元素可以是进程120从其启动的应用程序的图标,通知面板(osandroid的状态栏或oswindows的托盘)中的进程120的图标。在计算设备上执行的进程120可以从至少在同一计算设备上呈现的应用程序启动。在一个示例性方面中,所述应用程序可呈现于另一个计算设备上(例如,在远程服务器或网络磁盘上)。在一个示例性方面中,执行的进程120可包括不具有图形界面115的元素的进程。

在一个示例性方面中,拦截模块130可被配置成拦截对显示的信息的访问进程。拦截模块130可被配置成至少确定:(1)有关实施对显示给用户的信息的访问的进程120的信息,所述信息至少包括所述进程120的标识符(例如,进程标识符pid);以及(2)计算设备的显示器110上的区域125,在该区域125中,信息显示给用户,并且通过进程120实施对该区域125的访问。

计算设备的显示器110上的区域125的确定可以至少是对区域的位置的确定。在一个示例性方面中,计算设备的显示器110上的区域125的位置可以是该区域125的顶点坐标或顶点中的一者(诸如左上顶点)的坐标和区域125的尺寸(它的高和宽)。该区域125可具有矩形形状。在又一个方面中,该区域可具有任意形状,此类形状的确定可基于描述该区域的边界上的点的准确或近似(例如,以指定精确度)位置的函数的确定。对显示给用户的信息的访问可至少是函数(诸如系统函数)的调用,其结果是显示给用户的信息的二进制表示(位图)可被加载到计算设备存储器中。在一个方面中,所述存储器可以是计算设备的ram。此类函数的一个例子可以是windowsapi函数bitblt。在一个示例性方面中,此类函数可以是drvcopybits。在又一个示例性方面中,此类函数可以是printwindow、stretchblt或plgblt。

为了执行拦截,拦截模块130可被实现为驱动程序。在一个示例性方面中,该驱动程序拦截函数bitblt或printwindow的调用。一旦利用该驱动程序拦截该函数调用,可以确定该调用的上下文:进程标识符(pid)和/或线程标识符(tid)。由此获取的数据可以是有关进程的前述信息。可通过调用(和之后拦截)函数的对应参数确定区域125的位置,该参数包括:nheight、hdcsrc、nxsrc、nysrc。

在windowsos版本8及更新的版本中,存在patchguard(安全内核)部件,该patchguard部件保护os,使得操作系统的某些关键结构和表(诸如系统调用表、全局描述表、中断描述表等)不会发生改变。该部件不允许在驱动程序级别上执行对访问的前述方式的拦截。在一个示例性方面中,拦截模块130可以以桌面窗口管理器(dwm)子系统的部件的形式实现,该dwm子系统用于显示进程120的图形界面115的元素。此类部件可以以动态链接库文件的形式被嵌入,该动态链接库文件可被加载到进程dwm.exe的地址空间中。在通过某一进程120调用函数bitblt之后,可接着发生一连串的函数调用(ntgdibitblt、dwmsynccapturescreenbits),其结果是dwm可接收本地程序调用(lpc)请求,该请求可被拦截模块130拦截。有关实施对显示给用户的信息进行访问的进程120的信息可在该请求的报头中发现:pid和tid。以这种方式获得的数据可以是有关前述进程的信息。区域125的位置可通过凭借lpc请求调用的函数的对应参数确定,该对应参数包括:nheight、hdcsrc、nxsrc、nysrc。

在又一个示例性方面中,拦截模块130可以以驱动程序的形式实现,该驱动程序拦截应用程序对显示器驱动程序(诸如cdd.dll–规范显示器驱动程序)的访问。在给定的情况中,拦截模块130可拦截复制表面的函数drvcopybits的调用。一旦利用该驱动程序拦截该函数调用,可以确定该调用的上下文:进程标识符pid和线程标识符tid。由此获得的数据可以是关于进程的前述信息。此外,在用于访问表面的函数的调用中,拦截模块130可确定被访问的表面的标识符。利用该表面标识符,拦截模块130可确定被访问的区域:坐标和尺寸。通过调用的函数的对应参数(参数pptlsrc)可确定区域125的位置。

在又一个示例性方面中,区域125在计算设备的显示器110上的位置的确定可包括设备上下文的确定,该设备上下文对应于区域125,在其中,显示给用户的信息可被访问(换言之,该设备上下文表示为函数调用参数)。在一个示例性方面中,设备上下文可以是拦截的函数(例如,函数bitblt、plgblt和stretchblt)的调用的参数hdcsrc。

在又一个示例性方面中,区域125在计算设备的显示器110上的位置的确定可包括对应于区域125的表面的确定,该区域125通过拦截的函数调用访问。在一个示例性方面中,表面(特别地,指向结构surfobj的指针)是拦截的函数调用drvcopybits的参数psosrc。

在又一个示例性方面中,区域125在计算设备的显示器110上的位置的确定包括窗口的标识符(窗口句柄)的确定,该窗口对应于通过拦截的函数调用访问的区域125。在一个示例性方面中,窗口标识符可以是拦截的函数调用printwindow的参数hwnd。

通过拦截模块130确定的、关于实施对显示给用户的信息进行访问的进程120的信息,以及关于在其中信息显示给用户且信息被访问的计算设备的显示器110上的区域125的信息(特别地,描述该区域的信息指的是计算设备的显示器110上的区域125的位置),可通过拦截模块130被转发至交叉分析模块140。通过拦截模块130确定的、有关实施对显示给用户的信息进行访问的进程120的信息也被转发至安全提供模块150。

在一个示例性方面中,如果通过拦截模块130确定的、计算设备的显示器110上的区域125对应于实施拦截访问的进程120,则关于此类访问不再进行进一步分析,并且实施拦截访问的进程120继续它的执行。在一个示例性方面中,如果通过拦截模块130确定的表面对应于进程120,则区域125对应于进程120。在又一个示例性方面中,如果通过拦截模块130确定的窗口标识符对应于进程120的窗口,则区域125对应于进程120。在另一个示例性方面中,如果通过拦截模块130确定的设备上下文对应于进程120,则区域125对应于进程120。

交叉分析模块140可被配置成分析利用拦截模块130确定的、计算设备的显示器110上的区域125与在计算设备上执行的进程120的图形界面115的元素的区域的交叉,以便确定所述进程120的图形界面115的元素的哪些区域:包含所述区域125;包含在所述区域125中;和/或与所述区域125部分地交叉。

在一个示例性方面中,在前述分析期间,交叉分析模块140将在计算设备上执行的进程120的图形界面115的所有元素的区域的位置与通过拦截模块130确定的区域125的位置比较。在一个示例性方面中,基于有关进程120的图形界面115的元素的数据(具体地,它们的位置和尺寸),通过交叉分析模块140确定进程120的图形界面115的元素的区域的位置,该数据可由操作系统提供。在一个示例性方面中,响应于函数getwindowrect的调用,此类数据可由os提供。

在又一个示例性方面中,基于有关表面和它们的位置的数据,通过交叉分析模块140可确定进程120的图形界面115的元素的区域的位置。通过拦截用于创建表面的函数调用drvenablesurface,具体地是指示了表面的与进程120的图形界面115的元素对应的位置的返回的值——指向结构surfobj的指针,由交叉分析模块140获得此类数据。

在另一个示例性方面中,如果通过拦截模块130确定的设备上下文(其中,对显示给用户的信息实施上下文访问(或访问表面))与桌面的设备上下文一致,或者,如果通过拦截模块130确定的窗口标识符(拦截的函数的参数)是桌面标识符,则交叉分析模块140确定进程120的图形界面115的元素的哪些区域:包含区域125、包含在区域125中或与区域125部分地交叉。

图1还示出了在计算设备上执行的进程120的图形界面115的元素的位置的示例。通过比较区域125的位置以及图形界面115的元素的区域的位置,交叉分析模块140确定:进程120的图形界面115a的元素的区域在其内部(整体地)包含区域125;进程120的图形界面115b的元素的区域与区域125部分地交叉;以及进程120的图形界面115c的元素的区域与区域125不交叉。在一个示例性方面中,基于区域125的顶点坐标和图形界面115的元素的区域的顶点坐标可以确定区域125相对于图形界面115的元素的区域如何定位。在又一个示例性方面中,基于一个顶点(诸如左上顶点)的坐标,以及区域125的尺寸和图形界面115的元素的尺寸(高和宽)可以确定区域125相对于图形界面115的元素的区域如何定位。

在又一个示例性方面中,交叉分析模块140可确定交叉分数——区域125的尺寸与区域125和图形界面115的元素的区域的交叉的区域的尺寸的比率。例如,对于图形界面115a的元素的区域,交叉分数将等于1;对于图形界面115b的元素的区域,交叉分数为1/3;对于图形界面115c的元素的区域,该交叉分数将为0(无交叉)。

在又一个示例性方面中,如果图形界面115的该元素是窗口,且该窗口的设备上下文(利用函数调用winapigetdc可确定该设备上下文)对应于利用拦截模块130之前确定的设备上下文(其中,对显示给用户的信息实施访问),则交叉分析模块140可确定进程120的图形界面115的元素为包含区域125。在这种情况中,交叉分数等于1。对于所有其它进程120,可认为它们的图形界面115的元素不与区域125交叉。

在又一个示例性方面中,如果图形界面115的元素是窗口,且对应于凭借拦截的函数调用访问的区域125的表面是该窗口的表面,则交叉分析模块140确定进程120的图形界面115的元素为包含区域125。在这种情况中,交叉分数等于1。对于所有其它进程120,可认为它们的图形界面115的元素不与区域125交叉。

在又一个示例性方面中,如果图形界面115的元素是窗口,且该窗口的标识符(hwnd)与对应于区域125的、利用拦截模块130之前确定的该窗口的标识符一致,则交叉分析模块140可确定进程120的图形界面115的元素为包含区域125。在这种情况中,交叉分数等于1。对于所有其它进程120,可认为它们的图形界面115的元素不与区域125交叉。

交叉分析模块140可进一步计算重要性等级,如利用拦截模块130,对于计算设备110的显示器上的区域125,基于在计算设备上执行的进程120的图形界面115的元素的哪些区域包含前述区域125、图形界面115的元素的哪些区域包含在前述区域125中、和/或图形界面115的元素的哪些区域与前述区域125部分地交叉所确定的。区域125的重要性等级可取决于利用进程120显示给用户的信息是否是机密的,该进程120的图形界面115的元素的区域包含所述区域125、与所述区域125部分地交叉或包含在所述区域125中。区域125的重要性等级越高,所述信息是机密的可能性越大。在一个示例性方面中,为了计算区域125的重要性等级,还利用区域125与进程120的图形界面115的元素的区域的交叉分数。

在一个示例性方面中,利用信息数据库160可确定凭借进程120显示给用户的信息的机密性,该信息数据库链接到交叉分析模块140,该进程120的图形界面115的元素的区域包含所述区域125、与所述区域125部分地交叉或包含在所述区域125中。该信息数据库160存储进程120的图形界面115的元素的机密性的系数,该系数表达为数字。进程120的图形界面115的元素的机密性的系数越高,该进程120的图形界面115的元素可将机密信息显示给用户的可能性越大。假定具有高可能性的、与银行远程协作的应用程序的进程120(以“安全模式”启动的进程120)(所谓的“沙盒”)、与电子邮件协作的应用程序的进程120以及这些进程的子进程(例如进程winword.exe,其中电子邮件的附件被打开)凭借它们的图形界面115的元素(诸如凭借它们的窗口)显示机密信息。

在一个示例性方面中,可被存储在信息数据库160中的信息可通过计算机安全领域的专家明确表达,并可通过交叉分析模块140写入到数据库160中,该交叉分析模块140可从远程安全服务器或系统管理员处获取该信息。

在又一个方面中,活动监控模块170额外地包括在用于检测恶意应用程序的系统中。活动监控模块170可配置成追踪通过进程120执行的动作,还配置成基于通过进程120执行的动作计算对应于进程120的图形界面115的元素的机密性的系数。在一个示例性方面中,通过活动监控模块170计算的机密性的系数可发送至信息数据库160(如果信息数据库160已经存储了该机密性的系数的值,则它们的值将被更新)。在另一个示例性方面中,计算的机密性系数可通过活动监控模块170发送至安全提供模块150,该安全提供模块150接着利用这些系数以及该安全提供模块150可从信息数据库160获取的那些系数。通过进程120执行的动作指的是通过进程120执行的系统调用或系统调用集。在又一个示例性方面中,动作可包括电子通信(诸如电子邮件、语音消息或即时通信消息通信)的发送/接收。为了执行追踪,活动监控模块170可以是驱动程序或驱动程序集,或可包括驱动程序或驱动程序集,利用该驱动程序或驱动程序集,可确定对通过进程120执行的系统调用(例如,凭借拦截),从而实施追踪。系统调用的确定可包括实施该调用的进程120的确定,以及该调用的争论的确定。在一个示例性方面中,通过利用驱动程序,活动监控模块170确定用于启动进程的函数调用(诸如loadmodule、createprocess、createprocessasuser、shellexecute、winexec等)以及网络交互函数(诸如connect、socket、bind、receive、send等)。应该记住,确定网络调用的可能性不限于给定的利用驱动程序的示例。在又一个方面中,活动监控模块170可以是进程120从其启动的应用程序的插件,或可包括进程120从其启动的应用程序的插件,利用该插件,可存在关于通过该进程120发送或接收的消息的信息的确定。在示例性方面中,此类信息可以是消息的发送者、消息的接收者、消息的主题、消息的内容、消息的类型(输入或输出)。在又一个方面中,利用此类插件,活动监控模块170确定文档的作者,诸如文档microsoftword的作者,在其中,当文档被创建或修改时,作者身份在文档(文档文件)的报头中被指示。

在一个示例性方面中,活动监控模块170可利用启发式规则计算进程120的图形界面115的元素的机密性的系数。利用启发式规则的目的是建立这些进程120的图形界面115的元素的机密性的高系数,利用这些进程120,机密信息或其它任何不想被窃取的信息可以显示给用户。在一个示例性方面中,此类启发式规则的示例可以是:

·建立这些进程120的图形界面115的元素的机密性的系数的最大值,这些进程120建立了受保护的网络连接(诸如https);

·建立这些进程120的图形界面115的元素的机密性的系数的最大值,这些进程120建立了与来自受保护的远程服务器列表中的远程服务器的连接;

·建立这些进程120的图形界面115的元素的机密性的系数的最大值,这些进程120由受保护的应用程序的列表启动;

·建立这些进程120的图形界面115的元素的机密性的系数的最大值,这些进程120打开由受保护的作者列表中的作者创建的文档;

·建立这些进程120的图形界面115的元素的机密性的系数的最大值,这些进程120从受保护的联系人列表中的发信人接收消息(或发送消息至收信人)。

信息数据库160保存出现在受保护的远程服务器列表上的远程服务器(诸如银行或电子邮件服务器)的地址(ip地址)。受保护的应用程序的列表可以是存储在数据库160中的应用程序的列表(例如与银行协作的应用程序、用于防止信息泄露——信息泄露防护(dataleakprevention,dlp)的应用程序等)。受保护的联系人列表可以是存储在数据库160中的联系人的列表(诸如消息的发送人或接收者的名字或电子邮件地址)。受保护的作者的列表可以是存储在数据库160中的作者的列表(例如,创建文档的用户的名字)。

在一个示例性方面中,机密性的系数的最大值(在示例性方面中)可以是109。在又一个方面中,机密性的系数的最大值可以是不小于由安全提供模块150利用的阈值(其将在下面详述)的数字。在又一个方面中,机密性的系数的最大值可以是可存储在信息数据库中的最大数值。

应该注意,活动监控模块170不需要对于进程120计算该进程120的图形界面115的所有元素的机密性的系数。在通常情况中,对于进程120,活动监控模块170仅计算图形界面115的那些元素的机密性的系数,其值需要根据由该活动监控模块170利用的启发式规则而被建立。

在又一个示例性方面中,os中的桌面也可以是图形界面115的元素(如同进程120的窗口),其对应于(例如属于)进程explorer.exe,由此,信息数据库160可存储图形界面115(桌面)的元素的机密性的系数。在一个示例性方面中,该机密性的系数的值可以是机密性的系数的最大值。

在一个示例性方面中,活动监控模块170可针对在计算设备上启动的每一个进程120计算图形界面115的元素的机密性的系数。在又一个示例性方面中,活动监控模块170可计算进程120的图形界面115的元素的机密性的系数,关于该进程120的信息存储在信息数据库160中,该信息例如是进程标识符或进程名称(诸如winword.exe)。

在一个示例性方面中,交叉分析模块140可通过以下公式计算区域125的重要性等级:

在又一个示例性方面中,交叉分析模块140可通过以下公式计算区域125的重要性等级:

在又一个示例性方面中,交叉分析模块140可通过以下公式计算区域125的重要性等级:

在又一个示例性方面中,交叉分析模块140可通过以下公式计算区域125的重要性等级:

在又一个示例性方面中,交叉分析模块140可通过以下公式计算区域125的重要性等级:

以上表示的公式可利用以下符号:

·k可以是区域125的重要性等级;

·n可以是进程120的图形界面115的元素的数量,该进程120的图形界面115的元素显示在计算设备的显示器110上;

·pi可以是图形界面115的第i个元素的机密性的系数(在一个示例性方面中,对于进程120的图形界面115的第i个元素,如果对应系数没有表示在数据库160中,则对于图形界面的该第i个元素,采用值1);

·ki可以是区域125与图形界面115的第i个元素的区域之间的交叉分数;

·si可以是加权因子,对于图形界面的第i个元素,si等于:

ο1,条件是图形界面115的第i个元素的区域与区域125部分地交叉;

οs1,其中s1>1(诸如100),条件是图形界面115的第i个元素的区域包含区域125;

οs2,其中s2>s1(诸如200),条件是图形界面115的第i个元素的区域包含在区域125中。

在一个示例性方面中,某一进程120a的图形界面115的第i个元素的机密性的系数pi可等于相对于进程120a为父进程的进程120的图形界面115的元素的机密性的系数的最大值。在又一个示例性方面中,进程120a的图形界面115的第i个元素的机密性的系数pi可等于进程120a的图形界面115的第i个元素的机密性的系数和它的n个父进程120的图形界面115的元素的机密性的系数的最大值(其中,如果进程120a具有两个父进程,则n例如可以等于2)。

应该理解,上述给定的公式仅为示例、示例性方面,并应该理解,凭借于此,当系数pi、ki、si更高时,区域125的重要性等级将更大的任何其它公式可被交叉分析模块140用于计算区域125的重要性等级。

交叉分析模块140将计算的区域125的重要性等级转发至安全提供模块150。

安全提供模块150被设计为,根据由拦截模块130提供的、关于访问显示给用户的信息的进程120的信息,计算对于显示给用户的信息的访问危险等级(例如,如上限定),以便计算用于访问显示给用户的信息的危险等级和区域的重要性等级的组合,以及如果用于访问显示给用户的信息的危险等级和区域的重要性等级的组合超出建立的阈值,则识别进程120从其启动的应用程序为恶意的,并通过拦截模块130拦截该进程120对显示给计算设备的用户的信息的访问。

在一个示例性方面中,安全提供模块150可根据以下公式计算访问危险等级125:

d=s*v*a

在又一个示例性方面中,安全提供模块150可根据以下公式计算访问危险等级125:

d=s+v+a

在又一个示例性方面中,安全提供模块150可根据以下公式计算访问危险等级125:

d=as*v

以上给定公式可利用以下符号:

·d可以是通过进程120执行的对区域125的访问的危险等级,该访问被拦截模块130拦截;

·s可以是采用以下值的系数:

ο1,条件是执行拦截的访问的进程120是可信进程;

οs1,其中s1>1(诸如5),条件是执行拦截的访问的进程120是非可信进程(或者数据库160没有关于该进程120是可信信息);

·v可以是采用以下值的系数:

ο1,条件是执行拦截的访问的进程120从不存在已知漏洞的应用程序(或者数据库160中没有关于已知漏洞的信息)启动;

οv1,其中v1>1,条件是执行拦截的访问的进程120从存在已知漏洞的应用程序启动(其中,v1可以是固定的数字,诸如10,或取决于已知漏洞的数量的数字,诸如v1=2*u,其中u是已知漏洞的数量);

·a可以是采用以下值的系数:

ο1,条件是执行拦截的访问的进程120从其功能包括实施对显示给用户的信息进行访问的应用程序(或数据库160没有关于所述应用程序的功能的信息)启动;

οa1,其中a1>1(诸如100),条件是执行拦截的访问的进程120自其功能不包括实施对显示给用户的信息进行访问的应用程序启动。

应该理解,上述给定的公式仅为示例、示例性方面,并应该理解,当系数a、s、v更高时访问危险等级将更大的任何其它公式可被安全提供模块150利用以计算通过进程120对显示在显示器110上的信息的访问的危险等级。在一个示例性方面中,访问危险等级d的值不能小于1。

在一个示例性方面中,关于执行拦截的访问的进程120从其启动的应用程序是可信还是非可信的信息可存储在信息数据库160中,并提供给安全提供模块150。

在一个示例性方面中,关于执行拦截的访问的进程120从其启动的应用程序是否存在已知漏洞,以及已知有多少个此类漏洞的信息可存储在信息数据库160中,并提供给安全提供模块150。

在一个示例性方面中,关于执行拦截的访问的进程120从其启动的应用程序的功能是否包括对显示给用户的信息进行访问的信息可存储在信息数据库160中,并提供给安全提供模块150。应用程序的功能可包括函数集,该函数的调用为从该应用程序启动的进程的特征。由此,在一个示例性方面中,信息数据库160可向进程120从其启动的应用程序分配对于所述应用程序的函数特征的列表——应用程序的功能。

如上所注意到的,在一个示例性方面中,存储在信息数据库160中的信息可由计算机安全领域的专家明确表达。在一个示例性方面中,该专家自己可将该信息传递(例如,写)到信息数据库160中。在另一个示例性方面中,可通过交叉分析模块140将该信息写入到信息数据库160中,该交叉分析模块140从远程安全服务器或系统管理员处获取该信息。

应该注意到,在一个示例性方面中,信息数据库160可以为一组数据库,或可包括一组数据库,该数据库的每一者设计为存储一个或多个类型的数据,例如,在上述公式中利用的机密性的系数pi、加权因子si等。

在计算访问危险等级后,安全提供模块150可作出决策:是否将执行由拦截模块130拦截的访问的进程120从其启动的应用程序识别为恶意的。该决策可由安全提供模块150基于访问危险等级和区域125的重要性等级的组合与之前建立的阈值进行比较来制定:如果对显示给用户的信息的访问的危险等级和区域125的重要性等级的组合大于所建立的阈值(例如,1000),则将进程120从其启动的应用程序识别为恶意的,其中,由拦截模块130拦截进程120对显示给用户的信息的访问。否则,所述应用程序不会被安全提供模块150识别为恶意的。在该情况中,对于该组合,可利用总和、乘积或其它当区域125的重要性等级和访问危险等级越高,其值越高的任何其它组合。

在又一个示例性方面中,安全提供模块150可发送命令至拦截模块130,以阻挡对显示给用户的信息的访问。拦截模块130可中断可执行所述访问的对应函数的调用(例如,通过将控制传递至其地址是调用的函数的返回地址的指令)。在又一个示例性方面中,由拦截模块130通过在计算设备的存储器中取代显示给用户的信息的二进制表示来完成对访问的阻挡,该二进制表示凭借用于执行所述访问的函数的调用被加载到存储器中。在一个示例性方面中,如果对于显示给用户的信息的访问的危险等级和区域125的重要性等级的组合大于建立的阈值(计算该组合的算法已经如上给出),则安全提供模块150可发送命令以阻挡对信息的访问。

在一个示例性方面中,在根据上述方案识别某一应用程序为恶意应用程序之后,安全提供模块150可额外地发送命令至拦截模块130,以阻挡对显示给用户的信息的访问,该访问通过从被识别为恶意的应用程序启动的进程120执行。

在一个示例性方面中,安全提供模块150可仅基于区域125的重要性等级来制定决策以识别应用程序为恶意的或阻挡对显示的信息的访问:如果区域125的重要性等级大于建立的阈值,对显示给用户的信息执行访问的进程120从其启动的应用程序可被识别为恶意的。否则,所述应用程序不被识别为恶意的。

图2示出了用于阻挡对用户的计算设备上的受保护的应用程序的访问的示例性方法的流程图。在步骤201,拦截模块130拦截进程120对显示给用户的信息的访问,以便至少确定:对显示给用户的信息执行访问的进程120的信息,和/或计算设备的显示器110上的、信息显示给用户的区域的信息,以及哪个信息被访问。由此获取的关于进程的信息可通过拦截模块130发送至安全提供模块150和/或交叉分析模块140,以及由此确定的区域125可发送至交叉分析模块140。在步骤202,交叉分析模块140可分析由拦截模块130确定的区域125与在计算设备上执行的进程120的图形界面115的元素的一个或多个区域之间的交叉,以便确定所述进程的图形界面115的元素的哪些区域:包含所述区域、包含在所述区域中,和/或与所述区域部分地交叉。关于一个或多个交叉的信息可在步骤203中由交叉分析模块140利用,以计算区域125的重要性等级。计算的区域125的重要性等级可由交叉分析模块140发送至安全提供模块150。在步骤204,安全提供模块150可基于从拦截模块130获取的数据——关于执行由拦截模块130拦截的访问的进程的信息,来计算对显示给用户的信息的访问的危险等级。在步骤205,安全提供模块150可计算区域125的重要性等级和访问危险等级的组合。之后,如果在步骤205获取的组合大于阈值,则安全提供模块150可在步骤206中识别进程120从其启动的应用程序为恶意的,进程120对显示给计算设备的用户的信息的访问在步骤201中被拦截。然而,如果获取的组合没有超出阈值,则在步骤207中,安全提供模块150不会将所述应用程序识别为恶意的。

应该注意,步骤204不取决于执行步骤202和步骤203,因此,步骤204可与这些步骤并行执行,或在这些步骤之前执行。

在又一个方面中,用于恶意应用程序检测的系统还包括活动监控模块170,例如,其基于一个或多个启发式规则来计算进程120的图形界面115的元素的机密性的系数(该步骤未在图2中示出,且该步骤可不取决于步骤201和步骤202的执行,因此,该步骤可与这些步骤并行执行,或在这些步骤之前执行)。

图3为示出了通用计算机系统的图示,在该通用计算机系统上,能够根据示例性方面实施阻挡对受保护的应用程序的访问的该系统和方法的多个方面。如图所示,计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22以及连接各个系统部件的系统总线23,各个系统部件包括与中央处理单元21相关的存储器。如本领域技术人员所能意识到的,系统总线23可包括总线存储器或总线存储器控制器、外围总线和局部总线,该局部总线能够与任何其它总线架构交互。系统存储器可包括永久性存储器(rom)24和随机存取存储器(ram)25。基本输入/输出系统(bios)26可存储用于在计算机系统20的元件之间传递信息的基本程序,诸如利用rom24加载操作系统时的那些程序。

计算机系统20也可包括用于读取和写入数据的硬盘27、用于在可移除磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移除光盘31(诸如cd-rom、dvd-rom或其它光学介质)的光驱30。该硬盘27、磁盘驱动器28和光驱30分别通过硬盘接口32、磁盘接口33和光驱接口34连接至系统总线23。驱动器和对应的计算机信息介质是独立供电(power-independent)模块,以用于存储计算机指令、数据结构、程序模块和计算机系统20的其它数据。

一个示例性方面包括一种系统,该系统凭借控制器55利用连接至系统总线23的硬盘27、可移除磁盘29和可移除光盘31。本领域技术人员将理解也可以利用能够为计算机可读取形式存储数据的介质56(固态驱动器、闪存卡、数字磁盘、随机存取存储器(ram)等)。

计算机系统20具有文件系统36,其中存储有操作系统35,以及附加的应用程序37、其它程序模块38和程序数据39。计算机系统20的用户可利用键盘40、鼠标42或本领域技术人员已知的任何其它输入设备输入命令和信息,其它任何输入设备诸如但不限于,麦克风、操纵杆、游戏控制器、扫描仪等。此类输入设备通常通过串行端口46插入到计算机系统20中,该串行端口46接着则连接至系统总线,但本领域技术人员将意识到输入设备也可以以其它方式,诸如,但不限于,凭借并行端口、游戏端口或通用串行总线(usb)被连接。监控器47或其它类型的显示器设备也可通过接口(诸如视频适配器48)连接至系统总线23。除了监控器47,个人计算机也可配备有其它外围输入设备(未示出),诸如扬声器、打印机等。

计算机系统20可利用与一个或多个远程计算机49的网络连接在网络环境中操作。一个或多个远程计算机49可以是包括前述描述计算机系统20的性质的大部分或全部元件的本地计算机工作站或服务器。其它设备也可呈现在计算机网络中,诸如,但不限于,路由器、网络工作站、对等设备或其它网络节点。

网络连接可以形成局域计算机网络(lan)50和广域计算机网络(wan)。此类网络用在企业计算机网络和公司内部网络中,且它们能够访问互联网。在lan网络或wan网络中,个人计算机20通过网络适配器或网络接口51连接至局域网50。当利用网络时,计算机系统20可采用调制解调器54或采用本领域技术人员熟知的、能够与广域计算机网络(诸如互联网)通信的其它模块。调制解调器54(其可以是内部或外部设备)可通过串行端口46连接至系统总线23。本领域技术人员将意识到所述网络连接是利用通信模块建立从一个计算机到另一个计算机的连接的众多熟知方式的非限制性示例。

在不同方面中,本文所描述的系统和方法可以以硬件、软件、固件或其任何组合进行实施。如果以软件方式实施,该方法可存储为非暂时性计算机可读介质上的一个或多个指令或代码。计算机可读介质包括数据存储器。作为示例,而不是限制,此类计算机可读介质可包括ram、rom、eeprom、cd-rom、闪存或其它类型的电、磁或光学存储介质,或其它任何能够用于承载或存储以指令或数据结构形式的期望的程序代码、以及能够由通用计算机的处理器访问的介质。

在不同方面中,本发明中所描述的系统和方法能够按照模块进行论述。本文所利用的术语“模块”指的是现实生活中的设备、部件或利用硬件(诸如专用集成电路(asic)或现场可编程门阵列(fpga))实施的部件的布置,或作为硬件和软件的组合,诸如通过微处理器系统和一组指令实施模块的功能,该指令(在被执行时)将微处理器系统转化为专用设备。模块也可被实施为二者的组合,其具有硬件自己提供的某些功能,以及硬件和软件的组合提供的其它功能。在某些实现方式中,可在通用计算机(诸如在前述图3中详述的通用计算机)的处理器上执行模块的至少一部分,在一些情况中,执行模块的全部。由此,每个模块可以以各种合适的构型实现,而不限于本文例示的任何特定实现方式。

为了清楚起见,本文没有公开各个方面的所有常见特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力可能是复杂且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文所利用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文所公开的各个方面包括本文以说明性方式所提到的已知模块的现在和未来知道的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,许多比上面所提及的内容更多的修改是可行的,而不脱离本文所公开的发明构思。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1