等保三级整改建议——mysql5.6.51

身份鉴别

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

密码有效期:由于mysql5.6.51没有default_password_lifetime 函数所以我们可以使用脚本来实现密码更换日期
 

#!/bin/bash

# MySQL登录信息
MYSQL_USER="your_mysql_user"
MYSQL_PASSWORD="your_mysql_password"

# 过期密码的 SQL 查询
QUERY="SELECT user FROM mysql.user WHERE password_expired = 'N' AND password_last_changed < (NOW() - INTERVAL 30 DAY);"

# 连接到 MySQL 并执行查询
PASSWORDS_TO_EXPIRE=$(mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "$QUERY" | tail -n +2)

# 循环过期密码并让其过期
for USER in $PASSWORDS_TO_EXPIRE
do
    mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -e "ALTER USER '$USER' PASSWORD EXPIRE;"
done
crontab -e     //使用 cron 定时任务来每隔 30 天运行该脚本

0 0 1 * * /path/to/expire_passwords.sh     //这样设置后,每个月的第一天脚本就会执行,检查并将所有密码超过 30 天的用户密码设置为过期状态。

密码复杂度设置:

SET GLOBAL validate_password_length = 8;  
//设置mysql的密码长度最小为8位

SET GLOBAL validate_password_number_count = 1;
//设置密码必须包含一个数字

SET GLOBAL validate_password_mixed_case_count = 0;
//设置为 0 表示大小写不敏感;若为1则表示必须包含一个大写字母和一个小写字母。

SET GLOBAL validate_password_special_char_count = 1;
//密码中必须包含至少一个特殊字符。

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

设置连接超时

vim /etc/my.cnf

[mysqld]
connect_timeout = 100
            
//在my.cnf这个配置文件里面写入连接超时时间,单位为秒

设置登录次数限制

SET GLOBAL max_connect_errors = 10;      //设置登录失败限制登录为10次
 

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

我们需要使用openssl生成证书和秘钥然后将配置文件修改为启用ssl;

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /path/to/mysql-key.pem -out /path/to/mysql-cert.pem
//生产秘钥和证书

sudo cp /path/to/mysql-cert.pem /etc/mysql/ssl/
sudo cp /path/to/mysql-key.pem /etc/mysql/ssl/
//将生成的文件拷贝到安全目录下

vim /etc/my.cnf   //进入到mysql配置文件
[mysqld]
ssl-ca=/etc/mysql/ssl/mysql-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-cert.pem
ssl-key=/etc/mysql/ssl/mysql-key.pem
//添加启用ssl安全层


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

建议使用双因素方式进行验证其中一种包含密码技术

访问控制

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

如果严格按照要求可以将root删除,但要先进行权限划分(参考访问控制d进行权限划分)

DROP USER 'root'@'localhost';      /删除root
 

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

mysql -u root -p                         //登录到 MySQL

RENAME USER 'old_user' TO 'new_user';   //修改用户名

FLUSH PRIVILEGES;                       // 刷新权限

exit;                                   //退出 MySQL
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');
//修改密码(username代表你的用户名,PASSWORD代表现在的用户名,new_password代表新的密码)

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

select user,host from mysql.user;      //查询所有用户

DROP USER 'username'@'localhost';      //删除用户

FLUSH PRIVILEGES;                      //刷新权限

exit;                                  //退出 MySQL
 

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


CREATE USER 'sysadmin'@'localhost' IDENTIFIED BY 'password';
//创建系统管理员用户

GRANT ALL PRIVILEGES ON *.* TO 'sysadmin'@'localhost' WITH GRANT OPTION;
//给予所有权限

FLUSH PRIVILEGES;
//刷新权限



CREATE USER 'auditadmin'@'localhost' IDENTIFIED BY 'password';
//创建审计管理员用户

GRANT SELECT ON mysql.general_log TO 'auditadmin'@'localhost';
//给予审计相关权限

FLUSH PRIVILEGES;                                 //刷新权限



CREATE USER 'securityadmin'@'localhost' IDENTIFIED BY 'password';        // 创建安全管理员用户


GRANT CREATE USER, ALTER USER, RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER ON *.* TO 'securityadmin'@'localhost';    //给予安全相关权限


FLUSH PRIVILEGES;                              //刷新权限

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

SHOW GRANTS FOR 'username'@'host';      //查看用户的权限

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

普通用户不能访问配置文件即可

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

mysql不提供此功能;

安全审计

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

SET GLOBAL general_log = 'ON';        //启用安全审计

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

通常在etc/my.cnf下可以配置审计开启

vim /etc/my.cnf

log_bin = mysql-bin

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

由于我的mysql版本为5.7以下,mysql5.7以上版本可以直接安装组件进行备份,mysql5.7以下则需要创建脚本和计划任务进行备份。

#!/bin/bash


cp /var/log/mysql/target.log /path/to/backup/target-$(date +%Y%m%d).log  //备份日志文件



find /path/to/backup/ -type f -name 'target-*' -mtime +180 -exec rm {} \; 
//清理180天前的日志文件
crontab -e                                        //编辑 cron 任务列表

0 1 * * * /path/to/backup_and_clean_logs.sh      //添加这一行代表系统在凌晨1点自动执行脚本

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

普通用户无法中断审计进程即可。

入侵防范

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

mysql仅安装所需功能即可。

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

数据库不适用;

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

vim /etc/my.cnf                //进入到mysql配置文件

bind-address = 0.0.0.0         //允许所有地址访问,可以根据业务所需进行设置

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

此项不适用于数据库,可忽略。

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

show variables where variable_name like "version";       //查询补丁版本

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

数据库不适用,此项可以忽略。

可信验证

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

此条需采用可信设备,无条件可忽略。

数据完整性

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

上面已经配置过ssl此处不再展示

show variables like "%have_ssl%";       //查看是否启用ssl

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

SHOW VARIABLES LIKE 'secure_auth';       //查看数据库的哈希散列算法是否开启

数据保密性

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

 上面已经配置过ssl此处不再展示

show variables like "%have_ssl%";       //查看是否启用ssl

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

SHOW VARIABLES LIKE 'secure_auth';       //查看数据库的哈希散列算法是否开启

数据备份恢复

a)应提供重要数据的本地数据备份与恢复功能;

备份完的.sql文件在默认在  /var/lib/mysql/目录下面

mysqldump -u username -p database > backup.sql        //备份一个数据库

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;

使用服务器的sftp功能将数据实时发送到异地。

c)应提供重要数据处理系统的热冗余,保证系统的高可用性。

建议采用主从复制的方式进行备份数据库实现高可用性。

剩余信息保护

a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;

如果此项不符合那么将记住账户名密码的选项取消,重新登录时需要输入账户名密码。

b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。

应核查相关配置信息或系统设计文档,敏感数据所在的存储空间被释放或重新分配给其他用户前是否得到完全清除。

个人信息保护

a)应仅采集和保存业务必需的用户个人信息;

1、应核查采集的用户个人信息是否是业务应用必须的;
2、应核查是否制定了相关用户个人信息保护的管理制度和流程。

b)应禁止未授权访问和非法使用用户个人信息。

1、应核查是否采用技术措施限制对用户个人信息的访问和使用;
2、应核查是否制定了有关用户个人信息保护的管理制度和流程;

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
尊敬的领导: 根据等保2.0系统整改建议模板,我经过深入研究和分析,针对我们公司当前面临的等保2.0系统整改问题,提出以下建议: 1. 完善安全策略: 首先,我们应重新评估公司的安全风险,制定适合公司的安全策略和目标。根据等保2.0的要求,将安全运营管理、网络安全管理、应用系统安全管理等方面纳入策略中,并确保策略的全面性和可操作性。 2. 加强网络安全: 针对等保2.0的网络安全要求,我们需要加强网络设备的管理和维护。建议定期对网络设备进行安全检查和漏洞扫描,及时修补和更新补丁,以确保网络的安全性。此外,建议对网络通信进行加密,确保数据传输的机密性和完整性。 3. 强化访问控制: 鉴于等保2.0的要求,我们应对系统访问进行严格的控制和管理。建议采用多层次的访问控制方法,例如角色访问控制、身份认证等,并合理控制内外部人员的权限。另外,建议定期评估和审查员工的访问权限,确保权限仅限于工作职责需要的范围。 4. 加强安全培训: 为提高员工的安全意识和技能,建议加强安全培训。培训内容可以包括等保2.0的政策法规、安全控制措施、网络攻击和防御等方面。培训可以通过内部讲座、在线教育等方式进行,并建立相应的培训档案。 5. 加强安全监控与应急响应: 针对等保2.0的安全监控和应急响应要求,建议建立完善的安全监控系统,并配置合适的监控工具。监控工具可以实时监测系统的状态、检测异常行为,并及时发出警报。同时,建议建立紧急事件响应流程,制定应急预案和演练,并确保在安全事件发生时能够迅速应对。 以上是我对公司等保2.0系统整改建议,希望能够为公司的安全建设提供一些参考。我们将持续关注等保2.0的最新要求和标准,并积极推进整改工作,确保公司系统的安全和稳定。谢谢! 高级安全专员 日期:2022年1月1日

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值