大数据概述
NoSQL指的是非关系型数据库,是包含大量不同类型结构化数据和非结构化数据的数据存储。由于数据多样性,这些数据存储并不是通过标准SQL语音进行访问的。此前,我们经常会将数据存储分为两种:关系型数据库(RDBMS)和文件服务器。而NoSQL打开了我们的眼界,与传统关系型概念不同,NoSQL并不遵循结构化形式。这种NoSQL数据存储方法的主要优点是数据的可扩展性和可用性,以及数据存储的灵活性。每个数据存储都镜像存储在不同地点以确保数据持续可用性和没有数据丢失,这样的存储系统通常用于趋势分析,但这些系统并不适用于需要实时更新的金融交易,金融机构可以使用这个系统来分析最有效或业务最繁忙的分支机构。
NoSQL等于没有安全?
很多人可能会说,不同NoSQL系统的开发人员会有针对性地将安全因素从其系统中剔除。例如,Cassandra只有基本的内置身份认证程序,他们的想法是数据库管理员不需要担心安全问题,安全问题应该交由专门的团队来处理。在我们看来,NoSQL带来以下安全挑战:
模式成熟度. 目前的标准SQL技术包括严格的访问控制和隐私管理工具,而在NoSQL模式中,并没有这样的要求。事实上,NoSQL无法沿用SQL的模式,它应该要有自己的新模式。例如,与传统SQL数据存储相比,在NoSQL数据存储中,列和行级的安全性更为重要。此外,NoSQL允许不断对数据记录添加属性,所以前瞻安全性变得非常重要,企业需要为这些未来属性定义安全。
软件成熟度. 多年来,在饱受各种安全问题的困扰后,数据库和文件服务器系统已经变得比较成熟。虽然NoSQL可以从这些系统中取得一些经验教训,并且NoSQL数据存储的复杂性有所减少,但我们相信至少在五年内NoSQL仍然会存在各种漏洞,毕竟它使用的是新代码。
员工成熟度. 即使是最有经验的数据库管理员也是NoSQL的新手。这意味着这些人员首先要着眼于如何让它运作(这已经够难了),也许以后有时间才会考虑安全问题。当到那个时候,他们肯定会犯很多整合错误。
客户端软件. 由于NoSQL服务器软件没有内置足够的安全,因此,必须对访问这些软件的应用程序内建安全因素,这反过来又会导致大量的安全问题:
增加身份验证和授权过程到应用程序。这需要更多的安全考虑,而这只会让应用程序更复杂。例如,应用程序将需要定义用户和角色。基于这种类型的数据,应用程序可以决定是否向用户授权对系统的访问权限。
输入验证。再一次,我们看到困扰着关系型数据库应用程序的问题又来继续困扰NoSQL数据库。例如,在去年的黑帽会议上,研究人员展示了黑客如何利用“NoSQL注入”来访问受限制的信息。虽然2012年黑帽大会的时间还没有确定,我们非常期待今年看到更多关于NoSQL的展示。
应用程序意识。在每个应用程序需要管理安全的情况下,应用程序必须意识到所有其他应用程序。这能够禁止对所有非应用程序数据的访问。
当新数据类型被添加到数据存储时,数据存储管理员必须弄清楚哪些应用程序不能访问特定的数据。
容易产生漏洞的代码。市面上有很多NoSQL产品,但又更多应用程序和应用程序服务器产品。应用程序越多,容易产生漏洞的代码就越多。
数据冗余性和分散性. 关系型数据库安全基础知识谈论的是数据正常化---在单个位置存储一块数据。但大数据系统完全改变了这种模式。这些系统的固有模式是复制数据到很多表以优化查询处理。数据分散在不同地理位置的不同服务器的不同的数据仓库中,企业将很难定位这些数据和保护所有机密信息。
隐私问题. 隐私问题并不是因为安全问题而受到推动,而是因为大数据的这种使用情况:即对来自不同系统的不同应用程序的不同活动的数据进行关联。就拿谷歌举例来说,他们在几个月前对其隐私条款进行了修改,新条款允许谷歌融合来自所有服务中的信息。作为个人而言,这严重影响了我们逃避企业跟踪的能力,即使我们使用多个身份。不过,这些企业现在面临着风险。一方面,他们试图将这些数据保存在其企业范围内,主要因为所有权和监管的需要。然而,最近,科学家开始对这种做法表示担心,要求企业透露这些数据集以验证其研究结果。
总结
NoSQL仍然处于起步阶段,在未来一年左右,我们可能都无法看到任何NoSQL安全解决方案。对于想自己开发NoSQL解决方案企业而言,他们首先应该仔细选择其开发团队,该团队应该包括具有安全观念的业界资深人士。另外,还应该进行代码审查以确保软件的安全性。
最后,应该通过密集的输入验证和网络隔离以尽可能地减少平台暴露给用户。还好我们现在才进入大数据时代,现在存储的成本下降了,技术也允许我们能够方便地访问和分析数据。