Linux系统安全机制及技术大观

Linux阅码场 2023-05-19 08:31


Linux 系统是开放的, 其上安全机制、工具很多,不同的场景其安全目标和选择的工具都不相同。以下从个人角度仿ATT&CK列出一些常见的安全机制和技术。

Linux 系统分层

逻辑上总体可以分为三层:硬件层、内核层、应用层。每层都有攻击面和相应的安全技术。各层的安全技术相互配合形成体系化的防御。

红色表示攻击面,绿色表示安全机制

硬件

硬件是计算的基础,也是安全的基石。硬件大致由主板、各种总线、CPU、内存、硬盘、外设组成。按照这几个组件分析下攻击面和安全技术。

主板  

主板是其他硬件组件物理上的base。物理安全不能忽视,历史上发生过黑客直接替换存储设备的案例,特定频率的电磁波也能使某些硬件故障。  

主板上有CMOS,CMOS中代码和配置是个攻击面。其上的配置决定机器的功能和安全功能。如,是否启用Secure Boot,SGX等安全配置。管理BIOS要设置管理密码,开机使用要设置使用密码。

BMC(Baseboard Management Controller),一般存在服务器上,监控机器、控制机器启动、CMOS更新等,可以看作是单独一个系统。要加强保护,如弱口令等。

硬盘

硬盘这个就挑硬盘的使用和自加密磁盘说说。

自加密磁盘(SED),一般是固态硬盘。存储的内容是加密的,主控负责加密和解密,其作用防止数据物理泄漏。开机使用时,要输入正确的密码才能使用。

CPU

CPU安全分为两个方面:1. CPU自身的安全,如 meltdown\ spectre等缺陷。2. CPU提供的安全特性。

仅在软件层面上做安全有其不足,如保护功能有限、性能不足等。现代CPU上也提供一些安全机制和功能。以12代intel CPU为例说明(ARM上也有类似的安全特性,按照发展来看,笔者比较看好ARM的CCA安全体系)。

TXT(可信执行技术) :是intel 实现可信计算平台在CPU中提供的技术。可信计算是一套安全理论,涉及到CPU、TPM、主板、内核、开发库、应用,还有一些intel未公开源码的微码。其使用也涉及到产品制造商、基础架构和运维、开发等。发展很多年了,但基本没有体系化使用,其中一些基础功能也比较陈旧,不符合现在的安全发展。TPM大家接触的较多。

说到TXT,可能会拿来与SGX比较。TXT是体系化的,平台化的,面向公司的基础架构,也有直接供运维和开发人员使用的TSS软件栈和TPM工具。SGX严格来说是可信计算中的隔离执行功能,其使用只依赖CPU特性+内核支持+SDK,对于开发人员来说,相对比较容易使用(但是也不容易使用。在12代CPU中已经废弃SGX功能)。

AES-NI CPU上的AES加解密指令,提高AES的性能。这个一般的加解密库都使用了。

PCLMULQDQ:  无进位乘法指令,提高加解密性能。

SHA Extensions sha1、sha256哈希算法的硬件加速指令。

Secure KeyCPU上的随机数产生指令。rdseed(产生随机数种子)、rdrand。 在内核中没有完全信任CPU的种子指令,只是作为熵源的一部分。

NX 非执行位。标记某个页是禁止执行的,如果违反了,产生异常。

Boot Guard Technology: 启动保护技术,属于安全启动,其目的是保护启动过程的完整性(信任链的传递),防止未经验证的启动代码运行,例如BootKit。

SMEP & SMAP阻止CPU在特权级别下执行用户模式的代码。RFLAGS寄存器中的AC标志清除时,阻止在特权级别下访问用户模式的内存。

UMIP 一些指令只能在特权模式下执行。如SGDT、SIDT、SLDT、SMSW、STR。

MKTME: 多秘钥全内存加密,与AMD的SME对应。这个笔者比较关注,内存安全进了一大步。

CET: 控制流加强技术。两类: 1. 硬件影子栈,保护函数返回地址,如缓冲区溢出黑客利用。2. 新增ENDBRANCH(32位和64位)指令防御ROP/JOP/COP利用。gcc编译时函数第一条指令是ENDBRANCH,运行时,CPU根据该指令保存/检查相应的状态,判断是否恶意利用。

KeyLocker Technology增ENCODEKEY指令对key 进行wrap并返回一个handle,以后加解密使用这个handle即可。与使用TPM加解密原理相似。

Devil’s Gate Rock: BIOS保护技术。更新BIOS时,进行签名、权限检查等多项保护BIOS的技术集合。

MKTME、CET、Keylocker、Devil’s Gate Rock,这些技术只有在比较新的主板、CPU、内核中才能使用。

12代CPU废弃的安全技术:MPX和SGX。


外设

每一种外设都是一个攻击面。例如:WIFI、蓝牙、USB类的设备。

WIFI:各种移动设备,车载,路由器,家居设备。这些设备如果驱动或者应用有漏洞、访问接入控制策略不当,都能形成破坏和信息泄漏。如果拿个手机站在马路上,可以看到车上各种WIFI热点,如果有耐心走到车附近,很容易就能扫到行车记录仪上二维码中的密码。

蓝牙:这个危害同WIFI。例如蓝牙鼠标、键盘。如果联入系统的鼠标被偷走,盲点击就可以形成破坏。

USB设备:这个是对不联网系统破坏的重要通道。例如,U盘中的恶意文件。

这些外设,尽可能的减少,能物理割掉的割掉,不能割的封上,不能封的要禁止相应的驱动加载。使用的,要保持软件更新,实施合适的接入控制策略。


各种总线

USB总线、火线、PCI等总线。

PCI总线可以传输、更改SED的口令,火线可以直接读取物理内存,USB比较通用,较容易接入各种恶意物理设备。

安全物理设备

HSM、TPM都是用于安全目的芯片。TPM是可信计算中的组件,大多数计算机中都有,相对比较容易使用。openssl也有利用TPM的功能。

Ukey:  使用系统时用外部设备进行认证。例如,CentOS登录时,或者网银登、玩游戏时都有相应的身份认证设备。


内核

内核大致由以下五部分组成:基础组件(进程调度与管理、内存管理、进程间通信,一般裁减时都会保留)、文件系统和块IO系统、网络子系统、各种基础库、驱动和固件。还有安全子系统。重点说一说内核中的安全机制和技术。

自主访问控制 & ACL

客体的拥有者决定其他用户的权限。例如:ACL中配置的策略。Linux系统的 用户/组/其他+ACL 组成基础的访问控制。ROOT作为管理身份,执行基础访问控制外的功能。

SETUID/SETGID/ NO_NEW_PRIV

这个是基础访问控制外的特例。如passwd、mount、各种沙箱程序,尽量减少这类程序就是了。说一说NO_NEW_PRIV,setuid/setgid和capabilites都是合法提权,在执行一些程序时,为了防止这些提权方法被滥用,可以使用prctl设置NO_NEW_PRIV

capabilities

ROOT权限太大,要对ROOT进行分权。kernel v5.15中分成了41种具体的权限,如CAP_CHOWN、CAP_ADMIN、CAP_BPF等。在需要特权的可执行程序上设置特定的特权,在执行时就不需要ROOT账户了,如SOCKET_RAW,bpf操作。应用层开发库libcap2比以前易用很多,但应用的不是很多。

MAC

强制访问控制,相对自主访问控制而言。简单来说制定统一的规则,赋予主体与客体相应的标记,根据规则判断动作是否允许。访问控制模型有BRAC(基于角色的访问控制,这个用的多)、BLP、BIBA。BLP主要关注机密性,其控制规则“上不可读,下不可写”。BIBA主要关注完整性,其控制规则“上不可写,下不可读”

内核中的Selinux实现多级访问控制,综合了几个访问控制模型,是CentOS和Andriod上默认的强制访问控制机制。

Apparmor是Ubuntu上基于路径的MAC实现,其配置比Selinux容易理解。但Apparmor仅针对配置的程序进行访问控制。

Smack简单的访问控制。Smack在Tizen OS(一种用在TV、Iot的操作系统)使用,其主要特点是实现了CIPSO协议。

Tomoyo: 日本人搞的强制访问控制实现。Smack和Tomoyo相对较少使用。

LSM

Linux 安全模型是一套框架,实质是分布在内核代码中多个地方的钩子,本身没有实现安全控制功能(现在的capabilites和IMA也在LSM框架中插入了hook)。在kernel V5.15中共有239个hook点。上面的Selinux、Apparmor就是实现不同hook点从而实现不同的访问控制实现。

关于LSM是否可以同时使用多个访问控制实现,历史上有过反复,开始可以,后来不可以,现在又可以了。

YAMA: 用于控制ptrace、prctl使用的机制。例如是否允许调试、注入so库,都可以通过设置yama实现,比较简单实用。现在也是通过LSM实现的。

IMA: 完整性度量基础设施,“计算”系统运行过程中文件、文件属性、进程的完整性。对系统运行过程中所有进程(还有内核)计算出一个hash值存于TPM中的17号寄存器中,当向对方证明时使用。IMA很占用内存,基本没有使用的。

LANDLOCK: 创建一个功能受限的环境,多用于沙箱。根据现在的代码来看,实现的比较粗糙。但配合cgroup、namespace也许能实现功能不错的沙箱。

lockdown:  Linux系统安全增强功能。在CentOS早期版本中叫runlevel,Ubuntu上早期是通过应用层脚本实现。例如,是否允许加载ko,是否允许访问/dev/mem等等,这些原来允许使用但很危险的操作,可以通过lockdown限制。锁住系统,提高系统安全级别,比原来更安全了。安全级别只能提高,不能降级,如果想降级,要重启系统。一般用于IoT设备。

LoadPin: 确保进入内核地址空间的代码来自同一个文件系统,该文件系统可以设置ro属性。防止黑客引入ko攻击系统。

内核自保护技术: 内核作为一个软件,其本身也是攻击目标。例如:

1. 减少攻击面。以前导出的函数不再导出,以前老的系统调用被废弃,增加seccomp机制过滤系统调用。一些关键信息不再向用户空间导出,或者需要特权才能查看,如/proc/kallsym中符号的地址。内核空间数据复制到用户空间时,先初始化为0;系统调用返回时,清除栈;释放堆内存时,清除堆等等。

2. 执行代码的内存不能同时具有执行和写权限。

3. 一些数据设置为只读属性。

4. 内核模块、固件、UEFI代码验证签名。

5加强地随机化。栈缓冲区保护。运行时检查计数器、整数是否溢出等。借鉴了pax项目的一些内存安全保护技术

6. 使用安全编译选项编译内核。


Cgroup & namespace: namespace是资源隔离技术,v5.15对8类资源进行隔离(pid、net、uts、user、cgroup、ipc、mnt、time)。Cgroup 是资源控制技术,例如cpu使用量,内存使用量等。它们是实现容器的基础技术。其他资源控制技术如getrlimit、sched_setaffinity。

文件系统安全 文件系统加密机制ecryptfs、dm-crypt、perfile加密。文件系统mount时只读、文件使用量限制quota、文件属性sticky位等。

SECRETMEM新版本内核中增加的隐私内存机制。在一个进程中申请的secret mem,在其他进程中不能使用ptrace访问。

网络安全方面: 

1. Netfilter: 在这个基础上可以设置防火墙规则。

2. Netlabel: 在ip数据包的选项中增加数据包标记,实现数据包的访问控制

3. IPsec & wireguard进行安全通信。

4. KTLS:在TLS协议中,数据包加解密在内核进行,提高TLS的性能。

5. AF_PACKET & BPF 高效的抓包。XDP可实现抗D。

6. 负载均衡;重新实现TCP握手机制,增强抗SYN flood攻击等

内核HOOK机制:ftrace & kprobe & livepatch & bpf 。利用它们可以实现自己的安全功能,观测内核、进程事件。热补丁修复内核漏洞。

内核审计机制:Audit、kmsg、acct、cn_proc、fanotify等。

以上大致是进入内核主线的安全技术,还有一些没有进入主线如 grsec、tpe、lkrg、dpdk等等。一些发行版本,如Ubuntu也会有选择的引入其中一些安全技术。


应用层

场景不同,选择的工具也不同。下面就根据加固一个OS的基本原则说一下常用工具。

简单(KISS原则)

设计简单、使用简单……

减少攻击面
定制基线时,操作系统尽可能小,包含尽量少的软件包。例如gcc、tcpdump、nc等不常用的软件在生产系统上不要安装。不用的内核ko禁止加载或者从生产系统上删除。

一些可以裁减内核的系统,保持内核功能精简。使用busybox代替coreutils包中的基础工具,使用定制过的bash等等。

最小权限原则

最少的账户、账户最小的权限。/etc/passwd中不用的账户要删除,是否允许登录要控制等。使用sudo 控制账户执行的命令。如果允许网络登录,使用pam中的插件控制。sshd配置要尽可能严格,如禁止使用root登录。

设置不同类型的账户,如管理账户、审计账户。每类账户其权限刚好够用。

保持更新

软件保持更新,可以修复软件漏洞。策略更新,适用新的变化。如一些密码要周期性更新。

事件审计

重要事件要记录和监控。如登事件、服务重启事件、配置更新事件。Linux上有各种日志记录功能,一般都在/var/log下。很多安全工具都会读取该目录下的文件。

进行基础的加固和监控

适当的分区及权限设置,适当的防火墙规则,适当的加解密措施,防止口令破解措施、2FA登录认证等等。


看待Linux系统安全有不同的角度,以上根据系统分层列出Linux安全机制和技术,是静态的。如果从事件活动角度,就可以把这些安全技术有机组合起来,形成防御功能。安全架构师,类似厨子,知道每项技术的优缺点,不迷信某个具体的技术,能根据具体场景,设计合适的安全架构,组合利用(或者开发)各种技术做出符合需求的佳肴。

Linux阅码场 专业的Linux技术社区和Linux操作系统学习平台,内容涉及Linux内核,Linux内存管理,Linux进程管理,Linux文件系统和IO,Linux性能调优,Linux设备驱动以及Linux虚拟化和云计算等各方各面.
评论
  • 引言工程师作为推动科技进步和社会发展的核心力量,在各个领域发挥着关键作用。为深入了解工程师的职场现状,本次调研涵盖了不同行业、不同经验水平的工程师群体,通过问卷调查、访谈等方式,收集了大量一手数据,旨在全面呈现工程师的职场生态。1. 工程师群体基本信息行业分布:调研结果显示,工程师群体广泛分布于多个行业,其中制造业占比最高,达到 90%,其次是信息技术、电子通信、能源等行业。不同行业的工程师在工作内容、技术要求和职业发展路径上存在一定差异。年龄与经验:工程师群体以中青年为主,30 - 45 岁年
    Jeffreyzhang123 2024-12-27 17:39 124浏览
  • 一、引言无人机,作为近年来迅速崛起的新兴技术产物,正以前所未有的速度改变着众多行业的运作模式,从民用领域的航拍、物流,到工业领域的测绘、巡检,再到军事领域的侦察、打击等,无人机的身影无处不在。为了深入了解无人机的现状,本次调研综合了市场数据、行业报告、用户反馈等多方面信息,全面剖析无人机的发展态势。二、市场规模与增长趋势随着技术的不断进步和成本的逐渐降低,无人机市场呈现出爆发式增长。近年来,全球无人机市场规模持续扩大,预计在未来几年内仍将保持较高的增长率。从应用领域来看,消费级无人机市场依然占据
    Jeffreyzhang123 2024-12-27 17:29 176浏览
  • 在当今科技飞速发展的时代,工业电子作为现代制造业的中流砥柱,正以前所未有的速度推动着各个行业的变革与进步。从汽车制造到航空航天,从智能家居到工业自动化,工业电子的身影无处不在,为我们的生活和生产带来了巨大的改变。工业电子的崛起与发展工业电子的发展历程可谓是一部波澜壮阔的科技进化史。追溯到上世纪中叶,电子技术开始逐渐应用于工业领域,最初主要是简单的电子控制装置,用于提高生产过程的自动化程度。随着半导体技术、计算机技术和通信技术的不断突破,工业电子迎来了爆发式的增长。集成电路的发明使得电子设备的体积
    Jeffreyzhang123 2024-12-27 15:40 118浏览
  • 在科技飞速发展的今天,医疗电子作为一个融合了医学与电子技术的交叉领域,正以前所未有的速度改变着我们的医疗模式和健康生活。它宛如一颗璀璨的明珠,在医疗领域绽放出耀眼的光芒,为人类的健康福祉带来了诸多惊喜与变革。医疗电子的神奇应用医疗电子的应用范围极为广泛,深入到医疗的各个环节。在诊断方面,各种先进的医学成像设备堪称医生的 “火眼金睛”。X 光、CT、MRI 等成像技术,能够清晰地呈现人体内部的结构和病变情况,帮助医生准确地发现疾病。以 CT 为例,它通过对人体进行断层扫描,能够提供比传统 X 光更
    Jeffreyzhang123 2024-12-27 15:46 110浏览
  • 采购与分销是企业运营中至关重要的环节,直接影响到企业的成本控制、客户满意度和市场竞争力。以下从多个方面介绍如何优化采购与分销:采购环节优化供应商管理供应商评估与选择:建立一套全面、科学的供应商评估体系,除了考虑价格因素,还要综合评估供应商的产品质量、交货期、信誉、研发能力、售后服务等。通过多维度评估,选择那些能够提供优质产品和服务,且与企业战略目标相契合的供应商。建立长期合作关系:与优质供应商建立长期稳定的合作关系,这种合作模式可以带来诸多好处。双方可以在信任的基础上进行深度沟通与协作,共同开展
    Jeffreyzhang123 2024-12-27 17:43 121浏览
  • 从教师的角度来看,麻省理工学院开除因学术造假的学生,这一决定是合理且必要的。首先,学术诚信是学术研究的基石。在学术界,真实性和原创性是至关重要的。学术造假不仅破坏了学术研究的公正性和准确性,还损害了学术领域的整体声誉。因此,对于任何形式的学术不端行为,包括伪造数据、抄袭等,学校都应采取严厉措施,以维护学术诚信。其次,学校对学生具有管理权,包括对学生的处分权。按照相关规定,学校有权对违纪学生进行警告、严重警告、记过、留校察看、勒令退学、开除学籍等处分。开除学籍是一种严厉的处分,通常适用于严重违反学
    curton 2024-12-28 21:49 63浏览
  • 一、前言 回首2024,对于我而言,是充满挑战与收获的一年。在这一年里,我积极参与了论坛的众多活动,不仅拓宽了我的认知边界(有些东西不是你做不到,而是你想不到),还让我在实践中收获了宝贵的经验和。同时,多种多样的论坛活动让我们全方面的接受新东西,连接新知识,多种类型的的活动交织了你我的2024。在这里说一说对过去一年的活动经历,进行一次年终总结,并谈谈我的收获和感受,以及对2025年的展望。二、活动足迹(一)快速体验:机智云Gokit2.0开发板初体验 机智云Gokit2.0开发板的体验活动让大
    无言的朝圣 2024-12-27 14:50 86浏览
  • 在当今这个数字化的时代,电子设备无处不在,从我们手中的智能手机、随身携带的笔记本电脑,到复杂的工业控制系统、先进的医疗设备,它们的正常运行都离不开一个关键的 “幕后英雄”—— 印刷电路板(Printed Circuit Board,简称 PCB)。PCB 作为电子设备中不可或缺的重要部件,默默地承载着电子元件之间的连接与信号传输,是整个电子世界的基石。揭开 PCB 的神秘面纱PCB,简单来说,就是一块由绝缘材料制成的板子,上面通过印刷、蚀刻等工艺形成了导电线路和焊盘,用于固定和连接各种电子元件。
    Jeffreyzhang123 2024-12-27 17:21 94浏览
  • 在当今竞争激烈的商业世界中,供应链管理已成为企业生存与发展的核心竞争力之一。它就像一条无形的纽带,将供应商、制造商、分销商、零售商直至最终消费者紧密相连,确保产品和服务能够高效、顺畅地流转。今天,就让我们一同深入探索供应链管理的奥秘。供应链管理是什么简单来说,供应链管理是对从原材料采购、生产制造、产品配送直至销售给最终用户这一整个过程中,涉及的物流、信息流和资金流进行计划、协调、控制和优化的管理活动。它不仅仅是对各个环节的简单串联,更是一种通过整合资源、优化流程,实现整体效益最大化的管理理念和方
    Jeffreyzhang123 2024-12-27 17:27 101浏览
  • 在当今这个科技飞速发展的时代,物联网(IoT)已经不再是一个陌生的概念,它正以一种前所未有的速度改变着我们的生活和工作方式,像一股无形的力量,将世界紧密地连接在一起,引领我们步入一个全新的智能时代。物联网是什么简单来说,物联网就是通过感知设备、网络传输、数据处理等技术手段,实现物与物、人与物之间的互联互通和智能化管理。想象一下,你的家里所有的电器都能 “听懂” 你的指令,根据你的习惯自动调节;工厂里的设备能够实时监测自身状态,提前预警故障;城市的交通系统可以根据实时路况自动优化信号灯,减少拥堵…
    Jeffreyzhang123 2024-12-27 17:18 89浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦