章节定位
This chapter builds on IAM topics and covers common access control models.
本章建立在 IAM 主题之上,并介绍常见访问控制模型。
先识别和认证,再授权和审计。第 14 章就是把“登录之后怎么管访问”讲清楚。
题目问 access control models、authorization mechanisms、privilege escalation 时,多半落在本章。
左侧是英文原文摘录、中文直译、小白解释和考点提醒;右侧是对应画报。手机端会先显示画报,点击图片可放大查看。
第 14 章承接第 13 章的身份与认证:认证只能证明“你是谁”,授权才决定“你能对什么资源做什么”。本章把授权机制、访问控制模型、SSO 协议、远程认证、零信任和访问控制攻击串成一条主线。
This chapter builds on IAM topics and covers common access control models.
本章建立在 IAM 主题之上,并介绍常见访问控制模型。
先识别和认证,再授权和审计。第 14 章就是把“登录之后怎么管访问”讲清楚。
题目问 access control models、authorization mechanisms、privilege escalation 时,多半落在本章。
After authenticating subjects, the next step is authorization.
对主体完成认证后,下一步就是授权。
账号密码正确只说明身份可信,不代表可以读所有文件、改所有配置。
Authentication 证明身份;Authorization 决定权限。
A subject is an active entity that accesses a passive object.
主体是访问被动客体的主动实体。
用户、进程、服务、设备都可能主动请求访问资源,所以都可能是主体。
subject 主动发起访问。
An object is a passive entity that provides information to active subjects.
客体是向主动主体提供信息的被动实体。
文件、数据库、应用、打印机、网络服务和数据集都可以是被访问的客体。
object 被主体访问;同一实体在不同场景中可切换角色。
Permissions refer to the access granted for an object.
权限通常指授予某个对象的访问能力。
例如文件的读、写、删除、执行,数据库的查询、更新。
permissions 更偏对象上的具体操作能力。
A right primarily refers to the ability to take an action on an object.
权利主要指对对象执行动作的能力。
例如修改系统时间、恢复备份数据,是能执行某类动作的授权。
rights 和 permissions 常被混用,但考试可能要求细分。
A privilege is a combination of elevated rights and permissions.
特权是提升后的权利和权限的组合。
管理员拥有更高组合能力,能访问更多数据并执行更多管理动作。
privilege escalation 就是获得了不该拥有的更高权限。
授权机制回答“系统如何判断允许还是拒绝”。重点是隐式拒绝、访问控制矩阵、ACL、能力表、受限界面,以及内容相关和上下文相关控制。
Access is denied unless access has been explicitly granted.
除非明确授予访问,否则拒绝访问。
没有写“允许”不等于默认能进,而是默认不能进。
implicit deny = deny by default,是访问控制基本原则。
An access control matrix includes subjects, objects, and assigned privileges.
访问控制矩阵包含主体、客体以及分配的权限。
像一张大表:行是人或进程,列是文件或系统,格子里写能不能读、写、执行。
matrix 是集中视角,覆盖许多对象和主体。
ACLs are object-focused and identify access granted to subjects.
ACL 以对象为中心,标识授予主体的访问。
看一个文件时,列出哪些用户或组能访问它,以及各自能做什么。
ACL 看对象。
Capability lists are subject-focused.
能力表以主体为中心。
看一个用户或进程时,列出它能访问哪些对象以及能做什么。
Capability list 看主体,这是常见对比题。
Constrained interfaces restrict what users can do or see.
受限界面限制用户能执行或看到什么。
没权限的菜单被隐藏、置灰或禁用,用户看到的界面随权限变化。
Clark-Wilson 模型也会提到 constrained interface。
Content-dependent controls restrict access based on the content within an object.
内容相关控制根据对象中的内容限制访问。
数据库视图只显示姓名和邮箱,不显示信用卡号,就是按内容裁剪。
content-dependent 看数据本身。
Context-dependent controls require specific activity before granting access.
上下文相关控制要求特定活动完成后才授予访问。
必须先完成购买流程,才能进入下载页面;或只允许工作时间访问。
context-dependent 看访问场景、流程、时间、地点。
A security policy defines security requirements for an organization.
安全策略定义组织的安全要求。
策略说要做到什么,具体实现由标准、流程、系统配置和管理员落实。
policy 定义要求,不等同于每个技术配置细节。
DAC 和 RBAC 最容易混,因为它们都可能用组来管理用户。真正的差别是控制权:DAC 由对象所有者决定,RBAC 由管理员给角色或组分配权限。
Every object has an owner and the owner can grant or deny access.
每个对象都有所有者,所有者可以授予或拒绝访问。
谁创建或拥有文件,谁就能决定别人能不能访问这个文件。
DAC = Discretionary,关键字 owner。
A DAC model is implemented using access control lists on objects.
DAC 模型通过对象上的访问控制列表实现。
Windows NTFS 文件和文件夹权限就是常见例子。
看到 DACL、NTFS、owner 修改权限,优先想到 DAC。
Identity-based access control is a subset of DAC.
基于身份的访问控制是 DAC 的一个子集。
系统识别用户身份,并把资源所有权或访问条目绑定到身份。
identity-based access control 常被归入 DAC。
Administrators centrally administer nondiscretionary access controls.
管理员集中管理非自主访问控制。
非 DAC 系统不让对象所有者随意改访问规则,而是由中心规则或管理员控制。
MAC、RBAC、Rule-Based、ABAC 通常都属于 non-DAC 思路。
RBAC defines access based on the subject's job role.
RBAC 根据主体的工作角色定义访问能力。
用户加入“贷款专员”角色,就获得该岗位所需权限。
RBAC = Role controls;角色通常对应岗位职责。
RBAC is useful in dynamic environments with frequent personnel changes.
RBAC 适合人员频繁变化的动态环境。
入职、调岗、离职时改角色成员关系,比一个个文件手工授权更稳。
频繁人员变动、岗位授权、组继承权限,多数指 RBAC。
Privilege creep is the tendency for users to accrue privileges over time.
权限蔓延是用户随时间累积越来越多权限的趋势。
调岗只加新权限不收旧权限,最终用户权限越来越大。
定期访问审查和角色清理可降低 privilege creep。
Rule-Based、ABAC、Risk-Based 都会出现“策略”和“条件”,但粒度不同:规则看固定全局规则,ABAC 看多属性组合,Risk-Based 看当前环境和风险。
Rule-based access control applies predefined global rules to all subjects.
基于规则的访问控制把预定义全局规则应用于所有主体。
例如防火墙规则允许或阻断流量,规则对用户整体一致适用。
rule-based 常见关键字:global rules、restrictions、filters。
Rules are sometimes referred to as restrictions or filters.
规则有时被称为限制或过滤器。
它像一组统一的门禁条件,符合就放行,不符合就拦截。
防火墙规则是基于规则访问控制的典型例子。
ABAC uses rules that can include multiple attributes.
ABAC 使用可包含多个属性的规则。
把用户、设备、资源、位置、时间等属性组合起来判断。
ABAC = Attribute-Based;比普通 rule-based 更细。
Attributes can be characteristics of users, networks, and devices.
属性可以是用户、网络和设备的特征。
角色、部门、设备合规、加密状态、地理位置、资源敏感度都可作为属性。
题目出现多种属性组合授权,多半是 ABAC。
Many SDN applications use ABAC models.
许多软件定义网络应用使用 ABAC 模型。
例如允许经理用合规移动设备访问 WAN,策略可以更贴近业务语言。
SDN/SD-WAN 与动态策略常连到 ABAC。
Risk-based access control grants access after evaluating risk.
基于风险的访问控制在评估风险后授予访问。
先看环境、场景、设备行为、IP 地点、威胁情报,再决定放行、阻断或加强验证。
risk-based 是动态判断,不是静态 ACL。
It evaluates the environment, the situation, and security policies.
它评估环境、情境和安全策略。
急诊室访问病人数据可能低风险;陌生国家 IP 登录高敏系统可能高风险。
高风险时常触发 MFA、阻断或设备合规检查。
The policy may require smartphones and tablets to meet security requirements.
策略可能要求手机和平板满足特定安全要求。
设备要系统更新、开启加密、受 MDM 管理,才允许访问资源。
risk-based access control 可与 MDM、条件访问、机器学习结合。
MAC 是高安全场景常考模型。主体和客体都有标签,系统强制执行访问决定,用户和对象所有者不能随意改变权限。
MAC relies on classification labels applied to subjects and objects.
MAC 依赖应用于主体和客体的分类标签。
只有主体标签和客体标签匹配,并且满足规则,访问才会被允许。
MAC = Mandatory + labels。
The system determines access based on assigned labels.
系统根据分配的标签决定访问。
不是文件所有者说了算,也不是用户自己能改,控制更集中、更强制。
题目出现 user cannot change permissions,常指 MAC。
The MAC model is often referred to as a lattice-based model.
MAC 模型通常被称为基于格的模型。
等级和隔间像格子一样组合,决定哪些主体可访问哪些客体。
lattice-based 是 MAC 高频词。
A hierarchical environment orders labels from low to high security.
分层环境把标签按低到高安全级别排序。
机密、秘密、绝密之间存在上下关系,高许可可读较低级别。
hierarchical = 有等级顺序。
A compartmentalized environment has isolated security domains.
隔间环境包含相互隔离的安全域。
不同项目或安全域彼此独立,只有级别高还不够,还要有对应隔间许可。
compartmentalized = 域之间不互相包含。
A hybrid environment combines hierarchical and compartmentalized concepts.
混合环境结合分层和隔间概念。
既看绝密/秘密等级,也看项目隔间,控制细但管理更复杂。
hybrid MAC 粒度高,复杂度也高。
Compartmentalization enforces the need to know principle.
隔间化强制执行需知原则。
即使有高等级许可,也只有工作需要知道时才允许访问对应隔间。
clearance 不等于自动获得所有数据;还要 need to know。
互联网 SSO 的核心价值是让不同网站或组织交换认证、授权或用户资料信息,而不要求用户把密码交给第三方。考试重点是 SAML、OAuth 和 OIDC 的定位差异。
FIM allows different organizations to use federations for SSO.
联合身份管理允许不同组织通过联合实现 SSO。
用户在 A 公司登录后,可访问 B 公司资源而不用重新交出密码。
federation 关键词是 trust relationship 和身份信息共享。
XML describes the data, not just how to display it.
XML 描述数据本身,而不仅是显示方式。
许多认证和授权交换格式基于 XML,让系统之间能读懂身份信息。
SAML 是 XML-based。
SAML exchanges authentication and authorization information.
SAML 交换认证和授权信息。
它常用于浏览器 SSO,把用户、身份提供商、服务提供商连起来。
SAML = Security Assertion Markup Language,常见互联网 SSO 标准。
SAML 2.0 uses the principal, service provider, and identity provider.
SAML 2.0 使用主体、服务提供商和身份提供商三类实体。
用户要访问 SP,SP 把用户引到 IdP,IdP 验证后把断言返回给 SP。
Principal / SP / IdP 是 SAML 基本角色。
SAML assertions include authentication, attribute, and authorization statements.
SAML 断言包含认证、属性和授权声明。
断言告诉服务方:用户是否已认证、有哪些属性、是否能访问服务。
authentication statement、attribute statement、authorization statement 要分清。
OAuth is an authorization framework, not an authentication protocol.
OAuth 是授权框架,不是认证协议。
第三方应用拿到令牌访问资源,但用户不用把密码交给第三方应用。
看到 OAuth,先想 authorization。
OpenID Connect is an authentication layer using OAuth 2.0.
OpenID Connect 是使用 OAuth 2.0 的认证层。
OIDC 在 OAuth 之上增加认证能力,并可携带用户资料。
OIDC = OAuth 2.0 + authentication layer。
OIDC uses a JSON Web Token, also called an ID token.
OIDC 使用 JSON Web Token,也称 ID 令牌。
ID Token 可证明登录身份,也可包含部分用户资料信息。
JWT 和 ID token 常与 OIDC 一起出现。
Kerberos 是组织内部 SSO 常用认证协议。它使用对称加密和票据在客户端、KDC 和服务之间证明身份,并避免明文密码在网络上传输。
The primary purpose of Kerberos is authentication.
Kerberos 的主要目的是认证。
它先证明用户身份,再通过票据让用户访问网络服务。
考试问 Kerberos primary purpose,答案是 authentication。
Kerberos uses a trusted third party that provides authentication services.
Kerberos 使用提供认证服务的可信第三方。
KDC 是核心可信组件,通常包含认证服务器和票据授予服务。
KDC 是高价值目标,也是单点故障风险。
Subjects present the TGT when requesting tickets to access objects.
主体请求访问对象票据时提交 TGT。
TGT 像先拿到的入场凭证,再用它换访问某个服务的票据。
TGT = Ticket Granting Ticket。
Tickets prove a subject has been authorized to access an object.
票据证明主体已被授权访问某个对象。
服务票据交给目标服务,服务验证后建立会话。
Service Ticket 有生命周期和使用参数。
The user's password is never transmitted over the network.
用户密码永远不会通过网络传输。
系统使用密码哈希解密会话密钥,从而验证用户输入是否正确。
Kerberos 减少明文密码暴露,但仍需保护端点和票据。
Kerberos provides mutual authentication.
Kerberos 提供双向认证。
客户端和服务端都能确认对方身份,降低假冒服务风险。
mutual authentication 是 Kerberos 优势。
Kerberos has strict time requirements.
Kerberos 有严格时间要求。
默认要求系统时间大致同步,否则旧票据可能失效,认证会失败。
NTP、5 分钟窗口、时间漂移是 Kerberos 常见考点。
Kerberos uses port 88.
Kerberos 使用 88 端口。
在排错和安全设备规则里要知道 Kerberos 端口。
Kerberos = TCP/UDP 88。
RADIUS 和 TACACS+ 都围绕 AAA 与远程接入管理;零信任则把每次访问请求都交给策略决策和策略执行组件持续验证。
RADIUS centralizes authentication for remote access connections.
RADIUS 集中管理远程访问连接的认证。
VPN、拨号、ISP 接入都可把用户凭据交给 RADIUS 服务器验证。
RADIUS 常见于 remote access 和 network access servers。
The RADIUS server provides AAA services.
RADIUS 服务器提供 AAA 服务。
它验证身份、检查授权,并记录计账信息。
Authentication、Authorization、Accounting 三件事要一起记。
The network access server is the RADIUS client.
网络访问服务器是 RADIUS 客户端。
用户连 VPN 网关,网关再把请求转给 RADIUS 服务器。
RADIUS client 不是终端用户,而常是 NAS/VPN 设备。
RADIUS uses UDP 1812 and UDP 1813.
RADIUS 使用 UDP 1812 和 UDP 1813。
1812 用于认证/授权,1813 用于计账;TLS 场景可用 TCP 2083。
端口号题目很爱直接考。
TACACS+ separates authentication, authorization, and accounting.
TACACS+ 将认证、授权和计账分离。
三类 AAA 过程可分开处理,管理粒度更细。
TACACS+ 常和 Cisco、TCP 49、加密更多信息一起出现。
TACACS+ encrypts all authentication information.
TACACS+ 加密全部认证信息。
相比 RADIUS 只加密密码交换,TACACS+ 覆盖范围更大。
RADIUS vs TACACS+:协议、端口、加密范围是重点。
Zero trust presumes there is no trust boundary and no network edge.
零信任假设没有可信边界,也没有固定网络边缘。
不因为你在内网就默认可信,每次动作都要验证。
never trust, always verify 是零信任核心思路。
Policy decision point and policy enforcement point make and enforce decisions.
策略决策点做决定,策略执行点执行决定。
策略引擎结合身份、设备状态、威胁情报和日志数据,PEP 负责放行或断开连接。
Policy Engine + Policy Administrator 通常构成 PDP;PEP 在访问路径上执行。
访问控制攻击常先偷到普通账号,再提升权限、横向移动、寻找管理员或服务账号。理解横向和纵向权限提升,有助于判断攻击链和防护点。
Privilege escalation gives users more privileges than they should have.
权限提升让用户获得超过应有范围的权限。
普通用户本来只能完成日常工作,却被攻击者利用漏洞变成更高权限。
privilege escalation 是很多成功攻击的关键步骤。
Horizontal privilege escalation gives similar privileges from other accounts.
水平权限提升获得其他账号的同级权限。
从一个普通员工账号扩展到另一个普通员工账号,权限级别相近。
horizontal = 横向拿同级访问。
Vertical privilege escalation provides significantly greater privileges.
垂直权限提升获得显著更高权限。
从普通用户升到本机管理员、root 或域管理员。
vertical = 向上升到更高权限。
Horizontal escalation throughout the network is known as lateral movement.
在网络中横向扩展也称横向移动。
攻击者控制一台机器后,继续访问其他主机和资源。
lateral movement 常与凭据滥用、PtH、远程执行一起出现。
Service accounts should have only the privileges needed.
服务账号应只拥有所需权限。
应用不该为了省事用高权限账号运行,尤其不要滥用 LocalSystem。
服务账号治理要点:最小权限、归属、轮换、审计。
Using LocalSystem provides full administrative access to the local system.
使用 LocalSystem 会提供完整本地管理员访问。
应用一旦被利用,攻击者也可能得到同样的本机高权限。
最容易的配置不一定是正确安全配置。
sudo records commands with the user's account, providing auditing.
sudo 使用用户本人账号记录命令,提供审计能力。
su 切到 root 后日志更像 root 活动;sudo 更利于追踪谁执行了提权命令。
sudo 比共享 root 密码更利于 accountability。
PowerShell can be used as fileless malware.
PowerShell 可被滥用为无文件恶意活动。
攻击者可用系统自带工具执行脚本、枚举 AD、横向扩展。
防护要结合最小权限、脚本策略、日志和端点监控。
密码仍是最弱也最常见的认证方式。第 14 章把在线猜测、离线破解、哈希碰撞、彩虹表、Mimikatz 和 Pass-the-Hash 放在同一类凭据风险里学习。
Passwords are the weakest form of authentication.
密码是最弱的认证形式。
用户会复用、设置弱口令、被钓鱼或被撞库;密码一旦泄露,影响会持续存在。
单独密码通常不是高强度控制。
Longer passwords are stronger than shorter passwords.
在同样字符类型下,长密码强于短密码。
长密码短语往往比短而复杂但规律明显的密码更实用。
结合第 13 章 NIST 建议:长度、泄露检查、MFA 更重要。
Organizations store the hash instead of the password.
组织存储密码哈希,而不是明文密码。
登录时对输入密码求哈希,再与存储哈希比较。
明文密码存储或传输都是严重问题。
Dictionary attacks try common passwords.
字典攻击尝试常见密码。
攻击者用常见词、泄露密码、变体规则去猜。
弱口令和常见模式最怕 dictionary attack。
Brute-force attacks try all combinations.
暴力攻击尝试所有组合。
组合空间越大、密码越长,破解成本越高。
在线暴力可用锁定限制;离线暴力依赖哈希强度和密码长度。
A spraying attack uses one password against many accounts.
密码喷洒用一个密码尝试许多账号。
它降低单个账号连续失败次数,试图绕过简单锁定策略。
spraying 与 brute force 区别:少量常见密码打大量账号。
Credential stuffing uses leaked credentials against other sites.
撞库把泄露凭据拿去尝试其他站点。
用户复用密码时,一个站点泄露会影响多个服务。
MFA 和禁止密码复用可降低 credential stuffing 风险。
Rainbow tables use precomputed hashes.
彩虹表使用预计算哈希。
攻击者提前算好常见密码的哈希,用表反查;加盐能显著削弱彩虹表。
salt 防 rainbow table;pepper 可进一步保护。
PtH sends a captured hash to an authenticating service.
PtH 把捕获的哈希发送给认证服务。
攻击者不一定知道明文密码,也可能用哈希模拟登录并横向移动。
PtH 常与 NTLM/Kerberos、LSASS、Mimikatz、横向移动一起出现。
防护访问控制攻击不能靠单一技术,要把认证、授权、加密、账号治理、日志审计和持续监控协同起来。
Kerberos exploitation attacks attempt to exploit weaknesses in tickets.
Kerberos 利用攻击试图利用票据弱点。
票据和特权账号一旦被滥用,会造成冒充、持久访问和横向移动。
golden ticket、silver ticket、pass the ticket、Kerberoasting 都属高层概念考点。
A sniffer attack captures information transmitted over a network.
嗅探攻击捕获网络上传输的信息。
明文协议里的用户名、密码和敏感数据可能被直接读取。
防嗅探重点:加密传输、避免 HTTP/FTP/Telnet。
Spoofing is pretending to be something or someone else.
伪装是冒充其他事物或其他人。
可冒充登录页面、IP、邮件来源或电话号码来骗取访问。
spoofing 也叫 masquerading 或 impersonation。
Encrypt all sensitive data sent over a network.
加密通过网络发送的所有敏感数据。
HTTPS、SFTP、SSH 能减少明文被嗅探读取的风险。
安全协议替代不安全协议是基础控制。
Account lockout controls help prevent online password attacks.
账号锁定控制有助于防止在线密码攻击。
失败次数到达阈值后锁定账号,可以降低在线猜测成功率。
账号锁定不能阻止攻击者离线破解已窃取的哈希库。
Deploy multifactor authentication.
部署多因素认证。
即使密码泄露,攻击者还需要第二类因素才能登录。
MFA 是防撞库、钓鱼后滥用和弱密码的重要补偿控制。
Hash and salt passwords.
对密码进行哈希和加盐。
Argon2、bcrypt、PBKDF2 这类慢哈希能提高离线破解成本。
salt 是每个密码唯一值;pepper 通常保存在服务器侧。
Use last logon notification and logging.
使用最后登录提示和日志记录。
用户能发现异常登录,安全团队能用日志和 SIEM 关联分析可疑行为。
accountability 依赖唯一身份、认证和可用审计轨迹。