openSUSE:安全特性

跳转至: 导航, 搜索
openSUSE 发行版中包含各种安全功能。

编译器和工具链

  • glibc malloc 堆损坏检查,以避免双重自由和类似攻击。这些检查在 glibc 中已经存在好几年了,并且从 SUSE Linux Enterprise Server 9 开始在我们所有的发行版中都是有效的。
  • 自 SUSE Linux 10.0 和 SUSE Linux Enterprise 10 起,gcc 和 glibc 中的 "Fortify Source "扩展已默认为所有软件包启用(使用 -D_FORTIFY_SOURCE=2)。这个扩展带来了:
    • 编译各种C语言字符串/内存函数的缓冲区溢出检查。当缓冲区溢出时,如果在编译时已经可以证明,编译器就会发出警告,并由我们的构建过程捕获。
    • C字符串/内存函数的运行时缓冲区溢出检查,目的缓冲区的大小在编译时是已知的。这里的溢出会触发程序的受控中止。
    • 利用格式字符串问题触发程序的受控中止。
    • 对危险库函数的返回值检查缺失提出具体警告。
  • 在 SUSE Linux 10.1 和 SUSE Linux Enterprise 10 的一些关键软件包中使用了使用 -fstack-protector 的运行时堆栈溢出检查,并从 openSUSE 10.2 开始默认启用所有软件包。
  • 标记堆栈和堆的不可执行性以使NX成为可能,几乎所有的包都已经做了一段时间了。
  • 自 SUSE Linux 10.1 起,默认启用 -z relro,这使得对特定 ELF 部分的攻击不再有效。
  • 虽然有一段时间一些选定的二进制文件被构建为位置独立的可执行文件(PIE),但在2017年5月,Tumbleweed 被切换为默认启用所有二进制文件的PIE。SUSE Linux Enterprise 15 和 openSUSE Leap 15.0 及更高版本的所有二进制文件都启用了 PIE 构建。
  • 堆栈冲突保护 ( -fstack-clash-protection) 在 SUSE Linux Enterprise 15 及更高版本中启用,也在 Leap 15.0 及更高版本中启用,并在 SUSE Linux Enterprise 12 和 openSUSE Leap 42.3 中为新发布的更新启用。

内核

  • 自 SUSE Linux Enterprise Server 9 开始,基于硬件的 NX(No eXecute,也称为 DEP)支持已在堆栈和堆中启用。
    • 所有 AMD64/EM64T 处理器。
    • 在使用 "bigsmp" 或 "pae" 内核的x86机器上,处理器能够支持 NX 位。
  • 我们现在不使用 Software NX ,因为它不在主线内核中,而且很可能永远不会。
  • 自 SUSE Linux Enterprise 10 和 SUSE Linux 10.1 起,地址空间随机化被用于堆栈和库的映射。
  • 自 openSUSE 11.1 和 SUSE Linux Enterprise 11 起,对 PIE 二进制文件及其堆进行地址空间随机化。(randomize_va_space=1)
  • 从 openSUSE 12.2 开始,对与堆分离的二进制文件和 VDSO 段进行地址空间随机化。(COMPAT_VDSO 和 COMPAT_BRK 已关闭, randomize_va_space=2)


  • "ExecShield" 和 "PAX" 包含几个功能,包括上面列出的功能。这意味着,我们此时已经实现了 "ExecShield" 和 "PAX" 的部分功能。

AppArmor

我们加入了强制性访问控制系统 AppArmor,以限制潜在的危险应用。

内核中启用了 SELinux,尽管没有提供默认策略。


防火墙

从 SUSE Linux 9.3 开始,基于 iptables 的 SuSEfirewall2 被默认启用,包括一个非常严格的入站过滤。

nftables 可以从 13.2 版本开始安装。

从 openSUSE 15 开始,SuSEFirewall2 已被 firewalld 取代,成为默认的防火墙软件包。


软件选择

我们选择在默认配置中只运行一组最小的守护程序。只有下列程序在监听网络:

  • SSH daemon
  • portmap daemon
  • avahi/mDNSResponder
  • cups print server

但所有这些都被防火墙默认屏蔽了。


setuid 二进制

Setuid/setgid 二进制是:

  • 保持在最低限度。我们试图用更安全的用户--根权限传递方法来取代它们,甚至完全摆脱它们。
  • 新的需要由 安全团队 进行源码审核,旧的在一段时间后会再次审核。

源代码审计

系统服务、setuid 二进制文件、PAM 模块、DBUS 服务和其他与安全相关的软件由安全团队进行审核,并将审核结果报告给上游维护者并进行修复。


YaST 安全中心和加固模块

YaST 模块 Security Center and Hardening 提供了一个中央区域来轻松配置 openSUSE 的安全相关设置。它被用来配置安全方面的设置,如登录、密码创建、启动权限、用户创建或默认文件权限的设置。要启动它,依次打开 YaST/安全和用户/安全中心

更多信息详见:YaST Security Settings Module Documentation

杂项

crypt(3) algorithm: DES until ..., Blowfish since ..., SHA512 since ...