CN111935081B - 一种数据包脱敏方法和装置 - Google Patents
一种数据包脱敏方法和装置 Download PDFInfo
- Publication number
- CN111935081B CN111935081B CN202010589845.4A CN202010589845A CN111935081B CN 111935081 B CN111935081 B CN 111935081B CN 202010589845 A CN202010589845 A CN 202010589845A CN 111935081 B CN111935081 B CN 111935081B
- Authority
- CN
- China
- Prior art keywords
- layer
- payload
- desensitization
- matching
- packet
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据脱敏技术领域,提供了一种数据包脱敏方法和装置。方法包括解析每一个数据包中包含的各个Layer和Payload,将所述Layer和Payload进行标记;其中,在所述Layer具体为多层时,所标记出的Layer包含,Layer对应的报文头类型和各层Layer的报文头偏移位置;所述Payload标记为记录所述Payload的存储指针地址;根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作。本发明对能够进可能多的解析多次VPN协议数据包,能够分析三层、四层协议;能够对数据包中的三层IP进行修改,起到网络IP层的脱敏。
Description
【技术领域】
本发明涉及数据脱敏技术领域,特别是涉及一种数据包脱敏方法和装置。
【背景技术】
网络数据包中可能包含用户的敏感信息,这些敏感信息包含:用户IP、用户宽带账号密码、用户CSP账号密码、年龄、性别、位置地域、名族、手机号等。如果把这些现网的数据包抓取后发布给第三方公司或个人,则存在泄密及法律风险。
在现有的内容正则匹配实现方法中,hyperscan和pcre正则表达式引擎均能实现字符串的提取。如图1所示,网络传输的数据包可能存在多种方式,存在各种隧道VPN协议。程序需要识别网络的各层信息、需要保证在修改前五元组相同的包,修改后五元组也相同,同时需要保证VPN数据的各层信息也相同。
hyperscan能够同时编译多条规则,实现多条规则的同时匹配,并且性能相对较好,但是hyperscan不支持子串的提取,hyperscan只能匹配到开始位置,不能实现内容的提取。
pcre能够支持子串的提取,能够通过语法提取想要的数据并替换,但是性能比较差,如果存在多条语句,那么内容需要根据pcre定义的pattern匹配多次。
比如下述字符串:
“gender=female&age=60&newuser=1&”
hyperscan能够把上述字符串只做一次匹配查找,就能找到“gender=”,“age=”等关键字,性能好。但是hyperscan不能提取60这个表示真实年龄的字段,脱敏的重点是替换60为其他年龄;pcre能够提取性别female,能够提取年龄60这个数值,但是它需要两条规则,需要拿着两条规则分别对上述字符串查找两次才能实现字符串的查找,功能满足了,但性能上变差了。hyperscan其实也需要两条规则,但两个规则可以同时匹配,匹配只有一次。
传统解包以最内层IP头部建流,如果这么做,如图2所示,编号为1、2、3、4、5都属于同一条流,那么如果这几个包按照同一条流处理的话,那么可能不能完全填充或填充越界。因为2、3、4、5使用的隧道协议不一样、网络层数不一样、传输层数不一样。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明要解决的技术问题是传统解包以最内层IP头部建流,如果这么做,那么如果几个包按照同一条流处理的话,可能不能完全填充或填充越界。其中,不同层中使用的隧道协议不一样、网络层数不一样、传输层数不一样。
本发明采用如下技术方案:
第一方面,本发明提供了一种数据包脱敏方法,方法包括:
解析每一个数据包中包含的各个Layer和Payload,将所述Layer和Payload进行标记;
其中,在所述Layer具体为多层时,所标记出的Layer包含,Layer对应的报文头类型和各层Layer的报文头偏移位置;
所述Payload标记为记录所述Payload的存储指针地址;
根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作。
优选的,使用LayerHdr类进行所述Layer和Payload标记的相关信息的记录;
其中,LayerHdr.Type用于存储Layer对应的报文头类型;LayerHdr.Offset用于存储Layer的报文头偏移位置;
各层Layer和Payload标记的相关信息,被记录在LayerHdr类的数组中。
优选的,所述LayerHdr类数组被设置在Packet类中;
所述Packet类中还记录有各层协议类型的第一个报文头对应的指针地址、各协议类型下最内层的偏移位置和各层数量;
其中,所述第一个报文头对应的指针地址和所述Layer的报文头偏移位置配合实现对一种报文头类型下的各个报文头的寻址;
所述各协议类型下最内层的偏移位置,用于快速的找到最内层的报文头;
所述各层数量,用于在进行数据包脱敏过程时,指定脱敏节点数量和结束脱敏过程时的判定。
优选的,所述预设规则具体包括:
每条匹配规则包含:规则ID、匹配开始正则表达式、匹配结束正则表达式和填充数据类型的至少四项内容;其中,至少四项内容之间用指定符号分隔;
其中,匹配开始正则表达式用于匹配并界定内容的开始位置;
匹配结束正则表达式用于匹配并界定内容的结束位置;
填充数据类型表示开始和结束部分的数据进行脱敏操作时的填充内容。
优选的,根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作,具体包括:
根据所述预设规则中的匹配开始正则表达式和匹配结束正则表达式,确定其所所要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload;
依据上述确定要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload后,在所述LayerHdr对象的指定字段内进行所述匹配开始正则表达式和匹配结束正则表达式的查找;
对于查找到的内容进行对应填充数据类型的替换操作。
优选的,在完成相应脱敏操作后,被替换下来的各层Layer中的报文头相关参数或者报文内容Payload中相关字段,会以加密的形式存储在LayerHdr对象的备份字段;而上述的预设规则以相对LayerHdr对象独立的方式进行存储;
其中,所述备份字段与所述预设规则之间通过具有在系统中唯一性的规则ID进行关联。
优选的,所述Layer具体为多层,标记所述Layer的过程具体包括:
获取Layer中的关键字段,并将关键字段与系统存储的Layer关系网进行匹配;
其中,所述Layer关系网标识了各Layer之间存在的上下级关系;
通过在所述Layer关系网中确定当前Layer的位置,以及其下级可能出现的Layer类型,从而将下一级Layer的标识范围限缩到指定的几个Layer类型中。
优选的,在所述Layer关系网中,所述Layer关系网从前一个Layer类型为后一个Layer类型的上级为基准,包括:
VXLAN、EtherNet、VLAN、IPv4和TCP分支线;
VXLAN、EtherNet、ppp、IPv6和UDP分支线;
VXLAN、EtherNet、VLAN、IPv6和UDP分支线;
VXLAN、EtherNet、ppp、IPv4和TCP分支线中的一条或者多条分支线。
第二方面,本发明还提供了一种数据包脱敏装置,用于实现第一方面所述的数据包脱敏方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的数据包脱敏方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的数据包脱敏方法。
本发明对能够进可能多的解析多次VPN协议数据包,能够分析三层、四层协议;能够对数据包中的三层IP进行修改,起到网络IP层的脱敏;能够实现正则表达式的高性能匹配及子串提取与修改,起到数据内容的脱敏;本发明不仅可以实现数据包的脱敏,也可以用于数据包内容的实时修改,提高软件测试人员数据测试复杂度。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种网络传输的数据包的结构呈现形式;
图2是本发明实施例提供的另一种网络传输的数据包的结构呈现形式;
图3是本发明实施例提供的一种数据包脱敏方法流程示意图;
图4是本发明实施例提供的一种数据包脱敏方法流程示意图;
图5是本发明实施例提供的一种Layer关系网结构示意图;
图6是本发明实施例提供的一种数据包脱敏系统架构示意图;
图7是本发明实施例提供的一种数据包脱敏系统中模块间信令流程示意图;
图8是本发明实施例提供的一种数据包脱敏系统中模块间信令流程示意图;
图9本发明实施例提供的一种数据包脱敏装置结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
发明人发现,数据包脱敏至少应该具备以下功能:
a.能够修改数据包的IP地址,但是数据包中五元组相同的流必须在修改后与修改前保持一致,同时修改之前五元组相同的数据包,修改后的五元组也保持一致。
b.能够支持对PPPOE、Radius、SIP、GTP等特有协议数据包进行修改。
c.能够实现对负载部分敏感数据的提取与修改,包含但不限:邮箱、WEB服务、微信QQ微博账号及密码、姓名、年龄、性别、单位名称、手机号、传真、婚姻、名族、党派、银行账号等。
d.修改后数据包各层协议头部校验和字段正确。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例1提供了一种数据包脱敏方法,如图3所示,方法包括:
在步骤201中,解析每一个数据包中包含的各个Layer和Payload,将所述Layer和Payload进行标记。
在本发明实施例中的所述标记,具体执行过程中是通过相应自定义的LayerHdr类,在创建相应LayerHdr类对象后,在其对象中以数组的形式完成多层Layer的标记。
以图1和图2为例,对于一个数据包而言,其包含的Payload通常也是一个;因此,在本发明具体实现过程中,通常仅需要对其存储位置的指针进行记录即完成了上述的Payload标记过程。
在步骤202中,在所述Layer具体为多层时,所标记出的Layer包含,Layer对应的报文头类型和各层Layer的报文头偏移位置。所述Payload标记为记录所述Payload的存储指针地址。
由于在Layer进行存储过程中,优选的是进行连续存储,因此,边可以通过上述的各层Layer的报文头偏移位置来快速的完成对各层Layer的报文头的定位和寻址。
在步骤203中,根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作。
本发明实施例对能够进可能多的解析多次VPN协议数据包,能够分析三层、四层协议;能够对数据包中的三层IP进行修改,起到网络IP层的脱敏;能够实现正则表达式的高性能匹配及子串提取与修改,起到数据内容的脱敏;本发明实施例不仅可以实现数据包的脱敏,也可以用于数据包内容的实时修改,提高软件测试人员数据测试复杂度。
在本发明实施例中,提供了一种优选实现方式,即使用LayerHdr类进行所述Layer和Payload标记的相关信息的记录;
其中,LayerHdr.Type用于存储Layer对应的报文头类型;LayerHdr.Offset用于存储Layer的报文头偏移位置;
各层Layer和Payload标记的相关信息,被记录在LayerHdr类的数组中。
需要强调的是,在本发明实施例各处出现的相关英文表述和英文对象名称仅仅为了与相关协议标准起到更好的继承和衔接作用,为了本领域技术人员容易理解技术方案而采用的,并不对本发明的保护范围起到实质性的限制作用。例如:作为本领域技术人员,在理解本发明技术思想的前提下,通过简单的名称替换,同样也可以实现本发明技术方案,而由此无需创造性劳动所衍生出的技术方案均属于本发明的保护范围内。
进一步的,在本发明的一种实例场景中,所述LayerHdr类数组被设置在Packet类中;
所述Packet类中还记录有各层协议类型的第一个报文头对应的指针地址、各协议类型下最内层的偏移位置和各层数量;
其中,所述第一个报文头对应的指针地址和所述Layer的报文头偏移位置配合实现对一种报文头类型下的各个报文头的寻址;
所述各协议类型下最内层的偏移位置,用于快速的找到最内层的报文头;
所述各层数量,用于在进行数据包脱敏过程时,指定脱敏节点数量和结束脱敏过程时的判定。
例如:发明人在研发过程中所采用的一种Packet对象定义如下:
//packet.IPv4.SrcAddr or packet.IPv4.DstAddr.
type Packet struct{
L3 unsafe.Pointer//Pointer to L3 header in origin buf
L4 unsafe.Pointer//Pointer to L4 header in origin buf
Data unsafe.Pointer//Pointer to the packet payload data
L3Pro uint8//3层协议
L3Off uint8//3层数组ID
L3Num uint8//3层头的个数
L4Pro uint8//4层协议
L4Off uint8//4层数组ID
L4Num uint8//4层头的个数
PktType uint8//包类型,解析到最后一层或倒数第二层的协议类型;
如HTTP、UDP
HdrNum uint8//报文头个数
Len uint16//总包长
Dlen uint16//负载长度
DataOff uint8//负载偏移
OptLen uint8//IP or IPv6 option len
PPPPro uint8 //PPP头协议
PPPOff uint8 //PPP偏移
Ether*EtherHdr//Pointer to L2 header It is always parsed and pointbeginning of packet.
Raw[]byte//原始字节序列
Hdrs[]LayerHdr//报文头列表,不包含首层Ether
}
每一个数据包均使用该结构表示,Hdrs则表示这个包中的每一层。
每一层表示的数据类型:
type LayerHdr struct{
Type uint8//报文头类型
Off uint8//报文头偏移量
}
Packet对象中含有一个LayerHdr的数组,每一层使用该类型表示;
结合本发明实施例还提供了一种预设规则的具体实现方式,包括:
每条匹配规则包含:规则ID、匹配开始正则表达式、匹配结束正则表达式和填充数据类型的至少四项内容;其中,至少四项内容之间用指定符号分隔;
其中,匹配开始正则表达式用于匹配并界定内容的开始位置;
匹配结束正则表达式用于匹配并界定内容的结束位置;
填充数据类型表示开始和结束部分的数据进行脱敏操作时的填充内容。
将上述介绍的预设规则和相应的定义的LayerHdr类配合起来阐述,则根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作,如图4所示,具体包括:
在步骤301中,根据所述预设规则中的匹配开始正则表达式和匹配结束正则表达式,确定其所所要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload。
在步骤302中,依据上述确定要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload后,在所述LayerHdr对象的指定字段内进行所述匹配开始正则表达式和匹配结束正则表达式的查找。
在步骤303中,对于查找到的内容进行对应填充数据类型的替换操作。
在本发明实施例中,优选的,在完成相应脱敏操作后,被替换下来的各层Layer中的报文头相关参数或者报文内容Payload中相关字段,会以加密的形式存储在LayerHdr对象的备份字段;而上述的预设规则以相对LayerHdr对象独立的方式进行存储;
其中,所述备份字段与所述预设规则之间通过具有在系统中唯一性的规则ID进行关联。
进一步的,在本发明实施例中通过示例的方式,呈现一种具体的预设规则的定义细节和使用过程。
例如:每条规则必须包含四项内容,他们之间用::分隔,即:
规则ID::匹配开始正则表达式::匹配结束正则表达式::填充数据类型
规则ID不能重复,如果规则ID重复,则ID的首条有效,后续相同ID的规则无效
规则ID为四个字节的正整数,预配置的ID自行做了分类;
匹配开始正则表达式用于匹配并界定内容的开始位置;
匹配结束正则表达式用于匹配并界定内容的结束位置;
填充数据类型表示开始和结束部分的数据用什么类型进行填充;目前支持数据类型包括但不限于七种:string integer mailaddr phonenum autostr cnstr jpstr等,框架可以很方便后续扩展其他填充数据类型。
接下来以具体数据实例进行上述预设规则使用过程的介绍:
10002::loginname=::\;|\&::string
如上规则,规则包含四部分
10002是规则ID。
loginname=是匹配内容开始表达式,用于匹配并界定内容的开始;即我们想找以“loginname=”开始的数据。
\;|\&是匹配内容结束正则表达式,用于匹配并界定内容的结束位置,"\"是转义符,即我们想找以;或以&字符结尾的数据。
string是我们替换开始和结束之间内容的数据类型,string表示我们将用数字和字符组成的随机字符串进行内容的替换。
整个语句的含义是,如果内容部分以loginname=开始,并以;或以&字符结尾;那么开始和结束中间的位置的数据即被我们认定为敏感数据,是需要修改和替换的,并且使用string随机字符串进行替换。
在本发明实施例中,所述Layer具体为多层,标记所述Layer的过程具体包括:
获取Layer中的关键字段,并将关键字段与系统存储的Layer关系网进行匹配;
其中,所述Layer关系网标识了各Layer之间存在的上下级关系;
通过在所述Layer关系网中确定当前Layer的位置,以及其下级可能出现的Layer类型,从而将下一级Layer的标识范围限缩到指定的几个Layer类型中。
在上述匹配过程中,还存在一种更优的实现方式,在所述Layer关系网中,所述Layer关系网从前一个Layer类型为后一个Layer类型的上级为基准,包括:
VXLAN、EtherNet、VLAN、IPv4和TCP分支线;
VXLAN、EtherNet、ppp、IPv6和UDP分支线;
VXLAN、EtherNet、VLAN、IPv6和UDP分支线;
VXLAN、EtherNet、ppp、IPv4和TCP分支线中的一条或者多条分支线。
如图5所示,为一个将报文内容(例如Payload)也引入进来后呈现的更为完整的Layer关系网示意图,而上述特征中描述的四条分支线均在相应的图5中有所包含和呈现。在具体实现过程中,一旦限缩到某一条或者某几条分支线,便可以极大的减少Layer类型匹配次数,提高最终的分析效率。
一个数据包网络的层级关系如图5,类似一个网状的结构;图5中箭头指向下一层对象。举例说明:
Ether的下一层可能是IPv4,IPv4的一下层可能是UDP,UDP的下一层可能是VXLAN,VXLAN的下一层是Ether。我们解析数据包把每一层信息放到Hdrs的数组中,把协议类型填充到LayerHdr.Type字段中,把这一层对应数据包位置的偏移填充到LayerHdr.Off字段中。
本发明实施例所提出的方案,至少可以进一步解决了以下几个问题:
1、L3网络层有几层,这些层对应的数据在数据包中的偏移分别是多少,其中每一个L3层的协议版本、源目的IP地址;
方法:程序运行时,通过遍历Hdr,根据LayerHdr.Type类型来判定是否是网络层及版本,然后根据偏移获取IP头或IPv6头信息,来获取源目的IP地址。
2、L4传输层有几层,这些层对应的数据在数据包中的偏移分别是多少,其中每一个L4层的协议及端口号;
方法:程序运行时,通过遍历Hdr,根据LayerHdr.Type类型来判定是否是传输层,然后根据偏移获取TCP或UDP头。
3、如何快速找到最内层的网络层;
方法:Packet.L3Off表示最内层的Hdrs数组下角标,通过L3Off来找到这一层具体的偏移及网络层协议,然后根据偏移获取IP头或IPv6头信息,来获取网络层信息。
4、如果快速找到最内层的传输层;
Packet.L4Off,表示最内层的Hdrs数组下角标,通过L3Off来找到这一层具体的偏移及网络层协议,然后根据偏移获取IP头或IPv6头信息,来获取网络层信息。
5、如何更节省内存的存储上述数据;
方法:中均用1字节表示偏移;每一个包对象都有这样的结构,用这样的结构存储,可以有效节省内存。如果每秒的报文是百万级的pps,节省报文对象的内存可以有效减少报文解析带来的内存消耗。
实施例2:
如图6所示,为对应本发明实施例1方法内容,在具体的软件系统架构中,呈现的逻辑架构图:
其中,desener是脱敏者操作类,它负责串联reader pktpsr pktprocser writer等类的功能,完成数据包脱敏的操作。具体的:
desense是一个操作对象,他创建parser_queue和writer_queue,并示例化reader、writer、pktpsr、pktprocser等对象;为这些实例化对象做初始化工作。
reader是一个读取数据包的类,根据packet resource类型实例化一个数据源,从这个数据源中可以源源不断的读取数据包直至结束。
writer是一个写数据包的类,根据packet resource类型实例化,类型与reader一致。包含写数据包到文件或发送数据包到物理接口。负责把writer_queue中的数据包送到或写入packet resource中。
pktpsr负责读取reader中的数据包,然后五元组初解析,并根据五元组将数据包散列到不同的parser_queue队列中。
pktprocser负责从parser_queue队列中取出数据,然后调用处理器来修改数据包,处理器包含ppppsr、radiuspsr、flowpsr、regexppsr、bgppsr等,pktprocser把Packet对象依次交给这些处理器进行处理,这些处理器根据各自根据自身逻辑和规则对数据包进行修改。所有处理器对这个包处理完成了以后,放到与parser_queue队列ID相同的writer_queue中。pktprocser的个数与parser_queue、writer_queue的队列个数相等,即一个pktprocser对应一个parser_queue队列和一个writer_queue队列。pktprocser与两个队列之间的比例是1:1:1。
一个packet resource可以对应多个pktprocser,他们之间的比例是1:n;n可配置,相当于一个pcap数据源可以有n个线程来处理,把耗性能的地方采用多线程的方式进行处理。
如图7和图8所示的模块之间的信令流程图,相应的流程过程阐述如下:
desense是一个操作对象,他创建parser_queue和writer_queue,并示例化reader、writer、pktpsr、pktprocser等对象;为这些实例化对象做初始化工作。
pktpsr负责读取reader中的数据包,然后五元组初解析,并根据五元组将数据包散列到不同的parser_queue队列中。
pktprocser负责从parser_queue队列中取出数据,然后调用处理器来修改数据包,处理器包含ppppsr、radiuspsr、flowpsr、regexppsr、bgppsr等,pktprocser把Packet对象依次交给这些处理器进行处理,这些处理器根据各自根据自身逻辑和规则对数据包进行修改。所有处理器对这个包处理完成了以后,放到与parser_queue队列ID相同的writer_queue中。pktprocser的个数与parser_queue、writer_queue的队列个数相等,即一个pktprocser对应一个parser_queue队列和一个writer_queue队列。pktprocser与两个队列之间的比例是1:1:1。
一个packet resource可以对应多个pktprocser,它们之间的比例是1:n:n可配置,相当于一个pcap数据源可以有n个线程来处理,把耗性能的地方采用多线程的方式进行处理。
writer是一个写数据包的类,根据packet resource类型实例化,类型与reader一致。包含写数据包到文件或发送数据包到物理接口。负责把writer_queue中的数据包送到或写入packet resource中。
实施例3:
如图9所示,是本发明实施例的基于人体状态的内容推荐装置的架构示意图。本实施例的基于人体状态的内容推荐装置包括一个或多个处理器21以及存储器22。其中,图9中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的数据包脱敏方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行数据包脱敏方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的数据包脱敏方法,例如,执行以上描述的图3和图4所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据包脱敏方法,其特征在于,方法包括:
解析每一个数据包中包含的各个Layer和Payload,将所述Layer和Payload进行标记;
其中,在所述Layer具体为多层时,所标记出的Layer包含,Layer对应的报文头类型和各层Layer的报文头偏移位置;
所述Payload标记为记录所述Payload的存储指针地址;
根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作;
根据所述标记出来的Layer和Payload对数据包进行预设规则匹配下的脱敏操作,具体包括:
根据所述预设规则中的匹配开始正则表达式和匹配结束正则表达式,确定其所要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload;
依据上述确定要脱敏的内容属于各层Layer中的报文头,或者属于报文内容Payload后,在所述LayerHdr对象的指定字段内进行所述匹配开始正则表达式和匹配结束正则表达式的查找;
对于查找到的内容进行对应填充数据类型的替换操作;
其中,匹配开始正则表达式用于匹配并界定内容的开始位置;匹配结束正则表达式用于匹配并界定内容的结束位置。
2.根据权利要求1所述的数据包脱敏方法,其特征在于,使用LayerHdr类进行所述Layer和Payload标记的相关信息的记录;
其中,LayerHdr.Type用于存储Layer对应的报文头类型;LayerHdr.Offset用于存储Layer的报文头偏移位置;
各层Layer和Payload标记的相关信息,被记录在LayerHdr类的数组中。
3.根据权利要求2所述的数据包脱敏方法,其特征在于,所述LayerHdr 类数组被设置在Packet类中;
所述Packet类中还记录有各层协议类型的第一个报文头对应的指针地址、各协议类型下最内层的偏移位置和各层数量;
其中,所述第一个报文头对应的指针地址和所述Layer的报文头偏移位置配合实现对一种报文头类型下的各个报文头的寻址;
所述各协议类型下最内层的偏移位置,用于快速的找到最内层的报文头;
所述各层数量,用于在进行数据包脱敏过程时,指定脱敏节点数量和结束脱敏过程时的判定。
4.根据权利要求1-3任一所述的数据包脱敏方法,其特征在于,所述预设规则具体包括:
每条匹配规则包含:规则ID、匹配开始正则表达式、匹配结束正则表达式和填充数据类型的至少四项内容;其中,至少四项内容之间用指定符号分隔;
填充数据类型表示开始和结束部分的数据进行脱敏操作时的填充内容。
5.根据权利要求1所述的数据包脱敏方法,其特征在于,在完成相应脱敏操作后,被替换下来的各层Layer中的报文头相关参数或者报文内容Payload中相关字段,会以加密的形式存储在LayerHdr对象的备份字段;而上述的预设规则以相对LayerHdr对象独立的方式进行存储;
其中,所述备份字段与所述预设规则之间通过具有在系统中唯一性的规则ID进行关联。
6.根据权利要求1所述的数据包脱敏方法,其特征在于,所述Layer具体为多层,标记所述Layer的过程具体包括:
获取Layer中的关键字段,并将关键字段与系统存储的Layer关系网进行匹配;
其中,所述Layer关系网标识了各Layer之间存在的上下级关系;
通过在所述Layer关系网中确定当前Layer的位置,以及其下级可能出现的Layer类型,从而将下一级Layer的标识范围限缩到指定的几个Layer类型中。
7.根据权利要求1所述的数据包脱敏方法,其特征在于,在所述Layer关系网中,所述Layer关系网从前一个Layer类型为后一个Layer类型的上级为基准,包括:
VXLAN、EtherNet、VLAN、IPv4和TCP分支线;
VXLAN、EtherNet、ppp、IPv6和UDP分支线;
VXLAN、EtherNet、VLAN、IPv6和UDP分支线;
VXLAN、EtherNet、ppp、IPv4和TCP分支线中的一条或者多条分支线。
8.一种数据包脱敏装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-7任一所述的数据包脱敏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589845.4A CN111935081B (zh) | 2020-06-24 | 2020-06-24 | 一种数据包脱敏方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589845.4A CN111935081B (zh) | 2020-06-24 | 2020-06-24 | 一种数据包脱敏方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935081A CN111935081A (zh) | 2020-11-13 |
CN111935081B true CN111935081B (zh) | 2022-06-21 |
Family
ID=73317187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589845.4A Active CN111935081B (zh) | 2020-06-24 | 2020-06-24 | 一种数据包脱敏方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935081B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751845B (zh) * | 2020-12-28 | 2022-12-02 | 北京恒光信息技术股份有限公司 | 网络协议解析方法、系统及装置 |
CN113691562B (zh) * | 2021-09-15 | 2024-04-23 | 神州网云(北京)信息技术有限公司 | 一种精确识别恶意网络通讯的规则引擎实现方法 |
CN114006956A (zh) * | 2021-10-29 | 2022-02-01 | 杭州迪普信息技术有限公司 | 报文数据解析方法、装置及设备 |
CN115065496B (zh) * | 2022-04-13 | 2024-05-07 | 山石网科通信技术股份有限公司 | 网络安全设备上的认证用户角色映射信息生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283888A (zh) * | 2014-10-20 | 2015-01-14 | 中国科学技术大学苏州研究院 | 基于数据包多层封装的隐秘通信方法 |
CN106254231A (zh) * | 2016-08-18 | 2016-12-21 | 中京天裕科技(北京)有限公司 | 一种基于状态的工业安全加密网关及其实现方法 |
CN107395592A (zh) * | 2017-07-19 | 2017-11-24 | 武汉信安珞珈科技有限公司 | 一种网络协议数据包的安全处理方法和系统 |
CN108154047A (zh) * | 2017-12-25 | 2018-06-12 | 网智天元科技集团股份有限公司 | 一种数据脱敏方法和装置 |
CN108683643A (zh) * | 2018-04-25 | 2018-10-19 | 杭州闪捷信息科技股份有限公司 | 一种基于流式处理的数据脱敏系统及其脱敏方法 |
CN109150916A (zh) * | 2018-10-25 | 2019-01-04 | 盛科网络(苏州)有限公司 | 一种在mpls l2vpn网络中实现内层数据加密的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8428069B2 (en) * | 1998-08-19 | 2013-04-23 | Wayne Richard Howe | Stealth packet switching |
US10044841B2 (en) * | 2011-11-11 | 2018-08-07 | Pismo Labs Technology Limited | Methods and systems for creating protocol header for embedded layer two packets |
-
2020
- 2020-06-24 CN CN202010589845.4A patent/CN111935081B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283888A (zh) * | 2014-10-20 | 2015-01-14 | 中国科学技术大学苏州研究院 | 基于数据包多层封装的隐秘通信方法 |
CN106254231A (zh) * | 2016-08-18 | 2016-12-21 | 中京天裕科技(北京)有限公司 | 一种基于状态的工业安全加密网关及其实现方法 |
CN107395592A (zh) * | 2017-07-19 | 2017-11-24 | 武汉信安珞珈科技有限公司 | 一种网络协议数据包的安全处理方法和系统 |
CN108154047A (zh) * | 2017-12-25 | 2018-06-12 | 网智天元科技集团股份有限公司 | 一种数据脱敏方法和装置 |
CN108683643A (zh) * | 2018-04-25 | 2018-10-19 | 杭州闪捷信息科技股份有限公司 | 一种基于流式处理的数据脱敏系统及其脱敏方法 |
CN109150916A (zh) * | 2018-10-25 | 2019-01-04 | 盛科网络(苏州)有限公司 | 一种在mpls l2vpn网络中实现内层数据加密的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111935081A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935081B (zh) | 一种数据包脱敏方法和装置 | |
US20200336423A1 (en) | Apparatus and method of generating lookups and making decisions for packet modifying and forwarding in a software-defined network engine | |
US8180803B2 (en) | Deterministic finite automata (DFA) graph compression | |
US7949683B2 (en) | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph | |
US7570661B2 (en) | Script-based parser | |
US9019837B2 (en) | Packet modification to facilitate use of network tags | |
US9398033B2 (en) | Regular expression processing automaton | |
US9882808B2 (en) | Packet processing method and apparatus | |
US8681819B2 (en) | Programmable multifield parser packet | |
US9606781B2 (en) | Parser engine programming tool for programmable network devices | |
RU2608874C2 (ru) | Способ и устройство для модификации и переадресации сообщения в сети передачи данных | |
WO2020087400A1 (zh) | 一种报头解析装置及方法 | |
CN108628966B (zh) | 一种基于字符串的快速匹配识别方法和装置 | |
CN114296707B (zh) | 基于p4语言实现的可编程硬件逻辑架构和逻辑实现方法 | |
CN116634046A (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN114327833A (zh) | 一种基于软件定义复杂规则的高效流量处理方法 | |
WO2012083748A1 (zh) | 一种基于深度包检测的协议跨包检测方法和装置 | |
CN115277553B (zh) | 一种流表存储方法、装置、设备和计算机可读存储介质 | |
CN114422624B (zh) | 数据接收方法 | |
CN115801927A (zh) | 报文解析方法及装置 | |
WO2021077879A1 (zh) | 以太网报文的编程方法和装置 | |
CN109688043B (zh) | 一种imap协议多链接关联解析方法及系统 | |
JP4408052B2 (ja) | パケットクラシファイア装置 | |
CN116866456A (zh) | 以太网报文解析方法、系统、介质及交换机芯片 | |
CN117478458A (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 |