您可以在ACK集群中启用CIS加固功能,提升ACK集群所有节点的操作系统的安全性。本文介绍ACK基于Alibaba Cloud Linux 2、Alibaba Cloud Linux 3实现CIS安全加固以及如何配置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 Alibaba Cloud Linux (Alinux) 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。
关于Alibaba Cloud Linux 2和Alibaba Cloud Linux 3的Benchmark文件下载和更多信息,请使用CIS账号登录以下链接查看:
加固项分类说明
CIS Alibaba Cloud Linux 2 Benchmark v1.0.0
CIS Alibaba Cloud Linux 2 Benchmark v1.0.0一共包含204项,按照每一项所处的安全等级分为Level 1(168项)和Level 2(36项)。其中Level 1与Level 2的主要区别如下:
Level 1:此加固条目是基础项加固且不会带来较大的性能影响。
Level 2:此条目适用于安全性更高的场景,且可能会对系统带来性能开销。
此外,CIS Alibaba Cloud Linux 2 Benchmark从计分(Scoring Information)的维度分为了Scored和Not Scored两类,其中:
Scored:意味着此条目会纳入计分项,如果验证系统是安全的,则加分,如果不安全,则减分。
Not Scored:意味着无论是否安全,都不纳入计分项,即不增减分。
综上,CIS Alibaba Cloud Linux (Alinux) 2一共204项,可以分为四类:
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 Scored项进行安全加固。
CIS Alibaba Cloud Linux 3 Benchmark v1.0.0
CIS Alibaba Cloud Linux 3 Benchmark v1.0.0是最新的CIS Alibaba Cloud Linux 3 Benchmark。它一共包含266项,按照每一项所处的安全Level分为Level 1(217项)和Level 2(49项)。其中Level 1与Level 2的主要区别如下:
Level 1:此加固条目是基础项加固且基本不会带来明显的性能影响。
Level 2:此条目适用于安全性更高的场景,且可能会对系统带来性能开销。、
此外,CIS Alibaba Cloud Linux 3 Benchmark从计分(Scoring Information)的维度分为了Automated和Manual两类,其中:
Automated:意味着此条目会纳入计分项,如果验证系统是安全的,则加分,如果不安全,则减分。
Manual:意味着无论是否安全,都不纳入计分项,即不增减分。
综上,CIS Alibaba Cloud Linux 3一共266项,可以分为四类:
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
创建ACK集群时,启用CIS加固,并将操作系统设置为Alibaba Cloud Linux 2.1903。具体操作,请参见创建集群。
配置后,集群在创建时会自动配置对应的CIS加固项,使得ACK集群所有节点的Alibaba Cloud Linux 2镜像满足CIS Alibaba Cloud Linux (Alinux) 2 Benchmark version 1.0.0中大部分Level 1 Scored项的加固要求。关于满足的加固项,请参见下文ACK CIS加固集群满足的CIS Level 1加固项清单。
为了满足CIS Level 1的加固要求,ACK会在CIS加固的Alibaba Cloud Linux 2操作系统中默认创建ack_cis这个普通用户。
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加固集群满足的CIS Level 1加固项清单。
ACK CIS加固集群满足的CIS Level 1加固项清单
Alibaba Cloud Linux 2
经过对CIS Alibaba Cloud Linux (Alinux) 2 Benchmark version 1.0.0中所有Level 1 Scored(共145项)进行分析和测试,容器服务ACK团队对除下表所列的17项以外的128项(88%以上)进行了安全加固。
加固项 | 未加固的原因 |
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) | 扫描脚本有误, |
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管控逻辑。 |
您可以参考CIS Alibaba Cloud Linux (Alinux) 2 Benchmark version 1.0.0手册中的以下条目,修复ACK集群中没修复的CIS Level 1 Scored项。根据以下内容中的Remediation部分进行修复,然后按照Audit检查您的修复是否生效。
条目 | 描述 |
Profile Applicability | 该项属于Level 1还是Level 2。 |
Description | 加固条目的简单介绍。 |
Rationale | 用于描述条目的细节和背景,告诉读者这么加固的意义和原因。 |
Audit | 关键项,用于判断检测系统是否达标的脚本。根据此脚本的运行返回值来判断是否需要加固。 |
Remediation | 关键项,如果Audit环节判断系统需要进行加固,那此环节就是执行脚本进行安全处理。 |
Impact | 影响,主要来描述如果不进行正确配置可能会导致的影响。 |
References | 参考文献。 |
CIS Controls | 此条目对应的CIS control文档的讲解,需要注册后才能下载。 |
Alibaba Cloud Linux 3
经过对CIS Alibaba Cloud Linux 3 Benchmark v1.0.0中所有Level 1 Automated(共183项)进行分析和测试,我们对除下表所列的15项以外的168项(91.8%)进行了安全加固。
加固项 | 未加固的原因 |
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管控逻辑。 |
您可以参考CIS Alibaba Cloud Linux 3 Benchmark v1.0.0手册中的以下条目,修复ACK集群中没修复的CIS Level 1 Automated项。根据以下内容中的Remediation部分进行修复,然后按照Audit检查您的修复是否生效。
条目 | 描述 |
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 Alibaba Cloud Linux (Alinux) 2 Benchmark version 1.0.0。
登录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 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。