安全检查与加固

  • A+
所属分类:安全文章



0x01 前言


这篇水文主要记录了去一些单位进行安全评估及加固的一般流程和相关检查点及命令。一般大厂都有相关完整的资料和固定流程,这里所写的可能并不全面,不过在没做过的情况下也能参考参考。

如果有文中有错误,请及时联系指出。有不明白的地方也可以联系交流哟。



0x02 一般流程


①通常需要先签订保密协议,扫描免责协议等。有的特殊客户还会要求考试之类的。

②确定资产范围及安全评估范围,问询历史评估资料,台账等

③资产梳理 & 资产梳理报告

④资产安全评估

⑤风险评估报告

⑥资产安全加固

⑦安全加固报告



0x03 资产梳理


3.1 客户信息梳理

安全检查与加固

3.2 网络拓扑梳理

结合历史网络拓扑梳理现在的网络拓扑,并根据客户要求汇总网络拓扑

下面是梳理绘图时注意的点

  • 应标注目标系统的外部边界连接情况

  • 区域划分

  • 设备标识号和资产清单相对应

  • 不同网络接入区

  • 网络、安全、服务器等应用设备图标

3.3 网络及边界梳理

安全检查与加固

3.4 网络设备表 & 安全设备表 & 服务器(储存)设备表

内容都大差不差,根据情况删减即可。服务器需要添加操作系统栏,储存设备需要添加数据库系统,另外IP在填写时,需要加上掩码

安全检查与加固

3.5 机房机柜图

尽量添加上颜色,可以更为清楚直观

安全检查与加固

3.6 对外应用服务梳理

安全检查与加固



0x04 资产安全评估


这一部分完全可以按照等保要求,对服务器、网络设备、安全设备进行安全检查加固的一套来进行,在客户现场最主要的就是记录拍照。往往检查项较多,都是一些工具人的活,一般按照重要程度按需检查。服务器主机主要检查点就账户策略,漏洞补丁,防火墙,高危端口,日志,主机安全软件等;安全设备主要检查console口是否配置口令,是否禁用多点登录,是否正确启用安全规则,是否关闭SNMP服务等,规则库是否是最新等;关于规则是否配置正确没有固定说法,防火墙高危端口封禁,WAF启用某种攻击策略,IDS启用记录某种事件等,结合设备情况登录进行判断即可。网络设备一般导出个配置就行了,说是检查这检查那,又不能动配置。

4.1 Windows服务器

检查项 具体操作
检查系统补丁及更新状态 打开CMD,输入systeminfo,查看系统ip地址及补丁情况,打开检查更新选项,看是否启用自动更新,最后一次更新时间。
检查是否设置远程登录账号不活动时间 配置方法 进入“控制面板->管理工具->本地安全策略”,在“本地策略->安全选项”:查看是否“Microsoft网络服务器”设置为“在挂起会话之前所需的空闲时间”为15分钟
检查具有共享文件的用户列表 配置建议 进入“控制面板->管理工具->计算机管理”,进入“系统工具->共享文件夹”:查看每个共享文件夹的共享权限。判定条件 查看每个共享文件夹的共享权限仅限于业务需要,不设置成为“everyone”。
检查是否已正确配置“提示用户在密码过期之前进行更改”策略 配置建议 打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略计算机配置Windows设置安全设置本地策略安全选项”,在右边窗格中找到“交互式登录: 提示用户在密码过期之前进行更改”或“交互式登录: 在密码到期前提示用户更改密码”,配置为不小于标准值(注意:标准值为16进制表示)的值。Windows2000中无项。
检查是否开放高危端口 配置建议 运行netstat.exe -an,查看是否开放了高危端口
检查是否安装防病毒软件 配置建议 控制面板->添加或删除程序,是否安装有防病毒软件。打开防病毒软件控制面板,查看病毒码更新日期。判定条件 已安装放病毒软件,病毒码更新时间不早于1个月,各系统病毒码升级时间要求参见各系统相关规定。
检查安全日志文件大小是否满足规定大小 配置建议 进入“控制面板->管理工具->事件查看器->Windows日志”,选择“安全”:查看是否“安全日志”属性中的日志大小设置不大于“${key}B” 。配置建议 进入“控制面板->管理工具->事件查看器->Windows日志”,选择“安全”:设置当达到事件日志大小时“按需求覆盖事件”。
检查是否开启审核账户登录事件 配置建议 进入“ 控制面板->管理工具->本地安全策略->本地策略->审核策略” 检查是否将“审核账号登录事件”设置为“成功”和“失败”都要审核。
检查是否配置日志功能 配置建议 开始->运行-> 执行“ 控制面板->管理工具->本地安全策略->审核策略” 审核登录事件,双击,查看是否设置为成功和失败都审核。
检查是否启用组策略中对Windows系统的审核策略更改 配置建议 进入“控制面板->管理工具->本地安全策略”,在“本地策略->审核策略”中 查看是否“审核策略更改”设置为“成功” 和“失败”都要审核
检查是否修改Administrator帐户名称并且禁用guest(来宾)账号 配置建议:进入 控制面板->管理工具->计算机管理->本地用户和组->用户->Administrator",右击,重命名。配置建议 进入“控制面板->管理工具->计算机管理->系统工具 -> 本地用户和组->用户->Guest属性,勾选“帐户已禁用”。
检查是否已删除或锁定无用账号 配置建议 进入“控制面板->管理工具->计算机管理”,在“系统工具->本地用户和组”:查看是否删除或锁定与设备运行、维护等与工作无关的账号。
检查密码长度及复杂度策略 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->密码策略”:设置密码长度最小值为${key}位 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->密码策略”:查看“密码必须符合复杂性要求”是否选择“已启用”
检查是否对帐户登录失败次数进行限制 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->帐户锁定策略”:帐户锁定阈值:${key}次
检查是否设置帐户口令有效期 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->密码策略”:查看是否“密码最长使用期限”设置为“${key}天
检查对帐户密码的重置是否为最近使用过的密码 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->密码策略”:查看是否“强制密码历史”设置为“记住${key}个密码”
检查是否设置密码使用最短天数 配置建议 进入“控制面板->管理工具->本地安全策略”,在“帐户策略->密码策略”:将“密码最短使用期限”默认的0天修改为${key}天
检查是否已正确配置帐户锁定时间 配置建议 打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略计算机配置Windows设置安全设置帐户策略帐户锁定策略”,在右边窗格中找到“帐户锁定时间”,配置为不小于标准值的值(60)。要配置此设置必须先配置“帐户锁定阈值”。当配置为0时,检测到的实际值为-1。
检查是否已正确配置“复位帐户锁定计数器”时间 配置建议 打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略计算机配置Windows设置安全设置帐户策略帐户锁定策略”,在右边窗格中找到“复位(重置)帐户锁定计数器”,配置为不小于标准值的值。
检查是否禁用远程用户枚举账号名 配置建议 进入“控制面板->管理工具->本地安全策略->本地策略->安全选项”:不允许SAM账号的匿名枚举 开启“不允许SAM账号的匿名枚举”功能 配置建议 进入“控制面板->管理工具->本地安全策略->本地策略->安全选项”:开启“不允许SAM账号和共享的匿名枚举”功能
检查允许访问本地计算机的用户列表 配置建议 进入“控制面板->管理工具->本地安全策略”,在“本地策略->用户权限分配” 查看是否“在本地登录”设置为“指定授权用户”
检查允许访问远程计算机的用户列表 配置建议 进入“控制面板->管理工具->本地安全策略”,在“本地策略->用户权限分配” 查看“从网络访问此计算机”是否设置为“指定授权用户”
防火墙是否开启 进入控制面板 查看windows 防火墙配置
USB 是否已禁用 打开cmd输入gpedit.msc,进入组策略管理器,计算机配置—管理模板—系统—可移动储存访问。将"可移动磁盘:拒绝执行权限","可移动磁盘:拒绝读取权限","可移动磁盘:拒绝写入权限" 启用起来

4.2 linux服务器

检查项 操作
检查是否存在无用账号 检查 /etc/passwd文件属性设置是否为 644:ls -l /etc/passwd,给相关文件配置合理的权限,配置口令文件属性,执行:$ chmod 644 /etc/passwd 查看是否存在可能无用的账号:more /etc/passwd,无用账号类似:uucp nuucp lpd guest printq,判定条件
检查是否存在无用用户组 查看是否存在以下可能无用的用户组:more /etc/group 无用组类似:uucp printq
检查密码长度及复杂度策略 执行:more /etc/login.defs ,检查PASSMAXDAYS/PASSMINLEN/PASSMINDAYS/PASSWARNAGE参数,其中PASSMINLEN ${key} #设定最小用户密码长度为8 位,其中修改其参数使其符合要求 执行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 检查是否存在空口令账号,将口令配置为强口令。创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于${key} 的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。
检查是否指定用户远程登录 限制root 从远程ssh 登录,修/etc/ssh/sshd_config 文件,将PermitRootLogin yes 改为PermitRootLogin no,重启sshd 服务。
检查是否设置帐户口令有效期 编辑/etc/login.defs 文件中指定配置项决定,其中:n PASSMAXDAYS 配置项决定密码最长使用期限;n PASSMINDAYS 配置项决定密码最短使用期限;n PASSWARNAGE 配置项决定密码到期提醒时间。检查方法 ncat /etc/login.defs 查看对应属性值;n“对于采用静态口令认证技术的设备,帐户口令的生存期不长于90 天”项的当前值:表示当前的口令生存期长度。
检查是否存在除root之外UID为0的用户 执行:awk -F: '($3 == 0) { print $1 }' /etc/passwd
检查是否对超时时间进行设置 用cat /etc/bashrc 查看是否有对应配置;export HISTTIMEFORMAT="%F %T"
检查系统磁盘状态 执行:df -k,检查当前系统文件配置情况
端口开放检查 执行netstart -antulp进行端口开放情况查看
系统内核版本检测 执行uname -a进行查看,后期根据版本搜索是否存在安全风险
防火墙是否开启 执行service firewalld status 或 service iptables status
检查是否对syslog登录事件记录 执行cat /etc/syslog.conf 查看是否有#authpriv.* /var/log/secure
| 执行ps -aux观察系统进程,看是否有安全软件或问询管理人员。|

4.3 安全设备

检查项 操作
账户策略检查 检查是否修改默认账户名,检查口令是否符合要求,检查是否存在登录超时
console口是否设置密码 检查console是否设置密码,密码是否符合安全要求
日志功能是否开启 检查日志功能是否开启,是否有有日志采集系统
检查设备安全策略配置是否符合要求 检查设备安全防护策略是否配置开启
检查系统更新时间 检查系统病毒库或者规则库是否是最新版
检查是否禁用多点登录 登录一台设备后,在另外一个终端重新登录,看原账户是否掉线
检查系统不必要的服务 检查是否关闭SNMP、Telnet、SSH等不必要的访问控制手段

4.4 网络设备

检查项 操作
查看系统信息 查看系统信息,版本等
只特定主机允许通过snmp访问 snmp-agent community read XXXX01 acl 2000
配置定时登出 设置超时时间为${超时时间|key}分钟  system-view [Sysname] user-interface console 0 //Or user-interface aux 0 8 [Sysname-ui-console0] idle-timeout ${超时时间|key} 0
检查不必要的服务 查看FTP、TFTP服务是否开启 undo ftp server 关闭FTP服务
检查调试信息是否关闭 查询debugging相关配置
接入设备网络高危端口管控 定义访问控制列表,过滤5554、9996(震荡波端口), 4444(Blaster端口), 1434(Slammer端口) [H3C] acl number <2001> match-order config [H3C-acl-baisc-2001] rule 1 deny tcp destination any destination-port 5554 [H3C-acl-baisc-2001] rule 2 deny tcp destination any destination-port 9996 [H3C-acl-baisc-2001] rule 3 deny tcp destination any destination-port 4444 [H3C-acl-baisc-2001] rule 4 deny tcp destination any destination-port 1434
banner信息是否修改 登录时检查banner信息是否修改
是否禁用未使用端口 需禁用未在使用端口
是否配置远程日志服务器 查看loghost相关配置
查看账户信息 登录失败处理,不同权限账户
访问控制 当使用telnet或ssh访问设备时应限制远程访问IP地址

4.5 其他

检查项 操作
应用服务,主机安全漏洞检查 使用漏洞扫描器挂上扫描即可
弱口令检查 使用漏洞扫描器挂上扫描即可
跨区互联排查 在不同区域机器上向其他区域发起路由跟踪,观察数据包是否可到达或者直接ping未开启防火墙的机器。
是否存在接入管控 直接询问厂区是否存在接入管控设备
重要系统是否做了冗余 询问查看现场设置



0x05 安全加固


加固一般不会现场做,会由其他团队或者后续进行,毕竟一些在运系统在加固过程中出现问题的可能性还是有的,要是因此产生数据丢失情况还是比较麻烦的。

加固其实没什么好讲的,就是按着等保要求,或者说前面的安全风险评估报告来一项一项做就好了。需要注意也就做的时候要确保可以回滚,不能恢复的要和客户确认即可。



0x06 报告撰写


这个没啥好说的,各司都有报告模板,内容上都大同小异。写的时候注意错别字、图片排版、字体格式等。基本就没什么问题了。




安全检查与加固

本文始发于微信公众号(雷石安全实验室):安全检查与加固

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: