安全计算环境

身份鉴别

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换

show variables like 'validate_password%';(5.6之前没有这个插件)
show global variables like 'default_password_lifetime';		//密码有效期
validate_password_length		//表示密码最短长度;
validate_password_mixed_case_count		//表示密码至少要包含的小写字母个数和大写字母个数;
validate_password_number_count		//表示密码至少要一个数字;
validate_password_special_char_count		//密码至少要包含的特殊字符数;
validate_ password_policy MEDIUM   //中级即可

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

show variables like 'connection_control%';		//登录失败处理
connection-control-failed-connections-threshold=5		//登陆失败次数限制
connection-control-min-connection-delay=300000		//限制时间,单位毫秒,此处为5min
show global variables like '%timeout%';		//登录超时
wait_timeout		//交互式登录超时,应低于1800
interactive_timeout		//非交互式登录超时,应低于1800

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

show variables like "%have_ssl%";		//目前市面上的连接工具例如navicat一般都有加密

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

核查用户登录数据库外是否还需要动态令牌等另一种验证,MySQL一般默认不符合。

访问控制

a)应对登录的用户分配账户和权限

select * from user;		//查看每个用户的系统角色

b)应重命名或删除默认账户,修改默认账户的默认口令

MySQL的root账户可以被重命名,不过不建议重命名,此处一般部分符合

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在

select * from user;		//查看是否有多余的或过期的账户
mysql.infoschema、mysql.session、mysql.sys是mysql默认账户,account_locked为Y,为禁止登录账户

d)应授予管理用户所需的最小权限,实现管理用户的权限分离

除root用户外,还需要有安全员与审计员

e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

授权主体为root用户,该用户根据用户工作范围授予权限,其余用户不能有越权操作。

f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

访问控制粒度主体达到用户级,客体达到数据库表级

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

MySQL数据库不具有强制访问控制功能,无安全标记

安全审计

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

show variables like 'log_%';		//需开启log_bin或general_log

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

只要开启了日志功能,此项默认符合

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

询问是否有数据库审计设备,并将该数据库资产加入进去,或其他备份方式

d)应对审计进程进行保护,防止未经授权的中断

核查非审计管理员用户能否中断审计进程,若未进行三权分立,则为超管。

入侵防范

a)应遵循最小安装的原则,仅安装需要的组件和应用程序

不适用

b)应关闭不需要的系统服务、默认共享和高危端口

不适用

c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

select user,host from user;		//localhost为仅本地,若为%则是未限制

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

该项测评对象为应用系统,不适用

e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

通过漏扫软件或设备进行扫描

f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

不适用

恶意代码防范

a)应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

不适用

可信验证

a)可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心

可信验证需要从芯片等硬件层面进行,在金融行业少数能实现,默认不符合

数据完整性

a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

核查数据库远程管理是否采用 SSL 安全连接。

b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

MySQL鉴别口令一般通过SHA1哈希计算后保存在user表中,以前的MD5无法保证,需要加盐值。

数据保密性

a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

核查数据库远程管理是否采用 SSL 安全连接。

b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

Mysql 用户口令默认以密文形式存储,此项默认符合。

微信公众号

扫一扫关注CatalyzeSec公众号

我们一起来从零开始学习网络安全

 

加入我们的星球,我们能提供:

Fofa永久高级会员

常态化更新最新的漏洞POC/EXP

常态化更新未公开、半公开漏洞POC

常态化更新优质外网打点、内网渗透工具

常态化更新安全资讯

开放交流环境,解决成员问题

https://t.zsxq.com/18Fq7QNgv

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐