访问控制体系

2024-09-11

访问控制体系(精选8篇)

访问控制体系 篇1

0 引 言

校园网的安全是网络管理员面临的最为迫切的问题,由于各种因素导致的校园网数据丢失、被修改或系统瘫痪时有发生。因此,在校园网络及其信息系统中如何设置自己的安全措施,使它安全、稳定高效地运转,发挥其应有的作用,成为各学校越来越重视的问题。

1 校园网拓扑图

构建一个安全的访问控制体系,需要对校园网架构有充分的认识和了解,分析各种各样存在的问题或是可能出现的问题,以便迅速找到解决问题的途径和方法。

从校园网络的典型拓扑来了解架构,如图1所示。

从拓扑图可以看出将整个网络细分为桌面应用区、交换区、服务群区、路由区、广域网区等,每个部分发挥着不同的作用,这样区分的好处就是方便管理。例如服务器区块主要针对的是各种服务器的安全性、稳定性等。当然不同的校园网略有区别,虽然网络结构看上去比较复杂,实质上都离不开网络的模型,构建一个安全的访问控制体系需要将各个部分的安全威胁降到最低。

2 网络的层次模型

现代校园网基本上是基于TCP/IP协议作为模型。TCP/IP的模型从下向上各层名称依次是:网络接口层(物理层、数据链路层)、网络互连层、传输层、应用层。

3 校园网面临的安全威胁

了解了常用的校园网攻击手段,才可有的放矢。而且随着网络技术的发展,新的攻击手段也是层出不穷,在这里介绍一些常见的校园网的安全隐患,以便管理员及时查漏补缺。

3.1 物理层

保证计算机信息系统各种设备的物理安全是整个计算机系统安全的前提。最底层安全最薄弱,一旦受到威胁和破坏,那么在此层之上的其他网络层次都将受到影响,它是网络安全的基础。

物理层主要考虑的是线路的安全、物理设备的安全、机房的安全等。

3.2 数据链路层

数据链路层对应的网络设备主要是交换机,而且要防范校园网内部的整体安全,最好的方式是在交换机上进行控制。

(1) MAC 地址欺骗

将合法的MAC 地址修改成不存在的MAC 地址或其他计算机的MAC 地址,从而隐藏自己真实的MAC,来达到一些不可告人的目的,这就是MAC 地址欺骗。

前段时间非常流利的ARP攻击就是基于这个原理,造成了网络内部数据包的大量拥堵,非常多的用户反映网络很慢,经常掉线,大部分原因就是它所造成。

(2) STP攻击

STP(Spanning Tree Protocle,生成树协议)是交换机的正常运转必不可少的协议,因此也成为被攻击的一个重点。

(3) 接入点缺乏管理

随着校园内计算机应用的大范围普及,接入校园网节点日渐增多,而这些节点大部分都没有采取相关的防护措施,随时有可能造成病毒泛滥、信息丢失、数据损坏、网络攻击、系统瘫痪等严重后果。

3.3 网络互连层

工作在这一层最主要的设备是路由器和三层交换机,因此大部分的攻击及防御可以在此种设备上完成。

(1) IP地址欺骗、盗用

IP欺骗:盗用合法用户的IP地址,隐藏自己的真正身份。IP欺骗和MAC欺骗相结合,伪装成其他人进行网络访问。

比如常见到的IP地址冲突就很有可能是这种攻击造成的,造成网络中其他主机不能正常上网或是占用大量的资源,影响带宽。

(2) IP扫描攻击

目前发现的扫描攻击有两种:

目的IP地址变化的扫描,称为“scan dest ip attack”。这种扫描最危害网络,消耗网络带宽,增加交换机负担;目的IP地址不存在,却不断地发送大量报文,称为“same des tip attack”。

3.4 传输层

传输层主要是面向连接和非面向连接的攻击。网络需要通信,通信必须要占用某个端口,而传输层主要是进行端到端的通信。

DoS/DDoS(拒绝服务攻击/分布式拒绝服务攻击):它是指故意攻击网络协议的缺陷或直接通过野蛮手段耗尽受攻击目标的资源,目的是让目标计算机或网络无法提供正常的服务,甚至系统崩溃。

3.5 应用层

该层次的安全问题主要是由提供服务所采用的应用软件和数据的安全性产生,包括Web服务、电子邮件系统、FTP等,此外还包括病毒对系统的威胁。

(1) 病毒攻击

通过网络传播的计算机病毒无论是在传播速度、破坏性和传播范围等方面都是单机病毒所不能比拟的。目前最流行的蠕虫病毒,通过电子邮件、网络共享或主动扫描等方式从客户端感染校园网的Web服务器,改变网页的目录以繁衍自身,并通过发送垃圾邮件和扫描网络,导致网络的“拒绝服务”,严重时会造成网络瘫痪。

(2) 操作系统和应用软件的漏洞

大学网络服务器安装的操作系统大多是Windows NT/Windows 2000,Unix,Linux等,这些系统安全风险级别不同。Windows NT/Windows 2000的普遍性和可操作性使得它成为最不安全的系统:本身系统的漏洞、浏览器的漏洞、IIS的漏洞;Unix由于其技术的复杂性易导致高级黑客对其进行攻击:自身安全漏洞(RIP路由转移等)、服务安全漏洞、Unix自身的病毒等,这些都对原有网络安全构成威胁。

(3) 垃圾邮件

垃圾邮件虽然不像病毒感染一样是一种明显的威胁,但它可以极快地淹没用户的收件箱,这就使得用户难于查看合法的电子邮件。垃圾邮件问题已经相当严重,以至于用户会放弃某个由垃圾邮件摧毁的电子邮件账户。垃圾邮件还是钓鱼者和病毒制造者喜欢的传播媒介。

(4) 内部隐患

由于内部用户对网络的结构和应用模式都比较了解,因此来自内部的安全威胁更大一些。现在,黑客攻击工具在网上泛滥,而个别学生的心理特点决定了其利用这些工具进行攻击的可能性。

4 校园网的安全防御

针对前面提到的安全威胁,寻找与制定好的安全手段,提升校园网的安全性。

4.1 物理层

为了最大限度降低安全风险,提高意外情况下的恢复能力,需要完善规范的网络管理制度,而且随着环境的变化做相应的整改,以适应网络发展的需要。

4.2 数据链路层

在交换机上划分VLAN,做好各种安全配置。如果可能,可将MAC地址与端口绑定,可以有效避免或是减少ARP病毒的攻击及MAC地址欺骗等。

4.3 网络互联层

在路由器配置各种安全策略,如ACL一类,现在很多网络在与外网相连的接口上启用NAT一类的技术,也可起到安全的效果。禁PING,TRACERT之类的命令或HTTP服务等。

4.4 传输层

安全套接层(Secure Sockets Layer,SSL)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

4.5 应用层

(1) Windows自动更新服务

下载Windows操作系统安全和稳定性补丁,在校园网上搭建一个专门的补丁服务器。Window系统补丁本地更新,不产生国际流量和相应的流量费用,校园网用户享受免费的、高质量的Window系统补丁更新服务。

(2) 网络防病毒系统

Symantec等防病毒系统是现在校园网或是企业网络中比较常见的,使用户桌面计算机安全得到保障。

(3) 邮件服务器

校园网邮件服务器安装邮件网关,可以有效抵抗邮件攻击,防垃圾邮件,过滤病毒和非法内容邮件等。

(4) 服务监控

实时了解服务器主机工作是否正常,实时了解关键服务是否运行正常,关键服务使用情况统计,监控WWW服务、FTP服务,及前面的补丁服务器、邮件服务器等。

(5) 身份验证

身份验证技术用于判断对象身份的真实性,是校园网上信息安全的第一道屏障。除校园卡外,校园网上的身份验证技术主要是口令机制:如各种开机口令、登陆口令、共享权限口令等。对这些口令的保护除建立严格的保密以外,口令的设置方法也非常重要。

尽管Internet网络上存在众多口令攻击器,可能将口令破译出来,但是一个合理的口令机制可使自己遭受黑客攻击的风险降到一定限度以内。

(6) 设置防火墙

防火墙是设置在不同网络之间的一系列软硬件的组合,它在校园网与Internet网络之间执行访问控制策略,决定哪些内部站点允许外界访问和允许访问外界,从而保护内部网免受非法用户的入侵。

(1) 根据校园网安全策略和安全目标,规划设置正确的安全过滤规则,规则审核IP数据包的内容包括:协议、端口、源地址、目的地址、流向等项目,严格禁止来自公网对校园内部网不必要的、非法的访问。

(2) 将防火墙配置成过滤掉以内部网络地址进入路由器的IP包,这样可以防范源地址假冒和源路由类型的攻击;过滤掉以非法IP地址离开内部网络的IP包,防止内部网络发起的对外攻击。

(3) 在防火墙上建立内网计算机的IP地址和MAC地址的对应表,防止IP地址被盗用。

(4) 定期查看防火墙访问日志,及时发现攻击行为和不良上网记录。

(5) 允许通过配置网卡对防火墙设置,提高防火墙管理安全性。

(6) 入侵检测系统部署IDS(Intrusion Detection System)。

入侵检测能力是衡量一个防御体系是否完整有效的重要因素,强大完整的入侵检测体系可以弥补防火墙静态防御的不足。对来自外部网和校园网内部的各种行为进行实时检测,及时发现各种可能的攻击企图,并采取相应的措施。入侵检测系统集入侵检测、网络管理和网络监视功能于一身,能实时捕获内外网之间传输的所有数据,利用内置的攻击特征库,使用模式匹配和智能分析的方法,检测网络上发生的入侵行为和异常现象,并在数据库中记录有关事件,作为网络管理员事后分析的依据。

(7) 用户管理

结合IP网关技术,避免一部分网络攻击,对访问外网做到严格审查。

(8) 网络管理

网络流量监测系统能直观地显示网络健康状况、实施预警,实现定制的网络拓扑图,与已有的流量监控系统无缝集成,并将Top N主机/端口排名等,还有相应的在线用户统计、超大流量IP报警、用户IP日流量统计。

(9) 安全管理

“三分技术,七分管理”,安全管理是保证网络安全的基础, 安全技术是配合安全管理的辅助措施。建立一套校园网络安全管理模式,制定详细的安全管理制度,如机房管理制度、病毒防范制度等,并采取切实有效的措施保证制度的执行。

5 结 语

校园网络访问控制体系策略的制定要针对网络的实际情况(被保护信息的价值,被攻击的危险性,可投入的资金等),具体地对各种安全措施进行取舍。可以说,这是在一定条件下的成本和效率的平衡,其目标是使系统的性能比达到一个合理的水平。

摘要:构建完善实用的校园网安全访问控制体系是防止黑客入侵以及网络病毒攻击,保证校园网安全、高效运行的前提和基础。该方案结合TCP/IP模型,从下向上依层次对校园网及其应用系统进行了分析研究,找出可能遇到的各种风险,通过制定身份验证、设置防火墙等有效的相应防御措施,打造出一个安全的校园网架构,有效防止与避免了由于各种原因导致的校园网数据丢失、被修改甚至系统瘫痪等事故的发生。近年来的实践证明,该方案设计合理,能有效满足校园网的安全需求。

关键词:校园网,网络安全,访问控制体系,TCP/IP

参考文献

[1]王湘渝,陈立.基于多层防护的校园网安全体系研究[J].计算机安全,2009(8):73-74,78.

[2]张立朝,于江,苏锦海.一种新的内部网安全传输方案设计与实现[J].现代电子技术,2010,33(5):92-94.

[3]王伟,袁胜忠.校园网安全架构解析[J].中国教育网络,2009(1):75-77.

[4]侯振兴.高校校园网安全性建设浅析[J].内江科技,2008,29(3):86.

[5]牛合利,黄娜娜.浅议校园网安全与防范[J].中国科教创新导刊,2008(5):214-215.

[6]蒋萍.浅谈校园网的建设和管理[J].科技信息,2009(18):186.

[7]吴婷.高校校园网的安全与管理维护[J].中国新技术新产品,2009(15):239.

[8]伍光喜.中小型校园网的安全解决方案[J].中国培训,2010(2):53-54.

[9]赵耀,孙晋,何晓燕.高校校园网安全问题分析及整体解决体系的研究[J].华北煤炭医学院学报2009,11(4):597-598.

[10]刘晓辉.网络安全设计、配置与管理大全[M].北京:电子工业出版社,2009.

访问控制体系 篇2

答:访问控制列表是一种包过滤技术,分为标准访问控制列表(编号为1到99)和扩展访问控制列表(编号为100到199)两类,

标准访问控制列表主要是对源地址的控制,适用于所有的协议。以Cisco2600路由器为例,假设允许192.168.1.0网段内的所有机器通过路由器出去,那么设置如下:

access-list 1 permit 192.168.1.0 0.0.0.255

interface serial 0

ip access-group 1 out

其中,0.0.0.255为该网段的通配符掩码,

非标准访问控制列表可以实现对源地址和目的地址的双重控制,还可以只针对某一协议作控制。以Cisco路由器为例,假设拒绝192.16.1.0网段内的所有机器通过80端口从路由器访问新浪网站,操作如下:

access-list 101 deny tcp 192.168.1.0 0.0.0.255 www.sina.com.cn eq 80

access-list 101 permit any any

interface serial 1

访问控制体系 篇3

I2C总线是Philips公司首先推出的一种两线制串行传输总线, 由一根数据线 (SDA) 和一根时钟线 (SCL) 组成, 用于连接微处理器及其外围设备。微处理器可以通过I2C总线访问控制支持I2C传输协议的设备。I2C总线因为协议成熟, 引脚简单, 传输速率高, 支持的芯片多等优点, 在Linux等嵌入式操作系统中应用非常广泛。I2C总线协议也随着Linux内核的不断升级而逐渐完善。在Linux 2.6内核中, I2C总线协议已经成为内核驱动的一部分。为了将I2C设备应用于嵌入式系统, 研究I2C总线在Linux内核中的实现过程将非常必要。

2、I2C总线体系结构

Linux的I2C体系结构分为3个部分:I2C核心、I2C总线驱动、I2C设备驱动。

I2C核心对应的源码在Linux 2.6内核driver目录下的i2c-core.c。它提供了I2C总线和I2C设备驱动的注册注销方法。它是I2C总线驱动和I2C设备驱动通信的桥梁。

I2C总线驱动是对I2C体系结构中, 适配器端的实现, 适配器可以由CPU控制, 甚至可以直接集成到CPU内部。

I2C总线驱动主要包含了I2C适配器的数据结构i2c_adapter, I2C适配器的通信方法algorithm等。通过访问I2C总线驱动, 我们可以控制I2C适配器的工作状态和过程等。

I2C设备驱动是对I2C硬件体系结构中设备端的实现, 设备一般挂在受CPU控制的I2C适配器上, 通过I2C适配器与CPU交换数据。I2C设备驱动包含的数据结构有i2c_driver和i2c_client, 我们需要根据具体的设备实现其中的成员函数。

如图 (1) 可以直观反映I2C设备、I2C驱动、I2C通信方法之间的相互依赖控制关系。

2.1 I2C总线的结构原理

内核中i2c.h文件对i2c_driver、i2c_client、i2c_adap ter和i2c_algorithm这四个数据结构进行了定义, 分析这四个数据结构复杂的关系是理解I2C体系结构的关键所在。

(1) i2c_adapte与i2c_algorithm。

i2c_adapter对应于物理上的一个适配器, 而i2c_algorithm可以看做是适配器访问总线的方法。

(2) i2c_driver与i2c_client。

i2c_driver对应一套驱动方法, 是纯粹辅助作用的数据结构, 不对应任何的物理实体。i2c_client对应于真实的物理设备, 每个I2C设备都需要一个i2c_clien来描述。

(3) i2c_adapte与i2c_client。

i2c_adapte与i2c_client的关系和硬件体系中适配器和设备的关系一致, 即i2c_client依附于i2c_adapte。

3、I2C总线的通信方法

I2C通信主要指I2C消息的传输和接收, I2C消息的结构体i2c_msg如下:

我们要为特定的I2C适配器实现其通信方法, 主要实现i2c_algorithm的master_xfer () 函数。

master_xfer () 函数处理I2C消息的流程, 对于数组中的每个消息, 若为读消息, 则赋从设备地址为 (msg->addr<<1) |1, 否则为msg->addr<<1。对每个消息产生一个开始位, 紧接着传送从设备地址, 然后开始数据的发送或接收, 对最后的消息还需要产生一个停止位。

3.1 I2C设备ZLG7290与ARM S3C2410之间的通信

I2C设备的读写可以有两种方法, 直接通过read () write () 读写I2C设备和通过O_RDWR IOCTL读写I2C设备。以下程序实现的功能是在8个8段数码管上显示A、0、1、4、2、C、3、5数据。我们可以通过如下程序实现ZLG7290与ARM S3C2410之间的通信, 实现CPU对ZLG7290的读写控制。

通过O_RDWR IOCTL读写I2C设备, 常用的IOCTL包括I2C_SLAVE (设置从设备地址) 、I2C_RE-TRIES (没有收到ACK情况下的重试次数, 默认为1) , I2C_TIMEOUT (超时) 以及I2C_RDWD。这种方式下, 要写入设备的数据连同从设备地址, 设备内部数据访问地址一起被封装成i2c_rdwr_ioctl_data数据结构。i2c_rdwr_ioctl_data数据结构包含了I2C消息数据结构i2c_msg及其消息数目。

以上两中方式读写ZLG7290设备中, 我们利用的是系统提供的字符设备驱动程序i2c-dev.c。应用程序用read () /write () 读写设备时, 会调用i2c-dev.c中的i2cdev_write/i2cdev_read函数, 这两个函数最终调用i2c_master_send函数, 由i2c_master_send调用i2ccore.c中的i2c_transfer函数。通过O_RDWR IOCTL读写I2C设备, 调用i2c-dev.c中的i2cdev_ioctl函数, 由i2cdev_ioctl函数调用i2c-core.c中的i2c_transfer函数。

Linux提供的字符设备的总线驱动程序摸板在driver/I2C/Algos目录下的i2c-algo-bit.c文件。在同级目录的Busses目录下, i2c-s3c2410.c文件具体实现了I2C总线的驱动程序。

s3c24xx_i2c结构体中定义了I2C适配器adap的名称, 重试次数, 访问方法algo (为s3c24xx_i2c_algorithm结构体)

s3c24xx_i2c_algorithm这个结构体填充了master_xfer和functionality函数。

i2c-core.c中的i2c_transfer函数中ret=adap->algo->master_xfer (adap, msgs, num) 程序调用了i2cs3c2410.c中的s3c24xx_i2c_xfer函数。这个函数非常关键, 所有I2C总线上对设备的访问最终应该由它来完成。这个函数还依赖于另外两个函数s3c24xx_i2c_doxfer和s3c24xx_i2c_message_start。

s3c24xx_i2c_xfer函数调用s3c24xx_i2c_doxfer函数传输I2C消息。s3c24xx_i2c_doxfer首先将S3C2410的I2C适配器设置为I2C主设备, 后初始化

s3c24xx_i2c结构体, 使能I2C中断, 并调用s3c24xx_i2c_message_start函数启动I2C消息的传输。

s3c24xx_i2c_message_start函数写S3C2410适配器对应的控制寄存器, 向I2C从设备传递开始位和设备位。

以上函数只是启动了I2C消息数组的传输周期, 并没有完整实现algorithm中的master_xfer流程, 这个流程的实现要借助于I2C适配器上的中断来步步推进。中断处理函数s3c24xx_i2c_irq主要通过调用i2s_s3c_irq_nextbyte函数进行传输工作的进一步推进。i2s_s3c_irq_nextbyte函数通过switch (i2c->state) 语句分成i2c-state的不同状态进行处理。在每种状态下, 先检查i2c-state的状态与硬件寄存器的状态是否一致, 若不一致, 则证明有误, 直接返回。当I2C处于读状态STATE_READ或写状态STATE_ERITE时, 通过is_lastmsg () 函数判断是否传输的是最后一条I2C消息, 如果是, 则产生停止位, 否则通过i2c->msg_idx++, i2c->msg++推进下一条消息。

4、结束语:

本文详细论述了Linux I2C体系结构, 通过对ZLG7290与ARM通信的实例分析, 详细阐述了I2C体系结构传输I2C消息的过程。随着ARM Linux嵌入式技术的不断发展, I2C驱动程序的开发在嵌入式设备的硬件开发中将会越来越重要。ARM Linux嵌入式产品将会遍及我们生活的各个领域, 嵌入式技术也将会不断推动社会进步, 给我们的生活带来越来越多的便利。

参考文献

[1]陈赜.ARM9嵌入式技术及Linux高级实践教程[M].北京:北京航空航天出版社, 2007

[2]吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社, 2004

[3]孙福春、宁滨, ARM7嵌入式系统在车辆调度中的应用[J].微计算机信息 (测量自动化) , 2008.21 (3) :78-79.

[4]马忠梅, ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社, 2005.6.

访问控制策略失效案例 篇4

近几年网络安全工作受到越来越多的重视, 由于一些公司内网的建设的不完备导致公司在网络层面上遭受着巨大安全风险。因此公司内部也加大了对安全防护工作的考核。从事安全工作的朋友都知道, 要想构建一个稳定且强健的内部网络, 除了及时给终端服务器打补丁、开防火墙之外, 对网络设备实施恰当的安全访问控制策略实在是非常重要, 因为它不仅是一种有效的技术手段, 亦是一种管理手段。

不过笔者有两次遇到过因某种特定原因, 致使访问控制策略失效的案例, 由于它们具有一定的参考意义, 特记录于此, 以免大家遭遇类似麻烦。

案例一VLAN1透传引起的ACL策略失效

分公司总部工作人员密集, 有两台核心路由器与五台三层交换机, 每台三层交换机的上联端口都配置有安全访问策略, 一直运行很稳定。由于特殊的原因, 我们将其中的两台三层交换机直连, 将一台三层交换机下的一个VLAN透传到另一个三层交换机 (互连线是access端口) 。本以为没有改动三层交换机的上联线路, 这个变更不会影响到两台三层交换机的安全策略, 结果很快在省公司的例行扫描中, 发现了其中一台三层交换机下许多本已屏蔽的漏洞, 而且交换机中不停的有拓扑变更警告。

原来一般支持802.1Q的华为交换机在端口没有配置的时候默认都是属于VLAN1, 也就是默认不打标签的VLAN, 它一般不承载用户数据也不承载管理流量, 只承载控制信息。即使配置了端口为其他VLAN号, 这种不打标签的数据包也是默认允许通过的。所以这就不难解释为什么我们在比较新一点的华为交换机上配置trunk端口时, 往往会看到“port trunk allowpass vlan 2 to 4094”的配置, 因为VLAN1默认就是开放的。那么这对我们这个案例场景的影响就是, 这根增加的网线, 使得路由器至两个三层交换机无形多了一条通路 (经过另一个交换机的VLAN1透传) , 而在这根网线互联的端口上是没有安全策略的, 这也就是有一台三层交换机ACL策略失效的原因。解决的方法很简单, 只需要将互联端口改成trunk口, 并且显式的定义禁止的VLAN号与允许的VLAN号:

案例二DHCP改造引起的ACL策略失效

分公司各个端局使用的是城域网退役下来的老设备华为MA5200F, 在全局视图配置之下, 都有对上联端口的安全策略。由于近年来公司内部改革变动力度较大, 人员机构调整频繁, 为了减少网络维护的压力, 我们进行了DHCP改造。可是在新增了域、新增了地址池, 并且将此域加到上联子端口实现DHCP功能以后, 我们才忽然发现, 原来的ACL策略对这个新增的地址池失效了。

查询了许多资料后我们才找到问题的原因, 原来MA5200F与三层交换设备DHCP配置方法不同, ACL策略生效方式也有差异。MA5200F需要先对域指定ucl-group, 然后针对这个ucl-group配置ACL策略, 最后再在全局启用此策略, 这样才能对域内地址池的访问流量进行过滤。

下面给出了相关的参考例子 (DHCP安全策略部分) :

UCON访问控制的研究 篇5

1 UCON核心模型组成

UCON对传统的存取控制进行了扩展,定义了授权(Authorization)、义务(o Bligation)和条件(Condition)三个决定性因素,同时提出了存取控制的连续性(Continuity)和可变性(Mutability)两个重要属性。UCON不仅集合了传统的访问控制、信任管理以及数字版权管理,并且超越了它们的定义和范围,能更好地满足现代信息系统对数字资源的保护要求。

ABC模型是UCON的核心模型,由八种元素组成,如图1。

UCON模型中的主体、主体属性、客体和客体属性的概念都来自于传统访问控制模型,它们的应用方式也和传统访问控制中类似。主体(Subject)是具有某些属性,对客体拥有某些使用权限的主动的实体,简记为S。主体属性(Subject Attribute)标识了主体能力和特征,是权限决策过程中的重要参数,简记为ATT(S)。客体(Object)是按权限集合的规定接受主体访问的被动的实体,简记为O。客体属性(Object Arttbiutes)是标识客体的重要信息,简记为ATT(O)。

权限(Rights)指一个主体以特定的方式(如读或写)访问某个客体的权利。UCON模型不像传统的访问控制,把权限看成独立于主体活动的访问控制矩阵的静态元素,而是在主体试图访问客体时才跟据主客体属性和授权、义务、条件三大决策因素动态的确定用户的操作权限。

授权(Authoriaztion)是UCON模型中重要组成部分,简记为A,它用于使用决策,并返回主体是否能够对客体进行操作的决策。授权是基于主、客体的属性和所请求的权限(如:读或写等权限)并依据权限规则集进行的权限判断操作。UCON中的授权既包括传统的预先授权,也可以根据不同的控制规则访问过程中进行授权判断操作。此外,执行授权谓词可能会在访问之前、访问中或在访问结束之后引起主、客体可变属性值的更新,进而将对本次或其它的访问决策产生影响。例如:用户在购买一本电子图书后其信用卡上的金额会相应减少,这一结果将是用户本次或以后使用该卡进行电子交易的权限判断的重要依据。

义务(o Bligation)是主体在访问之前或者访问过程中必须执行的动作,简记为B。在访问之前执行(pre B)是在访问请求执行前主体必须满足某种条件,例如:用户必须提供个人信息才能下载网站上的资源。在访问过程中执行(on B)是在权限行使的过程中必须持续性满足或是周期性满足的条件,例如:要求用户必须处于登录状态才能在执行事务性操作。主体履行何种义务不是预先静态设置的,而是根据主客体的属性动态确定的,义务的履行也可能会更新主客体的可变属性,同时这些更新能影响现在或将来使用决策。

条件(Condition)是面向环境或是面向系统的决策因素,简记为C。条件评估当前的硬件环境或与系统有关的限制以决定是否满足用户请求。例如:用户必须在规定的终端、规定的时间段使用服务;也可以对网络流量进行一定的限制等。主客体属性可以用来判断用户需要满足何种条件,比如:在网络拥塞的情况下只需要特定ID进入系统。但条件的评估并不改变任何主体或客体的属性,这一点与授权和义务规则不同。

2 UCON的新特征

UCON区别于传统的访问控制模型的两个显著特性是:“连续性”和“可变性”。

连续性意味着使用控制决策不仅可以在访问前进行,在访问过程中也可以。沿时间线可将一个完整的使用过程分为三个阶段使用前,使用中和使用后。使用控制决策可以对前两个阶段进行授权,分别称为预先授权和过程授权[2]。但却不能发生在访问资源之后,因为此时对客体资源的操作已经完全结束,访问控制也就没有任何意义可言。

易变性意味着主体、客体属性作为访问执行的结果而发生改变。根据上述的三个阶段可将属性的变化分为三种类型:使用前更新,使用中更新,使用后更新。可变属性的更新对本次或是下次的权限决策起重要依据作用。

连续性控制和可变属性使得基于历史的授权决策更容易实施。

3 UCONABC核心模式

ABC模型假设有一个访问客体资源的请求,根据连续性,请求的权利可在行使该权利之前进行判断,也可在行使该权利过程中判断。可变属性作为使用资源的结果,允许更新主体或客体的属性。如果在访问控制过程中不存在可变属性,则使用决策过程中不可改变属性,用O表示,存在可变属性的访问控制模型中,属性的更新可能在权限行使之前,行使过程中或行使之后,分别用1、2、3表示。对于不可能实现的情况用“N”表示,可能实现的情况用“Y”表示。有16种可能的模式作为使用控制模型的核心模式。

表1中都是以单纯的模式为例,但在实际系统中可能根据不同应用的需求产生不同的组合模型,例如UCONPre C0on C0。就表示既要在访问使用前执行“条件”,决策因素的检测又要在访问过程中检测,并且都不改变主客体的任何属性。具体的模型组合情况[3]如图2所示。

4 UCON模型的使用范围

UCON模型主要保护数据资源,对计算机系统资源和网络资源也可以针对具体的应用需求配合其它相关技术达到资源保护的目的。在UCON系统中不仅可以保护服务器端的数据资源,对于下载的客户端的数字资源也可以起到保护作用,比如控制其使用期限、使用次数和防拷贝等。UCON模型主要实现数据资源安全性预防的目标,防止零安全操作的发生。

5 UCON的优点及不足

UCON实现了传统访问控制,信任管理,以及数字版权管理并引入了授权的连续性、属性的易变性、义务、条件等诸多概念,将多个因素继承到统一的框架中来克服传统访问控制模型的不足,用一种统一的、系统化的方式来刻画现代访问控制和数字权限管理[4]。

UCON虽然从理论上解决了以往访问控制中存在的问题且具有很好的理论模型。但是目前的研究大多集中在理论层面,面向应用的研究不足,未能给出UCON应用的具体模型,以及针对具体问题的解决方案。文献[5]中给出了采用动态描述逻辑对UCON模型在面向实际应用建模方面进行系统化的逻辑表述与推理的实例。

6 结论

UCON不仅集合了传统的访问控制、信任管理以及数字版权管理,并且超越了它们的定义和范围,能更好地满足现代信息系统对数字资源的保护要求。一定程度上说,UCON模型用系统的方式提供了一个保护数字资源的统一标准的框架,为研究下一代访问控制提供了新思路,被认为是当前很具有潜力的访问控制技术。

该文主要介绍了-UCON模型,包括UCON核心模型的组成要素、UCONABC模型、UCON的新特性以及使用范围等。UCON在各类信息安全系统中有着良好的应用前景,但是在实际应用中还存在不足,还有待在应用中做进一步的探索。

参考文献

[1]Park J,Sandhu R.Towards usage control models:beyond traditional access control[C].ACM Symposium on Acesscontrol Models andTechnologies,2002,2(3):57-64.

[2]JaehongPark,XinwenZhang,Ravi Sandhu.ATTRIBUTE MUTABILITY IN USAGE CONTROL.GeorgeMasonUniversity,2005.

[3]聂丽平.基于UCON访问控制模型的分析与研究[D].合肥:合肥工业大学,2006.

[4]袁磊.使用控制模型的研究[J].计算机工程,2005,31(12):146-148.

Linux访问控制安全测评 篇6

关键词:信息安全,访问控制,安全测试

1.Linux安全测评的背景与意义

随着计算机与网络技术的普及应用,信息安全已经成为关系到国家安全的关键因素。在计算机系统安全中,操作系统安全是整个计算机信息系统安全的基石[1]。如果不经过安全测评,操作系统的安全性就得不到保障。随着我国基于Linux的国产操作系统研发的不断发展,研究Linux操作系统安全测评技术己成为迫切的需求,可以有效地保障国产操作系统应用地质量,从而更好地推动国产操作系统产业的发展。

操作系统安全测评涉及到安全操作系统、安全等级评估、评估标准等多方面内容。目前国内在Linux操作系统安全测评领域的研究还处在逐步发展的阶段,在操作系统安全等级评估方面已经取得了一定的成果,制定出了一系列等级评估相关标准。

随着操作系统在计算机系统安全中的重要作用越来越引起人们的重视,如何测评操作系统安全性成为一个重要的课题。信息安全国际通用标准CCCommon Criteria for IT Security Evaluation)提出了安全系统通常应该具备的安全功能,并进行了分类,其中,访问控制是系统安全的第一道防护手段[2]。因此,本文将从访问控制功能这个操作系统中最重要的安全机制出发,对Linux访问控制及其测试进行研究。

2.Linux安全测评的基础和标准

为了对Linux操作系统的安全性进行统一的评价,为Linux操作系统产品厂商提供权威的系统安全性标准,需要有相应的安全测评标准来支持。目前,国际上信息安全评估标准的制定已经取得了长足的发展[3][4][5]。

美国国防部于1983年推出了历史上第一个计算机系统安全评测准则TCSEC(Trusted Computer System Evaluation Criteria),又称桔皮书,从而带动了国际上计算机系统安全评测的研究。为了方便安全信息系统的统一评价,德国、英国、加拿大、西欧等纷纷制定了各自的计算机系统安全评价标准,其中较为著名的有ITSEC(Information Technology Security Evaluation Criteria)、CC(Common Criteria for IT Security Evaluation)。我国在借鉴、吸收TCSEC和CC等基础上制定了相应的国家标准GB/T18336-2001和GB/T20008-2005等标准。

基于相关安全需求,TCSEC在用户登录、授权管理、访问控制、审计跟踪、隐蔽通道分析、可信通路建立、安全检测、生命周期保障、文档撰写等方面均提出了规范性要求,并根据所采用的安全策略及系统所具备的安全功能设定四类(A~D)及七个安全级别,从低到高依次为D、C1、C2、B1、B2、B3、A1,各级别描述由满足安全策略、审计和保证的主要控制目标及文档要求共四部分组成。

我国的GB17859-1999《计算机信息系统安全保护等级划分准则》把计算机信息系统的安全保护能力划分为五级,从低到高依次为用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级,相关要求分别对应TCSEC的C1级、C2级、B1级、B2级和B3级,并稍作调整。

信息技术安全评价通用准则CC基于欧洲ITSEC、美国TCSEC、加拿大CTCPEC及ISO SC27 WG3安全评价标准而形成,是目前最全面的信息技术安全评估标准。它们提出了保护轮廓的概念,将评估内容划分为安全功能要求和安全保证要求两个方面,并均按照类、族、组件的层次结构分别展开描述。CC提供和定义了七个逐步增强的评估保证等级EAL1~7,依次为功能测试级、结构测试级、系统测试检查级、系统设计测试复查级、半形式化设计测试级、半形式化验证设计测试级和形式化验证设计测试级。各评估保证等级结构上由评估保证等级名称、目标、适用性说明和一组保证组件以及相应保证组件间的所有依赖关系构成。

3.Linux系统的访问控制机制分析

访问控制是操作系统安全机制的主要内容,主要用来规范和控制系统内部主体对客体的访问操作[6][7][8]。

定义1主体(Subject)是指系统中能够发起行为的实体,比如,人、进程和设备等。

定义2客体(object)是指系统中被动的主体行为承担者,比如,文件、目录、管道、消息,以及存储页和存储段等。

定义3存取访问控制(Access Control)是规范和控制各类主体(用户、本地进程或远程进程等)访问本系统中客体的决策与实施过程。

访问控制的目的是为了限制访问主体对访问客体的访问权限,从而使计算机系统在合法范围内使用。它决定用户能做什么,也决定代表一定用户身份的进程能做什么。其中主体可以是某个用户,也可以是用户启动的进程和服务。因此,访问控制需要完成以下两种任务:

1)识别和确认访问系统的用户;

2)决定该用户可以对某一系统资源进行何种类型的访问。

现有的Linux的存取访问控制方式主要采用自主访问控制(Discretionary Access Control,DAC)和强制访控制(Mandatory Access Control,MAC)两种。

定义4自主访问控制是指客体(比如程序、文件或进程等)的拥有者可以任意的修改或授予此客体相应的权限。

定义5强制访问控制是基于更高的安全要求考虑,不由客体的所有者任意分配客体权限,而是事先按照一定的安全策略统一配置。

Linux支持UGO(User、Group、Other)和ACL(Access control List)权限管理方式,它们都属于自主访问控制方式,UGO将权限位信息存储在节点的权限中,ACL将权限位信息存储在节点的扩展属性中。

3.1 UGO访问控制管理机制

UGO访问控制机制是Linux文件系统传统的访问控制方式,它通过在文件和目录上都设置权限位,用来控制用户对文件或目录的访问。

在UGO访问控制方式中,一个文件创建后,它具有读、写和执行三种操作方式。UGO权限管理方式将文件的操作者分为文件所有者、同组用户和其他用户三类。文件所有者是指创建文件的用户,他是文件的拥有者,他可以设置用户的读、写和执行权限,也就是说他是访问控制权限的决定者。文件建立时默认的用户组是文件所有者所在的用户组,但文件所有者可以对该用户组进行修改,该组中的所有用户都是文件的同组用户。

UGO访问控制方式将文件的权限用三组3位的二进制位描述,即9位二进制数,并且在最前面加上一位作为文件的类型标志。每类用户占3位,读、写、执行权限各用1位描述,具有权限时,该位就设置为1。读、写、执行权限分别用r、w、x三个字符表示,如表2所示。

3.2基于ACL的自主访问控制机制

ACL实现用户权限管理,它对UGO权限管理方式进行了扩展,可以对任意的用户/组分配读、写和执行操作权限。ACL基于IEEE POSIX 1003.le标准,EXT2、EXT3、EXT4、JFS、XFS和Reiser FS等文件系统都支持ACL。

ACL的优先级高于UGO的优先级,当ACL的权限设置大于UGO时,mask就是UGO权限中的同组用户的最高权限,而ACL的有效权限则是和mask取权限的交集,从而限制了ACL对UGO权限的超越。但文件的所有者可以通过修改mask值来消除这种限制。在测试时,为了保证ACL访问控制不受限于UGO访问控制,应得将mask值设为rwx。ACL中单个用户权限的优先权高于同组用户权限,也就是说如果在ACL中设置了某个用户的权限,又设置了这个用户所在组的用户权限,则这个用户的权限与他所在组的用户权限无关。

4.Linux访问控制测试

4.1测试流程

对Linux操作系统的访问控制机制实现测试自动化,首先要分析该机制提供的安全功能,然后设计相关的测试用例,构建测试环境,执行测试,最后对测试结果进行分析,如图1所示。

分析Linux访问控制机制的安全功能需求主要是确定从哪些方面测试这些安全功能,这一步可参考测评标准中的相关安全功能组件中的具体描述来确定。本文主要参考了信息技术安全评价通用准则CC中规定的自主访问控制的安全功能组件的内容。

4.2.测试用例设计

在Linux操作系统中,UGO是最基本的访问控制管理方式,ACL是建立在UGO权限管理方式基础上的可选的机制。本节将先对不开启ACL机制时的UGO权限管理方式进行测试,然后在对ACL机制进行测试,后者也就是测试这两种安全机制都工作时是否满足安全功能需求。

根据CC标准中安全功能组件,访问控制安全测试应该分为访问控制权授予测试和访问控制实施测试两类。由于UGO权限管理方式在特殊权限位开启和关闭时安全功能不同,所以将对UGO的测试分为开启特殊权限位测试和不开启特殊权限位的测试,如图2所示。

(1)UGO访问控制安全测试

为了保证将所有的安全功能都覆盖到,应该先对该访问方式的类型进行分类。UGO将权限按用户分类,用户分为文件所有者、同组用户、其他用户三类,所以必须保证每一类中至少有一个用户,才能通过这类用户的行为判定安全功能是否实现。例如,当一个文件的所有者为Userl,所在的组为Groupl时,User2是这个文件的同组用户,User3是这个文件的其他用户。这就保证了文件所有者、同组用户、其他用户三类分别有不同的用户,如表3所示。

UGO权限中的特殊权限位SUID,SGID和Sticky开启和关闭时,访问控制功能是不同的。接下来我们分别在在特殊权限位关闭和开启情况下,对这两种测试进行测试数据准备和测试用例的描述。

没有开启特殊权限位UGO访问控制授予测试的文件准备比较简单,只需要一个所以者为Userl,用户组为Group1,权限为rwxrwxrwx的文件“Test ugo_change”,测试用例如表4所示。

开启权限位后对UGO访问控制授予测试,要验证这三个位对文件权限的授予没有影响,测试用例如表5所示。

(2)ACL访问控制机制的测试设计

在ACL机制中权限的分配是以单个用户和单个用户组为单位的。测试用例要检查ACL机制对文件所有者、组用户和其他用户和用户组能否指定的访问权限是否正确实施。为了不受ACL的影响我们将mask都设为rwx权限。ACL访问控制权授予测试用例如表6所示。其中Test_acl_changel文件的所有者为Userl,用户组为Group1,权限是rwxrwxrwx,ACL权限为用户Userl、User2、User3用户有rwx权限,组Userl有rwx权限。

5.结束语

访问控制机制是操作系统最为关键的安全支撑机制,同时由于国内自主研发的操作系统大多基于开源的Linux系统内核,所以本文以Linux系统的访问控制机制为切入点,对操作系统安全测试进行了探索和讨论。

开展Linux操作系统安全测评的研究,目的是对操作系统的安全指标进行评估,为信息系统的安全及国产操作系统产品的开发和选购提供理论和技术指导,最终为信息系统的安全、实用奠定基础。为了进一步推动国产操作系统的发展,在注重操作系统质量的同时,要重点关注操作系统的安全性。

参考文献

[1]陆幼骊,张红旗.操作系统安全测评系统设计[J],信息安全与通信保密,2005,8:94-97.

[2]牛妍萍,吕述望.Linux文件访问控制及其自动化测试,信息安全与通信保密,2006,9:165-166.

[3]左晓栋.信息安全产品与系统的测评与标准研究[D],北京:中国科学院研究生院,2002.

[4]马妙霞.基于Linux的强制访问控制机制及其安全测试自动化的研究[D].北京:北京交通大学,2007.

[5]陈晨.操作系统安全测评及安全测试自动化的研究[D],北京:北京交通大学,2008.

[6]牛晗晖.Linux系统调用及其安全测试自动化的研究[D],北京:北京交通大学,2009.

[7]李耀东.Linux操作系统存取访问控制机制的研究[D],北京:北京交通大学,2008年.

访问控制技术实现与展望 篇7

访问控制包括三要素:主体、客体和访问控制策略。其中第三要素访问控制策略是访问控制技术的核心技术。

1、主体是指一个提出请求或要求

的实体, 是动作的发起者, 也可以是动作的执行者或者任何主动发出访问请求的智能体, 如程序、进程、服务等。传统访问控制方法对用户的控制方法使用恨广泛。

2、客体是接受其它主体访问的被

动实体, 包括受访问控制机制保护下的系统资源。在不同应用场景下有不同的具体定义, 如在操作系统中客体可以是一段内存空间, 磁盘上面的某个文件, 在数据库中客体可以是一个表中的某些记录, 在Web上客体可以是某一特定页面, 网络结构中的某个广义上的数据包结构。

3、访问控制策略是主体对客体行

为的约束条件集, 是主体对客体的访问规则集。它定义了主体对客体实施的具体行为和访问的条件约束, 在某种程度上体现的是一种授权行为, 也是客体访问主体时候所具有的操作权限。主体进行访问的方式取决于客体类型, 是对客体的一种操作, 例如请求内存空间, 文件的操作等问题, 以及修改数据库表中记录, 浏览认证陌生服务器中页面等。

二、传统访问控制策略

访问控制策略是访问控制技术的核心技术。建立规范的访问控制策略是实现严格访问控制策略的基本前提。访问控制策略通常分为三种, 分别是自主访问控制 (Discretionary Access Control) , 强制访问控制 (Mandatory Access Control) 和基于角色的访问控制 (Ro1e-Based Access Control) 。访问控制策略之间相不互排斥, 通常是多种访问控制策略并存, 取其交集。系统管理员能根据实价情况配置安全策略达到特定需求。

1、自主访问控制 (DAC)

自主访问控制称为随意访问控制, 是根据自主访问控制策略的一种模型。自主访问控制允许主体对访问控制策略施加特定约束, 基础模型是访问控制的矩阵模型。自主访问控制DAC是计算机系统中最常用的访问控制技术, 在操作系统和数据库中得到广泛的应用。

自主访问控制根据用户身份和所允许访问的权限确定其访问操作。只要用户身份确认后就可根据访问控制列表的规则赋予该用户权访问限。用户或应用访问权限可任意在系统中定义谁可以访问资源或者有选择地与其他用户共享网络资源。

2、强制访问控制 (MAC)

强制访问控制模型也称为基于网格的访问控制技术LBAC (Latticebased Access control) 。强制访问控制模型MAC产生于美国政府和军方, 目的是为了实现比DAC更加严格的访问控制策略。与自主访问控制技术DAC相比, 强制访问控制提供的访问控制机制无法绕过。在强制访问控制中, 每个用户及配置文件都被赋予一定的安全级别, 用户不能改变自身权限或者任何客体的安全级别, 即不允许单个用户确定访问权限, 只有系统管理员才可以确定用户和组的访问权限和策略。

3、基于角色的访问控制 (RBAC)

基于角色的访问控制RBAC是指在应用环境中, 通过对合法访问者进行角色认证来确定访问者在系统中对哪类信息有什么样的访问权限[1]。系统关心的是用户基于什么角色, 而不管用户是何种身份。角色可以理解为其工作涉及相同行为或者责任范围内的一组人。一个访问者可以扮演多种角色, 一个角色也可以包含多个访问者, 是互不相同的概念。

基于角色的访问控制的实现思想是用户和访问权限之间再引入角色概念, 具体角色与权限相关, 是一个组织内执行某种操作的特定权限集合, 而且可以根据当前事务的变化增加和删除角色权限。角色的概念是RBAC与传统访问控制技术的根本区别。

三、新一代访问控制策略

目前, 网络信息系统是一个开放环境, 传统的访问控制主要用于再信息系统封闭环境中保证信息的机密性完整性, 不能很好地满足开放式动态网络需求。为避免这种不足, 2002年George Mason大学著名的信息安全专家Ravi Sandhu和Jaehong Park首次提出使用控制 (Usage Control, 简称UCON) 的概念并于2004年提出了UCON的核心模型UCONABC模型[2], 能很好的适应开放的网络环境。

四、结束语

访问控制技术是信息安全的重要组成部分, 对系统安全运行提供了基本安全保障。随着信息社会的不断发展, 单靠传统的访问控制技术已满足不了开放型的需求, 因此访问控制技术也要不断地发展适应。目前UCON是访问控制技术是新的发展方向, 将广泛深受人们的关注。

参考文献

过滤驱动来实现文件访问控制 篇8

随着计算机的大规模使用及互联网的日益普及,计算机系统的安全问题越来越受到关注。而文件作为计算机数据的载体,系统的核心机制,一向是研究和攻击的热门。入侵者可以通过各种方式来获取计算机中的文件数据,比如登录,偷盗等等。但是最广泛的方式则是通过网络攻击,利用远程控制或者后门程序。

为了保护文件的安全,可以进行访问控制,比如利用Windows的NTFS文件系统。但是NTFS自身也有一些缺陷,比如只能安全机能只对NTFS有效,系统管理员密码容易破解等等。

为了提高文件系统的安全性,目前研究比较多的是实现文件访问控制。要完全实现对文件访问的控制,只有两种方法,第一种是通过Windows提供的API函数来实现,这种方法比较容易,但是存在着致命的缺陷。第二种方法则是利用系统驱动的机制,这种非常可靠,不过要求程序员必须对Windows的系统机制,运行流程,各个子系统,模块等有比较深的了解。

2、文件系统驱动程序结构

文件系统驱动程序(FSD)管理文件系统格式。虽然FSD运行在内核模式下,但它们在许多方面与标准和内核驱动程序有所不同。它们必须向I/O管理器注册成为一个FSD,并且它们要大量地与内存管理器打资产。为了提高性能,文件系统驱动程序也常常要依赖于缓存管理器的服务。

Windows有以下两种不同类型的文件系统驱动程序

本地FSD管理那些直接连接至计算机的卷

网络FSD允许用户访问那些连接至远程计算机的数据卷。

2.1 FSD模型

图1是一个简化的视图,说明本地FSD如何与I/O管理器和存储器注册。一旦FSD已被注册,I/O管理器就可以在应用程序或系统最初访问卷的时候,调用它来执行卷的识别工作。

文件系统的操作一般有打开、创建、关闭、读、写和控制等请求。这些请求一般是由用户进程产生,发送到I/O子系统管理器,I/O管理器生成输入输出包 (IRP) ,再转发到文件系统驱动。

2.2 过滤原理

IRP是由Windows内核中的I/O管理器进行分配,在驱动程序之间传递操作特有的数据。任何设备对象都存在于某个设备栈中。设备栈是一组设备对象。这些设备是相互关联的。任何来自应用的请求,最终被Windows I/O管理器翻译成irp的,总是发送给设备栈的顶端那个设备。

图2向右的箭头表示IRP请求的发送过程,向左则是返回。可见irp是从设备栈的顶端开始的,逐步向下发送。DevVolume表示我们实际要过滤的Volume设备,DevTop表示这个设备栈的顶端。我们只要在这个设备栈的顶端再绑定一个设备,那发送给Volume的请求,自然会先发给我们的设备来处理。

2.3 缓存管理器

缓存管理器是一组内核模式的函数和系统线程,他们与内存管理器协同工作,为所有的Windows文件系统驱动程序(本地FSD和网络FSD)提供了数据缓存的能力。

要将驱动绑定到文件系统驱动上边,文件系统除了处理正常的IRP之外,还要处理快速IO (FAST I/O) 。快速IO是对缓存的文件读和写操作的一种高速机制。,它无需经过"生成一个IRP"这样的环节。通过快速IO, I/O管理器调用文件系统驱动程序的快速IO例程,以确定该I/O是否可以直接由缓存管理器来满足,而无需生成一个IRP。

3、过滤驱动实现

3.1 生成设备

首先生成过滤设备对象来绑定真实的设备对象。Windows文件系统 (FS) --FAT32、NTFS--主要生成两类设备。首先文件系统驱动本身往往生成一个控制设备 (CDO) ,这个设备的主要任务是修改整个驱动的内部配置。因此,一般来说,一个文件系统只对应一个CDO。

另一种设备是这个文件系统的卷设备。一般一个卷对应一个逻辑盘。

文件系统驱动是针对每个卷来生成一个设备对象,而不是针对每个文件的。实际上,对文件读/写的IRP,都发到卷设备对象上,并不会生成一个文件设备对象。

要注意的就是控制设备和卷设备。发送给控制设备的请求(IRP)一般是文件系统控制IRP (IRP--MJ--FILE--SYSTEM--CONTROL) ,;而发送给卷设备的IRP一般则是文件操作IRP。要绑定文件系统的卷设备,前题是绑定文件的控制设备。

利用函数IoCreateDevice来实现,其中第三个参数应该为FILE_DEVICE_DISK_FILE_SYSTEM,第四个参数为FILE_DE-VICE_SECURE_OPEN。

3.2 分发例程,Fast IO

作为过滤,必须对以下一些特殊的分发例程给矛处理

然后处理FastIo.FastIo。FastIO是没有空间的,所以为了保存这组指针,必须自己为其分配空间。用ExAllocatePool函数来实现。然后再对里面所有的函数进行过滤。

3.3 绑定设备

用来绑定设备的系统调用有两个,IoAttachDeviceToDeviceStack和IoAttachDeviceToDeviceStackSafe,但是后面一个函数在Windows2000上是无法使用的,如果绑定用的是IoAttachDeviceToDeviceStackSafe,那么会导致驱动在Win2000下不起作用。

在这里我们应该编写一个回调函数,FileSystemNotify (

IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN f Active) , 在其中绑定FS CDO

最后利用系统调用Io RegisterFsRegistrationChange注册刚刚的回调函数。这样当系统中有任务文件系统被激活或者是被注销的时候,回调函数就会被调用。

4、结论

过滤驱动具有很高的研究价值和使用价值,一般来说可以用在如下的几个方面。

1)防病毒引掣

2)用于文件系统的透明附加功能

3)作为防信息泄漏软件的基础。

具有广阔的市场前景。

参考文献

[1]李民, 方勇, 刘林超, 熊帆, 文件过滤驱动及应用第3卷第4期信息与电子工程

[2]Hips之FD (File Defend) 文件防御体系的规则编制http://bbs.kafan.cn/

[3]Greg Hoglund, James Butler ROOTKITS--Windows内核的安全防护清华大学出版社2007

[4]驱动开发网谭文Windows文件系统过滤驱动开发教程 (第二版)

[5]守住最后一道防线--文件过滤驱动程序在系统安全中的研究与应用华中科技大学系统工程研究所周剑岚冯珊孙建军

[6]Rajeev Nagar, Windows NT File System Internals:A Developer's Guide O'Reilly&Associates, 1997

上一篇:共享过程下一篇:中国名牌