WEB开发网
开发学院网络安全安全技术 使用协议转换 - 防御提示 阅读

使用协议转换 - 防御提示

 2009-02-09 13:52:49 来源:WEB开发网   
核心提示: 图 4 显示了我的示例网关使用的 Web 窗体,您可以指定用户主体名和文件路径作为输入参数,使用协议转换 - 防御提示(9),它将调用登录服务以便为该用户建立 S4U 登录、将得到的句柄封装到 WindowsIdentity 中、模拟该用户并读取文件,您可以打开网关所在的计算机中的文件,因

图 4 显示了我的示例网关使用的 Web 窗体。您可以指定用户主体名和文件路径作为输入参数,它将调用登录服务以便为该用户建立 S4U 登录、将得到的句柄封装到 WindowsIdentity 中、模拟该用户并读取文件。您可以打开网关所在的计算机中的文件,也可以打开网络中的文件。您需要配置 A2D2 列表,包含所有您计划从中读取文件的服务器,(尽管这是特定于文件系统的操作,但实际上,它是通过一个在每台计算机中以 SYSTEM 运行的称为 Workstation 服务的后台程序来完成的)您需要为网关的计算机帐户设置 A2D2 列表以及设置运行网关所使用的用户帐户。

使用协议转换 - 防御提示

图 4示例网关 Web 应用程序

图 5 显示了运行 Web 页的代码,该代码调用了登录服务。值得注意的是,当您从一个令牌句柄构造 WindowsIdentity 时,WindowsIdentity 构造函数会复制传入的句柄。您需要将原句柄关闭。这就是我在 C# using 语句中使用 SafeTokenHandle 类时倍加小心的原因,这样做会导致在 using 块结束时关闭原令牌句柄。对于长时间运行的进程(如网关),特别是对于敏感的句柄(如令牌),这一点尤为重要。

使用协议转换 - 防御提示Figure5用于示例网关 Web 应用程序的 Codebehind

public partial class _Default : System.Web.UI.Page {
  protected void btnRead_Click(object sender, EventArgs e) {
    // connect to our privileged logon service (runs in COM+)
    ILogonService logonService = new LogonService();
    int tokenHandleValue =
      logonService.LogonUserViaProtocolTransition(
        txtUser.Text, GetCurrentProcessId());
    // WindowsIdentity ctor dups the incoming handle, so we use
    // SafeTokenHandle to ensure that the original gets closed
    using (SafeTokenHandle token = new SafeTokenHandle(
      tokenHandleValue))
    using (WindowsIdentity id = new WindowsIdentity(
      token.DangerousGetHandle()))
    using (WindowsImpersonationContext wic = id.Impersonate()) {
      txtOutput.Text = File.ReadAllText(txtPath.Text);
    }
  }
  [DllImport("kernel32.dll", SetLastError = true)]
  static extern int GetCurrentProcessId();
}

安全注意事项

所有的安全应对措施都不是尽善尽美的。本解决方案显著降低了网关进程的权限等级,您不必再将网关以 SYSTEM 来运行。请记住,成功控制某个进程的黑客能够随心所欲地执行该进程能执行的所有功能(包括调用登录服务来获得协议转换登录)。以 SYSTEM 身份运行的黑客一旦找到安全性较弱的密码并破解了该密码的散列值,他就可以读取本地安全帐户数据库,并可能获得对网络中其他系统的访问权限。在更低的权限下运行网关提供了针对这类攻击的有效防护。那么这个解决方案的缺点又在哪呢?您引入了第二个进程,由此也带来了由于调用该进程而产生的切换运行环境的系统开销。您的解决方案的部署难度加大,因为您现在不得不安装登录服务 COM+ 组件。对于您的系统而言,这些利弊关系是否值当?权衡与决策由您自己掌握。

上一页  4 5 6 7 8 9 

Tags:使用 协议 转换

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接