Linux测评指导书 2.docx
《Linux测评指导书 2.docx》由会员分享,可在线阅读,更多相关《Linux测评指导书 2.docx(25页珍藏版)》请在冰豆网上搜索。
Linux测评指导书2
Linux操作系统测评指导书
测评指标
测评项
测评实施过程
预期结果
结果记录
身份鉴别
a)应对登录操作系统和数据库系统的用户进行身份标识和鉴别;
采用查看方式,在root权限下,使用命令more、cat或vi查看/etc/passwd和/etc/shadow文件中各用户名状态。
1)以root身份登录Linux。
2)查看Linux密码文件内容。
#cat/etc/passwd
root:
x:
0:
0:
root:
/root:
/bin/bash
bin:
x:
1:
1:
bin:
/bin:
/sbin/nologin
daemon:
x:
2:
2:
daemon:
/sbin:
/sbin/nologin
adm:
x:
3:
4:
adm:
/var/adm:
/sbin/nologin
lp:
x:
4:
7:
lp:
/var/spool/lpd:
/sbin/nologin
sync:
x:
5:
0:
sync:
/sbin/bin/sync
shutdown:
x:
6:
0:
shutdown:
/sbin:
/sbin/shutdown
halt:
x:
7:
0:
halt:
/sbin:
/sbin/halt
mail:
x:
8:
12:
mail:
/var/spool/mail:
/sbin/nologin
#catetc/shadow
root:
$1$crpkUkzg$hLl/dYWmlwY4J6FqSG2jS0:
14296:
0:
99999:
7:
:
:
bin:
*:
14296:
0:
99999:
7:
:
:
没有密码为空的用户名。
记录:
/etc/passwd、/etc/shadow文件中密码一栏为空的用户名。
b)操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换;
1)以root身份登录进入Linux。
2)查看文件内容。
#more/etc/
PASS_MAX_DAYS90#登录密码有效期90天
PASS_MIN_DAYS0#登录密码最短修改时间,增加可以防止非法用户短期更改多次
PASS_MIN_LEN8#登录密码最小长度8位
PASS_WARN_AGE7#登录密码过期提前7天提示修改
FAIL_DELAY10#登录错误时,等待时间10秒
FAILLOG_ENAByes#登录错误记录到日志
SYSLOG_SU_ENAByes#当限制超级用户管理日志时使用
SYSLOG_SG_ENAByes#当限制超级用户组管理日志时使用
MD5_CRYPT_ENAByes#当使用md5为密码的加密方法时使用
登录密码有效期为90天、登录密码修改时间为3天、密码最小长度为8位、登录密码过期提示为7天、登录错误时,等待时间为10秒等,登录错误记录到日志、限制超级用户管理日志、限制超级用户组管理日志、私用MD5为密码的加密方法等。
记录:
检查方法中列出了与/etc/文件中用户密码相关的一些安全属性的推荐值。
记录内容包括PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_MIN_LEN等。
c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;
1)以root身份登录进入Linux。
2)查看文件内容:
#cat/etc/pam.d/system-auth
#%
#Thisfileisauto-generated.
#Userchangeswillbedestroyedthenexttimeauthconfigisrun.
authrequired
authsufficientnulloktry_first_pass
authrequisiteuid>=500quiet
authrequired
accountrequired
accountsufficientuid<=500quiet
accountrequired
passwordrequisitetry_first_passretry=3
passwordsufficientmd5shadownulloktry_first_passuse_authtok
passwordrequired
sessionoptionalrevoke
sessionrequired
session[success=1default=ignore]serviceincrondquietuse_uid
sessionrequired
accountrequired/lib/security/deny=5no_magic_rootreset
用户可尝试登录5次,5次之后,若登录失败,则拒绝该用户访问。
记录:
etc/system-auth文件中是否存在accountrequired/lib/security/deny=5no_magic_rootreset
d)当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听;
1)以root身份登录进入Linux。
2)首先查看是否安装SSH的相应包:
#rpm-aq|grepssh
或查看是否运行了sshd服务:
#service--status-all|grepsshd
3)如果安装则查看相关的端口是否打开:
#netstat-an|grep:
22
4)若未使用SSH方式进行远程管理,则查看是否使用了Telnet方式进行远程管理。
#service--status-all|greprunning查看是否存在Telnet服务。
已安装SSH的相应包,并运行了sshd服务,打开的了22端口,使用了SSH方式进行远程管理,未使用Telnet方式进行远程管理。
不存在Telnet服务。
记录被测服务器使用何种远程登录方式。
如:
“使用SSH远程登录方式”。
若被测服务器同时开启了Telnet服务和SSH服务,则同时记录。
若服务器不接受远程管理,则无需记录此项内容。
e)应为操作系统和数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性。
1)以root身份登录进入Linux。
2)查看文件内容。
#cat/etc/passwd
root:
x:
0:
0:
root:
/root:
/bin/bash
bin:
x:
1:
1:
bin:
/bin:
/sbin/nologin
daemon:
x:
2:
2:
daemon:
/sbin:
/sbin/nologin
adm:
x:
3:
4:
adm:
/var/adm:
/sbin/nologin
lp:
x:
4:
7:
lp:
/var/spool/lpd:
/sbin/nologin
sync:
x:
5:
0:
sync:
/sbin/bin/sync
shutdown:
x:
6:
0:
shutdown:
/sbin:
/sbin/shutdown
halt:
x:
7:
0:
halt:
/sbin:
/sbin/halt
mail:
x:
8:
12:
mail:
/var/spool/mail:
/sbin/nologin
这里UID为0的用户必须只有一个。
操作系统的不同用户,具有不同的用户名,不存在多个用户共用一个账户的情况。
记录/etc/passwd文件中有相同用户名的账户。
f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。
访谈系统管理员,询问系统有没有做加固,除口令之外有无其他身份鉴别方式,如是否使用令牌等,并对其进行验证。
系统使用令牌或证书失效了双因子鉴别。
若有出用户名/口令外的其他鉴别方法,则记录这种方法,否则记录“只适用用户名/口令”。
访问控制
a)应启用访问控制功能,依据安全策略控制用户对资源的访问;
1)以root身份登录进入Linux。
2)使用“ls–l文件名”命令,查看重要文件和目录权限设置是否合理,如:
#ls-l/etc/passwd#744。
应重点查看以下文件和目录权限是否被修改过。
/etc/
/etc/
/etc/audit/*
/etc/
/etc/*
/etc/*
/etc/
/etc/*
/etc/*
/etc/*
/etc/crontab
/etc/group
/etc/gshadow
/etc/hosts
/etc/inittab
/etc/
/etc/
/etc/*
/etc/passwd
/etc/*
/etc/securetty
/etc/securetty/opasswd
/etc/shadow
/etc/ssh/ssh-config
/etc/ssh/sshd-config
/etc/stunnel/*
/etc/sysconfig/*
/etc/
/etc/vsftpd/
/etc/
/var/log/*
/var/log/faillog
/var/log/lastlog
/var/spool/at/*
/var/spool/cron/*
等
重要文件和目录的权限设置合理。
重要文件和目录的权限未被修改过。
文件权限:
记录权限存在问题的目录或文件。
如:
“/etc/passwd文件权限为666”。
默认共享:
记录默认共享是否开启。
b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;
1)以root身份登录进入Linux。
2)使用“ls–l文件名”命令,查看重要文件和目录权限设置是否合理,如:
#ls-l/etc/passwd#744。
应重点查看以下文件和目录权限是否被修改过。
/etc/
/etc/
/etc/audit/*
/etc/
/etc/*
/etc/*
/etc/
/etc/*
/etc/*
/etc/*
/etc/crontab
/etc/group
/etc/gshadow
/etc/hosts
/etc/inittab
/etc/
/etc/
/etc/*
/etc/passwd
/etc/*
/etc/securetty
/etc/securetty/opasswd
/etc/shadow
/etc/ssh/ssh-config
/etc/ssh/sshd-config
/etc/stunnel/*
/etc/sysconfig/*
/etc/
/etc/vsftpd/
/etc/
/var/log/*
/var/log/faillog
/var/log/lastlog
/var/spool/at/*
/var/spool/cron/*
等
根据管理用户的职责,实现了管理用户的权限分栏,如系统管理员具有审计管理员的权限,而审计管理员也不具有系统能够管理员的权限。
记录权限设置不合理的管理用户名。
c)应实现操作系统和数据库系统特权用户的权限分离;
结合系统管理员的组成情况,判定是否实现了该项要求。
本条基本要求是检查是否存在多个管理员共用一个账户的情况。
分两个层次,首先自然人与其管理员账户要做到一一对应,不存在多人共用一个账户的情况。
其次,每个管理员账户应只负责某一方面的内容。
不能同时管理操作系统和数据库。
不存在多人共用一个账户的情况,也不存在一个管理员管理多个方面内容的情况。
若主机运行了数据库,则询问并记录操作系统管理员和数据库系统管理员是否为同一自然人。
若主机未运行数据库,则此项标记为不适用。
d)应严格限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令;
1)以root身份登录进入Linux。
2)查看Linux密码文件内容。
#cat/etc/shadow
root:
$1$crpkUKZG$hL1/dYWmlwY4J6FqSG2jS0:
14296:
0:
99999:
7:
:
:
drobbins
bin:
*:
14296:
0:
99999:
7:
:
:
说明:
在用户名前没有“#”号,表明其未被禁用;有“#”则表明该用户已被禁用。
默认账户root用户已被禁用。
记录未重命名的默认账户,为禁用的默认账户。
e)应及时删除多余的、过期的帐户,避免共享帐户的存在。
1)以root身份登录Linux。
2)查看Linux密码文件内容。
#cat/etc/passwd
root:
x:
0:
0:
root:
/root:
/bin/bash
bin:
x:
1:
1:
bin:
/bin:
/sbin/nologin
daemon:
x:
2:
2:
daemon:
/sbin:
/sbin/nologin
adm:
x:
3:
4:
adm:
/var/dam:
/sbin/nologin
lp:
x:
4:
7:
lp:
/var/spool/lpd:
/sbin/nologin
sync:
x:
5:
0:
sync:
/sbin:
/bin/sync
shutdown:
x:
6:
0:
shutdown:
/sbin:
/sbin/shutdown
halt:
x:
7:
0:
halt:
/sbin:
/sbin/halt
mail:
x:
8:
12:
mail:
/var/spool/mail:
/sbin/nologin
…
询问系统账户的用途,确认账户是否属于多余的,过期的账户或共享账户名。
不存在多余的、过期的账户或共享账户名。
记录多余的、过期的账户和共享账户名。
f)应对重要信息资源设置敏感标记;
1)查看操作系统功能手册或相关文档,确认操作系统是否具备能对信息资源设置敏感标记的功能。
2)询问管理员是否对重要信息资源设置敏感标记。
操作系统具备能对信息资源设置敏感标记的功能。
管理员对重要信息资源设置了敏感标记。
记录查看和访谈的内容。
g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作;
询问或查看当前的敏感标记策略的相关设置,如:
如何划分敏感标记分离,如何设定访问权限等。
敏感标记的资源,只有具有权限的用户才能访问。
记录查看和访谈的内容。
安全审计
a)审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户;
1)以root身份登录进入Linux。
2)查看服务进程。
系统日志服务
#servicesyslogstatus
#serviceauditstatus
或
#service-status-all|greprunning
3)若运行了安全审计服务,则查看安全审计的守护进程是否正常。
#ps-ef|grepauditd
系统开启了安全审计功能。
审计范围覆盖到了服务器和重要客户端上的每个操作系统用户和数据库用户。
记录日志服务和安全审计服务是否运行,若有第三方审计工具或系统则记录其运行状态是否正常。
b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;
1)以root身份登录进入Linux。
2)查看配置。
#grep“@priv-ops”/etc/audit/
#grep“@mount-ops”/etc/audit/
#grep“@system-ops”/etc/audit/
#grep“@file-ops”/etc/audit/
#grep“@open-ops”/etc/audit/
#grep“@execute-ops”/etc/audit/
等。
审计内容中包括了审核账户登录事件、审核账户管理、审核目录服务访问、审核登录事件、审核对象访问、审核策略更改、审核系统事件等内容。
记录相关参数。
如file-ops系统事件审计的文件包括,“mkdir”、“rmdir”、“unlink”、“chmod”、“chown”、“lchown”、“chown32”、“lchown32”。
c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等;
1)使用aucat和augrep工具查看审计日志:
#aucat|tail100#查看最近的100条审计记录。
#augrep-eTEXT–UAUTH_success#查看所有成功PAM授权。
审计日志记录如下:
2005-04-22T17:
06:
35194406058-1execve(“/usr/bin/find”,[“find”,“/usr/lib”,“-name”,“*.jar”],[data,len=0])
2005-4-22T17:
06:
35194416058-1open(“”,O_RDONLY);result=-2[“nosuchfileordirectory”]
2005-4-22T17:
06:
35194426058-1open(“”,O_RDONLY);result=3
2005-04-22T17:
06:
35194436058-1open(“/lib/tls/2.3.2”,O_RDONLY);result=3
审计记录中包括了时间的日期、时间、类型、主体标识、客体标识和结果。
记录查看的审计记录,是否包括日期、时间、类型、主体标识、客体标识和结果等必要的审计要素。
若有第三方审计工具或系统则查看其审计日志是否包括必要的审计要素
d)应能够根据记录数据进行分析,并生成审计报表;
访谈并查看对审计记录的查看、分析和生成审计报表的情况。
提供了一种直观的分析报告及统计报表的自动生成机制,对审计产生的记录数据进行统一管理与处理,并将日志关联起来,保证管理员能够及时、有效地发现系统中各种异常状况及安全事件。
记录访谈内容并对审计记录的查看、分析和生成报表情况进行记录。
如:
“系统自动将日志发到集中审计服务器,由集中审计平台生成审计报表,并自动分析异常行为,且人工定期查看”。
若有第三方审计工具,则记录其相关功能。
e)应保护审计进程,避免受到未预期的中断;
访谈对审计进程监控和保护的措施。
同时查看审计进程的访问权限设置是否合理。
访谈是否有第三方对审计进程监控和保护的措施。
Linux中,Auditd是审计守护进程,syslogd是日志守护进程,这两个进程得到了很好的保护,当事件发生时,能够及时记录时间发生的详细内容。
记录访谈的内容。
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等。
访谈审计记录的存储、备份和保护的措施,如配置日志服务器等。
配置了专门的日志服务器用于存储审计记录,防止非法用户进入系统后清理系统日志和审计日志。
记录日志存储空间大小,更新模式,日志文件权限设置以及是否有日志服务器等相关措施。
剩余信息保护
a)应保证操作系统和数据库系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中;
检查Linux操作系统维护/操作手册,查看其是否明确用户的鉴别信息存储空间以及被释放或再分配给其他用户之前的处理方法及过程。
每个用户有每个用户单独的鉴别信息存储空间,鉴别信息在用户退出或注销后自动进行清理。
记录鉴别信息的存储空间,被释放或再分配给其他用户前的处理方法和过程。
系统内的文件、目录等资源所在的存储空间,被释放或重新分配给其他用户前的处理方法和过程。
b)应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除。
检查Linux操作系统维护/操作手册,系统内的文件、目录等资源所在的存储空间,被释放或重新分配给其他用户前的处理方法和过程。
系统内的文件、目录等资源所在的存储空间,被释放或再分配给其他用户之前进行了完全清楚,避免了缓冲区的溢出。
记录系统内的文件、目录等资源所在的存储空间,被释放或重新分配给其他用户之前的处理方法和过程。
入侵防范
a)应能够检测到对重要服务器进行入侵的行为,能够记录入侵的源IP、攻击的类型、攻击的目的、
攻击的时间,并在发生严重入侵事件时提供报警;
1)访谈并查看入侵检测的措施,如经常通过如下命令查看入侵的重要线索(试图Telnet、FTP等),涉及命令“#more/var/log/secure|greprefused”。
2)查看是否启用了主机防火墙、TCPSYN保护机制等设置。
3)可执行命令:
find/-name-print检查是否安装了以下主机入侵检测软件。
DragonSquirebyEnterasysNetworks、ITAbySymantec、HostsentrybyPsionicSoftware、LogcheckbyPsionicSoftware、RealSecureagentbyISS。
启用了主机防火墙,TCPSYN保护机制等设置。
安装了入侵检测软件,并进行了正确的配置,对发生的安全事件有相关的日志记录,并在发生安全事件时进行报警。
记录访谈和查看的内容,系统管理员查看日志的频率,是否启用并合理配置系统自带防火墙或第三方的防火墙软件,是否部署并合理配置了入侵检测系统,入侵检测系统是否具备了报警功能等。
b)应能够对重要程序的完整性进行检测,并在检测到完整性受到破坏后具有恢复的措施;
访谈是否使用一些文件完整性检查工具或脚本定期对重要文件进行完整性检查,如对比校验值等。
是否对重要的配置文件进行备份,查看备份演示,查看备份后的恢复情况。
使用校验值对重要文件的完整性进行检查。
对重要的配置文件进行了备份,使用备份文件能进行恢复。
记录访谈的内容和备份演示的过程和恢复过程。
c)操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新。
1)系统服务
#service-status-all|greprunning
查看并确认是否已经关闭危险的网络服务如:
echo、shell、login、finger、r命令等。
关闭非必需的网络服务如:
talk、ntalk、pop-2、Sendmail、Imapd、Pop3d等。
2)监听端口
在命令行模式下输入“netstat-an”,查看列表中的监听端口。
3)补丁升级
访谈补丁升级机制,查看补丁安装情况:
#rpm-qa|greppatch。
仅启动了必要的服务和开启了必须的端口,系统补丁通过升级服务器得到更新,已为当前最新的补丁。
记录系统中多余和危险的服务,记录多余的组件、应用程序等。
记录监听状态下的端口。
记录补丁升级方式和已安装最新的补丁名称。
恶意代码防范
a)应安装防恶意代码软件,并及时更新防恶意代码软件版本和恶意代码库;
查看系统中安装了什么防病毒软件。
询问系统管理员是否经常更新病毒库。
查看病毒库的最新版本更新日期是否超过一星期。
系统中安装了防病毒软件,病毒库经常更新,且最新版本不超过一星期。
记录系统是否安装了防病毒软件,防病毒软件的名称、版本、最新病毒库更新时间,且确认病毒库的最新版本更新日期距离检查当日是否超过一个星期。
b)主机防恶意代码产品应具有与网络防恶意代码产品不同的恶意代码库;
询问系统管理员网络防病毒产品和主机防病毒产品分别采用什么病毒库。
查看这两种产品的病毒库版本。
网络防病毒产品和主机防病毒产品采用了不同的病毒库。
记录网络防病毒产品型号和病毒库最新更新日期,以及是否与主机防病毒产品使用同一病毒库等。
c)应支持防恶意代码的统一管理。