在智能驾驶越来越普及的今天,如何保证车载设备的安全,如何保证分配的权限是最合适的,不会出现越权访问?如何保证对外接口访问用户的权限是高度可控的?在应用程序被攻击后,如何保证黑客不能拿到超越进程的权限?
来看看selinux如何解决这个问题。
2. selinux是什么?
SELinux是Security-Enhanced Linux的简称,字面意思是强化版的安全Linux,它是Linux的安全子系统,由美国国家安全局NSA开发,是强制访问控制MAC的实现, Linux历史上最杰出的新安全子系统。
3. 为什么要有selinux,它解决了什么问题?
用过linux系统的人知道,文件是有访问权限控制的,读、写、执行,还有用户、组权限的控制,文件的权限控制通过文件来实现的方式,被成为DAC,自主访问控制。这种方式存在2个问题:
(1)超级用户root拥有所有的权限,假如我们的软件存在漏洞呢?这个往往是一个灾难性的问题;
(2)使用者可以通过程序变更文件的访问权限,如果配置为777,那么任何人都可以访问;
针对这2个问题,提出了MAC强制访问权限控制,可以针对特定的程序与特定的文件资源来进行权限的控管,控制的主体不再是使用者,而是程序,即使是root用户也不能任意访问文件,相对于DAC,MAC的权限访问的颗粒度更细了。
4 selinux的实现原理是怎样的,为什么它能?
4.1 主体与客体
访问控制包括三个要素:主体、客体和控制策略。
(1)主体S(Subject)。是指提出访问资源具体请求。是某一操作动作的发起者,但不一定是动作的执行者,可能是某一用户,也可以是用户启动的进程、服务和设备等。
(2)客体O(Object)。是指被访问资源的实体。所有可以被操作的信息、资源、对象都可以是客体。客体可以是信息、文件、记录等集合体,也可以是网络上硬件设施、无限通信中的终端,甚至可以包含另外一个客体。
(3)控制策略A(Access Control Policy)。是主体对客体的相关访问规则集合,即属性集合。访问策略体现了一种授权行为,也是客体对主体某些操作行为的默认。