27 通用准则 #
通用准则是指用于评估和衡量 IT 产品安全价值的最知名且使用最广泛的方法。该方法旨在保持独立性,以独立的实验室开展评估,然后由认证机构予以认证。安全功能要求 (SFR) 汇总在所谓的保护配置文件 (PP) 中。如果安全目标 (ST) 的定义与评估保障级别 (EAL) 相若,便可以比较不同产品的安全功能。(安全目标的定义通常会参考 PP — 如果存在满足产品用途的 PP。)
27.1 简介 #
要清楚定义 IT 产品中的安全并非易事。安全应被视为一个永无止境的过程,而不是一个可满足或不可满足的静态条件。通用准则证书(EAL7 以下级别)并未对系统的错误倾向做出清楚说明,但却为产品添加了一项无法仅通过技术存在来描述的重要价值:即,某人已独立检查了系统设计,所用方法与其声明相对应,并已在生产和维护产品时进行明确关注。
该证书为产品及其安全功能以及公司设计、构建和工程处理产品的流程指定了成熟程度,并将在整个产品生命周期内对其进行维护。因此,通用准则旨在做到面面俱到,将与 IT 产品安全相关的一切因素全部考虑在内。
27.2 评估保障级别 (EAL) #
评估保障级别表示产品满足所述声明的可信度。级别范围从 1 到 7:
EAL1:功能测试
EAL2:结构测试
EAL3:系统测试及检查
EAL4:系统设计、测试和审核
EAL5:半形式化设计和测试
EAL6:半形式化验证的设计和测试
EAL7:形式化验证的设计和测试
EAL1 只为产品满足安全要求提供基本保障,EAL2 到 EAL4 为中等保障级别。EAL5 到 EAL7 描述中到高以及高级别保障。如果某个产品从设计之初便未以较高级别保障为目标,则 EAL4 将是产品预期可拥有的最高保障级别。
27.3 一般指导原则 #
本指南中的大多数建议基于以下准则。在您定义自己的安全流程或确定本文中未明确涉及的配置时,请考虑这些准则。
- 尽可能使用数据加密
请注意,加密法固然有用,但只适用于它能胜任的特定目的。使用加密法并非获得更高系统安全性的通用途径;它也可能会给系统带来额外的风险。请就是否使用加密法做出明智决策,并有责任为您的决策提供理由。虚假的安全感比本身的弱点可能更有害。
SUSE Linux Enterprise Server 支持对以下项目进行加密:
用于远程登录(
openssh
,man ssh(1)
)的网络连接(openssl
命令,stunnel
)文件 (
gpg
)位于块层的整个文件系统(
dm-crypt
,cryptsetup
)VPN(
ipsec
,openvpn
)
- 最小软件包安装
将您系统中的已安装软件包限制为最小数量会很有用。无法执行未安装的二进制文件。
在系统安装期间,您可以限制所要安装的软件包集。例如,您可以取消选择所有软件包,而只选择您要使用的软件包。例如,在 YaST 中选择
apache2-mod_perl
软件包将自动选择安装 Apache 软件包运行所需的所有软件包。常常会人为减少依赖项,以便更灵活地处理系统的依赖关系树。您可以选择最小系统,并以其为基础通过(叶)软件包选择构建依赖关系树。- 服务隔离 — 在独立的系统上运行不同的服务
可能的情况下,服务器应专用于提供一项服务或一个应用程序。如果攻击者能够成功利用一项服务中的软件缺陷(假设该缺陷允许访问其他服务),这将限制可能被入侵的其他服务数。
为系统上提供的服务使用 AppArmor 是一种有效的限制方法。有关详细信息,请参见第 V 部分 “通过 AppArmor 限制特权”和
apparmor
手册页。SUSE Linux Enterprise Server 支持使用虚拟化技术。虽然虚拟化一般用于服务器整合目的,但它对于服务隔离也很有用。不过,虚拟化技术无法比拟通过在不同物理计算机上运行服务所提供的隔离强度,也无法代替后者。请注意,超级管理程序隔离虚拟机的能力并不高于或强于 Linux 内核隔离进程及其地址空间的能力。
- 系统指纹和备份
执行定期备份及设置系统指纹十分重要,在应对系统成功攻击的情况下尤其如此。请将其作为安全惯例不可或缺的一部分,以校验备份是否正常工作。
快速直接的可访问备份可增加您对系统完整性的信心。但备份机制/解决方案拥有足够的版本控制支持亦十分重要,以便您能够跟踪系统中的更改。例如:软件包 (
rpm
-q
--queryformat='%{INSTALLTIME} %{NAME}\n'
PACKAGE NAME) 的安装时间必须与备份日志文件中已更改的文件相对应。SUSE Linux Enterprise Server 15 SP5 上存在多个工具,可用于检测未知但却成功的攻击。无需花费太多精力对其进行配置。
特别建议您使用文件和目录完整性检查器
AIDE
(高级入侵检测环境)。当它运行以进行初始化时,会创建系统中列于其配置文件中的所有文件的哈希数据库。这样就可以在稍后校验所有已分类文件的完整性。警告:后门如果您使用 AIDE,请将哈希数据库复制到潜在攻击者无法访问的位置。否则,攻击者可能会在植入后门之后修改完整性数据库,导致完整性措施目标无法达成。
攻击者也可能已在内核中植入后门。除了难以检测之外,基于内核的后门还可有效去除系统入侵的所有痕迹,致使系统更改几乎变得无法察觉。因此,需要通过救援系统(或已手动挂载目标系统文件系统的任何其他独立系统)来执行完整性检查。
请注意,安全更新的应用程序会令完整性数据库失效。
rpm
-qlv packagename
会列出软件包中包含的文件。RPM 子系统非常强大,所含数据由其自行维护。可以使用--queryformat
命令行选项访问它。利用 RPM 的精细功能,可以更方便地管理包含已更改文件的完整性数据库的差异更新。
27.4 更多信息 #
通用准则评估可检查已评估设置中产品的特定配置。有关如何安装和配置用作通用准则评估中基线的参考系统,请参见通用准则评估文档的“管理员指南”部分。
不过,将已评估配置理解为已强化配置是不正确的。在安装后去除 setuid 位和管理过程的规定有助于实现合理的特定配置。但这对于强化声明是不够的。
有关 SUSE Linux Enterprise Server 安全认证和功能的详细信息,请参见 https://www.suse.com/support/security/certifications/。
https://www.suse.com/support/security/ 上提供了 SUSE 安全资源的列表。
除与通用准则工作相关的文档外,另请参见以下手册页:
pam(8)、pam(5) apparmor(7) 和参考的手册页 rsyslogd(8)、syslog(8)、syslogd(8) fstab(5)、mount(8)、losetup(8)、cryptsetup(8) haveged(8)、random(4) ssh(1)、sshd(8)、ssh_config(5)、sshd_config(5)、ssh-agent(1)、ssh-add(1)、ssh-keygen(1) cron(1)、crontab(5)、at(1)、atd(8) systemctl(1)、daemon(7)、systemd.unit(5)、systemd.special(5)、kernel-command-line(7)、bootup(7)、systemd.directives