今天释出的KB958644号紧急更新,引起了我不小的兴趣,很希望知道到底是什么东西导致微软捅了这么大的篓子呢?无奈,因为出品公司(微软)承认这是一个严重的安全漏洞,提出问题的网站(http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250)已经去除了关于此漏洞的详细说明。这条路不通了。
MS08-067(http://support.microsoft.com/?kbid=958644)描述了什么样的系统里具体什么样的文件会出问题。从中可以看到,主要问题出在Netapi32.dll这个DLL。可以看出,自Microsoft Windows 2000 Service Pack 4(不是说之前的就没有,而是只从SP4开始技术支持)开始的5.0.2195.7203版本的Netapi32.dll,直到Windows Vista、Windows Server 2008甚至Windows 7 Pre-Beta的6.1.6801.4106版本Netapi32.dll都逃脱不了噩运。
重要的提示来自Microsoft Security Bulletin MS08-067 – Critical(Vulnerability in Server Service Could Allow Remote Code Execution (958644))一文。文中特别指出,这个漏洞如此广泛,甚至Windows Server 2008的Server Core installation也会受到同样安全威胁等级的威胁。这说明,这个漏洞存在很基础的地方。
Server Core installation是Server功能的极小集,根据Compare Server Core Installation Options一文,Server Core installation可以安装以下功能:

  • Active Directory Domain Services
  • Active Directory Lightweight Directory Services
  • DHCP Server
  • DNS Server
  • File Services
  • Hyper-V
  • Print Services
  • Web Services (IIS) without ASP.NET

鉴于Windows 2000也是受害者,因此不可能是Active Directory Lightweight Directory Services和Hyper-V的问题。
Server Core Functions by DLL一文给出了netapi32.dll的详细功能说明。
我不辞辛苦地把提到的API函数进行Google,存在漏洞的API肯定是存在在Windows 2000以来所有版本Windows中的,例如DsGetDcCloseW这样的API,微软文档声称“Client:Requires Windows Vista or Windows XP,Server:Requires Windows Server 2008 or Windows Server 2003.”,因此不可能是与漏洞有关。
剩下的可疑的Windows API有这些:

  • netapi32.dll DsAddressToSiteNamesA
  • netapi32.dll DsAddressToSiteNamesExA
  • netapi32.dll DsAddressToSiteNamesExW
  • netapi32.dll DsAddressToSiteNamesW
  • netapi32.dll DsDeregisterDnsHostRecordsA
  • netapi32.dll DsDeregisterDnsHostRecordsW
  • netapi32.dll DsEnumerateDomainTrustsA
  • netapi32.dll DsEnumerateDomainTrustsW
  • netapi32.dll DsGetDcNameA
  • netapi32.dll DsGetDcNameW
  • netapi32.dll DsGetDcOpenA
  • netapi32.dll DsGetDcOpenW
  • netapi32.dll DsGetDcSiteCoverageA
  • netapi32.dll DsGetDcSiteCoverageW
  • netapi32.dll DsGetSiteNameA
  • netapi32.dll DsGetSiteNameW
  • netapi32.dll DsMergeForestTrustInformationW
  • netapi32.dll DsRoleFreeMemory
  • netapi32.dll DsRoleGetPrimaryDomainInformation
  • netapi32.dll NetApiBufferAllocate
  • netapi32.dll NetApiBufferFree
  • netapi32.dll NetApiBufferReallocate
  • netapi32.dll NetApiBufferSize
  • netapi32.dll NetConnectionEnum
  • netapi32.dll NetDfsAdd
  • netapi32.dll NetDfsAddFtRoot
  • netapi32.dll NetDfsAddStdRoot
  • netapi32.dll NetDfsAddStdRootForced
  • netapi32.dll NetDfsEnum
  • netapi32.dll NetDfsGetClientInfo
  • netapi32.dll NetDfsGetInfo
  • netapi32.dll NetDfsRemove
  • netapi32.dll NetDfsRemoveFtRoot
  • netapi32.dll NetDfsRemoveStdRoot
  • netapi32.dll NetDfsSetClientInfo
  • netapi32.dll NetDfsSetInfo
  • netapi32.dll NetFileClose
  • netapi32.dll NetFileEnum
  • netapi32.dll NetFileGetInfo
  • netapi32.dll NetGetAnyDCName
  • netapi32.dll NetGetDCName
  • netapi32.dll NetGetDisplayInformationIndex
  • netapi32.dll NetGetJoinableOUs
  • netapi32.dll NetGetJoinInformation
  • netapi32.dll NetGroupAdd
  • netapi32.dll NetGroupAddUser
  • netapi32.dll NetGroupDel
  • netapi32.dll NetGroupDelUser
  • netapi32.dll NetGroupEnum
  • netapi32.dll NetGroupGetInfo
  • netapi32.dll NetGroupGetUsers
  • netapi32.dll NetGroupSetInfo
  • netapi32.dll NetGroupSetUsers
  • netapi32.dll NetLocalGroupAdd
  • netapi32.dll NetLocalGroupAddMembers
  • netapi32.dll NetLocalGroupDel
  • netapi32.dll NetLocalGroupDelMembers
  • netapi32.dll NetLocalGroupEnum
  • netapi32.dll NetLocalGroupGetInfo
  • netapi32.dll NetLocalGroupGetMembers
  • netapi32.dll NetLocalGroupSetInfo
  • netapi32.dll NetLocalGroupSetMembers
  • netapi32.dll NetQueryDisplayInformation
  • netapi32.dll NetRemoteComputerSupports
  • netapi32.dll NetRemoteTOD
  • netapi32.dll NetRenameMachineInDomain
  • netapi32.dll NetScheduleJobAdd
  • netapi32.dll NetScheduleJobDel
  • netapi32.dll NetScheduleJobEnum
  • netapi32.dll NetScheduleJobGetInfo
  • netapi32.dll NetServerComputerNameAdd
  • netapi32.dll NetServerComputerNameDel
  • netapi32.dll NetServerDiskEnum
  • netapi32.dll NetServerEnum
  • netapi32.dll NetServerGetInfo
  • netapi32.dll NetServerSetInfo
  • netapi32.dll NetServerTransportAdd
  • netapi32.dll NetServerTransportAddEx
  • netapi32.dll NetServerTransportDel
  • netapi32.dll NetServerTransportEnum
  • netapi32.dll NetSessionDel
  • netapi32.dll NetSessionEnum
  • netapi32.dll NetSessionGetInfo
  • netapi32.dll NetShareAdd
  • netapi32.dll NetShareCheck
  • netapi32.dll NetShareDel
  • netapi32.dll NetShareEnum
  • netapi32.dll NetShareGetInfo
  • netapi32.dll NetShareSetInfo
  • netapi32.dll NetStatisticsGet
  • netapi32.dll NetUnjoinDomain
  • netapi32.dll NetUseAdd
  • netapi32.dll NetUseDel
  • netapi32.dll NetUseEnum
  • netapi32.dll NetUseGetInfo
  • netapi32.dll NetUserAdd
  • netapi32.dll NetUserChangePassword
  • netapi32.dll NetUserDel
  • netapi32.dll NetUserEnum
  • netapi32.dll NetUserGetGroups
  • netapi32.dll NetUserGetInfo
  • netapi32.dll NetUserGetLocalGroups
  • netapi32.dll NetUserModalsGet
  • netapi32.dll NetUserModalsSet
  • netapi32.dll NetUserSetGroups
  • netapi32.dll NetUserSetInfo
  • netapi32.dll NetValidatePasswordPolicy
  • netapi32.dll NetWkstaGetInfo
  • netapi32.dll NetWkstaSetInfo
  • netapi32.dll NetWkstaTransportAdd
  • netapi32.dll NetWkstaTransportDel
  • netapi32.dll NetWkstaTransportEnum
  • netapi32.dll NetWkstaUserEnum
  • netapi32.dll NetWkstaUserGetInfo
  • netapi32.dll NetWkstaUserSetInfo

接下来只能猜了…
基于以上各点线索,猜测KB958644特大漏洞的原理可能是以下:

  • 文件共享及发现(共享打印机等)
  • Active Directory目录服务

微软爆出特大安全漏洞,会导致远程控制,危害程度跟“冲击波”类似,强烈建议各位下载此补丁。现已确认存在一个安全问题,通过了身份验证的远程攻击者可能会利用此问题危及基于Microsoft Windows系统的安全并获取对该系统的控制权。

Q&A:

  • Q:我不打会怎么样?A:目前尚无攻击手段,这几天是安全的,随着补丁的释出,攻击代码也会出现,到时候可能会出现类似震荡波冲击波的情况。此种紧急更新,微软历史上只有一次,那一次是冲击波。
  • Q:会不会影响正版验证?A:这种级别的安全补丁不会要求正版验证的,与黑屏和正版验证没有关系,放心打补丁。

技术文章:

http://www.microsoft.com/technet/security/bulletin/MS08-067.mspx
http://support.microsoft.com/?kbid=958644
下载地址:(点击打开相应的下载页面) ,推荐到Windows Update网站进行更新

某同学在我的微软在产品中使用Apache!?一文中回复,说没什么大惊小怪的,微软向来如此,并提出微软Live搜索search.live.com使用Linux服务器。据我所Google结果,这个说法可能来源于这里

[singlepic=18063]

其实这只是误解而已,不能证明search.live.com使用了Linux做服务器操作系统。原文中使用Netcraft的工具扫描域名所指向服务器的操作系统,并由此得出search.live.com使用Linux服务器的结论。
这是完全错误的。同样根据Netcraft的工具,还会反向查询IP所对应的所有者,可以发现,使用Linux的服务器,其IP都是属于ISP,没有一个属于Microsoft Corp。这些Linux服务器,只是ISP提供的NAT和边界网关而已,Microsoft只是不可避免地使用了ISP的服务,至于跑search.live.com的服务器,可以肯定,都是Windows Server。

10个小时之前,有人发现微软PDC 2008的Agenda里赫然列出八个名为“Windows Strata”的Session,据猜测应该是Windows云计算的网络操作系统的正式产品名称吧。Steve Ballmer这只大猴子终于踏上了一片云彩,变身孙悟空了!

[singlepic=18062]

据说,Windows Strata可以使提供在互联网上的 .NET应用程序可以直接运行。
之前的消息说,在周四的法国CIGREF大会上,鲍尔默透露,他们将称这操作系统为Windows 某某(之前成为:Windows Cloud),他将在四周后和大众见面,届时微软将为这款操作系统名称注册商标。
对于“cloud”的运作,鲍尔默称,它需要进行转换并且运用到微软开发的大部分工具,他们将使用 Silverlight技术使.Net在浏览器中运行,浏览器不是用户赖以生存的工具,其实PC应用程序拥有更好的用户界面,而浏览器程序也可以在非 Windows中运行,并且易于管理。

P.S. 我注册了www.windowsstrata.net这个域名…

计算机行业有着很多条轴线,你可以安装你想起来的去总结,总归错不了。某人说,计算机行业是唯一比女人更时尚的事物,此话不假。
最庸俗的轴线是软件之争,Firefox侵蚀着Internet Explorer的市场,Chrome占有率维持在0.7%之流,着实浅显得很,因为即便是初次使用计算机的用户,都会觉得Firefox较IE更快一些,左右用户选择的,其实是习惯问题,改起来也容易。
以前是语言之争,关于C#和Java哪个更好的问题听了不知道多少个版本了。其实当各种语言各自发展,都在数学及逻辑上具有了完备性之后,任何功能都可以实现了,并不存在哪种语言能做的,另一种种就不能做的问题,只不过侧重点不一样,实现的难易程度不一样而已。也许有人会说,你会做很多重新发明轮子的工作,Well,我勤奋,你管得着吗?
有点商业头脑的人,总觉得行业是公司之争,某想公司收购了某M公司的个人计算机部门,某通公司想不通为什么当年要把硬盘事业部卖给W某公司…其实公司只是个皮囊而已,关键的东西还是公司的产品。
其实软件行业是平台之争。平台之上,风光无限,平台之下,暗涌横流。

1. 操作系统平台之争
操作系统之争是计算机行业本源之一,从70年代到现在一直在不停竞争,在这之中,诞生了世界第一的公司,也毁灭了不知道多少的昔日计算机业巨鳄。
不过据本人观察,这段时间操作系统竞争趋于平静化,各家继续保持着依旧的占有率,Ubuntu为首的Linux操作系统也渐渐失去了某些风光,很多人真的只是玩玩而已,习惯的驱使,其实是硬件驱动的驱使,使得很多人继续使用着Windows。不是说Windows的日子好到哪去,在一只大猴子的带领下,某软渐渐地软了,据说这只大猴子最近看好一片云,要做孙悟空了。

2. 游戏平台之争
选择了PSP之后,才对这样的一个庞大而又不太引人注目的行业产生深深地兴趣。游戏行业完全是平台游戏,各家互不兼容,让游戏厂商不得不做出选择,要么NDS,要么PSP,要么动用2倍以上人力物力分别做一套。
家用机方面,Wii依旧火热,并演化出了现代酒吧的某些特质,玩Wii的人不只是为了那个虚拟世界,而是牵动的真实世界,居然出现了陪玩行业,游戏似乎已经不再属于宅男,这些人,要出世了。
XBox360是垃圾。
PS3无创新。这两个没什么好说的。

3. 成功与失败
这年头,谁拥有了眼球,谁就拥有了财富。平台是最赚钱的东西,当然前提是你要做对。不可否认的是,虽然微软有很多如同XBox360和Zune这样脑残的东西,但是主线产品,Windows,Office,SQL Server,.NET Framework,Internet Explorer,IIS,DirextX还是组成了坚不可摧的钢铁阵线,这一套东西,其实只要充分发挥,吃掉整个行业似乎不成问题。
当然这样的优势并不是谁都能做的,比如一个叫做Flex的平台,这是什么东西嘛。

作为微软技术的支持者,我真的不想驳微软的面子,可是…
今天听说Windows Server 2008标准版已经加入了微软学生中心,打算看看去,想不起学生中心的地址,就从英文页进入。几步之后我看到了这个页面:

[singlepic=18060,700,280]

在确认了几次浏览器地址栏,的确带有ms字样之后,我无语了,怎么可以在实际应用的产品页面,使用Apache呢?而且居然还是Apache默认页,这是哪个菜鸟干的?

微软刚刚宣布了Visual Studio 2010(Code name “Rosario”)和.NET Framework 4.0。

“With Visual Studio 2010 and the .NET Framework 4.0, we are focused on the core pillars of developer experience, support for the latest platforms spanning client, server, services and devices, targeted experiences for specific application types, and core architecture improvements,” said S. “Soma” Somasegar, senior vice president of the Developer Division at Microsoft. “These pillars are designed specifically to meet the needs of developers, the teams that drive the application life cycle from idea to delivery, and the customers that demand the highest quality applications across multiple platforms. You can expect to hear a lot more about Visual Studio 2010 and the .NET Framework 4.0 in the coming months.”