数据库信息泄漏 不可忽视的安全短板

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云防火墙,500元 1000GB
访问控制,不限时长
简介:

一、 概述

传统的信息安全解决方案主要是通过网络传输通道加密、PKI或增强身份认证、防火墙、IPS、堡垒机等技术构成综合的信息安全应对策略,但这些方案在现实中变得弱不禁风,大量信息泄露事件频繁爆发。

数据库信息泄漏 不可忽视的安全短板

图1 Verizon2014数据泄露事件

2014年数据泄漏调查报告中回顾了63737起赛博安全事件和1367起已经确认的数据泄露事件(赛博含义理解为:敏感数据资产)。

数据库信息泄漏 不可忽视的安全短板

图2 Verizon2014十大内部资产滥用排名

根据Verizon2014年数据泄漏调查分析报告和对近期发生的信息安全事件技术分析,总结出信息泄露呈现两个趋势:

(1)黑客通过B/S应用,以Web服务器为跳板,窃取数据库中数据;传统解决方案对应用访问和数据库访问协议没有任何控制能力,比如:SQL注入就是一个典型的数据库黑客攻击手段。

(2)内部人员的滥用数据库存储的有价值信息导致数据资产丢失数据泄露常常发生在内部,大量的运维人员直接接触敏感数据,传统以防外为主的网络安全解决方案失去了用武之地。

数据库在这些泄露事件成为了主角,这与我们在传统的安全建设中忽略了数据库安全问题有关,在传统的信息安全防护体系中数据库处于被保护的核心位置,不易被外部黑客攻击,同时数据库自身已经具备强大安全措施,表面上看足够安全,但这种传统安全防御的思路,存在致命的缺陷。

二、 数据库本身存在重大安全缺陷

传统观念认为数据库系统本身已具备完整的安全保障机制,存储在数据库中的数据足够安全, Oracle总裁Larry Ellison曾宣称Oracle数据库是世界上最为安全的数据库系统,但事实上以Oracle为首的数据库系统存在重大安全缺陷,主要体现为如下三个方面:

数据库信息泄漏 不可忽视的安全短板

图 3 主流数据库系统漏洞级别分布

2.1存储文件解析后为明文

数据库的数据是存储在物理文件里,这些数据按照数据库自定义的格式组织在数据库中,但这些数据本质上都是明文存储;主流的大型数据库数据文件的组织结构主动或被动公开化,只要得到这些数据文件,存储的数据其实就是透明的。

这些存储文件包括数据库的数据文件、备份文件、日志文件等;这样只要能够访问或得到数据库存储文件,就可以获得数据库中的信息。比如:在互联网上公开的MyDUL软件就是可以成功解析Oracle数据文件获得明文信息的开源工具。

数据库的明文存储也会因为磁盘、备份磁带的丢失引起泄密,如香港花旗银行在装修期间丢失了服务器引起的客户资料泄密。同时,明文存储使只要能够访问到数据库文件的人员,都可以看到数据库中的存储内容,如网络管理员或者攻入到内网当中的黑客。

2.2数据库自身存在诸多可攻击安全漏洞

数据库往往被认为具备较为完备的安全机制,从身份认证、访问控制、到通讯加密,但事实上数据库也存在诸多的安全漏洞,当前在国际漏洞库CVE上公布了2000多个数据库漏洞,号称最为安全的Oracle数据库就占了1000多个;这些漏洞大多是国际上的安全专家对数据库安全状况进行研究后发现的,包括提权漏洞(如从普通用户提权到DBA用户)、缓冲区溢出漏洞(通过该漏洞可以使数据库执行非法代码或瘫痪)、系统注入漏洞(通过该漏洞在调用系统函数时执行任意非法SQL代码)。

黑客已经利用这些漏洞,对数据库进行了多次侵入;虽然数据库厂商据此提供了大量补丁包,但这些补丁包所修复的漏洞数量也是有限的,同时大量的应用系统出于系统稳定性和兼容性的原因也无法实现补丁升级;因此这些漏洞依然是黑客入侵数据库的常用通道,同时随着这些安全问题的广泛传播,数据库维护人员和程序人员也使用这些技术手段进行越权工作,对数据库造成了巨大威胁。

2.3数据库自身的访问控制存在缺陷

数据库采用的访问控制机制,依然是典型的三元组,也就是主体、客体和操作,其中主体主要是数据库用户或角色,客体是数据库对象,操作是典型的DDL、DML、ACL语句和某些维护操作;但对这些操作的具体内容和影响不再做控制,如是否采用了欺骗性的SQL语句、是否返回了大量数据无法控制。

当前广为流传的SQL注入就是大量地利用这些控制缺陷,在SQL语句中构造永真表达式、执行外部调用、非法登录应用系统进行批量数据导出。

同时某些程序人员也恶意利用这些控制缺陷,在应用程序中埋下后门程序,对有价值的信息进行非法下载,如陕西移动、深圳福彩、某三甲医院统方的安全事件,这些恶意行为可以通过数据库中的检索返回行数进行控制并阻断。

三、 数据库的应用环境变得日趋复杂

数据库安全事件频频发生的原因也是由于当前数据库的应用环境和应用模式日趋复杂,与数据库应用环境相关的安全隐患主要有三个方面:

数据库信息泄漏 不可忽视的安全短板

图4 复杂业务环境下数据库的安全隐患

3.1 B/S架构使数据库间接暴露在互联网上

大量Web应用的兴起,面向公众的政府、金融单位提供服务的动态网站和应用系统快速增加;大企业的各分支机构分布地域广阔,在企业内部也通过互联网实现财务、办公、商务等信息化管理。这些系统采用B/S为主要技术架构,用户通过浏览器访问WEB服务器,WEB服务器再访问数据库服务器,形成了从用户到数据库的合法访问通道,从而将数据库间接暴露在互联网上。甚至在某些企业,数据库就直接安装在对外提供WEB服务的计算机上,通过攻击web服务器即可实现数据库的敏感数据访问。

3.2数据库维护模式改变为服务外包模式

传统的数据库维护主要是企业内部的DBA完成,但随着业务系统复杂度的增加和累积数据规模的增大,大型企业和政府单位的数据库采用服务外包给IT企业的方式进行维护管理,同时各关键行业处于信息化快速发展和建设中,往往是一边开发新系统一边正常使用完成的系统,就导致存在大量的驻场程序开发人员;这样使数据库的直接接触人员,不仅限于企业的内部维护人员,同时包含大量的服务外包人员、程序开发人员和系统测试人员,这些人员直接接触数据库系统的真实数据,使传统基于人工内部管理模式为主的数据库安全机制面临巨大挑战。

3.3访问数据库系统的应用形式多样化

当前数据库内的数据被大量共享访问,数据库的访问形式不仅限于传统的模式,B/S架构的应用逐渐成为主流。数据查询类、分析类应用迅速增加,数据仓库、数据同步系统的建设以促进共享。数据的定期备份、异地备份大量增加以加强数据的可靠性,访问形式的多样化,决定了数据库安全问题的多样化,需要综合性的安全解决方案。

四、 传统网络安全解决方案存在致命缺陷

我国经过十多年的信息安全建设,已经建立起相对完善的网络信息安全体系,包括网络安全设备、终端安全、认证安全、主机安全、防病毒等系列化的安全产品和整体的安全解决方案;特别是以防火墙、IPS/IDS、UTM等产品为代表的网络安全产品,更是成为了当前安全建设的标配。但这些产品都无法防止数据库服务的安全缺陷。传统的网络安全解决方案中存在如下致命缺陷:

4.1网络防火墙不对数据库通讯协议进行控制

传统的网络防火墙产品主要是基于:源IP + 源端口 + 目的IP + 目的端口 + 协议类型进行访问控制,传统的防火墙不对协议的内容进行解析和控制。由于应用要访问数据库,因此数据库的通讯端口总是开放的,本质来说传统防火墙对于数据库网络通讯无任何的安全防护能力。

4.2 IPS/IDS对数据库通讯协议的控制很弱

IPS/IDS(入侵防护系统/入侵侦测系统)产品比起传统防火墙更进了一步,开始尝试对应用层的通讯协议进行解析,但这些协议都限于标准通讯协议,如FTP、邮件、LDAP、Telnet等,对一些针对标准协议的攻击行为进行防范;但对于数据库这样的非标准化通讯协议,协议的复杂度很高,当前市场上的主流IPS/IDS产品均未实现对数据库通讯协议的解析和防护。

4.3 绕过WAF系统的刷库行为屡见不鲜

WAF(Web Application Firewall 网站应用防火墙)产品主要是对Http协议的解析,通过对Http协议中的内容进行分析,实现攻击防御;通过WAF可以实现对部分SQL注入行为的阻止,但WAF对于复杂的SQL注入和攻击行为无能为力;2012年的黑客大会宣布有150多种方法可以绕开WAF实现对Web应用服务器的攻击。在Web应用服务器上利用应用的数据库账户攻击数据库服务器是当前刷库的主要手段。

4.4 NGFW无法解决来自于业务系统本身的安全威胁

NGFW(Next generation firewall下一代防火墙)比传统防火墙更近了一步,更偏重于应用层,号称是UTM(Unified Threat Management统一威胁管理)有更多技术革新性的产品,集成了传统防火墙、IPS、防病毒、防垃圾邮件等诸多功能的综合安全产品。NGFW将视角更多地转向了应用层,在控制规则上增加了用户、应用类型和内容,一些NGFW产品也号称能够识别几百种应用;但NGFW中所兼容的应用层协议,特别是对应用层的协议内容进行控制,仅限于标准化的应用服务,如FTP协议、Telnet协议、Mail协议、LDAP协议;但对于数据库这种没有通讯协议标准、通讯又极其复杂、各个厂商各自为政的应用层协议,当前没有任何一家NGFW产品能够实现对数据库通讯协议的安全控制;因此即使有了NGFW,依然无法阻止黑客通过数据库的通讯进行的攻击。

4.5 内网管控的堡垒机解决方案存在重大缺陷

针对来自于内部的数据安全问题,当前比较流行的是以堡垒机为核心的集中运维管控解决方案,通过这种方案可以将运维人员对主机设备和数据库的维护集中到堡垒机上完成,在堡垒机上完成统一的认证、授权和审计。

但堡垒机的解决方案存在以下安全缺陷:

A、堡垒机无法对图形化工具的操作进行控制,只能通过录屏的方式进行录像记录;

B、备份的磁带不受堡垒机控制,DBA可以通过磁带获取明文数据;

C、网络管理员可以通过解析数据文件,获取数据库中明文数据;

D、程序开发人员通过在生产系统的服务器上驻留后门程序访问数据库;

E、测试和开发人员访问测试系统的数据库获得真实数据。

以上安全问题决定市场上还是需要更为专业的数据库安全产品。

五、 市场需要专业的数据库安全

5.1数据库安全整体应对策略

目前数据库应用和维护环境有了很大的变化,传统安全解决方案存在了诸多安全隐患,数据库安全问题也越来越引起国家安全部门的重视,市场上需要更为专业的数据库安全整体应对策略:

Ø 提供专业工具对数据库的安全状况进行评估。

Ø 防止外部黑客通过数据库通讯链路进行攻击行为。

Ø 防止内部运维人员的高危数据库操作。

Ø 防止信息服务外包人员的刷库行为(对敏感数据大规模下载)。

Ø 对数据库的访问行为进行记录,提供事后分析工具。

Ø 存储数据、备份数据和导出数据为加密态。

通过以上数据库安全措施,有效地防止敏感数据泄露的安全事件发生。

5.2 数据库漏扫

数据库漏扫是一种帮助用户对当前的数据库系统进行自动化安全评估的专业软件,能有效暴露当前数据库系统的安全问题,提供对数据库的安全状况进行持续化监控,帮助用户保持数据库的安全健康状态。发现外部黑客攻击漏洞,实现从外到内的检测;模拟黑客使用的漏洞发现技术,在没有授权的情况下,对目标数据库的安全性作深入的探测分析。

5.3数据库防火墙

数据库防火墙是一款基于数据库访问协议分析与控制技术的网络数据库安全防护系统,基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。

数据库信息泄漏 不可忽视的安全短板

图5 数据库防火墙的核心功能

数据库防火墙面对来自于外部的入侵行为,提供SQL注入禁止和数据库虚拟补丁包功能;通过虚拟补丁包,数据库系统不用升级、打补丁,即可完成对主要数据库漏洞的防控。

5.4 数据库加密

数据库加密是基于透明加解密技术的数据库安全加固系统,基于主动防御机制,可以防止明文存储引起的数据泄密、突破边界防护的外部黑客攻击、来自于内部高权限用户的数据窃取、防止绕开合法应用系统直接访问数据库,能够实现对数据加密存储、访问控制增强、应用访问安全、安全审计以及三权分立等功能,从根本上解决数据库敏感数据泄漏问题。

作者:安华金和 石川 潭心 廉小伟


来源:51CTO

相关文章
|
3月前
|
SQL 监控 Java
在IDEA 、springboot中使用切面aop实现日志信息的记录到数据库
这篇文章介绍了如何在IDEA和Spring Boot中使用AOP技术实现日志信息的记录到数据库的详细步骤和代码示例。
在IDEA 、springboot中使用切面aop实现日志信息的记录到数据库
|
4天前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
9 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
4天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
89 1
|
19天前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
39 2
|
28天前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
30天前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
92 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
110 5
|
3月前
|
关系型数据库 分布式数据库 数据库
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
安全可靠的国产自研数据库PolarDB V2.0,让数据库开发像“搭积木”一样简单!
|
3月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
3月前
|
SQL Java 数据库连接
连接数据库实现查询员工信息
该博客文章展示了如何在Java中使用JDBC连接SQL Server数据库,并执行查询操作来检索员工信息,包括加载数据库驱动、建立连接、创建SQL查询、处理结果集以及关闭数据库资源的完整示例代码。
连接数据库实现查询员工信息