博文

目前显示的是标签为“安全级别”的博文

详细介绍BSD系统的内核安全和级别

bsd一直是公认的最安全的unix操作系统,因为它提供了基于内核的安全保护而不仅仅是老式unix的基于访问控制的安全保护。bsd为内核划分了安全等级,这样就可以限制很多不安全的操作,而且bsd在安全设置上是单点的,使得不可能轻易改变安全级别。linux提供的lsm“可加载安全模块”可以从外部加载安全模块,而bsd将此行为也作为可能的安全隐患,所以bsd中由内核直接来负责安全,如果内核认为加载的安全模块是不可信的,那么内核将禁止加载模块,这在bsd内核中通过安全级别(securelevel)来实现。下面先引用一段介绍安全级别的文字然后我分析bsd的init程序中与安全级别相关的代码: FreeBSD内核有一个安全级别(securelevel)的概念,这是指系统内核运行使用的安全等级,不同的等级具备不同的保护和检查机制。因为这是内核的检查机制,因此相当严格,没有办法能绕过这个机制提供的保护,因此就对保护FreeBSD的安全性十分有用。内核的安全级别按照提供安全保护的程度分为-1、0、1、2共分为四个级别,安全级别能提供的保护有: 系统文件:系统文件可以设置保护标志”不可更改”和 “只能附加” ,具有这些保护标志的文件在系统的文件属性之外,还受这些保护标志的保护。安全级别可以规定这些标志能否取消。 磁盘设备文件:磁盘设备文件具备两种访问方式,随机访问的方式对应的块设备文件和顺序访问方式对应的字符设备文件,其中字符设备文件可以直接读取硬件设备,因此对于安全至关重要。内核安全级别可以决定是否允许以直接读取硬件的方式操作硬盘设备文件。 直接内存访问:/dev/mem和/dev/kmem是系统内存的映射文件,访问它们就能直接访问系统内存,一些需要获取系统信息和需要进程间共享内存机制的程序需要访问这两个设备文件以直接访问内存,然而访问内存空间显然也影响系统的安全运行。内核安全级别可以决定是否允许访问系统内存。 安全级别-1为一种永久性的不安全级别,系统内核不提供任何额外的保护。系统缺省就处于这个级别,此时系统文件的保护标志能被root用户取消,所有的设备,包括磁盘设备和内存映射设备,均能按照其属性来访问。 安全级别0为不安全的级别,它和等级-1一样没有对系统提供额外的安全保护,但它影响到内核进程init的行为。当内核处于级别-1时,内核...