策略管理—用于防火墙分析的工具
随着网络规模的变化,防火墙或网络设备的配置随着不断增加的改变越来越复杂,即使是资深的网络管理员,有时候也会发现在一番复杂的防火墙配置后,自己的服务器仍然不能访问外网或者不能被外网访问,规则看了很多遍,却不知道是哪里出了问题。
有一个自动化的工具来帮助网络管理员发现问题一直是网管们的梦想,来自伍斯特理工学院(Worcester Polytechnic Institute)的Timothy Nelson等人就专门开发了一个开源工具Margrave来解决这个问题。Margrave 是一个用于防火墙分析的工具,提供了枚举规则修改后果、发现冲突规则、为防火墙的行为跟踪到具体执行规则以及验证安全目的与规则等多项功能。与传统的防火墙规则分析工具不同,Margrave提供了多种不同层次的分析:从规则、过滤器、防火墙到网络。
Margrave支持现实中网络防火墙的配置语言(例如思科的IOS),并从这些配置中提取出NAT、路由、IP ACL设置,如图1所示。当管理员发现问题时,可以向配置规则查询,期望通过的报文是被哪一条具体的规则所丢弃,或期望被丢弃的报文被哪一条报文所接受。这样管理员就可以迅速定位到问题发生的地点。有兴趣的读者可以访问http://www.cs.brown.edu/research/plt/software/margrave/来试试这个工具。
策略管理—自动修正防火墙策略的第一步
Margrave能够帮助管理员发现问题,但发现问题以后还是需要网络管理员自己修改问题。有没有可能让计算机帮助管理员来自动解决错误的配置?虽然大多数网络管理员不敢将配置托付给一台计算机,但计算机的科学家们已经开始了这样的尝试。密歇根州立大学陈飞等人发表的文章开始了自动修正防火墙策略的第一步。
修正防火墙策略首先必须发现防火墙策略的错误,为了能让计算机理解防火墙的错误,陈飞等人将防火墙可能发生的错误定义为5类:
1.错误的顺序,防火墙的规则发生冲突时是以优先级或先后为选择依据,如果规则的优先级倒置或顺序错误,则该生效的规则没有生效,或者错误的规则生效了;
2.缺少规则,顾名思义就是缺少了用于处理该类报文的规则;
3.错误的条件,即期望处理的报文和规则定义的报文不完全符合;
4.错误的动作,即虽然定义期望处理的报文是什么,但是对该报文应该进行的动作定义错了;
5.多余的规则,这种规则的作用由更高优先级或先出现的规则所实现,不会被命中。
为了让计算机自动发现错误和修改错误,作者采用软件测试的办法,将安全目标转换成一系列的测试报文(测试报文分为两种:一种应该穿过防火墙,另一种不应该穿过防火墙),作者再将两类报文分别对防火墙策略进行测试,如果所有报文的行为都符合预期,说明规则正确,否则就需要修改报文。
为了避免计算机自动修改规则时出现状态爆炸问题,作者引入了全匹配防火墙决策图(all-matched Firewall Decision Diagram)的数据结构。结合测试报文和决策图两种工具,作者实现了一种自动化的策略修改算法。尽管根据对实际防火墙策略的实验,作者的算法也只对某些错误的更正有较好的效率,但这仍是防火墙自动策略管理的第一步。
基于角色的策略管理
防火墙策略管理之外,还有一个更形式化的问题:基于角色的策略管理。在大型系统中,权限不仅仅是网络权限,还包括了用户对各类资源的访问。本文中,作者借用了RBAC 中的角色和权限的概念,将一切实际对象泛化成为抽象的角色u和抽象的权限p,将权限的管理转化为符号的计算,并在符号计算工具N u S M V 的基础上开发了自己的工具RoleUpdater。本文更多的是停留在如何在理论上实现一个自动化的最小代价进行访问控制策略管理,并没有考虑与实际系统的连接。
【编辑推荐】