绪论:访问控制
分类:MAC(强制访问控制)DAC(自主访问控制)RBAC (基于角色的访问控制)<br /> 网络访问控制,主机、操作系统访问控制、应用程序访问控制
访问控制,作为提供信息安全保障的主要手段,及最为突出的安全机制, 被广泛地应用于防火墙、文件访问、VPN及物理安全等多个方面。<br /> 访问控制是信息安全保障机制的核心内容,它是实现数据保密性和完整性机制的主要手段。访问控制是为了限制访问主体(或称为发起者,是一个主动的实体;如用户、进程、服务等),对访问客体(需要保护的资源)的访问权限,从而使计算机系统在合法范围内使用;访问控制机制决定用户及代表一定用户利益的程序能做什么,及做到什么程度,访问包括读取数据,更改数据,运行程序,发起连接等。
访问控制的两个重要过程:
1、通过”认证(authentication)“来检验主体的合法身份
2、通过”授权(authorization)“来限制用户对资源的访问级别
网络访问控制
- 连接控制,控制哪些应用程序终结点之间可以建立连接。
- 协议控制,控制用户可以通过应用程序进行什么操作。
- 数据控制,防火墙可以控制应用数据流的通过(如防火墙可以阻断邮件附件中的病毒)。
主机、操作系统访问控制
- 目前主流的操作系统均提供不同级别的访问控制功能。通常,操作系统借助访问控制机制来限制对文件及系统设备的访问。
应用程序访问控制
- 访问控制往往嵌入应用程序(或中间件)中以提供更细粒度的数据访问控制。当访问控制需要基于数据记录或更小的数据单元实现时,应用程序将提供其内置的访问控制模型。大多数数据库(如Oracle)都提供独立于操作系统的访问控制机制,Oracle使用其内部用户数据库,且数据库中的每个表都有自己的访问控制策略来支配对其记录的访问
加密方式在访问控制系统中的应用
- 加密方法也经常被用来提供实现访问控制。或者独立实施访问控制,或者作为其它访问控制机制的加强手段。例如,采用加密可以限定只有拥有解密密钥的用户才有权限访问特定资源。
强制访问控制
在强制访问控制系统中,所有主体(用户,进程)和客体(文件,数据)都被分配了安全标签,安全标签标识一个安全等级。系统独立于用户行为强制执行访问控制,用户不能改变他们的安全级别或对象的安全属性。这样的访问控制规则通常对数据和用户按照安全等级划分标签,访问控制机制通过比较安全标签来确定的授予还是拒绝用户对资源的访问。强制访问控制进行了很强的等级划分,所以经常用于军事用途。
如WEB服务以”秘密”的安全级别运行。假如WEB服务器被攻击,攻击者在目标系统中以”秘密”的安全级别进行操作,他将不能访问系统中安全级为”机密”及”高密”的数据。
自主访问控制
自主访问控制机制允许对象的属主来制定针对该对象的保护策略。通常DAC通过授权列表(或访问控制列表)来限定哪些主体针对哪些客体可以执行什么操作。如此将可以非常灵活地对策略进行调整。由于其易用性与可扩展性,自主访问控制机制经常被用于商业系统。
- 每个主体拥有一个用户名并属于一个组或具有一个角色
- 每个客体都拥有一个限定主体对其访问权限的访问控制列表(ACL)
- 每次访问发生时都会基于访问控制列表检查用户标志以实现对其访问权限的控制
参考资料:https://blog.csdn.net/ajian005/article/details/8490082
SElinux
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。<br /> “SELinux域”和“SELinux安全上下文”称为是Linux系统中的双保险,系统内的服务程序只能规规矩矩地拿到自己所应该获取的资源,这样即便黑客入侵了系统,也无法利用系统内的服务程序进行越权操作。
当一个subject(主体,如: 一个应用)试图访问一个object(客体,如:一个文件),Kernel中的策略执行服务器将检查AVC (Access Vector Cache), 在AVC中,subject和object的权限被缓存(cached)。如果基于AVC中的数据不能做出决定,则请求安全服务器,安全服务器在一个矩阵中查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问,拒绝消息细节写入/var/log/messages。
SELinux服务有三种配置模式
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
SELINUXTYPE=targeted,定义SELinux策略模型
- Targeted,类型强制(TE,Type Enforcement)访问控制,基于目标策略进行保护;
- Minimum,Targeted策略模型的修改版本。仅针对选定的过程实施保护;
- MLS,多层次安全保护模型(MLS,Multi-Level Security)。
查看目录的 SELinux 安全上下文
[root@redhat ~]# ls -Zd /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
在文件上设置的SELinux安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段system_u代表系统进程的身份,角色段object_r代表文件目录的角色,类型段httpd_sys_content_t代表网站服务的系统文件。
semanage
semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。<br /> -l参数用于查询;<br /> -a参数用于添加;<br /> -m参数用于修改;<br /> -d参数用于删除。<br /> 使用restorecon命令将设置好的SELinux安全上下文立即生效。
[root@redhat ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@redhat ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
[root@redhat ~]# restorecon -Rv /home/wwwroot/
restorecon reset /home/wwwroot context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /home/wwwroot/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
[root@redhat ~]# ls -Zd /home/wwwroot/
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /home/wwwroot/
[root@redhat ~]#
/usr/bin/chcon,修改对象(文件)的安全上下文。比如:用户:角色:类型:安全级别
- chcon [选项]… 环境 文件…
- chcon [选项]… [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件…
- chcon [选项]… —reference=参考文件 文件…