IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql进阶:企业数据库安全防护方案 -> 正文阅读

[大数据]mysql进阶:企业数据库安全防护方案

0.引言

数据库安全是系统安全的重中之重,做好数据库安全防护及规范,是系统建设的基础。

今天我们来看看企业生产如何落地数据库安全防护机制。

1. 数据库安全问题

最好数据库安全,我们首先要了解能够威胁数据库安全的问题有哪些:
在这里插入图片描述

  • 1、基础设施薄弱
    作为数据库的第一层防护,我们的防火墙、网络设备、服务器等基础设施的防护如果不足,那么黑客则能够利用这些薄弱点,来攻击服务器,以获取数据库数据。

    甚至如果系统的硬盘存在问题,都不需要外部攻击,可能内部使用时就会导致数据损坏。

  • 2、弱认证
    数据库访问请求在经过网络层、硬件层的校验后,进入到数据库本身的认证校验中时,如果数据库本身的密码防护不足,也会导致安全问题。这一点也是很多初学者容易出现的问题,

  • 3、用户权限未隔离
    用户权限不做层级划分,不进行严格的权限分配,这是很多企业内部容易出现的安全问题。有的数据库管理员为了图方便,给每一个开发者都分配了一个最高权限的管理员账号,开发者能够随意更改表结构,调整库信息,这是非常危险的行为。

    从数据库管理员的职责出发,这样的做法是对企业生产极大的不负责。

  • 4、SQL注入
    SQL注入是我们老生常谈的问题了,这一点我们一般在开发层进行防护。随着开发者安全意识的提高以及各类持久层的完备,这类问题倒是越来越少,但并不意味着我们可以不重视它,越是熟悉的地方,反而越容易马虎。

  • 5、数据库备份弱加密
    数据库连接加密是很多人都会完善的,但是较多企业缺会忽略备份数据的加密或者加密等级不足,也会导致数据的二次泄漏。安全防护在哪一层都容不得马虎。

  • 6、数据库未做审计
    针对数据库搭建审计系统,这一点依然是不可或缺的。使用审计系统,我们可以监控执行的数据库更新语句,能够在数据更改中加上一层防护。最后一层防止职权的滥用以及针对SQL的检验。

    很多企业觉得我们企业小,没必要花钱搭建数据库审计系统,但生产数据的安全防护,真的不能有一点马虎,如果企业在这一块的投入有限,但至少将生产环境保护起来,同时现在开源免费的数据库审计软件有很多,所需要投入的无非就是服务器成本和运维成本。如果连这一点都舍不得,那么数据安全的风险你也需要硬着头皮承担。

2. 安全防护措施

在我们了解了数据库安全的风险点后,我们再一一针对这些问题点,来提出我们的防护方案:

2.1 网络硬件安全防护

针对基础硬件的安全防护,这一点不是开发能够关注得到的,一般是由硬件供应商来提供。因此我们就需要关注我们能够触及到的网络层安全防护了。

1、对外暴露时不要使用默认的数据库端口
比如3306,建立内外网端口映射。这样能够降低恶意程序对数据库的攻击准度。

2、网络隔离
通过VLAN、防火墙建立网络环境隔离,将开发环境、测试环境、生产环境区分开来,防止一个环境产生问题而导致的事故蔓延。
针对开发者需要连接上企业服务器进行某些环境部署或者生产排错的,需要搭建堡垒机,并且指定用户禁用某些敏感指令,比如rm,reboot,chown等指令。从根本上扼杀“删库跑路”的可能。

3、防病毒系统
如果你不想让你的服务器裸奔,那么安装防病毒系统必不可少,而选择哪些防病毒系统呢,最方便的解决方案就是联系你的服务器供应商,让他们给你提供完备的解决方案吧。
如果实在预算有限,那么就做好其他方便的防控,严格把控端口开放、权限释放。

4、监控系统
我们需要一个监控系统来帮助我们全天监控服务器情况,发现异常情况马上告知我们,比较早期的zabbix和现在流行的k8s都是不错的选择。

2.2 连接加密

除了网络和硬件层外,连接加密是数据库内部最顶层的保护措施了,设置用户连接数据库的账号及密码,注意密码不可设置的过于简单,最好包含大小写字母、数字、特殊字符,长度不小于8位

针对书写在配置文件中的连接密码,要设置加密,防止二次暴露

2.3 用户权限隔离

这一点是重中之重,权限分层管理,不同的用户、角色设置不同的权限,普通开发人员不给予DDL权限,选择性开放DML权限。

不需要的绝不多开一点权限,权限开通严格执行审批流程。

2.4 视图保护

虽然现在已经不太建议采用视图了,但是针对一些内部对接或者特殊要求,视图依然是一种选择,通过视图可以严格把控输出哪些字段数据,并且针对视图进行赋权,把控哪些用户能够访问哪些视图。以此保障数据安全

2.5 审计系统

审计系统的搭建是小型企业实际生产容易忽略的问题,但是数据库审计系统却是数据安全防护至关重要的一环。除了完备的商业数据库审计软件外,我们还可以选择一些开源的数据库审计软件或插件,比如通过数据库审计插件:Percona Audit Log Plugin、MariaDB Audit Plugin、McAfee MySQL Audit Plugin、htp_audit,还有开源或免费审计软件:yearning、CloudQuery

2.6 防SQL注入

如今多数的web防火墙、数据库防火墙或者一些防护软件能够有效防护SQL注入,但是我们在实际的开发过程中依然要养成避免SQL注入的习惯,比如mybatis中书写中慎用${},在程序中书写特殊字符过滤器等。

2.7 数据库备份加密

数据库备份是必不可少的操作,一般我们可以采用mysqldump指令实现。但是备份的数据文件如果不加以严格管理,反而成为一个安全隐患。

针对备份的数据,做好异地储存,同时也要做好储存文件的加密,加密密码不可过于简单。守好安全防护的最后一关。

总结

本期针对数据库安全防护的讲解就到此结束了,本期先针对防护概念做出梳理,下一期我们将讲讲其中一些措施的具体实施

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:22:43  更:2022-09-13 11:26:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:40:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码