APP下载

基于单包授权的零信任防火墙设计方案研究

2022-01-17贺春林崔梦天

关键词:服务端数据包攻击者

贺春林,彭 冰,崔梦天

(1.西华师范大学计算机学院,四川 南充 637009;2.西南民族大学计算机系统国家民委重点实验室,四川 成都 610041)

1 经典防火墙面临的威胁

经典包过滤防火墙如访问控制列表(Access Control List,ACL)、iptables等已在网络安全中被广泛应用,通常用以在边界防护场景实现对OSI模型二至四层的协议报文匹配和控制[1].这些防火墙应用场景均须要显式地允许(permit)访问相应的网络对象,如TCP和UDP端口、协议类型等,尽管可以通过精细化的控制策略收缩暴露面,但仍存在潜在的安全威胁.例如:1)网络攻击者可以通过扫描(如nmap)等方式,发现网络资产或应用的存在.根据洛克希德马丁公司(Lockheed Martin)提出的“网络攻击链”(Cyber Kill Chain)模型[2],“侦察”是网络攻击的重要第一环;2)如果网络资产或应用存在脆弱性,由于防火墙已允许访问,攻击者可以轻易的发动入侵,例如漏洞利用、进行密码暴力破解等[3].防火墙缺乏对这些类型攻击的抵御能力,从而不得不依赖其他的防御手段;3)攻击者可以对已获得的网络资产发动拒绝服务(DoS)攻击,即使防火墙设计了相应防御机制,也会增加额外的处理开销.

2 零信任防火墙

2.1 零信任

零信任的概念最早由FORRESTER在2010年提出,认为不应该以一个边界来信任网络、用户或设备[4].2020年,零信任架构被美国国家标准与技术研究院(NIST)采纳为正式标准.根据NIST定义:零信任是一种以资源保护为核心的网络安全范式,其前提是信任从来不应该被隐式授予,而是必须进行持续地评估[5].图1是零信任访问模型的示意图[6].

图1 零信任访问模型

经典防火墙的工作机制是允许对协议或端口的访问,是一个信任授予过程.因为缺乏对不可信区域的用户、终端等因素的评估,从而会导致潜在安全威胁的发生.而零信任防火墙应当始终默认禁止访问,除非客户端基于用户、终端等凭据与服务端进行认证交互,从而动态取得防火墙的访问授权.

2.2 单包授权机制

单包授权(Single Packet Authorization,SPA)是指客户端向服务器发送单个认证数据包以取得访问权限.通常单包授权认证可通过UDP实现以降低开销,服务器收到SPA数据包即进行处理,无须向客户端返回连接状态.对称或非对称加密算法均可用于认证数据包的传输加密.为防止重放攻击[7],可以对加密的认证数据包附加HMAC函数生成消息摘要,用于服务器端验证.图2是一个基于UDP协议的SPA数据包示例.

图2 SPA数据包格式

其中,消息摘要=HMAC{encrypt{原始SPA认证凭据}}.

数据加密部分[8]可以采用对称加密和非对称加密算法;对称加密算法根据不同实现可使用较为常见的AES或国密算法,非对称算法可使用RSA或国密算法;而消息摘要部分可使用常见的MD5、SHA或国密算法.

服务端收到SPA数据包的处理过程为:

1)首先验证消息摘要,例如与之前接收到的所有消息摘要进行对比,确保SPA数据包不是重放攻击;

2)对SPA数据包已加密内容进行解密;

3)根据服务端配置,验证SPA认证数据并进行授权;

4)若以上任一步骤执行失败则终止处理,无需通知客户端.

2.3 零信任防火墙

区别于经典防火墙,单包授权零信任防火墙运行守护进程,以接受客户端发送的认证数据.默认状态下,防火墙处于禁止访问状态.经过成功校验认证数据后,单包授权防火墙临时生成相应的允许规则,允许客户端发起连接,并在超时后(通常设定较短的超时时间),自动删除临时允许规则.防火墙守护进程还应跟踪已经建立的连接及其相关联的连接,并允许其继续保持连接直至连接拆除.

图3说明了客户端的处理流程.客户端初始化后,需要预先同步用于解密和消息摘要验证的相关加密和消息摘要算法、相关密钥等,该步骤可以通过静态配置文件实现,无需在网络中传输密钥.

图3 客户端处理过程

客户端构造SPA认证报文,并发送给客户端.处于加密载荷中的认证报文内容,可以由服务端和客户端事先进行约定,例如可包含用户名、防火墙临时允许的策略内容、超时时长等.

图4说明了服务端的处理流程.服务端初始化后,也需要预先同步用于解密和消息摘要验证的相关加密和消息摘要算法、相关密钥等.该步骤可以通过静态配置文件实现.

图4 服务端处理过程

服务端首先将防火墙设置为默认禁止访问状态,并运行SPA认证守护进程.

服务端收到客户端发送的SPA报文,进行消息摘要验证、解密,同时对解密后的数据进行认证.

通常单包授权防火墙可设定为针对认证失败的连接,无需向客户端返回任何信息,这可以有效避免攻击者进一步信息搜集.

针对认证成功的客户端,SPA守护进程生成临时的防火墙允许访问策略,并在超时后立即删除.此时服务端可以被客户端正常连接.

服务端跟踪已经成功建立的客户端连接,并保持允许至客户端断开连接.

2.4 开源项目FWKNOP

FWKNOP是Jonathan Bennett等推动的一个SPA开源项目[9],诞生于2004年,最新版本(2018年)可以支持对iptables、firewalld(Linux)、ipfw(FreeBSD和Mac OS X)、PF(OpenBSD)等防火墙进行调用.Fwknopd为服务端守护进程,根据客户端发送的SPA报文,完成客户端认证,并根据加密报文的具体内容,执行服务端临时防火墙策略的生成、删除和连接状态保持.

图5列出了FWKNOP一些主要特性对各操作系统平台的支持情况[10].FWKNOP提供了几乎全平台客户端,极大地方便了用户部署.

图5 开源SPA项目FWKNOP

3 实验验证

3.1 实验环境

实验拓扑图见图6.实验环境服务端和客户端均采用Linux操作系统,服务端运行WEB服务,并部署基于SPA实现的零信任防火墙.服务端和客户端均配置为使用AES传输加密(预共享密钥)和SHA256消息摘要验证(预共享HMAC密钥).客户端使用nmap[11,13]检测服务连接状态.

图6 实验拓扑图Fig.6 Topology of experiment

3.2 实验过程

实验过程如下:

1)仅配置经典防火墙,允许访问WEB服务;

2)攻击者Bob使用漏洞扫描工具openvas[12-13]评估服务器漏洞情况;

3)开启SPA防火墙,Alice发起SPA认证,并获得WEB服务访问权限;

4)验证攻击者Bob无法访问服务,Bob再次使用漏洞扫描工具评估服务器漏洞情况.

3.3 实验结果

1)经典防火墙打开WEB服务端口后,Alice和Bob均可以访问WEB服务;

2)Bob使用漏洞扫描工具,发现WEB服务器存在高危和中危漏洞(图7),可以进行漏洞利用;

图7 开启SPA防火墙之前漏洞扫描

3)开启SPA防火墙,Alice和Bob均无法访问WEB服务.Alice向服务器发送SPA认证包后即可正常访问WEB服务(图8);

图8 Alice访问过程

4)Bob仍然无法访问WEB服务.Bob使用漏洞扫描工具无法探测到服务器漏洞(图9).

图9 开启SPA防火墙之后漏洞扫描

4 结论

实现原理及实验结果表明,基于单包授权的零信任防火墙能够根据客户端的认证情况动态控制防火墙端口的开启与关闭,这对于降低网络资产的暴露面、预防漏洞利用和暴力破解、预防DoS攻击[14]等具有积极的作用,显著增加了服务端防火墙防御能力.

文献[15]包含一项关于5G核心网安全改进的研究,认为单包授权是5G核心网安全设计的增强改进方向之一.文献[16]实现了基于单包授权技术的应用网关,将其纳入业务应用可控访问解决方案的一部分.

此外,还可以将单包授权零信任防火墙与用户身份管理系统和终端安全管理系统进行结合,从而针对用户身份、终端状态等,提供更加精细化的防火墙控制能力.

猜你喜欢

服务端数据包攻击者
基于贝叶斯博弈的防御资源调配模型研究
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
C#串口高效可靠的接收方案设计
正面迎接批判
正面迎接批判
多人联机对战游戏的设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析