CN113609246B - 一种网页相似性检测方法及系统 - Google Patents

一种网页相似性检测方法及系统 Download PDF

Info

Publication number
CN113609246B
CN113609246B CN202110891633.6A CN202110891633A CN113609246B CN 113609246 B CN113609246 B CN 113609246B CN 202110891633 A CN202110891633 A CN 202110891633A CN 113609246 B CN113609246 B CN 113609246B
Authority
CN
China
Prior art keywords
similarity
page
file
css
feature vector
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
Application number
CN202110891633.6A
Other languages
English (en)
Other versions
CN113609246A (zh
Inventor
陈业炫
奉轶
徐文博
张燕
陆亦恬
朱璋颖
唐祝寿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qi'an Pangu Shanghai Information Technology Co ltd
Original Assignee
Qi'an Pangu Shanghai Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qi'an Pangu Shanghai Information Technology Co ltd filed Critical Qi'an Pangu Shanghai Information Technology Co ltd
Priority to CN202110891633.6A priority Critical patent/CN113609246B/zh
Publication of CN113609246A publication Critical patent/CN113609246A/zh
Application granted granted Critical
Publication of CN113609246B publication Critical patent/CN113609246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种网页相似性检测方法及系统。本发明的一种网页相似性检测方法,包括获取动态渲染页面中的CSS文件和JS文件;对CSS文件和JS文件进行词法分析得到动态渲染页面与其他网页的模糊哈希值相似度;对CSS文件和JS文件进行语法分析得到动态渲染页面与其他网页的页面特征向量相似度;根据模糊哈希值相似度和页面特征向量相似度检测动态渲染页面与其他网页的相似度。本发明通过静态分析网页JS和CSS样式来获取动态渲染页面特征并基于此计算网页相似性,可以大大提高对相似网页的检测效率,克服了现有技术中不能够静态计算动态渲染页面相似性的缺陷。

Description

一种网页相似性检测方法及系统
技术领域
本发明属于网页检测技术领域,更具体地说,是涉及一种网页相似性检测方法及系统。
背景技术
随着互联网蓬勃发展,诈骗、赌博等各类web恶意应用也在不断滋生,为了及时发现这些恶意应用,各类检测技术随之应运而生。经调研,这些检测技术的主要处理对象均是web应用页面,除了对页面的内容进行分析和处理之外,还需要在多个页面间进行相似性比较以筛选出更多的恶意web应用。web应用页面的获取则是通过爬虫自动爬取,但是随着web应用开发技术不断发展和成熟,获取的页面不仅仅是静态页面,还包括有大量的动态渲染页面。其中静态页面是指页面数据和DOM结构直接存储其中的HTML文件,动态渲染页面则是指页面中没有真正的DOM结构,需要进一步通过JS和CSS动态渲染生成,如单页web应用(single page web application,SPA)。对于静态页面的相似性比较,目前有网页内容相似性和网页结构相似性。
网页内容相似性是指虽然不同的web应用页面的版式不同,但是都拷贝转载了同样的文本内容。此时,计算内容相似性的技术通常是采用向量空间模型来标识网页文本信息,具体而言,即是先对对网页文本进行分词,然后通过计算对词赋予一定权重(如TF-IDF算法),最后将一个网页表示为一个高维向量,通过距离计算(如欧式距离)来度量网页之间的相似性。
网页结构相似性是指不同的web应用页面的文本内容、图片、颜色等不相同,但是页面布局是很相似的。计算网页结构相似性的方法主要有:1)基于网页DOM(DocumentObjectModel)树,通过DOM结构根据树编辑距离、简单树匹配算法或树路径匹配来计算网页结构相似性;2)基于网页结构的视觉信息,通过网页DOM树得到DOM视觉块信息,对页面中出现的每一个视觉块均从位置中心,面积,高宽比三个方面进行差分切割划分考虑,对与不同级的信息赋予不同的表示序列,最终使用得到的表示序列作为页面的身份信息来进行相似性计算。
可见,现有技术中存在如下问题:互联网中存在大量通过动态渲染页面开发的赌博类、诈骗类等恶意应用,但是由于爬虫爬取的动态渲染页面没有运行其所包含的JS代码和CSS样式,导致页面内不包含真正的网页数据和DOM结构,因此静态页面的相似性计算技术无法应用于动态渲染页面,目前也没有一种方法可以在不执行JS和CSS代码情况下,快速计算相似的动态渲染页面,也就是说目前还无法计算动态渲染页面的相似性。
发明内容
本发明的目的在于提供一种网页相似性检测方法及系统,旨在解决现有技术中静态页面的相似性计算技术无法应用于动态渲染页面的问题。
为实现上述目的,本发明采用的技术方案是:
一种网页相似性检测方法,包括以下步骤:
步骤1:获取动态渲染页面中的CSS文件和JS文件;
步骤2:对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
步骤3:根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;
步骤4:对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
步骤5:根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度;
步骤6:根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。
优选的,所述步骤1:获取动态渲染页面中的CSS文件和JS文件,包括:
步骤1.1:对所述动态渲染页面的HTML标签进行解析,获取后缀名为CSS的原始文件和后缀名为JS的原始文件;
步骤1.2:获取所述CSS的原始文件和所述JS的原始文件的代码长度并设定长度阈值;
步骤1.3:过滤所述CSS原始文件和所述JS的原始文件中所有代码长度大于长度阈值的相应原始文件,得到CSS文件和JS文件。
优选的,所述步骤3:根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度,包括:
步骤3.1:将所述CSS文件token序列中的type类型拼接为第一字符串;
步骤3.2:将所述JS文件token序列中的type类型拼接为第二字符串;
步骤3.3:分别对所述第一字符串和所述第二字符串进行模糊哈希运算得到CSS文件页面哈希值特征和JS文件页面哈希值特征;
步骤3.4:根据所述CSS文件页面哈希值特征和所述JS文件页面哈希值特征得到所述动态渲染页面与其他网页的模糊哈希值相似度。
优选的,所述步骤3.4:根据所述CSS文件页面哈希值特征和所述JS文件页面哈希值特征得到所述动态渲染页面与其他网页的模糊哈希值相似度,包括:
步骤3.4.1:利用模糊哈希算法计算所述CSS文件页面哈希值特征与其他网页的相应CSS文件页面哈希值特征的相似度生成第一相似度;
步骤3.4.2:利用模糊哈希算法计算所述JS文件页面哈希值特征与其他网页的相应JS文件页面哈希值特征的相似度生成第二相似度;
步骤3.4.3:取所述第一相似度和所述第二相似度之间的最大值作为所述动态渲染页面与其他网页的模糊哈希值相似度。
优选的,所述步骤5:根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度,包括:
步骤5.1:将所述CSS文件的抽象语法树和所述JS文件的抽象语法树中的所有节点划分为不同的特征单元;
步骤5.2:根据所述特征单元得到高维特征向量;
步骤5.3:根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值;
步骤5.4:根据所述权重值将所述高维特征向量进行降维得到动态渲染页面中JS的代码特征向量和CSS的代码特征向量;
步骤5.5:根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度。
优选的,所述步骤5.3:根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值,包括:
按照权重值随所述特征单元在相应抽象语法树中的深度递减规则确定每一个特征单元在相应抽象语法树中的权重值。
优选的,所述步骤5.5:根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度,包括:
步骤5.5.1:计算所述JS的代码特征向量与其他网页的相应JS的代码特征向量之间的第一距离;
步骤5.5.2:计算所述CSS的代码特征向量与其他网页的相应CSS的代码特征向量之间的第二距离;
步骤5.5.3:取所述第一距离和所述第二距离之间的最小值作为所述动态渲染页面与其他网页的页面特征向量相似度。
优选的,所述步骤6:根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度,包括:
对所述模糊哈希值相似度进行降序排列,对所述页面特征向量相似度进行升序排列,来检测所述动态渲染页面与其他网页的相似度。
本发明还提供了一种网页相似性检测系统,包括:
CSS文件和JS文件获取模块,用于获取动态渲染页面中的CSS文件和JS文件;
token序列生成模块,用于对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
模糊哈希值相似度计算模块,用于根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;
抽象语法树提取模块,用于对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
页面特征向量相似度计算模块,用于根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度;
相似度检测模块,用于根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。
本发明提供的一种网页相似性检测方法及系统的有益效果在于:与现有技术相比,本发明的一种网页相似性检测方法,包括获取动态渲染页面中的CSS文件和JS文件;对CSS文件和JS文件进行词法分析得到动态渲染页面与其他网页的模糊哈希值相似度;对CSS文件和JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;根据CSS文件的抽象语法树和JS文件的抽象语法树得到动态渲染页面与其他网页的页面特征向量相似度;根据模糊哈希值相似度和页面特征向量相似度检测动态渲染页面与其他网页的相似度。本发明通过静态分析网页JS和CSS样式来获取动态渲染页面特征并基于此计算网页相似性,可以大大提高对相似网页的检测效率,克服了现有技术中不能够静态计算动态渲染页面相似性的缺陷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网页相似性检测方法的原理图。
图2为本发明实施例提供的一种网页相似性检测方法流程图。
图3为本发明实施例提供的网页相似性检测装置的原理示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的目的在于提供一种网页相似性检测方法及系统,旨在解决现有技术中静态页面的相似性计算技术无法应用于动态渲染页面的问题。
为实现上述目的,本发明采用的技术方案是:
一种网页相似性检测方法,包括以下步骤:
步骤1:获取动态渲染页面中的CSS文件和JS文件;其中,步骤1具体包括:
步骤1.1:对所述动态渲染页面的HTML标签进行解析,获取后缀名为CSS的原始文件和后缀名为JS的原始文件;
步骤1.2:获取所述CSS的原始文件和所述JS的原始文件的代码长度并设定长度阈值;
步骤1.3:过滤所述CSS原始文件和所述JS的原始文件中所有代码长度大于长度阈值的相应原始文件,得到CSS文件和JS文件。
步骤2:对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
步骤3:根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;其中,步骤3具体包括:
步骤3.1:将所述CSS文件token序列中的type类型拼接为第一字符串;
步骤3.2:将所述JS文件token序列中的type类型拼接为第二字符串;
步骤3.3:分别对所述第一字符串和所述第二字符串进行模糊哈希运算得到CSS文件页面哈希值特征和JS文件页面哈希值特征;
步骤3.4:根据所述CSS文件页面哈希值特征和所述JS文件页面哈希值特征得到所述动态渲染页面与其他网页的模糊哈希值相似度。具体的,包括:
步骤3.4.1:利用模糊哈希算法计算所述CSS文件页面哈希值特征与其他网页的相应CSS文件页面哈希值特征的相似度生成第一相似度;需要说明的是,其他网页的相应CSS文件/JS文件页面哈希值特征也是基于本发明中的网页相似性检测方法获取的。
步骤3.4.2:利用模糊哈希算法计算所述JS文件页面哈希值特征与其他网页的相应JS文件页面哈希值特征的相似度生成第二相似度;
步骤3.4.3:取所述第一相似度和所述第二相似度之间的最大值作为所述动态渲染页面与其他网页的模糊哈希值相似度。
下面结合具体的实施例对本发明中计算动态渲染页面与其他网页的模糊哈希值相似度的过程进行进一步的说明:
图1是本发明实施例提供的网页相似性检测方法的原理图,如图1所示,本发明实施例提供的网页相似性检测方法包括:
步骤101:根据页面的JS代码和CSS样式分别计算页面的特征;
步骤102:根据页面的特征进行网页相似性计算,并进行检测。
通过上述处理可以计算动态渲染页面的相似性,当发现某一web恶意应用时,通过检测具有相似特征的应用页面,可以快速发现所有与之相似的恶意应用页面。
图2是本发明提供的网页相似性检测方法的流程图,如图2所示,包括如下处理步骤:
步骤201:获取动态渲染页面中的CSS、JS文件;其中通过解析html中link、style标签下对应的href、type属性获取后缀名为CSS、JS的文件,例如,通过解析<link href=/css/mobile-promotion-vue.0915736c.css rel=prefetch>的html标签,获取了相应的css文件。同时设定长度阈值为10000,过滤CSS、JS代码长度大于长度阈值的文件。
步骤202(1):对获取的CSS、JS文件进行词法分析。具体实现是基于现有开源工具包分别对JS和CSS进行词法分析。例如,通过Esprima解析器对JS文件进行词法分析,可快速获取JS文件的token序列。同样的,利用tinycss2工具包对CSS文件进行词法分析,可快速获取CSS文件的token序列。
步骤203(1):通过对CSS、JS文件词法分析后,将分析结果拼接为字符串并对其计算哈希值得到页面特征。
在实际应用中,包括如下处理过程:首先对每个JS文件词法分析的输出结果token序列依次进行遍历,获取每个token的type类型。例如,在Esprima解析器中只有限定义了若干个类型,例如“keyword”、“string”等。将每个token的type类型拼接为一个字符串;然后将每个JS文件得到的字符串再拼接成一个最终的字符串;最后对该字符串进行模糊哈希运算,得到最终的哈希值作为页面哈希值特征之一。CSS文件同样按上述流程处理,得到的哈希值作为另一个页面哈希值特征。
步骤204(1):根据得到的哈希值计算网页相似度。具体地,不同的模糊哈希算法都相应提供了哈希值之间的距离或相似度计算。例如TLSH是计算哈希值之间的距离算法,而SSdeep是计算哈希值之间的匹配度算法。本发明使用了SSdeep模糊哈希算法,计算得到不同页面的JS哈希值匹配度和CSS哈希值匹配度之后,选取其中匹配度值更高的结果作为页面相似度之一。具体而言,不同动态渲染页面中JS哈希值匹配度为D1,CSS哈希值的匹配度为D2;如果D1>D2,则选取D1作为不同页面的模糊哈希值相似度。
步骤4:对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
步骤5:根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度;其中,步骤5具体包括:
步骤5.1:将所述CSS文件的抽象语法树和所述JS文件的抽象语法树中的所有节点划分为不同的特征单元;
步骤5.2:根据所述特征单元得到高维特征向量;
步骤5.3:根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值;具体的,步骤5.3包括:按照权重值随所述特征单元在相应抽象语法树中的深度递减规则确定每一个特征单元在相应抽象语法树中的权重值;
步骤5.4:根据所述权重值将所述高维特征向量进行降维得到动态渲染页面中JS的代码特征向量和CSS的代码特征向量;
步骤5.5:根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度。其中,步骤5.5具体包括:
步骤5.5.1:计算所述JS的代码特征向量与其他网页的相应JS的代码特征向量之间的第一距离;
步骤5.5.2:计算所述CSS的代码特征向量与其他网页的相应CSS的代码特征向量之间的第二距离;
步骤5.5.3:取所述第一距离和所述第二距离之间的最小值作为所述动态渲染页面与其他网页的页面特征向量相似度。
下面结合具体的实施例对本发明中计算动态渲染页面与其他网页的页面特征向量相似度的过程进行进一步的说明:
步骤202(2):对获取的CSS、JS文件进行语法分析。具体实现是基于现有开源工具包分别对JS和CSS进行语法分析。例如,通过Esprima解析器对JS文件进行语法分析,可快速获取JS文件的抽象语法树。同样的,利用tinycss2工具包可对CSS文件进行语法分析,可快速获取CSS文件的抽象语法树。
步骤203(2):构建抽象语法树并提取页面特征向量。
在实际应用中,具体包括如下处理过程:将抽象语法树中的节点划分为不同的特征单元;然后根据特征单元得到高维特征向量;计算所述特征单元映射到高维特征向量上的维度,具体地,首先将特征单元的节点类型作为字符串,然后对所述字符串应用哈希运算得到一个正整数值,如md5、sha1、sha128等,将所述正整数值作为所述特征单元映射到高维向量上的维数;最后计算所述特征单元在抽象语法树中的权重值,根据该权重值确定该特征单元在高维特征向量的维数上的实数值。
下面为根据网页JS代码构建抽象语法树的一个实例,其中包括根节点Program,根节点Program包括一个子节点为ExpressionStatement,ExpressionStatement又包括了一个子节点为CallExpression,CallExpression又包括了两个子节点,分别为ArrayExpression和MemberExpression,MemberExpression又包括了一个子节点为Identifier。
<Program>
<ExpressionStatement>
<CallExpression>
<ArrayExpression>
<MemberExpression>
<Identifier>
以上述JS代码实例对本发明的映射过程进行详细说明(CSS样式的处理方法与JS相同),将上述构建的抽象语法树中的不同节点划分为不同的特征单元;将特征单元的节点类型当作字符串,例如:第二层节点的特征单元为“ExpressionStatement”;再对该特征单元的字符串内容应用md5哈希运算,其哈希结果为:md5(“ExpressionStatement”)=64556525,因此,可以确定该特征单元“ExpressionStatement”映射到高维特征向量后所在的维数为第64556525维。
需要说明的是,上述特征单元的信息为语法分析后的节点类型字符串,在实际应用中,相关类型包括但不限于上述实例中出现的类型。
在确定了特征单元映射到高维特征向量中所在的维数后,根据权重计算规则确定所述特征单元在语法树中的权重值,并将其作为所述特征单元在高维向量上对应维数的权重值。具体地,该权重值代表了相应的特征单元在该网页(网页的语法树)中的重要程度,特征单元每次出现在语法树中都会被赋予一次权重,该特征单元最终的权重值是其每次出现在语法树中被赋予的权重值的累加。本发明主要根据两项规则计算特征单元的权重值,其一:所述特征单元的权重值随其在语法树中的深度递减,其二:特征单元的权重值随特征单元在兄弟节点(即同一父节点下的子节点)中的重复递减。且当特征单元在所述抽象语法树中深度过大时,忽略所述特征单元。
需要说明的是,在CSS样式或JS代码构建的抽象语法树中,越是内层的特征单元所代表的信息的内容差异对整个网页的改变并不明显,因此,在实际应用中可以以递减法的方式计算特征单元的权重,同时忽略在抽象语法树中深度大于10的特征单元。
在实际应用中,特征单元每次出现的权重由上述几个因素共同决定。
例如,上述实例中特征单元“ExpressionStatement”位于第二层,则其权重值应大于后续特征单元的权重值,可以将该特征单元的权重值预设为1.0,由于该特征单元在抽象语法树中的层数为2,则最终的权重值还需要乘以衰减因子(本发明设定衰减因子为0.5)的2次方。
需要说明的是,网页特征向量的权重值为浮点数类型。
在上述实例中,确定了特征单元“ExpressionStatement”在高维特征向量中的维数为64556525,该特征单元的权重值受该特征单元在抽象语法树中的深度影响。之后,便可以将最终计算得到的权重值作为高维特征向量的相应维数上的实数值。即,确定了高维特征向量第64556525维上的实数值。在实际应用中,需要对每个特征单元都进行上述处理,将其在抽象语法树中的权重值作为其在高维特征向量上对应维数上的实数值。
获得页面的高维特征向量后,需要将高维向量进行压缩得到低维向量,在实际应用中,由于对特征单元的信息进行哈希运算后得到的实数值较大,为了保证计算的效率,需要较小维数的特征向量。因此,在确定了网页抽象语法树的高维特征向量后,需要将高维特征向量向低维进行压缩。在本发明的实施例中采用维数取模、简单叠加的方法进行压缩来保证后续应用压缩后的网页特征向量来计算网页相似性的准确性。
下面对本发明实现高维特征向量往低维特征向量进行压缩的流程进行详细说明:
假定高维特征向量的维数为M,则现在需要将M维高维特征向量压缩成N维低维特征向量,其中N为大于等于1小于M的自然数,需要进行如下处理:
1、将M维高维向量上的每一维除以N(1<=N<M)后得到相应余数;
2、将所有余数相同的对应高维特征向量的维作为压缩后N维特征向量中的一个维;
3、将所有余数相同的对应高维特征向量的权重值叠加,叠加后的实数值作为N维特征向量中对应维的权重值。
例如,高维特征向量的维数为50000维,而最终希望得到一个128维的特征向量,因此需要对高维特征向量进行压缩,假设高维特征向量是[b1,b2,b3,……b50000],则压缩后的特征向量第一维的权重值为b1+b257+…+b49921,以此类推,实现高维向量向低维向量的压缩。
由此,可以得到动态渲染页面中JS的代码特征向量和CSS的样式特征向量。
步骤204(2):在获取网页特征向量后,根据预定算法计算网页相似度。距离计算算法可以包括欧式距离、杰卡德距离、汉明距离以及cos距离等。具体地,本发明实施例应用欧氏距离分别计算不同页面间JS代码特征向量间的距离D3与CSS样式特征向量间的距离D4,距离越小表示向量之间越相似,因此取D3和D4之间的更小值作为页面特征向量相似度。
步骤6:根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。其中,步骤6具体包括:
对所述模糊哈希值相似度进行降序排列,对所述页面特征向量相似度进行升序排列,来检测所述动态渲染页面与其他网页的相似度,且特征越相似的页面排在越前面。
需要说明的是,最后需根据网页间的向量相似度进行升序排列,模糊哈希相似度进行降序排列,以此来快速查找具有相似特征的网页。本发明主要应用于给定一个网页,需要查找与该网页特征相似的网页的情况,而且可以大大提高对相似网页检索效率。
本发明还提供了一种网页相似性检测系统,包括:
CSS文件和JS文件获取模块,用于获取动态渲染页面中的CSS文件和JS文件;
token序列生成模块,用于对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
模糊哈希值相似度计算模块,用于根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;
抽象语法树提取模块,用于对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
页面特征向量相似度计算模块,用于根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度;
相似度检测模块,用于根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。
本发明还提供了一种网页相似性计算装置,图3是本发明实施例的网页相似性检测装置的原理示意图,如图3所示,本发明的网页相似性检测装置包括:特征提取模块30和相似性计算模块31。下面对本发明实施例的增强型网页相似性计算装置进行说明。
具体地,特征提取模块30用于根据网页的JS、CSS代码提取页面的代码特征,具体包括:代码提取模块300、词法分析模块301(1)以及模糊哈希模块302(1);语法分析模块301(2)、特征向量计算模块(维数计算模块302(2)、权重计算模块303(2)以及降维模块304(2)。
其中,代码提取模块300用于识别页面中JS和CSS文件链接并进行下载,同时通过设置阈值为10000,过滤代码长度大于阈值的文件。
词法分析模块301(1)用于在代码提取模块300获取JS、CSS文件后,对获取的JS、CSS文件进行词法分析,从而获取token序列。
模糊哈希模块302(1)用于在词法分析模块301(1)对JS、CSS文件经过词法分析后,首先将每个JS文件解析后的token序列拼接为一个字符串;然后将页面中所有保留下来的JS文件解析后得到的字符串按次序串接为一个整体字符串;最后对该整体字符串进行模糊哈希运算,得到最终的哈希值作为页面JS文件哈希值特征。对CSS文件的解析方法如同JS文件,最终得到的CSS文件哈希值作为页面CSS文件哈希值特征。
语法分析模块301(2)用于在代码提取模块300获取JS、CSS文件后,对获取的JS、CSS文件进行语法分析,从而构建抽象语法树。
在语法分析模块301(2)对JS、CSS文件进行语法分析后,特征向量计算模块用于根据抽象语法树计算特征向量。
具体地,特征向量模块包括维数计算模块302(2)、权重计算模块303(2)以及降维模块304(2),其中,维数计算模块302(2)用于计算每个特征单元映射到高维向量上所在的维数;权重计算模块303(2)用于计算特征单元在抽象语法树中的权重值;降维模块304(2)用于将高维向量进行压缩得到低维特征向量,分别得到最终的代码特征向量和样式特征向量。
相似性计算模块31用于在特征提取模块30提取网页的页面特征后,相似性计算模块31具体包括:模糊哈希值相似度计算模块310(1)、向量相似度计算模块310(2)以及排序模块311。
其中,模糊哈希值相似度计算模块310(1)根据最终得到的页面哈希特征,分别计算不同页面间的JS页面哈希值相似度D1和CSS页面哈希值相似度D2,如果D1>D2,则选取D1作为不同网页哈希相似度。
向量相似度计算模块310(2)根据最终得到的网页特征向量,分别计算不同页面间的JS代码特征向量的距离D3和CSS样式特性向量的距离D4,如果D3<D4,则选取D3作为不同网页向量相似度。
排序模块311分别根据模糊哈希值相似度计算模块310(1)和向量相似度计算模块310(2)计算得到的相似度分别进行降序和升序排序,特征越相似的页面排在越前面,以此来查找具有相同特征的网页。
需要说明的是,上述分别根据模糊哈希值相似度计算模块310(1)与向量相似度计算模块310(2)得到的网页相似度所代表含义不同,模糊哈希值相似度计算模块310(1)中得到的网页相似度越大代表网页相似度越高;向量相似度计算模块310(2)中得到的网页相似度越小代表网页相似度越高。
综上所述,借助于本发明的技术方案,通过计算动态渲染网页特征的相似度,克服了现有技术中还不能够静态地计算动态渲染页面相似性的缺陷,实现快速计算相似的动态渲染页面。当发现某个恶意web应用时,可以通过查找具有相似代码特征向量的应用页面,发现所有具有相似页面特征的恶意web应用。
本发明提供的一种网页相似性检测方法及系统的有益效果在于:与现有技术相比,本发明的一种网页相似性检测方法,包括获取动态渲染页面中的CSS文件和JS文件;对CSS文件和JS文件进行词法分析得到动态渲染页面与其他网页的模糊哈希值相似度;对CSS文件和JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;根据CSS文件的抽象语法树和JS文件的抽象语法树得到动态渲染页面与其他网页的页面特征向量相似度;根据模糊哈希值相似度和页面特征向量相似度检测动态渲染页面与其他网页的相似度。本发明通过静态分析网页JS和CSS样式来获取动态渲染页面特征并基于此计算网页相似性,可以大大提高对相似网页的检测效率,克服了现有技术中不能够静态计算动态渲染页面相似性的缺陷。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种网页相似性检测方法,其特征在于,包括以下步骤:
步骤1:获取动态渲染页面中的CSS文件和JS文件;
步骤2:对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
步骤3:根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;
步骤4:对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
步骤5:根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度,所述步骤5:根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度,包括:
步骤5.1:将所述CSS文件的抽象语法树和所述JS文件的抽象语法树中的所有节点划分为不同的特征单元;
步骤5.2:根据所述特征单元得到高维特征向量;
步骤5.3:根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值,所述步骤5.3:根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值,包括:
按照权重值随所述特征单元在相应抽象语法树中的深度递减规则确定每一个特征单元在相应抽象语法树中的权重值;
步骤5.4:根据所述权重值将所述高维特征向量进行降维得到动态渲染页面中JS的代码特征向量和CSS的代码特征向量;
步骤5.5:根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度;
步骤6:根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。
2.如权利要求1所述的一种网页相似性检测方法,其特征在于,所述步骤1:获取动态渲染页面中的CSS文件和JS文件,包括:
步骤1.1:对所述动态渲染页面的HTML标签进行解析,获取后缀名为CSS的原始文件和后缀名为JS的原始文件;
步骤1.2:获取所述CSS的原始文件和所述JS的原始文件的代码长度并设定长度阈值;
步骤1.3:过滤所述CSS原始文件和所述JS的原始文件中所有代码长度大于长度阈值的相应原始文件,得到CSS文件和JS文件。
3.如权利要求1所述的一种网页相似性检测方法,其特征在于,所述步骤3:根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度,包括:
步骤3.1:将所述CSS文件token序列中的type类型拼接为第一字符串;
步骤3.2:将所述JS文件token序列中的type类型拼接为第二字符串;
步骤3.3:分别对所述第一字符串和所述第二字符串进行模糊哈希运算得到CSS文件页面哈希值特征和JS文件页面哈希值特征;
步骤3.4:根据所述CSS文件页面哈希值特征和所述JS文件页面哈希值特征得到所述动态渲染页面与其他网页的模糊哈希值相似度。
4.如权利要求3所述的一种网页相似性检测方法,其特征在于,所述步骤3.4:根据所述CSS文件页面哈希值特征和所述JS文件页面哈希值特征得到所述动态渲染页面与其他网页的模糊哈希值相似度,包括:
步骤3.4.1:利用模糊哈希算法计算所述CSS文件页面哈希值特征与其他网页的相应CSS文件页面哈希值特征的相似度生成第一相似度;
步骤3.4.2:利用模糊哈希算法计算所述JS文件页面哈希值特征与其他网页的相应JS文件页面哈希值特征的相似度生成第二相似度;
步骤3.4.3:取所述第一相似度和所述第二相似度之间的最大值作为所述动态渲染页面与其他网页的模糊哈希值相似度。
5.如权利要求1所述的一种网页相似性检测方法,其特征在于,所述步骤5.5:根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度,包括:
步骤5.5.1:计算所述JS的代码特征向量与其他网页的相应JS的代码特征向量之间的第一距离;
步骤5.5.2:计算所述CSS的代码特征向量与其他网页的相应CSS的代码特征向量之间的第二距离;
步骤5.5.3:取所述第一距离和所述第二距离之间的最小值作为所述动态渲染页面与其他网页的页面特征向量相似度。
6.如权利要求1所述的一种网页相似性检测方法,其特征在于,所述步骤6:根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度,包括:
对所述模糊哈希值相似度进行降序排列,对所述页面特征向量相似度进行升序排列,来检测所述动态渲染页面与其他网页的相似度。
7.一种网页相似性检测系统,其特征在于,包括:
CSS文件和JS文件获取模块,用于获取动态渲染页面中的CSS文件和JS文件;
token序列生成模块,用于对所述CSS文件和所述JS文件进行词法分析生成CSS文件token序列和JS文件token序列;
模糊哈希值相似度计算模块,用于根据所述CSS文件token序列和所述JS文件token序列得到所述动态渲染页面与其他网页的模糊哈希值相似度;
抽象语法树提取模块,用于对所述CSS文件和所述JS文件进行语法分析构建CSS文件的抽象语法树和JS文件的抽象语法树;
页面特征向量相似度计算模块,用于根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度;
相似度检测模块,用于根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度;
根据所述CSS文件的抽象语法树和所述JS文件的抽象语法树得到所述动态渲染页面与其他网页的页面特征向量相似度,包括:
将所述CSS文件的抽象语法树和所述JS文件的抽象语法树中的所有节点划分为不同的特征单元;
根据所述特征单元得到高维特征向量;
根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值,根据预设权重计算规则确定所述特征单元在抽象语法树中的权重值,包括:
按照权重值随所述特征单元在相应抽象语法树中的深度递减规则确定每一个特征单元在相应抽象语法树中的权重值;
根据所述权重值将所述高维特征向量进行降维得到动态渲染页面中JS的代码特征向量和CSS的代码特征向量;
根据所述JS的代码特征向量和所述CSS的代码特征向量得到所述动态渲染页面与其他网页的页面特征向量相似度;
根据所述模糊哈希值相似度和所述页面特征向量相似度检测所述动态渲染页面与其他网页的相似度。
CN202110891633.6A 2021-08-04 2021-08-04 一种网页相似性检测方法及系统 Active CN113609246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110891633.6A CN113609246B (zh) 2021-08-04 2021-08-04 一种网页相似性检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110891633.6A CN113609246B (zh) 2021-08-04 2021-08-04 一种网页相似性检测方法及系统

Publications (2)

Publication Number Publication Date
CN113609246A CN113609246A (zh) 2021-11-05
CN113609246B true CN113609246B (zh) 2024-04-12

Family

ID=78339499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110891633.6A Active CN113609246B (zh) 2021-08-04 2021-08-04 一种网页相似性检测方法及系统

Country Status (1)

Country Link
CN (1) CN113609246B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114372267B (zh) * 2021-11-12 2024-05-28 哈尔滨工业大学 一种基于静态域的恶意网页识别检测方法、计算机及存储介质
CN115687736B (zh) * 2022-12-30 2023-04-14 北京长亭未来科技有限公司 一种web应用的搜索方法、装置及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811213A (zh) * 2011-11-23 2012-12-05 北京安天电子设备有限公司 基于模糊哈希算法的恶意代码检测系统及方法
CN103761483A (zh) * 2014-01-27 2014-04-30 百度在线网络技术(北京)有限公司 恶意代码的检测方法及装置
CN107204960A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 网页识别方法及装置、服务器
CN109445834A (zh) * 2018-10-30 2019-03-08 北京计算机技术及应用研究所 基于抽象语法树的程序代码相似性快速比较方法
CN110502897A (zh) * 2018-05-16 2019-11-26 南京大学 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法
CN110515838A (zh) * 2019-07-31 2019-11-29 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于主题模型软件缺陷检测的方法和系统
CN110795731A (zh) * 2019-10-09 2020-02-14 新华三信息安全技术有限公司 一种页面检测方法及装置
CN111290784A (zh) * 2020-01-21 2020-06-16 北京航空航天大学 适用于大规模样本的程序源代码相似度检测方法
CN112507337A (zh) * 2020-12-18 2021-03-16 四川长虹电器股份有限公司 基于语义分析的恶意JavaScript代码检测模型的实现方法
CN112596708A (zh) * 2020-12-16 2021-04-02 平安普惠企业管理有限公司 网页页面生成方法、装置、计算机设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811213A (zh) * 2011-11-23 2012-12-05 北京安天电子设备有限公司 基于模糊哈希算法的恶意代码检测系统及方法
CN103761483A (zh) * 2014-01-27 2014-04-30 百度在线网络技术(北京)有限公司 恶意代码的检测方法及装置
CN107204960A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 网页识别方法及装置、服务器
CN110502897A (zh) * 2018-05-16 2019-11-26 南京大学 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法
CN109445834A (zh) * 2018-10-30 2019-03-08 北京计算机技术及应用研究所 基于抽象语法树的程序代码相似性快速比较方法
CN110515838A (zh) * 2019-07-31 2019-11-29 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于主题模型软件缺陷检测的方法和系统
CN110795731A (zh) * 2019-10-09 2020-02-14 新华三信息安全技术有限公司 一种页面检测方法及装置
CN111290784A (zh) * 2020-01-21 2020-06-16 北京航空航天大学 适用于大规模样本的程序源代码相似度检测方法
CN112596708A (zh) * 2020-12-16 2021-04-02 平安普惠企业管理有限公司 网页页面生成方法、装置、计算机设备和存储介质
CN112507337A (zh) * 2020-12-18 2021-03-16 四川长虹电器股份有限公司 基于语义分析的恶意JavaScript代码检测模型的实现方法

Also Published As

Publication number Publication date
CN113609246A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
US10061753B2 (en) Systems and methods for content extraction from a mark-up language text accessible at an internet domain
US7941420B2 (en) Method for organizing structurally similar web pages from a web site
CN113609246B (zh) 一种网页相似性检测方法及系统
CN111079043B (zh) 一种关键内容定位方法
Li et al. Markuplm: Pre-training of text and markup language for visually-rich document understanding
CN111625659A (zh) 知识图谱处理方法、装置、服务器及存储介质
Mills et al. Graph-based methods for natural language processing and understanding—A survey and analysis
CN109344355B (zh) 针对网页变化的自动回归检测与块匹配自适应方法和装置
Meuschke et al. Improving academic plagiarism detection for STEM documents by analyzing mathematical content and citations
CN107862039B (zh) 网页数据获取方法、系统和数据匹配推送方法
CN112667940B (zh) 基于深度学习的网页正文抽取方法
Evert A Lightweight and Efficient Tool for Cleaning Web Pages.
CN112580331A (zh) 政策文本的知识图谱构建方法及系统
JP3832693B2 (ja) 構造化文書検索表示方法及び装置
US9720896B1 (en) Synthesizing union tables from the web
CN104778232A (zh) 一种基于长查询的搜索结果的优化方法和装置
Alpuente et al. A visual technique for web pages comparison
CN102768661A (zh) 从多个网页中抽取对象和网页的方法和设备
Saravanan et al. Extraction of Core Web Content from Web Pages using Noise Elimination.
Dianati et al. Words stemming based on structural and semantic similarity
Bevendorff et al. An Empirical Comparison of Web Content Extraction Algorithms
Hong et al. ViWER-data extraction for search engine results pages using visual cue and DOM Tree
Nghiem et al. Automatic approach to understanding mathematical expressions using mathml parallel markup corpora
Selivanov et al. Package ‘text2vec’
CN112328246A (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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 201100 floor 3, building 3, No. 2555, Hechuan Road, Minhang District, Shanghai

Applicant after: Qi'an Pangu (Shanghai) Information Technology Co.,Ltd.

Address before: 201103 3rd floor, building 3, 2555 Hechuan Road, Minhang District, Shanghai

Applicant before: SHANGHAI BENZHONG INFORMATION TECHNOLOGY Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant