windows内核开发学习笔记四十七:安全管理

        windows系统有严格的安全模型,既实现了以对象为基础的自主访问控制(discretionary access control)又实现了系统级的强制访问控制(mandatory access control)。在自主访问的控制模型中,对象的所有者授权或拒绝哪些用户可以访问该对像。基于对象的访问控制并不能保护系统的所有操作,因为操作并没有与一个特定的对象联系在一起,如系统停机(shutdown)、备份文件核目录、交互式登陆到系统中等;甚至有些操作针对整个系统,并不与特定用户账号相关联,如账户的口令策略(通常不允许空口令)、允许或禁止匿名链接等。

        windows操作系统涉及安全性管理的核心组件有:winlogon、SRM和lsass,winlogon和lsass是两个用户模式进程,SRM是windows内核执行体中的组件。

从图中可以看出安全组件的职责如下:

  • SRM(安全引用监视器):负责 执行对象的安全访问检查、管理用户特权、生成安全审计消息,并且定义了访问令牌的数据结构来表示一个安全的环境。
  • Winlogon:负责响应SAS(安全注意序列),以及管理交互式登陆会话。当用户登陆到系统中时,winlogon创建一个初始进程,并进一步由它创建外壳(shell)进程。
  • Lsass(本地安全权威子系统):负责本地系统的安全策略,同时,它也认证用户的身份,以及将安全审计消息发送到系统的事件日志中。
  • SAM(安全账户管理器)数据库:包含了本地用户及用户组,包括它们的口令及其他属性。位于注册表的HKLM\SAM下面。由于HKLM\SAM键只允许本系统账户访问,所以,除非用户在Local System账户下运行regedit.exe工具,否则无法访问HKLM\SAM子树。 
  • LSA策略数据库:包含了有关当前系统的信息,如准许访问系统以及如何访问(交互式登陆、网络登录或者以服务方式登陆);分配给谁哪些特权;如何进行安全审计等。如同SAM数据库一样,LSA策略数据库也存储在注册表中,位于HKLM\SECURITY下面。除了Local System账户以外的其他账户均无法访问HKLM\SECURITY子树。

        总之,在windows的安全模型中,winlogon负责系统登陆及用户身份的认证;lsass负责管理本地的安全策略,并将这些策略通知到内核中的SRM。在内核中,SRM负责实现基于对象的访问控制以及系统安全策略的实施。WRK中的SRM代码位于base\ntos\se目录下。在此模型中,lsass和SRM对于系统安全性至关重要,一旦两个组件被恶意代码修改或者侵入,则系统的安全防线将不复存在。windows对两个组件有特殊保护,普通应用程序无法与它们打交道,它们相互之间通过LPC进行通信。它们的LPC连接在系统初始化时建立,而且,一旦双向LPC链接建立起来,它们的LPC端口便不再接受任何其他的链接请求,因而其他程序与它们无法建立LPC连接。   

        

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jyl_sh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值