数据安全到底有多重要?
在大数据时代,数据已经成为一个企业最核心的业务资产。近年来频发的数据安全事件,从“facebook用户信息泄露”到“微盟删库事件”,每一起数据安全事件都表明,数据资产的外泄、破坏会导致企业无可挽回的损失。
分析一起安全事件背后的原因,往往都和技术、流程以及人的因素有关。比如,如果技术方面选型不当,数据没有物理备份或者异地备份,往往会造成不可恢复的影响;制度与流程方面给予单人权限过高,先不说故意破坏,误操作也是致命的;人为因素包括误操作,小到崩溃一个服务器,大到删除核心数据库,这些都是经常发生的事情。当然,也存在外部的威胁,比如黑客入侵,友商的恶意网络攻击等。
所以,数据安全治理是从决策层到技术层,从管理制度到工具支撑,自上而下贯穿整个组织架构的完整链条。那么,CloudQuery 作为一款数据库管理工具是如何来做好数据安全的呢?
CloudQuery 从技术和管理两个维度来保障企业的数据安全,我们要做的是确保存储在所有业务空间的数据得到保护,规避对敏感数据的非法访问和窃听。
01 技术层面
使用 HTTPS 通信协议,保证数据传输安全
在引入 HTTPS 之前最常见的是 HTTP 协议,HTTP 是一个基于应用层面面向对象的协议,简捷、快速的优点在互联网应用中很快传播开来。
对于 Web 安全本身来说,HTTP 是应用层的传输方式,大量的安全问题都是由 HTTP 带来的,但是 HTTP 本身并没有太好的防护措施。HTTP 协议传输内容时并没有采用任何加密措施,这样可以利用网络抓包方式来直接获取数据包内容,在通过对包内容分析就可以得到用户访问数据,几个数据包汇总下来就可以知道当前用户的网络动向以及规律,现在上网行为管理设备或者各类 Web 应用行为分析软件就是用这个原理来实现的。
更有甚者,利用参数为加密的漏洞在网络层直接获取当前用户的传参信息,再利用爆破等手段获取用户的敏感信息,我们常说的“互联网面前无隐私”就是这种情况。
总结来说常规的 HTTP 通信,问题主要集中在以下三点:
窃听风险(eavesdropping):第三方可以获知通信内容。
篡改风险(tampering):第三方可以修改通信内容。
冒充风险(pretending):第三方可以冒充他人身份参与通信。
因此,HTTPS 就是为了解决这三大风险而设计的,其实从严格意义上来说, HTTPS 并不是一个独立的协议,而是工作在 SSL 协议上的 HTTP 协议。
CloudQuery 支持用户便捷接入 HTTPS,部署后默认使用 HTTP 协议,需要使用 HTTPS 协议时只需用户布置一个支持 HTTPS 协议的反向代理服务器即可。接入 HTTPS 后 CloudQuery 前端会自动发起 HTTPS 或 wss 请求。
在外网环境使用 HTTPS 协议访问 CloudQuery,可以有效防止通信内容被窃听和篡改的风险。
KMS 密码保护,数据泄露时的安全保障
发生数据泄露事件,糟糕的加密难辞其咎,很多人都会把数据库视为后端部分,因此更多的是在关注Internet传播的威胁,但其实他们都忽略了数据库也是有网络接口的,黑客同样可以轻松跟踪这些接口。极端情况下,黑客可以直接通过一些漏洞获取到数据库的权限,从而盗取数据库中的数据。
明文密码存储、传输会有泄露密码的风险。CloudQuery 系统中,所有用户的密码、数据库连接的密码都采用KMS(Key Management Service)系统保护。即使数据泄露,攻击者也无法获取明文数据。
重要数据在传输时使用 HTTPS + 密文传输
每个密码采用不同的密钥加密
定时刷新密钥密文
请求伪造漏洞与防护
客户端与服务端利用 HTTP 协议进行交互,并利用请求-相应的方式开展 Web 应用。在这个过程中,如果客户端发出的请求可被伪造,那么就会带来危险的后果,这就是请求伪造漏洞。请求伪造又分为:
CSRF 攻击
SSRF 攻击
两者主要区别在于伪造身份的不同,会导致执行的结果以及漏洞存在点有非常大的差异。
SQL 注入
SQL注入是指攻击者通过把有害SQL命令插入到 Web 表单的输入域或页面请求的查询字符串中,该 SQL 会导致原有 SQL 语句作用发生改变,从而达到欺骗服务器执行该 SQL 命令的一种攻击方式。SQL 注入危害性极高,因为它可以实现查询任意数据,包括但不限于交易数额、管理员密码、敏感数据等等,严重时甚至会发生“脱库”的高危行为。一旦被攻击者获取写入数据权限,攻击者可以利用该权限实现木马自动部署、系统提权等等后续攻击,导致企业机密数据被修改造成极高的损失。同时 SQL 注入又分为:
回显注入
盲注
基于以上两种注入方式,随着数据安全行业的发展,我们目前常见的防护手段以及绕过方式有:
参数类型检测以及绕过
参数长度检测以及绕过
危险参数检测以及绕过
文件上传攻击
文件上传是很多应用都会具有的功能,例如证件上传、申请表上传、自定义头像上传等,但是上传过程中存在巨大安全隐患,文件上传攻击是指攻击者利用 Web 应用对上传文件过 滤不严格的漏洞,把应用程序定义类型范围之外的文件上传到 Web 服务器,并且此类文件通常为木马,在上传成功后攻击者就可以获取该 Web 服务器的 shell 能力。如果在上传过程中又想保证功能的正常开展,又需要对上传者的木马进行过滤,目前网络安全业内有几种常见的防护方式:
客户端 JavaScript 检测及绕过
服务器 MIME 检测及绕过
服务器端文件扩展名检测及绕过
服务器端文件内容检测及绕过
流式引擎与大数据分析
CloudQuery 自研应用探针程序,探针程序可以搜集到应用执行的 SQL 语句并上报给 CloudQuery 审计系统。
审计系统采用流式计算引擎结合大数据分析技术,及时高效的处理每一条SQL语句。审计系统可以统计分析执行总数、平均耗时、错误语句、危险语句等数据并进行可视化图表展示;支持慢SQL分析、SQL注入漏洞分析、危险操作分析并及时预警。
代码安全审计和漏洞扫描测试
我们的开发团队始终遵循 Devops+SecOps 的开发哲学,我们鼓励设计人员,程序员和负责安全的人员之间进行更高水平的协作,专注于确保开发周期团队的每个成员都了解安全性并对其负责。
CloudQuery 基于下列规范,经过严格的安全测试服务。
信息安全技术信息安全风险评估规范(GB/T 20984-2007)
信息技术信息安全管理实用规则(GB/T 19716-2005)(ISO/IEC 17799:2000)
信息系统安全风险评估实施指南
信息系统审计标准(ISACA)
OWASP OWASP_Testing_Guide_v3
OWASP OWASP_Development_Guide_2005
OWASP OWASP_Top_10_2010_Chinese_V1.0
奇安信渗透测试最佳实践
……
我们使用 SqlMap、Nessus、SpotBugs、SN1PER 等专业工具进行安全扫描,杜绝 SQL注入、越权访问、远程代码执行、CSRF、XSS 等漏洞。
02 管理层面
数据库一般有两种威胁:外部威胁和内部威胁。在某些情况下,内部威胁的严重程度甚至会超过外部威胁,因为无论企业使用什么样的安全软件都无法保证员工的忠诚度,任何有权访问敏感数据的人都有机会窃取它并将其出售给第三方组织以获取利润。
CloudQuery 能够有效提升数据库日常运维管理工作的精细度及安全性。可以对数据库操作行为进行流程化管理,提供事前审批、事中控制、事后审计、异常预警等功能,将审批、控制和追责有效结合,避免内部人员的恶意操作和误操作行为。
使用 CloudQuery 管理数据库与传统方式管理数据库的区别:
统一的访问入口,屏蔽工具差异
传统的权限控制中,通常是 DBA 为不同的人员分配不同权限的数据库帐号,拥有帐号的人员在各自的环境中访问数据库。而使用 CloudQuery,与数据库的通信连接都建立在受信任的部署服务器上。
虚拟帐号机制统一管理权限
使用 CloudQuery 管理权限时,不需要为每个使用者创建不同权限的数据库帐号。CloudQuery 在软件层面实现丰富的权限管理,满足各种应用场景。
分级授权
自定义权限集
限时限量,自动回收
RBAC权限模型
查导分离
库、表、行、列级别的细粒度控制
批量管理
动态脱敏
用户行为记录与审计分析
CloudQuery 完整的记录了用户在系统内部的行为,包括登陆、打开连接、查看表、导出数据等操作明细,还包括执行过的 SQL 语句、执行时的 ip 地址、执行结果和耗时等重要信息,通过这些关键信息可以快速定位到某条语句的执行人和执行 ip 地址。
数据作为一种资源,它的普遍性、共享性、增值性等多种特性对于数据资产拥有者来说具有无比重要的意义。而对于互联网来说,Web 应用逐渐流行的直观表现就是应用越来越多、类型越来越便捷,甚至工作生活中的很多关键行为均可通过互联网中的网站进行实现。
所以在网络承载数据量日益增长的今天,我们从客户端到服务器到最终落地中每一个环节安全性都显得格外重要,CloudQuery 通过网络层面的安全防护加管理层面的数据操作管控,最大程度上确保了数据不泄漏、操作可管控的安全能力,从 HTTP 请求加密到审计分析溯源,环环相扣把安全可控牢牢掌握在数据库管理员手中。