专利摘要
本发明公开一种基于SDN网络架构的隐藏端口检测方法,首先通过编码控制SDN交换机实现网络三层交换,在交换过程中,控制器通过响应PacketedIn消息,对消息中包含的SDN交换机DatapathId、MAC地址、源IP、源端口信息所组成的四元组进行内存映射,以获取网络架构下所有主机通信构成的可信视图;同时通过客户代理的方式,在应用层监听获取主机通信所建立的IP和端口信息,并与SDN控制器建立通信。使用SDN控制器对客户端代理发送的消息过滤,提取主机通信包含的四元组信息并进行内存映射,以获取架构下所有主机非可信的通信视图。在SDN控制器具有可信与非可信视图的前提下,通过交叉检测的方法即能够发现隐藏端口通信所建立的连接。
权利要求
1.一种基于SDN网络架构的隐藏端口检测方法,其特征是,包含如下步骤:
步骤S1.主机代理服务,获取主机通信所建立的非可信视图,并以增量的形式发送主机连接变化的信息;
步骤S2.包过滤,主机代理传递的数据包在经过SDN交换机时,在流表中没有匹配到流表项,则触发数据包到达事件回调解析数据包,并对内容进行解析,同时按照防护模块制定的规则进行判定,过滤处理掉非法数据包;
步骤S3.消息预处理,针对包过滤得到的结果,进行消息分类,对控制消息调用控制消息处理模块,通过控制器核心直接发响应操作包,对数据消息调用数据消息处理模块,通过控制器内存分别映射主机代理信息反映的非可信连接视图,以及主机连接信息反映的可信连接视图;
步骤S4.隐藏端口检测,根据在SDN控制器端内存映射的可信与非可信视图,进行交叉检测,利用可信与非可信视图的差集,得到位于主机和隐藏端口的信息。
2.根据权利要求1所述的一种基于SDN网络架构的隐藏端口检测方法,其特征是,所述步骤S1具体包括如下步骤:
步骤S11.代理服务调用用户层接口,周期性的获取主机中通过终端可见的网络连接信息,连接信息包括源IP,源端口,其工作模式为惰性模式,即总是将本周期获取的连接信息,与上次获取的连接信息进行比较,发现建立新连接或断开旧连接后才会生成对应的代理信息;
步骤S12.代理对主机连接变化产生的多个信息进行压缩处理,再对该数据包进行特征标记,确保该数据包经过SDN交换机时不能与流表项进行匹配,以达到与SDN控制器进行通信,并被过滤识别的目的。
3.根据权利要求2所述的一种基于SDN网络架构的隐藏端口检测方法,其特征是,步骤S11生成代理消息的过程中,若连接出现在本地查询而未出现在上次查询中,表明本次查询得到的连接为新建的连接;若连接出现在上次而未在本次查询中,表明本次查询得到的连接为断开的连接;若连接无变化,则不需要生成代理信息。
4.根据权利要求1所述的一种基于SDN网络架构的隐藏端口检测方法,其特征是,所述步骤S2具体包括如下步骤:
步骤S21.数据包在经过SDN交换机在流表中没有匹配到流表项时,会被发送到SDN控制器的包过滤器处理,并触发数据包到达事件,通过响应数据包到达事件的回调信息,该信息包括SDN交换机标识、源MAC地址和数据包内容;
步骤S22.调用自定义网络防护模块,判断数据包内容是否具有网络攻击特征;对于具有网络攻击特征的数据包,通过控制器通知SDN交换机采取丢弃操作;若通过数据包通过防护模块验证,则执行步骤S3。
5.根据权利要求1所述的一种基于SDN网络架构的隐藏端口检测方法,其特征是,所述步骤S3具体包括如下步骤:
步骤S31.根据步骤S2得到的数据包,对其进一步合法检测;
步骤S32.若数据包既不属于控制信息,也不属于数据信息,则触发异常回调对异常信息进行日志记录,并丢弃该数据包,其中异常信息包括交换机标识、源IP、源端口、目的IP、目的端口;否则,执行步骤S33;
步骤S33.若数据包内容为控制信息,即消息属于特征查询、信令同步等控制消息请求,则调用控制消息处理模块,根据协议响应消息,通过SDN控制器直接与主机进行交互;否则,执行步骤S34;
步骤S34.若数据包内容为数据信息,则调用数据消息处理模块对数据信息进行下一步过滤;若数据信息为主机代理信息,则通过内存映射代理反馈的连接信息;若数据信息为主机通信产生的网络数据流信息,则通过内存映射网络反馈的连接信息。
说明书
技术领域
本发明涉及互联网技术领域,具体涉及一种基于SDN网络架构的隐藏端口检测方法。
背景技术
当前网络环境对网络安全状况的监控大多通过部署入侵检测系统来检测攻击流量,并联合部署的防护设备阻截攻击的流量。随着网络服务的不断丰富和网络环境的日益复杂,面对各种各样的APT(AdvancedPersistentThreat)攻击技术,传统网络设备很难全面检测并一一阻截。在主机被渗透并被植入隐藏端口的木马或后门的情况下,通过现有工具难以发现其传输消息的端口,同时木马的通信流量在上行特征不明显的情况下也难以被监控设备所识别。在主机检测和网络检测都判断正常的情况下,木马的生存时间将大大延长,这意味着用户的损失也越大。
当前的隐藏端口检测方法,大多针对特定系统的主机,并且为了保证对隐藏端口的Rootkit有较好的检测效果,其多采用修改底层驱动的方法,这就使得此类方法的兼容性和平台性较差,不利于实际环境的部署。同时,当今隐藏端口的方法日益独特,许多基于硬件虚拟化技术隐藏端口的方法仍然难以被已有的检测方法所检测。针对上述情况,如何通过实时监控快速发现隐藏端口的通信,并使得运行环境具有良好的兼容性,将显得至关重要。
发明内容
本发明所要解决的技术问题是现有隐藏端口检测方法兼容性和检测效果不理想的问题,并为此提供一种基于SDN网络架构的隐藏端口检测方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种基于SDN网络架构的隐藏端口检测方法,包含如下步骤:
步骤S1.主机代理服务,获取主机通信所建立的非可信视图,并以增量的形式发送主机连接变化的信息;
步骤S2.包过滤,主机代理传递的数据包在经过SDN交换机时,在流表中没有匹配到流表项,则触发数据包到达事件回调解析数据包,并对内容进行解析,同时按照防护模块制定的规则进行判定,过滤处理掉非法数据包;
步骤S3.消息预处理,针对包过滤得到的结果,进行消息分类,对控制消息调用控制消息处理模块,通过控制器核心直接发响应操作包,对数据消息调用数据消息处理模块,通过控制器内存分别映射主机代理信息反映的非可信连接视图,以及主机连接信息反映的可信连接视图;
步骤S4.隐藏端口检测,根据在SDN控制器端内存映射的可信与非可信视图,进行交叉检测,利用可信与非可信视图的差集,得到位于主机和隐藏端口的信息。
所述步骤S1具体包括如下步骤:
步骤S11.代理服务调用用户层接口,周期性的获取主机中通过终端可见的网络连接信息,连接信息包括源IP,源端口,其工作模式为惰性模式,即总是将本周期获取的连接信息,与上次获取的连接信息进行比较,发现建立新连接或断开旧连接后才会生成对应的代理信息;
步骤S12.代理对主机连接变化产生的多个信息进行压缩处理,再对该数据包进行特征标记,确保该数据包经过SDN交换机时不能与流表项进行匹配,以达到与SDN控制器进行通信,并被过滤识别的目的。
步骤S11生成代理消息的过程中,若连接出现在本地查询而未出现在上次查询中,表明本次查询得到的连接为新建的连接;若连接出现在上次而未在本次查询中,表明本次查询得到的连接为断开的连接;若连接无变化,则不需要生成代理信息。
所述步骤S2具体包括如下步骤:
步骤S21.数据包在经过SDN交换机在流表中没有匹配到流表项时,会被发送到SDN控制器的包过滤器处理,并触发数据包到达事件,通过响应数据包到达事件的回调信息,该信息包括SDN交换机标识、源MAC地址和数据包内容;
步骤S22.调用自定义网络防护模块,判断数据包内容是否具有网络攻击特征;对于具有网络攻击特征的数据包,通过控制器通知SDN交换机采取丢弃操作;若通过数据包通过防护模块验证,则执行步骤S3。
所述步骤S3具体包括如下步骤:
步骤S31.根据步骤S2得到的数据包,对其进一步合法检测;
步骤S32.若数据包既不属于控制信息,也不属于数据信息,则触发异常回调对异常信息进行日志记录,并丢弃该数据包,其中异常信息包括交换机标识、源IP、源端口、目的IP、目的端口;否则,执行步骤S33;
步骤S33.若数据包内容为控制信息,即消息属于特征查询、信令同步等控制消息请求,则调用控制消息处理模块,根据协议响应消息,通过SDN控制器直接与主机进行交互;否则,执行步骤S34;
步骤S34.若数据包内容为数据信息,则调用数据消息处理模块对数据信息进行下一步过滤;若数据信息为主机代理信息,则通过内存映射代理反馈的连接信息;若数据信息为主机通信产生的网络数据流信息,则通过内存映射网络反馈的连接信息。
与现有技术相比,本发明首先通过编码控制SDN交换机实现网络三层交换,在交换过程中,控制器通过响应PacketedIn(数据包到达)消息,对消息中包含的SDN交换机DatapathId(交换机的标识)、MAC地址、源IP、源端口信息所组成的四元组进行内存映射,以获取网络架构下所有主机通信构成的可信视图;同时通过客户代理的方式,在应用层监听获取主机通信所建立的IP和端口信息,并与SDN控制器建立通信。使用SDN控制器对客户端代理发送的消息过滤,提取主机通信包含的四元组信息并进行内存映射,以获取架构下所有主机非可信的通信视图。在SDN控制器具有可信与非可信视图的前提下,通过交叉检测的方法即能够发现隐藏端口通信所建立的连接。
附图说明
图1是基于SDN网络架构的隐藏端口检测方法总体结构框图。其中→表示主机流量, 表示汇聚流量, 表示控制信息, 表示数据信息。
图2是代理服务工作流程图。
图3是SDN控制器包过滤服务的工作流程图。
图4是SDN控制器消息管理器工作流程图。
图5是SDN控制器隐藏端口检测流程图。
具体实施方式
下面结合附图,给出本发明的具体实施例。需要说明的是:实施例中的参数并不影响本发明的一般性。
参见图1,本发明的设计思想是:无论隐藏端口的程序存在于系统的应用层、内核层还是硬件层,其都不会被用户通过终端可见,却无法隐匿于网络。依据该事实,采用基于SDN的网络架构,首先通过编码SDN控制器实现SDN交换机的三层网络交换,使得架构下主机发起的任何连接都能够在经过流表处理的时候被记录,从而在SDN控制器中能够得到主机连接的可信视图;然后通过主机代理调用应用层接口,获取提供主机的非可信连接视图,同时主机代理与SDN控制器进行通信,继而在SDN控制器中能够得到主机连接的非可信视图;最后将可信视图与非可信视图进行差集运算,即可获取架构下隐藏端口主机的源IP、源端口、目的IP、目的端口,以达到实时检测主机隐藏端口的效果。
结合图2-图5对基于SDN网络架构的各个过程做进一步说明。即一种基于SDN网络架构的隐藏端口检测方法,具体包含如下步骤:
S1.主机代理服务,获取主机通信所建立的非可信视图,并以增量的形式发送主机连接变化的信息,具体包括如下步骤:
S11.代理服务调用用户层接口,周期性的获取主机中通过终端可见的网络连接信息,连接信息包括源IP,源端口,其工作模式为惰性模式,即总是将本周期获取的连接信息,与上次获取的连接信息进行比较,发现建立新连接或断开旧连接后才会生成对应的代理信息。生成代理消息的过程中,若连接出现在本地查询而未出现在上次查询中,表明本次查询得到的连接为新建的连接。若连接出现在上次而未在本次查询中,表明本次查询得到的连接为断开的连接。若连接无变化,则不需要生成代理信息。
S12.代理对主机连接变化产生的多个信息进行压缩处理,使之尽量存放到一个数据包中。为降低网络带宽考虑,本发明对信息进行压缩使其尽量将每个周期内连接的变化信息放到一个数据包中,若特定版本的SDN控制器对于单个数据包大小有限制,则按照其能够识别的单个数据包的最大字节进行对齐拆分。然后对该数据包进行特征标记,确保该数据包经过SDN交换机时不能命中流表项,以此达到代理与SDN控制器进行通信,并被过滤识别的目的。在本发明中,对数据包进行特征标记有诸多方法,如采用UDP协议以及特定的端口号,这样使得在三层过滤的时候能够较快识别主机代理传输的信息。
S2.包过滤,包括数据内容提取、数据内容验证等,具体包括以下步骤:
S21.数据包在经过SDN交换机并发生table-miss(即数据包在流表中没有匹配到流表项)时,会被发送到SDN控制器的包过滤器处理,并触发PacketedIn事件,通过响应PacketedIn事件的回调信息,该信息包括SDN交换机DatapathId、源MAC地址、数据包内容。在本发明中,对数据包经过SDN交换机发生table-miss并触发PacketedIn事件的描述,均适用于当前已有的SDN控制器,即根据响应PacketedIn事件的回调信息的各个字段中提取SDN交换机DatapathId、源MAC地址、数据包内容。
S22.调用自定义网络防护模块,判断数据包内容是否具有网络攻击特征,对于具有网络攻击特征的数据包,通过控制器通知SDN交换机采取丢弃操作。若通过数据包通过防护模块验证,则执行S3。网络防护模块作为初步的数据包过滤,或者作为网络架构的防护模块,对于基于该架构的过滤都考虑在此实现。
S3.消息预处理,针对包过滤得到的结果,进行消息分类,对控制消息调用控制消息处理模块,通过控制器核心直接发响应操作包,对数据消息调用数据消息处理模块,通过控制器内存分别映射主机代理信息反映的非可信连接视图,以及主机连接信息反映的可信连接视图。
S31.根据S2得到的数据包,对其进一步合法检测。若数据包既不属于控制信息,也不属于数据信息,则触发异常回调对异常信息进行日志记录,并丢弃该数据包,其中异常信息包括交换机DatapathId、源IP、源端口、目的IP、目的端口。否则,执行S32。
S32.若数据包内容为控制信息,即消息属于特征查询、信令同步等控制消息请求,则调用控制消息处理模块,根据协议响应消息,通过SDN控制器直接与主机进行交互。否则,执行S33。在本发明中,数据包内容的特征查询和信令同步的控制消息,仍然通过多种方式来实现,根据IP报文中TOS字段或者基于如UDP等其他协议的特定端口来实现。
S33.此时数据包内容为数据信息,则调用数据消息处理模块对数据信息进行下一步过滤,若该数据信息为主机代理信息,则通过内存映射代理反馈的连接信息。若该数据信息为主机通信产生的网络数据流信息,则通过内存映射网络反馈的连接信息。在本发明中,在内存映射产生的信息中,包括四元组SDN交换机DatapathId、源MAC地址、源IP地址、源端口,其中源IP地址和源端口通过数据信息提取,SDN交换机DatapathId,源MAC地址均通过控制器响应PacketedIn事件时提取。SDN控制器通过内存对于主机代理信息和主机网络信息的映射,通过HASH键值对的方式来存储,其中Key为(DatapathId,源MAC,源IP),Value为源端口。
S4.隐藏端口检测,根据在SDN控制器端内存映射的可信与非可信视图,进行交叉检测,计算可信视图与非可信视图的差集,即遍历可信视图里的所有连接,一旦该连接不存在于非可信视图中,即可判定某连接为隐藏端口建立的连接,即得到位于主机和隐藏端口的信息,最后将这些信息传递给防护模块进行处理,防护模块通过给SDN交换机发送流表项,禁止隐藏端口对应的源IP、源端口建立的通信。在本发明中,SDN控制器已通过内存映射主机连接的可信视图和非可信视图,根据这两类视图,通过交叉检测的方法,即可获取SDN网络架构下所有主机的隐藏端口,最后将这些信息传递给防护模块进行处理,防护模块通过给SDN交换机发送流表项,禁止隐藏端口对应的源IP、源端口建立的通信。基于一项事实,即任何基于主机的隐藏端口的程序,其网络连接信息不会在终端显示,却会存在于SDN交换机的流表项中,被SDN控制器所记录,通过对比二者的差异即可获取隐藏端口的信息。
需要指出的是:所述步骤S4与S1、S2、S3并发执行,虽然S4得到的结果依赖于S1、S2、S3,但为描述方便记为S1、S2、S3与S4。
以上内容是结合具体的实施方式对本发明的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应该视为属于本发明的权利要求书的保护范围。
一种基于SDN网络架构的隐藏端口检测方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0