王刚 秦益飞 杨正权
随着云计算和软件定义网络 (Software Defined Network, SDN) 的快速发展, 如何快速的重构传统网络的安全解决方案, 进而提升网络安全防护的灵活性与效率,成为了亟待解决的问题。数据报文在网络中传递时,需要经过各种各样的业务节点,才能保证网络能够按照设计要求,提供给用户安全、快速、稳定的网络服务。网络流量按照业务防护的需要,按照一定次序,流经这些防护节点(如防火墙、URL filter、WAF等),这就形成了针对业务的个性化的安全服务链(Service Chain)。软件定义安全(SDS)是从软件定义网络SDN引申而来,原理是将数据平面与控制平面分离,对物理及虚拟的安全设备及其接入模式、部署方式、实现功能进行了解耦,底层抽象为安全资源池里的资源,顶层统一通过软件编程的方式进行智能化、自动化的业务编排和管理,以完成相应的安全功能,从而实现一种灵活的安全防护。
然而,无论是软件定义网络(SDN),服务链(SC),或者是软件定义安全(SDS),都是基于网络安全设备或独立的安全服务节点基础上的安全服务编排。单台网络安全节点内部,仍然遍布存在着各种各样的安全策略的执行——如密码策略,包过滤策略,Anti-DDoS,防病毒等。日常安全运维过程中,对于这些安全策略的管理,存在较大的难题。本文旨在提出一种基于可视化的技术,实现网络安全设备内部安全策略可视化编排和可视化监控运行的方法,极大提高网络安全运维人员的工作效率。
网络安全的防护通常会采用多种多样的安全产品和服务,比如防火墙、负载均衡、WAF、IPS、Anti-DDoS等。随着云计算技术的发展,虚拟数据中心中可以采用软件定义安全(SDS)或者虚拟化安全资源池的方法,来实现基于设备级的安全服务链编排,以满足定制化的网络安全保护的需要。
在一台网络安全产品内部,都是通过安全策略,实现网络安全保护的目标。安全策略的作用是对进入网络安全设备的数据流进行规则匹配,符合安全策略规则定义的流量,实施策略中定义相关的动作(如阻止,允许,告警等)。从空间位置的维度,有域间安全策略,域内安全策略以及接口包过滤策略。从技术实现维度,安全策略又有ACL策略,黑白名单策略,强密码认证策略,二次认证策略,硬件特征码检测策略等等。安全管理员通过配置各种安全策略,保护着网络和系统安全。
然而,现有的安全策略管理中,会存在以下一些问题。
首先,网络安全策略嵌入到网络安全设备设备内部,各个环节中,分散分布,因为安全策略导致的流量不通,或者用户身份认证失败的问题时有发生,往往比较难于定位,这给网络安全运维带来很大困难。
其次,由于网络安全策略众多,网络运维人员对于已经配置安全策略无法有更全面的了解,这给系统运维带来了很多不便。
如何解决这类问题,是摆在网络安全运维人员和业内网络设备提供商面前比较紧迫的问题。
(一) 策略描述模板
针对上文中提到的网络安全运维过程中遇到问题,本文提出一种基于可视化的安全策略管理的方法。首先,本文定义一个统一的安全策略描述模板,用于描述所有的安全策略。这个通用模板包含如下属性字段:策略类型,策略编号,策略优先级、策略规则,策略动作,策略关联关系等。
其中,策略规则用于描述策略匹配的具体条件。如在用户登陆认证策略中,可以定义一条规则,匹配新设备上发起的认证请求。这样,安全产品当检测到当用户使用新设备进行认证接入,就会实现规则匹配,并执行相应的策略动作。策略优先级用于定义策略执行的先后顺序。高优先级策略先执行,低优先级的策略后执行。策略动作,用于指示满足策略规则之后的所采取的动作。比如,可以是终止当前的业务流程记录日志返回错误,或者是继续下一条策略,亦或是强制忽略当前策略。
(二)安全策略链
如上文所述,在定义了统一的策略描述版本之后,就可以实现所有安全策略规范化描述,而如何进行策略的控制,则需要把策略按照优先级高低链接起来,形成策略链。
通常情况下,根据业务流程可以将安全策略分成认证策略和访问策略两大类。认证相关策略包括,首登改密,强密码策略,密码超期策略,管理员白名单策略,登录并发数限制策略,长时间未登录策略,防暴力破解策略等。访问策略包括,入向報文过滤策略,应用访问策略,出向报文过滤策略。两大类策略中的每一个子策略,需要根据策略模板的要求,设定相应的属性,包括安全策略类型(认证或是访问),策略的全局编号,策略优先级、策略匹配规则,策略动作。
网络安全运维人员定义一个认证相关策略,设定策略的优先级,编排策略执行先后顺序;高优先级的策略优先执行,低优先级策略后执行。如图2所示,是认证相关的安全策略链的定义以及不同的运行状态。将认证策略链关联到用户或者用户组,即可实现针对不同用户或者用户组的安全策略链控制。
同样的方法,网络安全运维人员可以定义一条访问策略链:设定一个应用访问流程中需要执行安全策略的点,本文将其定义为策略链执行锚点。在应用访问过程中的锚点,包括入向策略执行锚点,出向策略执行锚点,应用访问控制策略执行锚点。在每个锚点处,可以添加各类安全策略,比如黑白名单过滤策略,抗DDos策略,ACL过滤策略,URL过滤策略。通过设定策略的优先级实现策略在各个策略执行锚点上多个策略执行的编排。
用户在进行一次登陆时,根据传入登陆的会话信息(如用户账户,设备信息,密码),逐个匹配认证过程中定义的安全策略,匹配成功,则执行相应的策略动作,并根据定义转到下一个安全策略,或是终止当前的认证流程。
用户在触发一次访问时,在定义的访问策略执行锚点处,传入用户信息以及访问流量信息(如五元组信息,URL信息),进行访问安全策略规则匹配,匹配成功,则执行安全策略相应的策略动作:终止当前的流量访问或是越过当前策略,自动进行下一个安全策略匹配。
安全运维人员可以选择一个用户和用户组,可视化展示该用户或者用户组的策略执行过程。通过色彩差异方式,区分策略执行通过或者策略执行失败;也可以选择访问类型策略链,通过设定IP地址,端口,URL等信息,定义运维人员感兴趣的业务访问流量,启动业务流量安全策略执行可视化跟踪。
通過引入策略链,可以让安全运维人员,更好地查看安全策略配置以及安全策略的执行情况。为更好地实现安全策略链的设计,本文设计了一个可视化的安全策略编排器,统一将网络安全产品所包含的全部安全策略按照认证策略和访问策略两大类,以图形化方式,归纳到编排器中。如图3所示。
安全策略可视化编排器中预置认证策略链和访问策略链两个业务流程。根据所表达的策略内容,通过图形化图标,在策略编排器中进行可视化描述。
选择一条认证业务流程,首先将流程关联到用户或用户组;通过鼠标拖拽方式,将认证相关的安全策略关联到该用户或用户组对应的认证流程中。通过鼠标移动操作,调整策略链中策略执行的先后顺序,实现策略执行编排。
安全运维人员也可以在一条授权业务链中通过自定义的方式派生出新的流程。比如可以增加一个二次认证业务流程,并在该策略链中,可以鼠标操作添加策略执行以及策略执行的先后顺序。再比如可以插入微信认证,手机短信认证等策略,派生出一条二次认证的策略链。
同样的,可以在安全策略编排器中,选择一条访问的策略链,将该业务链关联到用户或者用户组;鼠标拖拽访问相关的安全策略,调整安全策略的顺序,可视化编排策略链的执行。
本文描述了一种可视化的安全策略链编排的框架。基于该框架,定义统一的安全策略描述模板,实现安全策略链的可视化编排,显著解决了传统网络安全产品中安全策略的管理分散,策略执行过程不可见的运维问题,极大提高安全运维的效率,对实际网络产品的研发具有很大的指导意义。
作者单位:江苏易安联网络技术有限公司