CN113259467B - Webpage asset fingerprint tag identification and discovery method based on big data - Google Patents
Webpage asset fingerprint tag identification and discovery method based on big data Download PDFInfo
- Publication number
- CN113259467B CN113259467B CN202110611576.1A CN202110611576A CN113259467B CN 113259467 B CN113259467 B CN 113259467B CN 202110611576 A CN202110611576 A CN 202110611576A CN 113259467 B CN113259467 B CN 113259467B
- Authority
- CN
- China
- Prior art keywords
- data
- value
- asset
- meta
- fingerprint
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A webpage asset fingerprint tag identification and discovery method based on big data belongs to the technical field of data information transmission and comprises the following steps: step S1, selecting a target IP to be scanned; step S2, scanning the target IP to ensure the survival of the target IP; step S3, analyzing the asset details; step S4, analyzing the web page assets; step S5, merging and arranging the asset details in the step S3 and the webpage assets in the step S4 into an asset data set, and storing the asset data set in MySQL and elastic search; step S6, transmitting the webpage assets stored in the ElasticSearch to the HDFS through flash; step S7, analyzing and calculating the data of the flash extracted to the HDFS by using Hive; in step S8, data defined as a new fingerprint tag is appended to the MongoDB fingerprint tag library. According to the scheme, a large amount of asset data is combed and analyzed by combining a big data technology, the existing asset fingerprint tag library is supplemented, and enterprises and organizations are helped to identify and manage the webpage assets more comprehensively and timely.
Description
Technical Field
The invention belongs to the technical field of data information transmission, and particularly relates to a webpage asset fingerprint tag identification and discovery method based on big data.
Background
With the development of network technology and the emergence of laws and regulations such as the network security law, the construction of network security and the development of key system asset management work in various industries are greatly promoted. At present, the management and control means for the host assets are relatively sound, but the identification and analysis capability for the network assets (host assets, web page assets and the like) is relatively deficient.
The web page assets are important parts for an asset management platform, but because the web page fingerprint tags are not perfect enough, a part of the web page assets cannot be matched with the corresponding web page fingerprint tags during processing, and the web page assets which are not matched with the web page assets cannot serve the existing asset management platform.
Therefore, when facing huge web page assets, enterprises and organizations face the following problems:
1. when massive webpage assets are processed, how to quickly identify the information of the full-amount survival webpage assets and effectively utilize the information;
2. on the premise of ensuring efficiency, accurately identifying and analyzing all label information carried by the webpage assets, and simultaneously carrying out secondary effective analysis on the webpage asset information which is initially identified and does not carry a remarkable label;
3. how to timely carry out statistic supplementation on a corresponding fingerprint database after identifying new fingerprint label information.
Therefore, there is a need to improve the above-mentioned problems, and further to provide a new method for identifying and discovering a web page asset fingerprint tag.
Disclosure of Invention
Aiming at the defects and shortcomings, the method for identifying and discovering the webpage asset fingerprint tags based on big data is provided.
In order to achieve the above object, the present invention adopts the following technical solutions.
A webpage asset fingerprint tag identification and discovery method based on big data comprises the following steps:
step S1, selecting a target IP to be scanned:
each scanning needs to establish a scanning target IP;
step S2, scanning the target IP to ensure the target IP is alive:
sending an ICMP information message to a target IP through ping scanning, and judging that the target IP is alive if the target IP responds to the ICMP message; if no response exists, the target IP is judged to be offline, and the scanning is finished;
after the target IP is judged to be alive, carrying out port scanning on the alive target IP, monitoring a returned message so as to identify an open port and obtain a message returned by the open port;
step S3, analyzing the asset details:
and (3) carrying out regular matching on the messages returned by the open port acquired from the live target IP and the files storing the asset detail contents corresponding to a series of known messages: if the matching is successful, acquiring the asset details, and waiting for the storage of the step S5;
step S4, parsing the web asset:
identifying and acquiring the service belonging to the http or the https in the asset details in the step S3, making a http or https request, and acquiring a field content list;
the field content list and the web page website form a preliminary web page asset; performing one or more regular matching of fingerprints on the field content list and the content in the fingerprint label library; if the matched tag exists, adding the tag information to the webpage asset;
step S5, merging and arranging the asset details in the step S3 and the webpage assets in the step S4 into an asset data set, and storing the asset data set in MySQL and elastic search; MySQL is used as a database of an asset management platform to obtain data update;
step S6, transmitting the webpage assets stored in the ElasticSearch to the HDFS through flash;
step S7, analyzing and calculating the data of the flash extracted to the HDFS by using Hive; finding out data which does not exist in the fingerprint tag library from the data extracted from the current-day webpage asset, and if the repeated occurrence times of the data reach a preset value, defining the data as a new fingerprint tag;
in step S8, DataX synchronizes the data of the day in all _ tables to the MongoDB fingerprint tag library, i.e. data defined as new fingerprint tags is appended to the MongoDB fingerprint tag library.
In step S3, the asset details include, but are not limited to: service name, service product name, manufacturer, service version, etc.
Specifically, in step S4, the field content list includes: the response header, the cookie content in the response header, the meta content of the webpage body, the script content referred by the webpage body and the method name used by js loaded by the webpage.
Specifically, step S6 includes the following steps:
s6a, setting an interceptor for the flash process, and extracting fields which can be used for judging whether the fields are new fingerprint tags from the webpage assets, wherein the fields comprise heads, meta, scripts, js, title and cookies;
the cleaning logic of the interceptor is obtained by extracting meta, scripts and title tags by using a regular expression; the extraction of the headers is to filter the universal headers and keep the key values and the value values of the rest headers; the extraction of cookies is obtained by cutting the set-cookie value in the headers; the js is extracted by analyzing the name of a js file extraction method;
step S6b, then, six fields of headers, meta, scripts, js, title and cookies are respectively sent to six directories of HDFS/webdata/headers,/webdata/meta,/webdata/scripts,/webdata/js,/webdata/title and/webdata/cookies by using the multiplexing function of Flume.
Specifically, step S7 includes the following steps:
step S7a, using Hive to build six partition tables, which are a header _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table respectively;
the six tables store data extracted from the current-day webpage assets, and the current-day data is written into the current-day partitions in the tables every day;
step S7b, using Hive to build six common tables, namely a header _ y table, a meta _ y table, a script _ y table, a js _ y table, a title _ y table and a cookie _ y table;
the six tables store field names and field values corresponding to known fingerprint tags, the latest and latest fingerprint tags are derived from the MongoDB fingerprint tag library every day, and all data before a header _ y table, a meta _ y table, a script _ y table, a js _ y table, a title _ y table and a cookie _ y table are covered;
step S7c, an all _ tables partition table is built by Hive, each partition takes a day as a partition, and the data which are considered as newly found fingerprint tags after comparing the corresponding tables in the steps of the day S7a and S7b are stored in each partition;
step S7d, Hive respectively reaches the following six HDFS directories corresponding to the header _ n table, meta _ n table, script _ n table, js _ n table, title _ n table and cookie _ n table
/webdata/headers、/webdata/meta、/webdata/scripts、/webdata/js、
Loading data of the current day in the/webdata/title and/webdata/cookies, and then automatically mapping the loaded data to six tables, namely a head _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table, by the Hive;
step S7e, comparing the data imported by the partition of the current day in the header _ N table, the meta _ N table, the script _ N table, the js _ N table, the title _ N table and the cookie _ N table with the existing fingerprint tags in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table, finding out the data which do not exist in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table, and marking the data with a non-existing mark, wherein the mark is represented by N; and marking the data with N marks to indicate that the data is the fingerprint label of the webpage to be verified.
S7f, filtering the data marked with the N marks, and grouping according to the attribute names and the attribute values to count; if the number of times of repeated appearance of a piece of data reaches a preset value, defining the piece of data as a new fingerprint tag;
step S7g, insert the data of the new fingerprint tag into the partition of the day of the all _ tables table.
Specifically, in step S7a, the header _ n table has three fields, i.e., a header name, a header value, and a tag value; the marking value is used for identifying whether the header exists or not, if yes, the marking value recorded by the header is set to be Y, and if not, the marking value is set to be N;
the meta _ n table has three fields of meta name, meta value and tag value; the flag value is used for identifying whether existing meta exists, if yes, the flag value of the meta record is set to Y, and if not, the flag value is set to N;
the script _ n table has two fields of a script value and a marking value; the mark value is used for identifying whether the script exists or not, if the mark value of the script record exists, the mark value is set to be Y, and if the mark value does not exist, the mark value is set to be N;
the js _ n table has two fields of a js value and a mark value; the marking value is used for identifying whether the js is already existed or not, if yes, the marking value of the js record is set to be Y, and if not, the marking value is set to be N;
the title _ n table has two fields of a title value and a mark value; the marking value is used for identifying whether the title exists or not, if yes, the marking value of the title record is set to be Y, and if not, the marking value is set to be N;
the cookie _ n table comprises three fields of a cookie name, a cookie value and a mark value; the tag value is used to identify whether a cookie already exists, if so, the tag value of the cookie record is set to Y, and if not, set to N.
Specifically, in step S7b,
the header _ y table comprises two fields of a header name and a header value;
the meta _ y table has two fields of meta name and meta value;
the script _ y table has a field of script value;
the js _ y table has a field for the js value;
the cookie _ y table has two fields, a cookie name and a cookie value.
According to the scheme, a large amount of asset data is combed and analyzed by combining a big data technology, port, protocol, domain name, equipment type, model, manufacturer, application name, version, operating system, WEB service, application component, development framework, scripting language and CMS related network asset information are comprehensively mastered, corresponding fingerprint tags are printed according to different asset information, an existing asset fingerprint tag library is supplemented, enterprises and organizations are helped to recognize and manage webpage assets more comprehensively and timely, and meanwhile, an accurate basis is provided for asset searching.
The invention has the beneficial effects that:
1. the method mainly comprises the steps of scanning the acquired webpage assets through the asset engine in a full-scale mode, mainly aiming at asset IP, and quickly identifying the webpage assets through three steps of host activity detection, port scanning and port service identification so as to achieve the purpose of collecting the information of the effectively-alive webpage assets in a full-scale mode.
2. The method supports the butt joint storage of an asset management platform, establishes an interceptor by utilizing a big data technology, extracts a field which can be used for judging whether a new fingerprint tag exists in the webpage asset, and more accurately and effectively identifies and acquires the fingerprint tag information carried by the webpage asset by a secondary analysis mode of additional comparison and timing update.
3. And filtering the processed fingerprint tag data, grouping according to the attribute name and the attribute value to count so as to reach a threshold value, setting the fingerprint tag information reaching the threshold value as new fingerprint tag information and storing the new fingerprint tag information into a corresponding MongoDB fingerprint tag library, namely supplementing the fingerprint library in time so as to support the matching work of the asset management platform on the subsequent asset import.
Drawings
FIG. 1 is a flow chart of the present invention.
Detailed Description
The invention is further illustrated with reference to the following figures and examples.
The web page assets are important parts for an asset management platform, but because the web page fingerprint tags are not perfect enough, a part of the web page assets cannot be matched with the corresponding web page fingerprint tags during processing, and the web page assets which are not matched with the web page assets cannot serve the existing asset management platform. From the aspects of the asset management platform and the data value, a technical scheme of enriching the webpage fingerprint tags is needed to solve the problems, so that the webpage assets are better utilized to support the asset management platform.
According to the scheme, the asset management platform is combined with big data, and the big data technology is used for supplementing and perfecting the webpage fingerprint tag library. The scheme can carry out secondary storage and analysis calculation on data, and the components are MySQL, MongoDB, ElasticSearch, Flume, Hive, HDFS, DataX and Azkaban.
Interpretation of the related nouns:
asset: assets herein refer to network assets, i.e., various devices used in a computer (or communications) network. The system mainly comprises a host, network equipment (a router, a switch and the like) and security equipment (a firewall and the like).
An asset engine: the engine is an asset scanning module engine used by a fire shadow-asset safety management platform sold by Yuan information technology Limited in Zhejiang, and can be used for acquiring asset information, such as geographic information, open port information, port service information, information of webpage assets, label information of the webpage assets and the like. The processing logic of the engine is described in steps S1-S4.
Asset details: and comparing and identifying the message acquired by the asset engine with the existing message data so as to acquire information such as the service name, the version number and the like of the port service, wherein the information is called asset details.
Webpage assets: through a certain rule to identify http/https and the like in the asset details, the browser can be used for accessing to obtain more information such as a webpage title, a webpage certificate and the like, and the information is called webpage assets.
Headers (headers) are strings sent before http data is sent to the browser.
A request head: the header that the user passes to the server is called a request header.
A response head: the header that the server passes to the user is called a response header.
Cookie(s): some web pages set up data stored on the user's local terminal in order to identify the user.
Title: and the title of the webpage is obtained by returning the title label in the text content through the webpage.
Meta: and the meta information of the webpage is obtained by returning the meta tag in the text content through the webpage.
Script: the script used by the webpage is obtained by the script tag in the webpage returned text content.
Js: the text content of the script used by the web page.
Labeling: the webpage needs a background server, a front end, various widgets and applications to be formed, meanwhile, when the webpage is accessed, fields of the webpage expose information such as server names, frames used by the front end, the widgets and other applications, the information can be matched with fingerprints, and a label can be formed in the matching process.
Fingerprint: a well-defined field is canonical matched using information including, but not limited to, the response header, cookie content in the response header, meta content of the web page body, script content referenced by the web page body, method name used by js loaded by the web page, etc. Each such set field is called a fingerprint. For example, there is a set fingerprint "Script": "hm \ \ *** \ \ com/hm \. js", if the Script of the web page matches the fingerprint, it indicates that the web page has the label of "mass ads".
Fingerprint label library: a fingerprint library that stores a series of identification tags is called a fingerprint tag library.
An asset management platform: the platform for monitoring and managing the network assets in the designated network range in real time is used for managing the running state of the host in the network range and reporting abnormal assets in time for operation and maintenance personnel to manage and maintain.
MySQL: MySQL is a relational database management system, has strong transactional property, and can help us maintain data consistency. And the support of a standard SQL language (structured query language) can enable the database to be efficiently checked. More details can be read as the official network https:// www.mysql.com/.
MongoDB: MongoDB is a database that is intermediate between relational and non-relational databases, and is stored on a distributed file basis. The data format is a BSON format, and can store more complex data types, and meanwhile, MongoDB has a strong query language and can meet the daily requirement of querying data by a single table. More details can be read as the official network https:// www.mongodb.com/.
Elastic search: the elastic search is a highly scalable full-text search engine. The Elasticsearch can help us to store, search and analyze a large amount of data quickly and in real time, and is usually used as an internal search engine of internet application to provide support for applications requiring complex search functions. More details can be read on the official web https:// www.elastic.co/cn/elastic search/.
Flume: the flash is a highly available, highly reliable and distributed system for collecting, aggregating and transmitting mass logs, and supports various data senders customized in the log system for collecting data. At the same time, flash provides the ability to simply process data and write to various data recipients (customizable). More details can be read in the official web http:// flux.
HDFS (Hadoop distributed File System): HDFS (Hadoop Distributed File System) is a Distributed File system with high fault tolerance, high reliability and high throughput. The storage capacity of the system can be expanded by deploying the system on cheap hardware, and the system is very suitable for storing mass data. More details can be read from the official mesh https:// hadoop.
Hive: hive is a data warehouse tool based on Hadoop and used for data extraction, conversion and loading. The Hive has the main function of mapping the structured data file into a database table and providing the SQL query function, and is very suitable for statistical analysis of a data warehouse. More details can be read in the official web http:// live.
And (3) DataX: the DataX is an offline synchronization tool for heterogeneous data sources, and aims to realize stable and efficient data synchronization functions among various heterogeneous data sources including relational databases (MySQL, Oracle and the like), HDFS, Hive, ODPS, HBase, FTP and the like. More details can be read through the official web https:// github. com/alibaba/DataX.
Azkaban: the Azkaban is a work scheduling flow system, and can well organize complex execution plans of each task unit. More details can be read from the official web https:// azkaban.
A webpage asset fingerprint tag identification and discovery method based on big data comprises the following steps:
step S1, selecting a target IP to be scanned:
each scanning needs to establish a target IP for scanning, and the target IP is a network segment of the public network ipv4, ipv6 or ipv4 or IP segment in the intranet.
Step S2, scanning the target IP to ensure the target IP is alive:
scanning a target IP through an asset engine, sending an ICMP information message to the target IP through ping scanning, and judging that the target IP is alive if the target IP responds to the ICMP message; and if no response exists, judging that the target IP is off-line, and finishing scanning. This process is called host alive probing to ensure that the target IP is alive.
ICMP (Internet Control Message protocol) Internet Control Message protocol. It is a subprotocol of TCP/IP protocol cluster, and is used for transferring network self-message of network communication failure, host machine reachable or not, routing available or not, etc. between IP host machine and router.
After the target IP is judged to be alive, carrying out port scanning on the alive target IP:
selecting a surviving target IP, constructing a scanning packet of each port by using a TCP/IP protocol stack, and monitoring a returned message by using a packet capturing tool tcpdump so as to identify an open port and acquire a message returned by the open port.
Step S3, analyzing the asset details:
and (3) carrying out regular matching on the messages returned by the open port acquired from the live target IP and the files storing the asset detail contents corresponding to a series of known messages: if the two match successfully, the asset details are obtained and the storage of step S5 is awaited. Asset details include, but are not limited to: service name, service product name, manufacturer, service version, etc. And if the matching is unsuccessful, only storing the message information returned by the open port acquired at the live target IP as the asset details.
Step S4, parsing the web asset:
identifying and acquiring the service belonging to http or https in the asset details in the step S3, making an http or https request, and acquiring a field content list: the response header, the cookie content in the response header, the meta content of the webpage body, the script content referred by the webpage body and the method name used by js loaded by the webpage.
The field content list and the web site form a preliminary web asset. And performing one or more regular matching of the fingerprints on the field content list and the content in the fingerprint label library. If the matched tag exists, adding the tag information to the webpage asset; if not, the webpage asset has no matched tag information.
And step S5, merging and arranging the asset details in the step S3 and the webpage assets in the step S4 into an asset data set, and storing the asset data set in MySQL and elastic search. MySQL gets the data update as the database of the asset management platform.
Step S6, the web page asset stored in the ElasticSearch is transmitted to the HDFS through flash.
And S6a, setting an interceptor for the flash process, and extracting fields which can be used for judging whether the fields are new fingerprint tags from the webpage assets, wherein the fields comprise heads, meta, scripts, js, title and cookies.
The cleaning logic of the interceptor is obtained by extracting meta, scripts and title tags by using a regular expression; the extraction of the headers is to filter the general headers (e.g., "content-encoding", "content-type", and "date", etc.), and to retain the key values and value values of the remaining headers; the extraction of cookies is obtained by cutting the set-cookie value in the headers; the extraction of js is obtained by analyzing the js file extraction method name.
Step S6b, then, six fields of headers, meta, scripts, js, title and cookies are respectively sent to six directories of HDFS/webdata/headers,/webdata/meta,/webdata/scripts,/webdata/js,/webdata/title and/webdata/cookies by using the multiplexing function of Flume.
In step S7, the data extracted from the Flume to the HDFS is analyzed and calculated by Hive.
Step S7a, six partition tables are built by Hive, which are a header _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table.
The header _ n table has three fields, a header name, a header value, and a tag value. The header is key: value key-value pair form, such as a header is a: b, then the header name is stored in a, and the header value is stored in b. The marking value is used for identifying whether the header exists or not, if yes, the marking value recorded by the header is set to be Y, and if not, the marking value is set to be N;
the meta _ n table has three fields, meta name, meta value and tag value. meta is key: value key value pair form, such as a meta is a: b, then meta name is stored in a, meta value is stored in b. The flag value is used for identifying whether existing meta exists, if yes, the flag value of the meta record is set to Y, and if not, the flag value is set to N;
the script _ n table has two fields of a script value and a tag value. A script is a link address, e.g., a script is https:/a/b, then the script value is https:/a/b. The mark value is used for identifying whether the script exists or not, if the mark value of the script record exists, the mark value is set to be Y, and if the mark value does not exist, the mark value is set to be N;
the js _ n table has two fields, a js value and a tag value. js is a method name, e.g., a js is a, then the js value is stored as a. The marking value is used for identifying whether the js is already existed or not, if yes, the marking value of the js record is set to be Y, and if not, the marking value is set to be N;
the title _ n table has two fields, a title value and a flag value. A title is a function name, e.g., a title is a, then the title value is stored as a. The marking value is used for identifying whether the title exists or not, if yes, the marking value of the title record is set to be Y, and if not, the marking value is set to be N;
the cookie _ n table has three fields, a cookie name, a cookie value, and a tag value. The cookie is a key: value key value pair form, such as a cookie is a: b, then the cookie name is stored in a and the cookie value is stored in b. The tag value is used to identify whether a cookie already exists, if so, the tag value of the cookie record is set to Y, and if not, set to N.
The six tables store data extracted from the current day's web page assets, and the current day's data is written to the current day's partition of the tables each day. The purpose of these six tables is to compare with the six tables of step s7b to find new fingerprint tags.
Step S7b, six common tables are built by Hive, which are a header _ y table, a meta _ y table, a script _ y table, a js _ y table, a title _ y table and a cookie _ y table respectively.
The header _ y table has two fields, a header name and a header value. The header is key: value key-value pair form, such as a header is a: b, storing the header name in a and storing the header value in b;
the meta _ y table has two fields of meta name and meta value. meta is key: value key value pair form, such as a meta is a: b, then the meta name is stored in a, and the meta value is stored in b;
the script _ y table has a script value of one field. A script is a link address, for example, if a script is https:/a/b, then the script value is https:/a/b;
the js _ y table has a js value-a field. js is a method name, for example, if js is a, then the js value is stored as a;
the title _ y table has a title value-a field. A title is a function name, for example, if a title is a, then the title value stores a;
the cookie _ y table has two fields, a cookie name and a cookie value. The cookie is a key: value key value pair form, such as a cookie is a: b, then the cookie name is stored in a and the cookie value is stored in b.
The six tables store the corresponding field names and field values in the known fingerprint tags, and the latest and most complete fingerprint tags are derived from the MongoDB fingerprint tag library every day, and then all data before the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table are overwritten. The purpose of these six tables is to compare with the six tables of step s7a to find new fingerprint tags.
Step S7c, create an all _ tables partition table by Hive, taking the day as partitions, and each partition stores all data considered as newly found fingerprint tags in the day. The purpose of this table is to store the new fingerprint tags found after the comparison of the 12 tables in the steps s7a and s7 b.
Step S7d, Hive respectively reaches the following six HDFS directories corresponding to the header _ n table, meta _ n table, script _ n table, js _ n table, title _ n table and cookie _ n table
/webdata/headers、/webdata/meta、/webdata/scripts、/webdata/js、
The data of the current day is loaded in the/webdata/title and/webdata/cookies, and then, the Hive automatically maps the loaded data into six tables, namely a head _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table.
Step S7e, writing an HQL statement, and comparing the data imported by the partition of the current day in the header _ n table, the meta _ n table, the script _ n table, the js _ n table, the title _ n table and the cookie _ n table with the existing fingerprint tags in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table. For example, comparing the data of the current day in the header _ N table with all the data in the header _ y table, finding out the data which does not exist in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table, and marking the data with a non-existent mark, wherein the mark is represented by N; and marking the data with N marks to indicate that the data is the fingerprint label of the webpage to be verified.
S7f, filtering the data marked with the N marks, and grouping according to the attribute names and the attribute values to count; if the number of times a piece of data recurs reaches a predetermined value, the piece of data is defined as a new fingerprint tag.
Step S7g, insert the data of the new fingerprint tag into the partition of the day of the all _ tables table.
In step S8, DataX synchronizes the data of the day in all _ tables to the MongoDB fingerprint tag library, i.e. the data defined as the new fingerprint tag is appended to the MongoDB fingerprint tag library.
Step S6-step S8 writing configuration files through Azkaban, scheduling each task unit in sequence at regular time, and setting as 24:00 per day to execute the workflow.
The effect that this scheme brought is: if some web page assets carry fingerprint tag a but the fingerprint tag library does not have fingerprint tag a on the first day, this will result in that these web page assets cannot be matched with fingerprint tag a. After a series of operations such as storage, extraction and calculation are carried out on massive webpage assets through the big data technology in the steps, the fingerprint tag A which is not contained in the fingerprint tag library can be found and written into the fingerprint tag library, and therefore when the webpage assets carrying the fingerprint tag A come later, the webpage assets can be matched with the fingerprint tag A. In summary, the scheme can autonomously find new fingerprint tags, improve the utilization rate of the webpage assets, and perform operations such as vulnerability scanning according to the newly matched fingerprint tags.
In the following, taking an internal network ip as 192.168.1.123 as an example, a process of the method is demonstrated:
in step S1, a scanned target IP is set to 192.168.1.123 of the intranet.
Step S2, the asset engine is used to scan the target ip and obtain its open ports 22, 80, 443, 8080 and the messages of these ports.
Example (c): the message of the 22 port is 'SSH-2.0-OpenSSH _7.2p2 Ubuntu-4Ubuntu 2.10'.
Step S3, the data information such as the service name, the service version, the service product, etc. of these ports is obtained through the identification message. This detailed information is stored as asset details on the one hand and more analytical processing is performed on the other hand.
Detailed information example:
the 22 port data is: service name: ssh, service version: OpenSSH _7.2p 2;
the 80 port data is: service name: http;
443 port data is: service name: https, service product: nginx;
8080 the port data are: a service name; http, service product: restlet Java web frame.
Step S4, parsing the web asset:
step S4a, for data whose service name is identified as http or https, such as the 80 port, the 443 port, and the 8080 port, an access request is made after a web page request is constructed, and a returned result, such as a response header, body information of the response, and a js file of the response, is obtained, for example: 80, response head is ' server ', awselb/2.0 ', and the title of the webpage is: 404 not found 443 returns meta information: { "server": *** "}, the response header is the return content of {" X-Powered-By ": ASP. NET" } } 8080: the js method name: [ 'bootstrap' ], cookie information is: [ 'JSESSIONID =5988B5EA0E26ADE512A8DA5EA 3071123' ].
Step S4b, matching the returned content with the fingerprint label library:
80 port matching to awselb is Amazon ELB for load balancing;
net is a web framework, but 443 port's *** does not match.
8080 the port matching to bootstrap is a UI framework, JSSIONNID means that JAVA is used.
And step S4c, storing the content returned in step S4a and the matching result of step S4b together as the webpage asset.
And step S5, storing the asset details and the webpage assets into MySQL and ElasticSearch respectively.
Step S6, extracting data related to six fields of the headers, meta, scripts, js, title and cookies in the webpage assets of the current day to the HDFS by using flash, wherein the headers comprises a server: awselb/2.0, X-Power-By: ASP.NET; meta has server: ***; js has bootstrap: null; the cookie has JSESSIONID =5988B5EA0E26ADE512A8DA5EA 3071123.
In step S7, the data extracted from the Flume to the HDFS is analyzed and calculated by Hive.
From the above data, the header _ n table is written into the server in the partition of the current day: awselb/2.0, X-Power-By: two data of ASP and NET; the meta _ n table writes the server to the partition on the current day: *** is a piece of data, js _ n table in the current day partitions will be written with bootstrap: null one piece of data; the cookie _ n table writes one piece of data in the partition of the current day as JSESSIONID =5988B5EA0E26AD E512A8DA5EA 3071123.
The known fingerprint tags of the header _ y table include server: awselb/2.0, X-Power-By: ASP.NET; fingerprint tags known by meta _ y table do not include server: ***; the known fingerprint tags of the js _ y table include bootstrap: null; the known fingerprint tag in the cookie _ y table includes JSESSIONID =5988B5EA0E26ADE512A8DA5EA 3071123.
Through comparison, the server of the meta _ n table is found as follows: this data for *** is not present, and occurs several times a day. And (3) finding a server through grouping statistics: the number of *** repetitions exceeds a predetermined value (the predetermined value is adjustable assuming 100);
then the server: the *** is imported into the partition of the all _ tables on the current day as a new fingerprint tag.
Step S8, DataX compares server: the *** is synchronized to the MongoDB fingerprint tag library, and the next time, the web asset carries the server: the basic information can be matched with the server: *** the fingerprint tag.
The scheme can carry out secondary storage and analysis calculation on data, and the components are MySQL, MongoDB, ElasticSearch, Flume, Hive, HDFS, DataX and Azkaban. The reason for the selection of components is as follows:
MySQL: the strong transactional nature of MySQL can ensure the consistency of asset management platform data and the standard SQL language is easier to use.
MongoDB: the fingerprint tags are in a JSON format, the number and the sequence of fields are not fixed, and the traditional relational database management system is not suitable for storing the data. For MongoDB, the data format is BSON format, and the BSON format is an extension of JSON format, and can store more complex data types. MongoDB is well suited to storing fingerprint tags in terms of data format, and MongoDB powerful query statements can satisfy any operation of the fingerprint tags.
Elastic search: the asset details and the webpage assets are also in a JSON format, the number and the sequence of fields are not fixed, the traditional relational database management system is not suitable for storing the data, and the data volume of the asset details is large. For the elastic search, the data format is the JSON format, and meanwhile, the method supports the rapid and real-time storage, search and analysis of a large amount of data, is very suitable for the storage of a large amount of asset detail data and meets the search requirements of the user.
Flume: before analyzing and calculating the webpage assets, the webpage assets in the ElasticSearch need to be cleaned to extract the required fields, flash is an efficient data acquisition, aggregation and transmission system, and can be used for reading data in real time in the ElasticSearch and loading the data into the HDFS. And simultaneously, the flash supports a user-defined interceptor and multiplexing, the interceptor can analyze the webpage assets read in the ElasticSearch, extract the required fields and then send different field data to different HDFS directories by utilizing multiplexing.
Hive: hive can map the data in the HDFS file into a table and then query the data by using the SQL query function provided by Hive. The Hive bottom layer analyzes and matches the SQL statement to generate a corresponding MapReduce program, wherein the MapReduce is a parallel computing engine and is very suitable for offline computing of mass data.
And (3) DataX: the DataX is simple to use, the configuration file is easy to write, data transmission between Hive and MongoDB is supported, and after Hive analysis and calculation are completed, the DataX is needed to synchronize the calculation result, namely the found new fingerprint label, into the MongoDB fingerprint label database.
Azkaban: the Azkaban is a light scheduling tool with clear function, simplicity and easiness in use. The configuration file can be written to describe the dependency relationship and the like of the components after working, and finally the configuration file is handed to Azkaban to schedule the flows of data collection, calculation, synchronization and the like.
The fields which can be taken to uniquely determine the fingerprint in the common web page fingerprint assets are probably heads, meta, scripts, js, title and cookies, so that the analysis and calculation are started from the fields.
The scheme supplements the existing asset fingerprint tag library, helps enterprises and organizations to more comprehensively and timely identify and manage the webpage assets, and provides accurate basis for asset searching.
The present invention has been described in terms of embodiments, and several variations and modifications can be made to the present invention without departing from the principles of the invention. It should be noted that all the technical solutions obtained by means of equivalent substitution or equivalent transformation, etc., fall within the protection scope of the present invention.
Claims (7)
1. A webpage asset fingerprint tag identification and discovery method based on big data is characterized by comprising the following steps:
step S1, selecting a target IP to be scanned:
each scanning needs to establish a scanning target IP;
step S2, scanning the target IP to ensure the target IP is alive:
sending an ICMP information message to a target IP through ping scanning, and judging that the target IP is alive if the target IP responds to the ICMP message; if no response exists, the target IP is judged to be offline, and the scanning is finished;
after the target IP is judged to be alive, carrying out port scanning on the alive target IP, monitoring a returned message so as to identify an open port and obtain a message returned by the open port;
step S3, analyzing the asset details:
and (3) carrying out regular matching on the messages returned by the open port acquired from the live target IP and the files storing the asset detail contents corresponding to a series of known messages: if the matching is successful, acquiring the asset details, and waiting for the storage of the step S5;
step S4, parsing the web asset:
identifying and acquiring the service belonging to the http or the https in the asset details in the step S3, making a http or https request, and acquiring a field content list;
the field content list and the web page website form a preliminary web page asset; performing one or more regular matching of fingerprints on the field content list and the content in the fingerprint label library; if the matched tag exists, adding the tag information to the webpage asset;
step S5, merging and arranging the asset details in the step S3 and the webpage assets in the step S4 into an asset data set, and storing the asset data set in MySQL and elastic search; MySQL is used as a database of an asset management platform to obtain data update;
step S6, transmitting the webpage assets stored in the ElasticSearch to the HDFS through flash;
step S7, analyzing and calculating the data of the flash extracted to the HDFS by using Hive; finding out data which does not exist in the fingerprint tag library from the data extracted from the current-day webpage asset, and if the repeated occurrence times of the data reach a preset value, defining the data as a new fingerprint tag; establishing an all _ tables partition table by Hive, taking days as partitions, and storing all data considered as newly found fingerprint tags in each partition in the day;
in step S8, DataX synchronizes the data of the day in all _ tables to the fingerprint database, i.e. the data defined as the new fingerprint is appended to the fingerprint database.
2. The big data-based web asset fingerprint tag identification and discovery method according to claim 1, wherein in step S3, the asset details include but are not limited to: service name, service product name, manufacturer, service version.
3. The big-data based web asset fingerprint tag identification and discovery method according to claim 1, wherein in step S4, the field content list comprises: the response header, the cookie content in the response header, the meta content of the webpage body, the script content referred by the webpage body and the method name used by js loaded by the webpage.
4. The big-data based web asset fingerprint tag identification and discovery method according to claim 1, wherein the step S6 comprises the steps of:
s6a, setting an interceptor for the flash process, and extracting fields which can be used for judging whether the fields are new fingerprint tags from the webpage assets, wherein the fields comprise heads, meta, scripts, js, title and cookies;
the cleaning logic of the interceptor is obtained by extracting meta, scripts and title tags by using a regular expression; the extraction of the headers is to filter the universal headers and keep the key values and the value values of the rest headers; the extraction of cookies is obtained by cutting the set-cookie value in the headers; the js is extracted by analyzing the name of a js file extraction method;
step S6b, then, six fields of headers, meta, scripts, js, title and cookies are respectively sent to six directories of HDFS/webdata/headers,/webdata/meta,/webdata/scripts,/webdata/js,/webdata/title and/webdata/cookies by using the multiplexing function of Flume.
5. The big-data based web asset fingerprint tag identification and discovery method according to claim 1, wherein the step S7 comprises the steps of:
step S7a, using Hive to build six partition tables, which are a header _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table respectively;
the six tables store data extracted from the current-day webpage assets, and the current-day data is written into the current-day partitions in the tables every day;
step S7b, using Hive to build six common tables, namely a header _ y table, a meta _ y table, a script _ y table, a js _ y table, a title _ y table and a cookie _ y table;
the six tables store the corresponding field names and field values in known fingerprint tags, the latest and most complete fingerprint tags are derived from the fingerprint tag library every day, and all data before a header _ y table, a meta _ y table, a script _ y table, a js _ y table, a title _ y table and a cookie _ y table are covered;
step S7c, in the all _ tables partition table, each partition stores the data which is considered as the newly found fingerprint label after comparing the corresponding table in the steps of the day S7a and S7 b;
step S7d, Hive respectively reaches the following six HDFS directories corresponding to the header _ n table, meta _ n table, script _ n table, js _ n table, title _ n table and cookie _ n table
/webdata/headers、/webdata/meta、/webdata/scripts、/webdata/js、
Loading data of the current day in the/webdata/title and/webdata/cookies, and then automatically mapping the loaded data to six tables, namely a head _ n table, a meta _ n table, a script _ n table, a js _ n table, a title _ n table and a cookie _ n table, by the Hive;
step S7e, comparing the data imported by the partition of the current day in the header _ N table, the meta _ N table, the script _ N table, the js _ N table, the title _ N table and the cookie _ N table with the existing fingerprint tags in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table, finding out the data which do not exist in the header _ y table, the meta _ y table, the script _ y table, the js _ y table, the title _ y table and the cookie _ y table, and marking the data with a non-existing mark, wherein the mark is represented by N; the data marked with N marks represents that the data is a webpage fingerprint label to be verified;
s7f, filtering the data marked with the N marks, and grouping according to the attribute names and the attribute values to count; if the number of times of repeated appearance of a piece of data reaches a preset value, defining the piece of data as a new fingerprint tag;
step S7g, insert the data of the new fingerprint tag into the partition of the day of the all _ tables table.
6. The big-data-based web asset fingerprint tag identification and discovery method according to claim 5, wherein in step S7a, the header _ n table has three fields of a header name, a header value and a tag value; the marking value is used for identifying whether the header exists or not, if yes, the marking value recorded by the header is set to be Y, and if not, the marking value is set to be N;
the meta _ n table has three fields of meta name, meta value and tag value; the flag value is used for identifying whether existing meta exists, if yes, the flag value recorded by the meta is set to Y, and if not, the flag value is set to N;
the script _ n table has two fields of a script value and a marking value; the mark value is used for identifying whether the script is already existed or not, if yes, the mark value of the script record is set to be Y, and if not, the mark value is set to be N;
the js _ n table has two fields of a js value and a mark value; the marking value is used for identifying whether js exists or not, if yes, the marking value recorded by the js is set to be Y, and if not, the marking value is set to be N;
the title _ n table has two fields of a title value and a mark value; the marking value is used for identifying whether the title exists or not, if yes, the marking value recorded by the title is set to be Y, and if not, the marking value is set to be N;
the cookie _ n table comprises three fields of a cookie name, a cookie value and a mark value; the tag value is used to identify whether a cookie already exists, if so, the tag value of the cookie record is set to Y, and if not, set to N.
7. The big-data based web asset fingerprint tag identification and discovery method according to claim 5, wherein, in step S7b,
the header _ y table comprises two fields of a header name and a header value;
the meta _ y table has two fields of meta name and meta value;
the script _ y table has a field of script value;
the js _ y table has a field for the js value;
the cookie _ y table has two fields, a cookie name and a cookie value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110611576.1A CN113259467B (en) | 2021-06-02 | 2021-06-02 | Webpage asset fingerprint tag identification and discovery method based on big data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110611576.1A CN113259467B (en) | 2021-06-02 | 2021-06-02 | Webpage asset fingerprint tag identification and discovery method based on big data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259467A CN113259467A (en) | 2021-08-13 |
CN113259467B true CN113259467B (en) | 2021-10-08 |
Family
ID=77186024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110611576.1A Active CN113259467B (en) | 2021-06-02 | 2021-06-02 | Webpage asset fingerprint tag identification and discovery method based on big data |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259467B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472813B (en) * | 2021-09-02 | 2021-12-07 | 浙江齐安信息科技有限公司 | Security asset identification method and system |
CN114827043B (en) * | 2022-03-31 | 2023-05-16 | 中国电子科技集团公司第三十研究所 | Flow characteristic matching method based on fingerprint dynamic update and key message identification |
CN116823162B (en) * | 2023-06-27 | 2024-04-09 | 上海螣龙科技有限公司 | Network asset scanning task management method, system and computer equipment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194573A (en) * | 2017-05-18 | 2017-09-22 | 郝继英 | Asset source manages method concentratedly |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752214B2 (en) * | 2000-09-01 | 2010-07-06 | Op40, Inc. | Extended environment data structure for distributed digital assets over a multi-tier computer network |
CA2933669A1 (en) * | 2015-06-23 | 2016-12-23 | Above Security Inc. | Method and system for detecting and identifying assets on a computer network |
CN112260861A (en) * | 2020-10-13 | 2021-01-22 | 上海奇甲信息科技有限公司 | Network asset topology identification method based on flow perception |
CN112468360A (en) * | 2020-11-13 | 2021-03-09 | 北京安信天行科技有限公司 | Asset discovery identification and detection method and system based on fingerprint |
CN112416992B (en) * | 2020-11-30 | 2024-02-02 | 杭州安恒信息技术股份有限公司 | Industry type identification method, system and equipment based on big data and keywords |
-
2021
- 2021-06-02 CN CN202110611576.1A patent/CN113259467B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194573A (en) * | 2017-05-18 | 2017-09-22 | 郝继英 | Asset source manages method concentratedly |
Also Published As
Publication number | Publication date |
---|---|
CN113259467A (en) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113259467B (en) | Webpage asset fingerprint tag identification and discovery method based on big data | |
CN108459939B (en) | Log collection method and device, terminal equipment and storage medium | |
US11196756B2 (en) | Identifying notable events based on execution of correlation searches | |
CN108400909B (en) | Traffic statistical method, device, terminal equipment and storage medium | |
CN109600258B (en) | Industrial protocol message recording device and method | |
CN108667725A (en) | A kind of industrial AnyRouter and implementation method based on a variety of accesses and edge calculations | |
US9210090B1 (en) | Efficient storage and flexible retrieval of full packets captured from network traffic | |
CN103034735B (en) | Big data distributed file export method | |
CN106055608A (en) | Method and apparatus for automatically collecting and analyzing switch logs | |
CN104394211A (en) | Design and implementation method for user behavior analysis system based on Hadoop | |
CN108268485A (en) | A kind of daily record real-time analysis method and system | |
CN105577411B (en) | Cloud service monitoring method and device based on service origin | |
CN109271793A (en) | Internet of Things cloud platform device class recognition methods and system | |
CN112463772B (en) | Log processing method and device, log server and storage medium | |
CN105577528A (en) | Wechat official account data collection method and device based on virtual machine | |
US20190197140A1 (en) | Automation of sql tuning method and system using statistic sql pattern analysis | |
CN109783330B (en) | Log processing method, log display method, and related device and system | |
CN114979186A (en) | Flow link analysis method and system based on Flink component | |
CN106326280B (en) | Data processing method, device and system | |
CN103036746B (en) | Passive measurement method and passive measurement system of web page responding time based on network intermediate point | |
CN112003884B (en) | Method for collecting network assets and retrieving natural language | |
KR20220001606A (en) | Real-time packet data storing method and apparatus for mass network monitoring | |
US11949547B2 (en) | Enhanced simple network management protocol (SNMP) connector | |
US10545798B2 (en) | Resegmenting chunks of data for efficient load balancing across indexers | |
CN115695216A (en) | Big data analysis method for internet traffic flow direction |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A fingerprint tag identification and discovery method of Web assets based on big data Effective date of registration: 20220707 Granted publication date: 20211008 Pledgee: Hangzhou United Rural Commercial Bank Co.,Ltd. Dachuang town sub branch Pledgor: Zhejiang Yu'an Information Technology Co.,Ltd. Registration number: Y2022980009965 |