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

全部博文(272)

文章存档

2012年(272)

分类: 网络与安全

2012-06-26 10:10:51

昨天微软的 Mike Adrews BlueHat blog上写了一篇很不错的文章 Learning By Our Mistakes

老外习惯把漏洞分为两种: Flaw Bug

Flaw 
是指一些流程设计上的缺陷,比如Dan Kaminskys 发现的那个DNS的漏洞。

Bug 
是指一些程序错误,比较典型的像溢出、注射等,都属于Bug的范畴。

不说这篇博文后面的精彩内容,他提到的这两种分类也是很有道理的。

目前国内的安全工作者或者第三产业的主要贡献者大多精于研究“bug”类型的漏洞,关注于程序错误,而对于一些flaw类型的漏洞,往往是关注不足。

这也是由于业务的复杂性所造成的。设计上的问题往往会体现为一些缺陷或者是逻辑错误。这种设计错误的涉及范围会更广泛,更灵活,更具有创意,和业务的关联更紧密。

一个有趣的例子,就是以前的ATM取款机。取出来钱后,如果不去提,超时后会自动把钱吞回去,这时候卡上的钱并不会少。

出于设计上的缺陷,或者是技术实现上的问题,取款机超时吞钱的时候并没有去验证钞票的真伪,只清点了数量。

因此这个flaw就被有些黑客利用,取出来钱后,从里面抽几张,然后填几张白纸回去,等超时后再把卡拿回来,白赚了几百块。

这类问题是目前国内安全工作者的软肋,大家似乎更喜欢研究一些比较通用的程序错误,比如溢出问题。

设计缺陷往往是公司内部工作人员发现居多,因为需要长期的关注业务,关注细节。所以一个外部用户在没有经过仔细分析和研究的情况下,确实也难以找出这些问题。

SDL的过程中,分析和处理flaw类漏洞应该是在需求分析和系统设计阶段完成的。到了代码阶段,应该就只剩下“bugs”需要去fix~

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