一、身份鉴别
测评项:
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。
测评方法:
- 使用root权限的账户登录操作系统后,使用命令cat 查看/etc/shadow文件,核查第二列是否为空,为空即存在空口令账户。
- 使用命令cat查看/etc/login.defs文件,查看是否设置密码长度和定期更换要求,使用命令cat查看/etc/pam.d/system-auth文件。查看密码长度和复杂度要求,记录PASS MAX_DAYS、PASS MIN_DAYS、PASS MIN_LEN、PASS WARN_AGE。
扩展:
1./etc/shadow文件共包含9个字段,分别是用户名、加密后的用户密码、自上次修改密码后过去的天数(自1970年1月1日开始计算)、多少天后可以修改密码、多少天后必须修改密码、密码过期前多少天提醒更改密码、密码过期后多少天禁用用户账户、用户被禁用的日期(自1970年1月1日经过的天数)、预留字段以备未来使用
2./etc/shadow文件第二个字段的值为加密后的用户密码,正常情况为一长串字符串,异常情形如下:
①为空,前后两个冒号之间无内容(::),表示该账户无密码;
②为"!",即(:!:),表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式;
③为"*",即(:*:),表示无法使用,和"!"效果是一样的。
④以"!"或"!!"开头,则也表示该用户被锁。
⑤为"!!",即(:!!:),表示该用户从来没设置过密码。
3.密码长度和复杂度要求建议值:
PASS_MAX_DAYS:90
PASS_MIN_DAYS:1
PASS_MIN_LEN:8
PASS_WARN_AGE:5
4.在/etc/pam.d/system-auth中添加一行:auth required pam_tally2.so onerr=fail deny=3 unlock_time=30 even_deny_root root_unlock_time=100
测评项:
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。
测评方法:
1.(方法1)查看cat /etc/pam.d/system-auth文件,是否使用pam_tally.so木块跟踪不成功的登录次数。查看2条配置相关锁定策略:
auth required /lib/security/pam_tally.so onerr=fail no_magic_root和
account required /lib/security/pam_tally.so deny=10 no_magic_root reset
2.(方法2)查看cat /etc/pam.d/system-auth文件,是否使用pam_tally2.so模块跟踪不成功的登录次数。查看1条配置相关锁定策略:
auth required pam_tally2.so deny=10 onerr=fail even_deny_root unlock_time=300 root_unlock_time=100(配置在文件第二行)
3.以上方法只是限制用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要修改sshd文件,cat /etc/pam.d/sshd
auth required pam_tally2.so deny=10 unlock_time=300 even_deny_root root_unlock_time=100(配置在文件第二行)
4.查看系统是否配置操作超时锁定,检查/etc/profile设置TMOUT是否不大于900秒(若没有TMOUT字段,需要自己加上,赋值300)
查看/etc/ssh/sshd_config的ssh登录超时策略:
ClientAliveInterval 60
ClientAliveCountMax 3
测评项:
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。
测评方法:
应核查是否采用加密等安全方式对系统进行远程管理,防止鉴别信息在网络传输过程中被窃听,询问并验证是否关闭了Telnet、FTP等服务,是否使用ssh加密协议进行远程登录和管理
1.telnet,ftp服务:netstat -a | grep telnet,netstat -a | grep ftp输出为空,表示没有开启该服务
2.ps aux | grep telnet,ps aux | grep rlogin,ps aux | grep ftp查看是否开启telnet、rlogin、ftp
3.输入:rpm -aq|grep ssh,rpm -aq|grep telnet,rpm -aq|grep vsftp查看是否安装了ssh、telnet、ftp等相应的包
4.输入:netstat -an 或 lsof -i:21、lsof -i:22、lsof -i:23等命令查看21(FTP)、22(SSH)、23(Telnet)端口运行情况
测评项:
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少使用密码技术来实现
测评方法:
1.查看和询问系统管理员在登录操作系统的过程中使用了哪些身份鉴别方法,是否采用了两种或两种以上组合的鉴别技术,如口令、数字证书UKey、令牌、指纹等,是否有一种鉴别方法在鉴别过程中使用了密码技术
2.记录系统管理员在登录操作系统使用的身份鉴别方法,同事记录使用密码的鉴别方法。
二、访问控制
测评项:
a)应对登录的用户分配账户和权限;
测评方法:
1.应核查是否为用户分配了账户和权限及相关设置情况,查看cat /etc/group,检查各用户组内的用户情况,确认root组内仅有root用户
2.应核查是否已禁用或限制匿名、默认账户的访问权限;应禁止root直接远程登录ssh,查看cat /etc/ssh/sshd_config的PermitRootLogin no|yes设置为no
3.应禁止root直接远程登录telnet,查看cat /etc/securetty文件中的pts0-pts3全部注释
判定说明:
1.未提供权限列表,但不同的用户使用不同的账户登录系统结果判定为符合
2.多人仅设置一个root账户结果判定为不符合
扩展:
1./etc/group中总共有4个字段,其含义分别为:用户组名、用户组密码、用户组GID、用户组下包含的用户名
2./etc/securetty文件规定了root用户可以从哪些tty设备登录,登录程序(通常是/bin/login)需要读取/etc/securetty文件;列出来的tty设备都是允许的,注释掉或是在这个文件中不存在的都是不允许root登录的(只能以普通用户登陆)
3./etc/securetty值类型:①tty:终端 ②pts:伪终端 ③console:当前的控制台 ④vc:visual console虚拟控制台 ⑤vt:虚拟终端 ⑥hvc ⑦hvsi ⑧xvc等
测评项:
b)应重命名或删除默认账户,修改默认账户的默认口令;
测评方法:
1.应核查是否已经重命名默认账户或默认账户已被删除,检查/etc/passwd文件,查看是否启用默认账户,检查/etc/passwd文件对不启用的用户是否nologin或以#号标注
2.应检查是否已修改默认账户的默认密码,查看是否存在如:root/root,oracle/oracle等用户
3.是否存在空密码或默认密码账户,查看/etc/shadow文件,询问相应账户是否为过期、多余账户,查看/etc/passwd文件各用户第二字段是否不为空,/etc/shadow文件中密码字段是否不为空
测评项:
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
测评方法:
1.应检查是否不存在多余或过期的账户,管理员用户与账户之间是否一一对应;
2.应验证多余或过期的账户是否被删除或停用;
测评项:
d)应授予管理用户所需的最小权限,实现管理用户的权限分离;
测评方法:
1.应核查是否进行角色划分;
2.应核查管理用户的权限是否已进行分离;
3.应核查管理用户权限是否为其工作任务所需的最小权限;
4.应访谈是否根据安全策略要求对特权用户进行分离,如可分为系统管理员、安全管理员、安全审计员等,并检查系统各用户所属的权限组。
5.是否不存在除root外的特权用户;
6.检查主机是否部署数据库系统、数据库账户和系统管理员账户的权限是否一致;
7.查看cat /etc/passwd文件中各账户并询问其用途、类别并核对查看用户权限分配表;
8.查看cat /etc/login.defs中,是否具备配置SU_WHEEL_ONLY yes,且wheel组中仅存在允许su的用户。
测评项:
e)应由授予主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
测评方法:
1.应核查是否由授权主体(如管理用户)负责配置访问控制策略;
2.应检查是否由主机安全策略说明文件;
3.应核查授权主体是否依据安全策略配置了主体对客体的访问规则;
4.应测试验证用户是否有可越权访问情形。
测评项:
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
测评方法:
1.应核查访问控制策略的控制粒度是否达到主体为用户级或进程级,客体为文件、数据库表、记录或字段级;
2.系统umask应设置为:022,输入umask查看;
3.查看关键目录/文件的权限,包括操作系统文件、数据库配置文件、应用系统/中间件的配置文件/目录:
采用 ls -l 查看关键系统文件(具体目录根据系统不同)权限:/etc/passwd; /etc/shadow; /etc/group; /etc/xinted.conf; /etc/sudoers; /etc/messages; httpd.conf; httpd-mpm.conf; /conf/tomcat-users.xml; /conf/web.xml; /conf/server.xml; /etc/my.cnf; /var/mysqllog/logbin.log; (oracle安装目录)/rdbms/admin/utlpwdmg.sql
4.检查ACL文件,采用getfacl查看文件访问控制列表;
5.查询系统中开启的服务。检查netstat -ltunp(-t列出tcp数据,-u列出udp数据,-l列出正在监听的网络服务,-n用端口号来显示服务,而不是用服务名,-p列出服务的进程ID(PID))
6.应对不需要的服务等进行禁用:redhat使用chkconfig --list查看 或使用setup --> system services查看,建议关闭的服务:Finger,telnet,ftp,sendmail,tftp,rlogin等
7.检查/etc/inetd.d/(或/etc/xinetd.d/)目录中的配置文件,禁用不必要的xinetd/inetd启动服务,不需要使用时建议关闭的服务如下:telnet,tftp,rlogin等,查看其具体配置中disable属性被设置为yes
测评项:
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
测评方法:
1.应核查是否对主体、客体设置了安全标记;
2.询问主机管理员是否定义了敏感标记资源的访问策略;
3.查看有敏感标记的重要信息资源是否依据访问策略设置了严格的访问权限;
4.应测试验证是否依据主体、客体安全标记控制主体对客体访问的强制访问控制策略。