Windows2003安全策略变化

ZDNet软件频道 时间:2004-03-16 作者:Builder.com |  我要评论()
本文关键词:
随着很多公司迁移到Windows Server 2003,开发人员要知道,为了让操作系统更加安全而作出的变化可能会影响你应用程序工作的方式。
本文译自Builder.com,未经许可请勿转载

最近,Internet Explorer剖析含有@字符的URL的方式发生了改变,这让我想到了另外一些变化,这些变化完全是考虑到安全而作出的,但是仍然会对开发人员产生巨大的影响。

例如,随着很多公司迁移到Windows Server 2003,开发人员要知道,为了让操作系统更加安全而作出的变化可能会影响你应用程序工作的方式——或者可能会导致它们无法工作。

历史遗留的问题

以前遗留的代码是操作系统设计人员的毒药。由于需要支持一些应用程序,而这些程序带有的一些特性或者协议会被功能和安全(策略)忽略掉,因此很多漏洞都留在了Windows环境里。

随着Windows Server 2003的出现,微软已经承诺通过在缺省的安装方式中禁止很多原来的特性,以加强其未来软件的发布。这就意味着很多做事情的传统方式完全无法继续工作,或者只有在开发人员使用应用程序的安装程序专门开启所需特性的时候才能够正常工作。

软件可能会带有这些开发人员要用的特性,这些开发人员需要它们,并愿意承担激活它们的风险。例如,Internet信息服务(Internet Information Services,IIS)在Windows Server 2003里是缺省关闭的;但是,很多Web应用程序需要IIS被激活。

解决这种历史遗留问题的一种方法是确定你的应用程序对操作系统的依赖性,然后修改所有的安装工具以反映这种需要(例如,你可以通知用户所需要的依赖性没有运行,所以必须启动)。如果可能的话,你应该更新应用程序的代码以便能够使用更新的特性。

MSDN提供了一篇Michael Howard所写的关于安全开发人员中心(Security Developer Center)的文章,里面详细叙述了Windows Server 2003里的安全变化会对开发人员产生什么样的影响。这篇文章使用了NetDDE这个具体的例子,它在Windows Server 2003的缺省状态下被禁止;因此,你必须启动这项服务或者(最好)用套接字替换它。

角色伪装的问题

在Windows Server 2003上运行应用程序的另一个大问题就是伪装(impersonation)的问题。伪装被保留给了Windows Server 2003里的管理员(admin)、服务帐号(service account),以及一些COM+进程。对SetThreadToken或者另一个伪装函数的调用很有可能无法在这个平台上使用。

让ISAPI应用程序调用RevertToSelf以便运行系统命令的常见做法是无法运行在IIS 6.0上,因为这个版本将要求权限的提高。把工作进程作为SYSTEM来运行不是处理这个问题的正确方法。

微软建议:“如果你需要更高的权限来运行某些请求,那么[你应该]创建一项服务,以所要求的权限来运行它,并把请求通过管线或者套接字传递给它。”

动态链接库的问题

Windows Server 2003(以及Windows XP SP1)改变了动态链接库(DLL)的搜索顺序,以对付恶意程序,尤其是某些木马程序。

当前目录不再是Windows Server 2003查找DLL的第一个地方。任何把正确的DLL加载到应用程序目录里的应用程序都可能发生故障。从Windows Server 2003和XP SP1开始,系统会首先在系统目录下搜寻,如果找到一个的话,可能首先调用一个不兼容的DLL。应用程序目录现在成了寻找所需DLL的第二个地方,然后才是用户定义的路径。

变化总是好的

微软对新操作系统缺省设置的改变让Windows变成了一个更加安全的环境,并对应用程序的工作方式产生了影响。要记住,这样一些变化会通过服务包加到原有的操作系统里,尤其是Windows XP,所以你要考虑得远一点,看看你的应用程序是否能够运行在Windows Server 2003上。


本文作者:John McCormick是IT领域安全顾问和知名作家,发表过超过15,500篇文章。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134