作者:
伯纪,阿里云基础软件部操作系统安全工程师,从事Alibaba Cloud Linux 的等保加固、CIS加固以及机密计算等相关工作。
晓贾,阿里云基础软件部操作系统产品专家,从事Alibaba Cloud Linux 的产品化相关工作。
背景信息
CIS全名Center for Internet Security,是一个美国的第三方安全组织,他们致力于采用线上社区的模式与大公司、*机构、学术机构一起打造优秀的安全实践解决方案(各种benchmarks)。当前各个公司发布的Linux操作系统大多都已经提供CIS benchmark,包括Alibaba Cloud Linux 2,CentOS、Ubuntu等,详情可以参见CIS网站。当前发布CIS benchmark已经成为很多阿里云客户对于OS安全的重要评判依据之一。
Alibaba Cloud Linux 2 (原Aliyun Linux 2) 不仅是阿里云官方操作系统镜像,也是ACK的首选默认系统镜像。Alibaba Cloud Linux 2在2019年8月16日正式通过了CIS组织的全部认证流程并发布对应的CIS Aliyun Linux 2 Benchmark version 1.0.0。
CIS Aliyun Linux 2 Benchmark version 1.0.0加固项分类说明
CIS Aliyun Linux 2 Benchmark version 1.0.0是最新的CIS Aliyun Linux 2 Benchmark。您可以对其进行下载,具体操作,请参见下载CIS Aliyun Linux 2 Benchmark version 1.0.0进行下载。它一共包含204项,按照每一项所处的安全level分为Level 1(168项)和Level 2(36项)。其中Level 1与Level 2的主要区别如下:
- Level 1是说明此加固条目是基础项加固且基本不会带来较大的性能影响
- Level 2说明此条目适用于安全性更高的场景,且可能会对系统带来性能开销。
此外CIS Aliyun Linux 2 Benchmark从计分(Scoring Information) 的维度分为了Scored和Not Scored两类,其中
- Scored:意味着此条目会纳入计分项,如果验证系统是安全的,则加分,如果不安全,则减分。
- Not Scored:意味着无论是否安全,都不纳入计分项,也就是说不增减分。
综上,CIS Aliyun Linux 2一共204项,可以分为四类:
- Level 1 Sorced(共145项)
- Level 1 Not Scored(共21项)
- Level 2 Scored(共33项)
- Level 2 Not Scored(共3项)
因为Level 2可能会影响性能且Not Scored项不纳入计分,因此对节点的Alibaba Cloud Linux 2操作系统,ACK集群只针做Level 1 Sorced项的安全加固。
ACK使用Alibaba Cloud Linux 2 CIS加固版
在创建ACK集群时,您可以选择启用CIS加固,这样集群在创建时会自动配置对应的CIS加固项,使得ACK集群所有节点的Alibaba Cloud Linux 2镜像满足CIS Aliyun Linux 2 Benchmark version 1.0.0中大部分Level 1 Scored项的加固要求。关于具体满足的加固项,请参见ACK CIS加固集群满足的CIS Level 1 Scored加固项清单。
图1. CIS加固配置图
- 注意:为了满足CIS Level 1的加固要求,ACK会在CIS加固的Alibaba Cloud Linux 2操作系统中默认创建ack_cis这个普通用户。
ACK CIS加固集群满足的CIS Level 1 Scored加固项清单
经过对CIS Aliyun Linux 2 Benchmark version 1.0.0所有Level 1 Scored(共145项)进行分析和测试,我们对除下表所列的17项以外的128项(88%以上)进行了安全加固。
表1. ACK集群中未加固的CIS Level 1 Scored项清单
加固项 | 未加固的原因 |
---|---|
1.1.2 Ensure /tmp is configured(Scored) | 涉及到分区的修改 |
1.1.18 Ensure sticky bit is set on all world-writable directories (Scored) | 影响ACK管控逻辑 |
1.7.1.1 Ensure message of the day is configured properly(Scored) | 需要删除Alibaba Cloud Linux 2系统MOTD中的使用指南的链接 |
3.1.1 Ensure IP forwarding is disabled (Scored) | 对ACK的terway的组件有影响 |
3.5.1.1 Ensure default deny firewall policy (Scored) | 需要用户设置自己的防火墙策略 |
3.5.1.2 Ensure loopback traffic is configured (Scored) | 需要用户设置自己的loopback规则 |
3.5.1.4 Ensure firewall rules exist for all open ports (Scored) | 需要用户对开放的端口设置防火墙策略 |
3.5.2.1 Ensure IPv6 default deny firewall policy (Scored) | 需要用户设置自己的IPv6防火墙策略 |
3.5.2.2 Ensure IPv6 loopback traffic is configured (Scored) | 需要用户设置自己的 IPv6 loopback规则 |
4.2.1.4 Ensure rsyslog is configured to send logs to a remote log host (Scored) | 需要用户配置rsyslog来设置自己的远程log host |
4.2.3 Ensure permissions on all logfiles are configured (Scored) | 改动文件太多,存在潜在风险 |
5.2.10 Ensure SSH root login is disabled (Scored) | 需要用户自行创建其它登录账号或者选择VNC等非ssh登录方式,然后才能禁用root登录 |
5.2.18 Ensure SSH access is limited (Scored) | 需要用户配置允许登录的用户和组 |
5.2.3 Ensure permissions on SSH private host key files are configured(Scored) | 扫描脚本有误,ssh_keys的Gid被硬编码未998, 但实际系统不一定是998(可能是996等) |
5.3.2 Ensure lockout for failed password attempts is configured (Scored) | benchmark给出的修复建议跟Alibaba Cloud Linux 2系统对应的配置文件差异较大,建议谨慎修改 |
6.1.11 Ensure no unowned files or directories exist (Scored) | 影响ACK管控逻辑 |
6.1.12 Ensure no ungrouped files or directories exist (Scored) | 影响ACK管控逻辑 |
如果您需要修复ACK集群中这些没修复的CIS Level 1 Scored项,您可以参考CIS Aliyun Linux 2 Benchmark version 1.0.0手册,每一项都有以下内容,您可根据该项的Remediation部分进行修复,然后按照Audit检查您的修复是否生效。
- Profile Applicability:该项属于Level 1还是Level 2
- Decription:加固条目的简单介绍。
- Rationale:用于描述条目的细节和背景,告诉读者这么加固的意义和原因。
- Audit:关键项,用于判断检测系统是否达标的脚本。根据此脚本的运行返回值来判断是否需要加固。
- Remediation:关键项,如果Audit环节判断系统需要进行加固,那此环节就是执行脚本进行安全处理。
- Impact:影响,主要来描述如果不进行正确配置可能会导致的影响。
- References:参考文献。
- CIS Controls:此条目对应的CIS control文档的讲解,需要注册后才能下载。
CIS Aliyun Linux 2 Benchmark version 1.0.0下载步骤
- 访问CIS Benchmark官方主页
- 按图中所示分类同时选定
Operating Systems
和Linux
- 找到Aliyun Linux CIS Benchmark,并点击
Download CIS Benchmark
, 如下图所示
- 在CIS下载界面填写个人的基本信息,然后点击
Get Free Benchmarks Now
- 过几分钟后,你填写的邮箱会收到CIS的邮件,如下图,点击
Access PDFs
- 进入下载界面找到最近访问的
CIS Aliyun Linux 2 Benchmark v1.0.0
并点击Download PDF
即可
使用CIS-CAT扫描工具验证ACK集群的CIS加固效果
如果您想验证ACK集群的CIS加固效果,可以使用CIS官网提供的CIS-CAT工具进行扫描验证。CIS-CAT是一个安全配置评估软件工具,即扫描工具,它能够详细地提供目标系统的评估结果。通过运行该工具,可以得到目标系统在指定CIS Benchmark profile的合规分数,同时还会针对不合规的配置给出修复步骤。
CIS-CAT 分为 Lite和Pro版, Lite提供功能有限,且仅支持的系统包括Windows 10, Ubuntu 18.04和Google Chrome等,因此不支持Alibaba Cloud Linux 2操作系统,因此无法扫描ACK集群的CIS加固效果。
CIS-CAT Pro具有v4和v3两个版本系列。以v4为例,本文将阐述如何使用CIS-CAT Pro进行扫描验证ACK集群的CIS加固效果。
- 注册成为CIS SecureSuite会员后,下载CIS-CAT Pro工具
- 登录到ACK集群的某个Alibaba Cloud Linux 2操作系统的节点
- 安装CIS-CAT需要的java环境
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel cat > /etc/profile.d/java8.sh <<EOF export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac))))) export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar EOF source /etc/profile.d/java8.sh
- 使用CIS-CAT Pro工具(以
Assessor-CLI-v4.0.23.zip
为例)进行扫描, 其中
-
-b
: 用来选择Benchmark的类型(操作系统和对应的版本类型)。 -
-p
:用来选择扫描的Level,因ACK只对CIS Level 1 scored进行扫描,因此扫描时选择Level 1。
unzip Assessor-CLI-v4.0.23.zip cd Assessor-CLI chmod +x ./Assessor-CLI.sh ./Assessor-CLI.sh -b ./benchmarks/CIS_Aliyun_Linux_2_Benchmark_v1.0.0-xccdf.xml -p "Level 1" -html
- 查看扫描结果,如下图所示,根据 CIS-CAT Pro Assessor v4中User Guide Assessor文档的Report部分的使用指南, 具体解释如下:
-
Total # of Results
: 所选择的benchmark的加固项总数,CIS_Aliyun_Linux_2_Benchmark_v1.0.0
总共204项。 -
Total Scored Results
: 所选Level 的Scored项总数,Level 1一共145项。 -
Total Pass
: 所选Level的 Scored项中当前系统通过的总数,CIS加固的ACK集群每个节点通过的Level 1 Scored项为128项。 -
Total Fail
: 所选Level的 Scored项中当前系统未通过的总数,CIS加固的ACK集群每个节点未通过的Level 1 Scored项为17项。 -
Total Error
: 所选Level的Scored项中扫描脚本执行出错的项,这里CIS-CAT Pro都正确返回,因此结果为0。 -
Total Unknown
: 所选Level的Scored项中,CIS-CAT无法判断是否满足安全加固标准的项,这里结果为0。 -
Total Not Applicable
: 所选的benchmark中与当前操作系统不匹配的项。在Alibaba Cloud Linux 2上执行CIS_Aliyun_Linux_2_Benchmark_v1.0.0的CIS-CAT Pro扫描不存在不匹配的项。 -
Total Not Checked
: 与Total Informational
一样同属于Not Scored。 -
Total Not Selected
: 所选benchmark中未检查的加固项。CIS-CAT Pro对Level 1进行检查,因此这里未检查的加固项为所有的Level 2(共36项)。 -
Total Informational
: 需要手动评估是否满足,在所选Level中属于Not Scored。
ACK CIS加固的意义
目前越来越多的企业开始全面拥抱云原生,并充分利用云原生基础设施。云原生技术已经无处不在, 作为云原生服务的提供者,阿里云将会持续、高速发展云原生技术。而安全是云原生不可或缺的重要组成部分,Alibaba Cloud Linux 2 作为阿里云官方操作系统镜像和ACK的首选默认镜像, 提高Alibaba Cloud Linux 2的安全水位对于云原生非常重要。为此,阿里云众多专家投入CIS benckmarks的分析和研究,经过大量测试,制定了适合ACK集群的CIS Level 1 Scored加固项清单。ACK支持对基于Alibaba Cloud Linux 2操作系统的集群进行CIS加固具有以下意义:
- 为ACK客户提供CIS加固的方案,来满足客户对于阿里云更加简单、快捷、稳定、安全的使用的需求。当用户创建ACK集群时,如果选择Alibaba Cloud Linux 2, 就可以选择启动配置CIS加固,使集群在创建时自动执行对应的CIS加固项,直接满足大部分CIS Level Scored加固项的要求。
- 托管版ACK集群和专有版ACK集群都支持CIS加固,无论您是托管版的用户还是专有版的用户,都能通过选择CIS加固选项来提供ACK集群的安全水位(CIS Level 1 Scored计分项通过88%以上)。
- 阿里云在云产品开发和交付的过程中将安全作为重要组成部分,将合规融入到产品的“血液”中,把安全植入产品的“骨髓”里,能够帮助有CIS加固诉求的客户更加快速便捷的上云。