腾讯网首页·手机腾讯网·加入收藏·设为首页·导航
don't delete

您所在的位置: 腾讯首页 > 科技频道 > 正文

 

微软禇诚云:软件安全漏洞与软件开发
http://tech.QQ.com  2008年03月20日14:23   腾讯科技    评论0

腾讯科技讯 3月19日消息,在为期两日的网讯网络安全技术峰会上,微软安全响应中心的禇诚云分享了他在软件安全漏洞与软件开发上的研究成果。

以下为褚诚云讲演实录:

褚诚云:大家好!我叫褚诚云,来自微软公司。我这个讲座可能跟其他人的讲座都有一点不一样,我是从产品开发的角度和大家分析安全漏洞。我希望利用这个机会可以和大家分享一些在软件开发过程中如何避免安全漏洞的经验。我先自我简单介绍一下,SWI称为Secure Windows Initiative,我们这个组处理微软产品的安全问题。我们这个组严格意义上隶属于MSRC的一部分。 ChrisW是我们一个资深的架构师。

现在我们转到正题。很多人说微软是不是真正了解安全,为什么这么说呢?微软的安全漏洞问题层出不穷。如果真正懂得安全,为什么产品还有这么多安全漏洞呢?

今天讲的核心问题:第一,什么是安全漏洞。第二,为什么代码中存在安全漏洞。第三,我们想探讨一下对每一个安全漏洞,我们做了什么。微软发现安全漏洞后,怎么处理它?我们是怎么在开发实践中去提高我们实践开发的指导过程,这样可以避免同样错误不要犯两次。

为什么你需要了解这些东西?现在安全漏洞不是微软一个的问题,就像腾讯总裁所说现在软件安全是整个产业的问题。比如微软收到很多不安全的反映。实际上攻击本身不是针对微软系统本身,而是上面运行的应用。我们希望通过和所有厂商共同努力,提高整个产业环境安全水准。例如,百度工具条就有安全漏洞、暴风有控件安全漏洞、迅雷也发现有很多安全漏洞、google输入法的安全漏洞,还有QQ。

下面我跟大家讨论一下五个我们组经过非常艰苦的努力,可以和大家分享的5个06、05年的安全漏洞。可以给大家公开讨论导致安全漏洞的源代码,在后面我要跟大家谈谈微软开发周期,怎么指导开发行为,这样可以降低安全漏洞的数目。最后提一下微软关于安全响应流程的部分。

什么是安全漏洞?我们定义是代码或设计缺陷,导致系统可以被恶意攻击。我想特别强调一点,实际上很多安全漏洞是一个设计上的问题。设计上没有考虑这个功能在安全上给大家带来什么样的影响,这与设计人员本身素质有关系。我们看看安全漏洞主要类型:远程代码攻击最受大家关注。但是权限提升、拒绝访问、信息泄露的比例也是非常高的。

第一个,MS03-026漏洞。这个安全漏洞大家非常熟悉了。它的问题就在于一个字母串越界的问题,就是这一行代码错误,损失非常巨大。我们得到的经验:GS编译选项,静态代码检查工具。例如在VS2005,有一个选项是可以做代码的静态分析,尤其是溢出错误,可以帮助你检查。

缓冲溢出已经谈了很久了,为什么微软还有这么多安全漏洞?问题就是说安全漏洞本身和缓存溢出不相等。很多安全漏洞其实完全不是由缓存溢出构成的。这两个是不等价的。下面说的五个安全漏洞只有一个是缓存溢出。即使这一个缓存溢出也不是那么容易看出来的。

第一个安全漏洞,06-001 WMF。这个安全漏洞很严重。当时在圣诞节,我记得我是在赴宴途中被传呼。一个圣诞节,几百人都没有过好。WMF大家都已经很熟悉,他是Windows支持的一种图像文件。简单说就是大家访问这个文件,收到这个电子邮件,只需要预览就会被感染。可能直接导致大规模蠕虫爆发,所以当时大家非常紧张。这是源代码(图),你觉得这个代码需要特别注意什么地方?我其实首先看到是win.3.1这段注释,写这段代码的时候没有考虑到安全问题,当我们读到类似这种注释的时候,我们脑子里开始紧张。我们看看它具体出了什么问题,这个是一个函数指针,这是函数指针的调用,这是执行(图),关键是在这里,当我开始处理WMF文件的时候,当收到特殊字符的时候就对它进行解析处理,把Abort方式设置好,最后开始执行。整个过程没有缓存溢出漏洞。你需要一个函数可以终止打印操作,这在Windows3.1是很正常的操作,而现在造成这么严重的安全漏洞,这就是设计上的缺陷。有时候设计的缺陷比代码缺陷更难发现。一个设计上的问题导致安全漏洞非常严重。在构造这个文件的时候,提供一个老的无用功能,结果导致一个严重的漏洞。我们把NetDDE、IPX/SPX、NETWare这些全从VISTA中删除了。我们尽可能把那些不需要用的以前的老代码统统删除,因为老代码编写过程中往往没有考虑到安全需求。即使删除不了的,我们在缺省情况也要禁用,只有用户特别有这个需求,需要他自己主动把禁用这个功能开通。而且必须加以辅助测试和fuzzing,仅仅依赖人眼查看代码是不够的。

第二个安全漏洞,06-013 IE create textrange,问题就是我访问一个网页,机器就中招了。这个安全漏洞和缓存溢出完全没有关系。有没有人能发现问题?它的错误就在goto Cleanup这个地方。hr初始赋值S-OK。为什么这是安全漏洞?首先调用pvarresult就是一个函数指针,下面检查hr=s-ok,这是一个标准的com调用。我会调用到未初始化内存。4、5年前微软如果收到这个安全漏洞,他可能认为这不是一个安全漏洞,而只是一个程序崩溃。结果现在有了heap spray攻击,可能10次有9次能达到成功攻击。静态工具专门要提高对未初始化内存访问,使用SAL确保函数返回时的错误检查。

第三个安全漏洞,05-047 plug-n-play。首先他是直接读到一个注册表key,然后拷贝到堆栈上的变量,大家初看这是非常危险的。但是我们仔细一看,发现从本地注册表读这个key,内容是攻击者无法控制的。这个key本身最多只有255字节,而且内容只有admin才能控制。堆栈的变量大小是360字节,怎么会导致字符串溢出?我们当时也一下看不出有缓存溢出问题。它的攻击就是通过这样去攻击,虽然Key在注册表也是有效,但是后来加了这样一堆东西,会自动被过滤掉,结果拷贝就会溢出的。这是一个非常有意思的缓存溢出漏洞。得到经验是禁用危险的APIs,以前有这样的反对意见,只要我知道我在做什么,即使用危险的API也没有什么问题。这个例子就看出,在有些情况下即使你以为你知道你在干什么,但是还会发生你并没有想到的后果。所以我们彻底把危险的API从VISTA完全取消掉。

第四个漏洞,06-013 IE。当你访问一个文件类型属于不安全类型,我们通知你下载而不是直接执行。这就是代码(图),看上去完全没有什么问题。到底它出了什么问题?我们仔细看这个变量,它可以被多个线程同时访问,可能会导致跳过安全对话框。这个漏洞也和缓存溢出没有关系。我们得到一个经验:多线程环境下测试、代码复查时的安全意识。例子:微软对安全方面的标准,包括攻击界面分析、常见安全漏洞类型、针对威胁的缓解手段、针对安全缺陷来复查代码。我们这个组本身不可能去复查所有微软代码,要依靠各个产品组自身复查代码,但是你复查代码,你需要知道你去找什么样的错误。如果不知道要去找什么的话,即使你看半天也发现不出来什么。

第五个漏洞,06-018 MSDTC。这个实际上是自定义的内存分配。这里有一个宏,我看到这个代码是比较头疼的。微软针对这个安全漏洞补丁,发现了两次公告,第一次公告没有发布对,只好发第二次安全补丁。微软得到经验:对内存分配器加注SAL。在Windows VISTA删除大多数的定制在内存分配器,除非有特别考虑,一般是不允许的。另外,在汇编代码一级经验证补丁,这样可以避免补丁发布的错误。

安全漏洞分析小结:分析安全漏洞产生的根本原因,在已经实施现有的流程后,为什么还有安全漏洞?我已经规定你产品组需要做的安全流程,结果还有安全漏洞,这可能有两个原因,第一,我说要做的事你没有做,这是管理上的问题。第二,你确实做了我要做的东西,但是还是避免不了安全漏洞。那就是流程或工具的问题。提供建议来完善现有工具和开发新的工具,同安全软件开发集成,并提供反馈。减少以后的安全漏洞。

手机看新闻】 【一键订阅新闻】 【返回科技首页】 【论坛  】【发表评论(0)

热门新闻排行

IT新闻

互联网

通信

网评

三星前董事长李健熙涉嫌逃税被罚1亿美元
AMD首席执行官鲁毅智宣布辞职 COO梅耶尔接任
王文汉:大学毕业后的5-10年最重要!
三星集团前董事长李健熙因逃税被判刑三年
联想柳传志的价值与启示:无心插柳 柳已成荫
美国举行人机扑克牌大赛 顶尖高手被电脑击败
前微软女项目经理因诈骗罪 被判入狱22个月
李健熙被判3年 三星新CEO赴中国展危机公关
HD-DVD中国版影碟机即将上市 EVD欲诉其侵权
福布斯:英特尔施压致AMD第2季业绩仍大幅亏损
杀毒软件年内有望全免费
“网络第一美女”接私活 被判赔偿400万元
北京网店新规遭专家炮轰 被指阻碍电子商务
谷歌地球部门高级程序员辞职 称谷歌规模过大
奇虎推出永久免费杀毒软件 只靠增值服务盈利
俄罗斯总统:官员如不会上网就卷铺盖走人
专家炮轰北京工商局:网店办证扼杀百万就业
黑客“封锁”旧金山网络 技术人员仍在解密
人肉搜索或成网络暴力 专家称是社会结构问题
多家视频网站获视频牌照 引发新一轮烧钱热
黑市iPhone售价翻六倍 传俄罗斯总统也在用
浙江瑞安天价手机号叫卖298万元
广州“手机地铁票”面世
诺基亚第二季净利润17.5亿美元 同比降低61%
工信部证实将于电信重组结束后发放3G牌照
首款WAPI双模手机面世 国产厂商将推多款产品
中国电信即将启用全新CDMA手机品牌
中国移动拿下188号段 185和186号段归新联通
中国电信开始集采1000万部CDMA手机
苹果3G版iPhone连遭破解 打破运营商软件限制
北京网店新规遭专家炮轰 被指阻碍电子商务
网友述说第一次玩网络游戏经历
工商总局局长:北京网店新规将向全国推广
诺基亚第二季度在中国等新兴市场遭遇寒流
杀毒软件年内有望全免费
女士左手留14厘米长指甲 不让丈夫睡左侧
三星前董事长因逃税被判刑三年 并罚1亿美元
三星前董事长李健熙涉嫌逃税被罚1亿美元
我是网游历史见证人,我来说说那些故事:
AMD首席执行官鲁毅智宣布辞职 COO梅耶尔接任
腾讯博客  娱乐 体育 时尚 文化 思想 财经 动漫

男人也能这么美
男人也能这么美
女星最爱做护士
女星最爱做护士

杨澜:与奥运会结缘绝对不是偶然
李少红回应质疑 演艺明星各种吃相
赤壁也为奥运做贡献 董洁清纯写真
名模性感模仿秀 最落魄的女明星们
奥运主持最佳人选 奥运啦啦队曝光
赵薇带病捐款 黄奕妖艳雷人写真照
越狱男主角时尚照 新红楼的造型门

新闻线索

如果你有科技领域的人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。

网友意见留言板
关于腾讯 | About Tencent | 服务条款 | 广告服务 | 腾讯招聘 | 腾讯公益 | 客服中心 | 网站导航
Copyright © 1998 - 2008 Tencent Inc. All Rights Reserved
腾讯公司 版权所有