1. 鉴定
a) 应识别和验证登录用户。 身份标识必须唯一,身份认证信息必须有复杂性要求并定期更换;
本项需要检查是否需要账户密码才能登录,以及当前密码是否超过8个字符且包含字母、数字和特殊字符。
输入命令检查是否有空密码。 该文件的第二个字段是加密后的密码,如下图所示。 如果为空,则为空密码(*或!!表示用户被锁定):
more /etc/shadow
输入命令查看密码长度和周期更换设置:
cat /etc/login.defs
PASS_MAX_DAYS 99999 :登录密码有效期为99999天
PASS_MIN_DAYS 0 : 登录密码最短使用时间,增加可以防止非法用户短期更改多次
PASS_MIN_LEN 8 : 登录密码最短长度为8位,如果使用pam_cracklib module,那么该参数将不再有效
PASS_WARN_AGE 7 :登录密码过期提前7天提示修改
输入命令查看密码复杂度配置:
cat /etc/pam.d/system-auth
minlen=8 : 新密码最短为八位,由上条可知,以此处密码位数为准
dcredit=-2 : 新密码中最少包含两个数字
ucredit=-1 : 新密码中最少包含一个大写字母
lcredit=-1 : 新密码中最少包含一个小写字母
ocredit=-1 : 新密码中最少包含一个特殊字符
b) 应具有处理登录失败的功能,并应配置并启用结束会话、限制非法登录次数、登录连接超时自动注销等相关措施;
输入以下命令查看登录失败处理功能是否开启:
cat /etc/pam.d/system-auth
onerr=fail 表示定义了当出现错误时的缺省返回值;
even_deny_root 表示也限制root用户;
deny 表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time 表示设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 表示设定root用户锁定后,多少时间后解锁,单位是秒;
输入以下命令检查超时后自动退出功能:
cat /etc/profile
c) 进行远程管理时,应采取必要措施,防止身份信息在网络传输过程中被窃听;
如果操作系统仅在本地或通过KVM等硬件进行管理,则此项是一致的。 如果在远程管理时通过堡垒主机使用SSH或HTTPS协议进行远程管理,则满足本评测项的要求。 检查系统自带的网络登录方式,是否使用了安全SSH协议,并且禁用了明文传输协议:
1)检查SSH服务是否开启
ps -e | grep sshd
2)检查SSH服务对应的端口是否开放
netstat -an|grep 22
3)检查服务状态
systemctl status telnet.socket
d) 应使用密码、密码学、生物识别等两种或多种认证技术的组合来对用户进行认证,并且至少其中一种认证技术应使用密码学来实现。
Linux操作系统目前只有“用户名+密码”一种认证方式。 目前最常见的一种是使用数字证书Ukey来实现二因素认证。 或者使用堡垒主机进行多重身份验证,降低安全风险。
2. 访问控制
a) 应为登录用户分配账户和权限;
检查重要文件和目录的权限设置是否合理。 Linux系统有四种文件操作权限:read(r,4); 写(w,2); 执行(x,1); 空(-,0)。 权限分为所有者(所有者)、组、其他用户和用户组的权限。 配置文件权限值不能大于644,可执行文件权限值不能大于755。
ls -l 文件名
b) 重命名或删除默认账户,并修改默认账户的默认密码;
输入命令查看是否有adm、lp等默认无用用户。 同步、停止、邮件、uucp、、游戏、ftp 等:
more /etc/shadow
root作为Linux系统重要的默认用户,一般需要禁止远程登录。 检查命令如下:
more /etc/ssh/sshd_config
上图中参数为“否”时满足要求。
c) 多余的、过期的账户应及时删除或停用,避免共享账户的存在;
根据上一项检查结果,与合作人员面谈各活跃账户的使用情况。 默认帐户游戏、新闻、ftp、1p 等应禁用,特权帐户应停止并删除。
d) 应授予管理用户所需的最低权限,实现管理用户的权限分离;
在实际生产中,Linux系统很难完全满足这一要求,因为超级管理员用户root一旦被禁用,就会影响系统和应用程序的正常使用。 但是,具有 root 级别权限的帐户仍应受到严格限制,其他用户只能通过使用 sudo 来授予 root 级别权限。 使用以下命令检查哪些帐户被授予根级别权限:
cat /etc/sudo.conf
e) 访问控制策略应由授权主体配置,访问控制策略规定了主体对客体的访问规则;
对于Linux主机来说,系统管理员通过root账户给其他账户分配权限,因此本项主要检查权限分配是否合理以及访问控制策略配置是否满足安全要求。
f) 访问控制的粒度应为主体为用户级或进程级,客体为文件级或数据库表级;
Linux系统对一些默认帐户和系统文件分配了不同的权限,这意味着主体达到了用户级别,客体达到了文件级别。 此项主要检查新创建的用户和文件是否权限过多或权限滥用。 健康)状况。
Linux操作系统默认关闭该服务。 开启后会影响系统和业务应用的正常使用。 强制访问控制也可以通过操作系统内核的二次开发或者使用加固软件来实现,但现阶段在实际评估中基本没有遇到一致的情况。
more /etc/selinux/config
3、安全审计
a) 开启安全审计功能,审计覆盖每一个用户,对重要用户行为和重要安全事件进行审计;
输入view log 命令可以看到系统日志默认没有开启:
service syslog status
查看审计服务状态,发现审计服务默认开启:
service auditd status
b) 审核记录应包括事件的日期和时间、用户、事件类型、事件是否成功以及其他与审核相关的信息;
输入以下命令检查日志信息是否足够详细:
cat /etc/rsyslog.conf
输入以下命令查看默认启用审核:
auditctl -s
输入以下命令可以看到审计的默认运行规则没有配置:
auditctl -l
c) 审计记录应定期保护和备份,以避免意外删除、修改或覆盖;
检查审计记录保存目录,是否可以被普通用户轻易删除,与管理员面谈审计记录的保护措施和备份策略,检查审计记录的备份时间是否不少于六个月。
d) 应保护审核过程免遭未经授权的中断。
测试使用非审计管理员中断审计流程能否成功,并询问并检查是否安装了第三方审计流程保护软件。
4、入侵防御
a) 遵循最小安装原则,仅安装所需的组件和应用程序;
检查系统当前版本以及安全补丁是否及时安装:
uname -a
查看操作系统中已安装的软件包并检查当前不需要的组件和应用程序:
yum list installed
b) 关闭不必要的系统服务、违约份额和高风险端口;
输入以下命令查看系统当前运行的服务:
systemctl list-unit-files | grep enable
输入以下命令查看系统当前开放的端口:
netstat -ntlp
Linux系统本身没有默认共享。 要创建共享文件夹,您需要安装 samba。 输入以下命令检查samba是否已安装:
rpm -qi samba
c) 应通过设置终端接入方式或网络地址范围来限制通过网络管理的管理终端;
在Linux系统中,/etc/hosts.allow控制可以访问本机的IP地址,/ete/hosts.deny控制禁止访问本机的IP地址。 实际评测中,基本如下图所示。 这里不做配置,大多限制在防火墙或者堡垒机上。
cat /etc/hosts.allow
cat /etc/hosts.deny
d) 应提供数据有效性校验功能,确保通过人机界面或通讯接口输入的内容符合系统设置要求;
该项目主要针对应用系统。 主机不涉及人机界面输入或通讯接口输入控制,故本项不适用。
e) 经过充分的测试和评估,能够发现可能的已知漏洞并及时修补;
这一项需要结合漏扫描情况、初次测试是否发现高危漏洞、复测后是否对高危漏洞进行了修补。 输入以下命令查看补丁更新状态以及最新补丁是否及时安装:
rpm -qa grep patch
f) 应能够检测对重要节点的入侵,并在发生严重入侵时发出警报。
检查操作系统是否安装了入侵检测软件,如:by、ITA by等。检查网络拓扑图,看网络层面是否部署了入侵检测系统()。
5. 恶意代码防范
应采用防范恶意代码攻击的技术措施或主动免疫可信验证机制,及时识别入侵和病毒行为并有效拦截。
市场上针对Linux操作系统的防病毒软件很少。 在实际评测过程中,我们基本没有遇到安装了杀毒软件的Linux主机。 但由于Linux系统本身的安全性较高,此项不符合要求,不被判定为高危问题。
6. 可信验证
基于信任根,可以对计算设备的系统启动程序、系统程序、重要配置参数和应用程序进行可信验证,并可以在应用程序的关键执行环节进行动态信任验证。 当检测到其可信度受到损害后,发出警报,并将验证结果形成审核记录发送至安全管理中心。
这个项目目前还没有遇到满足要求的情况,因为在硬件层面需要使用可信根芯片或者硬件,并且可以修改应用程序来测试系统是否可以进行可信验证。 守信理念尚未成熟落实到实际生产生活中,所以这一项的要求是加分,达不到不扣分。
7、数据备份与恢复
检查拓扑图和资产表,了解重要数据处理涉及的主机是否有热备机或集群。
8. 剩余信息的保护
a) 应保证标识信息所在的存储空间在释放或重新分配前被完全清除;
系统默认此项。
b) 应确保包含敏感数据的存储空间在释放或重新分配之前被完全清除。
系统默认此项。
本文重点演示Linux主机评估中需要检查的配置项。 诸如“个人信息保护”等明显不适用于主机级别的项目,文中并未列出。 “数据完整性和保密性”需要验证。 检查并查看配置文档。 特别需要指出的是,MD5算法作为验证算法可以保证完整性,但作为加密算法时却不能保证机密性。 类似的不安全加密算法包括DES、SHA-1和RSA(小于2048位)。