当前位置: 首页 > news >正文

安全运维之mysql基线检查

版本加固

选择稳定版本并及时更新、打补丁。

稳定版本:发行6-12个月以内的偶数版本。

检查方法:

使用sql语句:select version();

检查结果:

1661772233_630ca1c9837ded93b2e5c.png!small

存在问题:当前数据库版本较老需要更新

解决方案:前往http://www.mysql.com进行更新。

** 弱密码**

数据库不存在弱口令,提高数据库安全性

检查方法:

sql语句:select user,authentication_string from user;

检查结果:

1661772246_630ca1d6985ef12ac251c.png!small

1661772252_630ca1dc65ac167b3dcd9.png!small

存在问题:当前root账户使用弱密码

解决方法:首先以root用户登录

mysql>use mysql

mysql>update user set password=password(“复杂的新密码”) where user=‘test’;

mysql> flush privileges;

** 不存在匿名账户**

检查方法:

sql语句:select user,authentication_string from user;

检查结果:

1661772261_630ca1e584c4750dab85f.png!small

存在问题:存在账户为空的匿名账户。

解决方法∶

删除匿名帐户∶

mysql>use mysql;

mysql>delete from user where user=";

mysql>flush privileges;

** 合理设置权限**

检查方法:

Sql语句:show grants for xxxx(用户名)@xxxx(主机域)

检查结果:

1661772273_630ca1f11c1bdc41e2ea9.png!small

存在问题:应用用户授予的权限过大,可能出现权限滥用

解决方法:一般应用用户建议授予最小权限

grant权限1权限2…权限n on数据库名称.表名称to 用户名@用户地址

** 合理设置文件权限**

检查方法:

Linux语句:

ls -al .mysql_history .bash_history

ls -al /etc/my.cnf

find / -name .MYD |xargs ls -al

find / -name .MYI |xargs ls -al

find / -name .frm |xargs ls -al

检查结果:

1661772285_630ca1fdb231adcbb9a7f.png!small

1661772291_630ca2031abd70ea4428c.png!small

存在问题:.mysql_history .bash_history 应为600权限

/etc/my.cnf 应为644权限

不合理设置数据库文件权限,可能导致非授权访问或篡改

解决方法:

chmod 600 .mysql_history .bash_history

chmod 600 *.MYD *.MYI *.frm

chmod o-rw /etc/my.cnf

** 日志审核**

检查方法:

查看my.cnf或my.ini文件,查看是否包含如下设置

[mysqld]

log = filename

检查结果:

1661772306_630ca212ccc9396889023.png!small

存在问题:

没有设置日志审核,可能导致安全事件发生时无法查看日志记录

解决方法:

在mysql的安装目录下,打开my.cnf或my.ini,在【mysqld】

后面加上如下的参数,取消注释并配置日志文件,保存后重启mysql服务就行了。#Enter a name for the binary log.
Otherwise a default name will be used.

#log-bin=

#Enter a name for the query log file. Otherwise a default name will be used.

#log=

#Enter a name for the error log file. Otherwise a default name will be used.
log-error=

#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=

运行账号

检查方法:

检查进程属主和运行参数是否包含–user=mysql

linux语句:

ps -ef|grep mysqld

grep -i user /etc/my.cnf

检查结果:

1661772325_630ca2258dbe663cf3aed.png!small

存在问题:

Mysqld服务不以普通用户运行,数据库高权限被利用

解决方法:

编辑/etc/my cnf,设置如下∶

[mysql.server]

user=mysql

重新启动mysqld服务

可信ip地址控制

检查方法:

Sql语句:select user,host from mysql.user;

检查结果:

1661772334_630ca22e0e67649ad6040.png!small

存在问题:

Root,test2,test3,test4,test5,匿名用户主机域都为:%,这导致任意ip都可连接数据库,增加了数据库的攻击面,降低了数据库的安全性。

解决方法:

mysql>GRANT ALL PRIVILEGES ON**TO’可信任用户’@'可信任ip地址’IDENTIFIED BY’可信用户密码’WITH
GRANT OPTION;

连接数限制

检查方法:

查看MySQL配置文件∶my.cnf 或者是 my.ini

在【mysqld】段查看最大连接数配置∶

max_connections =1000 查看最大连接数

Sql语句:mysql> show variables like ‘max_connections’;

检查结果:

1661772345_630ca239014295ba333d8.png!small

1661772351_630ca23f2e7b4b68e5e16.png!small

存在问题:根据业务需求设置数据库最大连接数

解决方法:

编辑MySQL配置文件∶my.cnf 或者是 my.ini

在【mysqld】配置段添加∶

max_connections = 业务需求设置数据库最大连接数

保存,重启MySQL服务。

禁止远程连接数据库

检查方法:

Sql语句:show variables like “%skip_networking%”;

show variables like “%bind_address%”;

检查结果:

1661772364_630ca24c23d2a6888f376.png!small

存在问题:

允许远程连接数据库

解决方法:

为了禁止该功能,启动skip_networking,不监听sql的任何TCP/IP的连接,切断远程访问的权利,保证安全性。

vim /etc/my.cnf

[mysqld]

bind_address=127.0.0.1

skip_networking=1

假如需要远程管理数据库,可通过安装PhpMyadmin来实现。

假如确实需要远程连接数据库,至少修改默认的监听端口,同时添加防火墙规则,只允许可信任的网络的mysql监听端口的数据通过。

改变默认mysql管理员帐号

检查方法:

Sql语句:select user from user;

检查结果:

1661772375_630ca2574b969dc15c4a8.png!small

存在问题:

系统mysql的管理员名称是root,而一般情况下,数据库管理员都没进行修改,这一定程度上对系统用户穷举的恶意行为提供了便利.

解决方法:

改成不易被猜到的用户名:

mysql> update user set user=“newroot” where user=“root”;

mysql> flush privileges;

删除默认测试库

检查方法:

sql语句:show databases;

检查结果:

1661772407_630ca27759752b05cb305.png!small

存在问题:

存在空用户和TEST库,这会对数据库的安全构成威胁,有必要全部删除.

解决方法:

#mysql> show databases;

#mysql> drop database TEST;

命令历史记录保护

检查方法:

Linux语句:

Ls .mysql_history .bash_history

Cat .mysql_history

Cat .bash_history

检查结果:

1661772420_630ca284849733d4c4942.png!small

1661772425_630ca2890efa7ec253d6c.png!small

1661772430_630ca28e368faf05e94f9.png!small

存在问题:

数据库相关的shell操作命令都会分别记录在.bash_history,如果这些文件不慎被读取,会导致数据库密码和数据库结构等信息泄露,而登陆数据库后的操作将记录在.mysql_history文件中,如果使用update表信息来修改数据库用户密码的话,也会被读取密码.

解决方法:

需要删除这两个文件获奖者将文件置空

同时在进行登陆或备份数据库等与密码相关操作时,应该使用-p参数加入提示输入密码后,隐式输入密码

rm .bash_history .mysql_history //删除历史记录

ln -s /dev/null .bash_history //将shell记录文件置空

ln -s /dev/null .mysql_history //将mysql记录文件置空

禁止MySQL对本地文件存取

检查方法:

linux命令:cat /etc/my.cnf

检查结果:

1661772447_630ca29fab82771bf7df3.png!small

存在问题:

本地文件存取打开。

解决方法:

–local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA LOCAL命令,假如需要获取本地文件,需要打开,但是建议关闭。

可以在my.cnf中添加local-infile=0,或者加参数local-infile=0

重新启动mysql。

Scuba扫描

1661772466_630ca2b2801ac6dee88e6.png!small

存在三个高危漏洞,六个中危漏洞。

1661772475_630ca2bb6ec70ab5476c1.png!small

第一个高危漏洞:主机域有通配符。

主机域有通配符意味着任意ip都可连接该账号,这将导致该数据库安全性下降。

1661772483_630ca2c3e738aa0740445.png!small

第二个高危漏洞:have_symlink选项设置为 YES。

1661772494_630ca2ce893d398ce251e.png!small

第三个高危漏洞:存在匿名账户。

1661772502_630ca2d66c7c0a012ef5b.png!small

六个中危漏洞,

ssl_type选项未设置为远程用户必需。

1661772511_630ca2df8a036ca9c5947.png!small

现有“测试”数据库。

1661772517_630ca2e59c8718a0fa46f.png!small

default_password_lifetime选项已禁用或设置为 91 或更高。

1661772530_630ca2f2cb3ff69e1c533.png!small

local_infile选项未禁用。

1661772538_630ca2fa35db1f974c83b.png!small

sql_mode选项未设置为“STRICT_ALL_TABLES”。

1661772543_630ca2ff1711ebf4b50eb.png!small

用户没有密码过期策略。

1661772549_630ca30540ae36c7715cf.png!small

程用户必需。

[外链图片转存中…(img-POVqk1ix-1676620810659)]

现有“测试”数据库。

[外链图片转存中…(img-iNGbvUDe-1676620810659)]

default_password_lifetime选项已禁用或设置为 91 或更高。

[外链图片转存中…(img-pSuNpBme-1676620810660)]

local_infile选项未禁用。

[外链图片转存中…(img-TFn3YVxO-1676620810660)]

sql_mode选项未设置为“STRICT_ALL_TABLES”。

[外链图片转存中…(img-fRTnJTBe-1676620810660)]

用户没有密码过期策略。

[外链图片转存中…(img-IAvZNzTz-1676620810661)]

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

相关文章:

安全运维之mysql基线检查

版本加固 选择稳定版本并及时更新、打补丁。 稳定版本:发行6-12个月以内的偶数版本。 检查方法: 使用sql语句:select version(); 检查结果: 存在问题:当前数据库版本较老需要更新 解决方案:前往http://www.mysql…...

跨境电商卖家敦煌、雅虎、乐天、亚马逊测评自养号的重要性!

作为亚马逊、敦煌、乐天、雅虎等跨境的卖家,这两年以来,面对流量越来越贵的现实,卖家需要更加珍惜每次访问listing页面的流量,把转化做好,把流量尽可能转化为更多的订单。 提升转化率的技巧 提升产品转化率&#xff0…...

Python 之 Matplotlib xticks 的再次说明、图形样式和子图

文章目录一. 改变 x 轴显示内容 xticks 方法再次说明1. x 轴是数值型数据2. 将 x 轴更改为字符串3. 总结二. 其他元素可视性1. 显示网格:plt.grid()2. plt.gca( ) 对坐标轴的操作三. plt.rcParams 设置画图的分辨率,大小等信息四. 图表的样式参数设置1. …...

3.InfluxDB WEB使用

结合telegraf做指标数据收集 点击 Load Data -> Telegraf 配置界面 influxDB支持在WEB-UI中生成配置文件 然后利用telegraf通过远程URL请求的方式进行获取 点击CREATE CONFIGURATION 创建telegraf配置文件 选择Bucket InfluxDB提供了很多配置好的监控模板供用户选择 可以…...

git冲突合并

一、版本说明 dev:本地仓库中的dev分支 master:本地仓库中的master分支 remotes/origin/master和origin/master:都是远程仓库上的master分支 二、一个解决冲突的常规流程 1、前提条件:不能在master分支上修改任何文件。master分支…...

项目自动化构建工具make/Makefile

目录 make/Makefile概念和关系 make/Makefie的使用 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重…...

双目客流统计方案的应用原理

双目客流统计客流摄像头采用立体视觉技术实现高度统计功能。基于视差原理。利用双镜头摄取的两幅图像的视差,构建三维场景,在检测到运动目标后。通过计算图像对应点间的位置偏差。获取目标的三维信息,在深度图像中对目标的检测与追踪&#xf…...

python魔术方法(二)

__getattr__() class A:def __getattr__(self,name):print(f"getting {name}")raise AttributeErroro A() print(o.test)程序调用一个对象的属性,当这个属性不存的时候希望程序做些什么,这里我们打印希望的属性,并且抛出异常 __…...

cmd for命令笔记

语法 help for输出如下: 对一组文件中的每一个文件执行某个特定命令。 FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 c…...

4.1 Filter-policy

1. 实验目的 熟悉Filter-policy的应用场景掌握Filter-policy的配置方法2. 实验拓扑 Filter-policy实验拓扑如图4-5所示: 图4-5:Filter-policy 3. 实验步骤 (1) 网络连通性 R1的配置 <Huawei>system-vi…...

day15_常用类

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、代码块[了解] 三、API 四、Object 五、包装类 六、数学和随机 零、 复习昨日 抽象接口修饰符abstractinterface是不是类类接口属性正常属性没…...

【网络原理5】IP协议篇

目录 IP协议报头 4位版本号 4位首部长度 8位服务类型(TOS) 16位总长度 IP拆包 16位标识、3位标志、13位片偏移​编辑 8位生存时间(TTL) 8位协议 16位首部校验和 网络地址管理 32位源ip&32位目的ip 方案一:动态分配ip地址 方案2:NAT网络地址转换(使用一个ip代…...

Unity导出WebGL工程,并部署本地web服务器

WebGL打包 设置修改 在Build Settings->PlayerSettings->Other Settings->Rendering 将Color Space 设置为Gamma 将Lightmap Encoding 设置为NormalQuality 在Build Settings->PlayerSettings->Publishing Settings 勾选Decompression Fallback 打包 完成配…...

蓝桥杯考试总结汇总

一进考场设置devc快捷键 设置注释和取消注释快捷键设置代码自动补全快捷键开启devc调试功能&#xff0c;详细可以看怎么开调试功能https://blog.csdn.net/hz18790581821/article/details/78418648比赛过程中&#xff0c;如果不相信自己是否做对&#xff0c;没有把握的&#xf…...

备战蓝桥杯【二维前缀和】

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…...

阿里P6细谈Python简易接口自动化测试框架设计与实现,我直呼内行

1、开发环境 操作系统&#xff1a;Ubuntu18 开发工具&#xff1a;IDEAPyCharm插件 Python版本&#xff1a;3.6 2、用到的模块 requests&#xff1a;用于发送请求 xlrd&#xff1a;操作Excel&#xff0c;组织测试用例 smtplib&#xff0c;email&#xff1a;发送测试报告 l…...

数据库存储

RAID DSL &#xff1a; Domain Spesic Language 专用领域语言 单机存储 一切皆Key-Value 本地文件系统 一切皆文件 Ceph - 分布式存储 关系型数据库通用组件 Query Engine &#xff1a;解析query&#xff0c;生成查询计划Txn Manager &#xff1a;事务并发管理Lock Man…...

hive学习笔记

一、Hive基本概念1.1 hive是什么hive是基于hadoop的一个数仓分析工具&#xff0c;hive可以将hdfs上存储的结构化的数据&#xff0c;映射成一张表&#xff0c;然后让用户写HQL(类SQL)来分析数据tel up down 1383838438 1345 1567 138383…...

7大体系防作弊,牛客放大招了!严肃笔试客户端上线!

如果问起学生对在线笔试的印象&#xff0c;“不公平”和“不服气”占了半壁江山。学生认为很多企业的在线笔试系统并不完善。原因一&#xff0c;不能有效地规避部分学生的作弊行为&#xff1b;原因二&#xff0c;在线考试系统不稳定&#xff0c;bug频出&#xff0c;导致笔试发挥…...

R语言广义可加模型在空气环境污染方面的应用(1)

粉丝私信我希望复制一篇文章的图片&#xff0c;图片来源于文章&#xff1a;Wu C, Yan Y, Chen X, Gong J, Guo Y, Zhao Y, Yang N, Dai J, Zhang F, Xiang H. Short-term exposure to ambient air pollution and type 2 diabetes mortality: A population-based time series st…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划&#xff0c;涵盖存储系统的布局、数据存储策略等&#xff0c;它明确数据如何存储、管理与访问&#xff0c;为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...