一大早,技术安全主管刚刚坐到工位上,还没来得及奖励自己一杯速溶咖啡,领导就急切的找他询问。
为什么要做POC测试?
POC测试(Proof of Concept),也称为验证测试,一般来说会搭建与用户生产环境一致的平台,并选定一个具有代表性的实验对象进行测试。通过测试结果反馈,确保产品部署在真实使用环境中,能够到达预期的效果。
因此,数据库加密系统这种直接关联企业数据的重要系统,必须要经过POC测试,确保系统性能、功能、异常处理和报警机制全部符合要求,才能够正式上线运行。
如何开展POC测试?
为了让客户能够安心部署使用我们的产品,数达安全提供了完善的POC测试服务,能够针对企业数据库特性量身定制全套的测试方案,确保系统落地后能完全贴合企业数据的业务,在保障数据安全的同时,确保业务的流程正常进行。数据库加密系统的POC测试分为很多步骤,一起来了解一下主要流程吧:
明确测试的目标与范围
数据库加密系统最主要的功能就是对数据库信息进行加密,同时保证安全性和业务流畅。因此测试内容需要包含企业在生产过程中可能遇到的各种实际情况和突发异常,至少要包括:
1. 功能测试:验证数据库加密系统的各项功能是否正常,如数据加密、解密、密钥管理、加密安全性等。
2. 性能测试:评估数据库加密系统在不同负载下的性能表现,如加密性能、对前端应用性能影响等。
3. 破坏测试:评估加密系统在遭遇破坏时,加密系统自身及对整个系统的影响。
准备测试环境
POC测试的目标是反映出产品在真实环境中运行的状态,因此测试环境要最大的程度仿照生产环境来搭建,包括硬件环境,例如搭建数据库服务器的硬件参数配置;网络环境,例如传输数据的交换机性能,确保网络传输速率;还有软件环境,例如需要搭建与真实环境相同的品牌和版本的数据库系统,并导入由用户提供的真实数据表,同时为了进行压力测试,还要准备至少百万级数据表。
用数达安全近期刚刚完成的POC测试举例,这次测试从硬件参数、网络架构,到数据库品牌版本,再到访问策略和应用端口等细节,近乎完全1:1还原了用户的真实环境。
在测试数据方面,除了由用户提供2,000,000级的真实数据(脱敏),测试过程中还根据用户的表格式,定制6,000,000级的数据表,对系统进行全面的压力测试。
在以上这些全部准备好之后,还要部署安装开发和测试工具,能够在测试中编写测试脚本,从而有针对性的模拟各种特殊情况,并详细的监控和记录测试过程中反馈的结果。
是不是听起来就很头疼?平时工作这么忙,哪里有时间做这么多?不用真的头疼!这些工作都会由数达安全派遣专业工程师到现场完成,企业只需要协助提供一些资源就可以了,工程师会根据现场条件设计制定最优的测试方案,并向企业详细的阐明每一个步骤和注意事项,在经过企业同意后才会开始实际的搭建和部署。
所以,专业的事情交给专业的团队就可以了,企业没有任何的负担与风险。
现在环境搭建完成,我们来看看数达安全是如何协助企业完成测试的!第一步就是——
功能测试
数达安全数据库加密系统的功能点非常多,接下来,我们将对其中最关键的几项进行详细的介绍。
透明访问功能测试
数据库加密之后,所有数据变成了密文,那么企业的业务系统在使用这些数据的时候,是不是需要业务系统自己去进行解密呢?如果一家企业有十几套业务系统,那么是不是这些系统都要进行功能改造呢?
完全不用担心,数达安全数据库加密系统最重要的功能,就是实现业务系统的0改造!没错,就是不论企业有多少系统,都不需要任何的开发改造,数据库加密系统会保证合法的访问者拿到正确的数据。
听起来是不是很神奇,透明访问功能保证企业不需要改造业务端,直接节省了大量的时间和成本,可以在不间断业务的情况下完成数据的加密保护。
因此,在数据库加密系统的POC测试中,透明访问测试就是使用未经改造的业务系统,授权访问加密后的数据,正常获取数据即为试通测过。
访问权限控制测试
部署数据库加密系统后,可以为数据库增加一层细粒度的访问权限控制,控制粒度包括但不限于用户名、客户端IP、应用程序、访问时间等等。这次直接手动设置白名单,让我们看一下实际测试效果:
可以清楚地看到,有权限的用户可以访问数据库,并获取正确的数据信息,测试成功!
接下来将用户权限设为受限,看一下测试效果:
看到的全部都是加密数据,完全无法读取有效的信息,测试成功!
这一项功能,能有效的防止企业内部员工窃取数据,即使内部人员能够直接走进机房,有权限直接链数据库,依然无法盗取企业的数据信息,在机制上为数据安全又增加了一道强力防护。
加密数据离线访问测试
在实际场景中,数据是可以被直接导出(dump)到物理介质的,导出的数据可以在另一个数据库直接导入,从而实现数据迁移或复制。
在本项测试中,我们将已加密的数据进行标准格式的批量导出,之后再导入一个普通的数据库中,让我们看看效果:
虽然成功的导入到新的数据库中,但是所有数据仍是密文状态,也就是说,通过导出的方式依然无法获取未经授权的数据,系统能有效防止非法的数据导出操作,测试成功!
数据加密后防拷贝测试
接下来,我们测试验证数据库加密防拷贝能力,这个操作非常简单粗暴,插上我2TB移动硬盘,把数据文件全部复制到另一台机器的普通数据库进行导入,然后打开数据库进行查验:
简单粗暴的方法也是无法非法获取数据的,所有数据依然是密文,很好,系统有效的防止了非法复制数据库,测试成功!
密钥的更新与备份测试
数达安全数据库加密系统实现了密钥自动管理的,为了数据的安全,系统支持密钥自动更新与备份,能够根据策略定期更新与备份密钥。
在测试中,首先搭建一套SFTP服务器,并在数据库加密系统中配置好SFTP服务器的IP、备份路径、SFTP协议端口号、用户名、密码等信息,之后设置好密钥更新策略:
根据我们设置的更新条件,等待系统完成密钥更新和备份,此时登录SFTP服务器,查看设置的路径下:
可以看到密钥已经稳妥的备份好了,如果这时因为不可抗力导致系统损毁,只需要在最短时间重新部署数据库加密系统,并且在界面中选择密钥恢复。当然这个密钥文件内容是加密的,唯有恢复到加密系统才能发挥作用。
系统能立刻从备份中恢复全部密钥,保证数据继续正常使用,测试成功!
数据加密备份测试
数达安全数据库加密系统提供“明文备份”和“密文备份”,两种方式,当数据库被加密后,使用“明文备份”导出数据并查看:
从结果中可以看到,数据库导出的内容是明文数据,此时可以直接导入到其他数据库中,完成备份。
再来看看“密文备份”的效果,对数据使用“密文备份”导出数据并查看:
导出的数据全部是密文,如果另外的数据库也部署了数达安全数据库加密系统,那么就可以直接导入这份密文数据了,测试成功!
主备切换测试
为了保证业务的稳定性,数达安全数据库加密系统是支持双机热备的,主机和备机都可以完成对数据库大的加密和解密工作。
我们在测试中准备了2台数据库加密系统,其中主机(IP 10.102.71.17)正常运行并对数据库完成了加密,其运行状态显示为“Leader”(即主机);一台备机(IP 10.102.71.42)状态显示为“Sync Standby”(备用)。此时,手动对主机进行重启操作。
当主机重启后,备机的界面变成了:
可以看到备机(IP 10.102.71.42)的状态变为了“Leader”,此时对数据库进行授权的访问。
备机在主机掉线后立即接替了主机的位置,对数据库的正常访问没有受到任何影响,测试成功!
性能测试
没错,企业的数据量是非常庞大的,对庞大的数据进行加解密,如果速度慢了就会影响业务行动,为了消除企业对性能的担忧,我们直接开始测试!
更新、插入、删除测试
为了更好地体现数据库加密系统的性能,我们直接使用1000行和10000行的数据量来进行测试。我们准备两套相同的数据库,其中一套配置了数据库加密系统,数据库处于加密状态;另一套是普通数据库,作为性能参考,开始测试!测试结果很快就出来了:
从结果中可以看到,加密后的数据库,在批量操作1000行数据和10000行数据时,性能影响平均不到0.1秒,而在真实的企业生产环境中,极少有业务需要一次性操作如此大量的数据。因此,数据库加密系统在更新、插入、删除的操作上,对数据库性能影响几乎可以忽略。
数据查询性能测试
查询操作是数据库里应用最多的操作,因此本次的测试我们直接使用超大数据表,200万数据表和600万数据表!为了保证测试公正性,我们对单表查询和关联查询两种情况分别测试。开始!
很快,测试完成,结果如下:
经过严格的测试,加密系统对百万级数据表影响仅为几毫秒,这个结果可以向用户交一份满意的答卷!数达安全的数据库加密系统,对数据库性能的影响确实是微乎其微的。
破坏测试
既然提了要求,那必须安排!我们直接进行极端测试——拔电源!
为了让用户100%放心,我们将在正常运行的环境中,突然把数据库加密系统的电源拔掉,看看是什么结果。
步骤依旧简单粗暴,不过多描述了,现在数据库加密系统已经彻底没电了,我们马上用授权用户对数据库进行访问:
可以看到,授权用户能顺利获取到明文,之后我们再用无权限的用户进行访问:
无权限的用户访问数据库,无法获取数据库明文。
只是,此时我们不能登录到系统中对加密数据库进行管理了。
这下可以放心了吧?即使拔了电源,保护功能依然符合预期。测试成功!
好了,今天就到这里吧,系统关闭了,小编也该回家休息充电了。咱们下期再见。
结语
POC是在企业上线重要系统前必做的测试,通过POC可以充分了解产品的功能与性能,最重要的是POC环境是模拟企业生产环境搭建的,POC测试可以发现并解决产品在实际生产环境中可能出现的绝大部分问题。最后,测试中的反馈结果将作为准确的依据,为实际生产环境部署产品提供进一步的优化和参考。