windows安全性

Antimalware Scan Interface AMSI

Windows反恶意软件扫描接口(AMSI)是一种通用接口标准,可让您的应用程序和服务与计算机上存在的任何反恶意软件产品集成。

Authentication 认证

  1. LSA身份验证

  2. 凭据管理

    域凭证 域凭据的秘密部分(密码)受操作系统保护。只有使用LSA在进程中运行的代码才能读取和写入域凭据。应用程序仅限于编写域凭据

    通用凭证 通用凭证可以由用户进程读取和写入

    用户名格式

  3. 智能卡身份验证

  4. 网络提供程序

  5. 安全支持提供程序接口(SSPI)

  6. Winlogon

  7. GINA

Authorization 授权

Access Control

[美国国防部定义的C2级安全性](https://docs.microsoft.com/windows/win32/secauthz/c2-level-security)

访问控制模型

  1. Access tokens

  2. Security descriptors

    每个进程都拥有用户登陆时创建的访问令牌。
    访问令牌中包含安全标识符
    安全描述符中包含用户的帐户以及用户所属的任何组帐户

  3. ACL 访问控制列表

    DACL
    SACL 进程必须要有 SE_SECURITY_NAME特权

    ACE Access Rights and Access Masks

    ACE类型 描述
    Access-denied ACE Used in a discretionary access control list (DACL) to deny access rights to a trustee.
    Access-allowed ACE Used in a DACL to allow access rights to a trustee.
    System-audit ACE Used in a system access control list (SACL) to generate an audit record when the trustee attempts to exercise the specified access rights.

    ==文件目录特有==

    ACE类型 描述
    Access-denied object ACE Used in a DACL to deny a trustee access to a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the ACCESS_DENIED_OBJECT_ACE structure.
    Access-allowed object ACE Used in a DACL to allow a trustee access to a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the ACCESS_ALLOWED_OBJECT_ACE structure.
    SSystem-audit object ACE Used in a SACL to log a trustee’s attempts to access a property or property set on the object, or to limit ACE inheritance to a specified type of child object. Uses the SYSTEM_AUDIT_OBJECT_ACE structure.
  4. Trustees 委托人

    用户账户、组账户、登录会话

  5. Access Rights and Access Masks 访问权限和访问掩码

    • Generic access rights 通用访问权限
      • GENERIC_ALL
      • GENERIC_EXECUTE
      • GENERIC_READ
      • GENERIC_WRITE
    • Standard access rights 标准访问权限
      • DELETE
      • READ_CONTROL
      • SYNCHRONIZE
      • WRITE_DAC
      • WRITE_OWNER
    • SACL access right SACL访问权限
      1. 进程 AdjustTokenPrivileges 启用 SE_SECURITY_NAME
      2. Request the ACCESS_SYSTEM_SECURITY access right when you open a handle to the object.
      3. Get or set the object’s SACL by using a function such as GetSecurityInfo or SetSecurityInfo.
      4. 进程 AdjustTokenPrivileges 禁用 SE_SECURITY_NAME
    • Directory services access rights 目录服务访问权限
      • ACTRL_DS_OPEN
      • ACTRL_DS_CREATE_CHILD
      • ACTRL_DS_DELETE_CHILD
      • ACTRL_DS_LIST 枚举
      • ACTRL_DS_READ_PROP
      • ACTRL_DS_WRITE_PROP
      • ACTRL_DS_SELF 仅在执行对象支持的经过验证的权限检查后才允许访问。此标志可以单独用于执行对象的所有已验证权限检查,也可以与特定已验证权限的标识符组合以仅执行该检查。
      • ACTRL_DS_DELETE_TREE
      • ACTRL_DS_LIST_OBJECT
      • ACTRL_DS_CONTROL_ACCESS 仅在执行对象支持的扩展权限检查后才允许访问。该标志可以单独用于对对象执行所有扩展权限检查,也可以与特定扩展权限的标识符组合以仅执行该检查。
  6. SID 安全描述符

    Function Description
    AllocateAndInitializeSid 用指定数量的子权限分配和初始化SID。
    ConvertSidToStringSid 将SID转换为适合于显示,存储或传输的字符串格式。
    ConvertStringSidToSid 将字符串格式的SID转换为有效的功能性SID。
    CopySid 将源SID复制到缓冲区。
    EqualPrefixSid 测试两个SID前缀值是否相等。SID前缀是除最后一个子权限值以外的整个SID。
    EqualSid 测试两个SID是否相等。它们必须完全匹配才能被视为相等。
    FreeSid 使用AllocateAndInitializeSid函数释放先前分配的SID 。
    GetLengthSid 检索SID的长度。
    GetSidIdentifierAuthority 检索指向SID标识符权限的指针。
    GetSidLengthRequired 检索存储具有指定数量的子权限的SID所需的缓冲区大小。
    GetSidSubAuthority 检索指向SID中指定的子权限的指针。
    GetSidSubAuthorityCount 检索SID中的子机构数。
    InitialSid 初始化SID结构。
    IsValidSid 通过验证修订号是否在已知范围内以及子授权机构的数量小于最大值来测试SID的有效性。
    LookupAccountName 检索与指定帐户名对应的SID。
    LookupAccountSid 检索与指定的SID对应的帐户名。

    SID 结构

     S - R - I - S
     S-1-5-32-544  本地Administrators组
     1 修订级别
     5 SECURITY_NT_AUTHORITY
     32 SECURITY_BUILTIN_DOMAIN_RID
     544 DOMAIN_ALIAS_RID_ADMINS
    

Access Control Editor

Client/Server Access Control

Access Control for Application Resources

Mandatory Integrity Control

强制完整性控制

Windows Vista定义了四个完整性级别:低(SID: S-1-16-4096)、中(SID: S-1-16-8192)、高(SID: S-1-16-12288)、系统(SID: S-1-16-16384)。默认情况下,普通用户启动的进程将获得中完整性级别,而提升的进程则获得高完整性级别。通过引入完整性级别,强制完整性控制可以分类隔离程序,使得沙箱化潜在危险程序(如进行网络通信的程序)成为可能。低完整性进程所拥有的访问权限少于那些拥有更高完整性级别的进程。

User Account Control

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2020-2021 一潭清泓
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信