- 能否澄清一下不同运行方式之间的区别所在?
-
发布时间:2010-12-02 09:30:37
发布时间:2010-12-02 09:30:37
我始终认为“在进程以内”这一术语存在一些混淆。所有应用程序均在某个进程中运行,因此,实际上并不存在所谓“在进程以外”运行的应用程序。然而,我们经 常在有关IIS应用程序的参考文献中见到这个术语,那么,它究竟代表何种含义呢?在IIS 4与IIS 5.x中,包含一个名为inetinfo的进程。当Web应用程序“在进程以内”运行时,该应用程序将在inetinfo进程内部运行。对于IIS 4应用程序来说,缺省情况下,应用程序将在inetinfo进程内运行。
与此相对应,“在进程以外”运行的应用程序是指那些并非在inetinfo进程中运行的应用程序。对于IIS 4,“在进程以外”运行的应用程序宿主于一个名为MTX的进程;对于IIS 5.x,此种应用程序则宿主于一个名为dllhost的进程。
所有进程均在某个用户帐号的安全环境中运行。Inetinfo进程在System帐号下运行。MTX(IIS 4)和dllhost(IIS 5.x)则在IWAM_帐号下运行。
现 在,我们已经对回答您的问题所涉及的相关概念进行了解释。在一次成功的缓存溢出攻击事件中,攻击者可能会在托管失败应用程序的进程安全环境中运行相关代 码。因此,如果您的应用程序在进程以内(在inetinfo进程中)运行,攻击者将在具备全面服务器访问权限的System安全环境中运行。如果您的应用 程序在进程以外(在MTX或dllhost进程中)运行,攻击者将在仅仅具备有限服务器访问权限的IWAM帐号安全环境中运行。
需要特别注意 的是,在缺省配置方案中,IIS 5按照中等应用程序保护设置(在进程以外模式下采用池分配方式)“在进程以外”运行所有应用程序。由于前面所提到的原因,这种运行方式与在进程以内运行应 用程序相比要安全可靠得多。与缺省设置相比,由于通过System帐号访问服务器在IIS 5上所导致高发性缓存溢出攻击使服务器极易遭受攻击。在针对IWAM与IUSER帐号应用严格限制条件的同时,通过运行IIS Lockdown工具还可实现额外的安全性。
顺便提及一下,(作为Windows .NET Server 2003的组成部分之一)IIS 6采用这样一种配置方式,即在缺省的工作进程独立模式下,缓存溢出攻击根本无法通过具备高级权限的用户帐号对服务器进行访问。