用途:该技能用于落实 Hack23 ISMS 访问控制策略,要求系统按最小权限原则实现认证、授权与会话管理。
主要能力与规则:
- 最小权限:只授予完成职责所需的最低权限,默认拒绝(allowlist);分离关键职能;定期审查并撤销多余权限;临时需求使用限时访问;禁止默认管理员权限、共享账户、无审计的共享服务账户、用户自行提权。
- RBAC:按职能定义角色,权限赋给角色而非个人;文档化角色与权限;支持角色层级;通过角色冲突实现职责分离;每季度审查角色分配。示例角色:Public、User、Contributor、Maintainer、Administrator、Security Officer。禁止用户级权限、冲突角色叠加、未审批自行分配角色、过宽角色。
- 认证:非公开资源必须认证;管理账户、机密/受限数据访问、远程访问内部系统、特权操作需 MFA;强密码要求(至少12字符、含大小写数字符号、不常见、不复用最近5个);5次失败锁定;特权账户每90天改密;30分钟无活动终止会话;支持 FIDO2/WebAuthn。禁止明文存储密码、匿名访问敏感资源、MD5/SHA-1、无安全评审的自定义认证、信任网络绕过认证。
- 授权:每个访问点校验授权;服务端检查;按资源验证权限;复杂策略用 ABAC;默认拒绝;记录授权失败;在所有接口一致执行。禁止以认证代替授权、客户端授权为主、仅凭 URL 知识放行、内部 API 跳过检查、靠隐藏 URL 实现安全。
- 会话管理:会话 ID 需加密随机(至少128位熵);Cookie 设置 HTTPOnly、Secure、SameSite=Strict/Lax;30分钟无活动、8小时绝对超时;认证后重新生成会话 ID;登出失效;会话数据加密存储;并发会话限制;提供活动会话可见性。禁止会话 ID 出现在 URL、可预测 ID、非加密传输、在客户端存储敏感数据、会话固定、跨安全上下文共享会话。
- API 认证:非公开端点必须认证;第三方集成用 OAuth 2.0 或 OpenID Connect;API 密钥至少每年轮换;限流;每请求校验令牌;短期访问令牌(<1小时)配刷新令牌;最小权限范围。禁止密钥出现在 URL/日志、长期不轮换、跨应用共享、非加密传输、客户端代码存储密钥。
- 访问审查:每季度审查用户权限;员工离职立即撤销;每月审查特权访问;记录审查结果;90天不活动撤销账户;审计访问控制变更。
使用方式:资料给出 Node.js/Express 的 RBAC 中间件、express-session 安全配置、基于 speakeasy 的 TOTP MFA、API 密钥生成与校验等代码示例,可作为实现参考。安装命令、依赖版本与完整运行步骤未提供。
适用场景:需要按该策略执行访问控制的 Web、API、CLI 系统,以及合规映射到 ISO 27001:2022 A.5.15-A.5.18、NIST CSF PR.AC-1/4/6/7、CIS Control 5/6 的项目。
限制:资料未说明该技能对应的安装方式、运行环境、许可证、收费、平台支持或性能效果;具体实现需结合项目安全评审。