Home 电脑技术 安全技术 关于minimize attack surface
关于minimize attack surface E-mail
作者:洋葱圈   
周二, 01 7月 2008 08:22
BY:刺

最近看到又有老外讲到这一点,先扯扯我的体会。

minimize attack surface就是要尽量减少可能被攻击的点。

从战略上来讲,就是解决或者隐藏自己的弱点。

要做到这点,首先需要的就是一个好的架构
好的架构,可以节省很多事情,从服务器部署方式,网络拓跋结构,使用什么语言,使用什么平台框架,使用什么DB,ACL如何做,如果统一发布、升级、回滚、监控。

在设计一个系统之初,如果能够考虑到这些因素,对minimize attack surface是非常有帮助的,能够起到最佳的效果。

简单来说,比如流程上的逻辑漏洞(就是类似那种step1直接跳到step3的),可能就涉及到了页面控制、webflow等,如果采用spring框架,用配置文件来管理页面流程,就有了一个可控的途径。

虽然框架是死的,不能说用了spring就能完全杜绝这种漏洞;但人是活的,如果有良好的制度保证每个流程都是规范的,都有人review,那么就能把这种漏洞杜绝掉。

再比如说注射,如果数据持久层设计的好,那么注射的风险是可以在人的控制下杜绝掉的。比如使用ibatis,使用sqlmap等,有人来review是否有做变量绑定。

好的架构是缩小攻击面的第一步,那么有的系统已经设计好了,你很难去改变架构,这时候该怎么办呢?

失去最有效率的方法后,只能从别的方面补救。

我们需要尽可能利用科学的方法,做到没有遗漏攻击途径。

首先,要明确需要保护的是什么,什么才是最重要的东西。

这个最重要的东西不一定是BOSS说的,因为很多时候BOSS对于安全的嗅觉不够敏感,这时候就需要安全人员去引导,去访谈。

确定好要保护好的东西后,再分析数据流图

可能很多人会觉得这样太麻烦了,但我这里讲的是一套科学的方法,而不是拍拍脑袋就能够得出结论的“经验流”,这样得出的结论才有信服力。所以,如果你想让你的老板觉得你足够严谨,那么还是老老实实的分析下数据流图吧!

根据数据流图,你就可以看到正常的、非正常的可以接触到你需要保护的资产的途径了。

你保护的资产可能是一个db,可能是一个vlan,也可能是你BOSS电脑里的小电影。根据不同的资产种类,和到达资产的途径,你就可以开始设计你的安全体系了。

首先根据你的分析结果,看看结合现在的架构,有什么是可以做到彻底杜绝的,有什么是可以慢慢控制收敛的。

比如你担心“员工电脑被木马控制“,那么是否可以让员工只拥有user权限,是否可以升级办公PC到vista,是否可以要求只能使用内部代理上网,是否可以限制办公环境的PC只能上指定网站,是否需要把客服部门单独孤立出来。

这些,就是可以让”员工电脑被木马控制“这一个威胁得到收敛的有效措施。

可以根据你设计的深度防御体系,从各个层面来加以保护。如果要我起个名字,我可以把这种多层次防护叫做: Defense-Stack

Defense-Stack 和 Attack-Surface 是可以正交的,正交的那些点,就是以后工作的焦点和重点。

最后需要注意的是,制度是需要有人维护的,加入了人的因素,才能真正做到minimize attack surface,让你的防御体系转起来。

想法都比较零碎,还没系统的整理过,先讲到这里,以后再补充。
Trackback(0)
Comments (0)Add Comment

Write comment
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

security code
Write the displayed characters


busy