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

2013-12-04 16:37:32 北极星电力网  点击量: 评论 (0)
应用安全和数据库的安全就像是拼图中的拼图块,它们虽然不同,却彼此之间需要对方,缺少任何一个,都不能形成一个安全整体。如果其中一方出现安全隐患就会令整个安全防御彻底失效,如WEB应用程序存在SQL注入的

       在对多个应用程序或开发项目进行威胁建模时,应作好记录,找到应用程序的共通性。这些共通性可以用于审查内部数据库访问标准、授权访问以及优化访问过程。

        在编写策略时应当涵盖常见情况,并且明确地为开发人员和数据库管理人员提供指导,确保人人手中都有一份参考资料。一旦这些步骤执行到位后,可以开始从基础做起向数据库环境添加安全措施。

        虽然各个系统环境都不相同,但是数据库配置对于保护数据是最为重要的部分之一,应当实现的常见配置有:

        1.应当有恰当的人员维护和更新用户名单,其中这些用户可以访问受管理的应用服务环境中数据库。

        2.系统管理员和其他相关的IT人员应该有充分的知识、技能并理解所有的关键的数据库安全要求。

        3. 当部署数据库到受管服务环境中时,应该采用行业领先的配置标准和配套的内部文档。

        4. 对于数据库功能不需要的默认用户帐户,应该锁定或是做过期处理。

       5. 对于所有仍在使用中的默认用户帐户,应该主动地变更密码以采用强密码措施。

       6. 应该给数据库内的管理员帐户分配不同的密码,这些帐户不应使用共享密码或组密码。

       7. 措施要到位,用于保护数据字典以及描述数据库中所有对象的支持性元数据。

       8. 对于任何访问数据库的基于主机的认证措施,应当有足够的适当的过程来确保这种访问类型的整体安全。

       9. 数据库监控应到位,由能够根据需要对相关的人员进行告警的工具组成。

       10. 保证数据库应用了所有相关的和关键的安全补丁。

        我们需要保护重要的数据

       “一定要保护好数据库的重要数据”,因为数据库对于IT行业来说就好像是保管金银珠宝的保险库。如果保险库不安全,财宝就很容易失窃,那主人就不会开心。

       保护数据库服务器的方式有网络分段、系统分离,并将数据库服务器放置在一层或多层保护网的后面。

        有许多新的技术,包括数据库活动监控软件、数据丢失防护(DLP)、将数据库分割,放到依据数据分类或风险模型的系统中,还有确保低安全性的应用程序无法访问到高安全程度的数据库等。

        根据访问权限和账号,如果有多个部门的用户因同一事件需要登陆进入同一应用程序,应该采取保护措施,以确保一个部门的人员无法访问另一个部门的数据。这可以在数据库层面上完成,方法是让各个部门分别创建各自的数据库或桌面;这样的话可以实现数据分离,而且可以使用不同的数据库账号来加以保护。应用程序可以使用单一账号用于非认证请求服务,比如说用户登录;一旦发生此类情况,应用程序可以将数据库账号切换至同用户部门相关联的另一个账号。在设定许可权限时要防止通用账户访问任何公司数据。

        除此之外,部门A的数据库账号不能访问部门B的数据。这样就阻止了攻击者越过公司的安全防线并扩大其接触范围。在进行应用程序数据库账号转换时必须非常小心,因为攻击者可能通过SQL注入攻击来迫使应用程序改变其连接。在某些单位,开发人员会写下他们自己的SQL查询命令,而对于其它一些单位,查询命令是由数据库管理员来编写和优化,然后再提供给开发者。

        在最安全的环境下,这些查询命令由数据库管理员编写和执行,作为存储过程。存储过程是由应用程序执行的预定义语句。这样就使得SQL注入攻击更加难于得到利用。在这种特殊情况下,如果没有存储过程的话,攻击者可能已经作为管理员登录进入此应用程序并且取得此数据库完全控制权,而且只需要得到管理员用户名称即可实现。

        同时还需要建立敏感数据的安全边界。通过采取相应的技术措施,为用户的各种数据库建立一个关于数据的安全边界。我们可以将数据库服务器置于标准的网络防火墙后面,并限制访问,以确保我们了解什么系统能够访问你的数据库,从而降低风险。但是千万不要以为简单的配备一些防火墙就可以防范这些安全威胁,可能还会有其他我们未发现的未知风险存在!

        安全人员在开发新的安全数据安全模型时,安全人员应该进行测试,以确保他们提供了需要的保护级别,并且没有引入新风险。最后关于实现数据基于策略的自动管理问题,它包括数据的分类、备份、迁移、删除等,实现全面的数据存储管理自动化,这样不但减少了人为出错的可能性,也提高了数据库的安全性和可用性。使用一套优质的解决方案按照标准的规范进行设计和部署,提供充分的灵活性、扩展性和安全性,满足数据库安全保管方面当前和今后的法规要求。

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

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

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

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

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

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

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

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

黑盒测试 黑盒测试是一种把软件产品当成是一个黑箱的测试技术,这个黑箱有入口和出口,测试过程中只需要了解黑箱的输入和输出结果,不需要了解黑

大云网官方微信售电那点事儿

责任编辑:黎阳锦

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞