一种安全操作系统中审计信息处理方法技术方案

技术编号:7447120 阅读:396 留言:0更新日期:2012-06-20 22:49
一种安全操作系统中的审计信息处理方法属于安全操作系统领域。本方法使用了两个接口函数、两个缓冲区、两个守护进程、一个定时器。将可信计算基中产生的审计信息区分为没有实时性要求和有实时性要求这两种,并分别通过普通审计接口和关键审计接口送入,接收到的审计信息在同步机制的控制下被写入缓冲区,进而由守护进程将缓冲区中的元素写入磁盘文件,定时器可控制关键审计守护进程周期性地写文件而不必等待缓冲区满,这种设计可以将并发的审计信息生成转化成对审计信息文件的串行写入,满足可信计算基对普通审计的高效性需求和对关键审计的实时性需求。

【技术实现步骤摘要】

本专利技术属于安全操作系统领域。根据我国国家标准GB17859-1999《计算机信息系统安全保护等级划分准则》,第二级信息系统的关键技术为审计,本专利技术即用来处理审计所产生的审计信息。
技术介绍
第二级信息系统的可信计算基应能记录下述事件使用身份标识与鉴别机制;将客体导入用户地址空间(如打开文件、程序初始化);删除客体;由操作员、系统管理员、和 (或)安全管理员实施的动作;以及其他安全相关事件。对于每一事件,审计记录应清晰包括事件的日期与时间、用户、事件类型、事件是否成功。对于身份鉴别事件,审计记录应该包含请求的起源(如终端标志符)。对于客体导入用户地址空间时间和客体删除事件,审计记录应该包含客体名称。系统管理员应该能够选择性地审计任意一个或多个标示用户的行为。常用的桌面系统所提供的审计功能往往不能满足上述多样且灵活的需求, Windows系统将能进行审计的事件固化了,Linux自带的审计功能也只能记录系统调用、文件访问等等,灵活性不够,尤其是当我们利用LSM(Linux安全模块)按照国家标准 GB17859-1999的要求自行开发了可信计算基之后,审计信息的产生和处理需求非常灵活多变,需要自行设计开发审计信息处理的相关功能。审计信息的生成,通常是在LSM钩子中进行的,开发者可以在钩子中汇总所需信息生成一条长度固定的审计信息。由于系统对一个用户操作的响应是大量的具体事件,因此在系统运行过程中审计信息并发大量地产生,这些大量的审计信息需要进行记录,存储到文件,而对目标文件的写操作不能并发进行,因此需要有一套同步机制,来协调和同步对于审计信息文件的写操作,将大量并发的写操作转换成顺序进行的,以确保审计信息确保其顺利地保存到目标文件中去。在某些可信计算基的需求中,对大部分事件的审计信息没有实时性需求,即审计信息生成后不需要立即在审计信息文件中得到体现,而对某些特定事件的审计信息是有实时性需求的,即生成的审计信息需要尽快写入审计信息文件以备查询和使用,例如在一个安全操作系统中安装完一个新的应用程序,则需要可信计算基依赖审计信息立即做出响应。因此审计信息处理方法必须兼顾实时性和高效这两种需求。
技术实现思路
为了满足可信计算基对审计信息处理机制高效性和实时性的需求,本专利技术首先将审计分为普通审计和有实时性需求关键审计,在可信计算基中基于缓冲区建立两套机制分别用来处理普通审计信息和关键审计信息,并通过定时器来保证关键审计信息处理的实时性。本专利技术的技术方案是这样的对Linux安全模块钩子提供两个接口,一个用来处理普通审计信息,另一个用来处理关键审计信息,这两个接口各对应一个包含若干个缓冲区元素的缓冲区,接收到的审计信息通过自旋锁这一同步机制串行地写入各自对应的缓冲区中的当前作用元素,这一元素被写满后给对应的守护进程释放信号量;在系统中设立两个守护进程并启动一个定时器,一个守护进程用来处理普通审计信息,另一个守护进程用来处理关键审计信息,定时器每隔数秒钟向关键审计守护进程释放一个信号量;普通审计守护进程平时处于睡眠状态,在得到普通审计缓冲元素区满这一事件所释放的信号量后被唤醒,其任务是将普通审计缓冲区中的已被写满的缓冲区元素写入磁盘文件,而后继续转入睡眠状态等待信号量;关键审计守护进程平时处于睡眠状态,在得到信号量后被唤醒,唤醒后通过关键审计缓冲区的标识位判断出信号量的来源是关键审计缓冲区满这一事件还是定时器,如果是前者已则将被写满的缓冲区元素写入磁盘文件,如果是后者则将缓冲区中现有的内容写入磁盘文件,以保证关键审计信息实时出现在磁盘文件中,而后继续转入睡眠状态等待信号量。这套机制在运行时,LSM钩子根据可信计算基的需求生成审计信息,并通过普通审计和关键审计两个接口将审计信息送入本套机制,收到信息后首先给相应缓冲区的自旋锁上锁防止冲突,将两种审计信息写入对应的缓冲区中的当前作用元素,写完后检查当前作用元素是否已被写满,如果没有写满则解开自旋锁等待下一次审计信息的送入,如果写满了则置下一个元素为当前作用元素,并释放一个信号量,再解开自旋锁。相应的守护进程得到信号量后,开始工作,将已经写满的缓冲区元素追加写到相应磁盘文件,写完后进入睡眠状态等待信号量。另外启用一个定时器,以数秒钟为固定时间间隔给处理关键审计的守护进程释放信号量,该进程能够通过缓冲区元素的标识位判断出该信号量的来源是否是定时器,如果是定时器,则将关键审计缓冲区的当前作用元素中现有的信息写入相应磁盘文件, 并初始化当前作用元素。本专利技术的有益效果是,能够通过缓冲区高效地处理大量并发的审计信息,同时,将审计划分为普通审计和关键审计,可以重点解决关键审计信息的实时性问题。附图说明图1是本专利技术中普通审计信息处理流程的示意图。图2是本专利技术中关键审计信息处理流程的示意图。这两个图表示出了审计信息由钩子产生到写入磁盘文件的大致流程,其中关键审计信息处理机制比普通审计信息处理机制多了一个定时器,同时其守护进程的算法增加判断信号量来源的功能。具体实施例方式在Linux系统中,可信计算基以内核模块的形式加载至操作系统,本专利技术的这套机制在可信计算基的代码中是这样实现的1.模块初女台化时,启动两个守护进程process_audit_send禾口 kprocess_audit_send分别处理普通审计信息和关键审计信息;这两个进程通过用while循环等待信号量而进入睡眠状态,在睡眠状态该进程不起作用,接收到信号量后进程才被唤醒。2.开辟两个结构体AudBufHead和kAudBufHead分别作为审计普通缓冲区和关键审计缓冲区,每个结构体中有一个含5个元素的数组,每个元素中有一个指针void*PaUd指向由kmalloc开辟的内存区域,每个区域大小为4K(每条审计信息大小为80Β,4Κ的空间则可以保存50条审计信息)。这两个作为缓冲区的结构体各自通过一个currentwrite从5 个元素中标识出唯一的当前作用元素,每个缓冲区中还配一个自旋锁rwlock_t。3.编写两个接口 函数 maninfo_add_audit_item 和 kmaninfo_add_audit_item,分别用于处理普通审计信息和关键审计信息,在2. 6的内核中需要通过EXP0RT_SYMB0L导出。4.普通审计信息和关键审计信息产生时,钩子函数会分别调用maninf0_add_ audit_item和 kmaninfo_add_audit_item将审计信息的指针送入,此时用 write_unlock给缓冲区的自旋锁rwlock_t上锁,由currentwrite确定当前作用元素,用memcpy将信息写入相应的AudBufHead或kAudBufHead。写完后,记录当前元素中的写入位置,即已写入的信息个数,检查是否达到上限50条,若未达到则write_iml0Ck解锁退出,若达到50条上限, 则设置下一个缓冲区元素为当前作用元素,write_iml0Ck解锁并up—个信号量。此时缓冲区可以接收新的审计信息进行缓冲,信号量的作用是唤醒守护进程将满了的缓冲区元素写入文件。5.建立一个timer_list定时器,以1秒钟为固定的时间间隔给kprocess_audit_ send释放一个信号量。6.普通审计的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:田立业胡俊姜伟王大海李瑜
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术