安全操作系统审计的设计与实现_第1页
安全操作系统审计的设计与实现_第2页
安全操作系统审计的设计与实现_第3页
安全操作系统审计的设计与实现_第4页
安全操作系统审计的设计与实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第38卷第10期2001年10月计算机研究与发展JOURNAL OF COMPUTER RESEARCS DEVELOPMENTVOl. 38 NO. 10Oct. 2001原稿收到日期:2000-11-28; 修改稿收到日期:2001-03-13本课题得到国家自然科学基金项目(60083007D 和国家 九七三 重点基础研究发展规划项目(G 1999035810D 资助安全操作系统审计的设计与实现刘海峰卿斯汉刘文清(中国科学院软件研究所北京100080D (中国科学院信息安全技术工程研究中心北京100080D(liuhf ercist . iscas . ac . cn D摘要审计子系统作为

2、安全操作系统的一个重要组成部分 对于监督系统的正常运行保障安全策略的正确实施构造计算机入侵检测系统等都具有十分重要的意义. 给出了一个基于LinuX 资源 拥有自主版权 符合GB 17859-1999第三级安全标记保护级 的审计子系统的设计和实现. 在此审计系统中 通过在核内及应用程序中设置审计点 以全面地收集数据; 通过在主体和客体两方面设置审计标准 使审计标准的配置更加灵活全面; 通过优化缓冲区的管理 提高了整个子系统的效率. 关键词安全操作系统 审计 审计记录 LinuX 资源中图法分类号TP 316DESIGN AND REALIZATION OF AUDITING IN SECURE

3、 OSLIU ai-Feng OING Si -an and LIU Weng -Oing(1ns z / e of sof Uale Chznese academ y of sczences B ez j zn g 100080D(E n g zneelzn g R esealch Cen el fol 1nfolma zon sec/lz y T echno Z o gy Chznese academ y of sczences B ez j zn g 100080DA bstract As a v er y i mp Ortant cO mp Onent Of secure O p er

4、atiOn s y ste m audit su b s y ste m p la y s ak e y rOle in m OnitOring the s y ste m insuring p rO p er i mp le m enting Of securit y p Olic y and b uilding intrusiOn detectiOn s y ste m . The design and reali Z atiOn Of an audit su b s y ste m are p resented W hich is LinuX -b ased and cO py righ

5、ted and accOrds W ith the third le v el Securit y La b el PrOtectiOnGB 17859-1999. This audit su b s y ste m can cOllect data all -arOund by m Ounting audit p Oints in the k ernel and a pp licatiOns m a k e cOnfiguratiOn m Ore fleXi b le by cOnfiguring audit m as k in su bj ects and O bj ects and en

6、hance the su b s y ste m s p erfOr m ance by O p ti m i Z ing b uffer m anage m ent . Key wordssecure O p erating s y ste m audit audit trail LinuX1引言一个安全操作系统的审计系统就是对系统中有关安全的活动进行记录检查及审核. 它的主要目的就是检测和阻止非法用户对计算机系统的入侵 并显示合法用户的误操作1. 审计作为安全系统的重要组成部分 在DOD 的TCSEC (trusted cO mp uter s y ste m e v aluatiOn c

7、riteria D 中要求C 2级以上的安全操作系统必须包含审计功能2 在计算机信息系统安全保护等级划分准则(GB 17859-1999D 中也有相应的要求3. 传统的审计系统是效率和功能的折中 要么审计粒度比较细 但系统开销比较大; 要么系统效率比较高 但审计记录不够详细 只能记录系统调用的名称 对客体的记录也不够详细46. 在本审计系统中 通过在各系统调用及特权命令处设置审计点 详细全面地收集相关信息; 通过在主体和客体两方面设置审计标准 使审计标准的配置更加灵活全面; 通过优化缓冲区的管理 实现了审计信息的并行收集 提高了效率;通过对审计记录结构优化压缩 减少了系统的开销.本审计系统是国

8、产安全操作系统SecLinux 的审计部分. SecLinux 是基于Linux 资源自主开发的符合第3级3安全功能要求的一个安全操作系统. 作为SecLinux 重要组成部分的审计子系统 它对SecLinux 中标识和鉴别客体引入到用户地址空间(创建文件 启动程序 删除客体特权用户所执行的操作用户可读输出标记的滥用等都进行了审计. 并且对审计命令审计配置文件审计记录等进行强制存取控制最小特权管理 只有具有审计特权的用户才可对其访问. 在用户界面上 则建立相应的操作命令 可以灵活地开启/关闭审计机制 选择和设置审计事件 查询和检索审计日志 并创建守时进程定期自动压缩清除审计日志等.本文在第2节

9、简要介绍了一下SecLinux 安全操作系统; 第3节介绍了本系统在审计标准的建立缓冲区管理审计点的设置审计记录结构等方面有别于传统审计系统的地方; 第4节讨论了审计系统自身的安全保护; 第5节总结全文.2Seclinux 安全操作系统体系结构简介SecLinux 安全操作系统主要由以下几部分组成:(1 标识与鉴别(identification S authentica -tion . 不仅检查用户的登录名和口令赋予用户唯一标识zd gzd 还检查用户的安全级计算特权集 赋予用户进程安全级和特权集标识 从而保证了只有合法用户以系统允许的安全级和特权集存取系统资源.(2 自主存取控制(discr

10、etionary access con -tro1. 按用户意愿进行的一种存取控制机制. 使用该机制 属主可以自由地决定其资源由系统中哪些用户以何种权限进行访问 粒度可达到每个用户. (3 强制存取控制(mandatory access con -tro1. 将系统中的信息分密级和类进行管理. SecLinux 实现的强制存取控制对系统中的每个客体(进程文件设备管道IPC 客体 都赋予了相应的安全级. 当一进程访问一个客体时 依据相应的安全规则 确定是否允许访问.(4 最小特权管理(privi1ege access contro1. SecLinux 将原超级用户的特权细化为32个特权 分别授

11、予4个不同的角色:系统安全管理员(SS0 安全审计员(AUD 安全操作员(S0P 和网络管理员(NET . 每个角色只具有完成其任务所需的特权 从而满足最小特权原理.(5 安全审计(security audit . 对系统中安全相关事件进行记录检查及审查的过程.(6 可信通路(trusted path . 提供给用户可信的登录通道 以防止伪造的登录序列.(7 密码服务(cryptogram service . SecLinux 中内含自主设计的密码算法(GC 算法 并提供所需的API .(8 网络安全(security network . SecLinux 的安全性在网络上的拓展 是强制存取控

12、制机制和自主存取控制机制在网络安全服务上的应用.SecLinux 安全操作系统的总体结构如图1 所示:图1SecLinux 安全操作系统结构从图1中看出 审计机制在整个系统结构中处于很重要的地位 新增的安全机制 如标识鉴别与可36211O 期刘海峰等:安全操作系统审计的设计与实现信通路自主存取控制强制存取控制最小特权管理等都要通过审计模块 形成核内安全策略实施情况的详细记录; 此外 核外的logzn 等安全相关命令和特权命令也要被审计.3审计子系统的设计与实现3. 1审计机制简介LinuX 系统运行态分为用户态和核心态两种.用户程序只能通过系统调用陷入核心 才能存取系统资源(文件目录设备等D

13、运行完系统调用 又返回用户态. 由此得到启发 如果在此处(称作审计点D 增加审计控制 就可以成功地审计系统调用 也就可以成功地审计与安全有关的事件. 另外 对于一些特权命令 如果只对其所调用的系统调用进行审计 则审计记录过于琐碎 不便于后期的审计分析 所以 应该对其建立相应的审计事件 以便单独审计. 审计子系统的结构图如图2 所示:图2审计子系统结构图3. 2审计系统中的事件3. 2. 1审计事件及事件类待审计的用户活动按各自的性质不同 被视为不同的审计事件 审计事件是系统审计用户动作的最基本单位. 常见的审计事件中有像open exeC 这样的系统调用 它们跟系统的安全使用有关 所以要记录它

14、们的执行情况 还有一些与系统安全关系密切的系统命令和特权命令(如logzn s/ passwd 等D 也需要对其进行审计.为了配置管理的方便 系统根据审计事件自身的相关性 将它们划分成若干审计事件类 下面是一些审计事件类的例子:pLzU 审计事件类包括审计事件fzle pLzU 和pm denzed ;fzle make 审计事件类包括审计事件CLeate lznk mk node /nlznk;zd a/th审计事件类包括审计事件bad a/th logzn passwd 等.通过系统文件/etC /seC/Lzt/TCB /a/dzt/Classes 我们一共定义了104个审计事件 新的审

15、计事件也能方便地添加进来 审计事件类用这样的形式表示:alzas <事件类X <事件的集合X . 3. 2. 2审计事件标准在对用户实施审计之前 先要确立审计标准 即需要审计哪些事件. 这个问题可以从两方面来看:(1D 从主体(用户和代表用户的进程D 角度上看 系统要记录用户进行的所有活动 每个用户有自己的待审计事件集 称为用户事件标准 一旦其行为落入用户事件集 系统就会将事件信息记录下来; (2D 从客体(文件消息信号量共享区等D 角度上看 系统要有能力记录关于某一客体的所有存取活动. 为了有更好的针对性 在我们的实现中是先定义关于该对象的哪些操作事件要求被审计 即对象事件标准

16、再确定一个待审计的客体的MAC 安全级范围(由一些连续的范围和离散的点构成D 只有属于该范围的客体的对象事件标准才被审计.在用户事件标准中 每个用户都需审计的公共部分称为基本事件集 它由审计管理员设定. 基本事件集和用户的事件集作并集运算 结果才是真实的用户事件标准.另外 有些事件与系统安全性关系非常大 任何时候都不应免于审计. 为此 SecLinuX 安全操作系统定义了一个固定的审计事件集 它是系统最基本的事件标准 在审计管理员设置或修改基本事件集时 固定事件集总是包含在系统基本事件集中. 为了保障安全 固定审计事件通过硬编码固化在内核中4621计算机研究与发展2001年管理员不能改变它 除

17、非修改内核程序. 在我们的安全系统里 固定审计事件包括:有关审计系统自身运行的一组事件(审计开关策略改变等 失败的用户登录添加删除用户帐号分配MAC 安全级等.除了固定审计事件集 其它审计事件都是审计员可选的事件. 通过c/cltset系统命令 审计员可以设置系统基本事件标准用户事件标准及用户组事件标准. 完整的审计事件标准如图3 所示:图3审计事件标准3. 3缓冲区管理审计数据来自于系统各处 在审计点搜集到的各种审计事件信息汇集到一起 等到信息量达到一定程度 就要将其写入物理介质(磁盘磁带 以便永久保存.由于外部存储介质的I /0操作十分耗时 为了提高整体效率 很自然地要引入缓冲. 审计缓冲

18、区机制的总体示意图如图4 所示:图4审计缓冲区机制的总体示意图从图4中看出 我们用多个相同大小的缓冲区构成缓冲池以便提高并发度 这样 当某进程写某个缓冲区时 审计驻留进程可以读取其它已经准备好的缓冲区.至于缓冲区大小和数目 可由审计管理员根据实际系统的运行状况和审计范围灵活地调整.缓冲区作为系统中审计数据的集散地 各审计点独立地将数据写入其中 再由一个系统驻留服务进程定期将缓冲区内容倾倒到文件中. 缓冲区作为临界区 需要协调进程间的同步和互斥. 不难观察 这是较常见的多个生产者和一个消费者的关系 各审计点是审计信息的生产者 但在生产前先要获得缓冲区资源 写磁盘的审计驻留进程是审计信息的消费者

19、消费完毕将释放缓冲区资源. 我们利用Linux 内核机制中的等待队列和信号量就很好地解决了.多个生产者(cct lecwl 为审计点往循环缓冲区写的进程 要互斥使用当前写缓冲区 引入内核semcp 0le 结构的变量b/fwlltel0ck 作为互斥锁 写前先申请锁 若已被别的进程占据则睡眠等待 得到锁才操作缓冲区 操作完毕再释放锁. 生产者和消费者(cct b/fc/mp 为循环缓冲区往磁盘上写的进程 之间的同步通过两个等待队列wclt b/flecc wclt b/fwllte 进行. cct lecwl 写审计记录时 先看当前写缓冲区是否足够容纳待写数据 不够则将缓冲区标记为满 并唤醒等

20、待在wclt b/flecc 上的写磁盘进程 写指针下移 若下一个缓冲区标记并不为空 表明写磁盘的进程操作已滞后 这时应该等待在wclt b/fwllte 队列上 等到有可用的空缓冲区时 cct lecwl 被唤醒并开始写入记录数据. 写磁盘的进程通常等待在wclt b/flecc 队列上 某个缓冲区满时被唤醒 它调用cct b/fc/mp将当前读指针开始的所有已满缓冲区逐一写入磁盘 并每次唤醒wclt b/fwllte 队列 使cct lecwl 可以继续写562110期刘海峰等:安全操作系统审计的设计与实现审计记录, 在该写磁盘的缓冲区都已写入后, 它再次睡眠在zait uf Tead 队

21、列. 3. 4审计点的处理3. 4. 1对系统调用及客体安全级范围的审计(1 在每个系统调用的入口处通过系统调用号索引N 系统检查函数表H, 得到真正的检查函数入口, 再根据系统调用参数决定它应属于哪个审计事件, 将事件号作为中间结果赋给进程task 结构的a ezent 备用(审计在task 结构中添加的变量 , 接着检查事件号是否属于进程审计标准a pTocemask (主体审计策略 , 是则对进程task 结构设审计本进程标记, 并且为进程task 结构有关审计的变量赋值; 不是则返回.(2 在每个系统调用的出口处检查进程task 结构的审计本进程标记是否置位, 是则通过系统调用号索引N

22、 系统记录函数表H, 得到真正的记录函数入口, 调用它将审计到的数据写入缓冲区, 并清除审计本进程标记; 否则不做审计动作.(3 在主体访问客体的权限检查处对于系统调用引发的客体访问, 有可能要根据客体安全级决定是否审计. 可以在客体访问的必经之地(如Zookup dentTy 作检查, 若进程task 结构的审计本进程标记置位, 则说明该事件已经属于主体(进程 审计范围, 不必重复记录, 返回即可; 否则, 根据已在系统调用入口判定的事件号a ezent , 检查该事件是否属于系统的对象审计标准, 是则进一步检查当前客体的安全级是否在待审计的系统安全级范围中, 若是则置位审计本进程标记, 否

23、则返回. 真正的写缓冲区动作同样是发生在系统调用的出口处. 3. 4. 2对安全相关的系统命令的审计和系统调用一样, 每个安全相关的系统命令也分别对应进程审计屏蔽字的某一位, 这些审计点必须在命令对应的系统程序中添加. 由于这些审计点处于用户态, 不能直接访问内核的数据结构和过程, 所以只好借助新的系统调用. 我们引入auditdmp 系统调用, 在系统程序中将事件号和相关信息作为auditdmp 的参数传到内核, 在内核中检查该事件是否属于进程审计范围, 是则根据事件号构造不同的审计记录, 写入缓冲区. 3. 5审计文件和审计记录结构审计文件是存放审计结果的二进制结构文件, 每次审计开启,

24、都会按照设定的路径和命名规则产生一个新的日志文件, 文件名的形式为MMDDi i i hhmmssnodename.其中, MM 表示月份, DD 表示日期, i i i 表示序号, 编号从000到999, nodename 是一个可选的结点名, hhmmss 是文件创建时的时分秒, 以保证文件不重名.它有一个特殊的首记录, 用以标记系统版本信息和文件格式的幻数(magiC Humber , 其它的记录则都对应一个特定事件. 每条审计记录包括公共数据和事件特有数据两部分内容, 其数据结构如表1表2所示.表1公共数据的数据结构Cmn reCc Ttype 审计事件所属类的类型c ezent 审计

25、事件类型c size 记录大小c segnm 审计序列号c auid 审计uid c pid 进程idc time 审计事件发生的时间c status成功失败标志事件特有数据对于每个事件各不相同, 比如OpeH 系统调用所用的数据结构如表2所示,表2open 系统调用的事件特有数据cmn 公共数据的数据结构cmn Tec f fd 返回值(文件描述符fd f fname 文件名f fZags flagS f mode mOdef mac文件的MAC 安全级这样, 有关某一事件重要信息都被记录, 从中我们可以了解, 谁在什么时间和地点做了什么动作, 动作的具体细节, 结果如何. 图5是利用审计管

26、理命令显示审计到的有关信息. 3. 6异常处理审计数据可能会增长得很快, 必须限制审计文件占用的文件系统空间. 审计管理员可以配置文件系统的预留空间(如10% , 在写磁盘时检查文件系统超级块中指示的可用空间, 若低于预留值, 则视为异常情况, 需要紧急处理. 在我们的实现中提供了3种处理方法,(1 切换到审计文件控制结构中设定的备用文件系统, 继续审计. 但这时应该通告审计管理员做进一步处理. 审计文件控制结构的a pTogp 定义了一6621计算机研究与发展2001年10 期 刘海峰等 , 安全操作系统审计的设计与实现 1267 个外部程序 ( 命令或 Shell 脚本 , 它在切换文件系

27、统 时 自动执 行 , 可 以 写 控 制 台 消 息 给 管 理 员 发 邮 件 发出 声 音报警 自 动 转 储 删 除 老 的 审 计 文 件 以 释 放 出 磁盘空间等 . 这 个 外 部 程 序 由 管 理 员 视 具 体 应 用 环境而定 . ( 2 关闭审计系统 . ( 3 关闭整个系统 . 审 计 系 统 运 行 过 程 中 的 出 错 有 多 种 可 能, 如 内 核空间分配失败 文件创建和读写操作失败等 , 这些 错误 往往难 以令 人 满 意 地 得 到 恢 复 . 所 以 我 们 只 提 供了 两种简 单的 出 错 处 理 , 关 闭 审 计 系 统 或 关 闭 整 个

28、系统 . 图5 审计记录查看 检索 员才 能查看 和修 改 配 置 . 审 计 文 件 则 是 在 运 行 的 过 4 审计系统的安全保护 审 计 是 安 全 操 作 系 统 的 重 要 组 成 部 分, 它 监 督 程 中 生 成 , 它 的 安 全 级 由 审 计 进 程 ka/dztd 在 创 建 文件 的同 时指定 . 根 据 进 程 创 建 对 象 的 安 全 级 等 于 进程安全级的原则 , 创建的文件也是系统审计级 . 此 外 , 密码子系统对于审计记录进行管理 , 以保证即使 审计记录泄露出去也不会被别人看到 . 另外 , 系统应能够监督审计管理员 , 防止其权力 过大可以为所

29、欲为 ( 例如 , 审计管理员关审计后执行 危险操作再开审计 , 篡改审计数据 , 或冒充他人做违 规 动作 . PAC 的引入提供了角色分配机制 , 使 特权 分离 , 从而限制审计管理员的权力 . 一个可行的方案 是 , 增加一个系统安全管理员角色 , 赋予他开审计特 权 , 而 审计 管 理 员 只 拥 有 关 审 计 特 权 , 这 样 , 即 使 审 计管理员可以随时关闭审计 , 却无法再次打开审计 , 而且他的关审计动作也在审计文件中被记录 . 当然 , 也可以分配多个审计员角色 , 达到相互制约 . 着 系 统中各安全 特 性 的 实 施 . 如 果 审 计 系 统 自 身 的

30、安全被突破 , 审计数据的可靠性就无从保障 , 就不能 提 供 准确的事后 分 析 和 追 踪 , 也 就 无 法 估 计 安 全 突 破对系统造成的影响 . 在审计系统的设计实现中, 充分结合了 Seclinux 中的安全特性, 保证 审计的 自身 安全 . 审计 的 安 全包 括以下两个方面 , ( 1 程序 和 代 码 的 安 全 . 审 计 数 据 的 采 集 记 录 部 分集成到安全 内 核 , 审 计 进 程 的 执 行 不 受 外 界 影 响 , 核外的应用程序 ( 审计管理员配置程序和审计数 据 显 示 分 析 程 序 则 严 格 遵 循 强 制 访 问 控 制 AC 和最小特

31、权控制 PAC, 保证只有审计管理 员 才 能使 用这些程序 . ( 2 系统 配 置 和 审 计 数 据 的 安 全 . 配 置 文 件 包 括系统和用户审计标准 审计系统的运行参数 审计 事件的定义等 , 这些文件也必须施加 AC 控制 . 审 计 配 置文件的安 全 级 为 系 统 审 计 级 , 确 保 只 有 审 计 5 结束语 本审计系统是受国家自然科学基金项目和国家 九 七三 重点基 础研 究 发 展 规 划 项 目 共 同 支 持 , 在 linux 核心 2- 2- 15 基础上开发的 , 是国 内首 创的安 1268 计 算 机 研 究 与 发 展 6 2001 年 Ulf

32、 Lindgvist Ulf Gustaf son. An approach Proc of the 21st National Arlington 全标 记 保护级安 全 操 作 系 统 的 重 要 组 成 部 分 . 本 系 统产生的审计记录符合标准 Unix 审计记录 7 Stef an Axelsson 这为 to Unix security logging. In, VA USA 1998. 62 75 7 以后审计分析及入侵检测的开发打下了良好的基 础 . 通过模拟程序的运行比较 与原 Linux 系统相比 效 率 下降少于 5% . 该系统 充分利 用 了 SecLinux 的

33、MAC PAC 域间隔离及密码服务等安全特性 使自 身的安全得到保障 . 参 1 2 3 Inf ormation Systems Security Conf . Crystal City Matt Bishop. A standard audit trail f ormat. In, Proc of the 18th National Inf ormation Systems Security Conf . Baltimore Maryland USA 1995. 136 145 刘海峰 术. 男 1975 年生 博士研究生 考 文 献 主要研究方向为信息系统安全理论与技 A Guide t

34、o Understanding Audit in Trusted Systems. NCSCTG-001 ver 2. National Computer Security Center 1988 Trusted Computer System Evaluation Criteria. DoD 5200. 28STD. U S Department of Def ense. 1985 GB 17859-1999. 中 华 人 民 共 和 国 国 家 标 准 , 计 算 机 信 息 系 统 安全保护等级划分准则 1999 ( GB 17859-1999. National Criteria of People s Republic of China, Classif ied criteria f or security protection of computer inf ormation systems( in Chinese . 1999 刘霞 丁红兵. 网 络 安 全 审 查 与 控 制 安全性专辑 . 北京 , 学苑出版社 ( Liu Xi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论