一种基于云安全拦截广告程序的方法、装置和系统的制作方法
【专利摘要】本发明公开了一种基于云安全拦截广告程序的方法、装置和系统,其中,方法包括:监控浏览器进程的创建行为;当监测到浏览器进程的创建请求时,获取浏览器进程的父进程的信息;根据浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口;根据检测结果对浏览器进程的创建行为进行处理。根据本发明提供的方案,可以有效拦截隐藏窗口的后台进程未经用户同意而弹出广告、钓鱼网站等浏览器页面,使用户在操作中避免受到广告等无效信息的干扰和各种恶意网站上虚假信息的欺骗,提高了用户网络操作的安全性。
【专利说明】一种基于云安全拦截广告程序的方法、装置和系统
【技术领域】
[0001]本发明涉及计算机安全领域,具体涉及一种基于云安全拦截广告程序的方法、装置和系统。
【背景技术】
[0002]随着互联网的发展,基于WEB的应用日益普及,人们通过浏览器可以查询银行账户、网上购物、电子商务、查询信息、获取知识、进行娱乐等,WEB为人们提供了方便和快捷的交互方式。然而,人们在上网冲浪浏览网页的同时,经常会遇到未经点击而自动弹出的浏览器页面,例如广告、游戏、购物网页,这些网页的内容通常对用户来说毫无意义,只会对用户的浏览行为造成干扰,更严重的问题是,部分弹出页面还可能来自恶意网站,如钓鱼网站,或者欺诈、假冒网站等,这些页面上通常显示有虚假信息并且页面代码内嵌入有恶意的脚本程序,用于非法获取用户输入的账号、密码等个人信息,对用户利益造成损害。
[0003]其中,部分未经许可而打开的浏览器页面是由在后台运行的恶意程序的进程开启的,这些恶意进程通常不具有窗口,或隐藏自身窗口以达到不被用户发现的目的。对于这类恶意程序,现有技术中仍然采用通用的方法,例如基于特征库来分析、匹配程序的特征码,这种方式通常具有滞后性,无法应对新的情况,运营成本也较大。因此,对于这类恶意程序,现有技术中缺乏一种具有针对性的检测方法。
【发明内容】
[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于云安全拦截广告程序的方法、装置和系统。
[0005]根据本发明的一个方面,提供了一种基于云安全拦截广告程序的方法,包括:监控浏览器进程的创建行为;当监测到浏览器进程的创建请求时,获取浏览器进程的父进程的信息;根据浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口 ;根据检测结果对浏览器进程的创建行为进行处理。
[0006]根据本发明的另一方面,提供了一种基于云安全拦截广告程序的装置,包括:监控模块,适于监控浏览器进程的创建行为;获取模块,适于当监控模块监测到浏览器进程的创建请求时,获取浏览器进程的父进程的信息;检测模块,适于根据浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口 ;处理模块,适于根据检测结果对浏览器进程的创建行为进行处理。
[0007]根据本发明的另一方面,提供了一种基于云安全拦截广告程序的系统,包括上述基于云安全拦截广告程序的装置,还包括向该装置提供云查询服务的服务器。
[0008]根据本发明的基于云安全拦截广告程序的方法、装置和系统,监控到浏览器进程的创建请求时,获取要创建该浏览器进程的父进程的信息,检测该父进程是否与当前界面中的至少一个可视化窗口对应,从而判断出父进程的安全性,根据检测结果对其创建浏览器进程的行为进行相应的处理。根据该方案,可以有效拦截隐藏窗口的后台进程未经用户同意而弹出广告、钓鱼网站等浏览器页面,使用户在操作中避免受到广告等无效信息的干扰和各种恶意网站上虚假信息的欺骗,提高了用户网络操作的安全性。
[0009]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】
【附图说明】
[0010]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0011]图1示出了根据本发明一个实施例的基于云安全拦截广告程序的方法的流程图;
[0012]图2示出了根据本发明另一实施例的基于云安全拦截广告程序的方法的流程图;
[0013]图3示出了根据本发明另一实施例的基于云安全拦截广告程序的方法的流程图;
[0014]图4示出了根据本发明另一实施例的基于云安全拦截广告程序的方法的流程图;
[0015]图5示出了本发明另一个实施例的基于云安全拦截广告程序的装置的框图;
[0016]图6示出了根据本发明另一实施例的基于云安全拦截广告程序的系统的结构框图。
【具体实施方式】
[0017]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0018]图1示出了根据本发明一个实施例的基于云安全拦截广告程序的方法的流程图,如图1所示,该方法包括如下步骤:
[0019]步骤SI 10,监控浏览器进程的创建行为。
[0020]在常见的计算机系统,如Windows系统,对浏览器进程的监控通常是基于操作系统提供的API接口函数或系统调用来实现的。
[0021]该步骤中所说的浏览器包括但不限于运行在各类计算机系统中的IE、Firefox,Chrome,Safari等独立内核浏览器,以及常见的基于IE内核的,或基于多内核的浏览器,如360浏览器,搜狗浏览器等,还包括运行于各种移动终端操作系统中常见的浏览器。一种常见的情况是,系统中安装有一种以上的浏览器,例如,Windows系统中除了自带的IE浏览器,用户出于丰富功能、更高的安全性和个人喜好,可能安装并默认使用上述其他浏览器。这时,对浏览器进程的监控就应该包括对IE进程,及其他全部浏览器进程的监控。
[0022]步骤S120,当监测到浏览器进程的创建请求时,获取浏览器进程的父进程的信息。
[0023]浏览器进程的父进程就是请求创建该浏览器进程的进程。以Windows操作系统为例,各种应用层应用程序都是通过调用各种API函数来实现的,父进程创建浏览器进程需要调用相应的API函数,检测浏览器进程的创建请求也就是监控创建进程的API函数的调用请求,通过捕获该API函数,可以从该API函数携带的参数中解析出指向的应用程序,判断出创建的是否为浏览器进程。请求调用该函数的进程就是浏览器进程的父进程,父进程的进程信息可以包括但不限于进程名称,进程标识,进程文件的路径信息以及相关的动态链接库文件等。
[0024]步骤S130,根据浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口。
[0025]对大多数的应用程序,用户一般通过该程序提供的可视化窗口与系统进行交互。本发明通过检测父进程是否对应于可视化窗口来判断浏览器进程的创建行为是否为用户触发。遍历全部的可视化窗口,如果存在至少一个可视化窗口与浏览器进程的父进程相对应,认为浏览器进程的创建行为是该可视化窗口对应的应用程序响应于用户在该窗口中的点击、输入等触发行为而发起的,例如,用户点击QQ界面上的空间图片,弹出了空间页面,这属于用户允许的安全行为,而如果浏览器进程的父进程不对应于可视化窗口,认为该次创建行为是后台进程未经用户允许而请求的,是可疑的恶意行为。
[0026]步骤S140,根据检测结果对所述浏览器进程的创建行为进行处理。
[0027]对对应于可视化窗口的父进程,允许其创建浏览器进程;对不对应可视化窗口的父进程,进行拦截,给出提示信息或进一步确认其安全性。
[0028]根据本发明上述实施例提供的方法,对浏览器进程的创建行为进行实时的监控,并找到发起该创建请求的进程,作为浏览器进程的父进程,获取该父进程的信息,遍历全部的可视化窗口,检测父进程是否对应于可视化窗口,以此来判断浏览器进程的创建行为是否为用户的主动选择,根据检测的结果对创建行为做相应的处理。根据该方案可以有效拦截隐藏窗口的后台进程未经用户同意而弹出广告、游戏、购物、钓鱼网站等浏览器页面的干扰或威胁,提高了用户网络操作的安全性。
[0029]图2示出了本发明另一个实施例的基于云安全拦截广告程序的方法的流程图,如图2所示,该方法包括如下步骤:
[0030]步骤S210,监控浏览器进程的创建行为。
[0031]如同在步骤S120中所述的,Windows系统中,监控浏览器进程的创建行为实际上是监控对相应的API函数的调用请求。具体地,应用程序要创建一个Win32进程,可能需要调用的API函数有CreateProcess、CreateProcessAsUser等,创建的新进程运行指定的可执行文件,可执行文件的路径、文件名由API函数的参数指定,例如,参数IpApplicationName指定了可执行模块的路径,捕获该函数,从其参数中获得可执行文件的路径,文件名等信息,即可判断出本次API调用创建的进程是否为浏览器进程。
[0032]步骤S220,获取浏览器进程的父进程信息。
[0033]获取请求调用CreateProcess等API函数的应用程序,从而获取父进程信息。父进程的进程信息可以包括但不限于进程名称,进程标识,进程文件的路径信息以及相关的动态链接库文件等。
[0034]在获取父进程信息时,一种可能的情况是,一些恶意程序为了更好地隐藏自己,可能会通过其进程A调用进程B,然后进程B请求调用API函数创建浏览器进程,甚至经过更多级的调用。这时,在后续步骤中,仅根据进程B的信息并不能做出准确的判断。因此,还要获取进程B所在的进程链的多个进程的信息。这可以通过NtQuerylnformationProcess函数实现,利用该函数逐级查找,获取全部相关进程。[0035]具体地,获取进程名称、进程标识等信息也可以通过调用API函数实现,例如,通过Process Status (进程状态)API函数下的多个函数获取进程名称;通过GetCurrentProcessId获取进程ID等。当然,也可以选择其他的API函数或者通过高级语
言实现。
[0036]步骤S230,遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识。
[0037]进程被创建时会被分配给一个进程标识。直到进程中止这个标识都是有效的,并且不会改变,在进程有效的时间内,每个进程的进程标识都是唯一的,因此,它可以被用来唯一标识这个进程。具体地,该步骤中可以用EnumWindows函数遍历窗口,获取窗口的句柄,然后用GetWindowThreadProcessId函数获得每个窗口句柄对应的进程标识。
[0038]步骤S240,在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,如果能查询到父进程标识,则表明父进程对应于可视化窗口,执行步骤S250,否则,执行步骤S260。
[0039]在同一时刻,进程标识唯一,因此,如果存在至少一个可视化窗口,其进程标识与浏览器进程的父进程的进程标识一致,则认为该父进程对应于该可视化窗口,即可以认为浏览器进程的创建行为是该可视化窗口对应的应用程序响应于用户在该窗口中的点击、输入等触发行为而发起的。
[0040]步骤S250,允许执行父进程创建浏览器进程的行为。
[0041]由下文中步骤S260描述可知,一种拦截进程的方法是,在创建进程的任意一个步骤通过钩子函数的方法拦截其所必须调用的API函数实现的。因此,对于允许所监控到的创建行为请求的情形,在本发明实施例的钩子函数执行完毕后,跳转到该文件行为请求对应API的原始入口地址去执行相应的指令即可。
[0042]步骤S260,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0043]如果在全部的可视化窗口的进程标识中未查询到父进程标识,认为该父进程创建浏览器进程的行为是后台进程未经用户允许而发起的,是可疑的恶意行为,如广告程序行为,可能需要对该行为进行拦截。
[0044]这时,向用户提供风险提示信息,具体地,可以在桌面指定区域弹出消息窗口,将步骤S220中获取的父进程信息,如进程名称,进程路径,相应的可执行文件名称等展示给用户,供用户分析以做出决定,还可以根据现有的统计结果,给出进程及相应的应用程序的危险等级、安全评分等信息并向用户提供相应的建议。
[0045]在一些情况下,虽然父进程不对应可视化窗口,但该父进程创建浏览器进程的行为并不属于恶意行为,例如,安装、卸载软件时,在安装、卸载程序结束后,经常弹出一些用于信息反馈的浏览器页面,并不具有危害性,如果用户需要,可以选择不对该浏览器进程的创建行为进行拦截。还可以在本地设置一个安全名单,将用户选择不拦截的进程加入该名单中,下次不再提示。
[0046]对进程创建行为的拦截可以按如下方式实现。通常,一个进程的创建过程如下:打开要被执行的文件映像,创建执行进程对象,创建初始线程及堆栈及上下文,通知Windows子系统有关进程的信息,开始初始线程的执行,执行新进程上下文中的进程初始化。可以在其中任意一个步骤通过钩子函数的方法拦截其所必须调用的API函数,达到拦截进程创建的目的。例如,通过在开始初始线程的步骤执行之前,通过对系统服务调度表中的NativeAPI函数ZwCreateProcess的拦截来实现,即在系统调用ZwCreateProcess时,转到钩子程序中进行处理。或者通过拦截其他步骤中调用的API函数实现,如NtCreateSection函数,该函数用于打开要被执行的文件映像。
[0047]图3示出了本发明另一个实施例的基于云安全拦截广告程序的方法的流程图,如图3所示,该方法包括如下步骤:
[0048]步骤S310,监控浏览器进程的创建行为;
[0049]步骤S320,获取浏览器进程的父进程信息;
[0050]步骤S330,遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识;
[0051]其中,步骤S310-S330与上一实施例中的步骤S210-S230相同,此处不再赘述。
[0052]步骤S340,在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,如果能查询到父进程标识,则表明父进程对应于可视化窗口,执行步骤S350,否则,执行步骤S360。
[0053]步骤S350,允许执行父进程创建浏览器进程的行为。
[0054]步骤S360,在预置的本地进程白名单中查询不对应于可视化窗口的父进程的进程信息,如果查询成功,执行步骤S350,否则,执行步骤S370。
[0055]如同在上一实施例中步骤S260里所述的,不对应于可视化窗口的父进程的创建行为可能是安全的。然而,用户的判断未必准确。在本实施例中,通过用户判断与黑白名单的方式结合进行更准确的判断。
[0056]首先在本地预置的进程白名单中查询父进程信息,本地白名单保存有常见的安全进程,例如,常用软件的安装、卸载相关的进程。与步骤S260类似地,在桌面指定区域弹出消息窗口。提示信息窗口还可以接收用户反馈,用于本地进程白名单的维护和更新。例如,用户对某一不在白名单中的进程有特殊需求,可以选择允许其创建浏览器进程,记录用户对该进程的选择,将进程加入到本地进程白名单中,下次不再提示。
[0057]步骤S370,将父进程的进程信息上传至服务器,以供服务器通过云查询获知父进程是否属于服务器保存的进程黑名单,如果该进程属于服务器保存的进程黑名单,执行步骤 S380。
[0058]与本地名单相比,服务器端的黑名单数据库保存有更完整的信息,能够进行更严格准确的判断。具体地,客户端将检测到的可疑进程的进程信息上传至服务器,服务器根据进程信息对相应的可执行文件或应用程序进行杀毒分析,可以采用传统的特征码匹配方式,或者采用主动防御的方法分析应用程序包含的行为特点。找出特征码与病毒库,或恶意程序相匹配的应用程序,或行为动作触发预设安全规则的应用程序,将相应的进程信息加入到进程黑名单中。
[0059]服务器上的黑名单也可以通过人工运营的方式产生,服务器端定期对来自客户端的病毒或恶意程序数据进行统计,对使用数量排名靠前或者增长速度靠前或者危险性排名靠前的进程,通过分析其弹出网页的内容等方式判断其安全性,放入黑名单中。
[0060]步骤S380,给出风险提示信息,根据用户选择对浏览器进程的创建行为进行拦截。
[0061]实际中,也可以选择直接拦截创建行为。但考虑用户可能对某些进程存在特殊需求,通常先给出风险提示信息,接收用户反馈。该步骤与S260相似,在步骤S260的基础上,还可以进一步给出服务器的分析结果。
[0062]对于属于白名单的进程,可以允许其创建浏览器的行为。
[0063]图4示出了本发明另一个实施例的基于云安全拦截广告程序的方法的流程图。如图4所示,该方法包括如下步骤:
[0064]步骤S410,监控浏览器进程的创建行为;
[0065]步骤S420,获取浏览器进程的父进程信息;
[0066]步骤S430,遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识;
[0067]其中,步骤S410-S430与前述实施例中的步骤S210-S230相同,此处不再赘述
[0068]步骤S440,在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,如果能查询到父进程标识,则表明父进程对应于可视化窗口,执行步骤S450,否则,执行步骤S460。
[0069]步骤S450,允许执行父进程创建浏览器进程的行为。
[0070]步骤S460,获取父进程创建的浏览器进程所要访问的页面URL。
[0071]一种可能方式是通过浏览器中提供的插件机制,例如,在IE浏览器中,通过响应“BeforeNavigate2”事件可以获取IE当前加载的URL。在火狐(Firefox)浏览器中使用火狐扩展机制提供的指定响应事件接口,获取火狐浏览器当前加载的URL。在谷歌(chrome)浏览器中使用网景插件应用程序编程接口(Netscape Plugin Application ProgrammingInterface,简称:NPAPI)插件机制,获取谷歌浏览器当前加载的URL。
[0072]步骤S470,将该页面URL打包成密文上传至服务器,以供服务器通过云查询获知页面URL是否属于服务器保存的URL黑名单和/或白名单。如果该页面URL属于URL黑名单,执行步骤S480 ;如果该页面URL属于URL白名单,执行步骤S450。
[0073]服务器收集常见的广告、游戏等页面的URL,加入黑名单中;对用户允许放行的浏览器创建行为,收集该行为创建的浏览器页面所打开的URL,分析该URL页面的内容,或者统计大量用户对该URL页面的拦截情况,判断该页面是否为正常页面,将判断出的正常页面加入白名单中。
[0074]上传至服务器时,先将URL加密成密文,然后发送给服务器。这里,可以采用可逆加密方法对URL进行加密,也可以采用不可逆加密方法对URL进行加密。举例来说,计算URL的特征值作为密文。可选地,特征值可以为根据MD5 (Message Digest Algorithm,消息摘要算法第五版)计算得到的哈希值,或SHAl (Secure Hash Algorithm,安全哈希算法)码,或CRC(Cyclic Redundancy Check,循环冗余校验)码等可唯一标识原信息的特征码。需要说明的是,在上传URL的密文到服务器的时候,需要首先屏蔽可能带有用户密码的网址字符串,不上传此类URL,以便保证用户信息的安全。
[0075]步骤S480,给出风险提示信息,根据用户选择对浏览器进程的创建行为进行拦截。
[0076]出于与步骤S370相同的理由,优选地,先给出风险提示信息。
[0077]对于属于白名单的URL对应的父进程,可以允许其创建浏览器的行为。
[0078]根据本发明上述实施例提供的方法,通过捕获创建进程所必须的API函数实现对浏览器进程创建行为的监控,找到发起该创建请求的父进程,获取该父进程的进程标识,遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识,在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,以此来判断浏览器进程的创建行为是否为用户的主动选择,对于非用户主动选择的可疑进程,给出风险提示信息,或者进一步通过云端的进程黑白名单或URL黑白名单确认。根据该方案可以有效拦截隐藏窗口的后台进程未经用户同意而弹出广告、游戏、购物、钓鱼网站等浏览器页面的干扰或威胁,并且,通过云查询的方式,降低了对恶意程序行为和安全行为误判的概率,进一步提高系统的安全性和用户的操作体验。
[0079]图5示出了本发明另一个实施例的基于云安全拦截广告程序的装置的框图。如图5所示,该装置包括:
[0080]监控模块510,适于监控浏览器进程的创建行为。
[0081]具体地,监控模块510通过监控创建进程的API函数的调用请求实现对创建行为的监控。具体地,应用程序要创建一个Win32进程,可能需要调用的API函数有CreateProcess、CreateProcessAsUser等,仓Il建的新进程运行指定的可执行文件,可执行文件的路径、文件名由API函数的参数指定,例如,参数IpApplicationName指定了可执行模块的路径,监控模块540捕获该函数,从其参数中获得可执行文件的路径及文件名,即可判断出本次API调用创建的进程是否为浏览器进程。
[0082]获取模块520,适于当监控模块510监测到浏览器进程的创建请求时,获取浏览器进程的父进程的信息。
[0083]获取模块520获取请求调用CreateProcess等API函数的应用程序,从而获取父进程信息。获取模块520获取父进程的进程信息可以包括但不限于获取进程名称,进程标识,进程文件的路径信息以及相关的动态链接库文件等。
[0084]获取模块520具体适于:当监控模块510监测到浏览器进程的创建请求时,获取浏览器进程的父进程标识。获取模块520获取进程名称、进程标识等信息也可以通过调用API函数实现,例如,通过Process Status (进程状态)API函数下的多个函数获取进程名称;通过 GetCurrentProcessId 获取进程 ID 等。
[0085]检测模块530,适于根据浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口。
[0086]进程被创建时会被分配给一个进程标识。直到进程中止这个标识都是有效的,并且不会改变,在进程有效的时间内,每个进程的进程标识都是唯一的,因此,检测模块530通过进程标识检测父进程是否对应于可视化窗口。
[0087]具体地,检测模块530包括:
[0088]遍历模块550,适于遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识;遍历模块550可以用EnumWindows函数遍历窗口,获取窗口的句柄,然后用GetWindowThreadProcessId函数获得每个窗口句柄对应的进程标识。
[0089]查询模块560,适于在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,如果查询到浏览器进程的父进程标识,则表明父进程对应于可视化窗口 ;如果没有查询到浏览器进程的父进程标识,则表明父进程不对应于可视化窗口。
[0090]装置还包括:处理模块540,适于根据检测结果对浏览器进程的创建行为进行处理。
[0091]处理模块540进一步适于:对不对应于可视化窗口的父进程创建浏览器进程的行为,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。[0092]处理模块540对进程创建行为的拦截可以按如下方式实现。通常,一个进程的创建过程如下:打开要被执行的文件映像,创建执行进程对象,创建初始线程及堆栈及上下文,通知Windows子系统有关进程的信息,开始初始线程的执行,执行新进程上下文中的进程初始化。因此,处理模块540可以在其中任意一个步骤拦截其所必须调用的API函数,达到拦截进程创建的目的。例如,处理模块540在开始初始线程的步骤执行之前,对系统服务调度表中的Native API函数ZwCreateProcess的拦截。
[0093]处理模块540向用户提供风险提示信息具体为:在桌面指定区域弹出消息窗口,将获取模块520获取的父进程信息,如进程名称,进程路径,相应的可执行文件名称等展示给用户,供用户分析以做出决定,处理模块540还可以根据现有的统计结果,给出进程及相应的应用程序的危险等级、安全评分等信息并向用户提供相应的建议。
[0094]可选地,装置还包括:云查询接口 580,适于在预置的本地进程白名单中查询不对应于可视化窗口的父进程的进程信息,将未查询到的的父进程的进程信息上传至服务器,以供服务器通过云查询获知父进程是否属于服务器保存的进程黑名单,并从服务器接收查询结果。
[0095]具体地,云查询接口 580将检测模块530检测到的可疑进程的进程信息上传至服务器,服务器根据进程信息对相应的可执行文件或应用程序进行杀毒分析,例如传统的特征码匹配方式,或者采用主动防御的方法,分析应用程序包含的行为特点。找出特征码与病毒库,或恶意程序相匹配的应用程序,或行为动作触发预设安全规则的应用程序,将相应的进程信息加入到进程黑名单中。
[0096]服务器上的黑名单也可以通过人工运营的方式产生,服务器端定期对来自客户端的病毒或恶意程序数据进行统计,对使用数量排名靠前或者增长速度靠前或者危险性排名靠前的进程,通过分析其弹出网页的内容等方式判断其安全性,放入黑名单中。
[0097]则处理模块540进一步适于:如果云查询接口 570从服务器接收的查询结果表明所述父进程属于所述进程黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0098]可选地,装置还包括:页面URL提取模块570,适于对不对应于可视化窗口的父进程,获取父进程创建的浏览器进程所要访问的页面URL。
[0099]页面URL提取模块570获取URL的一种可能方式是通过浏览器中提供的插件机制,例如,在IE浏览器中,页面URL提取模块570通过响应“BeforeNavigate”事件获取IE当前加载的URL,在火狐(Firefox)浏览器中页面URL提取模块570使用火狐扩展机制提供的指定响应事件接口,获取火狐浏览器当前加载的URL。在谷歌(clrome)浏览器中使用网景插件应用程序编程接口(Netscape Plugin Application Programming Interface,简称:NPAPI)插件机制,获取谷歌浏览器当前加载的URL。
[0100]云查询接口 580还可以适于将页面URL提取模块570所获取的页面URL打包成密文后上传至服务器,以供服务器通过云查询获知页面URL是否属于服务器保存的URL黑名单和/或白名单并从服务器接收查询结果。
[0101]处理模块540进一步适于:如果云查询接口 570从服务器接收的查询结果表明所述页面URL属于所述URL黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。[0102]图6示出了本发明另一实施例提供的基于云安全拦截广告程序的系统,如图6所示,该系统包括上一实施例中的基于云安全拦截广告程序的装置,还包括:向该装置提供云查询服务的服务器。
[0103]根据本发明上述实施例提供的装置和系统,监控模块通过捕获创建进程所必须的API函数实现对浏览器进程创建行为的监控,找到发起该创建请求的父进程,获取模块获取该父进程的进程信息,其中包括进程标识,遍历模块遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识,查询模块在全部的可视化窗口的进程标识中查询浏览器进程的父进程标识,以此来判断浏览器进程的创建行为是否为用户的主动选择,对于非用户主动选择的可疑进程,处理模块给出风险提示信息,或者进一步地,云查询接口将进程信息和待访问页面的URL发送至服务器,通过云端的进程黑白名单或URL黑白名单确认。根据该方案,可以有效拦截隐藏窗口的后台进程未经用户同意而弹出广告、游戏、购物、钓鱼网站等浏览器页面的干扰或威胁,并且,通过云查询的方式,降低了对恶意程序行为和安全行为误判的概率,进一步提高系统的安全性和用户的操作体验。
[0104]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0105]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0106]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0107]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0108]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0109]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的程序模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于云安全拦截广告程序的装置和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0110]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0111]本发明公开了:
[0112]Al、一种基于云安全拦截广告程序的方法,包括:
[0113]监控浏览器进程的创建行为;
[0114]当监测到浏览器进程的创建请求时,获取所述浏览器进程的父进程的信息;
[0115]根据所述浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测所述父进程是否对应于可视化窗口;
[0116]根据检测结果对所述浏览器进程的创建行为进行处理。
[0117]2A、根据Al所述的方法,所述获取浏览器进程的父进程的信息具体为:获取浏览器进程的父进程标识;
[0118]所述通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口具体包括:
[0119]遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识;
[0120]在全部的可视化窗口的进程标识中查询所述浏览器进程的父进程标识,如果查询到所述浏览器进程的父进程标识,则表明父进程对应于可视化窗口 ;如果没有查询到所述浏览器进程的父进程标识,则表明父进程不对应于可视化窗口。
[0121]A3、根据Al或A2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括:对不对应于可视化窗口的父进程创建浏览器进程的行为,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0122]A4、根据Al或A2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括:
[0123]在预置的本地进程白名单中查询所述不对应于可视化窗口的父进程的进程信息,如果查询成功,允许所述父进程创建浏览器进程的行为;
[0124]否则将所述父进程的进程信息上传至服务器,以供所述服务器通过云查询获知所述父进程是否属于服务器保存的进程黑名单;
[0125]如果所述父进程属于所述进程黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0126]A5、根据Al或A2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括:
[0127]对不对应于可视化窗口的父进程,获取所述父进程创建的浏览器进程所要访问的页面URL,将该页面URL打包成密文,上传至服务器,以供服务器通过云查询获知所述页面URL是否属于服务器保存的URL黑名单和/或白名单;
[0128]如果所述页面URL属于所述URL黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0129]B6、一种基于云安全拦截广告程序的装置,包括:
[0130]监控模块,适于监控浏览器进程的创建行为;
[0131]获取模块,适于当所述监控模块监测到浏览器进程的创建请求时,获取所述浏览器进程的父进程的信息;
[0132]检测模块,适于根据所述浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测所述父进程是否对应于可视化窗口 ;
[0133]处理模块,适于根据检测结果对所述浏览器进程的创建行为进行处理。
[0134]B7、根据B6所述的装置,所述获取模块具体适于:当所述监控模块监测到浏览器进程的创建请求时,获取浏览器进程的父进程标识;
[0135]所述检测模块包括:
[0136]遍历模块,适于遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识;
[0137]查询模块,适于在全部的可视化窗口的进程标识中查询所述浏览器进程的父进程标识,如果查询到所述浏览器进程的父进程标识,则表明父进程对应于可视化窗口 ;如果没有查询到所述浏览器进程的父进程标识,则表明父进程不对应于可视化窗口。
[0138]B8、根据B6或B7所述的装置,所述处理模块进一步适于:对不对应于可视化窗口的父进程创建浏览器进程的行为,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0139]B9、根据B6或B7所述的装置,还包括:云查询接口,适于在预置的本地进程白名单中查询不对应于可视化窗口的父进程的进程信息,将未查询到的父进程的进程信息上传至服务器,以供所述服务器通过云查询获知所述父进程是否属于服务器保存的进程黑名单,并从服务器接收查询结果;
[0140]所述处理模块进一步适于:如果查询结果表明所述父进程属于所述进程黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0141]B10、根据B6或B7所述的装置,还包括:
[0142]页面URL提取模块,适于对不对应于可视化窗口的父进程,获取所述父进程创建的浏览器进程所要访问的页面URL ;
[0143]云查询接口,适于将所述页面URL提取模块所获取的页面URL打包成密文后上传至服务器,以供服务器通过云查询获知所述页面URL是否属于服务器保存的URL黑名单和/或白名单并从服务器接收查询结果;
[0144]所述处理模块进一步适于:如果查询结果表明所述页面URL属于所述URL黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
[0145]ClU一种基于云安全拦截广告程序的系统,包括B6-B10任一项所述的基于云安全拦截广告程序的装置,还包括:向所述装置提供云查询服务的服务器。
【权利要求】
1.一种基于云安全拦截广告程序的方法,包括: 监控浏览器进程的创建行为; 当监测到浏览器进程的创建请求时,获取所述浏览器进程的父进程的信息; 根据所述浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测所述父进程是否对应于可视化窗口; 根据检测结果对所述浏览器进程的创建行为进行处理。
2.根据权利要求1所述的方法,所述获取浏览器进程的父进程的信息具体为:获取浏览器进程的父进程标识; 所述通过遍历全部的可视化窗口,检测父进程是否对应于可视化窗口具体包括: 遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识; 在全部的可视化窗口的进程标识中查询所述浏览器进程的父进程标识,如果查询到所述浏览器进程的父进程标识,则表明父进程对应于可视化窗口 ;如果没有查询到所述浏览器进程的父进程标识,则表明父进程不对应于可视化窗口。
3.根据权利要求1或2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括:对不对应于可视化窗口的父进程创建浏览器进程的行为,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
4.根据权利要求1或2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括: 在预置的本地进程白名单中查询所述不对应于可视化窗口的父进程的进程信息,如果查询成功,允许所述父进程创建浏览器进程的行为; 否则将所述父进程的进程信息上传至服务器,以供所述服务器通过云查询获知所述父进程是否属于服务器保存的进程黑名单; 如果所述父进程属于所述进程黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
5.根据权利要求1或2所述的方法,所述根据检测结果对浏览器进程的创建行为进行处理具体包括: 对不对应于可视化窗口的父进程,获取所述父进程创建的浏览器进程所要访问的页面URL,将该页面URL打包成密文,上传至服务器,以供服务器通过云查询获知所述页面URL是否属于服务器保存的URL黑名单和/或白名单; 如果所述页面URL属于所述URL黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
6.一种基于云安全拦截广告程序的装置,包括: 监控模块,适于监控浏览器进程的创建行为; 获取模块,适于当所述监控模块监测到浏览器进程的创建请求时,获取所述浏览器进程的父进程的信息; 检测模块,适于根据所述浏览器进程的父进程的信息,通过遍历全部的可视化窗口,检测所述父进程是否对应于可视化窗口; 处理模块,适于根据检测结果对所述浏览器进程的创建行为进行处理。
7.根据权利要求6所述的装置,所述获取模块具体适于:当所述监控模块监测到浏览器进程的创建请求时,获取浏览器进程的父进程标识; 所述检测模块包括: 遍历模块,适于遍历全部的可视化窗口并获取每个可视化窗口对应进程的进程标识; 查询模块,适于在全部的可视化窗口的进程标识中查询所述浏览器进程的父进程标识,如果查询到所述浏览器进程的父进程标识,则表明父进程对应于可视化窗口 ;如果没有查询到所述浏览器进程的父进程标识,则表明父进程不对应于可视化窗口。
8.根据权利要求6或7所述的装置,所述处理模块进一步适于:对不对应于可视化窗口的父进程创建浏览器进程的行为,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
9.根据权利要求6或7所述的装置,还包括:云查询接口,适于在预置的本地进程白名单中查询不对应于可视化窗口的父进程的进程信息,将未查询到的父进程的进程信息上传至服务器,以供所述服务器通过云查询获知所述父进程是否属于服务器保存的进程黑名单,并从服务器接收查询结果; 所述处理模块进一步适于:如果查询结果表明所述父进程属于所述进程黑名单,给出风险提示信息,根据用户选择对所述浏览器进程的创建行为进行拦截。
10.一种基于云安全拦截广告程序的系统,包括权利要求6-9任一项所述的基于云安全拦截广告程序的装置,还包括 :向所述装置提供云查询服务的服务器。
【文档编号】H04L29/08GK103617395SQ201310656591
【公开日】2014年3月5日 申请日期:2013年12月6日 优先权日:2013年12月6日
【发明者】赵龙, 邹贵强 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司