• 基线检查MySQL5.x Linux&Windows


    检查是否禁止mysql对本地文件存取

    理论依据:
    客户端连接web服务器时,可以使用SQL注入漏洞从web服务器读取文件。

    配置要求:
    禁用mysql对本地文件存取的功能。

    检查步骤:
    1、登录数据库;
    2、执行如下sql查看local_infile参数值:
    mysql>show variables like 'local_infile';

    合规标准:
    参数local_infile的值为OFF则合规,否则不合规。

    加固方案

    1、使用命令查找mysql配置文件:
    #ps -ef|grep -i "mysqld\s"|awk '{for(i=1;i如果这条命令的结果输出为空,可通过下面的命令查看mysql默认读取my.cnf的目录,顺序排前的优先。
    #mysqld --verbose --help 2>/dev/null|grep -A 1 "Default options"|grep -i "my.cnf"
    如果第二条命令输出的my.cnf文件都不存在,说明没有给mysql指定配置文件,需要创建一个新的my.cnf
    2、修改配置文件my.cnf,在文件中的[mysqld]区域插入如下内容:
    local-infile = false
    3、重启mysql服务
    #service mysql restart
    

    检查是否存在空密码

    理论依据:
    空密码允许用户不需要提供口令就可以成功登录数据库,从而使得目标设备的认证机制无效。

    配置要求:
    不允许存在空密码用户

    检查步骤:
    1、登录数据库;
    2、执行如下sql查看数据库是否存在空密码的账号:
    mysql>select User, Password from mysql.user where length(password) = 0 or password is null

    合规标准:
    系统不存在空密码的账号则合规,否则不合规。

    加固方案

    1、登录数据库。
    2、查看密码为空的用户:
    mysql>select User, Password from mysql.user where length(password) = 0 or password is null
    3、对密码为空的用户进行密码修改,例如修改root账号的密码:
    mysql>use mysql;
    mysql>update user set password=password('******') where user='root';
    mysql>commit;
    

    检查是否配置日志功能

    理论依据:
    1、启用错误日志可以提高对MySQL恶意攻击的检测能力;
    2、将MySQL日志移出数据库分区,可以有效降低通过耗尽mysql数据库可用磁盘空间导致的拒绝服务攻击;

    配置要求:
    数据库需要配置错误日志,以便于出现问题时更好分析原因和恢复

    检查步骤:
    1、登录数据库;
    2、执行如下sql查看数据库错误和二进制日志配置:
    mysql>show variables like 'log_error'
    mysql>show variables like 'log_bin'

    合规标准:
    配置了数据库错误日志和二进制日志则合规,否则不合规。

    加固方案

    1、使用命令查找mysql配置文件:
    #ps -ef|grep -i "mysqld\s"|awk '{for(i=1;i如果这条命令的结果输出为空,可通过下面的命令查看mysql默认读取my.cnf的目录,顺序排前的优先。
    #mysqld --verbose --help 2>/dev/null|grep -A 1 "Default options"|grep -i "my.cnf"
    如果第二条命令输出的my.cnf文件都不存在,说明没有给mysql指定配置文件,需要创建一个新的my.cnf
    2、修改配置文件my.cnf,在文件中的[mysqld]区域插入如下内容:
    log-bin = #开启二进制日志,将替换为实际日志存储路径
    log-error = #开启错误日志,将替换为实际日志存储路径
    3、重启mysql服务
    #service mysql restart
    

    检查是否更改默认mysql管理员账号

    理论依据:
    减少root账号和mysql数据库的交互次数,可以降低通过Mysql客户端出现的漏洞来破坏系统的可能性。

    配置要求:
    修改数据库管理员root的名称。

    检查步骤:
    1、登录数据库;
    2、执行如下sql查看数据库是否存在root账号:
    mysql>select user from mysql.user where user ='root'

    合规标准:
    数据库不存在名称为root的账号则合规,否则不合规。

    加固方案

    1、登录数据库
    2、选择需要操作的数据库
    mysql>use mysql;
    3、修改root账号名称
    mysql>update mysql.user set user="新用户名" where user="root";
    mysql>commit;
    

    检查是否存在匿名账户

    理论依据:
    匿名帐户是没有名字的用户,它们允许默认的登录和权限有时可以被其他用户使用。避免使用匿名帐户将确保只有可信的主体能够与MySQL进行交互。

    配置要求:
    删除匿名账户

    检查步骤:
    1、登录数据库;
    2、执行如下sql查看账户名称为空的账号:
    mysql>select count(user) from mysql.user where user=''\G

    合规标准:
    不存在账户名称为空的账号则合规,否则不合规。

    加固方案

    1、以管理身份登录数据库执行如下语句:
    mysql>select * from mysql.user where user='';
    
    2、对于查询到的用户使用以下步骤进行删除:
    mysql>delete from mysql.user where user='' and host='';
    mysql>commit;
    

    检查是否使用ssl连接

    理论依据:
    SSL将保护敏感信息的机密性和完整性,因为它遍历不受信任的网络。

    配置要求:
    要求使用ssl连接.

    检查步骤:
    使用如下命令查看mysql数据库ssl配置:
    mysql>show variables like 'ssl_key'
    mysql>show variables like 'ssl_ca'
    mysql>show variables like 'ssl_cert'
    mysql>show variables like 'have_openssl'

    合规标准:
    启用了ssl则合规,否则不合规.

    加固方案

    have_openssl功能 启用
    cert认证证书文件路径 不为空
    认证秘钥文件 不为空
    ca证书文件路径 不为空
    

    检查是否禁止mysql以管理员账号权限运行

    配置要求:
    以普通帐户安全运行mysqld,禁止mysql以管理员账号权限运行。

    检查步骤:
    使用以下命令查看mysqld进程的启动用户

    ps -ef|grep "mysqld"|grep -v "grep"|awk '{print $1}'

    合规标准:
    mysqld进程的启动用户不为root则合规,否则不合规.

    加固方案

    1、使用命令查找mysql配置文件:
    #ps -ef|grep -i "mysqld\s"|awk '{for(i=1;i如果这条命令的结果输出为空,可通过下面的命令查看mysql默认读取my.cnf的目录,顺序排前的优先。
    #mysqld --verbose --help 2>/dev/null|grep -A 1 "Default options"|grep -i "my.cnf"
    如果第二条命令输出的my.cnf文件都不存在,说明没有给mysql指定配置文件,需要创建一个新的my.cnf
    2、编辑/etc/my.cnf,在[mysqld]区域添加如下语句:
    [mysqld]
    user=mysql
    3、重启mysql服务
    #service mysql restart
    

    Windows下mysql:

    检查是否禁止mysql以管理员账号权限运行

    配置要求:
    以普通帐户安全运行mysqld,禁止mysql以管理员账号权限运行。
    审计步骤
    检查步骤:
    使用以下命令查看mysqld进程的启动用户

    tasklist /V /FI "IMAGENAME eq mysqld.exe"

    合规标准:
    mysqld进程的启动用户不为administrator则合规,否则不合规.
    加固方案
    1、编辑数据库配置文件my.ini,在[mysqld]区域添加如下语句:
    [mysqld]
    user=mysql
    2、重启mysql服务

  • 相关阅读:
    Python之sys & os
    1161
    1142
    P1599 货币
    P1547逆转,然后再见
    P1629八
    P1753HackSon的趣味题
    Problem 2233 ~APTX4869
    1269
    1091. Tmutarakan Exams
  • 原文地址:https://www.cnblogs.com/qtzd/p/16056871.html
Copyright © 2020-2023  润新知