1. 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
(1) 对登录用户进行身份标识和鉴别,即登录时需要账号密码。
-- win+R,输入netplwiz,按下列指示勾选内容:
(2) 身份标识具有唯一性,不同用户之间账号不能一样
(3) 身份鉴别信息具有复杂度并且定期更换
一般指的是密码,应该设置密码策略,规定密码形式、长度、至少更改时间等。
-- 计算机管理-本地用户和组-用户,关闭密码永不过期。
-- 控制面板->管理工具->本地安全策略->账户策略->密码策略。
笔者的win10家庭版没有本地组的概念,不能操作演示
下面是win2008虚拟机演示:
搜索计算机管理-本地用户和组:
2. 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
3. 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听
远程管理一般是使用远程桌面或第三方软件,第三方软件按实际情况判断。若使用远程桌面,则必须关闭telnet。
windows搜素框搜索“windows功能”:
4. 应采用口令 、 密码技术 、 生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别 , 且其中一种鉴别技术至少应使用密码技术来实现 。
一般情况下windows登录直接输入账户密码就可以了,windows应该做不到(等保下一般针对应用比较多,如果是系统的话就这项不合规了)。
1. 应对登录的用户分配账户和权限
2. 应重命名或删除默认账户,修改默认账户的默认口令
cmd中net user查看用户,看看有没有默认用户:
在win10中,administrator默认密码为空,且无法直接用administrator登录。
WDAGUtilityAccount是防火墙defender专用账号,具有超级管理员权限,这是因为defender运行需要超级管理权限。
3. 应及时删除或停用多余的 、 过期的账户 , 避免共享账户的存在
4. 应授予管理用户所需的最小权限 , 实现管理用户的权限分离
5. 应由授权主体配置访问控制策略 , 访问控制策略规定主体对客体的访问规则 ;
6. 访问控制的粒度应达到主体为用户级或进程级 , 客体为文件 、 数据库表级 ;
7. 应对重要主体和客体设置安全标记 , 并控制主体对有安全标记信息资源的访问不涉及;
8. 其他;
禁用GUEST:
net user GUEST /active:no
1. 应启用安全审计功能 , 审计覆盖到每个用户 , 对重要的用户行为和重要安全事件进行审计。
2. 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
3. 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
-- 看一下审计记录文件,是不是可以被非授权用户删除,再确认是否定期备份。
-- 设置日志不被覆盖。
4. 应对审计进程进行保护,防止未经授权的中断。
1. 应遵循最小安装的原则 ,仅安装需要的组件和应用程序
这个需要结合控制面板中程序与功能的内容,与客户进行访谈。
2 应关闭不需要的系统服务、默认共享和高危端口
查看系统服务:控制面板-系统安全-管理工具:
一般来说,telnet会允许远程终端访问服务器,而IIS是应用服务器或网站服务器必须的,如果没有相关服务,这两个应该关闭。
默认共享:
此服务关闭则所有共享服务都会关闭 。
net share查看开启的共享:
在计算机管理中查看共享文件:
默认共享名后面会有一个$,这代表它是一个隐藏共享:
net share IPC$ /delete 删除共享
IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。
netstat -ano查看开放端口:
常见的高危端口:
3. 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制
如果有第三方远程桌面应用,则按实际设置。
4. 应提供数据有效性检验功能 , 保证通过人机接口输入或通过通信接口输入的内容符合系统设
定要求 ;
5. 应能发现可能存在的已知漏洞 , 并在经过充分测试评估后 , 及时修补漏洞 ;
6. 应能够检测到对重要节点进行入侵的行为 , 并在发生严重入侵事件时提供报警;
7. 其他:补丁管理;
应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为 , 并将其
有效阻断。
刚刚直接看有没有安装杀毒软件,是否为最新版本。
确保系统磁盘根分区已使用空间维持在80%以下:
1. 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
root权限打开etc/shadow, 查看第二列的密码是否为空,查看是否有相同标识的账户。
其他做法参考:
--vim打开etc/passwd
这一行有x则开机后需要输入密码。
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义为:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
打开etc/login.defs,查看密码是否设置定期更换和最小长度限制。
密码复杂度:
打开etc/pam.d/system-auth,在system.auth中添加,我们设置新密码不能和旧密码相同,同时新密码至少8位,还要同时包含大字母、小写字母和数字。
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
另外,也可以这样设置:编辑 /etc/security/pwquality.conf,把 minlen(密码最小长度)设置为9-32位,把 minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如:
minlen=10
minclass=3
在Ubuntu中没有system-auth
先安装cracklib模块:
sudo apt-get install libpam-cracklib
然后打开etc/pam.d/common-password:
2. 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
-- 本地登录失败处理
编辑/etc/pam.d/system-auth,增加:
auth required /lib/security/pam_tally.so onerr=fail no_magic root
account required /lib/security/pam_tally.so deny=3 no_magic root reset
--在Ubuntu中打开etc/pam.d/login
添加:
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
--远程登录设置
可编辑etc/pam.d/sshd:
跟上面一样设置。
加入下面的内容,表示当密码输入错误达到3次,就锁定用户150秒,如果root用户输入密码错误达到3次,锁定300秒。锁定的意思是即使密码正确了也登录不了。
auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time=300
--历史命令条数、登录超时时间
编辑etc/profile:
3. 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听
--若操作系统只在本地管理或通过KVM(键鼠显示器)等硬件方式管理则该项符合
--在远程管理时如通过堡垒机采用SSH、HT
V
TPS协议进行远程管理则满足本测评项要求
--是否使用安全的SSH服务
ps -e | grep sshd
--ssh服务对应端口有没有打开
netstat -an | grep 22
--shh未使用,则检查是否禁用未加密的telnet
systemctl status telnet.socket
service --status-all | grep running
4. 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
Linux中一般不涉及多因子认证,需要访问管理员是否采用ukey证书或借助堡垒机完成多因子认证。
1. 应对登录的用户分配账户和权限
ls -l 文件名 查看权限分配是否合理:
2. 应重命名或删除默认账户,修改默认账户的默认口令
--more etc/shadow查看是否存在adm、 lp. sync、 shutdown、 halt.、mail、 uucp、operator,、games.、gopher ftp等默认的、无用的用户。
--检查root是否禁止远程登录
more etc/ssh/sshd_config:
permitRootLogin为no时符合。
3. 应及时删除或停用多余的、过期的账户,避免共享账户的存在
检查:
more etc/shadow
默认账户games、news、 ftp、 1p等应被被禁用,特权账号halt、shutdown应被删除。
4. 应授予管理用户所需的最小权限,实现管理用户的权限分离
查看etc/passwd的非默认账户,询问分配的权限。
查看etc/sudo.conf,查看root权限分配给哪些用户。
5. 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则
Linux中授权主体是root账户,只需访谈访问控制策略配置是否安全合规。
6. 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级
linux系统为用户和文件都有权限分配,粒度已达到主体为用户级,客体为文件级。
ls -l 文件名查看分配权限是否合理。
7. 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
这个一般要借助第三方软件实现。
1. 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
--查看是否运行安全审计服务:
service auditd status
默认应该是开启的 不知道为什么我的kali没有开启(kali没有audit模块,需要安装)。
--如果已运行安全审计服务,查看进程是否在:
如果没有运行系统的安全审计服务,查看是否有第三方审计工具。
--查看系统日志服务是否开启:
service syslog status
2. 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
--查看日志记录是否详细:
tail -5 var/log/audit/audit.log
一些问题:
*安装audit
*权限问题:
*切换成root:
3. 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等
访谈是否有日志服务器,日志服务器是否正常运行。
4. 应对审计进程进行保护,防止未经授权的中断
测试非审计管理员是否可以中断审计进程,查看其审计权限是否合理。
1. 应遵循最小安装的原则,仅安装需要的组件和应用程序
查看安装的是否有不需要的应用或组件:
yum list installc
2. 应关闭不需要的系统服务、默认共享和高危端口
查看服务:
systemctl list-unit-files | grep enable
查看端口:
netstat -ntlp
3. 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制
这两个文件分别对允许和拒绝进行配置:
4. 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求
不涉及。
5. 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞
结合漏扫。
6. 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警
查看是否安装入侵检测软件。