CN116127236A - 基于并行结构的网页web组件识别方法及装置 - Google Patents
基于并行结构的网页web组件识别方法及装置 Download PDFInfo
- Publication number
- CN116127236A CN116127236A CN202310419786.XA CN202310419786A CN116127236A CN 116127236 A CN116127236 A CN 116127236A CN 202310419786 A CN202310419786 A CN 202310419786A CN 116127236 A CN116127236 A CN 116127236A
- Authority
- CN
- China
- Prior art keywords
- web
- information
- component
- response information
- model
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于并行结构的网页web组件识别方法及装置,属于计算机技术领域,该方法包括:获取待识别的web响应信息;将所述web响应信息进行特征转换,得到特征向量;基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;其中,识别模型包括多个子模型,模型训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于并行结构的网页web组件识别方法及装置。
背景技术
网页(web)指纹识别是对网站进行组件识别,例如识别网站使用的框架,web前端框架,web前端语言等,web指纹识别借助已有的web指纹信息,通过与目标web对象的相关特征进行比对从而识别出该web对象的服务组件相关信息。进一步,还可以将服务组件相关信息与相关漏洞关联进行漏洞检测或是安全预警。
由于计算机技术的快速发展,为了能提供给客户更好的体验,web指纹中可能会包含多种组件,越来越多的网站和应用的出现,代表越来越多的组件类型和组件的出现。因此,如何准确地识别web组件是本领域技术人员需要解决的问题。
发明内容
本发明提供一种基于并行结构的网页web组件识别方法及装置,用以实现准确地识别web组件。
本发明提供一种基于并行结构的网页web组件识别方法,包括:
获取待识别的web响应信息;
将所述web响应信息进行特征转换,得到特征向量;
基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
根据本发明提供的一种基于并行结构的网页web组件识别方法,所述将所述web响应信息进行特征转换,得到特征向量,包括:
提取所述web响应信息的关键词;
根据所述关键词在所述web响应信息中出现的次数,以及语料库中包括所述关键词的web响应信息的数量,确定所述web响应信息的特征向量;所述语料库为包括所述待识别的web响应信息和训练数据的web响应信息的语料库。
根据本发明提供的一种基于并行结构的网页web组件识别方法,所述提取所述web响应信息的关键词之前,还包括:
对所述web响应信息进行网页解析处理,得到文本信息;
对所述文本信息进行预处理,得到预处理后的文本信息;
对所述预处理后的文本信息,进行分词处理。
根据本发明提供的一种基于并行结构的网页web组件识别方法,对所述文本信息进行预处理,包括以下至少一项:
对所述文本信息中的英文大写字符转换为小写字符;
对所述文本信息的格式进行统一化处理;
剔除所述文本信息中的停用词。
根据本发明提供的一种基于并行结构的网页web组件识别方法,在对所述识别模型进行训练之前,所述方法还包括:
针对任一所述标签信息,将所述标签信息拆分为至少一个所述组件类型各自对应的组件信息;
针对任一所述组件类型,对所述组件类型对应的组件信息进行去重处理,得到所述组件类型的标签向量维度以及组件列表。
根据每个所述标签信息中的所述组件类型对应的标签向量维度和所述组件列表,得到每个所述标签信息中所述组件类型对应的标签向量。
根据本发明提供的一种基于并行结构的网页web组件识别方法,所述方法还包括:
针对任一子模型,将训练数据中web响应信息对应的特征向量和所述子模型对应的组件类型的标签向量输入到所述子模型中进行训练;所述子模型的数量与所述组件类型的数量相同。
根据本发明提供的一种基于并行结构的网页web组件识别方法,所述子模型为基于集成学习模型建立的。
本发明还提供一种基于并行结构的网页web组件识别装置,包括:
获取模块,用于获取待识别的web响应信息;
处理模块,用于将所述web响应信息进行特征转换,得到特征向量;
所述处理模块,还用于基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于并行结构的网页web组件识别方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于并行结构的网页web组件识别方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于并行结构的网页web组件识别方法。
本发明提供的基于并行结构的网页web组件识别方法及装置,通过将待识别的web响应信息进行特征转换,得到特征向量;基于特征向量和识别模型,确定web响应信息包括的web组件;其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,标签信息为web组件信息,由于每个子模型为基于web响应信息和每个子模型对应的组件类型的标签信息进行训练得到的,因此,避免了由于训练数据的组件类型分布不均匀导致的识别结果不准确的问题,而且识别模型由多个子模型组成,可以识别多种组件类型的信息,因此,基于训练得到的识别模型确定web响应信息包括的web组件,得出的结果较为准确和全面。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于并行结构的网页web组件识别方法的流程示意图之一;
图2是本发明提供的基于并行结构的网页web组件识别方法的模型训练原理示意图之一;
图3是本发明提供的基于并行结构的网页web组件识别方法的模型训练原理示意图之二;
图4是本发明提供的基于并行结构的网页web组件识别装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明实施例中涉及的相关名词进行介绍:
停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为停用词。比如'the'、'is'、'at'、'which'、'on'等。
一个标签信息与一条响应信息对应,一个标签信息包括多个组件类型的组件信息,组件信息包括组件名称和/或版本信息。
组件列表为多个标签信息中某一组件类型所有组件信息去重后的组件信息;
标签向量维度为组件列表的长度。
下面结合图1-图5以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明实施例提供的基于并行结构的网页web组件识别方法的流程示意图之一,如图1所示,该方法包括:
步骤101、获取待识别的web响应信息;
步骤102、将web响应信息进行特征转换,得到特征向量;
具体的,例如提取web响应信息中的关键词,基于关键词得到特征向量,该特征向量的每个元素例如可以基于关键词在该响应信息中出现的次数,以及语料库中包括该关键词的web响应信息的数量等计算得到。某个词对于某个文本的重要性随着它在该文本中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。如果某个单词在一个文本中出现的词频高,并且在其他文本中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类或识别。
步骤103、基于特征向量和识别模型,确定web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个子模型为基于web响应信息和每个子模型对应的组件类型的标签信息进行训练得到的,标签信息为web组件信息。
具体的,web组件类型包括web服务器(web_server)、中间件(web_middleware)、web前端框架(web_frameworks)、web前端语言(web_language)、UI界面(ui_lib)、web应用(web_app)、容器(web_container)、内容分发网络(Content Delivery Network,CDN)等。
将待识别的响应信息对应的特征向量输入训练得到的识别模型,即可以确定出响应信息包括的web组件。
其中,识别模型包括多个子模型,每个子模型为基于web响应信息和每个子模型对应的组件类型的标签信息进行训练得到的,标签信息为web组件信息,即通过有监督训练得到的。
例如组件类型为8种,子模型可以是8个,子模型和组件类型一一对应,针对任一子模型可以基于训练数据中的web响应信息和训练数据中该子模型对应的组件类型的标签信息进行训练得到的。
本实施例的方法,通过将待识别的web响应信息进行特征转换,得到特征向量;基于特征向量和识别模型,确定web响应信息包括的web组件;其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,标签信息为web组件信息,由于每个子模型为基于web响应信息和每个子模型对应的组件类型的标签信息进行训练得到的,因此,避免了由于训练数据的组件类型分布不均匀导致的识别结果不准确的问题,而且识别模型由多个子模型组成,可以识别多种组件类型的信息,因此,基于训练得到的识别模型确定web响应信息包括的web组件,得出的结果较为准确和全面。
可选地,步骤102之前,还包括:
对web响应信息进行网页解析处理,得到文本信息;
对文本信息进行预处理,得到预处理后的文本信息;
对预处理后的文本信息,进行分词处理。
其中,对所述文本信息进行预处理,包括以下至少一项:
对文本信息中的英文大写字符转换为小写字符;
对文本信息的格式进行统一化处理;
剔除文本信息中的停用词。
具体的,为了便于对web响应信息进行关键词提取,首先进行网页解析处理,获取文本信息,首先对其中的关键属性信息进行提取,通常提取的关键属性信息有title、meta、script、link等属性,因为在这些属性中存在隐藏的组件信息。其中web响应信息包括响应头和目标网站的响应体相关文本信息,可选地,使用网页解析的text函数获取响应体中的文本信息,即获取响应体的文本内容。
对于文本信息的预处理,由于英文单词有大小写之分,例如期望统计时“Bootstrap”和“bootstrap”是一个词,因此一般需要将所有的词都转化为小写;由于多个‘\r,,\t’等特殊符号的存在导致文本格式差异较大,过滤这些特殊字符将文本格式统一,即进行格式统一化处理;在文本中有很多无效的停用词,比如“a”,“to”,“is”等一些短词,或一些标点符号,不需要在文本分析的时候引入,因此需要去掉,因此对文本再去除停用词;分词是将文本中的句子根据单词拆分开,便于机器理解。
上述实施方式中,在对响应信息进行特征转换之前,对响应信息进行文本信息提取,以及一些预处理,使得特征转换更加简单,效率更高,而且准确性更高,使得最终的模型识别结果更加准确。
可选地,步骤102可以通过如下方式实现:
提取web响应信息的关键词;
根据关键词在所述web响应信息中出现的次数,以及语料库中包括所述关键词的web响应信息的数量,确定所述web响应信息的特征向量;所述语料库为包括所述待识别的web响应信息和训练数据中的web响应信息的语料库。
可选地,响应信息的特征向量计算可选择一种文本向量表示方式,例如包括词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)、词向量化(word2vec)、词嵌入(embedding)等。本发明通过以下公式(1)、(2)和(3)计算所述web响应信息的特征向量中每个所述关键词对应的向量元素;
(1)
(2)
(3)
其中,每个所述关键词对应的向量元素为TF-IDF值,n1表示所述关键词在所述web响应信息中出现的次数,n2表示所述web响应信息包括的所有关键词出现的总数量;m1表示语料库中的web响应信息总数,m2表示所述语料库中包含所述关键词的web响应信息的数量。
具体的,对于响应信息的文本信息的特征向量的提取使用TF-IDF方法,其中用来计算的词频(TF)和逆文档频率(IDF)以及词频-逆向文件频率公式分别如公式(1),(2),(3)所示,通过公式(1),(2),(3)可计算出每条响应信息中的关键词对应的TF-IDF,可根据关键词来区分文本。
TF-IDF用于评估一个词对于一个文件集或一个语料库中的其中一份文件的重要程度。词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。如果某个单词在一个文本中出现的词频(TF)高,并且在其他文本中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类或识别。因此,通过TF-IDF表示特征向量的元素,能够得到较好的模型性能,即模型输出结果的准确性更高。
可选地,训练过程中,首先进行数据采集,通过某资产平台进行不同组件类型的响应信息以及标签信息的收集,获取所需的响应信息和标签信息。其中响应信息包括响应头和目标网站的响应体相关文本信息,标签信息包括组件名称和/或组件版本信息。
将采集的响应信息和标签信息划分为训练集与测试集,划分后分别对训练集与测试集中的响应信息以及标签信息进行预处理,例如,格式统一化处理、剔除停用词等。
进一步,将响应信息以及标签信息进行特征转换,将响应信息使用TF-IDF算法进行特征转换,即对于响应信息的文本信息使用TF-IDF算法进行特征转换,得到特征向量,该特征向量的每个元素表示响应信息中关键词对应的TF-IDF值,即词频TF与逆文档频率IDF之积。
可选地,对于标签信息的特征向量的转换,可以采用如下方式:
针对任一所述标签信息,将所述标签信息拆分为至少一个所述组件类型各自对应的组件信息;
针对任一所述组件类型,对所述组件类型对应的组件信息进行去重处理,得到所述组件类型的标签向量维度以及组件列表。
根据每个所述标签信息中的所述组件类型对应的标签向量维度和所述组件列表,得到每个所述标签信息中所述组件类型对应的标签向量。
例如先获取多个标签信息中上述8种类型中的其中某种组件类型,统计训练集中的某种组件类型的所有组件信息,也就是组件名称以及版本信息,对所有组件信息进行合并去重之后的组件信息(如组件名称)的数量作为训练集标签的维度n,去重后的组件以及版本信息作为组件列表,通过组件列表将标签信息转换为只包含0、1的标签向量。其中首先创建维度n的标签向量,初始化标签向量的所有元素值为0,将某一条标签信息对应的多个web组件以及版本信息,在该组件类型对应的组件列表中找到对应的index,将上述创建的标签向量中index对应的元素值设置为1,其余为0,得到针对该组件类型,标签信息对应的标签向量。例如,合并去重之后得到的组件列表为[apache, nginx,nginx/1.5.8,microsoft iis/8.5],其中,nginx/1.5.8中nginx表示web组件,1.5.8表示版本信息,标签维度为4,针对某个标签信息,假设该标签信息包括组件类型web_server的组件信息,组件信息包括{“web_server”:[nginx/1.5.8, apache]},那么标签向量为[1,0,1,0]。其他组件类型的标签向量转换方式相同。
模型训练:由于组件信息在客观上存在常用组件和不常用组件,因此,数据采集可能会存在数据不平衡的问题。为了缓解数据不平衡带来的过拟合问题,可以选择集成学习模型进行训练,至少选择集成学习模型中的一种,包括优化的分布式梯度增强库(eXtremeGradient Boosting,XGBoost)、随机森林、梯度下降树(Gradient Boosting DecisionTree,GDBT)等。本发明选择工程化的XGBoost集成学习模型作为子模型。
可选地,针对任一子模型,将训练数据中web响应信息对应的特征向量和所述子模型对应的组件类型的标签向量输入到所述子模型中进行训练;所述子模型的数量与所述组件类型的数量相同。
具体的,将训练集的响应信息的特征向量和某一种组件类型的标签向量输入到该组件类型对应的集成学习模型中进行训练构成并行模型的一个分支,例如,web组件被划分为8种组件类型,将以同样的方式训练8个子模型,最终形成并行结构模型,使得模型的输出结果的准确性较高。
例如,对于响应信息1的特征向量,响应信息1对应的标签信息1,获取标签信息1中组件类型1对应的组件信息转换的标签向量,将多个响应信息1的特征向量,以及多个标签信息1中组件类型1对应的标签向量输入组件类型1对应的子模型中进行训练。
对于web组件识别来说,识别出的组件信息越多越准确,就能够更全面和准确的进行漏洞检测以及安全预警。
模型预测:将测试集的响应信息以及标签信息进行数据预处理及特征转换,再将响应信息的特征向量和某一种组件类型的标签向量输入到对应的子模型分支中进行预测,每个子模型分支的预测结果与标签向量进行对比计算准确率,然后综合并行结构模型的预测结果进行准确率的计算。
示例性地,采用并行结构模型进行web组件识别,首先,通过数据采集模块从某资产平台上采集目标网站的响应信息和标签信息,其中响应信息包括响应头和目标网站的响应体相关文本信息,标签信息包括组件类型以及版本信息。例如,共采集50000条数据,其中40000条为训练数据集,其余10000条为测试数据集,其中采集一条目标数据如下所示,其中涉及到公司具体名称、位置使用“公司名称”代替:
{domain: "testssl.healthcare-inc.com",
protocol: "tcp",
asn: "AS4808",
port: 443,
city: "北京",
province: "北京",
cpes: ["cpe:/a:igor_sysoev:nginx:1.5.8"],
status: "up",
provider: "ipipnet",
country_name: "中国",
organization: "China Unicom Beijing Province Network",
org: "ibreathcare.com",
data: {body: "<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>公司名称</title>
<meta name=\"Resource-type\" content=\"Document\" /> ……
<script src=\"https://staticssl.healthcare-inc.com/defat/jquery-2.2.4.min.js\"></script>
<script src=\"https://staticssl.healthcare-inc.com/suomao/bootstrap.min.js\"></script>
<script src=\"https://staticssl.healthcare-inc.com/suomao/jquery-ui.min.js\"></script>
<script type=\"text/javascript\" src=\"js/jquery.fullPage.min.js\"></script>
<script>
protocol: "tcp",
cert_serial: "03fcdb7ec6ab0de9c3de496fa0666302e14f",
header: "HTTP/1.1 200 OK
Server: nginx/1.5.8
Date: Thu, 02 Jun 2022 23:05:12 GMT
Content-Type: text/html
Last-Modified: Thu, 20 Jan 2022 04:59:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Content-Encoding: gzip",
ssl_text: "ssl.cipher.version : TLSv1.2 ……",
port: 443,
web: {web_server: [{version: "1.5.8",name: "Nginx"}],frontend:[{version: "",name: "Bootstrap"}],links: [],ui_lib: [{version: "",name: "jQuery UI"},{version: "2.2.4",name: "jQuery"},{version: "",name: "animate.css"}],robots: "",web_frameworks: [{version: "",name: "animate.css"},{version: "",name: "Bootstrap"},{version: "",name: "jQuery"}],web_lang: [],web_container: []},
service: "https",
title: "公司名称",
cert_expiredate: "2022-07-30T15:03:32.189507+8:00",
tunnel: "ssl",
server: "nginx/1.5.8",
is_ipv6: false,
os: "",
isp: "联通",
mask: "",
ip_str: "120.132.61.32",……}
如图3所式,数据预处理,先将采集的信息划分为训练集与测试集,划分数据后分别对响应信息进行预处理、对组件类型信息进行预处理。
响应信息预处理中包括对响应体进行网页解析,对解析后的所有文本信息进行英文字符的大写转换为小写,剔除特殊字符和停用词并进行分词。
对响应信息中的响应体进行网页解析,对其中的关键属性信息进行提取,通常提取的关键属性信息有title、meta、script、link等,因为在这些关键词中存在隐藏的组件信息。具体的解析是指使用网页解析的text函数获取响应体中的文本信息,即对目标数据进行响应体的文本内容获取。字典数据中的data中包含响应信息中的响应体(body)和响应头(header)内容,由于实例数据中的响应体内容过多,在此只展示部分重要的信息进行分析。对于关键属性信息的内容展示:
<!DOCTYPE html>\r<html lang=\"en\">\r\r<head>\r\t<metahttp-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\t<title> 公司名称</title>\r\t<meta name=\"Resource-type\"
可以上述部分内容看出title属性中存在公司名称信息。
<link rel=\"shortcut icon\" href=\"images/icon.png\">\r\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/jquery.fullPage.css\" />\r\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\" />\r\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/animate.css\" />\r\t<link rel=\"stylesheet\" href=\"https://staticssl.healthcare-inc.com/suomao/bootstrap.min.css\">\r\t<link rel=\"stylesheet\" href=\"css/header.css\">
从上述内容可以看出link属性中存在jquery、animate、bootstrap组件信息。
<script
src=\"https://staticssl.healthcare-inc.com/defat/jquery-2.2.4.min.js\">
</script>\r\t<script
src=\"https://staticssl.healthcare-inc.com/suomao/bootstrap.min.
js\"></script>\r\t<script
src=\"https://staticssl.healthcare-inc.com/suomao/jquery-
ui.min.js\"></script>\r\t<script type=\"text/javascript\" src=\"js/jquery.fullPage.min.
js\"
从上述内容可以看出script属性中存在jquery、bootstrap组件信息且jquery包含其版本信息2.2.4。
对于响应信息的预处理,首先通过对响应体关键属性信息的获取;其次使用text函数获取相应的文本;由于英文单词有大小写之分,例如期望统计时“Bootstrap”和“bootstrap”是一个词,因此一般需要将所有的词都转化为小写;由于多个‘\r,,\t’等特殊符号的存在导致文本格式差异较大,过滤这些特殊字符将文本格式统一;在文本中有很多无效的停用词,比如“a”,“to”,“is”等一些短词,或一些标点符号,不需要在文本分析的时候引入,因此需要去掉,因此对文本再去除停用词;分词是将文本中的句子根据单词拆分开,便于机器理解。
综上所述对于响应信息的解析结果为:
http/1.1 200 ok, server: nginx/1.5.8, date: thu, 02 jun 2022 23:05:12gmt, content-type: text/html, last-modified: thu, 20 jan 2022 04:59:06 gmt,transfer-encoding: chunked, connection: keep-alive, content-encoding: gzip,公司名称, http-equiv: content-type, content: text/html; charset=utf-8, name:resource-type, content: document, content: width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, name: viewport, name: description,property: og:title, content:公司名称, property: og:image, content: https://staticssl.healthcare-inc.com/suomao/logo.png, property: og:url, content:healthcare-inc.com,src: https://staticssl.healthcare-inc.com/defat/jquery-2.2.4.min.js, src: https://staticssl.healthcare-inc.com/suomao/bootstrap.min.js, src: https://staticssl.healthcare-inc.com/suomao/jquery-ui.min.js, type: text/javascript, src: js/jquery.fullpage.min.js, src:https://www.***tagmanager.com/gtag/js?id=g-lxz4hvd2cy, src: js/header.js,type: text/javascript,sonmol<!--global site tag(gtag.js) - *** analytics-->:20164-a.b.c :[email protected] :400-8217-403。
组件类型信息的预处理包括将组件信息划分为8种类型,分别是web服务器(web_server)、中间件(web_middleware)、web前端框架(web_frameworks)、web前端语言(web_language)、UI界面(ui_lib)、web应用(web_app)、容器(container)、CDN(cdn)。以字典的形式存储。
例如,web字段中包含组件详细信息,web: {web_server: [{version: "1.5.8",name: "Nginx"}],frontend: [{version: "",name: "Bootstrap"}],links: [],ui_lib: [{version: "",name: "jQuery UI"},{version: "2.2.4",name: "jQuery"},{version: "",name: "animate.css"}],robots: "",web_frameworks: [{version: "",name: "animate.css"},{version: "",name: "Bootstrap"},{version: "",name: "jQuery"}],web_lang: [],web_container: []},对以上信息进行解析将组件和版本信息以”/”形式进行组合,如:web_server: {version: "1.5.8",name: "nginx"},将转换为字典形式为{web_server:['nginx/1.5.8']},其他组件的转换同上。本实施例中组件信息转换后的结果为{'web_server': ['nginx/1.5.8'], 'web_middleware': [], 'web_frameworks': ['animate.css' ,'bootstrap', 'jquery'], 'web_lang': [], 'web_app': [], 'cdn': [], 'ui_lib': ['jquery', 'jquery/2.2.4', 'animat.css'], 'web_container': []}
特征转换:特征转换中包括对于响应信息的特征转换以及标签信息的特征转换。
对于响应信息的文本信息的特征向量的提取使用TF-IDF方法,其中用来计算的词频(TF)和逆文档频率(IDF)以及词频-逆向文件频率公式分别如下(1),(2),(3)所示,通过公式(1),(2),(3)可计算出每条响应信息中的关键词对应的TF-IDF,可根据关键词来区分文本:
(1)
(2)
(3)
其中,n1表示所述关键词在所述web响应信息中出现的次数,n2表示所述web响应信息包括的所有关键词出现的总数量;m1表示语料库中的web响应信息总数,m2表示所述语料库中包含所述关键词的web响应信息的数量。
对于组件信息的特征转换过程,首先获取组件类型,例如上述8种组件类型中的一种,统计训练集中的该组件类型对应的所有组件信息,也就是组件名称以及版本信息,对所有组件信息进行合并去重之后的数量就是标签向量的维度,将标签向量的维度记为n,将标签信息转换为只包含0、1的标签向量,其中包含某个组件,某个组件所对应的标签向量的index的元素值为1,其余为0。例如:选择web_server组件类型统计后有apache, nginx,nginx/1.5.8,apache,microsoft iis/8.5,合并去重之后为[apache, nginx,nginx/1.5.8, microsoft iis/8.5],标签维度为4,例如对于某个标签信息中的web_server类型的组件为{“web_server”:[nginx/1.5.8]},那么web_server类型对应的标签向量为[0,0,1,0]。例如对于某个标签信息{“web_server”:[“apache, nginx,nginx/1.5.8”]},那么web_server类型对应的的标签向量为[1,1,1,0]。其他组件类型的标签向量转换同上。
模型训练,为了缓解数据不平衡带来的过拟合问题,选择集成学习模型进行训练,例如可以选择工程化的XGBoost集成学习模型作为子模型。
可选地,所述子模型为基于集成学习模型建立的,所述集成学习模型包括多个树模型,在训练所述子模型过程中后一个树模型的输入包括前一个树模型的误差。
具体的,XGBoost模型使用多个弱分类器进行累加为一个强分类器,第一个弱分类器拟合样本数据的误差将作为第二个弱分类器的输入继续进行拟合,以此类推,经过迭代来减小数据拟合的误差,使分类器的预测准确率更高,即最终的识别模型的准确率更高。训练过程如图2所示。
将训练集的响应信息的特征向量和组件类型对应的标签向量输入到XGBoost模型中进行训练,其中XGBoost模型包括多个树模型(例如k个),是我们需要拟合的数据,代表每个树的参数,最终通过若干弱分类器进行累加为一个强分类器。以此XGBoost模型构建并行的识别模型进行训练以及后续的模型评估。其中一个XGBoost模型的输入是响应信息的特征向量集和某一类组件类型的标签向量集,上述将组件拆分为8个类型,并行的识别模型中将有8个子模型同时进行训练。
模型预测:将测试集的响应信息以及标签信息进行数据预处理及特征转换,再将响应信息的特征向量和某一种组件类型的标签向量输入到对应的分支中进行预测,每个分支的预测结果与标签向量进行对比计算准确率,然后综合并行结构模型的预测结果进行准确率的计算。
假设预测结果为{'web_server': ['nginx/1.5.8'], 'web_middleware': [], 'web_frameworks': ['bootstrap', 'jquery'], 'web_lang': [], 'web_app': [], 'cdn': [], 'ui_lib': ['jquery'], 'web_container': []}
真实的标签为{'web_server': ['nginx/1.5.8'], 'web_middleware': [], 'web_frameworks': ['animate.css' ,'bootstrap', 'jquery'], 'web_lang': [], 'web_app': [], 'cdn': [], 'ui_lib': ['jquery', 'jquery/2.2.4', 'animat.css'],'web_container': []}
从预测结果和真实的组件信息可以看出本发明实施例构建的并行结构的模型能够预测出不同组件类型的组件信息,并且还能够预测出一个组件类型中的多个组件信息,因此本发明实施例的方法能够预测出更全面的组件信息。
基于测试结果得到单个并行分支的准确率分别为:web_server:96.31%, web_middleware:98.7%, web_frameworks:95.35%, web_language:96.05%, web_app:99.96%,cdn:99.95%,ui_lib:95.94%, web_container:99.86%。
基于测试结果得到狭义的模型准确率为89.2%,表示一条文本信息的8个组件类型信息预测结果与真实数据完全一样为预测正确的情况;广义的模型准确率91.81%,表示一条文本信息的8个组件类型信息预测结果不全,但预测的结果为真实标签中的部分正确的情况。
通过上述实例以及web组件识别结果表明,本发明实施例的方法能够全面准确的识别web组件信息。
下面对本发明提供的基于并行结构的网页web组件识别装置进行描述,下文描述的基于并行结构的网页web组件识别装置与上文描述的基于并行结构的网页web组件识别方法可相互对应参照。
图4是本发明提供的基于并行结构的网页web组件识别装置的结构示意图。如图4所示,本实施例提供的基于并行结构的网页web组件识别装置,包括:
获取模块210,用于获取待识别的web响应信息;
处理模块220,用于将所述web响应信息进行特征转换,得到特征向量;
所述处理模块220,还用于基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
可选地,所述处理模块220,具体用于:
提取所述web响应信息的关键词;
根据所述关键词在所述web响应信息中出现的次数,以及语料库中包括所述关键词的web响应信息的数量,确定所述web响应信息的特征向量;所述语料库为包括所述待识别的web响应信息和训练数据的web响应信息的语料库。
可选地,所述处理模块220,还用于:
对所述web响应信息进行网页解析处理,得到文本信息;
对所述文本信息进行预处理,得到预处理后的文本信息;
对所述预处理后的文本信息,进行分词处理。
可选地,所述处理模块220,具体用于执行以下至少一项:
对所述文本信息中的英文大写字符转换为小写字符;
对所述文本信息的格式进行统一化处理;
剔除所述文本信息中的停用词。
可选地,所述处理模块220,还用于:
针对任一所述标签信息,将所述标签信息拆分为至少一个所述组件类型各自对应的组件信息;
针对任一所述组件类型,对所述组件类型对应的组件信息进行去重处理,得到所述组件类型的标签向量维度以及组件列表。
根据每个所述标签信息中的所述组件类型对应的标签向量维度和所述组件列表,得到每个所述标签信息中所述组件类型对应的标签向量。
可选地,所述处理模块220,还用于:
针对任一子模型,将训练数据中web响应信息对应的特征向量和所述子模型对应的组件类型的标签向量输入到所述子模型中进行训练;所述子模型的数量与所述组件类型的数量相同。
可选地,所述子模型为基于集成学习模型建立的。
本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行基于并行结构的网页web组件识别方法,该方法包括:获取待识别的web响应信息;
将所述web响应信息进行特征转换,得到特征向量;
基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于并行结构的网页web组件识别方法,该方法包括:获取待识别的web响应信息;
将所述web响应信息进行特征转换,得到特征向量;
基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于并行结构的网页web组件识别方法,该方法包括:获取待识别的web响应信息;
将所述web响应信息进行特征转换,得到特征向量;
基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于并行结构的网页web组件识别方法,其特征在于,包括:
获取待识别的web响应信息;
将所述web响应信息进行特征转换,得到特征向量;
基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
2.根据权利要求1所述的基于并行结构的网页web组件识别方法,其特征在于,所述将所述web响应信息进行特征转换,得到特征向量,包括:
提取所述web响应信息的关键词;
根据所述关键词在所述web响应信息中出现的次数,以及语料库中包括所述关键词的web响应信息的数量,确定所述web响应信息的特征向量;所述语料库为包括所述待识别的web响应信息和训练数据的web响应信息的语料库。
3.根据权利要求2所述的基于并行结构的网页web组件识别方法,其特征在于,所述提取所述web响应信息的关键词之前,还包括:
对所述web响应信息进行网页解析处理,得到文本信息;
对所述文本信息进行预处理,得到预处理后的文本信息;
对所述预处理后的文本信息,进行分词处理。
4.根据权利要求3所述的基于并行结构的网页web组件识别方法,其特征在于,对所述文本信息进行预处理,包括以下至少一项:
对所述文本信息中的英文大写字符转换为小写字符;
对所述文本信息的格式进行统一化处理;
剔除所述文本信息中的停用词。
5.根据权利要求1-4任一项所述的基于并行结构的网页web组件识别方法,其特征在于,在对所述识别模型进行训练之前,所述方法还包括:
针对任一所述标签信息,将所述标签信息拆分为至少一个所述组件类型各自对应的组件信息;
针对任一所述组件类型,对所述组件类型对应的组件信息进行去重处理,得到所述组件类型的标签向量维度以及组件列表;
根据每个所述标签信息中的所述组件类型对应的标签向量维度和所述组件列表,得到每个所述标签信息中所述组件类型对应的标签向量。
6.根据权利要求1-4任一项所述的基于并行结构的网页web组件识别方法,其特征在于,所述方法还包括:
针对任一子模型,将训练数据中web响应信息对应的特征向量和所述子模型对应的组件类型的标签向量输入到所述子模型中进行训练;所述子模型的数量与所述组件类型的数量相同。
7.根据权利要求1-4任一项所述的基于并行结构的网页web组件识别方法,其特征在于,所述子模型为基于集成学习模型建立的。
8.一种基于并行结构的网页web组件识别装置,其特征在于,包括:
获取模块,用于获取待识别的web响应信息;
处理模块,用于将所述web响应信息进行特征转换,得到特征向量;
所述处理模块,还用于基于所述特征向量和识别模型,确定所述web响应信息包括的web组件;
其中,识别模型包括多个子模型,训练数据包括web响应信息和多个组件类型的标签信息,每个所述子模型为基于web响应信息和每个所述子模型对应的组件类型的标签信息进行训练得到的,所述标签信息为web组件信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于并行结构的网页web组件识别方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于并行结构的网页web组件识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310419786.XA CN116127236B (zh) | 2023-04-19 | 2023-04-19 | 基于并行结构的网页web组件识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310419786.XA CN116127236B (zh) | 2023-04-19 | 2023-04-19 | 基于并行结构的网页web组件识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116127236A true CN116127236A (zh) | 2023-05-16 |
CN116127236B CN116127236B (zh) | 2023-07-21 |
Family
ID=86312196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310419786.XA Active CN116127236B (zh) | 2023-04-19 | 2023-04-19 | 基于并行结构的网页web组件识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116127236B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294993A (zh) * | 2017-07-05 | 2017-10-24 | 重庆邮电大学 | 一种基于集成学习的web异常流量监测方法 |
US20210203575A1 (en) * | 2019-12-30 | 2021-07-01 | Armis Security Ltd. | System and method for determining device attributes using a classifier hierarchy |
CN113806667A (zh) * | 2021-09-26 | 2021-12-17 | 上海交通大学 | 一种支持网页分类的方法和*** |
CN114528457A (zh) * | 2021-12-31 | 2022-05-24 | 北京邮电大学 | Web指纹检测方法及相关设备 |
CN115130038A (zh) * | 2022-06-17 | 2022-09-30 | 奇安信科技集团股份有限公司 | 网页分类方法及装置 |
CN115618291A (zh) * | 2022-10-14 | 2023-01-17 | 吉林省吉林祥云信息技术有限公司 | 一种基于Transformer的web指纹识别方法、***、设备以及存储介质 |
-
2023
- 2023-04-19 CN CN202310419786.XA patent/CN116127236B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294993A (zh) * | 2017-07-05 | 2017-10-24 | 重庆邮电大学 | 一种基于集成学习的web异常流量监测方法 |
US20210203575A1 (en) * | 2019-12-30 | 2021-07-01 | Armis Security Ltd. | System and method for determining device attributes using a classifier hierarchy |
CN113806667A (zh) * | 2021-09-26 | 2021-12-17 | 上海交通大学 | 一种支持网页分类的方法和*** |
CN114528457A (zh) * | 2021-12-31 | 2022-05-24 | 北京邮电大学 | Web指纹检测方法及相关设备 |
CN115130038A (zh) * | 2022-06-17 | 2022-09-30 | 奇安信科技集团股份有限公司 | 网页分类方法及装置 |
CN115618291A (zh) * | 2022-10-14 | 2023-01-17 | 吉林省吉林祥云信息技术有限公司 | 一种基于Transformer的web指纹识别方法、***、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116127236B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11170179B2 (en) | Systems and methods for natural language processing of structured documents | |
EP3819785A1 (en) | Feature word determining method, apparatus, and server | |
CN110263009B (zh) | 日志分类规则的生成方法、装置、设备及可读存储介质 | |
US20220197923A1 (en) | Apparatus and method for building big data on unstructured cyber threat information and method for analyzing unstructured cyber threat information | |
CN111177532A (zh) | 一种垂直搜索方法、装置、计算机***及可读存储介质 | |
CN108228875B (zh) | 基于完美哈希的日志解析方法及装置 | |
CN110580308A (zh) | 信息审核方法及装置、电子设备、存储介质 | |
CN111984792A (zh) | 网站分类方法、装置、计算机设备及存储介质 | |
CN115544240B (zh) | 文本类敏感信息识别方法、装置、电子设备和存储介质 | |
CN113986864A (zh) | 日志数据处理方法、装置、电子设备及存储介质 | |
CN115130038A (zh) | 网页分类方法及装置 | |
CN111191469A (zh) | 大规模语料清洗对齐方法及装置 | |
CN110489740B (zh) | 语义解析方法及相关产品 | |
CN116127236B (zh) | 基于并行结构的网页web组件识别方法及装置 | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN110232328A (zh) | 一种征信报告解析方法、装置及计算机可读存储介质 | |
CN115455416A (zh) | 一种恶意代码检测方法、装置、电子设备及存储介质 | |
CN115577082A (zh) | 文档关键词的提取方法、装置、电子设备及存储介质 | |
CN115563985A (zh) | 语句分析方法、装置、设备、存储介质及程序产品 | |
CN109597879B (zh) | 一种基于“引文关系”数据的业务行为关系抽取方法及装置 | |
CN114970531A (zh) | 基于即时通信消息的意图识别与命名实体提取方法及装置 | |
CN114647727A (zh) | 应用于实体信息识别的模型训练方法、装置和设备 | |
CN112632229A (zh) | 文本聚类方法及装置 | |
CN117973402B (zh) | 文本转换的预处理方法和装置、存储介质及电子设备 | |
CN114743012B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |