扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
众所周知,操作系统以及数据库是现代计算机技术中最为底层和核心的软件系统。那么,企业系统层次的安全问题主要来自于网络内使用的操作系统的安全和数据库安全层面上。针对操作系统和数据库的安全技术林林总总,也体现在应用的不同层面上,本文将从保障企业系统层安全的核心层次出发,着重从安全操作系统、密码设定策略及数据库安全技术三方面进行讲解,其他的网络层面和应用层面与他们相关的防护技术将在后续专题中详细讲解。
1、选用安全操作系统
操作系统作为计算机系统的最为基础和重要的基础软件和系统软件,起着管理计算机资源,直接利用计算机硬件为用户提供与硬件相关、与应用无关的使用和编程接口的作用。它是上层应用软件获得高可靠性以及信息的完整性、保密性的基础。没有操作系统安全的支持,就没有获得网络安全的可能。为了保证企业计算机网络和信息的安全,有必要采用具有较高安全级别的安全操作系统,来作为企业稳固的安全操作平台。美国国防部(DoD)与1983年推出了著名的TCSEC(Trusted Computer System Evaluation Criteria,可信计算机评估准则),也称为"橙皮书",是迄今为止评估计算机安全最有名的一个标准。它将计算机信息系统的安全分为四等八个级别,由低到高依次为:D、C1、C2、B1、B2、B3、A1、超A1。按照这个标准,传统的操作系统,包括UNIX操作系统、Windows操作系统大都处于C级,他们的安全级别不是很高。而许多安全级别高的操作系统,比如Trusted Information Systems、Trusted XENIX、SNS等都处于实验室阶段,尚未投入市场。另外,国内对安全操作系统的研究工作也在如火如荼地进行,我国从上世纪90年代开始研究安全操作系统,到目前已经取得了一些成果。从1993年我国宣布开发成功具有B2 集功能的操作系统,现在已有众多的公司和科研单位开始注重安全操作系统的研发,比如中科红旗公司开发的红旗Linux,南京大学的Softos,国防科大的麒麟安全操作系统,中科安胜公司的安胜操作系统等。
在安全操作系统中,对操作系统进行安全加固和安全理论模型是从根本上解决操作系统安全性问题的两项非常重要的记述。我们首先谈谈操作系统安全加固技术,它有如下几种方法:
(1) 虚拟机法:在现有的操作系统与硬件之间增加一个新的层次,作为安全内核,现有操作系统几乎可以不作任何变动而成为虚拟机。安全内核的接口基本与原有硬件等价,操作系统本身透明地在安全内核的控制之下,它可以不变地支持现有的应用程序,并且能够很好地兼容非安全操作系统的将来版本。硬件特性对虚拟机的实现非常关键,它要求原系统的硬件和结构都必须要支持虚拟机。因而这种加固方式的局限性比较大。
(2) 增强法:在现有的操作系统基础上,对原有的内核以及应用程序采用一定的安全策略进行改进,并且加入相应的安全机制,形成新的操作系统内核。这样增强后的操作系统保持了原来操作系统的用户接口。这种方法是在已有操作系统基础上进行的,不是对原有内核的完全地改变,因而受到原有体系结构的限制,难以达到很高的安全级别。但是这种方法并不会破坏原有系统的体系结构,开发代价小,不会影响原系统的运行效率,现在普遍采用的是这种方式。
(3) 仿真法:对现有的操作系统的内核作面向安全策略的修改,然后在安全内核与远非安全操作系统的用户接口中嵌入方针程序。那么,我们在建立安全内核的时候,可以不必如第二种方法一样受到现有应用程序的限制,而且可以完全自由地定义仿真程序于安全内核之间的接口。然而,采用这种方式需要同时设计仿真程序以及安全内核,还要受到元操作系统接口的同时,开发难度大,接口复杂。
图1 操作系统的几种加固方式
在安全操作系统的理论模型方面,我们通常提到BLP模型。Bell &LaPadula(BLP)模型是由David Bell和Leonard La Padula于1973年提出的安全模型,它同时也是一个状态机模型。它是定义多级安全性的基础,被视作基本安全公理。该公理最早是在Multics安全操作系统中得到实施。虽然从商业角度来看,该操作系统并不成功,但是单从安全性角度来看,Multics迈出了安全操作系统设计的第一步,为后来的安全操作系统的研制工作积累了大量丰富的经验。随后它又在Secure Xenix、System V/MLS、Tunis、VAX的VMM安全核心等多种安全系统的研制中得到了广泛的应用。
该模型将计算机信息系统中的实体分为两部分,主体和客体。凡是实施操作的称为主体,比如说用户和进程;而被操作的对象则称为客体,比如说文件、数据库等。对主体和客体而言,存在着两种最重要的安全控制方法,它们是强制存取控制以及自主存取控制方式:
强制存取控制:主要是通过"安全级"来进行,安全级包含"密级"和"部门集"两方面,密级又分为无密、秘密、机密、绝密四级。为了实施强制型安全控制,主体和客体均被赋予"安全级"。两者的关系包含下述三点:1)主体的安全级高于课题,当且仅当主体的密级高于客体的密级,且主体的部门集包含客体的部门集;2)主体可以读客体,当且仅当主体安全级高于或者等于课题;3)主体可以写客体,当且仅当主体安全级低于或者等于客体。
自主存取控制:主体对其拥有的客体,有权决定自己和他人对该客体应具有怎样的访问权限。
在这个模型当中,每个主体有最大安全级和当前安全级,每个客体有一个安全级。主体对客体有四种存取方式:只读,只写,执行以及读写。该模型当中有两条很重要的规则(如图2所示):
(1) 简单安全特性:是指主体只能够从下读、向上写。为了使主体对客体既能读又能写,二者的安全级别必须完全一样;
(2) *--特性:主体对客体有"只写"权限,则客体安全级至少和主体的当前安全级一样高;主体对客体有"读"权限,则客体安全级应该小于或者等于主体当前安全级;主体对客体有"读写"权限,则客体安全级等于主体的当前安全级。
图2 BLP模型安全规则示意图
2、操作系统密码设定
设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。在多用户系统中,如果强迫每个用户选择不易猜出的密码,将大大提高系统的安全性。但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。
实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与Linux系统(/etc/passwd)或者Windows系统的密码文件(SAM)相比较,如果发现有吻合的密码,就可以求得明码了。
在网络上可以找到很多密码破解程序,比较有名的程序是crack。用户可以自己先执行密码破解程序,找出容易被黑客破解的密码,先行改正总比被黑客破解要有利。
目前密码破解程序大多采用字典攻击以及暴力攻击手段,而其中用户密码设定不当,则极易受到字典攻击的威胁。很多用户喜欢用自己的英文名、生日或者账户等信息来设定密码,这样,黑客可能通过字典攻击或者是社会工程的手段来破解密码。所以建议用户在设定密码的过程中,应尽量使用非字典中出现的组合字符,并且采用数字与字符相结合、大小写相结合的密码设置方式,增加密码被黑客破解的难度。而且,也可以使用定期修改密码、使密码定期作废的方式,来保护自己的登录密码。
具体列出几条参考原则如下(几个需要遵循):