防火墙安全策略的语义分析方法

3
2007 , 43 ( 26 ) ComputerEngineeringandApplications 计算机工程与应用 1 规则集合统计 属性 规则数 1 对象数 2 接口数 3 最小值 5 24 2 最大值 2671 5847 13 平均值 144.0 968.0 4.1 : 1规则总数 (包括网络地址转换); 2规则中网络对象 总数 (主机地址、子网等); 3防火墙上网络接口总数。 1 引言 防火墙是一种防御网络攻击的技术, 一种均衡保护网络中 的物理安全、个人安全、操作安全、通信安全的方法 [1] 。依据其工 作的协议层, 防火墙分为: 包过滤防火墙 (packetfilters ) 、环形 代理防火墙 (circuitproxies ) 、应用代理防火墙 (applicationlevel proxies ) [2] 防火墙是企业内部网络安全的基石, 被业界广泛使用。使 用防火墙时, 管理员需根据用户要求, 配置和维护安全策略。网 络安全专家一般认为, 企业防火墙安全策略的配置中大多存在 问 题 。蠕 病 毒 Blaster Sapphire 在网络上传播, 提供了一些 佐证 [3] 防火墙安全策略, 通常表现为一组规则的集合。表 1 中统 计了 2000 年到 2001 年间, 电信、金融、学院、研 究 所 等 多 个 领 域中, 37 CheckPointFireWall-1 型防火墙规则集合的统计 结果 [3] 。从中可以看到现代防火墙的规则数量大。规则数多, 难以分析规则的含义; 规则难分析, 则难以检查其正确性; 正确 性难检查, 则无法判断安全策略是否满足用户需求。最后, 必然 导致防火墙安全策略的配置存在问题。 国际上已有相关研究, 试图解决规则多、配置难以理解的 问题。这些研究的基本想法相同, 都使用某种系统自动分析防 火墙规则, 解释安全策略的实际效果。其中具有代表性的是文 [4 , 5] 。在 文[4] , 作者用二元决策图 (binarydecisiondiagrams ) 的方法; 在文[5] , 作者使用专家系统的方法。两种方法均采用 用户提问系统回答的方式。用户需提问, 则要求用户对防火墙 技术有了解; 系统针对问题回答, 则不能解释安全策略全部, 只能是其中的一部分。这好比盲人摸象, 还要求盲人有一定的 大象的相关知识。所以, 这类方法实际效果和作用有限。 本文用语义的方法解决以上问题。既然防火墙安全策略是 用一定语法描述的一组规则,那么用比语法更易于理解的语 , 就能很容易的分析安全策略。因此, 本文提出通过语义分析 防火墙安全策略的方法。首先, 从众多逻辑程序中, 选择优先逻 辑程序作为表达防火墙安全策略的方法,并给出了选择的原 因。然后, 将防火墙安全策略表示为一个优先逻辑程序, 并计算 其语义, 通过语义解释防火墙安全策略。语义计算自动完成, 需用户提问。语义能解释完整的防火墙安全策略。 2 优先逻辑程序 2.1 优先逻辑程序的定义 优先逻辑程序是逻辑程序 (Logicprogram ) 的一个分支。逻 辑程序使用逻辑语言表达知识,并用自动推理方法处理知识。 一般而言, 逻辑程序使用一阶逻辑语言。因为一逻辑成容易理 , 并且已被证明可以表达计算性问题 [6] 防火墙安全策略的语义分析方法 邓文俊 1 , 梁意文 2 DENGWen-jun 1 , LIANGYi-wen 2 1. 武汉大学 软件工程国家重点实验室, 武汉 430072 2. 武汉大学 计算机学院, 武汉 430072 1.StateKeyLaboratoryofSoftwareEngineering , WuhanUniversity , Wuhan430072 , China 2.SchoolofComputerScience , WuhanUniversity , Wuhan430072 , China DENGWen-jun , LIANG Yi-wen.Semanticmethodtoanalyzefirewallpolicy.ComputerEngineeringandApplications , 2007 , 43 (26 ): 135-137. Abstract :Presentsasemanticmethodtoanalyzesecuritypolicy.Translatessecuritypolicyintoaprioritizedlogicprogram , andthen computesitssemantics.Semanticsiseasytounderstand , soitissimpleforadministratortoanalyzefirewallpolicyandcheckitout. Keywords :firewall ; securitypolicy ; prioritizedlogicprogram : 给出了通过语义分析防火墙安全策略的方法。先将安全策略用一个优先逻辑程序表示, 然后计算其语义。由于语义容易理 , 管理员能很容易地分析安全策略配置, 检测配置的正确性。 关键词: 防火墙; 安全策略; 优先逻辑程序 文章编号: 1002-8331 (2007 ) 26-0135-03 文献标识码: A 中图分类号: TP393.08 作者简介: 邓文俊 (1980- ), , 博士生; 梁意文 (1962- ), , 教授, 博士生导师, 主要研究领域为人工免疫、信息安全。 135

Upload: wenjun-deng

Post on 07-Mar-2016

226 views

Category:

Documents


4 download

DESCRIPTION

Presents a semantic method to analyze security policy.Translates security policy into a prioritized logic program, and then computes its semantics.Semantics is easy to understand, so it is simple for administrator to analyze firewall policy and check it out. Key words: firewall; security policy; prioritized logic program

TRANSCRIPT

Page 1: 防火墙安全策略的语义分析方法

2007, 43( 26)Computer Engineering and Applications 计算机工程与应用

表 1 规则集合统计

属性

规则数 1

对象数 2

接口数 3

最小值

5

24

2

最大值

2 671

5 847

13

平均值

144.0

968.0

4.1

注: 1 规则总数( 包括网络地址转换) ; 2 规则中网络对象

总数( 主机地址、子网等) ; 3 防火墙上网络接口总数。

1 引言

防火墙是一种防御网络攻击的技术 , 一种均衡保护网络中

的物理安全、个人安全、操作安全、通信安全的方法[1]。依据其工

作的协议层 , 防火墙分为 : 包过滤防火 墙( packet filters) 、环 形

代理防火墙( circuit proxies) 、应用代理防火墙( application level

proxies) [2]。

防火墙是企业内部网络安全的基石 , 被业界广泛使用。使

用防火墙时 , 管理员需根据用户要求 , 配置和维护安全策略。网

络安全专家一般认为 , 企业防火墙安全策略的配置中大多存在

问题。蠕虫病毒 Blaster 和 Sapphire 在网络上传播 , 提供了一些

佐证[3]。

防火墙安全策略 , 通常表现为一组规则的集合。表 1 中统

计了 2000 年到 2001 年间 , 电信、金融、学院、研究所等多个领

域中 , 37 个 Check Point FireWall- 1 型防火墙规则集合的统计

结果[3]。从中可以看到现代防火墙的规则数量大。规则数多 , 则

难以分析规则的含义 ; 规则难分析 , 则难以检查其正确性 ; 正确

性难检查 , 则无法判断安全策略是否满足用户需求。最后 , 必然

导致防火墙安全策略的配置存在问题。

国际上已有相关研究 , 试图解决规则多、配置难以理解的

问题。这些研究的基本想法相同 , 都使用某种系统自动分析防

火墙规则 , 解释安全策略的实际效果。其中具有代表性的是文

[4, 5]。在文[4]中 , 作者用二元决策图( binary decision diagrams)

的方法; 在文[5]中 , 作者使用专家系统的方法。两种方法均采用

用户提问系统回答的方式。用户需提问 , 则要求用户对防火墙

技术有了解 ; 系统针对问题回答 , 则不能解释安全策略全部 , 而

只能是其中的一部分。这好比盲人摸象 , 还要求盲人有一定的

大象的相关知识。所以 , 这类方法实际效果和作用有限。

本文用语义的方法解决以上问题。既然防火墙安全策略是

用一定语法描述的一组规则 , 那么用比语法更易于理解的语

义 , 就能很容易的分析安全策略。因此 , 本文提出通过语义分析

防火墙安全策略的方法。首先 , 从众多逻辑程序中 , 选择优先逻

辑程序作为表达防火墙安全策略的方法 , 并给出了选择的原

因。然后 , 将防火墙安全策略表示为一个优先逻辑程序 , 并计算

其语义 , 通过语义解释防火墙安全策略。语义计算自动完成 , 无

需用户提问。语义能解释完整的防火墙安全策略。

2 优先逻辑程序

2.1 优先逻辑程序的定义

优先逻辑程序是逻辑程序( Logic program) 的一个分支。逻

辑程序使用逻辑语言表达知识 , 并用自动推理方法处理知识。

一般而言 , 逻辑程序使用一阶逻辑语言。因为一逻辑成容易理

解 , 并且已被证明可以表达计算性问题[6]。

防火墙安全策略的语义分析方法

邓文俊 1, 梁意文 2

DENG Wen- jun1, LIANG Yi- wen2

1.武汉大学 软件工程国家重点实验室 , 武汉 430072

2.武汉大学 计算机学院 , 武汉 430072

1.State Key Laboratory of Software Engineering, Wuhan University, Wuhan 430072, China

2.School of Computer Science, Wuhan University, Wuhan 430072, China

DENG Wen - jun, LIANG Yi - wen .Semantic method to analyze firewall policy .Computer Engineer ing and Applications,

2007, 43( 26) : 135- 137.

Abstract: Presents a semantic method to analyze security policy.Translates security policy into a prioritized logic program, and then

computes its semantics.Semantics is easy to understand, so it is simple for administrator to analyze firewall policy and check it out.

Key words: firewall; security policy; prioritized logic program

摘 要: 给出了通过语义分析防火墙安全策略的方法。先将安全策略用一个优先逻辑程序表示 , 然后计算其语义。由于语义容易理

解 , 管理员能很容易地分析安全策略配置 , 检测配置的正确性。

关键词 : 防火墙; 安全策略; 优先逻辑程序

文章编号 : 1002- 8331( 2007) 26- 0135- 03 文献标识码 : A 中图分类号 : TP393.08

作者简介: 邓文俊( 1980- ) , 男 , 博士生; 梁意文( 1962- ) , 男 , 教授 , 博士生导师 , 主要研究领域为人工免疫、信息安全。

135

Page 2: 防火墙安全策略的语义分析方法

2007, 43( 26) Computer Engineering and Applications 计算机工程与应用

优先逻辑程 序 建 立 在 扩 展 逻 辑 程 序( extended logic pro-

gram) 基础上。扩展逻辑程序[6]是一组如下形式规则的集合 :

L0←L1, ⋯ , Lm, not Lm+1, ⋯ , not Ln

Not 是弱否定( negation as failure) , 表示没有明确的证据证明。

其中 , Li 是形如 p 或┒p 的 公 式 , 称 为 文 字( literal) 。p 是 原 子

( atom) , 是形如 P( t1, ⋯ , tn) 的公式。P 是谓词( predicate) , ti 是项

( term) 。项的定义如下 :

( 1) 常量是项。

( 2) 变量是项。

( 3) 若 f n 是 n 元函数, t1, ⋯, tn 是项, 则 f n( t1, ⋯, tn) 也是项。

一个优先逻辑程序( 是一个三元组( П, N, <) , 其中 П是一

个扩展逻辑程序 ; N 是一个命名函数 , 给 П中的每个规则一个

名字; <是建立在 N 名字上的一个严格偏序关系[7]。P1 是一个优

先逻辑程序 :

N1: Fly( x) ←Bird( x) , not ┒Fly( x)

N2: Fly( x) ←Penguin( x) , notFly( x)

N3: Bird( Tweety) ←

N4: Penguin( tweety) ←

N2<N1

2.2 优先逻辑程序的优点

表达防火墙安全策略的方法很多 , 例如二元决策、图论、状

态自动机等等[8]。本文选择逻辑程序的原因有 3 个:

( 1) 容 易 理 解 : 逻 辑 程 序 使 用 一 阶 逻 辑 语 言 , 所 以 容 易 理

解。容易理解 , 则对用户技术背景的要求低 , 易学易用。

( 2) 表达能力强 : 从发展趋势看 , 防火墙技术从无状态到有

状态 , 从简单包过滤到应用层协议 , 从单点防火墙到分布式防

火墙 , 其技术趋向完备 , 安全策略趋向复杂。逻辑程序表达知识

的能力强 , 完全能应对防火墙技术的发展 , 可扩展性好。

( 3) 已经过理论证明 : 逻辑程序从 1960 年至今 , 已有一套

完备的、可靠的理论基础。从而 , 能在理论上保证安全策略的计

算结果与其实际效果一致。

逻辑程序有很多种[6], 本文选择优先逻辑程序 , 是因为其在

规则间存在优先级别 , 与防火墙规则匹配方式暗合。防火墙在

匹配规则时 , 靠前的规则优先匹配。一旦匹配 , 则后面的规则不

予考虑。例如 , 防火墙中有两条规则( 1) 接受 IP 为 192.168.1.1

的数据包;( 2) 拒绝 IP 为 192.168.1.1 的数据包。如果防火墙接

收到来自此 IP 的数据包 , 规则( 1) 在前 , 优先匹配 , 防火墙将接

受数据包。若规则集合中存在这样互相矛盾的规则 , 除优先逻

辑程序外 , 其他逻辑程序将因为程序本身存在不一致而没有语

义[6]。而优先逻辑程序 , 由于规则优先级 , 能计算得到语义[7]。

3 防火墙安全策略检查

3.1 优先逻辑表达安全策略

3.1.1 表达数据包

数据包是网络中传播的对象 , 具有一组属性。大多数的防

火墙安全策略使用数据包的 6 个属性 : 协议类型、源( IP) 地址、

目的( IP) 地址、源端口、目的端口、状态 , 以上属性的值据为整

数类型。其中 , 状态为 TCP 连接使用 : 0 表示新连接 , 1 表示已

有 连 接 。 IP 地 址 32 位 的 二 进 制 数 , 转 换 为 10 进 制 为 0 到

4 294 967 295 间的整数。端口是 0 到 65 535 间的整数。

用 packet( X) 表示 X 是数据包 , Protocol( X, Y) 表示数据包

X 使用 Y 协议 , source_IP( X, Y) 表示数据包 X 的 源 地 址 为 Y,

destination_IP( X, Y) 表示数据包 X 的目的地址为 Y, source_port

( X, Y) 表示数据包 X 的源端口为 Y, destination_port( X, Y) 表示

数据包 X 的目的端口为 Y, flag( X, Y) 表示数据包 X 的状态为

Y。使用 TCP 协议 , 目的地址 10.10.10.3( 168432643) 端口 80 的

数据包 , 其表达为 : {packet( p1) , protocol( p1, pr6) , destination_IP

( p1, i168432643) , destination_port( p1, pt80) }。

3.1.2 表达网络拓扑( 网络节点和接口)

PC、服务器、交换机、集线器都是网络上的节点。连接上网

络的任何硬件都是网络上的一个节点。一个节点至少有一个接

口 , 用于接入网络。节点可以有多个接口。例如一台 IBM 服务

器上有两块网卡。WEB 服务器是节点 , 每块网卡是节点上的一

个接口。每个接口有一个 IP 地址 , 每个 IP 上可以开放 0 个到

多个端口。

用 node( X) 表 示 X 是 网 络 上 的 节 点 , interface( X, Y) 表 示

Y 是 节 点 X 上 的 接 口 , interface_IP( X, Y) 表 示 X 接 口 的 IP 地

址是 Y, interface_mask ( X, Y) 表示 X 接口的子网掩码是 Y, in

terface_gateway( X, Y) 表 示 X 接 口 的 网 关 是 Y, interface_port

( X, Y) 表示接口 X 上打开端口 Y。

如图 1 所示 , 防火墙服务器为网络上一个节点 , 该节点上

有 3 块网卡 , 也就是 3 个接口。接口 1 和外网连接 , 其 IP 为

192.168.1.1。接口 2 和企业内部 PC 组成的内网 1 连接 , 其 IP

为 10.10.10.1。接口 3 和企业的服务器组成的内网 2 连接 , 其

IP 为 10.10.20.1。3 个接口的子网掩码均为 255.255.255.0。这样

一 个 网 络 拓 扑 结 构 的 优 先 逻 辑 描 述 如 下 : {node( n1) , inter-

face( n1, in1) , interface( n1, in2) , interface( n1, in3) , interface_IP

( in1, i3232235777) , interface_IP( in2, i168430081) , interface_IP

( in3, i168432641) , interface_mask( in1, m4294967040) , interface_

mask( in2, m4294967040) , interface_mask( in3, m4294967040) }。

3.1.3 表达访问控制规则

访问控制规则 , 分为规则体和规则头。其意义与高级语言

中的条件语句相似 , 规则体表达的是 IF 部分 , 规则头表达的是

THEN 部分。规则体描述对数据包属性和网络接口的要求 , 规

则头描述对数据包的处理。到达的数据包 , 如果满足规则体的

要求 , 则对数据包进行规则头中的处理。目的是分析防火墙的

安全策略 , 所以 , 不关心如何处理数据包 , 而是处理后的结

果———状态。关注于数据包的状态转换关系 , 即状态转换图。数

据包的状态有许多 , 本文只采用最常用的 5 种 : 等待进入状态

( waitin) , 新 进 入 的 数 据 包 等 待 处 理 ; 等 待 出 去 状 态( waitout) ,

新出去的数据包等待处理 ; 拒绝状态( drop) , 被丢弃 ; 接受状态

( accept) , 已接受 ; 转发状态( forward) , 通过本接口路由到其他

IP 地址。

136

Page 3: 防火墙安全策略的语义分析方法

2007, 43( 26)Computer Engineering and Applications 计算机工程与应用

表 2 例 1 数据包空间中的几个数据包

包名

p1

p2

p3

p4

协议

pr6

pr6

pr6

pr6

目的地址

i3232235777

i168430081

i3232235777

i168430081

目的端口

pt80

pt80

pt80

pt80

状态

waitin

waitin

waitin

waitin

用 state( X, Y) 表示数据包 X 处于 Y 状态。图 1 中 , 防火墙

对外开放 80 端口 , 其规则表示为 : n1: state( X, accept) ←packet

( X) , state( X, waitin) , protocol( X, pr6) , destination_port( X, p80) ,

destination_IP( X, i3232235777) 。‘←’左边为规则头, 右边为规则

体。‘n1’为规则的名字。每条规则有一个名字 , 名字间存在优先

关系。优先级低的优先匹配 , 从前到后 , 优先级别依次上升。

3.1.4 一个例子

例 1 在图 1 描述的网络拓扑结构下 , 配置防火墙安全策

略。要求 : 对外网开放 WEB 服务 80 端口 , 对内网 1 数据库端

口 1521 和 WEB 服务 80 端口。其规则如下 :

//网络拓扑结构

n1: node( n1) ← .n2: interface( n1, in1) ← .n3: interface( n1, in2) ← .

n4: interface( n1, in3) ←.n5: interface_IP( in1, i3232235777) ←.n6: inter-

face_IP( in2, i168430081) ←.n7: interface_IP( in3, i168432641) ←.//访 问

控制策略规则

n8: state( X, drop) : - packet( X) , state( X, waitin) , not state( X, accept) .

n9: state( X, accept) : - packet( X) , state( X, waitin) , not state( X, drop) .

n10: state( X, accept) : - packet( X) , state( X, waitin) , protocol( X,

pr6) , destination_port( X, pt80) , destination_IP( X, i3232235777) .

n11: state( X, accept) : - packet( X) , state( X, waitin) , protocol( X,

pr6) , destination_port( X, pt80) , destination_IP( X, i168430081) .

n12: state( X, accept) : - packet( X) , state( X, waitin) , protocol( X,

pr6) , destination_port( X, pt1521) , destination_IP( X, i168430081) .

N8<n9, n9<n10, n10<n11, n11<n12

3.2 语义计算及解释

3.2.1 计算语义

已将防火墙安全策略表达为一个优先逻辑程序 , 要计算其

语义还需要将数据包空间作为输入 , 加入到优先逻辑程序中。

因为 , 防火墙根据配置的安全策略处理数据包 , 没有数据包作

为输入 , 无法理解安全策略的作用。

把所有数据包的集合 , 称为数据包空间。数据包空间是非

常大的 , 如果仅仅只考虑 6 个属性的数据包 , 其空间就有 28×

232×232×216×216×22=2106。所以 , 要依据规则具体情况 , 对数据包进

行一个划分。以例 1 为例 , 其 IP 被划分为 4 块 : i3232235777,

i168430081, i168432641, iother。iother 表示除前三个 IP 外的所

有 IP。同样对端口做类似的处理。这样 , 数据包空间就缩小为

28×22×22×3×3×22=9×214。表 2 中 , 展示了例 1 的数据包空间中的

几个数据。

其优先逻辑表达如下 :

packet( p1 ) . destination_port( p1 , pt80 ) . destination_IP( p1 ,

i3232235777) .protocol( p1, pr6) .state( p1, waitin) .

packet( p2 ) . destination_port( p2 , pt80 ) . destination_IP( p2 ,

i168430081) .protocol( p2, pr6) .state( p2, waitin) .

packet( p3 ) . destination_port( p3 , pt1521 ) . destination_IP( p3 ,

i3232235777) .protocol( p3, pr6) .state( p3, waitin) .

packet( p4 ) . destination_port( p4 , pt1521 ) . destination_IP( p4 ,

i168430081) .protocol( p4, pr6) .state( p4, waitin) .

3.2.2 解释语义

关于优先逻辑程序的语义 , 已有研究成果。文[7]中定义了

优先逻辑程序的语义 , 文[9]给出计算语义的详细算法。其源码

和 实 验 系 统 在 网 址 : http: //www.cit.uws.edu.au/~yan/plps.html 可

以得到。

上面给出的网址中下载计算语义的软件 , 然后使用该软件

计算防火墙规则的语义。接下来 , 将语义解释为防火墙安全策

略。将表达数据包空间的优先逻辑程序与例 1 中的优先逻辑程

序合并 , 计算得到其语义如下 : state( p4, waitin) state( p3, waitin)

state( p2, waitin) state( p1, waitin) state( p4, accept) state( p3, drop)

state( p2, accept) state( p1, accept) ⋯⋯ 。 其 中 , state( p4, accept)

说明数据包 p4 被接受 , state( p3, drop) 说明数据包 p3 被抛弃。

同样 , 数据报 p2, p1 也被接受。从中可以看到 , 由于一阶逻辑的

易理解特性 , 很容易立即语义所表达的防火墙策略。

4 结论

发挥防火墙的作用 , 依赖于安全策略的正确配置。好比高

性能的 F1 跑车 , 需要优秀的驾驶员。但是 , 由于现代防火墙的

安全策略复杂、规则庞大 , 使得人工分析安全策略 , 检测其正确

性非常困难。本文给出了通过语义分析防火墙安全策略的方

法。在本文中 , 用逻辑程序设计的方法表达防火墙安全策略 , 先

将安全策略表示为一个优先逻辑程序 , 然后计算其的语义 , 通

过语义解释安全策略配置。由于逻辑程序具有表达知识和自动

推理的两大特点 , 因此 , 同其他研究方法相比较 , 此方法具有可

扩展、容易理解 , 自动计算无需用户操作的特点。

接下来 , 将研究通过语义比较不同防火墙安全策略的优

劣 , 给出评价防火墙安全策略的方法和标准。目前的工作 , 正在

着手建立一套实验系统。用一些真实的防火墙规则 , 测试计算

防火墙安全策略语义的效率问题和一致性问题。

( 收稿日期 : 2007 年 1 月)

参考文献:[1] Icove D, Seger K, VonStorch W.Computer crime[M].Sebastopol, Cal-

ifornia: O’Reilley & Associates Inc, 1995.

[2] Schuba C L.On the modeling, design, and implementation of fire-

wall technology[D].Purdue University, 1997- 12.

[3] Wool A.A quantitative study of firewall configuration errors[J].IEEE

Computer, 2004, 37( 6) : 62- 67.

[4] Hazelhurst.Algorithms for analyzing firewall and router access

lists, TR- Wits- CS- 1999- 5[R].University of Witwatersrand, South

Africa, 1999- 07.

[5] Pasi Eronen, Jukka Zitting.An expert system for analyzing firewall

rules[C]//6th Nordic Workshop on Secure IT Systems, 2001: 100- 107.

[6] Baral C, Gelfond M.Logic programming and knowledge representa-

tion[J].Journal of Logic Programming, 1994( 19/20) : 143- 148.

[7] Zhang Y, Foo N Y.Answer sets for prioritized logic programs[C]//

Proceedings of the 1997 International Logic Programming Sympo-

sium( ILPS’97) .[S.l.]: MIT Press, 1997: 69- 83.

[8] Adi K, Felty A, Loggripo L, et al.Evaluation of current research in

firewall analysis[D].Rapport de recherche.Département de la défence

nationale, Canada, 2003.

[9] Zhang Y, Wu C M, Bai Y.Implementing prioritized logic program-

ming[J].AI Communications, 2001, 14( 4) : 183- 196.

[10] Zhang Y, Two results for prioritized logic programming[J].Theory

and Practice of Logic Programming, 2003, 3( 2) : 223- 242.

邓文俊 , 梁意文: 防火墙安全策略的语义分析方法 137