第 12 章 云安全 / 移动安全 / AI 安全专题
12.1 学习目标
- 建立 云原生安全 的全貌:IAM / 计算 / 网络 / 数据 / 容器 / 服务网格。
- 理解 移动端(Android / iOS) 的威胁模型与防护体系。
- 认识 AI / LLM 安全 新战场:对抗样本、模型窃取、Prompt Injection。
- 打通”攻击面思维 → 新兴技术栈”,避免思路停留在传统 Web / 网络层。
12.2 云安全(Cloud Security)
12.2.1 责任共担模型(Shared Responsibility)
| 层 | IaaS (EC2) | PaaS (RDS) | SaaS (O365) |
|---|---|---|---|
| 物理 / 网络 | 云厂商 | 云厂商 | 云厂商 |
| 虚拟化 / OS | 你 / 云厂商 | 云厂商 | 云厂商 |
| 中间件 | 你 | 云厂商 | 云厂商 |
| 应用 / 数据 | 你 | 你 | 你(含配置) |
| 身份与访问 | 你 | 你 | 你 |
金句:云迁移 ≠ 安全外包,配置错误 是云事故第一死因。
12.2.2 CSA Top Threats
- Insecure Identities
- Misconfiguration
- Insecure Interfaces & APIs
- Insufficient Logging / Monitoring
- Supply Chain Attacks
- Unauthorized Access
- Data Exfiltration
- Insider Threats
12.3 云平台攻击面(AWS 示例)
12.3.1 常见错配
- S3:桶 ACL 为 Public Read/Write → 数据泄露。
- IAM:
*:*/iam:PassRole滥用 → 权限提升。 - EC2 Metadata v1 (IMDSv1):SSRF → 偷
AssumeRole凭证。 - Security Group:0.0.0.0/0 → 22/3389/3306。
- Public AMI / Snapshot:包含凭证。
- Cross-account Trust Policy:信任了陌生 Account。
12.3.2 一次典型云渗透链
1. SSRF (Web) → http://169.254.169.254/latest/meta-data/iam/security-credentials/role2. 获得 STS 临时凭证3. aws sts get-caller-identity4. aws s3 ls / aws dynamodb list-tables5. 提权:iam:PassRole + lambda:CreateFunction → 以更高角色执行代码6. 持久化:创建新 IAM user + AccessKey12.3.3 审计与攻防工具
| 工具 | 场景 |
|---|---|
| Prowler | AWS / Azure / GCP 合规扫描(CIS / PCI-DSS / HIPAA) |
| ScoutSuite | 多云审计 |
| Pacu | AWS 进攻模拟框架 |
| CloudFox | 快速掌握 AWS 账户攻击面 |
| enumerate-iam | IAM 权限枚举 |
| Steampipe / CloudQuery | SQL 查询云资源 |
12.4 容器与 Kubernetes 安全
12.4.1 容器逃逸
- 特权容器:
--privileged→ 挂载宿主/dev、加载内核模块。 - 挂载 Docker Socket:容器内
docker run -it --rm -v /:/mnt alpine,直接访问宿主根。 - CAP_SYS_ADMIN / CAP_NET_ADMIN:可挂文件系统、抓包。
- 已知漏洞:CVE-2019-5736 (runC)、CVE-2022-0185 (fsconfig)、Dirty Pipe (CVE-2022-0847)。
12.4.2 Kubernetes 风险点
API Server 匿名访问 → 接管集群Kubelet 10250 未授权 → 任意 Pod exec弱 RBAC(cluster-admin 滥发) → 权限爆炸挂载宿主 /proc /var/run/docker → 容器逃逸Secrets 明文(etcd 未加密) → 泄露凭证镜像仓库公开 → Supply chain12.4.3 工具链
# 静态trivy image myapp:1.0 # 镜像漏洞trivy fs ./chart # Helm / Dockerfile / K8s YAMLkube-bench run --targets master,node # CIS Kubernetes Benchmarkkube-hunter --remote cluster.example.com # 主动攻击模拟checkov -f k8s.yaml # IaC 静态扫描
# 运行时falco # 内核级异常检测tracee # eBPF 事件追踪12.4.4 最佳实践
- Pod Security Standards:
restricted基线 → 拒绝privileged、hostPath、hostNetwork。 - NetworkPolicy:默认 deny all,按需放通。
- 镜像:来源签名(cosign)+ SBOM(syft)+ 漏洞扫(trivy)。
- RBAC:
cluster-admin限人;Namespace 级隔离。 - 秘密:外部 KMS(Vault、AWS KMS、GCP KMS)+ 自动轮换。
12.5 Serverless / IaC / 供应链
12.5.1 Serverless 风险
- 事件注入(Event Injection):S3 事件、SQS 消息里埋 payload。
- 权限过度:Lambda 绑定的 Role 拥有
s3:*/dynamodb:*。 - 冷启动时间差异 → 侧信道探测。
12.5.2 IaC (Terraform / CloudFormation)
- 工具:
tfsec、checkov、kics、terrascan。 - 关键规则:禁止
0.0.0.0/0、强制加密、MFA Delete、KMS CMK。 - GitOps:每次 PR 跑 IaC 扫描 +
terraform plan,阻止高危变更合入。
12.5.3 软件供应链攻击(Supply Chain)
- SolarWinds / 3CX / xz-utils (2024) 等典型事件。
- 控制点:
- 代码签名 / 提交签名(GPG、Sigstore)
- SBOM(SPDX / CycloneDX)
- 依赖 Pin + 定期升级(Dependabot / Renovate)
- CI/CD 密钥管理、Runner 隔离
- 镜像仓库的内容信任(Docker Content Trust / Cosign)
12.6 移动端安全
12.6.1 Android 威胁模型
攻击面: - APK 逆向(反编译 + 重签名) - 动态注入(Frida / Xposed) - 中间人(SSL Pinning 绕过) - WebView 漏洞(addJavascriptInterface) - 组件暴露(exported Activity / Service) - 存储泄露(/data/data/<pkg> / SharedPreferences)工具
# 静态apktool d app.apk # 反编译jadx-gui app.apk # 查看 Java 代码MobSF # 自动化静态/动态报告
# 动态frida-server + frida -U -l hook.js com.example.appobjection -g com.example.app exploredrozer console connect
# 流量mitmproxy -p 8080SSL Pinning 绕过:Frida Universal Hook、Magisk + LSPosed + TrustMeAlready典型防护
- 代码混淆(R8 / ProGuard)+ 字符串加密
- 反调试 / 反 root / 反注入(如
DetectMagisk) - SSL Pinning(OKHttp CertificatePinner)
- 完整性校验(Play Integrity API)
- 敏感信息仅放 Android Keystore
12.6.2 iOS 威胁模型
- 越狱(checkra1n / Palera1n / Dopamine)→ 可安装任意动态库。
- Frida + Hopper/IDA:动态注入 & 反汇编。
- Keychain、App Sandbox、Code Signing、Entitlements。
- 常见评估:MASVS(Mobile AppSec Verification Standard)+ MSTG。
12.7 无线与 IoT 安全(概览)
- Wi-Fi:WPA2 KRACK、WPA3 Dragonblood、Evil Twin、PMKID 攻击(hashcat 破解)。
- 蓝牙 / BLE:BlueBorne、KNOB、配对密钥弱。
- ZigBee / LoRa:固件固定密钥、回放攻击。
- IoT 固件分析:
binwalk→unsquashfs→ 找硬编码凭证 / Web 后台漏洞。 - 车联网 / CAN 总线:
can-utils、candump、cansend;关注 OTA 升级签名。
12.8 AI / LLM 安全
12.8.1 OWASP LLM Top 10(2023)
- Prompt Injection
- Insecure Output Handling
- Training Data Poisoning
- Model Denial of Service
- Supply Chain Vulnerabilities
- Sensitive Information Disclosure
- Insecure Plugin Design
- Excessive Agency
- Overreliance
- Model Theft
12.8.2 常见攻击
| 攻击 | 说明 | 防御思路 |
|---|---|---|
| Prompt Injection | 通过用户输入改变系统 prompt | 输入分层、最小能力原则、工具白名单 |
| Jailbreak | 绕过内容安全 | 多轮对抗训练、Guard 模型 |
| 越权 / SSRF | LLM Agent 任意调用内部接口 | 工具签名、FGA 权限控制 |
| 数据投毒 | 改训练数据让模型产生特定后门 | 数据清洗 + 来源签名 |
| 成员推断 / 属性推断 | 判断数据是否在训练集中 | DP-SGD、差分隐私 |
| 对抗样本 | 视觉 / 语音 / 文本的细微扰动 | 对抗训练、认证鲁棒性 |
| 模型窃取 | 反复查询复原参数 / 蒸馏 | 查询限速、水印、API 身份 |
| Supply Chain | 使用被篡改的 HuggingFace 模型 | 签名验证、SBOM、私有镜像 |
12.8.3 LLM 应用安全清单(RAG / Agent)
输入侧: [ ] 区分 system / user / tool 消息,严格模板 [ ] 检测 prompt injection(如 Lakera / Rebuff / Guardrails) [ ] 对外部文档(RAG 源)打标注"untrusted"执行侧: [ ] Agent 工具白名单 + 动作审批(人类在环) [ ] 工具最小权限(只读 API / 限流) [ ] 沙箱执行(Docker / WebContainer)输出侧: [ ] 过滤敏感(PII / 内部路径 / 密钥) [ ] 在下游使用前严格校验(代码生成 → linter) [ ] 日志 + 审计(LangSmith / OpenTelemetry)基础设施: [ ] 模型签名 / 哈希核对 [ ] 向量库 ACL [ ] 速率限制 + 异常检测12.8.4 机器学习对抗性
- FGSM、PGD、C&W、DeepFool
- 库:
cleverhans、foolbox、adversarial-robustness-toolbox (ART) - 防御:对抗训练(Adversarial Training)、输入归一化、认证防御(Randomized Smoothing)
12.9 隐私计算与数据安全
- 同态加密 (HE):Microsoft SEAL、OpenFHE
- 安全多方计算 (MPC):TEE / 秘密分享 / 混淆电路
- 可信执行环境 (TEE):Intel SGX、AMD SEV、ARM TrustZone、Apple Secure Enclave
- 差分隐私 (DP):ε 控制隐私预算,典型应用:苹果、Chrome 统计
- 联邦学习 (FL):FedAvg / FedProx,关注梯度泄露(Deep Leakage from Gradients)
12.10 零信任(Zero Trust)
传统:内网 = 可信 ×零信任:任何人任何设备任何请求都默认不可信 ✓三大支柱:
- 身份为边界:SSO + MFA + 设备合规(ZTNA)。
- 最小权限:按资源 / 行为授权,动态评估(ABAC)。
- 持续验证:行为分析(UEBA)+ 会话级风险。
参考:
- NIST SP 800-207 Zero Trust Architecture
- Google BeyondCorp 论文
- Cloudflare Zero Trust / Zscaler ZIA
12.11 前沿与趋势
| 方向 | 关键词 |
|---|---|
| 后量子密码(PQC) | Kyber、Dilithium、NIST 2024 标准 |
| 机密计算 | Confidential VM / Intel TDX / Nitro Enclave |
| eBPF 安全 | Cilium Tetragon / Falco Modern / Pixie |
| 软件供应链 | SLSA 等级、in-toto、Sigstore |
| AI 安全 | LLM Guardrails、Agentic AI 攻防 |
| Web3 / 智能合约 | Solidity 漏洞、Slither、Foundry、跨链桥攻击 |
12.12 练习题
- 在本地用 LocalStack 搭一个 AWS 模拟环境,手工配错一个 S3 + Lambda + IAM 组合,再用 Prowler / CloudFox 扫描复现攻击链。
- 用 kind 起一个 Kubernetes 集群,安装 Falco,触发”容器里执行 /bin/sh”事件,观察告警。
- 使用 MobSF 分析一个你自己写的 Android APK,按其报告修复至少 5 个问题。
- 给一个基于 LangChain 的 RAG 应用写一份 AI 安全威胁建模文档,覆盖输入、工具、输出、基础设施四层。
12.13 IAM 深入:AWS 策略语法与 STS
12.13.1 IAM Policy 语法
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReadUserBucket", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"}, "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": [ "arn:aws:s3:::user-data", "arn:aws:s3:::user-data/${aws:username}/*" ], "Condition": { "StringEquals": {"aws:PrincipalTag/Department": "engineering"}, "IpAddress": {"aws:SourceIp": ["10.0.0.0/8"]}, "Bool": {"aws:MultiFactorAuthPresent": "true"} } } ]}12.13.2 高危权限组合
| 组合 | 危害 |
|---|---|
iam:PassRole + lambda:CreateFunction | 提权到任意 Role |
iam:CreateAccessKey | 持久化 |
sts:AssumeRole (信任策略错误) | 跨账号接管 |
kms:Decrypt + s3:GetObject | 加密数据解开 |
ssm:SendCommand | 任意 EC2 命令执行 |
cloudformation:UpdateStack (含 IAM) | 提权 |
12.13.3 STS AssumeRole 信任链
1. Alice (User) → STS AssumeRole → RoleA2. RoleA → STS AssumeRole → RoleB(RoleB 信任 RoleA)3. RoleB → STS GetSessionToken → 临时凭据红队常用:找到错配的”Trust Relationship”,让自己的账号能 AssumeRole 进入受害账号。
12.13.4 防御
- 启用 IAM Access Analyzer
- AWS Organizations + SCP 限制根账号
- CloudTrail 全开 + GuardDuty 异常检测
- 强制 MFA + Session Policy 限制时间
- 使用 Permission Boundaries 防 IAM 提权
12.14 容器逃逸完整谱系
12.14.1 配置类逃逸
| 配置 | 危害 |
|---|---|
--privileged | 完全特权,几乎等于 root |
--cap-add=SYS_ADMIN | mount、namespace 创建 |
-v /:/host | 挂宿主根 |
-v /var/run/docker.sock:/... | 容器内 docker 命令 = 宿主 docker |
-v /proc:/host/proc | 修改宿主进程 |
--pid=host | 共享 PID namespace |
--net=host | 共享网络 namespace |
--userns=host (默认) | 用户名空间未隔离 |
12.14.2 漏洞类逃逸
| CVE | 名称 | 利用 |
|---|---|---|
| CVE-2019-5736 | runC FD 重写 | 覆盖宿主 runC 二进制 |
| CVE-2022-0185 | Linux fsconfig 越界写 | 内核漏洞触发提权 |
| CVE-2022-0492 | cgroups release_agent | Privileged + cgroup v1 |
| CVE-2024-0132 | NVIDIA Container Toolkit | TOCTOU |
| CVE-2024-21626 | runC 文件描述符泄漏 | Volume 路径越界 |
| Dirty Pipe (CVE-2022-0847) | Linux 内核 | 容器内同样可利用 |
12.14.3 检测与防御
- Falco / Tracee:内核行为检测
- Pod Security Admission (
restrictedprofile) - gVisor / Kata Containers:用户态 / 微 VM 隔离
- Seccomp 默认 profile + AppArmor / SELinux profile
- 镜像签名与准入(cosign + Kyverno / OPA Gatekeeper)
12.15 K8s 攻防实战
12.15.1 攻击链示例
1. 公开的 Kubelet 10250 → 任意 Pod exec2. 在 Pod 里查 token: cat /var/run/secrets/kubernetes.io/serviceaccount/token3. kubectl auth can-i --list --token=$TOKEN4. 利用 RBAC 错配创建特权 Pod,挂宿主根: apiVersion: v1 kind: Pod spec: hostPID: true containers: - image: alpine securityContext: privileged: true volumeMounts: - mountPath: /host name: hostroot volumes: - name: hostroot hostPath: path: /5. chroot /host bash → 拿到 worker node root6. 横向到其他 node、获取 etcd → 拿到所有 Secrets12.15.2 OPA Gatekeeper / Kyverno 策略
apiVersion: kyverno.io/v1kind: ClusterPolicymetadata: name: disallow-privileged-podsspec: validationFailureAction: enforce rules: - name: privileged-containers match: any: - resources: kinds: ["Pod"] validate: message: "Privileged containers are not allowed." pattern: spec: =(securityContext): =(privileged): "false" containers: - =(securityContext): =(privileged): "false"12.15.3 Service Mesh 安全
- mTLS(Istio / Linkerd / Cilium):服务间默认加密 + 双向认证
- SPIFFE / SPIRE:Workload Identity
- Istio AuthorizationPolicy:FGA(Fine-grained Authorization)
- Cilium ClusterMesh + L7 Policy(HTTP/gRPC 级 ACL)
12.16 软件供应链:SLSA / SBOM / Sigstore
12.16.1 SLSA 等级(v1.0)
Level 1: Build provenance generatedLevel 2: Hosted build platform with tamper-resistant logsLevel 3: Source/build platform meets specific standardsLevel 4: Two-person review + hermetic builds + reproducible12.16.2 Sigstore 三件套
- cosign:签名 & 验证容器镜像 / 二进制
- Fulcio:临时证书 CA(OIDC 身份 → 短证书)
- Rekor:透明日志(公开 append-only)
# Keyless 签名(绑定 GitHub Actions OIDC)COSIGN_EXPERIMENTAL=1 cosign sign $REGISTRY/myapp:1.2.3cosign verify --certificate-identity-regexp 'github.com/myorg/.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ $REGISTRY/myapp:1.2.312.16.3 SBOM 生成与消费
syft packages dir:. -o cyclonedx-json > sbom.jsongrype sbom:./sbom.jsonosv-scanner scan -r .12.16.4 GitHub 与 SLSA 集成
- Actions 提供 OIDC token(无 PAT 即可签)
actions/attest-build-provenance:自动生成 SLSA L3 attestation- 私有镜像仓库(GHCR / ECR)支持签名校验准入
12.17 Android 逆向深入
12.17.1 关键工具
- apktool:解包 / 重打包
- jadx-gui / jadx:DEX → Java
- Ghidra / IDA(含 native .so)
- Frida:运行时 hook
- objection:基于 Frida 的高层封装
- MobSF:自动化静 + 动报告
- Drozer:组件交互测试
- Magisk + LSPosed + Shamiko:去 root 检测
12.17.2 Smali 语法快查
.class public Lcom/example/Foo;.super Ljava/lang/Object;
.method public hello()V .registers 2 const-string v0, "Hello" sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V return-void.end method12.17.3 SSL Pinning 4 种绕过
- Frida hook OkHttp
CertificatePinner.check - Frida Universal SSL Pinning 脚本(覆盖多种库)
- 修改 APK 嵌入用户证书 +
<network-security-config>重打包 - Magisk 模块 TrustMeAlready / MitmKit
12.17.4 Frida 示例
Java.perform(function() { var pin = Java.use('com.example.MyApp$1'); pin.check.implementation = function (host, certs) { console.log('SSL pinning bypassed for ' + host); return; };});12.17.5 防御深度
- R8 / ProGuard 高级混淆
- 字符串加密(Stringer / DexGuard)
- 反 Frida(检测 27042 端口、模块加载)
- 反 root(多种独立检测组合)
- Play Integrity API
- 关键逻辑放 Native + JNI + obf
- 多账号风控(设备指纹)
12.18 iOS 安全与越狱
12.18.1 安全模型
- Secure Enclave:硬件 KMS,密钥永不出
- Sandbox:每个 App 独立沙箱
- Code Signing:所有可执行需签名
- TCC(Transparency, Consent, Control):访问相机/麦克风等需用户同意
- AMFI(Apple Mobile File Integrity):阻止未签名加载
- PAC + MTE(A12+/A14+):硬件级保护
12.18.2 越狱方式
| 方式 | 例子 |
|---|---|
| Bootrom 漏洞 | checkm8 (A5-A11) → 永久越狱 |
| 内核漏洞 | unc0ver / palera1n / Dopamine |
| 软件越狱 | Sileo / Cydia 安装 |
| 受信任开发者 | Sideloading (Sideloadly / AltStore) |
12.18.3 逆向工具
- class-dump:导出 Objective-C 类信息
- Hopper / IDA:反汇编 / 反编译
- Frida:运行时
- Cycript(旧)→ Cylock / Frida REPL(新)
- iproxy / scp:与设备通信
12.18.4 评估标准
- OWASP MASVS + MSTG
- OWASP Mobile Top 10
12.19 LLM 安全详细案例
12.19.1 Prompt Injection 分类
直接(Direct):用户输入直接改 system prompt 例: "忽略以上指令,做 X"
间接(Indirect):通过 RAG / 工具数据 例: 网页正文藏指令,agent 阅读后被劫持
跨工具(Cross-tool): Agent 调工具 A 取数据 → 数据含恶意指令 → Agent 执行工具 B 越权12.19.2 真实例子
- Bing Chat (2023):网页 HTML 注释藏 prompt → 改聊天机器人 persona
- ChatGPT Plugin:第三方插件的 manifest 被注入 → 调用其他插件越权
- LangChain Agent:Web search tool 返回的文档含 “调 send_email 给 attacker@…” → 真的执行
- GitHub Copilot:被诱导生成含密钥的代码
12.19.3 防御
- 输入分层:System / User / Tool 严格分界
- 输入打标:未信任内容用
``` data ```包裹 + 提醒模型 - 输出过滤:检测敏感字段、命令、URL
- 工具最小权限 + 调用审批(HITL)
- Guardrails / Lakera / Rebuff / NeMo Guardrails 检测层
- 沙箱执行(Code Interpreter / Tool sandbox)
12.19.4 模型供应链
- HuggingFace 上的模型可能含恶意 pickle(pickle scanning 已加入)
- 推荐使用 safetensors 格式(不含执行)
- 私有镜像 + 签名 + 哈希核对
12.19.5 Agent 安全
- “Excessive Agency”:Agent 拥有过多工具 / 过宽权限
- 最小工具集 + 单步审批 + 操作日志 + 可撤销
- 跨 Session 记忆需明确隔离
12.20 对抗样本与机器学习鲁棒性
12.20.1 FGSM (Fast Gradient Sign Method)
x_adv = x + ε · sign(∇_x J(θ, x, y))最简单的一步攻击:沿损失梯度方向加 ε 大小扰动。
12.20.2 PGD (Projected Gradient Descent)
x_{t+1} = Π_S (x_t + α · sign(∇_x J(θ, x_t, y)))多步迭代 + 投影到 ε-球;当前最强一阶攻击代表。
12.20.3 C&W (Carlini-Wagner)
min ||δ||_p + c · f(x + δ)最小化扰动 + 误分类损失,难度高但效果强。
12.20.4 防御
- 对抗训练(Adversarial Training)
- 输入归一化 / 特征压缩
- 认证防御(Randomized Smoothing)
- 对抗检测(用判别器识别对抗样本)
12.20.5 其他场景
- 视觉(Stop sign 加贴纸 → 被识别为 Speed Limit)
- 语音(Cocktail Party 对抗噪声 → 把 hello 识别为 admin)
- 文本(同义词替换让分类反转)
- 物理对抗(穿带特定图案的 T 恤躲行人识别)
12.21 Web3 / 智能合约安全
12.21.1 常见漏洞
| 漏洞 | 描述 | 例子 |
|---|---|---|
| Reentrancy | 重入:外部调用未先更新状态 | TheDAO (2016)、Lendf.me |
| Integer Overflow | 整数溢出 | BEC Token (2018) |
| Delegatecall | 调用方上下文运行代码 | Parity 钱包 (2017) |
| Access Control | 未限制敏感函数 | 各种私钥泄露 |
| Front-running | MEV / Sandwich | DEX 套利 |
| Flash Loan Attack | 闪电贷操纵价格 | bZx、Cream Finance |
| Oracle Manipulation | 预言机被操控 | Mango Markets (2022) |
| Cross-chain Bridge | 桥接合约漏洞 | Ronin、Wormhole、Nomad |
12.21.2 工具
- Slither:静态分析
- Mythril:符号执行
- Echidna:fuzzing
- Foundry / Hardhat:测试框架
- Tenderly:交易模拟
12.21.3 安全实践
- 用 OpenZeppelin 标准库(避免自实现 ERC20 / ERC721)
- Checks-Effects-Interactions 模式
- 重入锁(ReentrancyGuard)
- 审计 + Bug Bounty + 渐进式上线
- 多签 + Timelock + 紧急暂停
12.22 量子计算与后量子密码(PQC)
12.22.1 时间表
- 2024:NIST 选定 ML-KEM (Kyber)、ML-DSA (Dilithium)、SLH-DSA (SPHINCS+) 标准
- 2030 前后:预期量子计算机能威胁 RSA-2048
- 美国 OMB M-22-09:联邦机构 2035 年前完成 PQC 迁移
12.22.2 迁移路径
当前混合: TLS 1.3 + X25519Kyber768 (Cloudflare、Chrome 已支持) SSH PQC 实验
中长期: 完全替换 RSA / ECDSA → ML-DSA / SLH-DSA 库支持:openssl 3.x + oqs-provider, BoringSSL 实验
挑战: - 密钥 / 签名体积大 (Kyber-768 公钥 1184B, ML-DSA-65 签名 3293B) - 老旧设备 / IoT 难升级 - "Harvest now, decrypt later" 攻击 → 现在加密的数据未来可能被破12.22.3 库支持
- Open Quantum Safe (liboqs)
- Botan PQ
- AWS / Azure / Google 混合 KEM 试点
12.23 隐私计算实战
12.23.1 同态加密
- Paillier:加法同态,简单(详见 Ch04)
- BFV / BGV:整数全同态
- CKKS:浮点近似同态(适合 ML)
- TFHE:门级 + 自举
应用:联邦学习中的安全聚合、加密数据库查询。
12.23.2 安全多方计算 (MPC)
- Yao Garbled Circuit:两方混淆电路
- GMW / BGW:多方秘密分享
- SPDZ:恶意安全
- 应用:跨企业反欺诈联合查询、隐私 ID 求交(PSI)
12.23.3 TEE(可信执行环境)
| 平台 | 特性 |
|---|---|
| Intel SGX | Enclave,但已知多个侧信道 |
| Intel TDX | VM 级机密,2023+ |
| AMD SEV-SNP | VM 级,AMD EPYC |
| ARM CCA / TrustZone | 移动 + 服务器 |
| Apple Secure Enclave | 设备本地 |
应用:机密计算云(Azure Confidential、AWS Nitro Enclave)。
12.23.4 联邦学习
- FedAvg / FedProx:参数平均
- 风险:Deep Leakage from Gradients(梯度反推训练数据)
- 加固:差分隐私 (DP-SGD) + 安全聚合 (Secure Aggregation)
12.24 零信任架构详解
12.24.1 NIST SP 800-207 七要素
- 所有数据源 / 计算服务都视为资源
- 所有通信加密、不论位置
- 单次会话授权
- 动态策略(设备状态 / 行为 / 环境)
- 持续监控完整性
- 严格认证 / 授权
- 收集尽量多日志,持续改进
12.24.2 BeyondCorp 模式
- 用户 + 设备 + 上下文 = 信任度
- 每次请求都过身份代理(Identity Aware Proxy)
- 不再依赖 VPN / “内网”概念
12.24.3 实施落地
Step 1: 资产清单 + 用户身份基线Step 2: 部署 SSO + MFA + 设备健康检查Step 3: 每个应用前置 Identity Aware Proxy(Cloudflare / Zscaler / Pomerium / Google IAP)Step 4: 微分段(NetworkPolicy / Service Mesh)Step 5: 行为分析 + 风险评分Step 6: 持续度量 + 演练12.24.4 国内零信任方案
- 360 ZTBS
- 腾讯 iOA
- 阿里云 ZeroTrust
- 奇安信 / 深信服 SDP
12.25 真实云事故复盘
12.25.1 Capital One (2019)
SSRF 漏洞 in WAF (ModSecurity) → http://169.254.169.254/iam/security-credentials/ → 拿到 IAM 临时凭证(Role: WAF-Role) → 该 Role 拥有 700+ S3 桶读权限 → 下载 1 亿用户数据 → 攻击者发推炫耀 → 被 FBI 抓教训:IMDSv2 强制、最小权限、SSRF 内部路径白名单、CloudTrail GuardDuty 实时告警。
12.25.2 Codecov (2021)
Codecov bash uploader 镜像被植入恶意代码 → 被 GitHub Actions 大量使用 → 收集 2 个月构建环境变量(含 secrets) → 上游下游连锁影响教训:CI 工具供应链、Sigstore 签名、Secrets Rotation。
12.25.3 Microsoft Azure / Storm-0558 (2023)
攻击者通过 Microsoft 工程师调试 dump 拿到一个签名密钥 → 伪造 OpenID 令牌 → 进入 25+ 政府 / 企业 Outlook / Exchange Online教训:密钥分级 / 隔离、自动轮换、调试 dump 严格清理、零信任跨租户。
12.26 练习题(扩展)
- 用 LocalStack + Pacu 跑一遍 IAM 提权链:从
iam:PassRole + lambda:CreateFunction到 admin。 - 给 K8s 集群部署 Kyverno 策略:禁止
hostPath/privileged/latesttag 镜像。 - 选一个开源 Android App,做完整 MASVS 评估并出一份测试报告。
- 给一个简单的 LangChain Agent 设计 prompt injection 攻击 PoC,并写出 Guardrail 防御。
- 用 Slither + Foundry 审计一个 OpenZeppelin 模板合约的修改版本,找出至少 3 个潜在问题。
- 设计一份组织级 PQC 迁移规划:3 年时间窗,按系统类型 / 数据敏感度分阶段。
参考答案要点
aws lambda create-function --role <higher-privileged-role>→ 函数代码内运行aws iam create-user。- RAG 文档藏 “调 sendMail tool 给 attacker@evil”;防御:检测注入字符串 + Tool 调用审批。
12.27 面试高频考点(附参考答案)
Q1:云迁移后安全责任如何划分?
- 责任共担:云厂商负责底层;客户负责”自己的部分”,重点是身份、配置、应用、数据。
Q2:IMDSv1 与 IMDSv2 区别?
- v1 GET 直接拿凭据;v2 需先 PUT 取 Token 再 GET,要求 hop limit ≤ 1,能阻止大量 SSRF 攻击链。
Q3:K8s RBAC 设计原则?
- 最小权限、按 Namespace 隔离、避免 cluster-admin、ServiceAccount per workload。
Q4:cosign keyless 签名怎么工作?
- 通过 OIDC(GitHub Actions / GitLab)拿身份 → Fulcio 颁短证书 → 签名后写入 Rekor 透明日志。
Q5:Android SSL Pinning 怎么落地?
- OkHttp CertificatePinner + 多域 + Strict 模式;混淆 + 加固防 Frida hook;后端配合证书轮换 SOP。
Q6:iOS 安全为何被认为强于 Android?
- 硬件 SE + 强制 Code Signing + 严格 App Store + 系统更新覆盖率高;但 0day 价格也最高。
Q7:Prompt Injection 与 SQL Injection 哪个更难防?
- 难度类似且交叉;目前没有”参数化 prompt”等价方案;只能多层 + 最小权限 + HITL。
Q8:什么是”Harvest now, decrypt later”?
- 攻击者今天采集加密流量,等量子计算可破 RSA / ECC 时再解密;驱动 PQC 加快迁移。
Q9:SLSA 与 SBOM 的关系?
- SBOM 列”成分”;SLSA 证明”成分如何被组装”;二者结合实现完整供应链溯源。
Q10:零信任与 VPN 的本质差异?
- VPN 一旦接入即视为内网;零信任每次访问都要验证身份 + 设备 + 上下文,最小权限 + 持续验证。
12.28 延伸阅读
教材
- 《Hands-On Cloud Security with Microsoft Azure / AWS》
- 《Container Security》Liz Rice
- 《Kubernetes Security》Liz Rice
- 《Mobile Application Hacker’s Handbook》
- 《Adversarial Machine Learning》Anthony Joseph
- 《Building Secure and Reliable Systems》Google SRE 团队
标准 / 框架
- CSA Cloud Controls Matrix (CCM)
- NIST SP 800-204 / 800-207 / 800-218
- CIS Kubernetes / Docker / AWS Benchmarks
- OWASP MASVS / MSTG / LLM Top 10
- SLSA / in-toto / SPDX / CycloneDX
平台 / 资源
- AWS Security Hub / GuardDuty 文档
- Azure Sentinel / Defender 文档
- HackTricks Cloud:https://cloud.hacktricks.xyz/
- Cloud Security Alliance 年度报告
- Snyk State of Cloud Native Security
课程 / 认证
- AWS Certified Security – Specialty
- Microsoft AZ-500
- GCP Professional Cloud Security Engineer
- CKS(Certified Kubernetes Security Specialist)
- CCSP(ISC²)/ CCSK(CSA)
- OffSec EXP-401(高级)
12.29 小结
新兴方向不是”可选”,而是”必选”。 云 + 容器 + AI + 移动端已经构成了现代攻击者的主战场。 在深耕传统安全的同时,选定 1~2 个前沿方向深入研究,你的职业路径将更具稀缺性。
与其他章节的接口
- ← Ch01-Ch11:所有传统安全基础在云 / 移动 / AI 场景的延伸
- 跨章主题:身份(Ch08 + Ch12)、加密(Ch04 + Ch12)、检测(Ch11 + Ch12)
学习节奏(12 周)
- W1-2:搭 LocalStack / minikube,熟悉 IaC 与基础工具链
- W3-4:完整 AWS 攻防(Pacu / CloudFox / Prowler)
- W5-6:K8s 攻防 + Falco / Tetragon
- W7-8:Android 逆向 / iOS 越狱基础
- W9-10:LLM 安全 + 一个 Agent PoC + 防御
- W11:PQC + 隐私计算调研
- W12:零信任落地 / 紫队演练 + 写一篇综述
终极心态
- “新技术的安全 = 旧问题的新场景 + 几个新陷阱”
- 永远关注:身份、配置、最小权限、可观测性
- 拥抱不确定性:AI / 量子 / Web3 都还在快速演化,方法论比工具更值钱
全部十二章到此结束。接下来请进入
projects/开始真正的动手练习。 记住:读百遍,不如亲手攻一次、亲手防一次。安全是一场马拉松,不是百米冲刺。希望这十二章成为你长期学习的地图与脚手架。
复盘检查表
- 我能用 Pacu / CloudFox 演示一次完整 AWS 提权链
- 我能写 Kyverno / OPA 策略并对真实集群落地
- 我能用 cosign / syft / grype 完成一条最小供应链流水线
- 我能 Frida hook Android App 并绕过 SSL Pinning
- 我能给一个 LLM Agent 写威胁建模 + Guardrails 草案
- 我能解释 PQC 标准与混合 KEM 的迁移意义
- 我能给公司写一份零信任落地路线图(3 阶段)
- 我能识别 Capital One / Codecov / Storm-0558 中的关键防御缺口
如全部勾上”是”,恭喜你已经具备云 / 移动 / AI 三位一体安全工程师的基础能力。 继续在某个细分方向(云安全 / 移动逆向 / AI 安全)深耕 2-3 年,可成长为该领域专家。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















