近日的数据安全事故,引发了很多企业的普遍关注,而不少用户从彻查中确实发现自己的数据库已经被注入,这为大家上了数据安全的重要一课。

甚至有的企业要求停用PL/SQL Developer这一工具,虽然这从制度上关上了一个门,但是我们知道数据库类似的门如此之多,如何能够从根本上提升数据库管理的安全,减少数据运维风险呢?

我曾经在《数据安全警示录》一书中总结了种种数据安全风险,提出了很多预防措施和手段,在此整理其中的一些建议供大家参考,当然大家也可以从云和恩墨的安全服务中获得帮助。

我在书中提出了数据安全的五个纬度,可以基于这五个纬度来梳理企业的数据安全,并据此建立相应的安全防护措施。

在数据安全的范畴内,我们将安全划分为五大方面,分别是:

软件安全、备份安全、访问安全、防护安全、管理安全

在企业数据安全中,这五大方面是相辅相成、互有交叉、共同存在的,下图是关于安全的一张思维导图:

在这五大安全方向中,可能出现两种性质的安全问题,第一,由于内部管理不善而导致的数据安全问题;第二,由于外部恶意攻击入侵所带来的安全安问题。通常我们把安全问题狭义化为后者,这实际上是片面的,在数据安全问题上,前者造成的数据损失、数据损毁,其发生率和影响度都远远超过后者。

下面我们对数据安全的五大方面做一下简要的分析和探讨:

1.软件安全是指我们选择的数据库产品、版本是否稳定安全;厂商所能提供的补丁集和BUG修正是否及时、基础硬件与操作系统是否经过认证。很多用户在部署数据库软件时,仅仅选择了最容易获得的初始发布版本,遗漏了可能已经存在的补丁修正,并且在运行维护中并不能够及时跟踪软件更新,也无法获得BUG信息、补丁修正和安全告警,这就使得软件本身的很多风险隐患得不到修正。如果软件安全无法保证,数据库安全的基础也就丧失了。

2.备份安全是指用户数据能否得到及时有效的备份保全,能否在故障灾难之后获得及时的恢复和挽救。在数据库运行期,最为重要的就是备份安全,如果没有可靠的备份,将数据集中起来就只能是等待数据灾难,所以我们将备份安全提升到核心地位,备份以及随之衍生的容灾安全等,都是企业整体数据架构应该考虑的因素。很多企业在数据灾难之后因为缺乏有效备份而一蹶不振,根据Gartner 2007年的一份调查报告显示,在经历了数据完全丢失而导致系统停运的企业中,有2/5再也没能恢复运营,余下的企业也有1/3在两年内宣告破产,由此可见,由于备份安全问题导致的企业伤害可能远远大于黑客攻击。

3.访问安全是指用户数据库的访问来源和访问方式是否安全可控。通常数据库系统处于IT系统的核心,其安全架构涉及主机、系统、存储、网络等诸多方面,如果没有明确的访问控制,缺乏足够的访问分析与管理,那么数据库的安全将是混乱和无法控制的。在应用软件使用和访问数据库时,要正确设置权限,控制可靠的访问来源,保证数据库的访问安全,唯有保证访问安全才能够确保数据不被越权使用、不被误操作所损害,通常最基本的访问安全要实现程序控制、网络隔离、来源约束等。

4.安全防范是指通过主动的安全手段对数据库通讯、传输等进行增强、监控、防护、屏蔽或阻断,诸如数据加密、审计、数据防火墙等技术都在这一范畴之内。我们必须认识到,在IT技术高度发展的今天,风险是无处不在、层出不穷的,可能我们从未思考过的安全问题,每天都在不断涌现,所以在数据库环境中采取主动式防护,可以帮助我们监控分析和屏蔽很多未知风险,已经有很多成熟的产品和技术可以用于安全防范。

5.管理安全是指在企业数据的日常管理维护范畴内,能否充分保证数据安全以及服务的高可用连续提供。诸如DBA的维护、文件的管理、参数或数据结构的变更等等都可能引入数据风险,管理安全要求我们通过规范、制度以及技术手段去确保维护管理安全;另外,基于硬件、电力等基础平台的故障都可能影响数据库服务的高可用性,在管理中要通过监控手段及时预警,通过集群、备库等切换与服务分担保障服务的连续性。

针对最近爆发的安全事故,我抽取书中的观点,总结提升数据库安全的"16条军规"供大家参考,很多朋友也向我们询问,如何做才能够彻底防范这类风险,我想你可以从以下16条建议中找到答案:

  1. 备份重于一切

    我曾经在总结的DBA四大守则的第一条就指出,『备份重于一切』,有了有效的备份,即使遭遇灾难,也可以从容应对,对于重要的生产环境,适当建立备库进行数据保护,查询分担,也会减少生产库的风险;

    唯一会让DBA们从梦中惊醒的就是:没有备份! 所以对于数据库运维来说,第一重要的是做好备份!有备方能无患!

  2. 严格管控权限

    过度授权即是为数据库埋下安全隐患,在进行用户授权时一定要遵循最小权限授予原则,避免因为过度授权而带来的安全风险。本次安全风险,如果用户只具备最低权限,如不具备DDL权限,那么也不会遭到风险;

  3. 明确用户职责

    应当明确不同的数据库用户能够用于的工作范围,应当使用普通用户身份的,就绝对不应该使用DBA的用户身份,只有职权相称,才能够避免错误,降低风险。 即便是拥有管理员职责的用户,也应当遵循以不同身份执行不同任务的习惯,比如SYS和SYSTEM用户的使用就应当进行区分和界定;

  4. 密码策略强化

    毫无疑问,数据库用户应当使用强化的密码规则,确保弱口令带来的安全风险,很多数据泄露问题来自弱口令攻击和提权;

  5. 限制登录工具

    明确限制不同工具的使用场景,明确规定工具的准确来源,或者通过堡垒机等来限制数据库访问。对于工具也可以做出明确规则和限制,如限制仅能通过SQL Developer访问生产,PL/SQL Developer工具仅能访问测试环境,以减少安全风险甚至误操作风险;

  6. 禁止远程DDL

    可以限制DDL操作仅能在数据库服务器本地进行,禁止远程连接执行DDL操作,这一手段在很多公司被严格执行,如果具备这一规则,此次的事故可以被直接屏蔽掉;

  7. 使用绑定变量

    在开发过程中,严格使用绑定变量,绑定变量可以防范SQL注入攻击,减少数据库安全风险;这次安全事故,很多用户开始猜测是SQL注入,走了很多分析上的弯路;

  8. 监控监听日志

    监听日志记录了数据库访问的来源、程序等信息,包括恶意扫描,密码尝试等,一定要重视监听日志的作用,并对其进行分析和监控,以清楚的汇制数据库访问图谱;云和恩墨一直帮助用户通过监听日志分析来揭示风险,白求恩平台( https://bethune.enmotech.com )为用户免费提供这一分析纬度的预警;

  9. 数据网络隔离

    数据库的网络环境应该一直隐藏在最后端,避免将数据库置于直接的访问连接之下,由此可以减少数据库的访问风险;

  10. 测试和生产隔离

    互通就意味着同时可以访问,也就可能带来很多意想不到的安全风险,企业应当将测试环境和生产环境部署于不可互通,或者不可同时访问的网络环境中,避免因为错误连接而发生的数据库灾难。 分离部署一方面可以降低误操作的可能性,也可以屏蔽一些无关的访问可能,从而从网络链路上保证数据安全;

  11. 密码差异设置

    有些测试环境或者非产品环境是利用产品环境恢复得到的,DBA在建立了测试环境后,就没有修改数据库用户的登录密码;经常性的,DBA也习惯在所有环境中设置通用的密码;这些习惯为系统带来了很多风险和不确定性。 我们建议用户在不同环境中采用不同的密码设置,这是因为一方面产品环境和测试环境面对的访问用户不同,密码设置相同则意味着产品环境的安全性完全得不到保障;另一方面,DBA登录到不同的数据库需要使用不同的密码,这进一步减低了DBA在错误的环境下执行命令的可能性。

  12. 重要数据加密

    很多重要的数据,需要加密存储,最典型的就是用户和密码信息,大量的泄密事件本质上是因为缺乏最基本的加密防范,对重要数据实施一定的安全防护加密,是应当予以适时考虑的安全方面之一;

  13. 适时的软件升级

    这里的软件指数据库软件,尤其是当Oracle已经发布了安全补丁,已知的安全漏洞被黑客利用,则更可能对数据库产生致命的伤害;

  14. 防范内部风险

    不可否认,绝大部分安全问题都来自于企业内部,来自最紧密、最轻易的接触和访问,企业的人员变动,岗位变更,都可能导致数据安全问题的出现,单存依靠对管理员的信任不足以保障数据安全,必须通过规章、制度与规 范的约束才能够规避安全风险。

    很多企业为了便利而舍弃规范、规章或者安全限制是得不偿失的做法。安全防范应当从内部做起,从限制约束自我做起,当最紧密相关的访问都遵从守则,那么系统的安全性就能够获得大幅度的提升。

  15. 树立安全意识

    安全问题最大的敌人是侥幸,很多企业认为安全问题概率极低,不会落到自己的环境中,所以对于安全不做必要的投入,造成了安全疏忽。所以安全问题最大的敌人是我们自己,安全需要一点一滴的加强,逐步完善,云和恩墨一直帮助核心客户进行全面的安全评估,制定安全方案,守护数据安全。

  16. 开始安全审计

    以Oracle数据库为例,数据库已经提供了很多安全防范的手段和方法,我们建议用户适当展开安全防范措施,开启部分任务审计,定期分析数据库风险,由此逐步完善数据库安全。

关注安全,努力请从今日始。

文章转自数据和云公众号,原文链接

防范攻击 加强管控 - 数据库安全的16条军规相关推荐

  1. 包含下载,数据安全,数据备份16条军规

    更多精彩请关注"数据和云"公众号 这可能是你需要的: https://bethune.enmotech.com/ 关注 Oracle 18c 新特性,Oracle 18.3 最新动 ...

  2. DB2数据库安全的12条军规

    本文描述了用于 DB2 for Linux.UNIX 和 Windows 的十二种最佳安全实践.这些最佳实践专门注重于可以通过数据库管理和编程进行控制的一些元素,但是不包括其他可应用于系统中更大范围内 ...

  3. 女性养生需知的16条健康戒律

    人们常说"女人是水做的",这句话里既包含女性有着涓涓流水般温柔的性格,也透露出了女性更加脆弱.更加需要呵护的性别特点.3月31日,英国<每日邮报>发表的一项大型女性健康 ...

  4. 日常必备的16条Linux命令

    公众号:尤而小屋 作者:Peter 编辑:Peter 今天带来的一篇文章是关于Linux命令. 工作之后第一次接触到了Linux系统,起初是Centos系统,后来慢慢地变成了Ubuntu.最后因为换电 ...

  5. 新增16条设计规约!阿里巴巴Java开发手册(详尽版)开放下载!

    2019独角兽企业重金招聘Python工程师标准>>> <阿里巴巴Java开发手册>是阿里内部Java工程师所遵循的开发规范,涵盖编程规约.单元测试规约.异常日志规约.M ...

  6. 如何提升代码可读性?阿里发布16条设计规约

    脍炙人口的唐诗"两个黄鹂鸣翠柳,一行白鹭上青天",清爽直接,简明易懂.可读性好的代码也是让人陶醉的,那么如何写出可读性的代码? 近期,<阿里巴巴Java开发手册>推出详 ...

  7. 《阿里巴巴JAVA开发手册》发布详尽版,新增16条设计规约

    2018年6月5日,<阿里巴巴Java开发手册>再次升级代码规范,新增了16条设计规约! <阿里巴巴Java开发手册>是阿里内部Java工程师所遵循的开发规范,涵盖编程规约.单 ...

  8. 软件测试作业3:软件测试的16条公理

    作业3 1.综述软件测试的16条公理 (参见 Lec.8, slide 43) 答: 利益相关者公理: 测试是代表测试利益相关者执行的信息或情报收集的活动 公理1(利益相关者公理): 测试需要利益相关 ...

  9. Java技术:收集16 条 yyds 的代码规范,值得一读!

    今天给大家分享关于Java技术中16 条 yyds 的代码规范,读完肯定会有帮助! 一.MyBatis 不要为了多个查询条件而写 1 = 1 当遇到多个查询条件,使用where 1=1 可以很方便的解 ...

最新文章

  1. CrowdStrike加入VirusTotal阵营
  2. SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]
  3. CUDA 纹理的使用
  4. 《你必须知道的261个java语言问题》读书报告——第二弹
  5. leetcode 911. Online Election | 911. 在线选举(加强堆 + 二分查找)
  6. 从功能层次,阐述CPU、接口和外设之间的交互
  7. python61到08使用说明书_python 08 文件操作
  8. Fl Studio真的不如Cubase或者Logic Pro等电音软件专业吗?
  9. linux基础学习【6】
  10. 简述hdfs工作原理_HDFS原理篇
  11. 财务女,30岁无情被辞:想给财务提个醒!!
  12. ZEMAX | 如何对中间面进行优化
  13. HTML嵌入JavaScript代码的三种方式
  14. python计算决策树误差_《统计学习方法》第五章决策树 练习题解答
  15. 绿色荧光油溶性CdSe/ZnS量子点(硒化镉/硫化锌)
  16. BGP高防服务器与普通高防服务器有什么区别?
  17. 验证 网址,IP,邮箱,电话,手机,数字,英文,日期,身份证,邮编
  18. 《中国通史》纪录片100集笔记(持更)
  19. FDM打印机使用总结(二)
  20. v-model的实现原理

热门文章

  1. POJ 1159 (DP)
  2. 通过日志恢复MSSQL数据例子
  3. NCRE四级网络工程师考题详解----LRU与LFU的区别
  4. Linux下tomcat的配置
  5. java csv 导出_java实现CSV文件输出
  6. 66319d电源使用说明书_电热水壶怎么使用?电热水壶烧不开水的问题是什么?
  7. mulitpartfile怎么接收不到值_光端机电源正常,但是运行不了怎么办?
  8. windows进入mysql改user_windows下如何修改mysql数据库密码
  9. ege限制鼠标移动的函数_浅谈函数节流和函数防抖
  10. expires为session_面试必问:session,cookie和token的区别