向计算机内部存储器核心空间植入安全功能模块的方法 【技术领域】
本发明涉及一种向计算机系统内部存储器核心空间植入安全功能模块的方法。背景技术
随着计算机技术的迅猛发展,尤其是网络技术的发展,信息安全日益受到广泛关注。对于“特洛伊木马”,窜改主页,盗窃重要数据、文件等常见的网络攻击和入侵,目前国内广泛使用的计算机系统对系统资源所能提供的保护能力非常有限,甚至没有防范能力。因此开发具有安全功能的计算机系统具有很重要的现实意义。
由于对计算机系统资源比如外部存储器,网络设备,显示设备等的访问必须使用内存核心空间提供的系统服务,因此在内部存储器核心空间实现安全功能是设计安全计算机的一种主要方式。操作系统在计算机启动以后会把自己放到核心空间中去,因此目前向计算机内存核心空间植入安全功能的方法都是通过修改操作系统源代码来实现的。
操作系统分为开放源代码与不开放源代码两种。
对于开放源代码的操作系统,比如Linux,FreeBSD等,目前在计算机内部存储器核心空间实现安全功能的做法是,对该操作系统的源代码进行大范围的修改。这种修改是分散的,即对需要加强安全控制地地方,加入代码片段。其次,修改源代码以后,用户需要重新编译和装配操作系统核心,才能使该计算机系统具有安全功能。使用该方法的例子有美国国家安全局提供的安全增强型Linux操作系统(Security-enhanced Linux)。这种方法存在着明显的不足,首先,随着操作系统的不断升级,安全代码也要不断修改,即使是操作系统源代码只有几行的改动,增加安全功能的修改工作也要重新设计;其次,由于修改过程是分散的,导致安装过程非常复杂;再次,部分系统服务的功能和方式被修改,使计算机系统中原有的二进制应用不得不重新编写,重新编译才能在该系统上运行,破坏了系统的可用性。
对没有开放源代码的操作系统,比如AIX,SCO Unix,甚至最流行的Windows等,前面提到的修改操作系统源代码的方法,普通计算机用户就不能采用了,只能依赖操作系统生产厂家提供具有安全功能的该操作系统的增强版。发明内容
本发明的目的是提供一种向计算机内部存储器核心空间植入安全功能模块的方法。
为实现上述目的,向计算机内部存储器核心空间植入安全功能模块的方法包括利用计算机系统提供的装载二进制模块的指令,将安全功能模块植入计算机内部存储器中的核心空间。
由于构造安全功能模块的过程与操作系统源代码无关,因此不受有无操作系统源代码的限制。该方法不需要改动操作系统的源代码,更不需要重新编译和安装操作系统核心,不会随着操作系统的不断升级而不断重新设计安全功能模块。附图说明
图1是安全功能模块结构图;
图2是安全功能子模块关系结构图;
图3a是植入安全功能模块之前的计算机系统;
图3b是植入安全功能模块之后的计算机系统。发明的具体实施方式
如图1所示,一个完整的安全功能模块由规则库,系统信息库,日志空间,MLS检查,ACM检查,DEV检查,INT检查等子模块组成。本发明利用计算机系统提供的向内部存储器核心空间装载二进制代码的指令,将一个完整的安全功能模块植入内存的核心空间中,在不破坏计算机原有的系统服务的前提下,使该计算机系统具有安全功能。
参考图2,安全功能模块的规则库存储着实现安全策略的安全规则。用户根据自己的实际需要,制定安全策略,比如多安全级(Multi-level security)的安全策略,基于角色(Role-based)的安全策略,基于规则(Rule-based)的安全策略等。以多安全级策略为例,该策略对各种被访问对象都设置了一个安全级别,只读(Read only)操作的规则可以表示为:用户A访问系统资源B,当且仅当A的安全级大于等于B的安全级。
系统信息库中记录了系统中各个系统资源的详细描述。比如用户信息包括,用户的安全级别,用户的角色(系统管理员,系统用户,安全管理员等),该用户与其他用户的关系(同组,不同组等),该用户使用网络设备的方式,端口范围等。再比如系统文件信息,包括文件类型(套接字,先进先出,符号连接等),文件所在物理存储器的信息(主设备号,次设备号,区号等)。
日志空间主要提供了一个记录安全日志的先进先出(FIFO)队列。安全功能模块对每一个系统请求进行安全检查,当发现一个请求违反了某一安全规则时,会对该请求做记录。记录内容包括,请求动作发生的时间,请求者,请求访问的方式,请求被访问的系统资源等信息。
MLS多安全级检查是根据用户的安全级别进行访问控制的一种检查手段。系统中每个用户拥有一个安全级,每个资源也有一个安全级。当用户访问一个系统资源,比如文件,目录,设备等的时候,MLS检查会根据安全规则比较该用户的安全级和要被访问的系统资源的安全级。比如只有当访问者的安全级等于或高于该系统资源时,只读访问才能通过。只有当访问者的安全级等于该系统资源时,只写访问才能通过。
ACM是访问控制矩阵的缩写,该矩阵详细规定了用户与资源之间的访问方式,MLS确定了哪些用户可以访问哪些资源,ACM则规定了用户能用怎样的方式访问,比如只读,只写,读写,追加等。矩阵的二维坐标分别表示访问动作的执行主体和被访问资源,矩阵的交叉点记录的是访问方式。
DEV检查主要对系统硬件资源,比如终端,打印机,其他串、并口,USB接口设备等的访问进行安全检查。DEV检查根据安全策略的规定,确定哪些用户可以以哪些方式访问哪些设备。
INT检查是完整性检查的意思,是对每个系统资源根据实际需要设置一个完整性值,每次对资源有所修改的访问都会导致完整性的变动,当规定了完整性范围后,某些改动就被限制,比如把主页设置成绝对完整性,即禁止任何人以任何方式修改该文件内容和文件属性,那么对该主页的任何改动就都被禁止了,比如写,删除等访问方式。
安全功能模块的检查工作分为以下几个步骤
a.首先是MLS检查,先判断访问对象,如果被访问对象是设备的话,交给DEV检查子模块,否则进行MLS检查,检查通过,该请求交给ACM检查子模块,否则禁止该访问。
b.然后是ACM检查,检查通过,该请求交给INT检查子模块,否则禁止该访问。
c.ACM检查通过以后,该请求继续传给完整性检查子模块INT,完整性检查通过以后,用户就可以对系统资源进行访问了,否则禁止该访问。
d.如果被访问对象是设备的话,DEV检查通过以后,用户就可以访问目标设备了,否则禁止该访问。
安全功能模块的植入利用了系统向核心空间植入模块的指令。植入安全模块前后的计算机系统如附图3a和3b所示。安全功能模块植入核心空间以后,对核心空间的系统服务进行修改,使该计算机系统具有安全功能。
以运行Linux操作系统的计算机为例:
根据实际需要设计一个安全功能模块,该模块提供完整性保护,保密性保护等安全功能。用Linux系统提供的insmod命令植入安全功能模块,这时系统中的部分涉及安全问题的系统服务植入了安全保护二进制代码。
本发明的优点在于:
1.现有的在计算机系统内部存储器核心空间实现安全功能的方法必须修改源代码,因此不能用于不提供源代码的操作系统,而目前国内使用的绝大多数操作系统比如Windows是不提供源代码的。本发明提供的方法与操作系统源代码无关,因此适用范围广,具有很高的现实意义。
2.这种植入安全功能的方法,由于构造安全功能模块的过程与操作系统源代码无关,因此不受有无操作系统源代码的限制。该方法不需要改动操作系统的源代码,更不需要重新编译和安装操作系统核心,不会随着操作系统的不断升级而不断重新设计安全功能模块,因此容易实现。
3.该方法对外部存储器中存储的操作系统二进制文件,系统文件等所有信息不做任何改动,卸载后在计算机内存核心空间中也不会留下任何改动的痕迹,所以对计算机系统的影响降到最小。
4.植入安全功能模块以后,计算机系统提供的各种服务在没有违反安全规则的情况下,原服务的功能和方式不会受到任何影响,因此计算机系统中的原有的二进制应用都可以继续运行。
5.植入安全功能模块以后,计算机系统提供的各种服务在原有的基础上增加了安全保护功能,比如完整性保护,保密性保护等,对于“特洛伊木马”,篡改主页,窃取文件等网络入侵和攻击具有抵御功能,可以保护文件、目录,设备、网络端口等系统资源免受侵害。