摘要:Linux是当前流行的Unix操作系统家族中的一员,已经广泛受到人们的关注,被越来越多的网站选择作为服务器。与WindousNT等操作系统比较,具有开放性开发模式,代码完全公开,而且与Unix系统一样,提供了大量的系统工具。Linux系统缺省的配置强调了系统的可用性,而非安全性,这使得Linux容易受到攻击。
关键词:Linux系统;内核级安全;审计方法
一、前言
安全审计是计算机系统安全管理的一个重要的组成部分。安全审计是记录用户的访问过程和各种行为形成审计数据的过程。对审计数据的分析可以发现系统中的安全问题、识别系统事故责任者、跟踪某些用户和站点,为及时采取相应处理措施提供依据。LKM技术是Linux系统为了扩充系统功能而提供的一种非常有用的机制,利用该技术可以对系统的功能进行动态的扩充。这一技术已经被黑客用于系统入侵,同样,该技术也可以用于加强系统的安全性,实现系统内核级的一些安全功能。
二、Linux系统安全审计系统分析
Linux系统现行的安全审计机制是在应用程序级实现的,即审计过程是通过一个应用程序实现的。Linux系统安全审计是利用独立于操作系统的审计程序syslogd记录用户登录和相关操作信息的,对用户正常或异常的操作所产生的警告或提示等信息以统一的格式记录下来。针对审计信息获取量不足,常常使用其它辅助程序来获得辅助信息,如利用TCPwrapper等程序辅助记录网络连接信息,用TripWear等应用程序管理保留静态程序校验信息,各种相应的服务程序必须同审计程序相配合,提供相关的严格的审计信息,才能得到比较完备的审计记录。
由于系统实现安全审计功能的是应用程序,因此,取得了一定权限的入侵活动,按照syslogd工作的方式,可以抹掉所有的审计信息和入侵记录;也可以绕过syslogd,使得审计记录根本就不会产生,使得常规的审计技术对这些入侵活动根本不能察觉或记录入侵。而且,网络的开放性使得计算机系统的攻击者的技术水平很高,早已不是用常规的安全审计技术所能限制的了。
LKM是操作系统内核为了扩展其功能所使用的可加载内核模块。LKM主要优点是动态加载,无须重新编译整个内核。基于这一特性,LKM常被用作特殊设备的驱动程序(或文件系统),如声卡驱动程序,等等。但加载后的LKM是一段运行在内核空间的代码,这个特性允许利用LKM访问操作系统最敏感的部分。黑客利用LKM技术可以实现最高级别——内核级的入侵。同样也可以利用LKM技术进行系统安全防护。利用LKM技术实现安全审计功能可以实现系统内核级的审计功能。
三Linux内核级安全审计系统设计
基于以上分析,为了对抗目前已经广泛被采用的内核级的系统入侵技术,Linux系统安全审计机制在一定安全级别的要求下,应该具备以下特征:
(1)以独立于应用的方式进行审计,并获取足够充分的审计数据,使得审计过程不会受到非法用户的干扰或被获取一定权限的用户绕过。而这样的安全审计要求只能是在系统内核级实现。
(2)有效的审计数据的存储和访问控制,使得审计数据能够得到很好保护,防止用户非法访问审计数据。
(3)另外,自动、智能化的审计数据分析方法和技术,也是安全审计系统中非常重要的部分。对审计数据进行有效的分析,及时准确地发现与安全相关的事件,反映用户的行为,可以帮助系统及时做出响应。
3.1审计内容的确定
依据我国计算机信息系统安全保护等级划分准则第三级中关于安全审计的要求,确定如下的审计事件:(1)身份鉴别机制的使用;(2)将客体引入用户地址空间;(3)客体的删除;(4)操作员、系统管理员或(和)系统安全管理员所实施的动作;(5)其它的与安全相关的事件,等等。而每一事件的审计记录项应包括:1)事件的日期与时间;2)用户;3)事件类型;4)事件成功与否;5)对于身份鉴别事件审计记录还应包括:请求的来源(如,终端标识符);(6)对于客体引入用户地址空间的事件及客体删除事件,审计记录还应该包括:客体的名称和客体的安全级别,等等。
3.2敏感系统调用的确定
根据审计内容,确认直接与审计内容或安全事件相关的敏感系统调用,然后对这些系统调用进行封装,从而实现获取用户使用系统的审计信息。
3.3审计数据的格式
对审计数据,在封装阶段可以自行定义,但输出格式要依据一定的标准和规范化,目标是实现审计数据获取方便,使用也方便,为审计数据分析奠定基础。依据Bishop标准审计格式,组织存储审计数据(参考SVR4++和归一化审计数据格式)。需要说明的是在内核级获取的审计数据与现行的审计机制获取的审计数据在形式上有一些不同,但并不影响对审计数据的理解。
3.4利用LKM技术实现内核级审计数据的获取
利用LKM技术实现基于以上步骤的审计数据获取功能。以上部分是内核级审计机制的最主要部分,是内核级审计技术的基础。由于过多系统内核级操作会影响系统运行速度,而且过多的审计信息会对系统产生很大负载,也会淹没其中最为重要的信息。为了确保对系统的运行和性能影响尽可能小,对审计数据需要依据安全要求进行过滤,设置有效的过滤开关,切实获取与安全审计直接相关的数据。同样的原因,审计数据的分析过程应在用户层进行,但需要采取妥善的办法,对审计数据进行保护。
3.5审计数据的存储
审计数据在整个安全审计系统中占据着非常重要的地位,如果审计数据的安全性得不到保证,那么建立在这些审计数据之上的后续分析工作将是徒劳的,前期的工作也功亏一篑。在系统中,通过对审计数据实现多重保护来防止非法用户对审计数据的访问。Linux文件系统本身有一套文件保护模式,它通过9个bit位来区分文件的属主、与文件属主同在一个组的用户和其他用户对文件的存取权限。然而,这一套保护模式对于超级用户来说是毫无作用的,所以必须寻求其它的保护方法。转储和隐藏是两种比较常用的方法。转储是指把生成的审计数据通过网络直接存放到另一台相对比较安全的机器上。隐藏必须通过LKM在内核级来实现,用户级的隐藏(通过将文件名的第一个字符设定为“.”)是毫无作用的。通过LKM,最终可以达到隐藏文件名、文件内容甚至是文件使用的磁盘大小的效果。而在需要查看审计数据时,只需将原本为了隐藏文件信息而加载的LKM模块卸载即可。
3.6审计数据的分析技术
审计数据的分析,目标是从审计数据中获取利于系统管理的信息(主要是用户行为特征),并以此为依据对系统的问题及时做出反应。目前对于系统安全审计机制所产生大量的审计信息还缺乏有效的分析技术。对于审计信息往往是在通过其他路径发现用户的异常行为或出现问题之后才来分析这些审计数据,使得审计数据只是作为一种事后证据。数据挖掘是一种新兴的、并且在很短时间内得到广泛应用的先进的智能化数据分析工具。数据挖掘指在从大量的数据中提取隐藏的预测性信息,能发掘数据间潜在的模式,找出某些常常被忽略的信息,以便于理解和观察的方式反映给用户,作为决策的依据。
结论
随着内核级入侵手段的流行,内核级的安全技术更多地受到人们的关注,成为信息安全技术研究的非常重要的方面,也将成为安全技术的主流。文章在分析了现行的安全审计系统的基础之上,提出了一个利用FG<技术和基于日志文件的数据技术的安全审计模型。该模型在一定程度上实现了审计数据的内核级获取和保护的功能,防止审计数据的非法访问。
参考文献:
[1]刘建伟.安全审计追踪技术综述[J].信息安全与通讯保密2001.7:37-39