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

2014-01-06 11:37:37 北极星电力网  点击量: 评论 (0)
应用安全和数据库的安全就像是拼图中的拼图块,它们虽然不同,却彼此之间需要对方,缺少任何一个,都不能形成一个安全整体。如果其中一方出现安全隐患就会令整个安全防御彻底失效,如WEB应用程序存在SQL注入的时
       应用安全和数据库的安全就像是拼图中的拼图块,它们虽然不同,却彼此之间需要对方,缺少任何一个,都不能形成一个安全整体。如果其中一方出现安全隐患就会令整个安全防御彻底失效,如WEB应用程序存在SQL注入的时候,就会对整个系统和数据库产生更大的影响。为了减小攻击范围,开发人员和数据库管理员必须明晰他们在这个过程中的角色,共同工作,以避免WEB应用暴露任何敏感数据库。

       如今,许多行业用户将大量有价值的客户数据存储于在线数据库,通过网络应用与外界交互。不论是通信、金融、电子政务、电子商务抑或是小小的个人博客,前端应用程序和后台数据库都不可避免地结合在我们现在的模型中,任何一个都不可离开另一个而单独存在。

       但是由于那些应用程序在设计时是允许任何人、从任何地方登陆进入访问,因而也成为了通往隐藏在深处的重要数据的桥梁。比如在去年十二月,国内最大的程序员社区网站CSDN就遭到了黑客从WEB应用层的攻击,使得包含用户密码的数据库泄密。

        那么如何才能使这个模型更安全呢?安恒信息专家将为您做详细的解读:使模型更安全的解决方法是让应用程序作为人与数据互动的唯一接口,应用程序界面是机器与数据互动的唯一接口。如果不是这样,那么数据交互就有可能不能被充分控制好,这将会是一个非常基本的潜在漏洞。即使访问方式定义明确,实际上应用程序依然有无数种方式令防护数据库失败,最终导致整个系统被黑客窃取或破坏。

       安恒信息专家表示,安全管理人员和开发人员经常忽视或者错误地理解数据库,常仅仅关注于保护网络应用程序不受风险的威胁--比如说跨站脚本攻击或者注入攻击,而忘记了留意数据库本身的安全隐患。很明显,用户需要有专门的工具和策略来帮助网络应用程序开发人员保护后台数据库的安全性,而数据库开发人员必须确保他们的网络接口尽可能地安全。

       同时安恒信息专家还指出,现在大多数用户都是凭感觉在运行数据库安全。绝大多数用户根本没有监控他们的数据库。更令人不安的是,大多数用户甚至不知道他们的重要数据的位置,很多管理员在调查中承认他们并不能肯定数据库中包含着重要信息。

       在多数情况下,关键点在于网络应用程序本身对于攻击者而言没什么价值,他们只是利用应用程序作为窃取或破坏数据的一种手段,第一个防范措施便是确保不仅仅是数据库管理员了解重要数据在哪里存放、如何访问到,以及面临的实际威胁。我们通常将数据库看作是一个黑盒子,只向需要的人和应用程序提供访问的方法,当选取、更新或者插入操作成功后,人们会忘记还有一些事情会发生,所以说团队合作是关键,必须要把应用安全和数据安全做到两位一体。

       我们所面临的网络威胁

       数据库除了有与生俱来的安全隐患以外,当应用程序访问数据库时,还要考虑到更多的威胁。数据库打补丁、权限管理和连接管理都是典型的数据库安全防范措施,常见的由网络应用程序引发的安全威胁有SQL注入式攻击,XSS跨站攻击、不安全的会话处理和权限升级、目录遍历漏洞和敏感信息泄露等漏洞。我们会深入挖掘每一种模型,但是考虑到这些风险的存在,我们最重要的是尽可能少的给予特权,通过监控输入数据和建立安全连接来加强读取方式的安全性,同时还要限制数据库服务器对外暴露的机率。SQL注入、跨站脚本漏洞、目录遍历漏洞、敏感信息泄露等漏洞

        SQL注入攻击SQL注入漏洞的产生原因是网站程序在编写时,没有对用户输入数据的合法性进行判断,导致应用程序存在安全隐患。SQL注入漏洞攻击的就是利用现有应用程序没有对用户输入数据的合法性进行判断,将恶意的SQL命令注入到后台数据库引擎执行的黑客攻击手段。

        XSS跨站攻击跨站脚本攻击简称为XSS又叫CSS (Cross Site Script Execution),是指服务器端的CGI程序没有对用户提交的变量中的HTML代码进行有效的过滤或转换,允许攻击者往WEB页面里插入对终端用户造成影响或损失的HTML代码。

       未验证输入web请求信息在被Web应用使用之前都是未验证的,攻击者能够利用其中的弱点攻击服务器;攻击者通过伪造HTTP请求的各个部分,例如URL,查询字符串,头,cookies,表单域,隐藏域等绕过站点的安全机制。这些常见的伪造输入攻击通常包括:强制浏览,命令插入,跨站脚本,缓冲区溢出,格式化字符串,SQL注入,cookie中毒,隐藏域操作等等。

       网络钓鱼网络钓鱼是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息(如用户名、口令、帐号 ID 、 ATM PIN 码或信用卡详细信息)的一种攻击方式。最典型的网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息,通常这个攻击过程不会让受害者警觉。这些个人信息对黑客们具有非常大的吸引力,因为这些信息使得他们可以假冒受害者进行欺诈性金融交易,从而获得经济利益。受害者经常遭受显著的经济损失或全部个人信息被窃取并用于犯罪的目的。

        通过应用程序造成隐私泄漏个人或团体的信息被其他不应获得者获取。如攻击者通过入侵大型网络社区、交友网站、免费邮箱等网络应用程序获取数据库用户信息,并利用获取到的个人用户信息进行欺骗获取更多的利益。

        我们需要共同协作

        安全问题不是某个个人的职责,关键需要团队的协作。这对于应用程序的安全问题来说更是如此,信息安全人员、开发人员、系统和数据库管理员都包括在内,这就是团队协作。除非你所在的单位已经拥有了一个成熟的安全环境,而且已经使用安全类库来处理数据库调用和数据验证,在数据库和应用程序之间有一层数据访问层,并确保所有的数据库权限都受到了严格的限制,在这种情况下应当让所有团队成员参与并且了解高层次的应用程序。通过共同协作,所有人都可以了解到这些安全威胁,随后可以共同想出更好的解决方案来应对。所有参与网络应用和数据库开发维护管理的人员都应该对目前存在的安全威胁有一个充分的认识和理解,这是非常重要的。我们必须要确保所有人员都理解应用程序的所有技术通信原理和数据流,了解数据从哪里来,如何到那里去的,以及数据是否和多个应用程序进行通信。这就是关于数据库保护的第一层措施。

       数据库保护的第二层措施是安全架构。安全设计的基础有时候也被称作为安全架构,也就是说当我们以安全的方式设计数据库环境时,应减少安全威胁。如果攻击者无法直接访问数据库,这样就降低了他们攻击的灵活性。我们为攻击者提供的活动空间越大,他们就越容易得手。同样的,从相反的角度来看,我们就需要在后续做更多的工作,也就是说你必须确保对数据库的访问仅限于在需要的情况下进行系统访问,而且所有的访问都经过认证和加密的,而且不能影响到会话池。保证网络和系统设计的安全将会对保护数据库大有帮助,添加了数据库访问路径的限制能够大大地降低风险。

       数据库保护的第三层措施是威胁建模。确定威胁的过程被称为是威胁建模,过去威胁建模是用在应用程序安全方面,用于确定应用程序的最高风险,这样安全人员就可以重点关注在这一领域。这个概念开始延用到安全的其它领域中。应注意的是这不是一个新的理念,实际上保险行业已经采用此理念有数百年的历史了,我们互联网行业只是最近几年才吸纳这一理念,并开始就此主题发表了许多文章。

       威胁建模包括将那些了解此应用程序的人以及相关领域的专家召集在一起,大家共同理解应用程序的不同部分、功能性和固有的威胁。花一定的时间来全面理解此应用程序以及相关的威胁,可以定制出相对应的保护和测试方案,可以节省时间或者在有限的时间和预算范围内最大程度地降低威胁。威胁建模对于安全人员来说可以提供一种很好的手段来掌握全局、分解风险区域并与各小组单独协作,确保保护措施落到实处。

在对多个应用程序或开发项目进行威胁建模时,应作好记录

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