Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1172991
  • 博文数量: 272
  • 博客积分: 3899
  • 博客等级: 中校
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-15 14:53
文章分类

全部博文(272)

文章存档

2012年(272)

分类: 网络与安全

2012-06-15 16:05:42

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

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

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

要做到这点,首先需要的就是一个好的架构

好的架构,可以节省很多事情,从服务器部署方式,网络拓跋结构,使用什么语言,使用什么平台框架,使用什么DBACL如何做,如果统一发布、升级、回滚、监控。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

阅读(1212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~