CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
DevSecOps 入门/课时/合规与扫描
RawBlame
课时目录12 节

DevSecOps 入门

  1. 01DevSecOps 概览
  2. 02网络安全基础
  3. 03密码学
  4. 04身份与访问
  5. 05应用安全
  6. 06威胁建模
  7. 07云安全
  8. 08容器安全
  9. 09供应链安全
  10. 10检测与 SIEM
  11. 11Incident 响应
  12. 12合规与扫描

合规与扫描

SOC 2/ISO/NIST 与漏洞扫描。

35 分钟

合规与扫描

这一课你将能做到

  1. 说清 SOC 2、ISO 27001、NIST CSF、等保 2.0 四个框架的定位差异,并判断什么场景该选哪个
  2. 用 Nessus/OpenVAS 对一台服务器做一次漏洞扫描,解读报告并按 CVSS 分级排期修复
  3. 建一张「控制项 → 证据 → 负责人 → 复查周期」的合规对照表,把抽象要求变成可审计的交付物

为什么要学

安全做了不算数,能证明你做了才算数。客户签合同前要你的 SOC 2 报告;政企客户要你的等保备案;出海要 GDPR。合规不是形式主义——它逼你把「我们挺安全的」翻译成「每条控制项都有证据、有负责人、有复查记录」。

人话:合规框架是「安全检查的标准答案格式」。你的安全措施可能已经很到位,但审计师不认识你的系统,只认证据。合规工作 = 把已有的安全实践,按框架要求的格式整理成可出示的证据链。

先建立图像

四大框架速查:

┌─────────────┬──────────────┬─────────────────┬──────────────┐
│ 框架         │ 性质          │ 适用场景         │ 产出物        │
├─────────────┼──────────────┼─────────────────┼──────────────┤
│ SOC 2       │ 审计报告       │ SaaS 卖给企业客户 │ Type II 报告  │
│ ISO 27001   │ 国际认证       │ 国际化、品牌建设   │ 认证证书      │
│ NIST CSF    │ 自愿框架       │ 安全成熟度自评     │ 差距分析      │
│ 等保 2.0    │ 中国强制       │ 国内业务系统       │ 备案+测评报告 │
└─────────────┴──────────────┴─────────────────┴──────────────┘

关系:ISO 27001 是"体系认证",SOC 2 是"持续运行的证据",
     NIST CSF 是"自评打分卡",等保 2.0 是"国内法律要求"。

NIST CSF 五函数(安全工作的通用语言):

识别(Identify) → 保护(Protect) → 检测(Detect) → 响应(Respond) → 恢复(Recover)
资产清单         访问控制        SIEM/告警      IR 流程        备份重建
风险评估         加密           漏洞扫描       Runbook        灾难恢复

跟着做

步骤 1:用 OpenVAS 做一次漏洞扫描

OpenVAS(开源,现为 Greenbone)是最常用的免费漏洞扫描器:

# Docker 方式启动 Greenbone Community Edition
docker run -d -p 443:443 --name openvas greenbone/openvas

# 或 Kali Linux 自带
sudo gvm-start
# 浏览器访问 https://localhost:9392

扫描流程:

1. 配置 Target: 目标 IP(如自己的测试服务器 192.168.1.100)
2. 配置 Scan Config: 
   - Full and fast: 全量快速(推荐起步)
   - Full and fast ultimate: 含耗时检查
3. 启动扫描,等待完成(单机 30 分钟-2 小时)
4. 查看报告,按 CVSS 分级:
   - 9.0-10.0 Critical: 立即修
   - 7.0-8.9  High:     本周修
   - 4.0-6.9  Medium:   本月修
   - 0.1-3.9  Low:      排期或接受

报告解读示例:

CVE-2023-1234  OpenSSH 8.x 远程代码执行  CVSS 9.8
  → 解法: 升级 OpenSSH 到 9.x
  → 命令: yum update openssh / apt upgrade openssh-server

CVE-2023-5678  Nginx 版本过旧            CVSS 5.3
  → 解法: 升级到稳定版
  → 注意: 测试环境先验证兼容性

步骤 2:建立合规对照表

把抽象要求变成可审计证据。以「访问控制」为例:

| 控制项              | 证据                           | 负责人 | 复查周期 |
|--------------------|-------------------------------|--------|---------|
| 生产服务器禁用密码登录 | sshd_config 截图              | 运维   | 季度    |
| 数据库账号最小权限    | SHOW GRANTS 输出存档           | DBA    | 季度    |
| 员工离职 24h 内销权   | HR 流程记录 + 账号禁用日志      | IT     | 半年    |
| 管理员账号启用 MFA    | 云控制台 MFA 状态截图           | 安全   | 季度    |
| 生产变更走审批       | 发布系统审批记录导出            | 研发   | 月度    |
| 日志保留 180 天      | ES ILM 策略截图 + OSS 归档清单  | 运维   | 半年    |

关键原则:每个控制项必须有「拿得出手的证据」——截图、导出文件、系统配置、流程记录。审计师只认证据,不认口头承诺。

步骤 3:用 Burp Suite 做应用层手动测试

自动扫描器抓不到业务逻辑漏洞,用 Burp(社区版免费)手动测:

1. 配置浏览器代理 → 127.0.0.1:8080(Burp 默认)
2. 正常操作本站:登录、浏览课程、提交进度
3. Burp 抓到的每个请求,检查:
   - 修改 JWT payload 里的 userId → 越权测试
   - 修改 trackId 为不存在的 ID → 参数校验测试
   - 重放请求 100 次 → 限流测试
   - 提交 `' OR '1'='1` → 注入测试
4. 重点关注 Repeater 模块:单请求反复修改重放

步骤 4:Wireshark 抓包验证加密

验证内网流量是否真的加密:

# 服务器上抓 MySQL 流量
tcpdump -i any port 3306 -w mysql.pcap

# Wireshark 打开 mysql.pcap
# 如果能看到明文 SQL 语句(SELECT * FROM users...),说明内网传输未加密
# 解法: MySQL 配置 require_secure_transport=ON,强制 TLS
# my.cnf
[mysqld]
require_secure_transport = ON
ssl_ca = /etc/mysql/ca.pem
ssl_cert = /etc/mysql/server-cert.pem
ssl_key = /etc/mysql/server-key.pem

步骤 5:把扫描接入 CI(持续合规)

# .github/workflows/security-scan.yml
name: Weekly Security Scan
on:
  schedule:
    - cron: '0 2 * * 1'    # 每周一凌晨 2 点
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # 依赖漏洞
      - run: mvn org.owasp:dependency-check:check
      # 静态代码
      - run: mvn spotbugs:check
      # 报告归档,供合规审查出示
      - uses: actions/upload-artifact@v4
        with:
          name: security-reports-${{ github.run_number }}
          path: target/dependency-check-report.html

合规要点:扫描记录的留存本身就是证据。审计时出示「过去 12 个月每周扫描报告归档」比任何口头说明都有力。

讲清楚要点

  1. 合规是证明题不是论述题:审计师问「你们如何做访问控制」,正确答案是出示账号清单、权限矩阵、审批记录、季度复查记录——不是讲设计理念。平时就要按「可出示证据」的方式工作。

  2. SOC 2 Type I vs Type II:Type I 审「某时点」控制设计是否合理;Type II 审「一段时间(通常 6-12 个月)」控制是否持续有效运行。企业客户要的都是 Type II——这就是为什么合规是持续工程不是一次性项目。

  3. 扫描器各有分工:Nessus/OpenVAS 扫主机和网络层漏洞(OS 补丁、弱配置);OWASP ZAP/Burp 扫 Web 应用层(注入、XSS);Trivy 扫容器镜像;Dependency-Check 扫依赖。一个都不能少,也别指望一个覆盖全部。

  4. 漏洞修复要按 CVSS + 业务上下文排序:CVSS 9.8 的漏洞在一个根本访问不到的内网测试机上,优先级低于 CVSS 6.0 但在公网核心接口上的漏洞。评分是输入不是结论。

  5. 等保 2.0 是国内业务的法律底线:在中国境内运营的信息系统必须定级(通常二级或三级)、备案、定期测评。不是可选项。定级看系统被破坏后对国家安全/社会秩序/公民权益的影响程度。

你可能会懵的地方

  • 初创公司先做哪个认证? 卖 SaaS 给企业:SOC 2(客户会要)。做国内市场:等保二级起步(法律要求)。追求国际认可:ISO 27001。别同时启动多个,一个做扎实再说。

  • 合规会不会拖慢开发? 设计得好不会。把控制项嵌进已有流程:代码评审清单里加安全检查、发布流程里加扫描门禁、入职离职流程里加账号开通销权。合规失败的项目通常是把合规做成了「安全团队单独的一套流程」,和业务两张皮。

  • 扫描出 500 个漏洞怎么办? 这是第一次全量扫描的常态。按 CVSS 过滤出 Critical+High(通常 20-50 个),分批修复,每批修复后复扫确认。Medium/Low 建工单排期。不要试图一次清零,会 burnout。

  • 渗透测试和漏洞扫描什么区别? 扫描器是自动化工具,找已知漏洞(CVE、配置错误),每周跑。渗透测试是人工服务,找业务逻辑漏洞(越权、薅羊毛、组合利用),每年 1-2 次。合规通常两个都要证据。

  • 控制项证据要保留多久? 通常覆盖审计周期 + 一年。SOC 2 Type II 审计期 6-12 个月,证据至少保留 2 年。截图、导出文件统一归档到带时间戳的目录。

错法对照

错法问题正解
审计前突击补证据连续性证据补不出来日常按可审计方式工作
扫描报告不修只存档审计会被开 finding高危按期修复+复扫闭环
一个扫描器打天下覆盖不全主机+应用+镜像+依赖分层扫
只按 CVSS 排序忽略业务上下文CVSS × 暴露面 × 资产价值
合规是安全团队的事控制项落不了地每个控制项有业务负责人
忽视等保备案法律风险上线前定级备案

卡点急救

  1. OpenVAS 扫描极慢或卡死:NVT 库没更新完就启动扫描。先 greenbone-nvt-sync 同步特征库(首次需 1-2 小时),确认 Feed 状态为 Current 再扫。扫描目标多时拆分成多个小任务。

  2. 审计师要的证据系统里没有:典型如「季度权限复查记录」——你没做过自然没有。解法:把复查做成自动化脚本(每季度自动导出账号权限清单 + 邮件提醒负责人确认),从此证据自动产生。

  3. 漏洞修了复扫还在报:可能是:扫描器特征库旧(更新 NVT)、修了一台漏了另一台(确认资产清单完整)、修复未生效(复扫前手动验证,如 openssl s_client 确认 TLS 版本)。漏洞管理的关键是「修复验证」环节不能省。

面试常问

  • SOC 2 和 ISO 27001 的区别? ISO 27001 是信息安全管理体系(ISMS)认证,证明你「建立了体系」,发证书,3 年有效期+年度监督审核。SOC 2 是审计报告(AICPA 标准),基于信任服务准则(安全、可用性、保密性等),证明你的控制「持续有效运行」,Type II 覆盖 6-12 个月。美国企业客户普遍认 SOC 2,欧洲和国际化场景认 ISO 27001。两者控制项高度重叠,很多公司先建 ISMS 再过 SOC 2。

  • 漏洞扫描后如何管理漏洞生命周期? 五阶段闭环:发现(扫描/通报)→ 评估分级(CVSS+业务上下文)→ 修复(按 SLA:Critical 24-72h,High 1 周,Medium 1 月)→ 验证(复扫确认)→ 关闭归档(留存证据)。关键是 SLA 要写进制度且有人跟踪,否则漏洞永远停留在「已知」状态。

  • 什么是等保 2.0?流程是什么? 中国网络安全等级保护制度。流程:定级(一~五级,业务系统通常二级/三级)→ 备案(公安机关)→ 建设整改(按对应级别的技术和管理要求)→ 等级测评(第三方测评机构,每年)→ 监督检查。三级系统要求年测评、关键设备冗余、安全审计、入侵防范等。法律强制,不是自愿认证。

自测三问

  1. SOC 2 Type I 和 Type II 的区别是什么?客户通常要哪个?
  2. 为什么说「扫描记录留存本身也是合规证据」?
  3. 一个 CVSS 9.8 的内网漏洞和一个 CVSS 6.0 的公网漏洞,先修哪个?为什么?

小结一句话

合规 = 把安全实践翻译成可审计的证据链:框架选对(SOC 2/ISO/等保看业务)、扫描分层(主机/应用/镜像/依赖)、每个控制项有证据有负责人、修复有 SLA 有闭环。

延伸

  • NIST Cybersecurity Framework
  • AICPA SOC 2 说明
  • 至此 devsecops-essentials 全 12 课完成:从概览、网络、密码学,到 IAM、应用安全、威胁建模,再到云、容器、供应链,最后检测、响应、合规——建议回到第一课,用本站技术栈完整过一遍「安全基线自查清单」。
加载本节练习…
← 上一课Incident 响应