CN102509040A - 一种安全操作系统中审计信息处理方法 - Google Patents
一种安全操作系统中审计信息处理方法 Download PDFInfo
- Publication number
- CN102509040A CN102509040A CN201110308169XA CN201110308169A CN102509040A CN 102509040 A CN102509040 A CN 102509040A CN 201110308169X A CN201110308169X A CN 201110308169XA CN 201110308169 A CN201110308169 A CN 201110308169A CN 102509040 A CN102509040 A CN 102509040A
- Authority
- CN
- China
- Prior art keywords
- audit
- information
- semaphore
- audit information
- buffer zone
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种安全操作系统中的审计信息处理方法属于安全操作系统领域。本方法使用了两个接口函数、两个缓冲区、两个守护进程、一个定时器。将可信计算基中产生的审计信息区分为没有实时性要求和有实时性要求这两种,并分别通过普通审计接口和关键审计接口送入,接收到的审计信息在同步机制的控制下被写入缓冲区,进而由守护进程将缓冲区中的元素写入磁盘文件,定时器可控制关键审计守护进程周期性地写文件而不必等待缓冲区满,这种设计可以将并发的审计信息生成转化成对审计信息文件的串行写入,满足可信计算基对普通审计的高效性需求和对关键审计的实时性需求。
Description
(一)技术领域
本发明属于安全操作系统领域。根据我国国家标准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(每条审计信息大小为80B,4K的空间则可以保存50条审计信息)。这两个作为缓冲区的结构体各自通过一个currentwrite从5个元素中标识出唯一的当前作用元素,每个缓冲区中还配一个自旋锁rwlock_t。
3.编写两个接口函数maninfo_add_audit_item和kmaninfo_add_audit_item,分别用于处理普通审计信息和关键审计信息,在2.6的内核中需要通过EXPORT_SYMBOL导出。
4.普通审计信息和关键审计信息产生时,钩子函数会分别调用maninfo_add_audit_item和kmaninfo_add_audit_item将审计信息的指针送入,此时用write_unlock给缓冲区的自旋锁rwlock_t上锁,由currentwrite确定当前作用元素,用memcpy将信息写入相应的AudBufHead或kAudBufHead。写完后,记录当前元素中的写入位置,即已写入的信息个数,检查是否达到上限50条,若未达到则write_unlock解锁退出,若达到50条上限,则设置下一个缓冲区元素为当前作用元素,write_unlock解锁并up一个信号量。此时缓冲区可以接收新的审计信息进行缓冲,信号量的作用是唤醒守护进程将满了的缓冲区元素写入文件。
5.建立一个timer_list定时器,以1秒钟为固定的时间间隔给kprocess_audit_send释放一个信号量。
6.普通审计的守护进程process_audit_send得到信号量后被唤醒,将刚刚被写满的缓冲区元素追加写到磁盘文件,其过程中用set_fs调整访问空间限制。关键审计的守护进程kprocess_audit_send得到信号量后,通过kAudBufHead中的currentwrite、currentread等标识位判断出该信号量的来源是kmaninfo_add_audit_item还是timer_list定时器。判断方法是比对currentwrite和currentread,如果是缓冲区满这一事件导致kmaninfo_add_audit_item释放的信号量的话,currentwrite是不等于currentread的,若二者相等则说明来源是timer_list定时器。信号量的来源如果是kmaninfo_add_audit_item,则将写满的缓冲区元素内容追加写到磁盘文件并初始化位置标识pos,如果是timer_list定时器则只需将当前作用元素中的内容写入文件并初始化位置标识pos。
Claims (1)
1.一种安全操作系统中审计信息处理方法,其特征是:
对Linux安全模块钩子提供两个接口,一个用来处理普通审计信息,另一个用来处理关键审计信息,这两个接口各对应一个包含若干个缓冲区元素的缓冲区,接收到的审计信息通过自旋锁这一同步机制串行地写入各自对应的缓冲区中的当前作用元素,这一元素被写满后给对应的守护进程释放信号量;
在系统中设立两个守护进程并启动一个定时器,一个守护进程用来处理普通审计信息,另一个守护进程用来处理关键审计信息,定时器每隔数秒钟向关键审计守护进程释放一个信号量;
普通审计守护进程平时处于睡眠状态,在得到普通审计缓冲元素区满这一事件所释放的信号量后被唤醒,其任务是将普通审计缓冲区中的已被写满的缓冲区元素写入磁盘文件,而后继续转入睡眠状态等待信号量;
关键审计守护进程平时处于睡眠状态,在得到信号量后被唤醒,唤醒后通过关键审计缓冲区的标识位判断出信号量的来源是关键审计缓冲区满这一事件还是定时器,如果是前者已则将被写满的缓冲区元素写入磁盘文件,如果是后者则将缓冲区中现有的内容写入磁盘文件,以保证关键审计信息实时出现在磁盘文件中,而后继续转入睡眠状态等待信号量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110308169.XA CN102509040B (zh) | 2011-10-12 | 2011-10-12 | 一种安全操作系统中审计信息处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110308169.XA CN102509040B (zh) | 2011-10-12 | 2011-10-12 | 一种安全操作系统中审计信息处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102509040A true CN102509040A (zh) | 2012-06-20 |
CN102509040B CN102509040B (zh) | 2014-12-10 |
Family
ID=46221122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110308169.XA Expired - Fee Related CN102509040B (zh) | 2011-10-12 | 2011-10-12 | 一种安全操作系统中审计信息处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102509040B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761155A (zh) * | 2014-01-29 | 2014-04-30 | 赛凡信息科技(厦门)有限公司 | 一种带配额的信号量 |
WO2024164630A1 (zh) * | 2023-02-10 | 2024-08-15 | 北京智芯微电子科技有限公司 | 基于微内核操作系统的安全监控方法、装置、设备及芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156662A (zh) * | 2011-02-14 | 2011-08-17 | 大唐移动通信设备有限公司 | 一种数据处理方法和设备 |
-
2011
- 2011-10-12 CN CN201110308169.XA patent/CN102509040B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156662A (zh) * | 2011-02-14 | 2011-08-17 | 大唐移动通信设备有限公司 | 一种数据处理方法和设备 |
Non-Patent Citations (2)
Title |
---|
张浩: "Linux安全模块在安全审计系统中的应用", 《福州大学学报》 * |
马恒太: "《CNKI》", 31 December 2001 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761155A (zh) * | 2014-01-29 | 2014-04-30 | 赛凡信息科技(厦门)有限公司 | 一种带配额的信号量 |
WO2024164630A1 (zh) * | 2023-02-10 | 2024-08-15 | 北京智芯微电子科技有限公司 | 基于微内核操作系统的安全监控方法、装置、设备及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN102509040B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556478B (zh) | 用于保护虚拟机数据的系统和方法 | |
US9467460B1 (en) | Modularized database architecture using vertical partitioning for a state machine | |
Diao et al. | No pardon for the interruption: New inference attacks on android through interrupt timing analysis | |
CN100380337C (zh) | 用于阻止访问被破解的远程设备上的数据的系统和方法 | |
CN103827809B (zh) | 用于虚拟分区监测的系统和方法 | |
US8918652B2 (en) | System and method for BIOS and controller communication | |
CN104102882A (zh) | 一种应用程序隐私数据的保护方法及装置 | |
CN106020932B (zh) | 一种用于kvm虚拟机系统的安全防护方法及系统 | |
CN103885726A (zh) | 一种高效的多线程日志写入方法 | |
WO2015035798A1 (zh) | 一种虚拟机管理方法和装置 | |
CN103020257A (zh) | 数据操作的实现方法和装置 | |
US20120197951A1 (en) | Event-handler for selecting responsive actions | |
CN101246536A (zh) | 基于进程监控对计算机文件进行加解密的方法 | |
CN101937378B (zh) | 一种对存储设备的数据进行备份保护的方法及计算机系统 | |
WO2013140403A1 (en) | Database antivirus system and method | |
CN102509040B (zh) | 一种安全操作系统中审计信息处理方法 | |
CN101021891A (zh) | 一种进程管理方法和装置 | |
US11210393B2 (en) | Context data control | |
US20080127301A1 (en) | Delivering Callbacks Into Secure Application Areas | |
WO2017053157A1 (en) | Role-based notification service | |
CN109426563B (zh) | 一种进程管理方法及装置 | |
CN105511947B (zh) | 多系统中事件信息处理的方法及装置 | |
WO2018053988A1 (zh) | 安全输入系统、方法及智能终端、存储介质 | |
CN101349975A (zh) | 实现中断底半部机制的方法及嵌入式系统 | |
CN105740697B (zh) | 一种xp中地址空间布局随机化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20201012 |
|
CF01 | Termination of patent right due to non-payment of annual fee |