Firewall policies are an important line of defence in cybersecurity, specifying which packets are allowed to pass through a network and which are not. These firewall policies are made up of a list of interacting rules. In practice, firewall can consist of hundreds or thousands of rules. This can be very difficult for a human to correctly configure. One proposed solution is to model firewall policies as Boolean expressions and use existing computer programs such as SAT solvers to verify that the firewall satisfies certain conditions. This paper takes an in-depth look at the Boolean expressions that represent firewall policies. We present an algorithm that translates a list of firewall rules into a Boolean expression in conjunctive normal form (CNF) or disjunctive normal form (DNF). We also place an upper bound on the size of the CNF and DNF that is polynomial in the number of rules in the firewall policy. This shows that past results suggesting a combinatorial explosion when converting from a Boolean expression in CNF to one in DNF does note occur in the context of firewall analysis
翻译:防火墙政策是网络安全中重要的防御线, 具体指明哪些包可以通过网络, 而哪些不是。 这些防火墙政策由互动规则列表组成。 实际上, 防火墙可以由数以百计或数千条规则组成。 这对一个人来说可能非常难以正确配置。 一个拟议解决方案是将防火墙政策建模成布林表达式, 并使用诸如 SAT 解答器等现有计算机程序来验证防火墙是否满足某些条件。 本文深入查看了代表防火墙政策的布利安表达式。 我们提出了一个算法, 将防火墙规则列表转换成一个布尔语表达式, 以正态连接式( CNF) 或正态( DNF) 的形式( NDF ) 。 我们还对 CNF 和 DNF 的大小设置了上限, 在防火墙政策中的规则数量中是多元的。 这显示过去的结果表明, 当将布林表达式表达式从 CNF 转换为 DNF 时, 时会发生组合爆炸爆炸爆炸爆炸爆炸爆炸。