当前位置: 首页 > news >正文

UAC实现原理

UAC实现原理:

  • 当用户登录系统成功后, 系统会为用户生成一个accessToken。该用户调用的每一个进程都会有一个AccessToken copy。当进程要访问某个securable object 时,系统会比对accessToken拥有的权限(previlages 是否能访问securable object)
  • 如果安全描述符中不存在DACL,则系统会允许线程进行访问。如果存在DACL,系统会顺序遍历DACL中的每个ACE,检查ACE中的SID在线程的AccessTkoen中是否存在。以访问者中的User SID或Group SID作为关键字查询被访问对象中的DACL。顺序:先查询类型为DENY的ACE,若命中且权限符合则访问拒绝;未命中再在ALLOWED类型的ACE中查询,若命中且类型符合则可以访问;如果前两步后还没命中那么访问拒绝。

相关概念:
ntoskrnl.exe: ntoskrnl.exe 是 Windows 操作系统的一个重要内核程序文件,里面存储了大量的二进制内核代码,用于调度系统。
Windows执行体: Windows执行体是ntoskrnl.exe中的上层(内核是其下层)。
对象管理器(Object Manager): 创建、管理和删除Windows执行体对象和抽象数据类型,他们(抽象数据类型)代表了操作系统资源,比如进程、线程和各种同步对象。

环境子系统: 环境子系统是操作系统中名词。环境子系统向应用程序提供环境和应用程序编程接口(Appplication Programming Interface, API)。Windows 2000/XP支持三种环境子系统:Win32、POSIX和OS/2,其中最重要的环境子系统是Win32子系统,其他子系统都要通过Win32子系统接收用户的输入和显示输出。环境子系统的作用是将基本的执行体系统服务的某些子集提供给应用程序。 用户应用程序调用系统服务时必须通过一个或多个子系统动态链接库作为中介才可以完成。
执行体对象: 每个Windows环境子系统总是把操作系统的不同面貌呈现给它的应用程序。执行体对象和对象服务是环境子系统用于构建其自有版本的对象和其他资源的基础。
安全描述符(Security descriptors): 是安全信息的数据结构(SECURITY_DESCRIPTOR),用于可安全(securable)的Windows对象,这些对象可以被唯一名称辨识。安全描述符可用于任何命名对象,包括文件、文件夹、共享、注册表键、进程、线程、命名管道、服务、工作对象以及其他资源。

  • 版本号:创建此描述符的SRM安全模型的版本;
  • 标志:一些可选的修饰符,定义了该描述符的行为或特征。表6.5列出了这些标志;
  • 所有者SID:所有者的安全ID
  • 组SID:该对象的主组的安全ID(仅用于POSIX)
  • 自主访问控制列表(discretionary access control list,DACL):规定了谁可以用什么方式访问该对象。
  • 系统访问控制列表(System Access Control List,SACL)规定了哪些用户的哪些操作应该被记录到安全审计日志中,以及对象的显式完整性级别。
typedef struct _SECURITY_DESCRIPTOR {  
  UCHAR  Revision;  
  UCHAR  Sbz1;  
  SECURITY_DESCRIPTOR_CONTROL  Control; //其自身的一些控制位  
  PSID  Owner; //Owner安全标识符(Security identifiers) 相当于UUID,标识用户、用户群、计算机帐户  
  PSID  Group; //Group安全标识符(Security identifiers) 相当于UUID  
  PACL  Sacl; //(System Access Control List),其指出了在该对象上的一组存取方式(如,读、写、运行等)的存取控制权限细节的列表。  
  PACL  Dacl; //(Discretionary Access Control List),其指出了允许和拒绝某用户或用户组的存取控制列表。 如果一个对象没有DACL,那么就是说这个对象是任何人都可以拥有完全的访问权限。   
} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;  
  
typedef struct _ACL {  
    BYTE  AclRevision;  
    BYTE  Sbz1;  
    WORD   AclSize;  
    WORD   AceCount;  
    WORD   Sbz2;  
} ACL, *PACL;  

安全标识符 (Security Identifier,SID): 是Windows操作系统使用的独一无二的,不变的标识符用于标识用户、用户群、或其他安全主体。
可移植操作系统接口(POSIX): 是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。
访问控制项( access control entries,ACE):
安全描述符: 包含自主决定的访问控制表(DACL),里面包含有访问控制项(ACE),因此可以允许或拒绝特定用户或用户组的访问。它们还包含一个系统访问控制列表(SACL)以控制对象访问请求的日志(logging)。[2][3]ACE可以显式应用于对象,或者从父对象继承。ACE的顺序在ACL中很重要,拒绝访问的ACE应该比允许访问的ACE更早出现。安全描述符还包含对象所有者。
访问控制列表(access control list,ACL): 访问控制列表(ACL,access-control list)是由一个头和零个或多个访问控制项(ACE, access-control entry)结构组成的。共有两种类型的ACL: DACL和SACL。在DACL中,每一个ACE包含一个SID和一个访问掩码。


相关文章:

  • 【通信】Matlab实现多同步压缩变换
  • Element常用api webview
  • C语言结构体小栗子
  • 空间数据结构管理---RTree (下篇,代码实例)
  • 看我炫一下
  • Array.from(new Set)去重 与Array.map()
  • Go 学习笔记(89) — 接口类型变量的等值比较操作(nil 接口变量、空接口类型变量、非空接口类型变量)
  • dubbo源码解析之服务调用(通信)流程
  • Linux网络技术学习(四)—— 用户空间与内核的接口
  • Django--ORM 多表查询
  • pytest 运行方式、常用参数、前后置条件
  • MySQL-1-SQL讲解
  • 数据结构与算法之美读书笔记15
  • msf辅助模块详细操作
  • 【移动端网页特效】02-移动端轮播图(原生JS)
  • [译]前端离线指南(上)
  • CAP理论的例子讲解
  • java8-模拟hadoop
  • java第三方包学习之lombok
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • React 快速上手 - 07 前端路由 react-router
  • 从tcpdump抓包看TCP/IP协议
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • NLPIR智能语义技术让大数据挖掘更简单
  • 移动端高清、多屏适配方案
  • # centos7下FFmpeg环境部署记录
  • #Lua:Lua调用C++生成的DLL库
  • #Z0458. 树的中心2
  • (9)目标检测_SSD的原理
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (笔试题)合法字符串
  • (初研) Sentence-embedding fine-tune notebook
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (四)c52学习之旅-流水LED灯
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .FileZilla的使用和主动模式被动模式介绍
  • .net 托管代码与非托管代码
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • /var/log/cvslog 太大
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Data注解的作用
  • @RunWith注解作用
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [ES-5.6.12] x-pack ssl
  • [git] windows系统安装git教程和配置