CN108399337A - 用于识别网页挖矿脚本的方法及装置 - Google Patents
用于识别网页挖矿脚本的方法及装置 Download PDFInfo
- Publication number
- CN108399337A CN108399337A CN201810220873.1A CN201810220873A CN108399337A CN 108399337 A CN108399337 A CN 108399337A CN 201810220873 A CN201810220873 A CN 201810220873A CN 108399337 A CN108399337 A CN 108399337A
- Authority
- CN
- China
- Prior art keywords
- measured
- page
- mine
- keyword
- digging
- 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.)
- Granted
Links
Classifications
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于识别网页挖矿脚本的方法及装置,属于互联网技术领域。所述方法包括:获取待测页面的JavaScript文件;根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。本发明提供的用于识别网页挖矿脚本的方法及装置能够较准确地识别网页中是否植入有挖矿脚本,有助于保护用户的利益。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于识别网页挖矿脚本的方法及装置。
背景技术
随着比特币的成功,许多基于区块链技术的数字货币纷纷问世,例如以太币,门罗币等。这类数字货币并非由特定的货币发行机构发行,而是依据特定算法通过大量运算所得。而完成如此大量运算的工具就是挖矿机程序。挖矿机程序运用计算机强大的运算力进行大量运算,由此获取数字货币。由于硬件性能的限制,数字货币玩家需要大量计算机进行运算以获得一定数量的数字货币。
由此,网页中被植入挖矿脚本的情况越来越多。对于被植入挖矿脚本的网页,用户在访问该网页时,挖矿脚本会同时进行挖矿,挖矿会严重占用用户计算机资源,导致计算机卡慢,甚至出现死机等情况,严重影响用户计算机的正常使用。但是,目前尚未有一种能够有效识别植入到网页中的挖矿脚本的方法。
发明内容
鉴于上述问题,本发明提出了一种用于识别网页挖矿脚本的方法及装置,以有效地识别网页中是否植入有挖矿脚本。
第一方面,本发明实施例提供了一种用于识别网页挖矿脚本的方法,所述方法包括:获取待测页面的JavaScript文件;根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿
关键字;根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
进一步地,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
进一步地,所述根据查找结果识别所述待测页面中是否存在挖矿脚本,包括:若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
进一步地,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
进一步地,所述查找所述多个网络传输数据包中的目标数据包,包括:查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
进一步地,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本,包括:根据所查找到的目标数据包的数量得到挖矿交互频率;当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
进一步地,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,还包括:若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;判断所述特征值是否大于或等于第一预设阈值;若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
进一步地,所述获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,还包括:获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
进一步地,若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
进一步地,所述根据所述操作频率识别所述待测页面中是否存在挖矿脚本,包括:判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本;若所述操作频率小于预设频率阈值,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
进一步地,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
进一步地,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
进一步地,所述基于所述待测网页的网络传输数据包的检测操作包括:获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果。其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
进一步地,所述基于CPU占用率的检测操作包括:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
第二方面,本发明实施例还提供了一种用于识别网页挖矿脚本的装置,所述装置包括:第一获取模块,用于获取待测页面的JavaScript文件;关键字查找模块,用于根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;识别模块,用于根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
进一步地,所述识别模块包括:第一判定子模块,用于若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
进一步地,所述识别模块包括:第二判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
进一步地,所述识别模块包括:第三判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
进一步地,所述第三判定子模块中,所述查找所述多个网络传输数据包中的目标数据包,包括:查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
进一步地,所述第三判定子模块中,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本包括:根据所查找到的目标数据包的数量得到挖矿交互频率;当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
进一步地,所述识别模块包括:第四判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;判断所述特征值是否大于或等于第一预设阈值;若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
进一步地,所述第四判定子模块还用于:在获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,执行以下步骤:获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
进一步地,所述第四判定子模块还用于:若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
进一步地,所述第四判定子模块具体用于:若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本;若所述操作频率小于预设频率阈值,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
进一步地,所述识别模块包括:结果获取子模块,用于获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;第一分值获取子模块,用于根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;第二分值获取子模块,用于根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;判断子模块,用于根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
进一步地,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
进一步地,所述基于所述待测网页的网络传输数据包的检测操作包括:获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果。其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
进一步地,所述基于CPU占用率的检测操作包括:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
第三方面,本发明实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行以下操作:获取待测页面的JavaScript文件;根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述用于识别网页挖矿脚本的方法中的步骤。
本发明实施例提供的用于识别网页挖矿脚本的方法及装置中,先获取待测页面的JavaScript文件,然后根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字,再根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,能够较准确地识别网页中是否植入有挖矿脚本,有助于保护用户的利益。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明第一实施例提供的一种用于识别网页挖矿脚本的方法的流程图;
图2示出了本发明第一实施例提供的基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤流程图;
图3示出了本发明第一实施例提供的基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤流程图;
图4示出了本发明第一实施例提供的对待测页面的CPU占用率进行预检测的步骤流程图;
图5示出了本发明第一实施例提供的一种用于识别网页挖矿脚本的方法中步骤S103的一种步骤流程图;
图6示出了本发明第二实施例提供的一种用于识别网页挖矿脚本的装置的功能模块框图;
图7示出了本发明第三实施例提供的一种可应用于本发明实施例中的电子设备的模块框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本文中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
请参照图1,示出了本发明第一实施例提供的一种用于识别网页挖矿脚本的方法的流程图。该方法可以应用于浏览器,也可以应用于第三方应用软件。如图1所示,所述方法包括:
步骤S101,获取待测页面的JavaScript文件;
当用户访问当前网页时,将当前网页作为待测页面。步骤S101中,JavaScript文件,可以简称为JS文件,是以.js为扩展名的文件,是用javascript脚本语言编写的,主要用于网页的特效、功能的脚本编程。
步骤S102,根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
其中,关键字列表为预先设置的,可以通过收集现有挖矿脚本的JS文件中的挖矿相关的关键字得到。例如,对于https://coinhive.com/lib/coinhive.min.js,分析这个js代码的挖矿脚本可以发现js代码中存在“Cryptonight”、“coinhive”和“hash”等字符串,这些字符串可以作为挖矿脚本的挖矿关键字,添加到关预设的键字列表中。在浏览器解析.js文件的时候,如果JS文件命中了这些挖矿关键字,则判定当前待测页面中存在挖矿脚本。通过js代码检测出的挖矿脚本准确率高。
步骤S103,根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
在本发明的一个实施例中,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:若所述JS文件中存在所述关键字列表中的挖矿关键字,即JS文件命中了关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
作为第一种实施方式,若待测页面的JavaScript文件中不存在所述关键字列表中的挖矿关键字,则判定所述待测页面中不存在挖矿脚本。
发明人经过了长期研究,通过分析coinhive的挖矿脚本发现,为了防止多个页面同时挖矿导致浏览器卡死,挖矿脚本在挖矿前会检测是否有其它页面在挖矿。同时,为了标记当前页面正在挖矿,页面会每隔预设时间长度在本地存储(localstorage)中写入当前的系统时间,其中,预设时间长度根据实际应用设定,例如,可以为1秒。由此,发明人进一步想到可以通过检测页面对localstorage的操作,当找到页面存在频繁的localstorage写入系统时间的操作,则说明该页面存在挖矿脚本,实现挖矿行为的检测。
因此,为了进一步降低漏检率,提高识别结果的准确性,作为第二种实施方式,若待测页面的JavaScript文件中不存在所述关键字列表中的挖矿关键字,则继续执行基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤。本实施例中,如图2所示,基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤,包括:
步骤S201,获取所述待测页面保存当前时间的操作频率;
具体来讲,通过浏览器中预先设置的接口函数可以检测待测页面对localstorage写入当前系统时间的操作,得到预设时间段T内待测页面保存当前时间的次数N,从而可以通过T得到待测页面保存当前时间的操作频率。其中,当前系统时间为浏览器所在的电子设备的当前时间。所述预设时间段T可以根据具体情况设置。
步骤S202,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
上述根据所述操作频率识别所述待测页面中是否存在挖矿脚本的步骤,包括:判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本。其中,预设频率阈值可以根据具体情况设置。
作为第一种实施方式,若所述操作频率小于预设频率阈值,则判定所述待测页面中不存在挖矿脚本。
另外,考虑到矿池是数字货币开采所必须的基础设施,一般是对外开放的团队开采服务器,其存在意义为提升比特币开采稳定性,使矿工薪酬趋于稳定。由此,挖矿脚本挖矿离不开矿池,且矿工和矿池之间的通信协议是固定的。本文中,将矿工和矿池之间的特定通信协议定义为挖矿通信协议,如:Setgenerate协议、getwork协议和stratum协议等。因此,可以通过检测待测网页的网络传输数据包是否存在以挖矿通信协议封装的网络传输数据包,从而识别待测网页中是否存在挖矿脚本。
因此,为了进一步降低漏检率,提高识别结果的准确性,作为第三种实施方式,若待测页面的JavaScript文件中不存在所述关键字列表中的挖矿关键字,则继续基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤。本实施例中,如图3所示,基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤,包括:
步骤S301,获取待测页面的多个网络传输数据包;
需要说明的是,数据包可能以多种形式传输,如HTTP(HyperTextTransferProtocol)、HTTPS(Hyper Text Transfer Protocol over Secure SocketLayer)或WSS(Web Socket Secure)等。
本实施例中,可以通过浏览器中直接获取待测页面的多个网络传输数据包。或者,也可以使用预设的抓包工具对待测页面进行抓包,得到多个网络传输数据包。所获取的网络传输数据包的具体数量可以根据实际需要设置。
步骤S302,查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
具体来讲,所述查找所述多个网络传输数据包中的目标数据包,包括:查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
矿工和矿池之间存在一种:分发工作、完成工作和工作确认的机制。其中,分发工作阶段为:矿池下发工作任务。矿工接受矿池下发的工作任务后,进行计算。完成工作阶段为:当计算完成后,矿工向矿池提交计算结果。工作确认阶段为:矿池确认矿工提交的计算结果。
因此,对于植入有挖矿脚本的网页,当挖矿脚本执行挖矿行为时,该网页会接收到矿池发送的第一特征数据包,当挖矿计算完成后,该网页会向矿池发送第二特征数据包,进一步地,矿池会返回第三特征数据包到该网页。可以理解的是,基于特定挖矿通信协议的格式,第一特征数据包中包含第一特征字段,第二特征数据包中包含第二特征字段,第三特征数据包中包含第三特征字段。例如,现有的挖矿通信协议有:Setgenerate协议、getwork协议和stratum协议等。需要说明的是,第一特征字段、第二特征字段和第三特征字段应对应于具体的挖矿通信协议设置,不同的挖矿通信协议对应的第一特征字段不完全相同,不同的挖矿通信协议对应的第二特征字段不完全相同,不同的挖矿通信协议对应的第三特征字段不完全相同。
例如,在一种具体的应用场景中,一次正常的挖矿通信为:
{“type”:“job”,“params”:{“job_id”:“A”,“blob”:“B”,“target”:“ffffff00”}}
{“type”:“submit”,“params”:{“job_id”:“A”,“nonce”:“C”,“result”:“D”}}
{“type”:“hash_accepted”,“params”:{“hashes”:“21306368”}}
由此可以看出,在一次正常的挖矿通信中,会存在3个阶段:
(1)矿池下发工作任务。“type”表示当前数据包的类型,Type=job,表示当前数据包为矿池下发工作任务。其中,job_id表示矿池下发工作任务的唯一标识符,每一次任务都有唯一标识符,A表示一个具体任务的job_id值;blob表示矿池下发的工作任务,B表示工作任务A的数据。target表示矿池下发的工作任务的难度目标,“ffffff00”表示工作任务A的难度目标值。此时,第一特征字段可以包括job_id、blob和target等字段。
(2)矿工进行计算,当计算完成后,矿工提交计算结果。Type=submit,表示当前数据包为矿工向矿池反馈计算结果。其中,“nonce”表示本次任务的计算结果所使用的随机数,C表示任务A的计算结果所使用的随机数值;result表示本次任务的挖矿计算结果,D表示任务A的具体计算值。此时,第二特征字段可以包括job_id、result等字段。
(3)矿池确认计算结果。Type=hash_accepted,表示当前数据包为矿池向矿工反馈结果确认。其中,hashes表示哈希值。此时,第三特征字段可以包括hashes等字段。
步骤S303,根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
所查找到的目标数据包的数量包括:所查找到的第一特征数据包的数量、所查找到的第二特征数据包的数量以及所查找到的第三特征数据包的数量。
具体来讲,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本,包括:根据所查找到的目标数据包的数量得到挖矿交互频率;判断所述挖矿交互频率是否大于或等于预设值,当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
由于矿工和矿池之间的一次通信包括:分发工作阶段、完成工作阶段和工作确认阶段,矿工和矿池之间的一次通信至少包括:一个第一特征数据包、一个第二特征数据包和一个第三特征数据包。挖矿交互频率可以为待测页面与矿池之间的通信次数。因此,根据所查找到第一特征数据包的数量、第二特征数据包的数量以及第三特征数据包的数量可以得到挖矿交互频率。
预设值可以根据实际需要设置。作为一种实施方式,预设值可以设置为1,也就是说,只要待测页面与矿池之间存在一次以上的通信,则判定待测页面中存在挖矿脚本。进一步地,为了增加成功率,减少误判,作为另一种实施方式,预设值可以设置为M次,其中,M为大于或等于2的整数,也就是说,待测页面与矿池之间存在M次及以上的交互,则判定待测页面中存在挖矿脚本。
挖矿脚本主要是利用用户设备的CPU进行大量的hash运算,来获取收益,若网页中插入有挖矿脚本,且挖矿脚本开始执行挖矿行为时,网页的CPU占用率会大幅度提升。为了尽可能的挖矿又不影响网页的正常渲染,挖矿脚本的挖矿功能通常运行在独立的线程中。
因此,为了进一步降低漏检率,提高识别结果的准确性,作为第四种实施方式,若待测页面的JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行对待测页面的CPU占用率进行预检测的步骤。具体的,如图4所示,对待测页面的CPU占用率进行预检测的步骤,包括:
步骤S410,获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
现代浏览器多采用的是多进程的架构,浏览器框架和渲染运行在不同的进程中。为了尽可能的挖矿又不影响网页的正常渲染,挖矿脚本的挖矿功能通常运行在独立的线程中。
需要说明的是,本实施例中,步骤S410所述的渲染进程可以是浏览器中的每个渲染进程,此时,步骤S420则对每个渲染进程,均根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值。或者,步骤S410所述的渲染进程也可以是浏览器中在所述预设周期内的CPU占用率大于第三预设阈值的渲染进程,这样有利于减少检测对浏览器性能的影响。
步骤S420,根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
步骤S430,判断所述特征值是否大于或等于第一预设阈值,若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
作为一种实施方式,上述的根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值的步骤,包括:获取所述渲染进程中所述待测页面的线程中的目标线程的数量,将所获取的目标线程的数量作为所述特征值,其中,所述目标线程为在所述预设周期内的CPU占用率大于第二预设阈值的线程。此时,第一预设阈值为预设的线程数量,第二预设阈值为预设的CPU占用率,具体可以根据需要设置。其中,预设周期和第二预设阈值根据具体情况对应设置,且第二预设阈值需要根据具体的预设周期设置。例如,预设周期为10秒,第一预设阈值设置为2,第二预设阈值为30%,目标线程为在10秒内的CPU占用率大于第二预设阈值的线程,当所获取的目标线程的数量大于或等于2,则判定待测页面中存在挖矿脚本。当然,第一预设阈值也可以设置为1。
作为另一种实施方式,上述的根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值的步骤,包括:获取所述渲染进程中所述待测页面的所有线程在预设周期内的CPU占用率的平均值,将所述平均值作为所述特征值。此时,第一预设阈值为预设的CPU占用率,预设周期和第一预设阈值根据具体情况对应设置,且第一预设阈值需要根据具体的预设周期设置。
需要说明的是,本发明的其他实施例中,上述对待测页面的CPU占用率进行预检测的步骤也可以在上述步骤S101之前执行,即先对待测页面的CPU占用率进行预检测,当判定所述特征值小于所述第一预设阈值时,再执行对待测页面的JS文件进行检测的步骤,即上述的步骤S101、步骤S102和步骤S103,当所述特征值大于或等于所述第一预设阈值时,则判定所述待测页面中存在挖矿脚本,完成本次挖矿脚本的识别,不再执行对待测页面的JS文件进行检测的步骤,即不再执行上述的步骤S101、步骤S102和步骤S103。
另外,若在判定待测页面的JavaScript文件中不存在所述关键字列表中的挖矿关键字之后,执行上述对待测页面的CPU占用率进行预检测的步骤,则在步骤S430中,当判定所述特征值小于所述第一预设阈值时,可以有以下几种实施方式:
第一种,若所述特征值小于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
第二种,若所述特征值小于所述第一预设阈值,则继续执行上述的基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤。基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤中,所述根据所述操作频率识别所述待测页面中是否存在挖矿脚本,包括:判断所述操作频率是否大于或等于预设频率阈值;若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本。
此时,作为一种实施方式,若所述操作频率小于预设频率阈值,则判定所述待测页面中不存在挖矿脚本。为了进一步降低漏检率,提高识别结果的准确性,作为另一种实施方式,若所述操作频率小于预设频率阈值,则继续执行上述的基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤。基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤具体可以参照上述实施例中的步骤S301、步骤S302和步骤S303,此处不再赘述。
第三种,若所述特征值小于所述第一预设阈值,则继续执行上述的基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤。基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤具体可以参照上述实施例中的步骤S301、步骤S302和步骤S303,此处不再赘述。此时,为了进一步降低漏检率,提高识别结果的准确性,执行完基于待测页面的网络数据传输包检测该待测页面中是否存在挖矿脚本的步骤后,若判定所述待测页面中存在挖矿脚本,则完成本次挖矿脚本的识别,否则,可以继续执行上述的基于待测页面保存当前时间的操作频率检测该待测页面中是否存在挖矿脚本的步骤,得到最终识别结果。
进一步地,为了减少检测对浏览器性能的影响,在执行上述步骤S410之前,所述方法还包括:
步骤S401,获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;
在浏览器的主进程中检测所有渲染进程的CPU占用率,每隔预设周期t1使用GetProcessTimes函数获取每个渲染进程消耗的CPU时间t2,将t2除以t1得到每个渲染进程在预设周期内的CPU占用率。
步骤S402,判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值,若存在,则对在所述预设周期内的CPU占用率大于第三预设阈值的渲染进程执行上述步骤S410,若不存在,则不执行上述步骤S410。继续检测,直至存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值,对在所述预设周期内的CPU占用率大于第三预设阈值的渲染进程执行上述步骤S410。
其中,预设周期和第三预设阈值均可以根据实际情况对应设置,且第三预设阈值根据预设周期设置。例如,预设周期为10秒,第三预设阈值为预设的10秒内的CPU占用率阈值。
这样就可以在浏览器中存在预设周期内的CPU占用率大于第三预设阈值的渲染进程时,即浏览器中存在CPU占用率异常的渲染进程时,才执行上述对待测页面的CPU占用率进行预检测的步骤,在浏览器中不存在预设周期内的CPU占用率大于第三预设阈值的渲染进程时,即浏览器中不存在CPU占用率异常的渲染进程时,则不执行上述对待测页面的CPU占用率进行预检测的步骤,有利于减少挖矿脚本识别对浏览器性能的影响。
进一步地,为了提高识别结果的准确性,在本发明的另一个实施例中,可以通过多种的检测操作的检测结果得到相应的分值,再根据这些分值得到最终的挖矿脚本检测结果。此时,如图5所示,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本的步骤,包括:
步骤S501,获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;
具体来讲,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
具体来讲,所述基于所述待测网页的网络传输数据包的检测操作包括:获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果。其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
具体来讲,所述基于CPU占用率的检测操作包括:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
步骤S502,根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;
步骤S503,根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;
步骤S504,根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
本实施例中,将根据所述挖矿关键字查找结果判断待测页面中是否存在挖矿脚本的操作定义为基于所述待测页面的JS文件的检测操作。
上述步骤S501中,特征检测操作具体包括上述几种检测操作中的哪一种或哪几种可以根据实际需要设置。另外,第一预设规则、第二预设规则和第三预设规则也可以根据实际需要设置。
作为一种实施方式,可以预先设置基于所述待测页面的JS文件的检测操作以及特征检测操作对应的特征分值,且基于所述待测页面的JS文件的检测操作对应的特征分值和特征检测操作对应的特征分值相加为100。当然,若特征检测操作包括多种检测操作,则每种特征检测操作均对应有特征分值。此时,若基于所述待测页面的JS文件的检测操作检测出待测页面中存在挖矿脚本,则该检测操作对应的第一分值为该检测操作对应的特征分值,若该检测操作检测出待测页面中不存在挖矿脚本,则该检测操作对应的第一分值为0。同理,若某特征检测操作检测出待测页面中存在挖矿脚本,则该特征检测操作对应的第二分值为该特征检测操作对应的特征分值,若某特征检测操作检测出待测页面中不存在挖矿脚本,则该特征检测操作对应的第二分值为0。
然后,将得到的第一分值以及第二分值相加得到第一总分值。判断第一总分值是否超过预设分数阈值,当第一总分值超过预设分数阈值时,则判定待测页面中存在挖矿脚本,当第一总分值不超过预设分数阈值时,则判定待测页面中不存在挖矿脚本。其中,预设分数阈值可以根据需要设置,例如可以设置为50、60或80等。
例如,当特征检测操作的检测结果包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作时,基于所述待测网页的网络传输数据包的检测操作对应的特征分值可以为30,基于所述待测页面保存当前时间的操作频率的检测操作对应的特征分值可以为30,基于CPU占用率的检测操作对应的特征分值可以为20,基于所述待测页面的JS文件的检测操作对应的特征分值可以为20。此时,根据基于所述待测页面的JS文件的检测操作的检测结果得到的分值为第一分值,根据基于所述待测页面保存当前时间的操作频率的检测操作的检测结果得到的分值、根据基于CPU占用率的检测操作的检测结果得到的分值以及根据基于所述待测网页的网络传输数据包的检测操作的检测结果得到的分值均为第二分值。
作为另一种实施方式,可以预先设置基于所述待测页面的JS文件的检测操作以及特征检测操作对应的权值,且基于所述待测页面的JS文件的检测操作以及特征检测操作对应的权值之和为1。并设置基于所述待测页面的JS文件的检测操作以及特征检测操作的满分均为100分。当然,若特征检测操作包括多种检测操作,则每种特征检测操作均对应有各自的权值。
此后,根据基于所述待测页面的JS文件的检测操作的检测结果即在待测页面的JS文件中对所述挖矿关键字查找结果以及第一预设规则对该检测结果进行打分(满分为100分),得到该检测操作对应的第一分值。根据特征检测操作以及第二预设规则对该特征检测操作进行打分(满分为100分),得到该特征检测操作对应的第二分值。当然,若特征检测操作包括多种检测操作,则需要对每种特征检测操作均进行打分(满分均为100分),得到每种特征检测操作对应的第二分值。然后,再将每种检测操作的分值乘以该检测操作对应的权值,则可以得到该检测操作的实际分值,进而将所有检测操作的实际分值相加得到第二总分值。
判断第二总分值是否超过预设分数阈值,当第二总分值超过预设分数阈值时,则判定待测页面中存在挖矿脚本,当第二总分值不超过预设分数阈值时,则判定待测页面中不存在挖矿脚本。其中,预设分数阈值可以根据需要设置,例如可以设置为50、60或80等。
例如,当特征检测操作的检测结果包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作时,基于所述待测网页的网络传输数据包的检测操作对应的权值可以为30%,基于所述待测页面保存当前时间的操作频率的检测操作对应的权值可以为30%,基于CPU占用率的检测操作对应的权值可以为20%,基于所述待测页面的JS文件的检测操作对应的权值可以为20%。假设基于所述待测页面的JS文件的检测操作对应的第一分值为S1,基于所述待测页面保存当前时间的操作频率的检测操作对应的第二分值为S2,基于所述待测网页的网络传输数据包的检测操作对应的第二分值为S3,基于CPU占用率的检测操作对应的第二分值为S4,则第二总分值为:S1×20%+S2×30%+S3×30%+S4×20%。
作为一种实施方式,在基于所述待测页面的JS文件的检测操作中,也可以根据在待测页面的JS文件中查找到的挖矿关键字的个数以及第一预设规则对该检测操作进行打分,得到基于所述待测页面的JS文件的检测操作对应的第一分值。需要说明的是,待测页面的JS文件所命中的挖矿关键字个数越多,打分越高。例如,第一预设规则可以为:当待测页面的JS文件中查找到的挖矿关键字的个数为0个时,该检测操作对应的第一分值为0分,当命中1个挖矿关键字时,该检测操作对应的第一分值为60分,当命中两个以上的挖矿关键字时,该检测操作对应的第一分值为100分。当然,除了上述方式外,也可以根据需要设置其他的第一预设规则。
作为一种实施方式,在基于所述待测网页的网络传输数据包的检测操作中,可以根据所查找到的目标数据包的数量,得到挖矿交互频率,根据所得到的挖矿交互频率对该检测操作进行打分。具体的,根据所查找到的目标数据包的数量得到挖矿交互频率的实施方式可以参照上述步骤S303中的相应内容,此处不再赘述。例如:可以预先设置挖矿交互频率的第一特征范围,每个第一特征范围对应于一个特定分值,且挖矿交互频率越大的第一特征范围,对应的特定分值越高,通过判断所得到的挖矿交互频率所在的第一特征范围,确定基于所述待测网页的网络传输数据包的检测操作对应的特定分值,将该特定分值作为该检测操作对应的第二分值。例如,当第一特征范围包括:0,[1,10]和[11,+∞)时,0对应的特定分值为0,[1,10]对应的特定分值为80,[11,+∞)对应的特定分值为100。
作为一种实施方式,在基于所述待测页面保存当前时间的操作频率的检测操作中,可以根据操作频率对该检测操作进行打分。其中,操作频率的获取方式可以参照上述步骤S201,此处不再赘述。例如,可以预先设置操作频率的第二特征范围,每个第二特征范围对应于一个特定分值,且操作频率越大的第二特征范围,对应的特定分值越高,通过判断所得到的操作频率所在的第二特征范围,确定基于所述待测页面保存当前时间的操作频率的检测操作对应的特定分值,将该特定分值作为该检测操作对应的第二分值。例如,当第二特征范围包括:0,[1,10],[10,50]和[51,+∞)时,0对应的特定分值为0,[1,10]对应的特定分值可以为30,[10,50]对应的特定分值可以为60,[51,+∞)对应的特定分值可以为100。
同理,作为一种实施方式,在基于CPU占用率的检测操作中,也可以预先设置特征值的第三特征范围,每个第三特征范围对应于一个特定分值,特征值越大的第三特征范围,对应的特定分值越高。然后,通过判定所得到的特征值所在的第三特征范围,确定基于CPU占用率的检测操作对应的特定分值,将该特定分值作为该检测操作对应的第二分值。具体的,特征值的获取方式可以参照上述对待测页面的CPU占用率进行预检测的步骤S420,此处不再赘述。
综上所述,本发明实施例提供的用于识别网页挖矿脚本的方法中,先获取待测页面的JavaScript文件,然后根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字,再根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,能够较准确地识别网页中是否植入有挖矿脚本,有助于保护用户的利益。
请参阅图6,示出了本发明第二实施例提供的一种用于识别网页挖矿脚本的装置的功能模块框图。该用于识别网页挖矿脚本的装置600可以应用于浏览器,也可以应用于第三方应用软件。如图6所示,所述用于识别网页挖矿脚本的装置600包括:
第一获取模块610,用于获取待测页面的JavaScript文件;
关键字查找模块620,用于根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
识别模块630,用于根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
作为一种可选的实施例,所述识别模块630包括:第一判定子模块,用于若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
作为一种可选的实施例,所述识别模块630包括:第二判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
作为一种可选的实施例,所述识别模块630包括:第三判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
作为一种可选的实施例,所述第三判定子模块中,所述查找所述多个网络传输数据包中的目标数据包,包括:查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
作为一种可选的实施例,所述第三判定子模块中,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本包括:根据所查找到的目标数据包的数量得到挖矿交互频率;当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
作为一种可选的实施例,所述识别模块630包括:第四判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;判断所述特征值是否大于或等于第一预设阈值;若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
作为一种可选的实施例,所述第四判定子模块还用于:在获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,执行以下步骤:获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
作为一种可选的实施例,所述第四判定子模块还用于:若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
作为一种可选的实施例,所述第四判定子模块具体用于:若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本;若所述操作频率小于预设频率阈值,则执行以下步骤:获取待测页面的多个网络传输数据包;查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
作为一种可选的实施例,所述识别模块630包括:
结果获取子模块,用于获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;
第一分值获取子模块,用于根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;
第二分值获取子模块,用于根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;
判断子模块,用于根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
具体来讲,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
具体来讲,所述基于所述待测网页的网络传输数据包的检测操作包括:获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果。其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
具体来讲,所述基于CPU占用率的检测操作包括:获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
需要说明的是,本发明实施例所提供的网页挖矿脚本的识别装置,其具体实现及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
另外,本发明第三实施例提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行以下操作:
获取待测页面的JavaScript文件;
根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
需要说明的是,本发明实施例所提供的电子设备中,上述每个步骤的具体实现及产生的技术效果和前述方法实施例相同,为简要描述,本实施例未提及之处可参考前述方法实施例中相应内容。
于本发明实施例中,电子设备可以为PC(Personal Computer)电脑、平板电脑、手机、电子阅读器、笔记本电脑、智能电视、车载终端等终端设备。
以图7示出的一种可应用于本发明实施例中的电子设备700为例,如图7所示,电子设备700包括存储器702、存储控制器704,一个或多个(图中仅示出一个)处理器706、外设接口708、网络模块710、输入输出模块712、音频模块714、显示模块716等。这些组件通过一条或多条通讯总线/信号线718相互通讯。
存储器702可用于存储软件程序以及模块,如本发明实施例中的用于识别网页挖矿脚本的方法以及装置对应的程序指令/模块,处理器706通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的用于识别网页挖矿脚本的方法。
存储器702可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器706以及其他可能的组件对存储器702的访问可在存储控制器704的控制下进行。
外设接口708将各种输入/输出装置耦合至处理器706以及存储器702。在一些实施例中,外设接口708,处理器706以及存储控制器704可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
网络模块710用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。
输入输出模块712用于提供给用户输入数据实现用户与电子设备的交互。所述输入输出模块712可以是,但不限于,鼠标、键盘和触控屏幕等。
音频模块714向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示模块716在电子设备700与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示模块716可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图7所示的结构仅为示意,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
于本发明实施例中,电子设备700中安装有客户端,该客户端可以是浏览器也可以是第三方应用软件,与服务器(Server)端相对应,为用户提供服务。
本发明第四实施例提供了一种计算机存储介质,本发明第二实施例中的用于识别网页挖矿脚本的装置集成的功能模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例的用于识别网页挖矿脚本的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种用于识别网页挖矿脚本的方法,所述方法包括:
获取待测页面的JavaScript文件;
根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
A2、根据A1所述的方法,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
A3、根据A1所述的方法,所述根据查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
A4、根据A1所述的方法,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取待测页面的多个网络传输数据包;
查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
A5、根据A4所述的方法,所述查找所述多个网络传输数据包中的目标数据包,包括:
查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;
将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;
将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;
将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
A6、根据A4所述的方法,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本,包括:
根据所查找到的目标数据包的数量得到挖矿交互频率;
当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;
当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
A7、根据A1所述的方法,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,还包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
判断所述特征值是否大于或等于第一预设阈值;
若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
A8、根据A7所述的方法,所述获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,还包括:
获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;
判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;
若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
A9、根据A7所述的方法,若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
A10、根据A9所述的方法,所述根据所述操作频率识别所述待测页面中是否存在挖矿脚本,包括:
判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本;
若所述操作频率小于预设频率阈值,则执行以下步骤:
获取待测页面的多个网络传输数据包;
查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
A11、根据A1所述的方法,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;
根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;
根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;
根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
A12、根据A11所述的方法,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:
获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
A13、根据A11所述的方法,所述基于所述待测网页的网络传输数据包的检测操作包括:
获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果;
其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
A14、根据A11所述的方法,所述基于CPU占用率的检测操作包括:
获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
本发明公开了B15、一种用于识别网页挖矿脚本的装置,所述装置包括:
第一获取模块,用于获取待测页面的JavaScript文件;
关键字查找模块,用于根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
识别模块,用于根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
B16、根据B15所述的装置,所述识别模块包括:
第一判定子模块,用于若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
B17、根据B15所述的装置,所述识别模块包括:
第二判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
B18、根据B15所述的装置,所述识别模块包括:
第三判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取待测页面的多个网络传输数据包;
查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
B19、根据B18所述的装置,所述第三判定子模块中,所述查找所述多个网络传输数据包中的目标数据包,包括:
查找所述多个网络传输数据包中包含第一特征字段、第二特征字段或第三特征字段的网络传输数据包;
将包含所述第一特征字段的所述网络传输数据包记为第一特征数据包;
将包含所述第二特征字段的所述网络传输数据包记为第二特征数据包;
将包含所述第三特征字段的所述网络传输数据包记为第三特征数据包。
B20、根据B18所述的装置,所述第三判定子模块中,所述根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本包括:
根据所查找到的目标数据包的数量得到挖矿交互频率;
当所述挖矿交互频率大于或等于预设值时,判定所述待测页面中存在挖矿脚本;
当所述挖矿交互频率小于预设值时,判定所述待测页面中不存在挖矿脚本。
B21、根据B15所述的装置,所述识别模块包括:
第四判定子模块,用于若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
判断所述特征值是否大于或等于第一预设阈值;
若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
B22、根据B21所述的装置,所述第四判定子模块还用于:
在获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,执行以下步骤:
获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;
判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;
若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
B23、根据B21所述的装置,所述第四判定子模块还用于:
若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
B24、根据B23所述的装置,所述第四判定子模块具体用于:
若所述特征值小于所述第一预设阈值,则获取所述待测页面保存当前时间的操作频率,判断所述操作频率是否大于或等于预设频率阈值,若所述操作频率大于或等于预设频率阈值,则判定所述待测页面中存在挖矿脚本;
若所述操作频率小于预设频率阈值,则执行以下步骤:
获取待测页面的多个网络传输数据包;
查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
B25、根据B15所述的装置,所述识别模块包括:
结果获取子模块,用于获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;
第一分值获取子模块,用于根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;
第二分值获取子模块,用于根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;
判断子模块,用于根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
B26、根据B25所述的装置,所述基于所述待测页面保存当前时间的操作频率的检测操作包括:
获取所述待测页面保存当前时间的操作频率,将所述操作频率作为所述基于所述待测页面保存当前时间的操作频率的检测操作的检测结果。
B27、根据B25所述的装置,所述基于所述待测网页的网络传输数据包的检测操作包括:
获取待测页面的多个网络传输数据包,查找所述多个网络传输数据包中的目标数据包,将所查找到的目标数据包的数量作为所述基于所述待测网页的网络传输数据包的检测操作的检测结果;
其中,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包。
B28、根据B25所述的装置,所述基于CPU占用率的检测操作包括:
获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
将所述特征值作为所述基于CPU占用率的检测操作的检测结果。
本发明公开了C29、一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行以下操作:
获取待测页面的JavaScript文件;
根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
本发明公开了D30、一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A14中任一项所述方法的步骤。
Claims (10)
1.一种用于识别网页挖矿脚本的方法,其特征在于,所述方法包括:
获取待测页面的JavaScript文件;
根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
2.根据权利要求1所述的方法,其特征在于,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中存在所述关键字列表中的挖矿关键字,则判定所述待测页面中存在挖矿脚本。
3.根据权利要求1所述的方法,其特征在于,所述根据查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则获取所述待测页面保存当前时间的操作频率,根据所述操作频率识别所述待测页面中是否存在挖矿脚本。
4.根据权利要求1所述的方法,其特征在于,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取待测页面的多个网络传输数据包;
查找所述多个网络传输数据包中的目标数据包,所述目标数据包包括:对应于预设挖矿通信协议的第一特征数据包、第二特征数据包或第三特征数据包;
根据所查找到的目标数据包的数量识别所述待测页面中是否存在挖矿脚本。
5.根据权利要求1所述的方法,其特征在于,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,还包括:
若所述JavaScript文件中不存在所述关键字列表中的挖矿关键字,则执行以下步骤:
获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率;
根据所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率得到特征值;
判断所述特征值是否大于或等于第一预设阈值;
若所述特征值大于或等于所述第一预设阈值,则判定所述待测页面中存在挖矿脚本。
6.根据权利要求5所述的方法,其特征在于,所述获取渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率之前,还包括:
获取浏览器的每个渲染进程在所述预设周期内的CPU占用率;
判断是否存在所述渲染进程在所述预设周期内的CPU占用率大于第三预设阈值;
若存在,再对该渲染进程执行所述获取所述渲染进程中所述待测页面的每个线程在预设周期内的CPU占用率的步骤。
7.根据权利要求1所述的方法,其特征在于,所述根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本,包括:
获取特征检测操作的检测结果,其中,所述特征检测操作包括基于所述待测页面保存当前时间的操作频率的检测操作、基于所述待测网页的网络传输数据包的检测操作以及基于CPU占用率的检测操作的任意一种或多种组合;
根据所述挖矿关键字查找结果以及第一预设规则得到第一分值;
根据所述特征检测操作的检测结果以及第二预设规则得到第二分值;
根据所述第一分值、所述第二分值以及第三预设规则判断所述待测页面中是否存在挖矿脚本。
8.一种用于识别网页挖矿脚本的装置,其特征在于,所述装置包括:
第一获取模块,用于获取待测页面的JavaScript文件;
关键字查找模块,用于根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
识别模块,用于根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行以下操作:
获取待测页面的JavaScript文件;
根据预设的关键字列表在所述JavaScript文件中查找挖矿关键字,其中,所述关键字列表包括多个所述挖矿关键字;
根据所述挖矿关键字查找结果识别所述待测页面中是否存在挖矿脚本。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810220873.1A CN108399337B (zh) | 2018-03-16 | 2018-03-16 | 用于识别网页挖矿脚本的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810220873.1A CN108399337B (zh) | 2018-03-16 | 2018-03-16 | 用于识别网页挖矿脚本的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108399337A true CN108399337A (zh) | 2018-08-14 |
CN108399337B CN108399337B (zh) | 2021-07-30 |
Family
ID=63092354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810220873.1A Active CN108399337B (zh) | 2018-03-16 | 2018-03-16 | 用于识别网页挖矿脚本的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399337B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569645A (zh) * | 2019-09-02 | 2019-12-13 | 慧盾信息安全科技(苏州)股份有限公司 | 一种服务器挖矿病毒防护的系统和方法 |
CN110933060A (zh) * | 2019-11-22 | 2020-03-27 | 上海交通大学 | 一种基于流量分析的挖矿木马检测系统 |
CN112087414A (zh) * | 2019-06-14 | 2020-12-15 | 北京奇虎科技有限公司 | 挖矿木马的检测方法及装置 |
CN113230665A (zh) * | 2021-05-21 | 2021-08-10 | 珠海金山网络游戏科技有限公司 | 资源分配方法及装置 |
US11316880B2 (en) | 2019-09-16 | 2022-04-26 | Avast Software, S.R.O. | Cryptocurrency mining detection using network traffic |
CN115801466A (zh) * | 2023-02-08 | 2023-03-14 | 北京升鑫网络科技有限公司 | 基于流量的挖矿脚本检测方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559235A (zh) * | 2013-10-24 | 2014-02-05 | 中国科学院信息工程研究所 | 一种在线社交网络恶意网页检测识别方法 |
CN105704099A (zh) * | 2014-11-26 | 2016-06-22 | 国家电网公司 | 一种检测隐藏在网站脚本中非法链接的方法 |
CN106502879A (zh) * | 2015-09-07 | 2017-03-15 | 中国移动通信集团公司 | 一种实现应用程序安全性检测的方法及装置 |
US20170109454A1 (en) * | 2015-10-15 | 2017-04-20 | Go Daddy Operating Company, LLC | Identifying an industry associated with a web page |
EP3183670A1 (en) * | 2014-08-22 | 2017-06-28 | Thomson Licensing | Method and apparatus for processing a file |
US20170249312A1 (en) * | 2016-02-27 | 2017-08-31 | Microsoft Technology Licensing, Llc | Dynamic deeplinks for navigational queries |
-
2018
- 2018-03-16 CN CN201810220873.1A patent/CN108399337B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559235A (zh) * | 2013-10-24 | 2014-02-05 | 中国科学院信息工程研究所 | 一种在线社交网络恶意网页检测识别方法 |
EP3183670A1 (en) * | 2014-08-22 | 2017-06-28 | Thomson Licensing | Method and apparatus for processing a file |
CN105704099A (zh) * | 2014-11-26 | 2016-06-22 | 国家电网公司 | 一种检测隐藏在网站脚本中非法链接的方法 |
CN106502879A (zh) * | 2015-09-07 | 2017-03-15 | 中国移动通信集团公司 | 一种实现应用程序安全性检测的方法及装置 |
US20170109454A1 (en) * | 2015-10-15 | 2017-04-20 | Go Daddy Operating Company, LLC | Identifying an industry associated with a web page |
US20170249312A1 (en) * | 2016-02-27 | 2017-08-31 | Microsoft Technology Licensing, Llc | Dynamic deeplinks for navigational queries |
Non-Patent Citations (2)
Title |
---|
JIAWEI ZHU ET AL: "Mining Information on Bitcoin Network Data", 《IEEE》 * |
张成成: "区块链典型挖矿算法分析", 《数字技术与应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087414A (zh) * | 2019-06-14 | 2020-12-15 | 北京奇虎科技有限公司 | 挖矿木马的检测方法及装置 |
CN110569645A (zh) * | 2019-09-02 | 2019-12-13 | 慧盾信息安全科技(苏州)股份有限公司 | 一种服务器挖矿病毒防护的系统和方法 |
US11316880B2 (en) | 2019-09-16 | 2022-04-26 | Avast Software, S.R.O. | Cryptocurrency mining detection using network traffic |
CN110933060A (zh) * | 2019-11-22 | 2020-03-27 | 上海交通大学 | 一种基于流量分析的挖矿木马检测系统 |
CN113230665A (zh) * | 2021-05-21 | 2021-08-10 | 珠海金山网络游戏科技有限公司 | 资源分配方法及装置 |
CN113230665B (zh) * | 2021-05-21 | 2023-08-29 | 珠海金山数字网络科技有限公司 | 资源分配方法及装置 |
CN115801466A (zh) * | 2023-02-08 | 2023-03-14 | 北京升鑫网络科技有限公司 | 基于流量的挖矿脚本检测方法和装置 |
CN115801466B (zh) * | 2023-02-08 | 2023-05-02 | 北京升鑫网络科技有限公司 | 基于流量的挖矿脚本检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108399337B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399337A (zh) | 用于识别网页挖矿脚本的方法及装置 | |
US11838350B2 (en) | Techniques for identifying issues related to digital interactions on websites | |
CN108427883A (zh) | 网页挖矿脚本的检测方法及装置 | |
Lin et al. | Automated forensic analysis of mobile applications on Android devices | |
CN106022349B (zh) | 用于设备类型确定的方法和系统 | |
CN105940654A (zh) | 特权静态被托管的web应用 | |
US20130173655A1 (en) | Selective fetching of search results | |
KR20140038971A (ko) | 다른 모바일 애플리케이션들의 존재에 근거하여 모바일 디바이스에 렌더링되는 광고들을 적응시키는 방법 | |
CN108900496A (zh) | 一种快速探测网站被植入挖矿木马的检测方法以及装置 | |
CN108363925A (zh) | 网页挖矿脚本的识别方法及装置 | |
JP5264813B2 (ja) | 評価装置、評価方法及び評価プログラム | |
US10885188B1 (en) | Reducing false positive rate of statistical malware detection systems | |
US9477399B1 (en) | Automated interaction for mobile applications | |
CN109948088B (zh) | 一种广告拦截方法及系统 | |
US10606580B2 (en) | Cognitive identification of related code changes | |
CN107239387A (zh) | 一种数据异常检测方法及终端 | |
CN113329087A (zh) | 用于获取信息的方法和装置 | |
EP3506136B1 (en) | Detecting stack cookie utilization in a binary software component using binary static analysis | |
CN108304697A (zh) | 检测app二次打包的方法、装置及移动终端 | |
CN108427884A (zh) | 网页挖矿脚本的警示方法及装置 | |
US9578083B1 (en) | Dynamically designing shared content | |
CN108416214A (zh) | 网页挖矿防护方法及装置 | |
CN114461909A (zh) | 信息处理方法、信息处理装置、电子设备和存储介质 | |
KR101748116B1 (ko) | 클라우드 모바일 환경에서의 스미싱 차단장치 | |
US11423097B2 (en) | Utilizing reinforcement learning for goal oriented website navigation |
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 |