一种域名黑白名单处理方法、系统、电子设备及存储介质与流程


1.本技术涉及云计算

技术领域


,具体而言,涉及一种域名黑白名单处理方法、系统、电子设备及存储介质。

背景技术


:2.在云计算产品中,实现对虚拟机的安全防护是最基本的要求,一般采用两种方式:基于iptables和ipset安全组防护;基于ovn中的openflow流表进行安全防护。比如在openstack当中,会使用iptables技术对虚拟机进行四层的安全防护,在ovn中通过openflow进行安全防护。3.通常所有基于开源技术的安全防护都是四层防护,也即端口、协议号和cidr。但是往往四层安全防护是不够的,四层安全防护无法满足限制域名的需求,管理员无法通过定制域名黑白名单限制用户只能访问特定网址或者禁用某些网址。技术实现要素:4.本技术实施例的目的在于提供一种域名黑白名单处理方法、系统、电子设备及存储介质,在内核中对数据包进行分析,实现域名黑白名单的处理,实现了七层安全防护功能,缩短安全规则匹配路径,提高数据包转发性能,解决了现有方法在虚拟化环境中,只能进行四层安全防护的问题。5.本技术实施例提供了一种域名黑白名单处理方法,应用于内核执行模块,所述方法包括:6.对接收到的数据包进行连接跟踪检查;7.对通过所述连接跟踪检查的数据包进行过滤检索,以获得目标类型数据包;8.对所述目标类型数据包进行url提取,以获得对应的域名信息;9.利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理。10.在上述实现过程中,在内核执行模块对数据包进行解析和提取,获得域名信息,利用预先配置的域名黑白名单实现域名匹配的安全规则,可达到七层防护,解决了现有方法在虚拟化环境中,只能进行四层安全防护的问题。11.进一步地,所述对接收到的数据包进行连接跟踪检查,包括:12.对所述数据包进行过滤,以获得连接跟踪状态为established且没有被url过滤器标记的数据包。13.在上述实现过程中,连接跟踪状态为established且没有被url过滤器标记的数据包,避免重复获得同一个数据包,从而尽可能的减少对性能的影响。14.进一步地,所述目标类型数据包包括http数据包,所述对所述目标类型数据包进行url提取,以获得对应的域名信息,包括:15.对于80端口和443端口的http数据包,循环检测http协议头部;16.对host后面的字符串进行提取。17.在上述实现过程中,给出了http数据包的提取,http报文是不加密的,可直接移动skb指针偏移到tcp的数据部分进行提取。18.进一步地,所述目标类型数据包包括https数据包,所述对所述目标类型数据包进行url提取,以获得对应的域名信息,包括:19.提取tlsclienthello报文中的servername字段。20.在上述实现过程中,https的报文是加密的,可基于三次握手建立完连接后的tlsclienthello报文进行提取。21.进一步地,在所述利用预先配置的黑白名单对所述域名信息进行黑白名单匹配的步骤之前,所述方法还包括:22.接收策略处理模块基于黑白域名数据库的数据变化更新的url配置。23.在上述实现过程中,通过黑白域名数据库的数据变化更新url配置,实现对域名黑白名单的及时更新。24.进一步地,所述利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理,包括:25.若是所述域名信息匹配到白名单,则直接转发;26.若所述域名信息匹配到黑名单,则进行drop操作或者重定向。27.在上述实现过程中,对域名黑白名单进行匹配处理,实现了基于openvswitch的域名黑白名单控制,实现高性能、高效率处理域名黑白名单的功能,也可以云原生支持了安全组七层安全防护的需求。28.本技术实施例还提供一种域名黑白名单处理系统,所述系统包括:29.内核执行模块,用于对接收到的数据包进行分析和提取,以获得域名信息,并利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配。30.在上述实现过程中,在内核执行模块对数据包进行解析和提取,获得域名信息,利用预先配置的域名黑白名单实现域名匹配的安全规则,可达到七层防护,解决了现有方法在虚拟化环境中,只能进行四层安全防护的问题。31.进一步地,所述系统还包括:32.管理模块,用于接收用户的增加请求、修改请求和删除请求并发送至策略处理模块;33.所述策略处理模块,用于基于用户请求对域名黑白名单进行相应地增加、修改和删除操作,并根据黑白域名数据库中的数据变化更新所述内核执行模块中的url配置。34.在上述实现过程中,基于用户设置请求对域名黑白名单进行更新并同步更新内核执行模块中的url配置,从而利用域名黑白名单实现七层安全防护。35.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的域名黑白名单处理方法。36.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的域名黑白名单处理方法。附图说明37.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。38.图1为本技术实施例提供的一种域名黑白名单处理方法的流程图;39.图2为本技术实施例提供的现有的ovsdatapath数据转发的流程图;40.图3为本技术实施例提供的数据转发流程图;41.图4为本技术实施例提供的域名黑白名单具体处理流程图;42.图5为本技术实施例提供的http数据包的url提取流程图;43.图6为本技术实施例提供的域名信息匹配流程图;44.图7为本技术实施例提供的域名黑白名单处理系统的结构框图。45.图标:46.100-内核执行模块;200-管理模块;300-策略处理模块。具体实施方式47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。49.实施例150.请参看图1,图1为本技术实施例提供的一种域名黑白名单处理方法的流程图。该方法应用于计算节点的内核执行模块100,在虚拟化环境中,虚拟机的所有流量都必须经过内核执行模块100,内核执行模块100在收到数据包之后,对数据包内容进行分析和提取,根据配置的域名黑白名单进行匹配,实现域名黑白名单的功能。51.如图2所示,为现有的ovsdatapath数据转发的流程图,具体地,从openvswitch的内核执行模块100中的ovs_vport_recevie接收到数据包之后,按照原生openvswitch逻辑进行构造key进行流表匹配。52.如图3所示,为本技术的数据转发流程图,ovs_vport_receive接收数据包,url过滤发生在ovs_vport_receive接收数据包之后,就会立即进行域名黑白名单的匹配处理,根据结果会有直接drop数据包和放行数据包继续执行后续流表匹配流程两种动作。对于具体的域名黑白名单的匹配处理,该方法具体包括以下步骤:53.步骤s100:对接收到的数据包进行连接跟踪检查;54.步骤s200:对通过所述连接跟踪检查的数据包进行过滤检索,以获得目标类型数据包;55.步骤s300:对所述目标类型数据包进行url提取,以获得对应的域名信息;56.步骤s400:利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理。57.如图4所示,为域名黑白名单具体处理流程图,其中,步骤s100具体包括以下步骤:58.对所述数据包进行过滤,以获得连接跟踪状态为established且没有被url过滤器标记的数据包。59.ovs数据包入口(ovs_vport_receive)接收到数据包之后,首先进行连接跟踪检查(对应图中matchctstatus),在ovs的kernelmodeldatapath中,在接收包入口获取到skb数据包之后,首先会检查连接跟踪状态(ctstatus)。60.连接跟踪状态判断是一个重要的过程,这是为了尽可能的减少对性能的影响,可对数据包进行过滤,具体地:61.连接跟踪状态必须是established,因为http和https必须在tcp三次握手之后才会交互数据,所以连接跟踪状态必须是established;62.连接跟踪状态没有被打上url_filter的mark,因为在url_filter模块(url过滤器)中,对于已经进行匹配的连接,会打上ctmark,避免同一个连接重复进入url_filter模块。63.对报文进行检索,检查报文是否为http/https报文,若是,则针对80端口和443端口,提取url。64.如图5所示,为http数据包的url提取流程图,步骤s300具体包括以下步骤:65.步骤s311:对于80端口和443端口的http数据包,循环检测http协议头部;66.步骤s312:对host后面的字符串进行提取。67.对于http数据包的提取,http报文是不加密的,提取url较为简单,直接移动skb指针偏移到tcp的数据部分。http协议头部的每一行结尾都是\r\n(0x0d0x0a)。循环检测头部,当匹配到"host"时,对其后面的字符串进行提取,即为域名信息。68.对于https数据包,提取tlsclienthello报文中的servername字段。69.对于https数据包的提取,https的报文是加密的,但是三次握手建立完连接后的tlsclienthello报文(tlsclienthello的报文特征是头为:0x160x030x01)中会携带servername字段,提取此字段存储的数据即为域名信息。70.在利用预先配置的黑白名单对所述域名信息进行黑白名单匹配的步骤之前,还需要接收策略处理模块300基于黑白域名数据库的数据变化更新的url配置。71.具体的配置过程将在实施例2中详细说明,在此不做赘述。72.如图6所示,为域名信息匹配流程图,步骤s400具体包括以下步骤:73.步骤s401:若是所述域名信息匹配到白名单,则直接转发;74.步骤s402:若所述域名信息匹配到黑名单,则进行drop操作或者重定向。75.将提取得到的url信息进入过滤器提交黑白名单处理模块函数,进行黑白名单匹配。76.具体地,对黑名单的域名进行drop操作或者重定向,对白名单的域名进行accept操作,由此实现了基于openvswitch的域名黑白名单控制,通过此方式可以高性能高效率处理域名黑白名单功能,也可以云原生支持了安全组七层安全的需求。77.该方法可在虚拟化环境的安全组功能中,使虚拟机防护功能可以达到七层;直接在内核处理模块进行数据包域名策略的处理,不需要经过用户态也不需要把数据包重定向给第三方设备,缩短了数据包处理的路径,提升数据包转发的效率。78.实施例279.本技术实施例提供一种域名黑白名单处理系统,在openvswitch的虚拟化环境中,对虚拟机的安全防护增加了域名黑白名单功能,让openvswitch的数据包在流表匹配之前进行域名黑白名单的处理,提供给虚拟机七层安全防护;不需要将数据包返回给用户态,更不需要将数据包重定向给第三方设备处理,不仅减少内存的拷贝,更缩短数据包流向路径,即满足域名控制的需求,也最大程序提升了数据包转发效率。80.该系统在openvswitch虚拟化网络中,通过底层内核分析数据包,与用户所配置的域名黑白名单结合,从虚拟化底层支持对虚拟机的七层安全防护,实现高性能的域名黑白名单控制。81.如图7所示,为域名黑白名单处理系统的结构框图,所述系统包括但不限于:82.内核执行模块100,用于对接收到的数据包进行分析和提取,以获得域名信息,并利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配。83.具体地,对接收到的数据包进行连接跟踪检查;84.对通过所述连接跟踪检查的数据包进行过滤检索,以获得目标类型数据包;85.对所述目标类型数据包进行url提取,以获得对应的域名信息;86.利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理。87.管理模块200,用于接收用户的增加请求、修改请求和删除请求并发送至策略处理模块300;88.所述策略处理模块300,用于基于用户请求对域名黑白名单进行相应地增加、修改和删除操作,并根据黑白域名数据库中的数据变化更新所述内核执行模块100中的url配置。89.管理模块200即为域名黑白名单策略管理模块,为管理节点,用于管理域名黑白名单策略,该模块功能为接收用户设置请求,并且将请求下发给虚拟化集中的计算节点。请求类型包括:增加域名黑白名单请求、修改域名黑白名单请求和删除域名黑白名单请求。90.管理模块200将根据用户设置的策略,以元数据方式保留一份在管理节点当中,并且由于虚拟化集中可能出现多个计算节点,该管理模块200需要以心跳信息的方式与各个计算节点中的策略处理模块300进行域名黑白名单同步。91.计算节点包括策略处理模块300和内核执行模块100。92.策略处理模块300对域名黑白名单进行处理,具体分为两种情况:93.第一种,计算节点在运行过程中,执行域名黑白名单处理请求;第二种,系统启动时初始化数据库已有域名黑白名单。94.当计算节点处于运行状态时,管理模块200将用户请求发送给策略处理模块300中的策略处理agent,该策略处理agent收到之后,以json-rpc方式通过ovsdb-server接入黑白域名数据库中,ovs-vswitchd监测到数据库发生变化时,调用urlexec程序更新内核执行模块100的datapatch中的url配置。例如,监测到ovsdb-server添加域名黑名单时,ovs-vswitchd通过urlexec程序以netlink接口方式往内核执行模块100的datapatch中添加相关url配置。95.当计算节点第一次系统启动时,ovs-vswitchd调用urlexec初始化datapatch内核的url_filter_list,初始化完成之后,urlexec会根据ovsdb-server数据库中的信息配置域名黑白名单策略,从而交给内核执行模块100域名黑白名单执行动作。96.作为其中一种实施方式,该系统可以应用于利用openvswitch作为网络虚拟化基础的云计算产品中,比如超融合与企业云等。97.该系统修改openvswitch内核处理模块的数据包处理流程,在内核处理模块中,对安全组中的虚拟机所属的内核虚拟设备进行数据包转发匹配之前,进行域名黑白名单的处理。具体地:98.步骤s11:系统启动,用户态进程ovs-vswitchd调用urlexec进行内核模块关于黑白名单列表的初始化,并且通过urlexec将ovsdb数据库中的数据配置内核模块相关的位置;99.步骤s12:初始化完成之后,用户从云计算产品的前端界面可以在安全组中添加域名黑白名单,并且下发给后端执行;100.步骤s13:后端将域名黑名单设置到内核对应的内存当中,或者将白名单设置至内核对应的内存当中;101.步骤s14:当黑白名单中有对应的数据时,在内核模块收到数据包之后,依据本发明提出的方式,判断连接是否已经建立,如已建立则直接进行下一步转发处理,如未建立则先下一步处理;102.步骤s15:当数据包是未建立的链接时,属于新的链接的时候,会对数据包进行分析,并且将域名信息提取出来,并且进行黑白名单的处理;103.步骤s16:提取的域名与域名黑名单的列表匹配时请求会被直接阻断,相反的,提取的域名与域名白名单列表匹配时访问请求会被直接放行。104.该系统在内核执行模块100对数据包进行解析和提取,获得域名信息,利用预先配置的域名黑白名单实现域名匹配的安全规则,可达到七层防护,解决了现有方法在虚拟化环境中,只能进行四层安全防护的问题。105.本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行实施例1所述的域名黑白名单处理方法。106.本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的域名黑白名单处理方法。107.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。108.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。109.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。110.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。111.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本

技术领域


的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。112.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。当前第1页12

技术特征:


1.一种域名黑白名单处理方法,其特征在于,应用于内核执行模块,所述方法包括:对接收到的数据包进行连接跟踪检查;对通过所述连接跟踪检查的数据包进行过滤检索,以获得目标类型数据包;对所述目标类型数据包进行url提取,以获得对应的域名信息;利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理。2.根据权利要求1所述的域名黑白名单处理方法,其特征在于,所述对接收到的数据包进行连接跟踪检查,包括:对所述数据包进行过滤,以获得连接跟踪状态为established且没有被url过滤器标记的数据包。3.根据权利要求1所述的域名黑白名单处理方法,其特征在于,所述目标类型数据包包括http数据包,所述对所述目标类型数据包进行url提取,以获得对应的域名信息,包括:对于80端口和443端口的http数据包,循环检测http协议头部;对host后面的字符串进行提取。4.根据权利要求1所述的域名黑白名单处理方法,其特征在于,所述目标类型数据包包括https数据包,所述对所述目标类型数据包进行url提取,以获得对应的域名信息,包括:提取tls client hello报文中的server name字段。5.根据权利要求1所述的域名黑白名单处理方法,其特征在于,在所述利用预先配置的黑白名单对所述域名信息进行黑白名单匹配的步骤之前,所述方法还包括:接收策略处理模块基于黑白域名数据库的数据变化更新的url配置。6.根据权利要求1所述的域名黑白名单处理方法,其特征在于,所述利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理,包括:若是所述域名信息匹配到白名单,则直接转发;若所述域名信息匹配到黑名单,则进行drop操作或者重定向。7.一种域名黑白名单处理系统,其特征在于,所述系统包括权利要求1-6任一项所述的内核执行模块:所述内核执行模块,用于对接收到的数据包进行分析和提取,以获得域名信息,并利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配。8.根据权利要求7所述的域名黑白名单处理系统,其特征在于,所述系统还包括:管理模块,用于接收用户的增加请求、修改请求和删除请求并发送至策略处理模块;所述策略处理模块,用于基于用户请求对域名黑白名单进行相应地增加、修改和删除操作,并根据黑白域名数据库中的数据变化更新所述内核执行模块中的url配置。9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行根据权利要求1至6中任一项所述的域名黑白名单处理方法。10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至6任一项所述的域名黑白名单处理方法。

技术总结


本申请实施例提供一种域名黑白名单处理方法、系统、电子设备及存储介质,涉及云计算技术领域。该方法包括对接收到的数据包进行连接跟踪检查;对通过所述连接跟踪检查的数据包进行过滤检索,以获得目标类型数据包;对所述目标类型数据包进行URL提取,以获得对应的域名信息;利用预先配置的域名黑白名单对所述域名信息进行黑白名单匹配,并进行相应处理;该方法在内核中对数据包进行分析,实现域名黑白名单的处理,实现了七层安全防护功能,缩短安全规则匹配路径,提高数据包转发性能,解决了现有方法在虚拟化环境中,只能进行四层安全防护的问题。的问题。的问题。


技术研发人员:

蔡立宇

受保护的技术使用者:

北京天融信科技有限公司 北京天融信软件有限公司

技术研发日:

2022.11.29

技术公布日:

2023/3/3

本文发布于:2024-09-23 07:23:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/64390.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   域名   黑白   数据包
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议