名称:安全框架
描述:安全框架对齐,包括 ISO 27001、SOC 2、NIST CSF 2.0 和 CIS Controls 映射
允许工具:读取、全局搜索、查找、写入、编辑、任务
安全框架规划
开发前安全框架对齐和控制映射的全面指南。
何时使用此技能
- 准备 ISO 27001 认证
- 规划 SOC 2 Type I 或 Type II 审计
- 实施 NIST 网络安全框架 2.0
- 将 CIS Controls 映射到您的环境
- 创建跨框架控制映射
框架比较
何时使用哪个框架
| 框架 |
最适用 |
是否认证? |
地域 |
| ISO 27001 |
企业信息安全管理体系,国际认可 |
是(第三方) |
全球 |
| SOC 2 |
SaaS/云提供商,客户信任 |
是(CPA 公司) |
主要在美国 |
| NIST CSF |
风险管理,联邦要求 |
否 |
以美国为主 |
| CIS Controls |
战术实施,优先级排序 |
否 |
全球 |
框架关系
┌─────────────────┐
│ 法规要求 │
│ (GDPR, HIPAA) │
└────────┬────────┘
│ 驱动
┌────────▼────────┐
│ 框架 │
│(ISO, NIST, CIS) │
└────────┬────────┘
│ 实施
┌────────▼────────┐
│ 控制 │
│ (具体技术) │
└────────┬────────┘
│ 证据
┌────────▼────────┐
│ 审计 │
│ (SOC 2, ISO) │
└─────────────────┘
ISO 27001:2022
结构概述
条款 4-10:管理体系要求
├── 4. 组织的背景
├── 5. 领导力
├── 6. 规划
├── 7. 支持
├── 8. 运营
├── 9. 绩效评估
└── 10. 改进
附录 A:4个主题中的93个控制项
├── A.5 组织控制(37)
├── A.6 人员控制(8)
├── A.7 物理控制(14)
└── A.8 技术控制(34)
开发关键控制
| 控制 |
标题 |
实施 |
| A.5.1 |
信息安全政策 |
文档化安全政策 |
| A.5.15 |
访问控制 |
RBAC,最小权限 |
| A.5.23 |
云服务信息安全 |
云安全控制 |
| A.8.4 |
源代码访问 |
Git 访问,代码审查 |
| A.8.8 |
技术漏洞管理 |
漏洞扫描 |
| A.8.9 |
配置管理 |
IaC,硬化 |
| A.8.25 |
安全开发生命周期 |
SSDLC |
| A.8.28 |
安全编码 |
OWASP,静态分析 |
| A.8.29 |
安全测试 |
DAST,渗透测试 |
| A.8.31 |
环境分离 |
开发/测试/生产隔离 |
ISMS 实施方法
// 控制实施跟踪
public class IsmsControlTracker
{
public record ControlStatus
{
public required string ControlId { get; init; } // 例如,"A.8.28"
public required string ControlTitle { get; init; }
public required ImplementationStatus Status { get; init; }
public required string Owner { get; init; }
public required List<string> Evidence { get; init; }
public required DateTimeOffset LastReviewDate { get; init; }
public required DateTimeOffset NextReviewDate { get; init; }
public string? GapDescription { get; init; }
public string? RemediationPlan { get; init; }
}
public enum ImplementationStatus
{
NotApplicable,
NotImplemented,
PartiallyImplemented,
FullyImplemented
}
public GapAnalysisReport GenerateGapAnalysis(
IEnumerable<ControlStatus> controls)
{
var gaps = controls
.Where(c => c.Status != ImplementationStatus.FullyImplemented
&& c.Status != ImplementationStatus.NotApplicable)
.OrderBy(c => c.ControlId);
return new GapAnalysisReport
{
TotalControls = controls.Count(),
FullyImplemented = controls.Count(c =>
c.Status == ImplementationStatus.FullyImplemented),
PartiallyImplemented = controls.Count(c =>
c.Status == ImplementationStatus.PartiallyImplemented),
NotImplemented = controls.Count(c =>
c.Status == ImplementationStatus.NotImplemented),
NotApplicable = controls.Count(c =>
c.Status == ImplementationStatus.NotApplicable),
Gaps = gaps.ToList()
};
}
}
SOC 2
信任服务标准(TSC)
| 类别 |
描述 |
关键标准 |
| 安全(必需) |
系统保护免受未经授权访问 |
CC6.x |
| 可用性 |
系统可操作 |
A1.x |
| 处理完整性 |
系统处理完整、准确 |
PI1.x |
| 机密性 |
机密信息保护 |
C1.x |
| 隐私 |
个人信息保护 |
P1.x-P8.x |
通用标准(安全)
CC1 - 控制环境
CC2 - 沟通与信息
CC3 - 风险评估
CC4 - 监控活动
CC5 - 控制活动
CC6 - 逻辑和物理访问控制
CC7 - 系统操作
CC8 - 变更管理
CC9 - 风险缓解
SOC 2 控制示例
## CC6.1 - 逻辑访问安全
### 控制描述
实体实施逻辑访问安全软件、基础设施和架构,以保护信息资产免受安全事件,满足实体目标。
### 实施
- 通过 Azure AD 认证,要求 MFA
- RBAC,最小权限原则
- 服务账户,管理身份
- API 访问,OAuth 2.0 令牌
### 证据
- Azure AD 配置导出
- 角色分配文档
- 访问审查报告(季度)
- MFA 强制执行政策
Type I 与 Type II
| 方面 |
Type I |
Type II |
| 范围 |
时间点 |
时间段(6-12个月) |
| 焦点 |
控制设计 |
设计及操作有效性 |
| 证据 |
政策、配置 |
日志、样本、测试 |
| 使用案例 |
首次审计、快速报告 |
客户保证、持续 |
NIST 网络安全框架 2.0
核心功能
┌────────────────────────────────────────────────────┐
│ 治理 │
│ 组织背景、战略、监督 │
├────────────┬────────────┬────────────┬─────────────┤
│ 识别 │ 保护 │ 检测 │ 响应 │
│ 资产与风险│ 保障措施 │ 持续监控 │ 事件响应 │
├────────────┴────────────┴────────────┴─────────────┤
│ 恢复 │
│ 恢复力与恢复 │
└────────────────────────────────────────────────────┘
功能细分
| 功能 |
类别 |
关键活动 |
| 治理 |
组织背景 |
建立风险管理战略 |
|
风险管理战略 |
定义风险容忍度 |
|
角色与责任 |
分配责任 |
|
政策 |
文档化政策 |
|
监督 |
董事会/高管参与 |
| 识别 |
资产管理 |
盘点系统和数据 |
|
风险评估 |
识别和评估风险 |
|
改进 |
持续改进 |
| 保护 |
身份管理 |
访问控制、认证 |
|
意识与培训 |
安全培训 |
|
数据安全 |
加密、分类 |
|
平台安全 |
安全配置 |
|
技术基础设施 |
安全架构 |
| 检测 |
持续监控 |
安全监控 |
|
不良事件分析 |
威胁检测 |
| 响应 |
事件管理 |
事件响应 |
|
事件分析 |
根本原因分析 |
|
事件响应 |
遏制、根除 |
|
事件缓解 |
限制影响 |
| 恢复 |
事件恢复 |
恢复操作 |
|
改进 |
事件后学习 |
实施等级
| 等级 |
名称 |
描述 |
| 1 |
部分 |
临时、反应式 |
| 2 |
风险知情 |
风险意识但非正式 |
| 3 |
可重复 |
正式政策、一致 |
| 4 |
自适应 |
持续改进、预测性 |
CIS Controls v8
控制类别
实施组(IG):
IG1 - 基本网络卫生(56个保障措施)
IG2 - IG1 + 增强(130个保障措施)
IG3 - IG1 + IG2 + 高级(153个保障措施)
18个控制领域
| # |
控制 |
IG1 |
关键保障措施 |
| 1 |
企业资产清单 |
✓ |
资产发现、盘点 |
| 2 |
软件资产清单 |
✓ |
软件盘点 |
| 3 |
数据保护 |
✓ |
分类、加密 |
| 4 |
安全配置 |
✓ |
硬化、基线 |
| 5 |
账户管理 |
✓ |
集中认证、MFA |
| 6 |
访问控制管理 |
✓ |
最小权限、RBAC |
| 7 |
持续漏洞管理 |
✓ |
扫描、补丁 |
| 8 |
审计日志管理 |
✓ |
集中日志 |
| 9 |
电子邮件和Web浏览器保护 |
✓ |
过滤、沙箱 |
| 10 |
恶意软件防御 |
✓ |
反恶意软件、EDR |
| 11 |
数据恢复 |
✓ |
备份、测试 |
| 12 |
网络基础设施管理 |
|
分段、硬化 |
| 13 |
网络监控与防御 |
|
IDS/IPS、NDR |
| 14 |
安全意识与技能培训 |
✓ |
培训计划 |
| 15 |
服务提供商管理 |
|
供应商评估 |
| 16 |
应用软件安全 |
|
SSDLC、测试 |
| 17 |
事件响应管理 |
|
IR计划、测试 |
| 18 |
渗透测试 |
|
年度渗透测试 |
优先级实施
## CIS IG1 优先级控制
### 从这里开始(快速胜利)
1. **控制 1.1**:维护准确资产清单
2. **控制 4.1**:建立安全配置流程
3. **控制 5.1**:建立集中账户管理
4. **控制 6.1**:建立访问授予流程
### 下一个优先级
5. **控制 7.1**:建立漏洞管理流程
6. **控制 8.1**:建立审计日志
7. **控制 11.1**:建立数据恢复实践
8. **控制 14.1**:建立安全意识计划
### 然后
9. **控制 3.1**:建立数据管理流程
10. **控制 10.1**:部署反恶意软件
跨框架映射
控制映射矩阵
| 能力 |
ISO 27001 |
SOC 2 TSC |
NIST CSF 2.0 |
CIS v8 |
| 访问控制 |
A.5.15, A.8.2-8.5 |
CC6.1-6.3 |
PR.AA |
5, 6 |
| 资产管理 |
A.5.9-5.11 |
CC6.1 |
ID.AM |
1, 2 |
| 加密 |
A.8.24 |
CC6.1, CC6.7 |
PR.DS |
3.6, 3.9 |
| 日志 |
A.8.15 |
CC7.2 |
DE.AE |
8 |
| 漏洞管理 |
A.8.8 |
CC7.1 |
ID.RA |
7 |
| 事件响应 |
A.5.24-5.28 |
CC7.4, CC7.5 |
RS |
17 |
| 变更管理 |
A.8.32 |
CC8.1 |
PR.IP |
4.2 |
| 安全开发 |
A.8.25-8.31 |
CC8.1 |
PR.IP |
16 |
.NET 控制实施示例
// 访问控制实施(多框架)
// ISO 27001 A.5.15 / SOC 2 CC6.1 / NIST PR.AA / CIS 5,6
public class AccessControlService
{
private readonly IAuthorizationService _authService;
private readonly IAuditLogger _auditLogger;
public async Task<AuthorizationResult> Authorize(
ClaimsPrincipal user,
string resource,
string action,
CancellationToken ct)
{
// 记录访问尝试(CIS 8 / NIST DE.AE)
var accessAttempt = new AccessAttempt
{
UserId = user.GetUserId(),
Resource = resource,
Action = action,
Timestamp = DateTimeOffset.UtcNow
};
var result = await _authService.AuthorizeAsync(user, resource, action);
accessAttempt.Success = result.Succeeded;
accessAttempt.Reason = result.Failure?.FailureReasons
.FirstOrDefault()?.Message;
await _auditLogger.Log(accessAttempt, ct);
return result;
}
}
// 安全配置(ISO A.8.9 / NIST PR.IP / CIS 4)
public class SecureConfigurationValidator
{
public ValidationResult ValidateConfiguration(IConfiguration config)
{
var issues = new List<ConfigurationIssue>();
// 检查安全默认值
if (config["AllowHttp"] == "true")
{
issues.Add(new ConfigurationIssue
{
Setting = "AllowHttp",
Issue = "生产环境应禁用HTTP",
Severity = Severity.High,
Remediation = "设置 AllowHttp=false"
});
}
// 检查 TLS 配置
var tlsVersion = config["MinTlsVersion"];
if (tlsVersion != "1.2" && tlsVersion != "1.3")
{
issues.Add(new ConfigurationIssue
{
Setting = "MinTlsVersion",
Issue = "需要 TLS 1.2 或更高版本",
Severity = Severity.Critical,
Remediation = "设置 MinTlsVersion=1.2"
});
}
return new ValidationResult { Issues = issues };
}
}
框架选择指南
决策树
主要驱动因素是什么?
├─ 客户对审计报告的要求?
│ ├─ 美国客户 → SOC 2
│ └─ 国际客户 → ISO 27001
│
├─ 法规要求?
│ ├─ 美国联邦 → NIST CSF + FedRAMP
│ └─ 医疗保健 → HIPAA(使用 NIST CSF)
│
├─ 启动安全计划?
│ └─ CIS Controls IG1(实用起点)
│
└─ 企业级 ISMS?
└─ ISO 27001(全面管理体系)
安全框架检查清单
预评估
- [ ] 识别适用框架
- [ ] 确定范围边界
- [ ] 盘点范围内系统
- [ ] 文档化当前控制
- [ ] 进行差距分析
控制实施
- [ ] 按风险优先级排序差距
- [ ] 创建补救路线图
- [ ] 实施缺失控制
- [ ] 文档化证据
- [ ] 测试控制有效性
审计准备
- [ ] 收集证据工件
- [ ] 准备控制叙述
- [ ] 测试样本(Type II)
- [ ] 解决已知差距
- [ ] 简报利益相关者
交叉参考
- 数据隐私:
gdpr-compliance、hipaa-compliance 用于数据保护
- PCI:
pci-dss-compliance 用于支付安全
- AI:
ai-governance 用于AI特定控制
资源