主题 : Linux访问控制安全测评
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61687(时)
注册时间: 2008-12-25
最后登录: 2024-03-29

0 Linux访问控制安全测评

1. Linux安全测评的背景与意义 随着计算机与网络技术的普及应用,信息安全已经成为关系到国家安全的关键因素。在计算机系统安全中,操作系统安全是整个计算机信息系统安全的基石[1]。如果不经过安全测评,操作系统的安全性就得不到保障。随着我国基于Linux的国产操作系统研发的不断发展,研究Linux操作系统安全测评技术己成为迫切的需求,可以有效地保障国产操作系统应用地质量,从而更好地推动国产操作系统产业的发展。 操作系统安全测评涉及到安全操作系统、安全等级评估、评估标准等多方面内容。目前国内在Linux操作系统安全测评领域的研究还处在逐步发展的阶段,在操作系统安全等级评估方面已经取得了一定的成果,制定出了一系列等级评估相关标准。 随着操作系统在计算机系统安全中的重要作用越来越引起人们的重视,如何测评操作系统安全性成为一个重要的课题。信息安全国际通用标准CC提出了安全系统通常应该具备的安全功能,并进行了分类,其中,访问控制是系统安全的第一道防护手段[2]。因此,本文将从访问控制功能这个操作系统中最重要的安全机制出发,对Linux访问控制及其测试进行研究。 2 Linux安全测评的基础和标准 为了对Linux操作系统的安全性进行统一的评价,为Linux操作系统产品厂商提供权威的系统安全性标准,需要有相应的安全测评标准来支持。目前,国际上信息安全评估标准的制定已经取得了长足的发展[3][4][5]。 美国国防部于1983年推出了历史上第一个计算机系统安全评测准则TCSEC(Trusted Computer System Evaluation Criteria),又称桔皮书,从而带动了国际上计算机系统安全评测的研究。为了方便安全信息系统的统一评价,德国、英国、加拿大、西欧等纷纷制定了各自的计算机系统安全评价标准,其中较为著名的有ITSEC(Information Technology Security Evaluation Criteria)、CC(Common Criteria for IT Security Evaluation)。我国在借鉴、吸收TCSEC和CC等基础上制定了相应的国家标准GB/T18336-2001和GB/T 20008-2005等标准。

基于相关安全需求,TCSEC在用户登录、授权管理、访问控制、审计跟踪、隐蔽通道分析、可信通路建立、安全检测、生命周期保障、文档撰写等方面均提出了规范性要求,并根据所采用的安全策略及系统所具备的安全功能设定四类(A~D)及七个安全级别,从低到高依次为D、C1、C2、B1、B2、B3、A1,各级别描述由满足安全策略、审计和保证的主要控制目标及文档要求共四部分组成。 我国的GB17859-1999《计算机信息系统安全保护等级划分准则》把计算机信息系统的安全保护能力划分为五级,从低到高依次为用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级,相关要求分别对应TCSEC的C1级、C2级、B1级、B2级和B3级,并稍作调整。 信息技术安全评价通用准则CC基于欧洲ITSEC、美国TCSEC、加拿大CTCPEC及ISO SC27 WG3安全评价标准而形成,是目前最全面的信息技术安全评估标准。其提出了保护轮廓的概念,将评估内容划分为安全功能要求和安全保证要求两个方面,并均按照类、族、组件的层次结构分别展开描述。CC提供和定义了七个逐步增强的评估保证等级EAL1~7,依次为功能测试级、结构测试级、系统测试检查级、系统设计测试复查级、半形式化设计测试级、半形式化验证设计测试级和形式化验证设计测试级。各评估保证等级结构上由评估保证等级名称、目标、适用性说明和一组保证组件以及相应保证组件间的所有依赖关系构成。 3. Linux系统的访问控制机制分析 访问控制是操作系统安全机制的主要内容,主要用来规范和控制系统内部主体对客体的访问操作[6][7][8]。 定义 1 主体(Subject):是指系统中能够发起行为的实体,比如,人、进程和设备等。 定义 2 客体(object):是指系统中被动的主体行为承担者,比如,文件、目录、管道、消息,以及存储页和存储段等。 定义 3 存取访问控制(Access Control):是规范和控制各类主体(用户、本地进程或远程进程等)访问本系统中客体的决策与实施过程。 访问控制的目的是为了限制访问主体对访问客体的访问权限,从而使计算机系统在合法范围内使用。它决定用户能做什么,也决定代表一定用户身份的进程能做什么。其中主体可以是某个用户,也可以是用户启动的进程和服务。因此,访问控制需要完成以下两种任务:1)识别和确认访问系统的用户;2)决定该用户可以对某一系统资源进行何种类型的访问。 现有的Linux的存取访问控制方式主要采用自主访问控制(Discretionary Access Control,DAC)和强制访控制(Mandatory Access Control,MAC)两种。 定义 4 自主访问控制是指客体(比如程序、文件或进程等)的拥有者可以任意的修改或授予此客体相应的权限。 定义 5 强制访问控制是基于更高的安全要求考虑,不由客体的所有者任意分配客体权限,而是事先按照一定的安全策略统一配置。 Linux支持UGO(User、Group、Other)和ACL(Access control List)权限管理方式,它们都属于自主访问控制方式,UGO将权限位信息存储在节点的权限中,ACL将权限位信息存储在节点的扩展属性中。 3.1 UGO访问控制管理机制 UGO(User、Group、Other)访问控制机制是Linux文件系统传统的访问控制方式,它通过在文件和目录上都设置权限位,用来控制用户对文件或目录的访问。 在UGO访问控制方式中,一个文件创建后,它具有读、写和执行三种操作方式。UGO权限管理方式将文件的操作者分为文件所有者、同组用户和其他用户三类。文件所有者是指创建文件的用户,他是文件的拥有者,他可以设置用户的读、写和执行权限,也就是说他是访问控制权限的决定者。文件建立时默认的用户组是文件所有者所在的用户组,但文件所有者可以对该用户组进行修改,该组中的所有用户都是文件的同组用户。 表2 文件权限情况
UGO访问控制方式将文件的权限用三组3位的二进制位描述,即9位二进制数,并且在最前面加上一位作为文件的类型标志。每类用户占3位,读、写、执行权限各用1位描述,具有权限时,该位就设置为1。读、写、执行权限分别用r、w、x三个字符表示,如表2所示。 3.2 基于ACL的自主访问控制机制 ACL实现用户权限管理,它对UGO权限管理方式进行了扩展,可以对任意的用户/组分配读、写和执行操作权限。ACL基于IEEE POSIX 1003.le标准,EXT2、EXT3、EXT4、JFS、XFS和ReiserFS等文件系统都支持 ACL。 ACL的优先级高于UGO的优先级,当ACL的权限设置大于UGO时,mask就是UGO权限中的同组用户的最高权限,而ACL的有效权限则是和mask取权限的交集,从而限制了ACL对UGO权限的超越。但文件的所有者可以通过修改mask值来消除这种限制。在测试时,为了保证ACL访问控制不受限于UGO访问控制,应得将mask值设为rwx。ACL中单个用户权限的优先权高于同组用户权限,也就是说如果在ACL中设置了某个用户的权限,又设置了这个用户所在组的用户权限,则这个用户的权限与他所在组的用户权限无关。
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 604963
威望: 528524 点
无痕币: 3089 WHB
贡献值: 0 点
在线时间: 61687(时)
注册时间: 2008-12-25
最后登录: 2024-03-29

4. Linux访问控制测试 4.1 测试流程 对Linux操作系统的访问控制机制实现测试自动化,首先要分析该机制提供的安全功能,然后设计相关的测试用例,构建测试环境,执行测试,最后对测试结果进行分析,如图1所示。
图 1 Linux访问控制测试流程
分析Linux访问控制机制的安全功能需求主要是确定从哪些方面测试这些安全功能,这一步可参考测评标准中的相关安全功能组件中的具体描述来确定。本文主要参考了信息技术安全评价通用准则CC中规定的自主访问控制的安全功能组件的内容。 4.2. 测试用例设计 在Linux操作系统中,UGO是最基本的访问控制管理方式,ACL是建立在UGO权限管理方式基础上的可选的机制。本节将先对不开启ACL机制时的UGO权限管理方式进行测试,然后在对ACL机制进行测试,后者也就是测试这两种安全机制都工作时是否满足安全功能需求。 根据CC标准中安全功能组件,访问控制安全测试应该分为访问控制权授予测试和访问控制实施测试两类。由于UGO权限管理方式在特殊权限位开启和关闭时安全功能不同,所以将对UGO的测试分为开启特殊权限位测试和不开启特殊权限位的测试,如图2所示。
图 2 Linux访问控制机制安全测试分类
(1)UGO访问控制安全测试 为了保证将所有的安全功能都覆盖到,应该先对该访问方式的类型进行分类。UGO将权限按用户分类,用户分为文件所有者、同组用户、其他用户三类,所以必须保证每一类中至少有一个用户,才能通过这类用户的行为判定安全功能是否实现。例如,当一个文件的所有者为Userl,所在的组为Groupl时,User2是这个文件的同组用户,User3是这个文件的其他用户。这就保证了文件所有者、同组用户、其他用户三类分别有不同的用户,如表3所示。 表 3 UGO测试用户列表
UGO权限中的特殊权限位SUID,SGID和Sticky开启和关闭时,访问控制功能是不同的。接下来我们分别在在特殊权限位关闭和开启情况下,对这两种测试进行测试数据准备和测试用例的描述。 没有开启特殊权限位UGO访问控制授予测试的文件准备比较简单,只需要一个所以者为Userl,用户组为Group1,权限为rwxrwxrwx的文件“Test ugo_ change”,测试用例如表4所示。 表 4 未开启特殊权限位UGO访问控制授予测试用例
开启权限位后对UGO访问控制授予测试,要验证这三个位对文件权限的授予没有影响,测试用例如表5所示。 表 5 开启特殊权限位后UGO访问控制授予测试用例
(2)ACL访问控制机制的测试设计 在ACL机制中权限的分配是以单个用户和单个用户组为单位的。测试用例要检查ACL机制对文件所有者、组用户和其他用户和用户组能否指定的访问权限是否正确实施。为了不受ACL的影响我们将mask都设为rwx权限。ACL访问控制权授予测试用例如表6所示。其中Test_acl_changel文件的所有者为Userl,用户组为Group1,权限是rwxrwxrwx,ACL权限为用户Userl、User2、User3用户有rwx权限,组Userl有rwx权限。 表 6 ACL访问控制授予测试用例
5.结束语 访问控制机制是操作系统最为关键的安全支撑机制,同时由于国内自主研发的操作系统大多基于开源的Linux系统内核,所以本文以Linux系统的访问控制机制为切入点,对操作系统安全测试进行了探索和讨论。 开展Linux操作系统安全测评的研究,目的是对操作系统的安全指标进行评估,为信息系统的安全及国产操作系统产品的开发和选购提供理论和技术指导,最终为信息系统的安全、实用奠定基础。为了进一步推动国产操作系统的发展,在注重操作系统质量的同时,要重点关注操作系统的安全性。
Total 0.068393(s) query 4, Time now is:03-29 16:57, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛