《基于Ponder2语言的访问控制策略描述方法研究》阅读总结

摘要

基于策略的网络管理通过引入策略机制将管理和执行两个环节分离开,管理员只需要根据管理目标描述出相应的策略,再由系统自动将策略转化为相应的ACL规则。

Ponder2概述

  • Ponder策略语言是英国伦敦皇家学院在策略管理领域进行十余年研究的成果,是一种面向对象的说明性语言
  • Ponder语言特点:灵活性、表达性和扩展性;既可以定义用于基于角色访问控制的安全策略,也可以定义通用的事件触发的管理策略,兼具描述安全策略和管理策略之长。
  • Ponder2:建立在 Ponder基础之上,整个系统框架进行了重新的设计,具有完全可扩展的框架,适用范围更加广泛。
  • Ponder2模型当前支持两种基本类型的策略:义务策略、授权策略
  • 策略:管理系统行为的规则的集合。在Ponder2中,策略就是一个被管对象。

分析

Ponder2主要是应用在网络管理的QoS方面,利用Ponder2的面向对象的高级语言PonderTalk可以很方便地描述与网络QoS相关的策略;Ponder2语法一般采用域表达式来标识被管对象。 

描述方法

1、Ponder2中的域表示

  • 域是一个对象集,一个域的成员可以是一个具体的对象,也可以是子域;
  • 采用域描述策略,可以动态地改变域成员,而不必改变策略本身;
  • 产生一个新域:
newdom:= root/factory/domain
root at:"newdomain" put:newdom create
  • Ponder2中的域运算符:

2、Ponder2中义务策略的基本形式

(1)事件(event)的定义:义务策略的基本形式就是Event Condition Action,即以事件为驱动,当条件得到满足,就会执行相应的动作。

  • 它既可以单独定义,然后在多个策略中重用;也可以进行参数化定义,事件参数会被映射为事件的属性
event_template:= root/factory/event create:#("name" "value")
root/event at:"event1" put:event_template
/*先由Ponder2的事件模板产生event_template事件类型,包含两个事件参数"name"和"value";*/
/*然后产生一个具体的事件对象event1,并将其存放到域root/event中*/。

(2)策略的条件(condition):可以不配置策略的条件(驱动该策略的事件一旦发生,就会执行策略的动作);可以配置多个条件(需要指定各条件之间的依赖关系)

  • 条件之间的关系:与&、或||、非!
  • 每一个条件中,条件的属性与值之间的关系一般有等于、大于或小于等多种形式;
policy condition:[:name :value |
(name="abc")&(value>100)
]
/*规定事件参数中名称name为"abc",且值value>100时,视为满足策略的条件,此时就会执行策略的动作*/

(3)策略的动作(action):义务策略的必要组成部分。只有当驱动策略的相应事件发生,同时满足了策略的条件,策略的动作才会被执行。

  • 动作是策略的主体对策略的目标可能实施的行为。
policy action:[:name :value |
root print:"Name"+ name + "has value" + value
]
/* 系统执行屏幕打印操作:Name name has value value*/

(4)一个完整的义务策略描述:

policy:= root/factory/ecapolicy create.
policy event:root/event/event1.
policy condition:[:name :value |
(name="abc")&(value>100)
].
policy action : [:name :value |
root print:"Name"+ name + "has value" + value
].
root/obligpolicy at:"policy1" put:policy.
policy active:true.
/*当事件event1发生时,事件中包含的参数信息就会传递给策略系统;策略系统据此来对策略条件进行估计,如果参数name值为abc,value>100,就满足了策略的条件,于是系统执行策略的动作,向屏幕打印相应的字符串;系统会将该策略作为一个对象存放到域root/obligpolicy下,名为“policy1”;最后一行设置策略的有效性为true,即策略是有效的。*/

3、访问控制策略的特点

访问控制列表ACL:一种对经过路由器的数据流进行判断、分类 和过滤的技术;是一系列包含源地址、目的地址及端口号等信息的语句的集合,每条语句称之为一个规则(规定对到达数据包的处理动作————允许或者拒绝)

  • 通过匹配数据包中的信息与访问控制列表的规则可以过滤数据包,实现对路由器和网络的安全控制;
  • 一个ACL是由若干条有序的ACE(Access Control Entry)组成的,一般应用于某个端口的入或出的方向;
  • 当网络规模较大时,被禁止访问的主机数量很大,且IP地址不在一个子网内,较为分散时,进行ACL的配置比较烦琐;采用基于策略的网络管理技术,管理员就只需创建一组访问控制策略,再把策略部署到网络结点上,就可以抵御一些网络攻击;

4、访问控制策略的描述

Ponder2义务策略应用到访问控制策略上,策略的条件:IP数据包的基本信息,主要包括协议、源地址、目的地址、源端口和目的端口;策略的动作:到达网络边界的包是否被转发。

access list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 135
/*192.168.1.0/24中的任意一台主机禁止访问192.168.2.0/24中的任意一台主机的135端口*/
  • 用Ponder2描述访问控制策略如下所示:
event_template:= root/factory/event create:
#("Protocol SourceIP" "DestIP SourceServ DestServ").
root/event at:"packet_transmit" put:event_template.
policy:= root/factory/ecapolicy create.
policy event:root/event/packet_transmit.
policy condition:
[:Protocol :SourceIP :DestIP :SourceServ :DestServ|
(Protocol=="root/protocol/tcp")
&(SourcelP=="root/net/net1/192.168.1.0")
&(DestlP=="root/net/net2/192.168.2.0")
&(SourceServ=="root/server")
&(DestServ=="root/server/135")
].
policy action:[ root/Router
set ForwardEnabled:false.
].
root/policy at:"ACL1" put:policy.
policy active:true.
posted @ 2020-04-22 21:40  1993Fxn  阅读(364)  评论(0编辑  收藏  举报