数据库安全测试
我们为什么要做数据库安全测试呢?这项测试的目的是为了发现数据库安全配置的薄弱点或漏洞,并减少任何对数据库的不必要访问。
为免遭到入侵者的侵害,所有的敏感数据都必须被保护起来。所以定期做安全检查是非常重要且必须的。
下面列举一些必须进行数据库安全测试的原因:
-
验证
-
授权
-
审计
-
机密性
-
完整性
-
可用性
-
可恢复性
以上要根据业务需求进行分层测试,待测试的层级包括业务层、接入层和UI层。
数据库测试流程
-
准备测试环境
-
执行测试
-
分析测试结果
-
汇总报告
数据库安全测试的类型
-
渗透测试:模拟针对网络、计算机系统或web应用程序的网络攻击来检测其中存在的漏洞
-
漏洞扫描:使用扫描工具对系统中的已知漏洞进行扫描,以进行适当的漏洞修复
-
安全审计:评估企业的安全策略和标准的实施情况和一致性情况
-
风险评估:从整体上识别所有可能对系统造成严重伤害的情况
使用数据库安全测试工具的好处
我们使用工具的主要原因就是它可以更快的执行任务并节省时间。当前大多数的测试技术都用了其中一些工具进行的。
有一些在线的付费工具和免费工具可以用来测试,这些工具比较容易理解和上手,同时执行任务也很高效。按类别分,有负载和性能测试工具,测试生成器工具和基于SQL的工具。
数据库肯定是存在某种不稳定性的,因此在启动应用程序之前需要进行数据库测试。
这项测试在软件开发生命周期的早期就要进行,以发现数据库系统中的漏洞,使用其中一些工具将有助于高效进行检测。
如果数据库崩溃了,那么整个应用程序和系统将变得毫无价值,也会导致更多其他的问题。定期测试之所以如此重要,就是因为它可以确保系统的生产力。
列举几个好用的数据库测试工具
-
Data Factory
-
Mockup Data
-
DTM Data Generator
-
MS SQL Server
-
SQL Test
-
Oracle SQL Developer
-
NoSQL Unit
-
Se Lite
-
SLOB
-
Orion
数据库安全测试技术
数据库安全测试有很多测试技术,下面来讨论其中的几种:
1. 渗透测试
这是通过蓄意攻击系统来寻找漏洞的方法,攻击者可以利用该漏洞去访问包含数据库在内的整个系统。一旦发现漏洞,就要立即进行修复,并采取手段降低此漏洞可能导致的风险。
2. 风险评估
进行风险评估以确定数据库安全配置的风险等级,以及发现漏洞的可能性。这项评估通常由安全专家执行,他们可以分析出流程中涉及的风险量。
3. SQL注入验证
对数据库输入值做适当的校验。举个例子,在任何应用中都应该禁止输入像某些特殊字符(如‘,')或一些关键字(如 SELECT 语句)。
如果没有做校验的话,那么数据库会把这个查询语句当成是有效的请求。
如果输入弹出数据库错误,意味着请求已经发送到数据库并且已以肯定或否定响应执行。这种情况下,数据库很容易受到SQL注入攻击。
SQL注入是当前最主要的攻击手段,攻击者可以通过它去访问包含了非常敏感数据的应用程序数据库。
这种攻击用的接口通常都是应用程序上的输入表单。为了解决这个问题,必须在代码中添加适当的输入校验。必须对输入表单上的使用的每个括号、都好和引号进行SQL注入验证。
4. 密码破解
系统中使用了强密码策略是非常重要的。渗透测试时,检查是否有遵循此密码策略非常重要,我们可以像黑客一样使用密码破解工具或猜测不同的用户名/密码来做。
开发或使用金融类应用程序的公司必须确保在其数据库管理系统上设置严格的密码策略。
5. 安全审计
需要定期进行安全审计,以评估企业的安全策略并确定是否有遵循标准。
不同的业务有不同的安全标准,一旦设立了这些标准,就应该要去遵守。如果有人不遵守,那会是一个严重事件。比如安全标准 ISO 27001。
经常问的问题
Q #1) 安全测试的类型有哪些?
回答:
-
渗透测试
-
漏洞扫描
-
安全审计
-
风险评估
Q #2) 什么是数据库安全问题?
回答:
-
无限制的数据库权限
-
SQL 注入
-
糟糕的审计追踪
-
暴露的数据库备份
-
缺乏安全专业知识
-
数据库配置错误
-
拒绝服务
Q #3) 什么是安全测试工具?
回答:
用于发现应用程序中的漏洞、威胁和风险的测试工具,并会采取措施阻止任何恶意攻击。
Q #4) 如何进行安全测试?
回答:
-
对访问进行测试
-
用恶意脚本进行测试
-
测试数据的保护级别
-
对错误处理进行测试
结论
数据如此重要,每个企业都应将数据库安全作为其日常业务不可或缺的一部分。他们不应考虑投入成本,而应考虑成本效益。
每个公司都可以使用各种测试工具,并将其集成到安全测试中。
差的数据库安全对企业可以造成很大的影响,有些企业甚至因此衰败了。因此,这里建议企业要非常重视数据库的安全性。
{测试窝原创译文,译者:喜安}