mcpField
S
security-engineer

security-engineer

github.com/404kidwiz安全108 次安装
代码仓库

关于 security-engineer

Security Engineer 是面向基础设施安全与 DevSecOps 的技能,适用于云平台、Kubernetes 和交付管道的安全设计与加固。它涵盖身份管理、安全即代码、扫描策略和纵深防御实践。

主要功能

  1. 01设计 AWS、Azure、GCP 安全架构
  2. 02将安全检查纳入 CI/CD 管道
  3. 03配置 Kubernetes RBAC 与网络策略
  4. 04实施身份与访问管理
  5. 05管理密钥并加固基础设施

适用场景

  1. 01设计零信任云访问策略
  2. 02在拉取请求中加入安全扫描
  3. 03加固 Kubernetes 集群
  4. 04检查基础设施配置与密钥管理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill security-engineer

安装后在 Claude Code 中输入/security-engineer确认已加载。

详细介绍

安全工程师

目的

提供基础设施安全和 DevSecOps 专业知识,专注于云安全架构、身份管理和零信任设计。通过“安全即代码”实践、DevSecOps 流水线和全面的纵深防御策略,构建安全的基础设施。

适用场景

  • 设计云安全架构(AWS/Azure/GCP)
  • 实施“安全即代码”(Terraform、OPA、Ansible)
  • 构建 DevSecOps 流水线(SAST、DAST、容器扫描)
  • 保护 Kubernetes 集群(RBAC、网络策略、准入控制器)
  • 配置身份提供商(Okta、Keycloak、Active Directory)
  • 管理密钥(HashiCorp Vault、AWS Secrets Manager)
  • 加固服务器和操作系统配置(CIS 基准)

示例

示例 1:零信任云架构

场景: 从边界安全迁移到零信任模型。

实施:

  1. 实施基于身份的访问策略
  2. 配置服务网格以实现零信任网络
  3. 为特权操作设置即时访问
  4. 对所有访问启用持续验证
  5. 创建微分段策略

结果:

  • 几乎杜绝横向移动
  • 攻击面缩小 90%
  • 满足零信任要求
  • 提升事件响应能力
示例 2:实施 DevSecOps 流水线

场景: 将安全融入 CI/CD 流水线,同时不减慢交付速度。

实施:

  1. 在拉取请求检查中添加 SAST 扫描(SonarQube)
  2. 实施 SCA,以扫描依赖项漏洞
  3. 在构建流程中扫描容器映像
  4. 扫描基础设施即代码(Checkov)
  5. 设置安全门禁,自动阻止部署

结果:

  • 在开发生命周期中提前 85% 发现安全问题
  • 部署频率未受影响
  • 严重漏洞减少 70%
  • 将安全融入开发者工作流
示例 3:Kubernetes 安全加固

场景: 保护生产环境 Kubernetes 集群,抵御常见攻击。

实施:

  1. 实施 Pod 安全标准/配置文件
  2. 配置网络策略以实现微分段
  3. 遵循最小权限原则设置 RBAC
  4. 启用准入控制器(OPA、Kyverno)
  5. 实施密钥管理(集成 Vault)

结果:

  • 100% 符合安全基准
  • 零容器逃逸漏洞
  • 提升审计准备度
  • 降低潜在入侵造成的影响范围

最佳实践

云安全
  • 身份优先:优先采用基于身份的访问控制,而非网络控制
  • 加密:加密静态和传输中的数据
  • 最小权限:仅授予所需的最低权限
  • 监控:全面记录日志并设置告警
DevSecOps
  • 左移:在开发早期发现漏洞
  • 自动化:在 CI/CD 中自动执行安全检查
  • 门禁:阻止存在严重漏洞的部署
  • 培训:指导开发者进行安全编码
Kubernetes 安全
  • Pod 安全:使用 Pod 安全标准/配置文件
  • 网络策略:实施微分段
  • RBAC:对服务账号遵循最小权限原则
  • 密钥:使用外部密钥管理
基础设施即代码
  • 版本控制:将所有基础设施纳入 Git 管理
  • 扫描:扫描 IaC 配置错误
  • 测试:应用基础设施变更前先进行测试
  • 文档:记录安全配置

请勿在以下情况下调用:

  • 执行渗透测试(进攻性)→ 使用 penetration-tester
  • 调查正在发生的安全入侵 → 使用 devops-incident-responder
  • 开展正式合规审计(文书工作)→ 使用 security-auditor
  • 编写法律隐私政策 → 使用 legal-advisor


核心能力

云安全架构
  • 设计安全的云架构(AWS、Azure、GCP)
  • 实施网络安全控制
  • 配置身份和访问管理
  • 管理加密和密钥管理
DevSecOps 实施
  • 在 CI/CD 流水线中构建安全机制
  • 集成 SAST/DAST 扫描工具
  • 管理容器安全扫描
  • 实施基础设施即代码安全
Kubernetes 安全
  • 配置 RBAC 和服务账号
  • 实施网络策略
  • 设置准入控制器
  • 管理密钥和证书
身份和访问管理
  • 配置身份提供商(Okta、Keycloak)
  • 实施 SSO 和 MFA
  • 管理基于角色的访问控制
  • 审计和监控访问模式


工作流 2:Kubernetes 加固

**目标:**保护 GKE/EKS 集群。

步骤:

  1. 网络策略(默认拒绝所有流量)

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: default-deny-ingress
    spec:
      podSelector: {}
      policyTypes:
      - Ingress
    
  2. 准入控制器(OPA Gatekeeper)

    • 强制执行策略:“所有镜像必须来自受信任的仓库”。
    • 强制执行策略:“容器不得以 root 身份运行”。
  3. 工作负载身份

    • 使用 IRSA(服务账号的 IAM 角色)或 Workload Identity(GCP)替代静态 AWS 密钥。


工作流 4:Kubernetes 准入控制器(OPA Gatekeeper)

**目标:**在集群级别强制执行“禁止容器以 root 身份运行”策略。

步骤:

  1. 定义约束模板

    apiVersion: templates.gatekeeper.sh/v1
    kind: ConstraintTemplate
    metadata:
      name: k8spspallowedusers
    spec:
      crd:
        spec:
          names:
            kind: K8sPSPAllowedUsers
      targets:
        - target: admission.k8s.gatekeeper.sh
          rego: |
            package k8spspallowedusers
            violation[{"msg": msg}] {
              rule := input.review.object.spec.securityContext.runAsUser
              rule == 0
              msg := "Running as root (UID 0) is not allowed."
            }
    
  2. 应用约束

    apiVersion: constraints.gatekeeper.sh/v1beta1
    kind: K8sPSPAllowedUsers
    metadata:
      name: psp-pods-allowed-users
    spec:
      match:
        kinds:
          - apiGroups: [""]
            kinds: ["Pod"]
    
  3. 测试

    • 部署一个设置了 runAsUser: 0 的 Pod。
    • 结果:Error: admission webhook "validation.gatekeeper.sh" denied the request。


5. 反模式与注意事项

❌ 反模式 1:硬编码密钥

表现形式:

  • 将 const API_KEY = "sk-12345..."; 提交到 Git。

失败原因:

  • 机器人会立即抓取 GitHub。
  • 账号被攻陷。

正确做法:

  • 使用 环境变量(process.env.API_KEY)。
  • 在运行时通过 Secrets Manager 注入。
❌ 反模式 2:安全组设置为“0.0.0.0/0”

表现形式:

  • SSH(端口 22)对所有人开放。
  • 数据库(端口 5432)对所有人开放。

失败原因:

  • 暴力破解攻击。
  • 漏洞扫描机器人。

正确做法:

  • 使用 VPN / 堡垒主机进行 SSH 连接。
  • 数据库使用 私有子网。
  • 将特定 IP 地址或安全组 ID 列入允许名单。
❌ 反模式 3:“盲目”更新依赖项

表现形式:

  • 执行 npm update,但不检查更新日志或 CVE。

失败原因:

  • 供应链攻击(拼写仿冒、恶意软件包)。

正确做法:

  • 使用 SCA 工具(Snyk/Trivy)。
  • 在锁定文件中固定版本。
  • 手动审查主要版本的变更。


7. 质量检查清单

基础设施:

  • IAM: 不使用 * 权限。强制启用 MFA。
  • 网络: 使用私有子网。限制 NACL/SG。
  • 加密: 全程使用 TLS 1.2+。磁盘已加密(KMS)。
  • 日志记录: 已启用 CloudTrail/VPC Flow Logs,并集中管理。

应用程序:

  • 机密信息: 代码/配置映射中不存放机密信息。
  • 依赖项: 已扫描并修补。
  • 输入: 已验证并清理(防止 SQLi/XSS)。

流水线:

  • 扫描: 在 PR 上运行 SAST/SCA/IaC 扫描。
  • 门禁: 高严重性问题会阻止合并。
  • 制品: 镜像已签名(Cosign/Notary)。

反模式

基础设施安全反模式
  • 通配符权限:在 IAM 策略中使用 *——应用最小权限原则
  • 公开暴露:资源未经合理说明便对外暴露——默认采用私有配置
  • 凭据硬编码:在代码或配置中存放机密信息——使用机密信息管理
  • 默认配置:使用默认安全设置——强化所有配置
DevSecOps 反模式
  • 安全门禁表面化:运行扫描却不阻止问题——强制执行安全门禁
  • 警报疲劳:安全警报过多——调整并确定优先级
  • 依赖项盲区:未扫描依赖项——实施 SCA
  • 容器安全不足:以 root 身份运行容器——实施容器安全措施
云安全反模式
  • 角色权限过宽:IAM 角色拥有过多权限——尽可能减少权限
  • 加密缺失:静态或传输中的数据未加密——强制实施加密
  • 日志缺失:未记录安全事件——全面记录日志
  • 网络扁平化:没有网络分段——实施微分段
应用程序安全反模式
  • 注入漏洞:未验证输入——清理所有输入
  • 身份验证绕过:身份验证薄弱——实施强身份验证
  • 敏感数据泄露:记录敏感数据——屏蔽敏感信息
  • 安全配置错误:使用默认配置——强化配置

评论

支持 Markdown