ACK CIS加固使用说明
您可以在ACK集群中启用CIS加固功能,提升ACK集群所有节点的操作系统的安全性。本文介绍ACK基于Alibaba Cloud Linux 2、Alibaba Cloud Linux 3实现CIS安全加固以及如何配置CIS安全加固后的检查。
背景信息
CIS(Center for Internet Security)是一个第三方安全组织,致力于采用线上社区的模式与大公司、政府机构、学术机构一起打造优秀的安全实践解决方案。当前各大个公司发布的Linux操作系统大多都已经提供CIS Benchmark,包括Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS、Ubuntu等。当前发布CIS Benchmark已经成为很多阿里云客户对于操作系统安全的重要评判依据之一。更多信息,请参见CIS WorkBench。
Alibaba Cloud Linux 2不仅是阿里云官方操作系统镜像,也是ACK的默认系统镜像。Alibaba Cloud Linux 2安全基线在2019年8月16日正式通过了CIS组织的全部认证流程并对外发布CIS Aliyun Linux 2 Benchmark version 1.0.0。Alibaba Cloud Linux是中国内地首个完成CIS认证的操作系统。
Alibaba Cloud Linux 3不仅是阿里云官方操作系统镜像,也是ACK支持的系统镜像。Alibaba Cloud Linux 3安全基线在2022年02月06日正式通过了CIS组织的全部认证流程并对外发布CIS Alibaba Cloud Linux 3 Benchmark v1.0.0。
加固项分类说明
CIS Aliyun Linux 2 Benchmark version 1.0.0
- Level 1是说明此加固条目是基础项加固且不会带来较大的性能影响。
- Level 2说明此条目适用于安全性更高的场景,且可能会对系统带来性能开销。
- Scored:意味着此条目会纳入计分项,如果验证系统是安全的,则加分,如果不安全,则减分。
- Not Scored:意味着无论是否安全,都不纳入计分项,也就是说不增减分。
- Level 1 Scored(共145项)
- Level 1 Not Scored(共23项)
- Level 2 Scored(共33项)
- Level 2 Not Scored(共3项)
因为Level 2可能会影响性能且Not Scored项不纳入计分,因此对节点的Alibaba Cloud Linux 2操作系统,ACK集群只针对Level 1 Sorced项进行安全加固。
CIS Alibaba Cloud Linux 3 Benchmark v1.0.0
- Level 1是说明此加固条目是基础项加固且基本不会带来明显的性能影响。
- Level 2说明此条目适用于安全性更高的场景,且可能会对系统带来性能开销。
- Automated:意味着此条目会纳入计分项,如果验证系统是安全的,则加分,如果不安全,则减分。
- Manual:意味着无论是否安全,都不纳入计分项,也就是说不增减分。
- Level 1 Automated(共183项)
- Level 1 Manual(共34项)
- Level 2 Automated(共45项)
- Level 2 Manual(共4项)
因为Level 2可能会影响性能且Manual项不纳入计分,因此对节点的Alibaba Cloud Linux 3操作系统,ACK集群只针对Level 1 Automated项做安全加固。
使用Alibaba Cloud Linux CIS加固版
Alibaba Cloud Linux 2

Alibaba Cloud Linux 3
在创建ACK集群时,您可以选择启用CIS加固,并将操作系统设置为Alibaba Cloud Linux 3.2104,这样集群在创建时会自动配置对应的CIS加固项,使得ACK集群所有节点的Alibaba Cloud Linux 3镜像满足CIS Alibaba Cloud Linux 3 Benchmark v1.0.0中大部分Level 1 Automated项的加固要求。关于满足的加固项,请参见ACK集群中未加固的CIS Level 1 Automated项清单。
ACK CIS加固集群满足的CIS Level 1加固项清单
Alibaba Cloud Linux 2
加固项 | 未加固的原因 |
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的网络组件有影响。 |
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管控逻辑。 |
条目 | 描述 |
Profile Applicability | 该项属于Level 1还是Level 2。 |
Description | 加固条目的简单介绍。 |
Rationale | 用于描述条目的细节和背景,告诉读者这么加固的意义和原因。 |
Audit | 关键项,用于判断检测系统是否达标的脚本。根据此脚本的运行返回值来判断是否需要加固。 |
Remediation | 关键项,如果Audit环节判断系统需要进行加固,那此环节就是执行脚本进行安全处理。 |
Impact | 影响,主要来描述如果不进行正确配置可能会导致的影响。 |
References | 参考文献。 |
CIS Controls | 此条目对应的CIS control文档的讲解,需要注册后才能下载。 |
Alibaba Cloud Linux 3
加固项 | 未加固的原因 |
1.1.2 Ensure /tmp is configured(Automated) | 涉及到分区的修改。 |
1.7.1.3 Ensure SELinux policy is configured(Automated) | 涉及到SELinux的修改,并且需重启。 |
1.7.1.4 Ensure the SELinux mode is not disabled(Automated) | 涉及到SELinux的修改,并且需重启。 |
3.2.1 Ensure IP forwarding is disabled(Automated) | 对ACK的Terway的组件有影响。 |
4.2.2.5 Ensure systemd-journal-remote is installed(Auomated) | CIS Alibaba Cloud Linux 3 Benchmark没有该项目,但是CIS-CAT扫描工具有。 |
4.2.2.7 Ensure journald is not configured to receive logs from a remote client(Auomated) | CIS Alibaba Cloud Linux 3 Benchmark没有该项目,但是CIS-CAT扫描工具有。 |
4.2.2.9 Ensure systemd-journal-remote is enabled(Automated) | CIS Alibaba Cloud Linux 3 Benchmark没有该项目,但是CIS-CAT扫描工具有。 |
4.2.3 Ensure permissions on all logfiles are configured (Automated) | 改动文件太多,存在潜在风险。 |
5.2.2 Ensure SSH access is limited (Automated) | 需要用户配置允许登录的用户和组。 |
5.2.10 Ensure SSH root login is disabled (Automated) | 需要用户自行创建其它登录账号或者选择VNC等非ssh登录方式,然后才能禁用root登录。 |
5.2.19 Ensure SSH MaxSessions is set to 10 or less(Automated) | CIS-CAT工具检测结果跟Benchmark描述的不一致。 |
6.1.2 Ensure sticky bit is set on all world-writable directories (Automated) | 影响ACK管控逻辑。 |
6.1.11 Ensure no world writable files exist (Automated) | 影响ACK管控逻辑。 |
6.1.12 Ensure no unowned files or directories exist (Automated) | 影响ACK管控逻辑。 |
6.1.13 Ensure no ungrouped files or directories exist (Automated) | 影响ACK管控逻辑。 |
条目 | 描述 |
Profile Applicability | 该项属于Level 1还是Level 2。 |
Description | 加固条目的简单介绍。 |
Rationale | 用于描述条目的细节和背景,告诉读者这么加固的意义和原因。 |
Audit | 关键项,用于判断检测系统是否达标的脚本。根据此脚本的运行返回值来判断是否需要加固。 |
Remediation | 关键项,如果Audit环节判断系统需要进行加固,那此环节就是执行脚本进行安全处理。 |
Impact | 影响,主要来描述如果不进行正确配置可能会导致的影响。 |
References | 参考文献。 |
CIS Controls | 此条目对应的CIS control文档的讲解,需要注册后才能下载。 |
使用CIS-CAT扫描工具验证ACK集群的CIS加固效果
如果您想验证ACK集群的CIS加固效果,可以使用CIS官网提供的CIS-CAT工具进行扫描验证。CIS-CAT是一个安全配置评估软件工具,即扫描工具,它能够详细地提供目标系统的评估结果。通过运行该工具,可以得到目标系统在指定CIS Benchmark profile的合规分数,同时还会针对不合规的配置给出修复步骤。更多信息,请参见CIS-CAT工具。
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扫描工具验证Alibaba Cloud Linux 2和Alibaba Cloud Linux 3 ACK集群的CIS加固效果。
Alibaba Cloud Linux 2
- 下载CIS Aliyun Linux 2 Benchmark version 1.0.0,具体操作,请参见下载Alibaba Cloud Linux CIS Benchmarks。
- 登录CIS SecureSuite,注册成为CIS SecureSuite会员,并下载CIS-CAT Pro工具包(Assessor-CLI-v4.0.23.zip)。
- 登录到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)进行扫描。
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
说明-b
:用来选择Benchmark的类型(操作系统和对应的版本类型)。-p
:用来选择扫描的Level,因ACK只对CIS Level 1 Scored进行扫描,因此扫描时选择Level 1。
- 查看扫描结果。扫描结果解释如下。更多信息,请参见CIS-CAT Pro Assessor v4 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。
Alibaba Cloud Linux 3
因为CIS-CAT还没完全支持Alibaba Cloud Linux 3,所以需要用户手动下载Alibaba Cloud Linux 3的XCCDF + OVAL文件,并跳过对linux 3的平台检查。
- 登录CIS WorkBench,单击Export后找到XCCDF + OVAL,单击Download下载XCCDF + OVAL文件。下载完成后解压文件。
解压后的文件如下:
- 登录CIS SecureSuite,注册成为CIS SecureSuite会员,并下载CIS-CAT Pro工具包(Assessor-CLI-v4.0.23.zip)。
- 登录到ACK集群的任一Alibaba Cloud Linux3操作系统的节点。
- 分别执行以下命令安装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
- 执行以下命令,手动修改配置文件来忽略平台检查。
cd Assessor-CLI/config sed -i 's/ignore.platform.mismatch=false/ignore.platform.mismatch=true/g' assessor-cli.properties cd -
- 执行以下命令,使用CIS-CAT Pro工具(Assessor-CLI-v4.0.23.zip)进行扫描。
cp /path/to/CIS_Alibaba_Cloud_Linux_3_Benchmark_v1.0.0-xccdf.xml Assessor-CLI/benchmarks/ cd Assessor-CLI chmod +x ./Assessor-CLI.sh ./Assessor-CLI.sh -b ./benchmarks/CIS_Alibaba_Cloud_Linux_3_Benchmark_v1.0.0-xccdf.xml -p "Level 1" -txt -html
说明-b
:用来选择Benchmark的类型(操作系统和对应的版本类型)。-p
:用来选择扫描的Level,因ACK只对CIS Level 1 Automated进行扫描,因此扫描时选择Level 1。
- 查看扫描结果。扫描结果解释如下。更多信息,请参见CIS-CAT Pro Assessor v4中User Guide Assessor文档的Report部分。
参数 解释 Total # of Results 所选择的Benchmark的加固项总数,CIS Alibaba Cloud Linux 3 Benchmark v1.0.0总共266项。 Total Scored Results 所选Level的Scored项总数,Level 1一共183项。 Total Pass 所选Level的Automated项中当前系统通过的总数,CIS加固的ACK集群每个节点通过的Level 1 Automated项为168项。 Total Fail 所选Level的Automated项中当前系统未通过的总数,CIS加固的ACK集群每个节点未通过的Level 1 Automated项为15项。 Total Error 所选Level的Scored项中扫描脚本执行出错的项,这里CIS-CAT Pro都正确返回,因此结果为0。 Total Unknown 所选Level的Automated项中,CIS-CAT无法判断是否满足安全加固标准的项,这里结果为0。 Total Not Applicable 所选的Benchmark中与当前操作系统不匹配的项。 Total Not Checked 与Total Informational一样同属于Manual。 Total Not Selected 所选Benchmark中未检查的加固项。CIS-CAT Pro对Level 1进行检查,因此这里未检查的加固项为所有的Level 2(共49项)。 Total Informational 需要手动评估是否满足,在所选Level中属于Manual。