Ste*_*eve 11 sql-server security database-design stored-procedures web-applications
Web应用程序的数据库,从安全角度看只,有什么论据反击的点的SP只有在应用数据库帐户对SPS表和视图,只有高管没有任何权利的解决方案?
如果某人拦截了应用程序数据库帐户,那么暴露于攻击的表面区域就会比没有公开表格和视图时要小得多.非sp解决方案提供(或不提供)的安全优势是什么?我看到使用非sp解决方案有很多好处,但暴露所有表格让我有点担心.
问题是一般的主要数据库供应商产品,特别是sql server 2008.
你的公司的会计系统就是我们需要一个真正安全的系统.如果你使用procs并仅授予对procs的访问权限,那么除了proc所做的事情之外,用户不能做任何事情.这是一个内部控件,旨在确保系统的任何用户都无法获得系统的业务规则.这是阻止人们购买公司然后批准资金本身打开欺诈之门的原因.这还可以防止组织中的许多人删除帐户表中的所有记录,因为他们没有删除权限,除了从proc授予的权限,一次只允许删除一次.
现在,开发人员必须拥有更多权限才能开发,但如果您想考虑安全性,他们就不应该拥有生产机器上的更多权限.真的,一个开发人员可以编写一个恶意的sp,它会在生产时做坏事.同样的开发人员虽然可以将相同的代码放入应用程序版本中,但可能会被捕获或不可能,就好像他们恶意更改了proc一样.我个人认为proc可能更容易被捕获,因为它可能会被dbas与代码分开,这可能意味着管理员或配置管理人员和dbas有机会只看经理或配置管理人员.我们都知道现实是没有人推动代码生产有时间仔细审查每一部分,因此聘请值得信赖的开发人员至关重要.进行代码审查和源代码控制有助于发现恶意更改或将其回滚到以前的版本,但无论如何使用sps副应用程序代码都会受到开发人员的威胁.
系统管理员也是如此.必须拥有系统的完全权限才能完成工作.他们可能会在没有被抓住的情况下造成很大的伤害.在这种情况下,您可以做的最好的事情是尽可能少地限制这种访问,并尽可能地雇用值得信赖的人.至少如果您拥有此访问权限的人很少,则在问题发生时更容易找到问题的根源.您可以通过异地备份来最小化风险(因此,至少管理员如果变坏可能会在某种程度上修复它们会中断)但您永远无法完全摆脱这种风险.无论您允许应用程序访问数据的方式如何,这都是正确的.
所以sps的真正用途并不是消除所有可能的风险,而是为了减少人们对系统的伤害.使用应用程序代码来影响数据库信息本质上是不安全的,我认为不应该允许存储财务信息或个人信息的任何系统.
不使用存储过程的最大安全优势是清晰度.通过查看对表所具有的访问权限,您可以准确了解帐户可以执行的操作.对于存储过程,情况不一定如此.如果一个帐户具有执行过程X的能力,那么会限制帐户执行该过程而不会触及基础表,但X可以执行任何操作.它可以删除表,更改数据,删除数据等.
要了解帐户可以对存储过程执行的操作,您必须查看存储过程.每次更新一个sproc时,有人必须查看它的作用,以确保某些东西没有被"意外"放入其中.sprocs中安全性的真正问题来自组织内部,而不是来自流氓攻击者.
这是一个例子:
假设您正在尝试限制对employee表的访问.没有存储过程,您只是拒绝访问该表.要获得访问权限,必须要求您授予权限.当然,他们可以让你运行一个脚本来授予访问权限,但是大多数人至少会尝试查看改变数据库模式的脚本(假设脚本没有更新sproc,我将在下面讨论).
应用程序可能存在数百个存储过程.根据我的经验,他们经常更新,在这里添加一个字段,在那里删除一个.对于某人来说,审查更新过程脚本的数量总是令人生畏,并且在大多数组织中,数据库团队开始只是快速查看过程(或不查看所有过程),并将其移动.这就是真正的问题所在.现在,在这个例子中,如果IT人员中的某个人想要允许访问表,那么该人只需要放入一行代码来授予访问权限或执行其他操作.在一个完美的世界中,这将被抓住.我们大多数人都不在一个完美的世界里工作.
存储过程的真正问题是它们为系统添加了一定程度的混淆.随着混淆带来了复杂性,并且复杂性最终会使理解管理底层系统的工作更多.IT部门的大多数人都过度劳累,事情也随之消失.在这种情况下,您不会尝试攻击系统以获取访问权限,您可以使用系统负责人来获取您想要的内容.米特尼克是对的,在安全方面人是问题.
对组织的多数攻击来自内部.无论何时将复杂性引入任何系统,都会出现漏洞,事情可能会被忽视.不要相信,想想你的工作地点.完成有关您要求访问系统的人员的步骤.很快你意识到你可以让人们在适当的时候忽视事物.成功地与人参与系统的关键是做一些似乎无害的事情,但实际上是颠覆性的.
请记住,如果我试图攻击系统:我不是你的朋友; 我对你的孩子或爱好毫无兴趣; 我将以任何必要的方式使用你来获得我想要的东西; 如果我背叛你,我不在乎."但他是我的朋友,这就是为什么我相信他相信他所做的事情是正确的"这个想法,事后并不安慰.
归档时间: |
|
查看次数: |
5827 次 |
最近记录: |