【MySQL】MySQL的安全风险与安装安全风险
现在云上在云原生环境,包括 AI 的环境里面数据的安全是最重要的,数据的安全在安全的管理过程中。网络的安全又是最为关键的。但是具体到 mysql 数据库或者是数据库系统,那么安全都有哪些问题,你怎么去解决这个,这点真的非常重要。它是数据库是企业业务系统的核心的业务支撑平台,所以数据库的这些管理概念等等,对建立工程思维,开阔思路是非常重要的。
从不同的维度和角度来进行分析。首先就是识别常见的安全风险。
那么对数据库来说,你在云上会有哪些常见的风险,这个你必须要知道。你不管你是做数据库管理,还是你使用数据库,或者是我们现在做 SRE我们去在云上去编程的时候做控制器的时候,这些安全风险我们都要。有这方面的意识,再一个能列出针对网络口令,操作系统,文件系统和应用的安全问题和应对措施。
网络口令,我们通过网络通过口令登录操作系统。在操作系统里面,我们的数据是在数据文件。是在文件系统,你们现在临时都需要了文件系统和挂载点,这是两个不同的概念,我们现在说的文件系统以及应用程序就是从用户开始建连接开始,一直到应用程序到访问应用程序。
安全问题。不同的安全问题你怎么去应对它?方法就保护数据,以免遭拦截和访问。就是我们要分析。另外,在数据库的使用过程中,几乎所有现在云上的应用都要加密使用 SSL, SSL 叫 socket secure layer 就 socket 的安全层,它跟 SSH 不一样,这个是个加密算法进行安全的 mysql 服务器的连接。同时,我们在连接上。使用 SSH 创建到 mysql 的安全的远程连接都是必须的,特别是现在容器化应用现在几乎全是企业的应用。全部是微服务的未来肯定也是那么微服务的应用的话,大家都在一个资源池,那么组件之间的安全怎么办?这里面就非比较敏感,这个安全问题管理起来也比较难。最后,我们介绍了一个 mysql 企业版的一个企业防火墙,这个防火墙主要是用来。通过学习训练,靠防火墙用来规避这块注入的风险,在企业里面用的还是比较普遍的。我们来。具体看一下安全风险。
当多个用户同时访问 mysql 服务器的时候,尤其是当这些用户通过互联网访问的时候,我们应用现在几乎都是互联网应用,现在基本上最活跃的应用基本上都集中在手机端。智能终端,现在是我们使用互联网的主流的设备,大家可能没经历过那个变革的时代,就上一个变革时代,互联网的时代。当时我们上网上聊天 qq 我们到 qq 里面种的菜什么都用的电脑,谁用手机根本就不可能的用,然后晚上回家都要看一下,我这个谁偷我的菜,什么偷点别人当然大家都玩。
都是用的台式机,几乎家家都有个台式机,现在好多家里现在已经很少有台式机,除非我们专业人员为啥大家用的手机,为啥苹果手机卖得那么好,为啥我们说乔布斯是一个?是一个巨人伟人的,因为乔布斯他在准备做手机的时候,看到理念已经变了。别人都认为手机是个通讯工具叫 mobile phone,就是移动电话的时候,他已经把手机已经定义为一个 computer。所以他基于这个理念,他就开始设立手机,为了更简单硬件,那键盘什么都不要了,它就是屏幕上训诫他。所以这所以苹果手机是个革命性的产品。
mysql 服务器的安全就会受到威胁,就说我们现在做任何事情都是通过网络无处不在,面临风险的不仅是 mysql 服务器。整个服务器主机都能受到影响,我要说一下这里面涉及到 selinux 这句话,mysql 服务器 server 就是 mysqld就说我们用户通过互联网去连接黑客,你能连接人家黑客也能连接人家把你的mysqld给控制了,这叫 mysql 服务器。mysql 服务器控制了,那意味着你整个主机上运行的其他的这些进程,它的数据文件有可能都会受到损害。但是因为有 selinux,所以必须要配置。有了 selinux 机制以后,就算 mysql 被控制了,那么损失也只是 mysql 的数据目录或者是 mysql。-t 打了 mysql 标签的这些文件,其他的文件它是控制不了的。
那么对于 mysql 来说,它的安全的攻击,主要有这么几种,这些攻击是互联网上的攻击,所有的互联网应用都会存在,第一窃听,第二,更改还有播放,还有拒绝服务播放的就是重放。因为在网上传的这一个包,包里面有原路由有它的目的 ip有发送的 ip等等。自己会做底层开发,你把它包取出来以后,它你放内存,它实际上你每个字段是啥,那都是固定好的,它每个字段前,你打开以后。从指针第零个字节开始,多少个字节是啥,多少个字节。
怎么说,二进制文件的处理,比如说我们前100个字节放的什么东西后100个后150个字节放在连续的文件就能读出来,文件头就是。比如说前5000个字节是文件头,那么5000个字节以后一直到文件结尾标志全是数据。你们如果作为底层开发,这个很好理解一个包放的内存,它就是内存文件,它有句柄,一个句柄就是首地址。你知道它每个字节的作用的时候,知道它的这个包的格式的时候,你能把它的内容全部读出来。这一套加密那是另外一回事,但是你包的格式你肯定是知道的,如果你知道以后你可以更改它的内容,如果没加密的,那是非常危险的,但是你敢说现在 SSL,没有被破解的,谁都不敢说,这个世界太疯狂,涉及到这种的时候,他有了他也不会说,所以说身上就没有绝对,安全都相对的。
所以企业的数据安全要靠审计制度来控制技术不是万能的,所以你们涉及到你们做的 SRA 岗位非常重要。
对咱们网上传送的东西必须要经过加密以后基本上是安全一会这几种方式,那么最常见的,这个风险就是从软件的安装就已经开始,所以你像你们看动物世界的时候,那羚羊一出生的时候就已经是你看那个草原上,那有一些小动物一出生。旁边的狮子啥的就开始盯着小马迁徙的非洲大草真的非常壮观,你们看那个动物世界,或者你看一些专题片的时候。小动物一出生就是安全,能活到成年,那都是很稀罕,真的很稀罕,就归于这个,产卵的时候真正活下来的就是100分之99都牺牲了其他动物吃了或者死。这样,我们在网上也是危险是无处不在,所以一个系统的安全从安安装开始就已经要开始关注了,这个概念非常重要。
最常见的安装风险就是网络安全,就是网络, mysql 服务器允许客户机通过网络进行链接并发出请求,你们要再通过远程的去部署。你们部署一个应用的时候,你写脚本这个脚本是怎么执行,那你怎么有没有安全方面的考虑,这个都是要涉及到的口令和网络流量没有加密。那么人家网络的监控软件,这监控软件不一定,现在好多那种开源的监控软件,你就能你把 IP 一输,你不当回事就能读出来,你发的什么内容,只要你没有加密。
加密用 SSL 加密,他现在读不出目前读不出来,我们指的是普通情况下读不出来,那么你客户的账户信息都能读出来。另外,任何没有口令的账户都容易受到攻击,所以数据库现在不允许没有口令,我们有时候也要经常检查,凡是不设口令的要提醒他,你们现在用一些业务系统就给你的邮箱等等,你没设口令,他要求你口令,当然你可以去改。有些口令,它插件就会监控到你改好之后你把口令给删了,它能监控到,不允许,但是有些系统它没有这种监控的时候,你把口令改成空的时候它也可以,但这种系统人家能人家定期的在进行检查的时候能发现。所以没有口令的账户是坚决杜绝的。
操作系统的服务器上的多余的账户增加 mysql 安装风险。mysql 的安装风险,因为啥因为我们知道测试系统它首先是个 ls 系统,因此多它是多用户系统一个系统上有好多用户,那用户一多以后难免会有。问题就人多了,你们宿舍住两人,那大家和平共处一个宿舍住六个人的时候都麻烦咱们现在好多学生宿舍我也是过来的,都分帮派的,那有人的地方那就有江湖都是一样的,有人的地方就有矛盾,那数据库也一样的。你一个服务器上装的软件做了以后难免会有冲突。难免会有冲突,所以说我们在生产审计要求所有的数据库系统服务器都是专用的服务器专用的,就像我们在生产商,你一个 mysql 服务器就是一个pod,独立的隔离的,不允许在一个服务器上装太多的软件产品,你到企业去所有的数据库,不管是 mysql,oracle还是其他的,像 redis 等等数据库都是专用的。你是主机就专用主机。如果虚拟机专用的虚拟机,如果是容器在单独的 pod 里面。这概念完全是一样的。
我们再来看文件系统稳定性文件系统,在我们看来,在我们专业人士看来,一个文件系统它就是一个存储设备,我们用的时候把我们的工作目录给他一挂。在这个时候我们把文件在工作目录进行增删改删除的时候,实际上它改的是我们的,磁盘上的扇区里面的东西,那么服务器上的目录,数据库的数据文件日志文件都可能会被不应具有访问权限的用户打开。如果你的 selinux设置的有问题,管理的不严格,策略有问题,或者是如果你压根就没有 selinux,或者是你,就算你设置了,系统也会有漏洞,这种软件的 bug 是软件天生的,因为一套软件系统做好了,随着运行环境的变化,随着小版本的升级,有可能它里面的规则就会出现漏洞。是不以人的意志为转移的,因为人的思考的是有就是我们是有生理极限的一个人,不可能预知未来绝对不可能。
所以说安全风险是随时可在的。