本发明涉及计算机网络安全领域,更为具体地,涉及一种基于sdn网络路径的访问控制方法及系统。
背景技术:
随着计算机网络的发展,网络安全形势变得越来越严峻,网络安全问题也越来越受到国家、企业的重视。传统的网络安全威胁模型假设内网的人员和设备都比外网的安全可信得多,网络安全威胁主要来自网络外部。基于这种假设,出现了各种网络安全设备,如防火墙、入侵检测设备等,这些设备都是部署在网络的内部与外部的连接处,用来保证内部网络的安全。但是据美国cai/fbi关于计算机犯罪及安全调查显示,有网络安全问题带来的损失68%与内部威胁有关;另外,全球调查机构idc的安全统计数据显示,来自企业内部终端的安全威胁占整个安全威胁的70%以上;近年来发生的“棱镜门”事件、韩国信用局信用卡信息被盗事件都给各国、各企业和单位敲响了网络内部威胁的警钟。要保证网络的安全,做好对内部威胁的防护也相当重要。
但是当前对内部威胁的防护力度比较小,当前防护内网主机威胁的技术主要是网络访问控制技术,网络访问控制技术是根据安全策略,限制终端设备对网络资源的可用性来达到强化专有网络安全的方法。目前具有代表性的网络访问控制技术架构主要有cisco的c-nac架构、microsoft的nap架构和tcg的tnc架构。c-nac、nap和tcg三种网络访问控制技术在功能上具有相似性。它们都是为了保证网络终端的安全接入。当有终端要求接入本地网络时,需要对终端进行校验,不仅验证用户名、口令、用户证书等与用户相关的信息,而且验证终端是否与管理员预先制定的安全策略保持一致性。但三种技术对用户的检测主要集中在用户接入时,并且对用户权限的动态调整性差,用户接入网络后,如出现非法行为,无法自动调整其访问网络的权限。
技术实现要素:
鉴于上述不足,本发明提供一种基于sdn网络路径的访问控制方法及系统,对接入网络的用户进行实时的流量监控,在内网中对用户接入网络进行认证和授权,建立用户与服务器之间的网络路径,根据用户的行为证据计算信任度,根据信任度采取针对该用户的访问控制策略,保证内网的安全。
为解决上述技术问题,本发明采用如下技术方案:
一种基于sdn网络路径选择的网络访问控制方法,步骤包括:
1)用户访问某网络服务时广播一arp请求,该arp请求由sdn交换机上传到sdn控制器,sdn控制器判断发出该arp请求的用户是否已认证,如否,则要求其进行身份认证;
2)如用户通过认证,sdn控制器将其认证时所使用的认证信息报给aca,该认证信息包括用户名、终端mac地址以及用户终端连接sdn交换机的端口,同时给sdn交换机下发流表f3,该流表能将所有ip数据包上传到sdn控制器;
3)用户通过认证后,其arp请求被正常处理,随之发出的ip数据包上传到sdn控制器,sdn控制器解析该ip数据包,获得地址信息并报给aca,该地址信息包括源mac地址、目的mac地址、源ip地址、目的ip地址以及ip数据包中传输层端口字段;
4)aca根据上述源mac地址确定发起请求的用户,并根据用户的认证信息确定其权限,根据该权限判断其请求是否合法,如合法,则为该请求建立一条网络路径,否则通知sdn控制器生成并下发流表f5,将该请求的数据包丢弃;
5)sdn控制器根据上述网络路径信息生成流表f4,并下发到所涉及的sdn交换机上,以建立用户与服务器之间的网络路径;
6)将来自该用户的所有流量镜像到流量分析设备上以提取行为证据,并将该行为证据报给aca,aca根据该行为证据计算信任度的值,并根据信任度的值采取针对该用户的访问控制策略。
进一步地,初始状态下网络中所有用户的终端均为未注册状态,sdn交换机(边缘交换机)上含有流表f1,该流表将所有到达该sdn交换机的数据包丢弃。
进一步地,用户在接入网络之前,其接入的sdn交换机和所连接sdn交换机的端口由系统管理员配置,该配置信息由aca传输到sdn控制器;sdn控制器根据该配置信息生成流表f2并下发到sdn交换机,该流表可将端口信息、源mac为配置信息里的mac的终端认证数据包和arp数据包上传到sdn控制器。
进一步地,用户进行认证时,系统管理员给aca提供注册信息,aca将注册信息传输给sdn控制器,sdn控制器给sdn交换机下发流表f2以获取来自用户的认证数据包。
进一步地,如用户未通过认证,则aca通知sdn控制器arp请求非法,并下发流表f5给sdn交换机,以丢弃来自该请求的所有数据包,同时记录该次非法访问过程并作为该用户的行为证据。
进一步地,sdn交换机通过packet_in消息将arp请求上传到sdn控制器。
进一步地,流表f1、f2、f3、f4、f5的优先级为f5>f4>f3>f2>f1。
进一步地,行为证据包括身份可信度、越权访问、流量攻击、畸形数据包攻击、扫描网络中主机和端口;信任度包括子信任度和总信任度,子信任度与行为证据一一对应,包括身份安全子信任度、越权访问安全子信任度、流量安全子信任度、畸形数据包安全子信任度、扫描攻击安全子信任度。
进一步地,利用层次分析法计算子信任度和总信任度的值。
进一步地,所述根据信任度的值采取针对该用户的访问控制策略,是指比较子信任度和总信任度的值是否低于预设的阈值,如低于,则对用户采取相应的访问控制策略;访问控制策略为将不同的安全设备编排进网络路径,实现不同访问控制;包括:
如身份安全子信任度、越权访问安全子信任度低于阈值,则将用户身份确认设备编排进网络路径;如流量安全子信任度低于阈值,则将流量清洗设备编排进网络路径;如畸形数据包安全子信任度低于阈值,则将畸形包清洗设备编排进网络路径;如扫描攻击安全子信任度低于阈值,由于本方案未给越权访问建立访问路径,则系统扫描无效,路径不变;如总信任度低于阈值,则将用户进行隔离。
一种基于sdn网络路径的访问控制系统,基于现有sdn架构,包括:
aca(accesscontrolapplication,访问控制应用):是sdn应用层面应用,能够通过行为证据计算用户的信任度,决定访问控制策略;
sdn控制器:向aca报告数据层信息,接收用户请求并请求aca进行决策,接收aca访问控制策略消息并生成流表下发;
sdn交换机:进行数据包的匹配和转发,为了满足系统对用户流量的监控,包括一镜像流表,用以镜像来自用户的所有流量以进行监控,并传输到流量分析设备;
流量分析设备:分析用户的流量,得出用户的行为证据;
认证服务器:与sdn控制器进行通信,为用户接入认证服务。
进一步地,aca通过北向接口与sdn控制器进行通信,通过rest接口接收sdn控制器对数据层信息的报告。
sdn是一种新型网络创新架构,通过将网络设备控制面与数据面分离开来,实现了对网络流量的灵活控制,其网络可编程思想使得网络变得更加智能。在sdn网络中部署网络安全防御设备,并利用sdn牵引流量的优势,按需将这些设备编排进用户访问网络的路径形成网络防御路径,将访问控制策略对应到网络防御路径。同时,根据用户行为证据对用户的信任度进行计算,并根据信任度动态调整网络防御路径,实现对内部网络威胁动态、有效地防御。
通过以上分析可知,可以利用sdn网络架构来解决对内网威胁防御措施少、力度小的问题,并实时灵活地按需改变网络路径,实现动态的网络访问控制。
本发明具有如下有益效果:(1)用户通过接入认证之后,只有在用户对服务发起访问并且该请求合法时,才建立相应的网络链路,通过这种方式可以阻止大多数的非授权访问和扫描攻击;(2)将传统用于内外网之间的网络安全设备部署到网络内部,按照需要将相应的流量牵引至这些安全设备进行处理,这样可以保证内网服务的安全和抵御来自内部的威胁;(3)实时分析用户的信任度,并基于用户信任度和安全阈值对防御路径进行实时调整。
附图说明
图1是用户认证流程图。
图2是用户认证之后的路径控制流程图。
图3是根据信任度对用户访问路径进行动态调整的流程图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种基于sdn网络路径选择的网络访问控制方法及系统,在现有sdn架构的基础之上,在sdn应用层加入aca,数据层面的所有数据流都由aca来控制,aca通过北向接口与sdn控制器进行通信,sdn控制器通过sdn与数据层进行通信。同时为aca添加了rest接口,sdn控制器可以通过这个接口主动向aca报告数据层面的情况,该系统包括:
(1)aca:是sdn应用层面应用,是整个系统的核心,能够通过行为证据计算用户的信任度,决定访问控制策略;
(2)sdn控制器:主要功能是向aca报告数据层信息,接收用户请求并请求aca进行决策,接收aca访问控制策略消息并生成流表下发;
(3)sdn交换机:主要功能和一般sdn网络中的交换机相同,都是进行数据包的匹配和转发。为了满足系统对用户流量的监控,在用户所连接的交换机上添加了一条镜像流表,把来自用户的所有流量镜像到sdn交换机的某一端口,然后再传输到流量分析设备;
(4)流量分析设备:主要功能是分析用户的流量,得出用户的行为证据;
(5)认证服务器:与sdn控制器进行通信,为用户接入认证服务。
在aca、sdn控制器、sdn交换机、流量分析设备和认证服务器的协同工作下,可以针对用户的访问请求自适应地进行相应的处理,并在用户访问过程动态调整访问控制策略。
本方法包括:
(1)初始状态下网络中所有的终端为未注册状态,边缘交换机(sdn交换机)上有流表f1,该流表将所有到达边缘交换机的数据包丢弃。用户在接入网络之前,必须由管理员配置终端接入的sdn交换机和所连接sdn交换机的端口,该配置信息由aca传输到sdn控制器,sdn控制器收到该配置信息后,据以生成流表f2并下发到sdn交换机,该流表能够将来自某个端口、源mac为配置信息里面的mac的终端的认证数据包和arp数据包上传到sdn控制器。
(2)当未认证的用户尝试访问某个网络中的服务时,用户将会广播一个arp请求,查询目标地址对应的mac地址。arp请求到达sdn交换机之后,sdn交换机根据流表将此arp请求通过packet_in消息上传到sdn控制器。sdn控制器在处理packet_in消息时,首先会分析发出该arp请求的终端是否已经通过认证,如果没有,sdn控制器要求该终端进行身份认证。
(3)如果认证成功,sdn控制器将该终端认证时候所使用的用户名、终端的mac地址以及终端连接边缘交换机的端口报告给aca。同时,sdn控制器给终端所连接的边缘交换机下发流表f3,该流表能将所有ip数据包上传到sdn控制器;如用户未通过认证,则aca通知sdn控制器arp请求非法,并下发流表f5给sdn交换机,以丢弃来自该请求的所有数据包,同时记录该次非法访问过程并作为该用户的行为证据。
(4)终端认证成功之后,arp请求可以被正常处理,随之发出的ip数据包可以上传到sdn控制器,sdn控制器收到该数据包之后进行解析,得到该数据包的地址信息,包括源mac地址、目的mac地址、源ip地址、目的ip地址以及ip数据包中传输层端口字段,并报告给aca。
(5)aca收到来自sdn控制器传来的地址信息,根据源mac地址确定发起请求的终端,并根据该终端的认证信息确定其身份,然后根据身份信息确定其权限来判断该请求是否合法。如果该请求合法,aca将会为该请求建立一条网络路径并将路径信息传输给sdn控制器,否则通知sdn控制器生成并下发流表f5,将该请求的数据包丢弃。
(6)当sdn控制器收到相应的路径信息,sdn控制器将会根据这些信息生成相应的流表f4(优先级:f5>f4>f3>f2>f1)并下发到所涉及的sdn交换机上,终端与服务器之间的网络路径建立完毕。
同时,所有来自该终端的流量都被镜像到流量分析设备进行行为证据的提取,这些证据定期报告给aca,aca根据证据利用层次分析法计算信任度,并通过信任度决定是否改变针对该终端的访问控制策略。访问控制策略是指将不同的安全设备编排进网络路径,实现不同访问控制。
为使本发明的实施例的目的、技术方案和优点更加清楚,下面进一步结合附图对本发明作详细描述。
1.图1是用户认证流程图,具体流程包括:所述访问控制策略为将不同的安全设备编排进网络路径,实现不同访问控制;
(1)用户注册阶段,系统管理员给aca提供注册信息,aca将注册信息传输给sdn控制器,sdn控制器给sdn交换机下发允许认证数据包和arp数据包上传交换机的流表。之后,客户端发送的arprequest被发送到sdn交换机(步骤1);sdn交换机通过packet_in消息将arprequest上传到sdn控制器(步骤2);
(2)sdn控制器解析packet_in消息,发现源mac未知,控制器发送一个eap-request/identity消息打包给sdn交换机(步骤3);sdn交换机再将该消息发送到客户端(步骤4)以触发认证过程;
(3)客户端收到eap-request/identity消息,回复一个eap-response/identity(消息中包含要认证的用户名)发送到sdn交换机(步骤5);sdn交换机再通过packet_in消息打包给sdn控制器(步骤6);
(4)sdn控制器将eap-response/identity报文封装到radiusaccess-request(eap-response/identity)报文中,发送给认证服务器(步骤7);
(5)认证服务器产生一个challenge即radiusaccess-challenge(eap-response/identity),发给sdn控制器(步骤8);
(6)sdn控制器将radiusaccess-challenge报文发送给sdn交换机,其中包含有eap-request/md5-challenge(步骤9);sdn交换机再发送给客户端,要求客户端进行认证(步骤10);
(7)客户端收到eap-request/md5-challenge报文后,将密码和challenge做md5算法后的challenged-pass-word,在eap-response/md5-challenge回应给sdn交换机(步骤11);sdn交换机打包到sdn控制器(步骤12);
(8)sdn控制器将challenge,即radiusaccess-request(eap-response/md5-challenge),challengedpassword和用户名一起送到认证服务器(radius服务器),由认证服务器进行认证(步骤13);
(9)认证服务器根据用户信息,做md5算法,判断用户是否合法,然后回应认证成功/失败报文radiusaccess-accept(eap-success)/radiusaccess-reject(eap-failed)到sdn控制器(步骤14);认证成功,sdn控制器将相关的mac加入到一个acl中,同时将eap_success/eap-failed消息打包发送给sdn交换机(步骤15);sdn交换机将该消息发送给客户端(步骤16)。
2.图2是用户认证之后的路径控制流程图,具体流程包括:
(1)认证通过之后,sdn控制器给终端所连接的边缘交换机下发流表f3,该流表能将所有ip数据包上传到sdn控制器,使得来自该客户端且没有流表匹配的ip数据包将会上传到sdn控制器。
(2)sdn控制器将会分析该请求数据包,并将相关信息发送给aca,aca根据用户的权限决定针对该用户的访问控制策略,决定是否能让该用户访问该服务。
(3)如果请求是被允许的,aca选择一条合理的路径并告知sdn控制器下发流表f4。否则,aca通知sdn控制器该请求非法,并下发流表f5将所有的该请求的数据包丢弃。在这个过程中,aca将会记住这次非法访问过程并将其作为用户信任度计算的依据。通过这种方式,可以有效禁止用户的越权访问行为。另外,如果某个客户端试图扫描网络中的主机或主机的端口,该客户端只能与其权限范围内的主机和服务建立连接,这样可以有效防止主机和端口扫描。
3.图3是根据信任度对用户访问路径进行动态调整的流程图,具体流程包括:
(1)根据常见的内部威胁类型,将用户信任度分解为5个子信任度,即身份安全子信任度、越权访问安全子信任度、流量安全子信任度、畸形数据包安全子信任度、扫描攻击安全子信任度。身份安全子信任度主要代表用户身份的可信程度;越权访问安全子信任度主要代表越权访问的严重程度;流量安全子信任度主要代表用户发动流量型攻击的可能性;畸形数据包安全子信任度代表用户发动畸形数据包攻击的可能性;扫描攻击安全子信任度代表用户扫描网络中主机和端口的可能性。
(2)通过aca利用层次分析法计算信任度的值,具体是计算子信任度和总信任度的值。
(3)根据信任度值与设定的安全阈值确定信任度的值是否低于预设阈值,如果是,就给该用户访问路径中添加一个或多个安全设备,使得用户的流量到达服务器之前对其进行安全处理,降低甚至消除恶意流量对服务器的影响。
具体包括:如身份安全子信任度、越权访问安全子信任度低于阈值,则将用户身份确认设备编排进网络路径;如流量安全子信任度低于阈值,则将流量清洗设备编排进网络路径;如畸形数据包安全子信任度低于阈值,则将畸形包清洗设备编排进网络路径;如扫描攻击安全子信任度低于阈值,由于本方案未给越权访问建立访问路径,则系统扫描无效,路径不变;如总信任度低于阈值,则将用户进行隔离。
信任度的阈值由系统管理员根据系统安全策略进行确定,系统安全策略允许信任度证据的临界点计算出的信任度的值即为相应的阈值。
(4)定期监控行为证据并计算信任度,据以确定是否需要对路径进行变更。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明在sdn中的实现过程,以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。