移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

五步呵护企业Windows环境下的Web办事

时间:2014-04-08 11:05来源:TuZhiJiaMi企业信息安全专家 点击:
大年夜中型企业有相昔时夜部门都在利用Windows Server和.Net架构来构建企业Web办事和利用,是以Web办事和Web利用法度凡是被ASP.NET和IIS主管。呵护Web办事和Web应 用法度是一个建设环境的标题问题而
Tags应用安全(1006)Windows(112)应用程序(59)Web服务(3)  

  大年夜中型企业有相昔时夜部门都在利用Windows Server和.Net架构来构建企业Web办事和利用,是以Web办事和Web利用法度凡是被ASP.NET和IIS主管。呵护Web办事和Web应 用法度是一个建设环境的标题问题而不是编程标题问题。例如,利用SSL/TLS经由过程加密来确保保密性是最好的实现编制。为你的利用法度激活它,简单的编制是对 IIS进行得当的建设,然后利用前缀为https的URL进行拜候。

  ASP.NET安然性的建设首要触及到编纂一个分级的XML文档调集。在这棵树的顶部是machine.config,此中运行在这台机械上的用于所有 ASP.NET利用法度的全局设置被拟定好。在全局建设文件的下面是web.config文件,它包含了每个伶仃的ASP.NET利用法度的设置。本文将 会商如安在这些文件中建设CAS、身份认证、假充和授权等方面,来包管Web办事安然运行。

  1、为ASP.NET建设CAS

  虽然CAS首要作为呵护系统客户端免受歹意移动代码侵扰的一种编制,但它与Web办事和Web利用法度在办事器端的摆设仍有一些联系关系。例如,一台办事器可 能主管不止一个的个别,集体和组织授权的ASP.NET利用法度;在这类环境下,CAS有助于削减由一个实体具有的利用法度被别的一个实体具有的利用法度 干扰的风险,也有助于被办事器把持系统干扰的风险。

  可是,你应当寄望到:在默许环境下,CAS策略授予ASP.NET利用法度一套完全的法度集。因为他们从本地机械上运行。很明显,当建设你的利用法度时, 你应当批改这一点。.NET框架定义了良多不合的信赖级别:Full, High, Medium, Low和 Minimal,你可以用他们来肯定ASP.NET利用法度的特权授予。除这些策略中的第一种在建设文件 web_hightrust.config, web_mediumtrust.config等中被指定,其他所有策略位于.NET框架根目次下的建设子目次。为了给一个特别的ASP.NET利用法度 授权一个medium信赖等第,你必需给它的web.config文件以下的布局:

  2、以最小特权运行

  措置单个ASP.NET要求的“工作过程”运行在账户为ASPNET的Windows环境中。这个特别的账户有一个受限的Windows 特权集,为了节制这类侵害,应当让给ASP.NET利用法度。可是,对工作过程来讲,在与IIS不异的账户——SYSTEM账户下履行是可能的。假定你 想要这类环境产生,你编写的machine.config文件应当像如许:

  为了让如许的更改生效,必需重启IIS治理办事和WWW发布办事。

  如许做的一个启事多是:为了获得Windows用户用于假充目标的拜候令牌,承诺你的ASP.NET代码从Win32 API中调用LogonUser。可是,这背反了最低权限(least privilege)的根基安然原则,和较着增加了成功报复打击所引发的侵害。是以在那样做之前你应当细心考虑。

  3、身份认证

  ASP.NET供给了四中典型的身份认证:None,Windows,Forms和Passport。每种认证都是在利用法度的根文件 web.config中建设的。例如,为了完全禁用ASP.NET身份认证——合适于不需要用户登录的公共网站,那么你需要如许的一个建设文件:

  你应当服膺IIS身份认证和ASP.NET身份认证之间的彼此感化。二者都将需要被准确地建设,以达到预期的结果。凡是环境下,你会在IIS和 ASP.NET二者当中中利用Windows身份认证模式;或在IIS中和在ASP.NET中的None,Forms,Passport的某一种利用 匿名模式。

  在IIS和ASP.NET二者中利用Windows身份认证的长处是:暗码不消经由过程收集发送,而是客户端利用法度向IIS供给了当前登录用户身份的相干信 息,那使得这些信息转发到你的ASP.NET利用法度上。这类编制的错误谬误是:它依托于客户端和办事器端的Windows把持系统。Forms式的身份认证 对基于互联网的系统是一种更合适的编制,可是在这类环境下,利用SSL/TLS来确保用户供给的凭证是加密的,这很是有需要。

  4、假充

  不管Windows身份认证是不是已选择,ASP.NET身份认证没有指明ASP.NET利用法度运行下的用户环境。假定你想要你的利用法度在肆意账号,而不但仅是ASPNET账号的环境中运行,你必需要假充身份。

  假定要求的用户已被IIS许可为有效的Windows用户,这是由以下web.config中的内容完成的:

  这将导致ASP.NET利用法度假充发出要求的用户。但是,假定IIS设置为匿名身份认证,那么在IIS中,ASP.NET利用法度假充肆意一个用户账号,这些账号已被建设为匿名拜候。

  假定你想要你的ASP.NET利用法度假充特定的用户,这是很简单的:

  在此很较着的危险就是:在web.config顶用户凭证以明文情势存在。避免该危险是可能的,我们经由过程在注册表中存储加密的用户凭证,并且从web.config的元夙来援引他们。

  

  userName="registry:HKLMSoftwareMyAppAspNet,Name",

  password="registry:HKLMSoftwareMyAppAspNet,Password"/>

  这个合用的aspnet_setreg.exe必需被用于加密用户凭证和在注册表中存储加密的用户凭证。

  5、授权

  当你在ASP.NET中利用Windows授权时,为了拜候一个给定的资本,被授权的用户必需有需要的NTFS权限。这被称为文件授权(file authorization)。ASP.NET撑持其他的更具矫捷性的授权类型,这被称为URL授权(URL authorization)。不像文件授权,这是经由过程利用法度的web.config文件来建设的。它主如果基于经由过程对ASP.NET身份认证来对利用 法度进行分派;而不是基于一个颠末许可的Windows账户的权限上。一个简单URL授权建设的例子以下:

  这个例子承诺用户Fred和Joe将HTTP GET要求提交到利用法度,以求得由web.config文件治理的网站中的肆意资本。可是若经由过程HTTP POST要求,就会拒尽他们拜候这些资本。担负开辟者角色的肆意人(除Fred或 Joe)是承诺无限制的拜候该网站的,可是其他所有效户被拒尽拜候任何资本。这些元素的挨次很是首要,因为第一个匹配将是ASP.NET会利用到的。

------分隔线----------------------------

推荐内容