一种浏览器挖矿行为检测的方法、浏览器插件和系统与流程

文档序号:15492916发布日期:2018-09-21 21:00阅读:611来源:国知局

本发明涉及网络安全技术领域,尤其涉及一种浏览器挖矿行为检测的方法、浏览器插件和系统。



背景技术:

随着web2.0的兴起,与浏览器有关的黑、灰产交易越来越频繁,使用的技术和手段也逐渐高级和复杂化。随着比特币的兴起,出现了一种基于浏览器的恶意挖矿行为。基于浏览器的挖矿行为占用cpu(centralprocessingunit,中央处理器)资源,在浏览器中执行代码求解数学难题,当计算出结果时,发送到与挖矿脚本连接的远程服务器进行验证,验证成功会获得收益。

由于网页挖矿脚本执行时会导致浏览器cpu占用率过高,计算机运行卡慢等情况,一些挖矿脚本为了不引起用户的注意,会使用一些手法隐蔽运行网页挖矿脚本。同时一般的浏览器并不具备进行挖矿行为检测分析的能力。面对挖矿脚本混淆加密后的情形,以及网站站长将挖矿作为网站功能、自建代理服务器等方式进行“合法”挖矿的情形,浏览器层面并没有有效的解决方法。



技术实现要素:

本发明所要解决的技术问题在于,提供一种浏览器挖矿行为检测的方法、浏览器插件和系统,通过还原拦截到的脚本,有效分析挖矿脚本,从而阻断挖矿脚本,利用浏览器插件在不影响原有网站的正常功能下保护用户的利益、保障用户的上网体验。

为了解决上述技术问题,本发明提供了一种浏览器挖矿行为检测的方法,包括:

拦截第一脚本;

还原所述第一脚本;

根据静默挖矿行为特征库分析所述第一脚本;

当分析得所述第一脚本具备第一静默挖矿行为特征,阻断所述第一脚本。

进一步地,所述拦截第一脚本,包括:

将所述第一脚本转换为流的形式。

优选地,所述阻断所述第一脚本,包括:

通过禁止执行关键函数的方式阻断所述第一脚本,或者,通过阻断通信的方式阻断所述第一脚本。

进一步地,所述拦截第一脚本之前还包括预处理所述第一脚本,包括:

组装所述第一脚本的请求域名;

解析所述第一脚本;

根据所述静默挖矿行为特征库分析所述第一脚本;

若分析得所述第一脚本具备第二静默挖矿行为特征时,阻断所述第一脚本;否则,放行所述第一脚本。

优选地,异步加载所述第一脚本到沙箱中预处理所述第一脚本。

进一步地,所述解析所述第一脚本,包括:

根据所述第一脚本的统一定位符将所述第一脚本解析到所述沙箱。

优选地,所述第二特征静默挖矿行为特征为构成静默挖矿行为的已知特征,所述第一静默挖矿行为特征为根据所述静默挖矿行为特征库自学习得到的预测特征。

相应地,本发明还提供了一种浏览器挖矿行为检测的浏览器插件,包括脚本还原模块、挖矿行为特征分析模块和挖矿脚本阻断模块,

所述脚本还原模块,用于还原所述第一脚本;

所述挖矿行为特征分析模块,用于根据静默挖矿行为特征库分析还原后的所述第一脚本是否具备静默挖矿行为特征;

所述挖矿脚本阻断模块,用于阻断具备静默挖矿行为特征的所述第一脚本。

本发明还提供了一种浏览器挖矿行为检测的系统,包括钩子引擎、浏览器插件和静默挖矿行为特征库,

所述钩子引擎,用于拦截第一脚本;

所述浏览器插件为上述的浏览器插件;

所述静默挖矿行为特征库,用于提供所述挖矿行为特征分析模块的分析依据。

进一步地,所述静默挖矿行为特征库包括位于浏览器客户端的第一特征库和位于云端的第二特征库,所述第一特征库的数据与所述第二特征库的数据同步。

实施本发明实施例,具有如下有益效果:

本发明本发明通过还原拦截到的脚本,对混淆、加密等方式处理后的挖矿脚本可以进行有效分析,根据静默挖矿行为特征库分析被还原后的第一脚本,当第一脚本具备静默挖矿行为特征则阻断所述第一脚本。浏览器插件相比插件具有更高级别的浏览器权限,在不影响原有网站的正常功能下保障用户的上网体验,自动检测并阻止浏览器后台静默挖矿行为,可有效减少用户计算机的cpu、存储、带宽资源被滥用的情形,并提高用户浏览网站的体验。

附图说明

图1是本发明实施例提供的一种浏览器挖矿行为检测的方法流程图;

图2是本发明实施例提供的另一种浏览器挖矿行为检测的方法流程图;

图3是本发明实施例提供的一种浏览器挖矿行为检测的浏览器插件示意图;

图4是本发明实施例提供的一种浏览器挖矿行为检测的系统示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

目前虚拟货币挖矿静默行为损害着用户利益,但主流的浏览器并不具备进行挖矿行为检测分析的能力。浏览器使用类似静态代码分析、恶意网址拦截、流量篡改检测等技术对恶意挖矿行为进行检测分析,但面临挖矿脚本混淆加密后的情形,以及网站站长将js(javascript,一种脚本语言)挖矿作为网站功能,自建代理服务器等方式进行“合法”挖矿的情形,浏览器层面并没有有效的解决方法,需要借助第三方杀毒软件的配合。对于js挖矿的静态检测,主要是对网站代码进行静态特征分析,网站脚本可以在混淆、加密后不影响原有功能,当被植入网站的js挖矿脚本出现变种、混淆、加密,便无法在内容上进行有效分析。对于js挖矿的动态分析,屏蔽域名或ip(internetprotocol,网络协议)的方式阻断挖矿行为的方法存在如下缺点:如果网站运营方不使用第三方挖矿服务,而是自建挖矿服务功能,通信数据基于网站自身的域名或ip,将网站静默挖矿功能合法化,屏蔽域名或ip后原有网站无法正常访问;或者,网站站长使用代理服务器,将js挖矿脚本计算的结果不直接与挖矿服务商交互,而是先把计算结果提交到网站服务器,然后再将结果转发到挖矿服务商实施js静默挖矿,在屏蔽域名或ip后原有网站也无法提供正常功能。

针对浏览器后台静默挖矿代码的混淆、加密、变种问题以及功能合法化、隐秘通信等方式带来的检测效果不准确的问题,可以采用浏览器挖矿行为检测的方法,通过还原拦截到的脚本,对混淆、加密等方式处理后的挖矿脚本可以进行有效分析,从而阻断具备静默挖矿行为特征的脚本,利用浏览器插件在不影响原有网站的正常功能下保护用户的利益、保障用户的上网体验。

以下为本发明的实施例,请参见图1,其示出了一种浏览器挖矿行为检测的方法流程图,具体包括:

步骤s110.拦截第一脚本。

当用户使用浏览器访问网站时,网站的资源会加载到浏览器中,这些资源包括文本、图片、脚本等,此时便在在浏览器层面拦截第一脚本。第一脚本的类型可以为js脚本。拦截第一脚本的步骤中包括将第一脚本的代码以流的形式输出。

此外,需要说明的是第一脚本的类型不限于js脚本。

步骤s120.还原所述第一脚本。

第一脚本若出现变种、混淆、加密等情形,便无法在内容上进行有效分析。挖矿脚本为了不引起用户的注意,会使用一些手法隐蔽运行。比如包含挖矿脚本的网页,可以在用户关闭浏览器窗口后隐藏在任务栏右下角继续挖矿。挖矿脚本借助网页视频、网页游戏等本身资源消耗较大的项目隐蔽自身,由于这些项目自身资源消耗较大,用户可能误认为资源消耗来自于网站本身而非挖矿脚本。还原接收到的以流的形式输入的第一脚本,将真实的脚本信息输出给之后步骤。

步骤s130.根据静默挖矿行为特征库分析所述第一脚本。

总结具有静默挖矿行为的特征,将其整理形成静默挖矿行为特征库,参照静默挖矿行为特征库,对被还原的第一脚本进行比对分析。

步骤s140.当分析得所述第一脚本具备第一静默挖矿行为特征,阻断所述第一脚本。

第一脚本具备第一静默挖矿行为特征的判定,可以是设定第一脚本匹配上静默挖矿行为特征库中的特征;可以是设定第一脚本需要满足静默挖矿行为特征库中的几个特征,比如3个;也可以是通过记忆自学习并结合静默挖矿行为特征库来对第一脚本做预测判定。当然判定的形式并不局限于上述。

当分析得所述第一脚本具备第一静默挖矿行为特征,可以通过禁止执行关键函数的方式阻断所述第一脚本,或者,通过阻断通信的方式阻断所述第一脚本。阻断挖矿脚本时,仅在执行关键函数和网络通信层面对静默挖矿行为进行阻断,不影响网站的原有功能。

步骤s150.当分析得所述第一脚本不具备第一静默挖矿行为特征,放行所述第一脚本。

在一种实施例中,所述步骤s110.拦截第一脚本之前还包括预处理所述第一脚本。

请参见图2,其示出了一种浏览器挖矿行为检测的方法流程图,具体包括:

步骤s210.组装所述第一脚本的请求域名。

将第一脚本加载到沙箱(sandboxie,又叫沙盘),组装所述第一脚本的请求域名。沙箱即是一个虚拟系统程序,允许在沙箱环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。作为一个独立的虚拟环境,可以用作测试不受信任的应用程序或上网行为。

具体的,采用异步加载第一脚本及上下文环境到浏览器沙箱的方式,减少资源损耗,同时保障用户浏览网页时的体验。

步骤s220.解析所述第一脚本。

根据所述第一脚本的统一定位符(url)将所述第一脚本解析到所述沙箱。

根据所述静默挖矿行为特征库分析所述第一脚本;

步骤s230.若分析得所述第一脚本不具备第二静默挖矿行为特征时,放行所述第一脚本。(否则,步骤s270.若分析得所述第一脚本具备第二静默挖矿行为特征时,阻断所述第一脚本。阻断的形式可以通过禁止执行关键函数的方式,或者,通过阻断通信的方式。)

第二特征静默挖矿行为特征为构成静默挖矿行为的已知特征。第一脚本具备第二静默挖矿行为特征的判定,可以是设定第一脚本匹配上静默挖矿行为特征库中的特征;可以是设定第一脚本需要满足静默挖矿行为特征库中的几个特征,比如3个;以及其他通过与静默挖矿行为特征库直接匹配判定的方式。

步骤s240.拦截第一脚本。

步骤s250.还原所述第一脚本。

根据所述静默挖矿行为特征库分析所述第一脚本;

步骤s260.当分析得所述第一脚本具备第一静默挖矿行为特征,阻断所述第一脚本。(否则,步骤s280.若分析得所述第一脚本不具备第一静默挖矿行为特征时,放行所述第一脚本。阻断的形式可以通过禁止执行关键函数的方式,或者,通过阻断通信的方式。)

第一静默挖矿行为特征为根据所述静默挖矿行为特征库自学习得到的预测特征。第一脚本具备第一静默挖矿行为特征的判定是通过记忆自学习并结合静默挖矿行为特征库来对第一脚本做预测判定。

请参见图3,其示出了一种浏览器挖矿行为检测的浏览器插件301示意图,具体包括:脚本还原模块3011、挖矿行为特征分析模块3012和挖矿脚本阻断模块3013,

所述脚本还原模块3011,用于还原所述第一脚本;脚本还原模块负责处理经浏览器解析完后的第一脚本,此时第一脚本的代码以流的形式输出,代码可以是浏览器动态执行的js脚本,所有经混淆、加密等形式伪装的脚本在此过程得到还原。

所述挖矿行为特征分析模块3012,用于根据静默挖矿行为特征库分析还原后的所述第一脚本是否具备静默挖矿行为特征;挖矿行为特征分析模块既可以根据静默挖矿行为特征库中已知的静默挖矿行为特征采用第一脚本与之比对匹配的方式做直接的分析判定,也可以基于自身的自学习能力,通过记忆再结合静默挖矿行为特征库做预测性质的分析判定。

所述挖矿脚本阻断模块3013,用于阻断具备静默挖矿行为特征的所述第一脚本。挖矿脚本阻断模块通过对第一脚本采取禁止其执行关键函数的方式,或者,通过阻断其通信的方式实施阻断。

浏览器插件具有比js脚本更高级别的浏览器权限,能够实现对混淆、加密、变种的js脚本进行检测,在浏览器解析层进行还原。通过安装浏览器插件的方式,自动检测并阻止浏览器后台静默挖矿行为。

请参见图4,其示出了一种浏览器挖矿行为检测的系统30示意图,具体包括:浏览器插件301、钩子引擎302和静默挖矿行为特征库303,

所述浏览器插件301包括脚本还原模块3011、挖矿行为特征分析模块3012和挖矿脚本阻断模块3013。

所述钩子引擎302,用于拦截第一脚本;钩子(hook)引擎在浏览器层面对加载出的第一脚本进行拦截,同时将第一脚本的代码以流的形式输出。第一脚本的类型可以为js脚本,采用jshook引擎可以更准确的检测到js脚本的原生动作。

所述静默挖矿行为特征库303,用于提供所述挖矿行为特征分析模块的分析依据。所述静默挖矿行为特征库包括位于浏览器客户端的第一特征库和位于云端的第二特征库,所述第一特征库的数据与所述第二特征库的数据同步。本地静默挖矿特征库同步云端静默挖矿特征库的数据,相比在没有本地静默挖矿特征库的情况下,每次比对分析还需要访问云端,如此设置两个并行的数据库则避免频繁与云端静默挖矿特征库通信带来的延迟。

本实施例中所示出的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比示出的更多或更少的部件,或者组合某些部件,或者具有不同的部件的布置。

本领域技术人员还可以进一步意识到,结合本说明书所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合实现,为了清除地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本发明的范围。

以上所揭露的仅为本发明的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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