【一看就会】 是因为很多我尽可能写得很详细。 【一做就废】如果基础知识不牢固很多部分会懵逼。 本文章作者的等级保护项目相关坑点以及经验分享。本文知识点过于庞杂,有需要可以收录到自己的网页收藏夹。 萌新适用 文章着重等级保护2到3级主要过程和技术部分为重点讲解。
0x1 continue
萌新等级保护完全指南,保证“一看就会、一做就废”(上)
https://www.freebuf.com/articles/security-management/191491.html
上次说到 物理安全和网络安全部分 继续说后面的主机安全 应用安全 数据安全以及备份恢复
0x2 主机安全 技术要求
PS: 主机安全 一般我们常说的基线,此部分内容较多,整改重点。 由于操作系统种类,版本繁多,网上较多的类似加固或者基线文档多少有些错误的地方,哪怕是WINDOWS 版本不同配置位置也有少许变化。不可盲目相信网上的基线,加固文档,需要自行测试。
基线、加固、配置规范常说都是一类东西,只是看什么系统什么设备的相关基线或者加固,配置规范等。 相关系统、网络设备等基线建设是一个长期而且繁琐的事情,这方面不要给自己挖坑了。
身份鉴别
基本要求 | 解读 | 备注 |
---|---|---|
a)应对登录操作系统和数据库系统的用户进行身份标识和鉴别; | 主机登陆和数据库登陆要有独立账户密码以及密码验证 | 一般为部分符合,多数情况为数据库用户管理员账户可以直接登陆,建议对数据库进行验证设置。 |
b)操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换; | windows 本地安全设置-账户策略-密码策略 设置密码历史记录、设置密码最长使用期限、设置密码最短使用期限、设置最短密码长度、设置密码复杂度要求。 centos 6.0-6.9 /etc/pam.d/system-auth password requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1 /etc/login.defs PASS MAX DAYS_ _90 #登录密码有效期90天PASS_MIN_DAYS 0 #登录密码最短修改时间,增加可以防止非法用户短期更改多次PASS_MIN_LEN 8 #登录密码最小长度8位PASS_WARN_AGE 7 #登录密码过期提前7天提示修改FAIL_DELAY 10 #登录错误时等待时间10秒FAILLOG ENAB yes FAILLOG_ENAB yes #登录错误记录到日志 SYSLOG_SU_ENAB yes #当限定超级用户管理日志时使用 SYSLOG___ y SG_ENAB yes #当限定超级用户 当限定超级用户 管 日 时使用 组管理日志时使用 MD5_CRYPT_ENAB yes #当使用md5为密码的加密方法时使用 |
系统的密码策略不等于你自行配置的密码复杂度要求,看有没有配置即可,并不是看系统本身密码是否达到复杂度。 其实简单说: 1、没有密码复杂度策略你可以配置弱密码 2、如果有密码复杂度策略,是配置不上去的。会提示你密码复杂度不符合。 |
c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施; | windows 本地安全设置-账户策略-账户锁定策略- 账户锁定阈值 5次 锁定时间30分钟 centos 5.9以下 /etc/pam.d/ system-auth 添加auth required pam_tally.so onerr=fail deny=5 unlock_time=300 centos 6.0-6.9添加位置:/etc/pam.d/system_auth或/etc/pam.d/password_auth文件添加项:auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 和 account required pam_tally2.so注意:第一行必须加到auth required pam_env.so这行后面,如果加到别处位置,可能不起作用。第二行可以加到所有account配置之后。 |
一般情况不符合,可整改。 linux 有两个锁定账户的 简单说配置文件的 pam_tally.so与pam_tally2.so 解读粗体部分已标注pam_tally.so是老的版本,从RedHat Linux 6(centos 6)开始,pam_tally2.so是唯一可用的程序。所以只要系统存在pam_tally2.so,建议就不要用pam_tally.so了。这两者之间的差别:pam_tally的“reset”、“no_magic_root”和“no_reset”选项在pam_tally2里没有了。 是否符合要求看锁定配置即可。 |
d)当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听; | 看wireshark是否在登陆线路上监听能 嗅探到密码。也可以使用三方管理软件登陆 如pcanywhere 向日葵等。 | 一般符合来说ssh win系统2008 远程桌面都是加密的。 |
e)应为操作系统和数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性。 | 账户权限分离,网络安全也有一条类似的要求。就是操作系统管理员账户与数据库管理员账户分开。最好不同的人管理。 | 一般情况不符合,多数没有区分账户角色。 |
f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。 | 双因子认证,网络安全也提过,此条针对登陆操作系统,除了账户密码之外,有加密狗或短信或生物指纹验证使用者身份。 | 三级要求 一般不符合,实现方法可以使用堡垒机+加密狗方式。 看客户资金是否充裕购买吧。如果堡垒机支持登陆网络设备,网络安全上的双因子登陆要求也算满足。 |
访问控制
基本要求 | 解读 | 备注 |
---|---|---|
a)应启用访问控制功能,依据安全策略控制用户对资源的访问; | 一般看下 %systemroot% C: D: 等主要驱动上的NTFS 权限标注即可 在磁盘或文件夹鼠标右键属性-安全。 linux 在etc目录 和一些usr目录使用 ls -l 命令即可看到权限,rwx 之类的权限标注这里不解释了 |
window默认情况 user不是拥有全部权限 administrators 组拥有最高,不能存在everyone 有权限的情况,如果磁盘不是ntfs 不能进行权限管理直接为不符合。 linux 不能出现 777的权限配置文件以及目录即: rwxrwxrwx |
b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限; | 账户权限分离,一般需要有普通用户,审计账户,日志账户。并为不同的账户分配最小权限。 windows 本地安全设置-本地策略-用户权利指派 |
粗体部分为三级要求,一般情况为不符合,因为一般客户系统只有一个超级管理员用户。 |
c)应实现操作系统和数据库系统特权用户的权限分离; | 操作系统账户与数据库管理员账号分开,账户独立密码独立。不能操作系统管理员不加任何验证直接登陆数据库账户的情况 | 三级要求 一般情况不符合,没有分配独立两个账户,多数情况是操作系统管理员可以直接登陆数据库。 |
d)应严格限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令; | 重命名administrator root guest 等账户名 操作系统默认口令倒是不存在,网络设备可能存在默认口令需要修改更正。 | 一般情况不符合,没有重命名,不过有些系统考虑到可能存在用户名与业务系统绑定情况,建议先找个业务闲时测试更改,无问题就不需要改回来了,有问题在恢复原来的用户名。 根据实际情况选择。 |
e)应及时删除多余的、过期的帐户,避免共享帐户的存在。 | 对于已经建立的账户,管理人员应明白具体用途,不能存在不知道作用的账户,不能与多人共享某个账户 | 一般情况部分符合,有些操作系统就一个用户这类问题就不存在。其他如一些IIS 用户或者数据单独建立的账户,客户系统管理人员技术参差不齐,有些可能知道用户具体作用,有些不知道。 |
f)应对重要信息资源设置敏感标记。 | 文件是否有重要程度区分,如是否标注重要,一般有项目或文件档案是否有编号明显标记等,如存储身份证号 电话号码 学号 工号等。数据库对这些数据应加密存储。关键文件是否加密保存。 | 三级要求 其实条目并不实用 一般部分符合。如果不存在敏感信息也可以评定为不适用。 |
g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作。 | 解释同上 不同之处是否对于关键的文件有权限划分,如何划分的,如何设定访问权限等。 | 三级要求 类似访问控制的第一条 本条强调如何划分和实现以及区别。这些敏感标记的资源,权限,访问方式等。一般为不符合 |
安全审计 (如有堡垒机三方运维审计应酌情考虑加分)
基本要求 | 解读 | 备注 |
---|---|---|
a)审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户; | 操作系统需要开启本身系统账户审计功能以及数据库账户审计日志功能。 windows (事件查看器看看有无最近日志) linux /var/run/utmp 当前正在登录系统的用户信息 /var/log/wtmp 当前正在登录和历史登录系统的用户信息 /var/log/btmp 失败的登录尝试信息 |
一般情况为部分符合,系统的基础日志功能都有。 只是开启的但不详细。可以结合下条要求 |
b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件; | windows (事件查看器看看有无最近日志) 在安全设置 (本地安全策略)中,展开本地策略,显示审核策略(所有策略开启成功失败)以及安全选项策略。 linux 1、查看服务状态: #service syslog status #service audit status 或#service –status-all | grep running 2、查看是否启用如下配置: # grep “@priv-ops” /etc/audit/filter.conf # grep “@mount-ops” /etc/audit/filter.conf # grep “@system-ops” /etc/audit/filter.conf |
一般情况为不符合。但可以都可以整改。 如果有堡垒机可以当做运维审计的第三方的审计工具,认定符合。前提要求是堡垒机不能存在绕过的情况,任何运维人员强制登陆堡垒机后登陆操作系统。 一般windows 默认情况没有用户日志,为不符合,开启则为符合可以手动开启关键需要开启审核策略(所有条目开启成功失败都记录) 一般linux audit是一个系统软件包,如果没有安装。需要安装后才能执行开启命令,就是说安装之前需要选择软件包,有些版本也存在默认选择,根据系统实际情况判断,没有开启日志为不符合,开启则为符合。 centos 6.5 64 为例软件包的名称为 audit-libs.x86_64 audit.x86_64 |
c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等; | 结合前面两条, windows 事件查看器 (应用程序 系统 安全性) linux cat vi 都可 /var/log/audit.d |
结合前面两条,系统本身记录类型完备,就看详细配置有没有做,一般情况部分符合,或不符合。可整改为符合。 |
d)应能够根据记录数据进行分析,并生成审计报表; | 正常的操作系统都有此功能。 windows 可以在事件查看器中导出日志 linux 可以文本手动导出 |
三级要求,正确配置上述三条的,为部分符合,主要没有具体分析功能。 还要看导出的结果内容是否完善。堡垒机能导出审计报表为符合。 |
e)应保护审计进程,避免受到未预期的中断; | 保护审计进程,当避免当事件发生时,能够及时记录事件发生的详细内容。 windows 系统具备在审计进程自我保护方面功能 linux auditd 是 Linux中的审计守护进程,syslogd是Linux中的日志守护进程,因此可以通过services命令查看其状态 #service –status-all |gerp auditd#service –status-all |gerp syslogd |
三级要求,一般情况为符合,操作系统自带的安全机制。需要判断日志进程是否正常运行,日志是否正常记录。 |
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等。 | 通常情况是管理员可以删除,修改,覆盖日志,其他用户不可。日志时间不少于6个月 | 三级要求 一般为部分符合,除超级管理员和日志审计账户外 其他账户不能操作日志相关服务、进程、文件等。有额外专门日志服务器为符合。跟之前网络安全日志要求类似。但本条属于操作系统层面 |
剩余信息保护
基本要求 | 解读 | 备注 |
---|---|---|
a)应保证操作系统和数据库系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中; | 指操作系统用户的鉴别信息存储空间,被释放或再分配给其他用户前是否得到完全清除。 打开本地安全策略–本地策略中的安全选项查看是否启用不显示上次登录用户名 linux 不适用或不符合 虽然有其他方式实现擦除 标准没有得到统一 |
三级要求 一般不符合,可整改,严格意义上说服务器操作系统每个账号记录拥有独立空间和独立日志。但如QQ登陆窗口会显示之前QQ登陆账号这显然就不符合。 严格意义上剩余信息保护,是需要清理所有缓存的,再说清理缓存并不是完全擦除,还是可以数据恢复,但本文不做过多讨论了。 |
b)应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除。 | 解释同上 针对对象变为、文件、目录、数据库记录所在的存储空间 WINDOWS 打开 本地安全策略–本地策略中的安全选项查看是否选中 关机前清除虚拟内存页面 打开 本地安全策略–帐户策略中的密码策略查看是否选中 用可还原的加密来存储密码 linux 不适用或不符合 虽然有其他方式实现完全清除, 标准没有得到统一 |
三级要求,windows一般情况为不符合,可整改。 |
入侵防范
基本要求 | 解读 | 备注 |
---|---|---|
a)应能够检测到对重要服务器进行入侵的行为,能够记录入侵的源IP、攻击的类型、攻击的目的、攻击的时间,并在发生严重入侵事件时提供报警; | 维护系统安全,必须进行主动监视,以检查是否发生了入侵和攻击。因此一套成熟的主机监控机制能够有效的避免、发现、阻断恶意攻击事件 如360 安全狗 D盾这类主动防御的东西。 linux iptables 配置并启用 需要有规则(iptables 规则根据实际业务情况而定 不赘述) 一些系统自带软件手动配置方式 过滤不需要使用的端口,过滤不需要的应用层网络服务,过滤ICMP数据包。(系统自带防火墙 、linux iptables TCP/IP筛选器等) |
三级要求 一般情况为部分符合,有些因为操作系统业务性能问题,没有装一些防护软件怕耗费资源。但是网络安全上有IPS,IDS可酌情考虑为部分符合或符合。系统自带防火墙也可开启算为部分符合,防火墙没有告警功能仅日志功能。 |
b)应能够对重要程序的完整性进行检测,并在检测到完整性受到破坏后具有恢复的措施; | 完整性检测与备份恢复,基于操作系统文件和操作系统配置本身。 | 三级要求完整性检测一般难做到,操作系统自身配置可有备份,一般判断部分符合。 完整性检查最常用的是md5 判断系统上文件,还得梳理一个MD5值文件表相对麻烦。 |
c)操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新。 | 系统服务最小化,端口最小化,操作系统以及中间件及时更新补丁。 | 一般情况,部分符合,可能存在不好打补丁的和升级中间件的情况,IPS可以防御,可酌情考虑。 |
恶意代码防范
基本要求 | 解读 | 备注 |
---|---|---|
a)应安装防恶意代码软件,并及时更新防恶意代码软件版本和恶意代码库; | 主机服务器上需要有杀毒软件,要可以升级病毒库的杀毒软件。 | 一般情况符合,这里需要跟入侵防范的加以区分,主动防御是主动防御 杀毒软件是杀毒软件,确实有也QQ管家 360这类 有主动防御和杀毒功能一体的。没有杀毒软件不符合。 |
b)主机防恶意代码产品应具有与网络防恶意代码产品不同的恶意代码库; | 主机上的杀毒软件与网络层上的WAF或防毒墙病毒库或厂家应该不同 | 三级要求 一般情况部分符合,安全设备,以及本机杀毒软件配备情况下符合 |
c)应支持防恶意代码的统一管理。 | 可以统一进行部署,更新和管理。 | 一般情况不符合,一般指网络版杀毒软件需要额外购买与授权,简单说经费问题。 |
资源控制
基本要求 | 解读 | 备注 |
---|---|---|
a)应通过设定终端接入方式、网络地址范围等条件限制终端登录; | 主机上的防火防准入配置,准许哪些IP访问,禁止哪些IP访问。 | 一般部分符合,大多情况策略太宽松了。开启防火墙没有策略算不符合 |
b)应根据安全策略设置登录终端的操作超时锁定; | WINDOWS 设置屏幕保护 屏幕保护后需要密码恢复。 linux 设置终端超时时间即可。 |
一般情况不符合,大多运维觉得麻烦。但都可以设置。觉得麻烦可以设置时间适当长点。 10-20分钟等。设置完毕应为符合。 |
c)应对重要服务器进行监视,包括监视服务器的CPU、硬盘、内存、网络等资源的使用情况; | 主机级的监控探针,能监控服务器状态。一般会需要安装一个客户端监控软件。 | 三级要求 一般不符合,大多是没有安装,推荐一个简单的开源监控ZABBIX 安装方式不赘述 windows linux 都可用。 |
d)应限制单个用户对系统资源的最大或最小使用限度; | 字面意思,用户使用资源需要进行最大,最小的使用额度限制。 WINDOWS 了解一下是否配置磁盘配额 远程桌面用户数量同时在线数量是否有限制。 linux 查看/etc/security/limits.conf中参数nproc可以设置最大进程数。 类似如下配置: * soft core 0 * hard rss 5000 (所有用户:内存5M) @user hard nproc 20(user: 进程20) #more /etc/security/limits.conf,是否设置了用户进程优先级,priority参数。 #more /etc/security/limits.conf 查看类似如下设置: @user – maxlogins 1 (最大登陆数) |
一般不符合,没有配置,根据实际需要参考配置即可。 |
e)应能够对系统的服务水平降低到预先规定的最小值进行检测和报警。 | 还是主机级的监控软件,能不能到一定程度报警的报警,比如达到CPU 到90% 报警之类的。 | 三级要求 上面的ZABBIX 软件是可以做到的,告警是发邮件的形式。也有其他软件的实现方式,但都应该没有开源软件便宜,高端点的现在流行的态势感知系统。 |
0x3 应用安全 技术要求
PS: 应用一般是C/S 或B/S 模式,一般所说的应用指WEB页面或有客户端程序的日常跟业务有关的软件或系统。
这部分负责等级保护整改工作协作部门无法整改,一般情况是联系应用的开发厂家,配合整改。如业务年代久远没有维保的情况,应用方面整改只能放弃,加强网络和主机方面的整改。
还有的多数情况,应用使用人只知道如何使用,对应用相关细节不了解,最好相关询问需要找到开发厂家。有使用操作说明也能省不少事。
身份鉴别
基本要求 | 解读 | 备注 |
---|---|---|
a) 应提供专用的登录控制模块对登录用户进行身份标识和鉴别; | 应用登陆需要输入用户名和密码,来鉴别登陆人员身份。 | 一般情况符合,登陆网页或客户端也好,需要输入用户名和密码才可登陆。即为符合。 |
b) 应提供用户身份标识唯一和鉴别信息复杂度检查功能,保证应用系统中不存在重复用户身份标识,身份鉴别信息不易被冒用; | 账号唯一性,不应存在账户相同,不同身份的情况。 | 一般情况符合,能不能建立同名账户测试下即可。 |
c) 应提供登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施; | 连续登陆密码或用户名错误,次数超过5次 应锁定IP或锁定账号 限制登陆,防止暴力破解。 | 一般情况部分符合,主要是锁定措施不一定有,有些是会有验证码,有些则无也不锁定账户和IP。没有任何限制措施的为不符合。 |
d) 应启用身份鉴别、用户身份标识唯一性检查、用户身份鉴别信息复杂度检查以及登录失败处理功能,并根据安全策略配置相关参数。 | 结合上面条目,账户密码复杂度的强制要求,还有双子认证部分要求。 | 一般情况部分符合,双因子要求为三级要求。双因子认证前面提过两次了,不赘述了。 特别说一下输入两次密码不算双因子认证。 |
访问控制
基本要求 | 解读 | 备注 |
---|---|---|
a) 应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问; | 不同账户应不同权限,只能读、写、编辑的内容应该是限定的内容或自己写的内容,不能出现更改其他账户的情况。 | 一般情况符合,管理员除外。大多软件开发都会注意这点。 |
b) 访问控制的覆盖范围应包括与资源访问相关的主体、客体及它们之间的操作; | 不同账户访问的资源不同,有效控制访问资源的范围,不能越权操作。 | 一般情况符合,跟上条类似,此条主要说是本账户与其他资源交互时候的权限要求。 比如别人的东西你无法修改,仅查看功能。 |
c) 应由授权主体配置访问控制策略,并严格限制默认帐户的访问权限; | 所有账户可以进行定义权限的功能。比如可以访问什么不可访问什么,只有读取权限等。可以精细设置 | 一般情况部分符合,有些应用是可以自行定义和勾选,有些则是通过用户组的方式,用户组来定义权限。没有此功能则为不符合。 |
d) 应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系。 | 一般所说的最小化权限原则,用户需要什么权限,只给什么权限。制约关系一般所说的是三权分立 即:”管理、审计和操作权限”分别隶属三个账户。 | 一般情况不符合。多数应用就一个管理员,没有考虑到等级保护要求,开发前考虑过三权分立,基本可以符合。 |
e)应具有对重要信息资源设置敏感标记的功能; | 如是否标注重要,是否有编号明显标记等,如存储身份证号 电话号码 学号 工号等。数据库对这些数据应加密存储。关键文件是否加密保存。 | 三级要求,之前在主机也有此项不赘述,并不是所有应用适用,此部分为应用层面 一般为不符合 |
f)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作。 | 解释同上 不同之处是否对于关键的文件有权限划分,如何划分的,如何设定访问权限等。 | 三级要求 本条强调如何划分和实现以及区别。这些敏感标记的资源,权限,访问方式等。一般为不符合,不是所有应用都适用 |
安全审计
基本要求 | 现状描述 | 符合情况 |
---|---|---|
a) 应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计; | 具有日志审计功能,覆盖范围应该有,登陆,登出,具体操作,访问过什么页面等。 | 一般情况部分符合,多数是日志功能不完善,只有用户登陆登出时间记录,没有具体操作和访问什么模块的时间。功能完善应为符合。 |
b) 应保证无法单独中断审计进程,无法删除、修改或覆盖审计记录; | 任意普通用户不能中断日志进程,无法删除、修改或覆盖审计记录。严格的要求是管理员也不可。只能有日志审计账户有权限。 | 一般情况部分符合,多数情况普通用户看不到日志,也更改不到日志,上面说的三权分立,这部分没做到的话,管理员是可以修改日志的。 |
c) 审计记录的内容至少应包括事件的日期、时间、发起者信息、类型、描述和结果等; | 审计日志的类型应该有,日期,事件,发起者(操作用户)、类型、描述和结果等。 | 一般情况部分符合,多数情况只记录操作成功的日志,失败的日志没有记录,比如操作某页面权限不足的错误记录,登陆失败的记录等。 |
d)应提供对审计记录数据进行统计、查询、分析及生成审计报表的功能。 | 审计的日志可以进行统计,查阅、分析和导出功能 | 三级要求 可以导出审计日志,一般情况不符合,多数是应用没考虑到这个功能。 |
剩余信息保护
基本要求 | 解读 | 备注 |
---|---|---|
a)应保证操作系统和数据库系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中; | 指应用用户的鉴别信息存储空间,被释放或再分配给其他用户前是否得到完全清除。至少应保证删除的文件,资源等不可再被其他人读取。 | 三级要求 跟主机层面剩余信息保护要求类似。 一般为不符合。 严格意义上剩余信息保护,是需要清理所有缓存的,再说清理缓存并不是完全擦除,还是可以数据恢复,但本文不做过多讨论了。 |
b)应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除。 | 解释同上 针对对象变为、文件、目录、数据库记录所在的存储空间 | 三级要求,一般情况为不符合。 |
通信完整性
基本要求 | 解读 | 符合情况 |
---|---|---|
a)应采用校验码技术保证通信过程中数据的完整性。 | 采取密码技术来保证通信过程中的数据完整性,普通加密技术无法保证密件在传输过程中不被替换,还需利用Hash函数(如MD5、SHA和MAC)用于完整性校验,但不能利用CRC生成的校验码来进行完整性校验 | 一般情况符合,测试一般用wireshark 或burp suite ,在用户登陆,或者提交相关业务数据(Form cookies),是否存在敏感信息明文。 也可询问开发人员,以及查看源代码部分是否有做处理。 |
通信保密性
基本要求 | 解读 | 备注 |
---|---|---|
a) 在通信双方建立连接之前,应用系统应利用密码技术进行会话初始化验证; | 该项要求强调整个报文或会话过程进行加密,同时,如果在加密隧道建立之前需要传递密码等信息,则应采取密码技术来保证这些信息的安全。 常用就是SSL、ipsec |
一般情况部分符合,测试一般用wireshark 或burp suite ,在用户登陆,或者提交相关业务数据(Form cookies),是否存在敏感信息明文。 跟上条的需要区分的是这是属于传输上的,跟本身应用上的加密是两回事,专注于传输过程。 |
b) 应对通信过程中的敏感信息字段进行加密; | 常用的传输加密 WEB模式需要 HTTPS 客户端至少要有L2TPVPN 或者其他加密隧道 | 一般情况为不符合 HTTP为明文,L2TPVPN 客户端需要先拨号 根据具体情况判断。 https L2TPVPN的会涉及到证书的相关问题。证书就会涉及一笔额外费用,在此不赘述。 |
抗抵赖
基本要求 | 解读 | 备注 |
---|---|---|
a) 应具有在请求的情况下为数据原发者或接收者提供数据原发/接收证据的功能; | 本来是两条注意斜杠的位置 /,一个是原发证据的功能,一个是接收证据的功能,不太好理解,简单说就是溯源,可以追溯发送方和接收的具体是哪个使用者而且无法抵赖。 | 三级要求 一般情况不符合,解决办法简单点的可以用数字签名证明身份。一般单位选择放弃此项。 |
软件容错
基本要求 | 解读 | 备注 |
---|---|---|
a) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的数据格式或长度符合系统设定要求; | 在创建账户,写入业务数据的时候,是否存在最小最大字符数量限制 上传大小和种类限制以及特殊字符限制,数据有效性等 数据有效性比如: 性别一栏只能选男女 其他选择无效。 | 一般情况部分符合,多数是应用对数据长度类型没有定义。不好整改一般放弃,项目如在开发维护中则可以整改。 |
b) 应提供自动保护功能,当故障发生时自动保护当前所有状态,保证系统能够进行恢复。 | 当违反相对数据规则 如上条 最小最大字符数量限制 上传大小和种类限制以及特殊字符限制,数据有效性等,能正确告知客户进行修正不对系统正常运行造成影响。应用业务数据需要定期备份。(有每日 每周 每月备份等) | 一般情况部分符合,多数应用有些限制,但都存在过滤不严的情况。结合上面一条软件容错主要是为了防止SQL注入等攻击,以及用户输入一定超过最大值或特殊字符进行溢出攻击。记得询问应用备份情况。 |
资源控制
基本要求 | 解读 | 备注 |
---|---|---|
a) 当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话; | 用户登陆应用,但没有任何操作情况应自动锁定,或登出的安全要求, 简单说超时设置。 | 一般情况符合,多数WEB都有超时时间,客户端型可能没有。具体情况具体判断。 |
b) 应能够对系统的最大并发会话连接数进行限制; | 1、服务器的最大并发数限制。 2、客户端单点链接服务器业务的最大连接数限制。 |
一般情况不符合,多数没有设置,主要可能没遇到系统峰值的情况,建议设置。应用无法整改应在网络层适当对单点IP进行限制。 |
c) 应能够对单个帐户的多重并发会话进行限制; | 这里有单点登录和多点登录的概念。 要求应用最好是单点登录,需要多点登录应限制为5个以下的数量。 |
单点登录:比如QQ 你在一台电脑上登录 在另一台电脑登录之前就会下线,这种成为单点登录只能一个账户一个终端登录。 多点登录:可以用一个账户两个终端或两个以上终端登录用户称为多点登录。 一般情况为不符合,多数多点登录情况。应用在维护开发期可整改,否则放弃。 |
0x4 数据安全以及备份恢复
PS: 这个部分原本条目比较少,一般是数据库的检测条目是被忽略的。
因为很多数据库没有办法进行整改主要担心影响业务,但是评测公司会评测。于是还是决定写详细一点。
此部分也不是整改重点为了自己不背锅建议不要碰数据库。改动数据任意一点都可能影响业务。
身份鉴别
基本要求 | 解读 | 备注 |
---|---|---|
a)应对登录操作系统和数据库系统的用户进行身份标识和鉴别 | 为防止操作系统用户对SQL Server数据库迚行非授权管理(系统管理员和数据库管理元分离),应选择“SQL Server和Windows”方式,并且让用户每次登录数据库时都必须输入密码(必须保证登录用户为强密码) MSSQL 检查: 查看身份认证方式是否为“SQL Server和Windows”。 试图登录数据库,查看系统是否提示输入用户密码。 ORACLE检查方法 应检查Oracle数据库系统,查看是否存在空口令戒默认口令的用户(Oracle默认满足,但应防止口令出现空口令或默认口令情况) 默认口令,如:SYS / CHANGE_ON_INSTALL;SYSTEM/MANAGER 。 常用弱口令:oracle:oracle/admin/ora11(ora+版本);sys:oracle/admin; system:oralce/admin |
改了密码或链接方式你知道对业务链接数据库影响是什么?别背锅。一般为不符合 |
b)操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期。 | 数据库本身倒是不存在完全相同用户名情况,保证密码复杂度,并定期更换。 MSSQL 检查 询问数据库管理员口令策略,查看有无空口令用户 。 让管理员以SA的身份登录数据库,查看是否为弱口令 ORACLE检查查看是否启用口令复杂度凼数,执行命令:select limit from dba_profiles where profile=’DEFAULT’ and resourcename=’PASSWORDVERIFYFUNCTION’ 检查utlpwdmms.sql中“– Check for the minimum length of the password”部分中“length(password)<“后的值 (密码长度) 查看口令管理制度以及执行记录,并选择验证。 |
一般部分符合,多数是数据库不好改密码,或密码太简单。需要配合人员登录输入下密码情况。 |
c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施 | 为防止暴力破解数据库用户的口令,应保证数据库具有登录失败处理功能(设置非法登录次数的限制值,对超过限制值的登录终止其鉴别会话戒临时封闭帐号) MSSQL检查 执行命令sp_configure,查看有无登录失败处理的配置 询问数据库管理员是否采取其他措施保证上述功能的实现 ORACLE检查执行命令:select limit from dba_profiles where profile=’DEFAULT’ and resource_name=’FAILED_LOGIN_ATTEMPTS’。(密码失败几次锁定) 执行命令:select limit from dba_profiles where profile=’DEFAULT’ and resource_name=’PASSWORD_LOCK_TIME’ 。(锁定的时间) |
一般情况不符合,不建议更改。 |
d)当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听 | 数据传输过程中的加密要求,SQL Server数据库可采用包括SSL在内的方式对数据迚行加密传输。其他数据传输加密的方式这里不赘述了。 判断 询问数据库管理员是否采取措施保证进程管理数据加密传输 。 在数据库传输对端抓包(wireshark)也可。一般是不存在传输加密。 |
一般情况不符合。一般是不存在传输加密。 |
e)应为操作系统和数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性 | 操作系统和数据库本身满足唯一性,但是要防止不同用户使用相同的用户名登录数据库系统,不同用户分配不同账户。 判断 询问数据库管理员,是否为不同的登录用户分配不同的用户名,保证对一人一账号方便审计。 |
一般不符合,共用账号情况居多。 |
f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别 | 双因子又来了。 判断 MSSQL 说明 询问数据库管理员,是否采取除身份鉴别外的其他鉴别方式(对于SQL SERVER2005以上的版本,可以采取证书的方式对存储过程进行访问控制) ORACLE说明 包括三种方法:数据库鉴别、操作系统鉴别和密码文件鉴别。数据库鉴别方法是常见方式,其所需鉴别信息存放在在system表空间的某个表中;特殊的数据库操作,如启动、关闭数据库需要通过操作系统或者密码文件鉴别方法。 还可以借助应用程序服务器提供网络验证,可以引入Kerberos、RADIUS、PKI,如clt-oracle svr/radius clt-radius svr-authent svr oracle数据库通过sqlnet.ora文件中的参数SQLNET.AUTHENTICATION_SERVICES【NONE|NTS】、PFILE(或SPFILE)文件中的参数REMOTE_LOGIN_PASSWORDFILE【NONE|EXCLUSIVE|SHARED】和口令文件PWDsid.ora三者协同作用实现身份认证。 |
三级要求 一般情况不符合 整改过于繁琐。 |
访问控制
基本要求 | 解读 | 备注 |
---|---|---|
a)应启用访问控制功能,依据安全策略控制用户对资源的访问 | 应依据安全策略限定每个角色的权限,并且为每个用户分配一个或多个角色。 角色概念有点像用户组概念,这里也说的是三权分立的思想。前面提过不赘述了 检查 查看是否依据安全策略为角色限定了权限。(MSSQL 一般看数据库角色属性就好) 查看是否为每个登录用户分配并限制了服务器角色 |
一般不符合,一般没有明确分配但至少应用链接数据库最好不使用sa 或者sys 之类的最高数据库管理员账户,一旦链接数据文件被拖走如 conn.aspx config.inc.php 类似链接数据库的文件。这个数据库权限就没了。应用不好设置的情况出于安全考虑,可以设置数据库服务器的可访问IP地址,其余的非业务运维地址全部禁止访问。 |
b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限 | 之前也说过的最小权限原则,用户业务需要什么权限给什么权限不给过高的权限。 检查 检查登陆数据库用户的权限。 还要避免数据库账户和操作系统账户同名同密码情况存在。 |
一般不符合,挺多一个账户给高权限所有业务管理到底。 |
C)应实现操作系统和数据库系统特权用户的权限分离 | 三权分立 尽量将系统管理、审计管理和业务数据库的管理的用户权限进行分离。 看除了最高级管理账户如 sa sys root 账户之外没有另外创建的 权限一样是最高的账户。 |
一般情况部分符合,多是有默认账户,没有三权分立。 |
d)应严格限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令 | 1:建议修改数据库默认的用户名 2:建议修改默认用户名的口令 |
一般情况不符合或部分符合。多数因为业务原因无法重命名或者重命名有风险。应该注意修改密码长度和复杂度,确保强密码。 |
e)应及时删除多余的、过期的帐户,避免共享帐户的存在 | 应删除数据库中多余的、过期的帐户,如测试帐号。还应避免一个账户多人使用的情况。 判断 mssql 执行命令:select name from syslogins,询问每个帐户的作用。 oracle select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system select * from all_users; 查看你能管理的所有用户 询问相关账户的作用。 |
一般情况不符合,一般是测试账号保留以及管理员不清楚账号作用的情况。在不清楚账号作用情况下也不是建议做任何修改操作的。 |
f)应对重要信息资源设置敏感 | 在数据库中能对重要信息资源设置敏感标记(如公开、秘密、机密、绝密等 一般针对身份证账号 手机银行卡号等),为实现强制访问控制提供基础。 一般而言超级管理员账户是不受限制的。 判断 如果数据库具有强制访问功能,则查看是否启用该功能,是否对重要资源设置了敏感标记 oracle 检查是否安装 Oracle Label Security模块:select username from dba_users 查看是否创建策略:SELECT policy_name, status from DBA_SA_POLICIES 查看是否创建级别:SELECT * FROM dba_sa_levels ORDER BY level_num 查看标签创建情况:select * from dba_sa_labels |
三级要求 一般情况不符合 不建议整改 不涉及到敏感信息可判定不适用。 |
g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作 | 结合上一条,这条要求强调控制用户对重要信息资源的操作权限。 判断 查看是否依据安全策略控制用户对重要信息资源的操作,在条件允许的情况下则可进行测试 (其实一般没条件) 对于ORACLE,可以执行命令:select * from dba_sa_user_labels,查看用户的标签,并选择特定的用户和表进行验证策略 |
三级要求 对于数据库与业务不熟悉人员不建议操作测试。一般不符合。不建议整改。 |
安全审计
基本要求 | 解读 | 备注 |
---|---|---|
a)审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户 | 应检查数据库系统,查看是否开启审计功能,并且审计范围是否覆盖到每个用户 判断 查看是否开启审计功能,用不同的用户登录数据库系统并进行不同的操作,查看是否对每个用户都进行审计 MSSQL 数据库企业管理(sql server enterprise manager)-任意数据库鼠标右键属性-安全性选项卡-审核级别应勾选“全部” ORACLE 执行命令:select value from v$parameter where name=’audit_trail’,查看是否开启审计功能 用不同的用户登录数据库系统并进行不同的操作,在Oracle数据库中查看日志记录是否满足要求 |
一般不符合,可能由于日志产生大量日志占用空间,属于关闭状态。可以整改开启日志,但占用更多空间。如果网络层上有数据库审计设备此安全审计部分,大部分符合。 |
b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件 | 检查数据库系统,查看审计策略是否覆盖系统内重要的安全相关事件,例如,用户登录系统、自主访问控制的所有操作记录、重要用户行为(如增加/删除用户,删除库表)等。是否正确记录日志 判断 如果审计功能开启,这在条件允许的情况下进行相应操作,查看数据库是否进行了记录 默认MSSQL 日志跟数据库文件同目录,额外定义的另说 ORACLE show parmeter audit_trail,查看是否开启审计功能。 show parameter audit_sys_operations,查看是否对所有sys用户的操作进行了记录。 select sel,upd,del,ins from dba_obj_audit_opts,查看是否对sel,upd,del,ins操作进行了审计。 select * from dba_stmt_audit_opts,查看审计是否设置成功。 select * from dba_priv_audit_opts,查看权限审计选项。 |
一般不符合,结合上条,一般日志不开启肯定也是没有记录的。 |
c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等 | 字面意思好理解,基本mssql oracle 开启日志功能 后生成的日志文件也都能达到要求 | 一般情况不符合,多数是没开启日志记录。 |
d)应能够根据记录数据进行分析,并生成审计报表 | 审计日志的导出功能 oralce 可以用Oracle Audit Vault等日志分析工具并查看相关报表。 其他的最好有三方数据库审计设备旁路用于记录日志,也都可以导出 |
三级要求一般情况不符合,有数据库审计设备的另说。 |
e)应保护审计进程,避免受到未预期的中断 | 应提供严格的权限管理,防止未授权关闭审计功能。 判断 以非授权用户(没有审计权限)登录数据库系统,试图改变审计配置选项。 oracle 对于ORACLE数据库,用户可以通过alter system set audit_trail=none,并重启实例关闭审计功能,查看是否成功 |
一般情况不符合,有数据库审计的除外。但数据审计设备的安全应参考网络层面的安全,需要用户密码认证等。 |
f)应保护审计记录,避免受到未预期的删除、修改或覆盖等 | 应提供严格的权限管理,防止未预期的删除、修改或覆盖审计记录或审计文件 判断 以非授权用户试图对审计记录或文件进行操作,查看是否成功 对于ORACLE数据库,则查看是否严格限制用户访问审计记录的权限,如采用audit vault等 |
三级要求 结合上条情况此条主要未授权用户能修改、删除、覆盖日志等。 一般情况是超级管理员才可以。有数据库审计设备会好一些。数据审计设备也应有登陆用户的权限划分。一般情况没有日志存在为不适用, 有日志才可验证是否可以删除 |
资源控制
基本要求 | 解读 | 备注 |
---|---|---|
a)应通过设定终端接入方式、网络地址范围等条件限制终端登录 | 限制可以访问数据库服务器的范围IP,端口等。 WINDOWS 防火墙 或者TCP/IP筛选可以实现 oralce 对于ORACLE数据库,则查看sqlnet.ora中是否配置了以下参数:tcp.validnode_checking,tcp.invited_nodes。 linux 也可以启用iptables 规则来限制 |
一般情况不符合,限制IP为部分符合 限制精细到IP和端口号为符合 |
b)应根据安全策略设置登录终端的操作超时锁定 | 当连接超时时,数据库系统自劢断开连接。 主要针对连接数据账户 或客户端连接的,但对于应用不实际。 MSSQL 查看 SHOW GLOBAL VARIABLES LIKE ‘%timeout%’ 对于ORACLE数据库,查看是否对允许空闲会话的时间迚行了限制:select limit from dba_profiles where profile=‘DEFAULT’ and resource_name=‘IDLE_TIME’ |
一般情况为不符合,多数没有设置。设置担心影响应用影响速度。也会增加服务器压力。 |
c)应限制单个用户对系统资源的最大或最小使用限度 | 应限制单个用户对系统资源的最大或最小使用限度,防止类似拒绝服务之类的攻击。 MSSQL show variables like ‘%max_connections%’; set GLOBAL max_connections = 200; (设置为200) ORACLE 执行命令:select username,profile from dba_users,确定用户使用的profile,针对指定用户的profile,查看其限制(以default为例) 执行命令:select limit from dba_profiles where profile=‘DEFAULT’ and resource_name=’SESSIONS_PER_USER‘,查看是否对每个用户所允许的并行会话数进行了限制 |
三级要求 一般情况不符合,为了安全起见至少设置一个最大连接数限制。 |
备份和恢复
特别说明:此部分的备份恢复是覆盖所有层面 包括网络的建议双联路,服务器建议双机热备等。
技术要求 | 解读 | 备注 |
---|---|---|
a)应提供数据本地备份与恢复功能,完全数据备份至少每天一次,备份介质场外存放。 | 字面意思不解释了,有热备同步类似功能会好一些,日常备份夜间闲时做成计划任务即可,不过有些单位嫌麻烦没有每天备份。还需要备份恢复验证备份的文件是否可用。 网络方面备份:是否双联路。是否有额外硬件备件 服务器和应用:是否双机热备,当应用挂掉时能否及时恢复。是否有备件。 |
一般部分符合,多数情况是有备份,可能备份时间达不到每天备份 存储介质在机房内 网络方面备份不一定每个机房能达到。服务器和应用方面的双机热备要求也是如此。 |
b)应提供异地数据备份功能,利用通信网络将关键数据定时批送至备用 | 应提供灾备中心或叫数据中心,对重要的数据提供异地数据级备份,保证当本地系统发生灾难性后果不可恢复时,利用异地保存的数据对系统数据能进行恢复。 | 三级要求有异地容灾要求 就是与应用区域至少有50公里以上距离同步备份。主要还是防止一个地方地震对机房和数据造成无法挽回的损失。。一般一线银行这方面做得比较好。一般单位不符合。 异地容灾的相关技术和标准这里不赘述有兴趣可以了解一下 |
0x5 等级保护通过的侧重点
1:管理层面和技术层面,管理制度的权重会高一些。大概为6 4开 7 3 开的样子。
2:技术层面整改建议放在 网络层面和主机层面 提高它们的分数,将较低和无法更改的平均分拉起来。
3:管理层面的评测大体有三个阶梯级 一、是否有制度会给分 二、制度是否有表格再给分 三、制度是否有明细记录再给分 (建议无记录的至少补充一年半左右的出入记录申请记录等)
4:测评机构会扫描漏洞,日常漏洞扫描是需要做的,或者在测评机构扫描时屏蔽一些高危IP,可以控制仅扫描安全较好的主机。
有些测评机构出现高危漏洞是一票否决。
0x6 等级保护题外话
1:等级保护强调纵深防御思想 几个关键要求出现的几个层面 如 审计日志要求 访问控制要求 双因子 敏感信息标记
纵深防御思想好比 军事作战需要 海陆空三军协同作战一样, 网络层面有访问控制 主机层面有访问控制 应用有访问控制 防御措施是一环套一环
2:其实制度标准文件也好,认真解读规定其实还是算严格的。只是等级保护制度在执行时 就要看人的执行力了
很多等级保护在落实的时候存在很多不严谨的问题。其实也很尴尬就像我在上条评论说的,不管你测评单位也好,负责整改的单位也好,都是需要甲方给钱的,有些会写一些不对等合同关系,比如通过才给钱,导致很多评测单位调整原本的等级保护通过标准。图片中就在去年国字头单位都中枪可见,问题还是很突出的。
引用:
3:一些项目过程可能用到的文件 一般情况是讲文档表格打印访谈形式,根据条目一条一条去核对和验证。然后出具差距分析报告。
0x7 end
1:写够多了 结束。
来源:freebuf.com 2019-01-07 10:40:54 by: redhatd
请登录后发表评论
注册