北极星

搜索历史清空

  • 水处理
您的位置:电力电力软件安防软件评论正文

两位一体:论信息化中的应用安全和数据库安全

2012-02-16 14:31来源:ZDNET安全频道关键词:信息化信息安全数据库安全收藏点赞

投稿

我要投稿

回到源头,WEB安全刻不容缓

最小权限原则、保护数据库连接、分段服务器和网络、安全验证、安全边界和数据库安全配置对保护数据很有用处,但是这些不会解决攻击者所有的攻击企图。从广义上讲,数据库的安全首先依赖于网络系统。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。所以现在需要关注最普遍存在的威胁;WEB应用安全。

由于某些开发人员犯了非常低级的编程错误,比如:应用ID只能被应用使用,而不能被单独的用户或是其它进程使用。但是开发人员不这么做,他们给予了应用程序更多的数据访问权限。这就类似于医生因没有洗手而传播了传染病,从而导致各种漏洞的出现。

我们必须接受已经存在的应用缺陷和漏洞。通过发挥数据库管理员的安全职责去阻止因为应用缺陷和漏洞所造成的不良后果。比如如果开发人员不重视应用与数据交互的安全性,坚持最小权限原则,数据库管理员则有权在这场互动中占取主动,不给开发人员全权委托,数据库管理员可以不允许那么多的交互被授权;为了阻止黑客的渗透攻击从不可避免的网络程序应用漏洞中占便宜,数据库管理员也有权进行其他有效的安全控制。并且数据库管理员应对数据库进行加密保护,如密码不能使用明文保存;对所有应用层和数据层通信的审计监控将有助于快速识别和解决问题以及准确的判断任何安全事件的范围,直到实现安全风险最小化的目标。

假如出现数据外泄事件(如2011年年底的CSDN等网站的用户数据信息泄密事件),责任也不止是在数据库管理员身上,开发人员也需要共同承担责任。其中一个非常重要的方面,开发人员能做的就是在用户能输入的地方最好过滤危险字符,这样可以防止黑客通过诸如SQL注入攻击获取到数据库的敏感信息。目前在各类行业网站上,各种WEB应用漏洞随处可见,可以被黑客们检测到(他们一般会用软件同时扫描数千个网站)。

开发人员在完成一套新的应用程序后应使用安全检测工具对其进行反复白盒测试,有条件的情况下可以请信息安全人员模拟黑客进行黑盒渗透测试,尽可能的发现应用程序的弱点并进行修补。如果想实现更完整的解决方案,更多有关的保护数据和数据库是应当实施源代码分析。这是一项冗长的处理过程,可以请安全服务提供商用专业的源码审计软件对应用程序代码进行详细的分析处理,这些工具会直接查找出更精确的缺陷结果。

同时应该与开发商或者安全厂商合作并确保能提供安全解决方案,这对于任何致力于部署网络应用数据库正常安全访问的用户都至关重要,WEB应用安全测试对于确保数据库的安全性有至关重要的作用。

一款好的工具可以有助于加快进度并且提供更好的检测结果和解决方案,以提供应用程序更好的的安全性,关键是进行反复评估以确保管理工作正常,对结果实施验证并加固,确保风险一经发现立即补救,并保证管理人员能够了解到相关问题的存在。

黑盒测试 黑盒测试是一种把软件产品当成是一个黑箱的测试技术,这个黑箱有入口和出口,测试过程中只需要了解黑箱的输入和输出结果,不需要了解黑箱里面具体是怎样操作的。这当然很好,因为测试人员不用费神去理解软件里面的具体构成和原理,测试人员只需要像用户一样看待软件产品就行了。

例如,银行转账系统提供给用户转账的功能,则测试人员在使用黑盒测试方法时,不需要知道转账的具体实现代码是怎样工作的,只需要把自己当成用户,模拟尽可能多的转账情况来检查这个软件系统能否按要求正常实现转账功能即可。

如果只像用户使用和操作软件一样去测试软件黑盒测试可能存在一定的风险。例如,某个安全性要求比较高的软件系统,开发人员在设计程序时考虑到记录系统日志的必要性,把软件运行过程中的很多信息都记录到了客户端的系统日志中,甚至把客户端连接服务器端的数据库连接请求字符串也记录到了系统日志中,像下面的一段字符串:

"Data Source=192.168.100.99;Initial Catalog=AccountDB;User ID=sa;PassWord=123456;

那么按照黑盒测试的观点,这是程序内部的行为,用户不会直接操作数据库的连接行为,因此检查系统日志方面的测试是不会做的。这明显构成了一个Bug,尤其是对于安全性要求高的软件系统,因为它暴露了后台数据库账号信息。

有人把黑盒测试比喻成中医,做黑盒测试的测试人员应该像一位老中医一样,通过“望、闻、问、切”的方法,来判断程序是否“有病”。这比单纯的操作黑箱的方式进了一步,这种比喻给测试人员一个启示,不要只是简单地看和听,还要积极地去问,积极地去发现、搜索相关的信息。应该综合应用中医看病的各种“技术”和理念来达到找出软件“病症”的目的,具体作法如下:

“望”,观察软件的行为是否正常;

“闻”,检查输出的结果是否正确;

“问”,输入各种信息,结合“望”、“闻”来观察软件的响应程度;

“切”,像中医一样给软件“把脉”,敲击一下软件的某些“关节”。

白盒测试如果把黑盒测试比喻成中医看病,那么白盒测试无疑就是西医看病了。测试人员采用各种仪器和设备对软件进行检测,甚至把软件摆上手术台解剖来看个究竟。白盒测试是一种以理解软件内部结构和程序运行方式为基础的软件测试技术,通常需要跟踪一个输入经过了哪些处理,这些处理方式是否正确。

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

信息化查看更多>信息安全查看更多>数据库安全查看更多>