Mysql数据库测评
0x01 前言
"没有网络安全、就没有国家安全"
等保测评是什么?
等保测评(网络安全等级保护测评)是根据中国《网络安全法》及相关标准,对信息系统安全防护能力进行检测评估的法定流程。其核心依据《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019),通过定级、备案、建设整改、测评和监督五个环节,验证系统是否具备相应等级(共五级)的安全控制措施,涵盖物理、网络、数据、管理等10个层面。测评由第三方机构执行,结果作为系统合规运营的重要凭证,金融、政务、医疗等关键领域需定期开展,旨在防范网络威胁,保障核心数据与基础设施安全。未通过测评的系统需限期整改,否则可能面临行政处罚。
通俗来讲:如果应急响应是被攻击后进行的排查溯源,那么等保测评可以理解为在项目上线前对本机进行主机测评,中间件及数据库测评和WEB渗透测试等测评项,降低被攻击拿下的概率,保证"最小权限原则、最小安装原则、最新版本"
0x02 测评过程
以Centos7&Mariadb为例
1.身份的鉴别
a).对登陆的用户进行身份鉴别,并确保密码复杂度并定期更换密码
以Centos为例,使用mysql -uroot -p登录,是否需要密码登录,默认情况下为空密码
Select user,host from mysql.user
Mysql 5.7以下版本:
Select * from mysql.user where length(password)=0 or password is null;
Mysql5.7以上版本:
Select user,passwrod from mysql.user;
查看密码复杂度:
Show variables like ‘validate%’;
b).限制非法登录,登陆超时,防止暴力破解等
Mysql默认未安装connection_control插件
Show variables like “%connection_control%”:返回结果为空
查看超时返回值:
show variables like "%timeout%";
c).应当防止在远程控制时,传输信息被监听
存在远程管理用户则执行以下命令查看是否开启SSL
Show variables like “%have_openssl%”或
show variables like "%have_ssl%"
2.访问权限的控制
a).对登录的账户分配对应的权限
select user,host from mysql_user;
查看是否只有root用户存在分配权限的权限,其他用户没有
Show grants for ‘用户名’@’localhost’;
b).默认多余、可疑用户删除操作,空口令进行设密
查看是否存在以上情况
Select user,host from mysql.user;
c).删除或禁用多余、共享、过期、锁定账户
查看用户状态
Select user,account_locked from mysql.user;
d).授予用户最小权限,实现权限分离
select * from mysql.user
查看此角色是否除了本身权限外具有其他角色的权限
select * from mysql.user where user='root'\G;
e).设定的访问策略,主体和客体之间的访问规则
select * from mysql.user; 检查用户权限
select * from mysql.db; 检查数据库权限
select * from mysql.columns_priv; 检查列权限
登录其他用户/普通用户 查看有无越权行为
3.安全审计
a).启用安全审计功能,记录每个用户行为和事件作为审计
查看日志开启及存放的结果,默认不开启,不符合实际情况
Show global variables like ‘%general%’;
b).审计记录(包含日期,用户,时间,事件类型等信息)
select * from general_log;
c).应用审计定期备份,防止被删除,覆盖
应当只有root用户可操作日志
定期对日志进行备份,可采用第三方工具或脚本进行备份
其他用户对日志没有增删改的权限
4.入侵防范
a).对于远程管理进行限制指定用户访问进行配置
select user,host from mysql.user where host =’%’;
b).及时发现漏洞并确认,及时打补丁修复
show variables where variable_name like “version”;
查看当前数据库版本
使用mysql –version也可以查询