一、RBAC(基于角色的访问控制)

1.1 RBAC核心概念

┌─────────────────────────────────────────────────────────────────┐
│                    RBAC核心概念                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    RBAC模型                              │  │
│  │                                                          │  │
│  │  User/ServiceAccount                                      │  │
│  │         │                                                  │  │
│  │         │ 绑定                                             │  │
│  │         ▼                                                  │  │
│  │  ┌─────────────────┐                                      │  │
│  │  │ RoleBinding     │                                      │  │
│  │  │ ClusterRoleBinding│                                    │  │
│  │  └────────┬────────┘                                      │  │
│  │           │                                                │  │
│  │           │ 引用                                           │  │
│  │           ▼                                                │  │
│  │  ┌─────────────────┐                                      │  │
│  │  │ Role            │                                      │  │
│  │  │ ClusterRole     │                                      │  │
│  │  └────────┬────────┘                                      │  │
│  │           │                                                │  │
│  │           │ 包含                                           │  │
│  │           ▼                                                │  │
│  │  ┌─────────────────────────────────────────────────┐      │  │
│  │  │ Rules (权限规则)                                 │      │  │
│  │  │ ├── apiGroups: ["", "apps", "batch"]            │      │  │
│  │  │ ├── resources: ["pods", "deployments", "jobs"]  │      │  │
│  │  │ └── verbs: ["get", "list", "watch", "create"]   │      │  │
│  │  └─────────────────────────────────────────────────┘      │  │
│  │                                                          │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  资源范围:                                                       │
│  ├── Role/RoleBinding: 命名空间级别                              │
│  └── ClusterRole/ClusterRoleBinding: 集群级别                   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

1.2 RBAC配置示例

# ServiceAccount
apiVersion:v1
kind:ServiceAccount
metadata:
name:ci-bot
namespace:default
---
# Role - 命名空间级别权限
apiVersion:rbac.authorization.k8s.io/v1
kind:Role
metadata:
name:deployment-manager
namespace:default
rules:
-apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
-apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list", "watch"]
-apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
---
# RoleBinding
apiVersion:rbac.authorization.k8s.io/v1
kind:RoleBinding
metadata:
name:ci-bot-deployment-manager
namespace:default
subjects:
-kind:ServiceAccount
name:ci-bot
namespace:default
roleRef:
kind:Role
name:deployment-manager
apiGroup:rbac.authorization.k8s.io
---
# ClusterRole - 集群级别权限
apiVersion:rbac.authorization.k8s.io/v1
kind:ClusterRole
metadata:
name:pod-reader
rules:
-apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
# ClusterRoleBinding
apiVersion:rbac.authorization.k8s.io/v1
kind:ClusterRoleBinding
metadata:
name:all-pod-reader
subjects:
-kind:ServiceAccount
name:monitoring
namespace:monitoring
roleRef:
kind:ClusterRole
name:pod-reader
apiGroup:rbac.authorization.k8s.io

1.3 RBAC最佳实践

┌─────────────────────────────────────────────────────────────────┐
│                    RBAC最佳实践                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. 最小权限原则                                                 │
│  ├── 只授予必要的权限                                            │
│  ├── 避免使用通配符(*)                                           │
│  └── 定期审计权限                                                │
│                                                                  │
│  2. 命名空间隔离                                                 │
│  ├── 不同环境使用不同命名空间                                    │
│  ├── 使用Role而非ClusterRole                                    │
│  └── 限制跨命名空间访问                                          │
│                                                                  │
│  3. ServiceAccount管理                                           │
│  ├── 为每个应用创建专用SA                                         │
│  ├── 禁用自动挂载token(不需要时)                                  │
│  └── 定期轮换token                                               │
│                                                                  │
│  4. 禁止做法                                                     │
│  ├── 禁止授予cluster-admin给普通用户                             │
│  ├── 禁止创建过于宽泛的ClusterRole                               │
│  └── 禁止在RoleBinding中引用ClusterRole(已弃用)                  │
│                                                                  │
│  5. 审计与合规                                                   │
│  ├── 启用审计日志                                                │
│  ├── 定期RBAC审计                                                │
│  └── 使用工具检查权限(kubectl auth can-i)                       │
│                                                                  │
│  权限检查命令:                                                   │
│  kubectl auth can-i list pods --as=system:serviceaccount:default:ci-bot│
│  kubectl auth can-i '*' '*' --all-namespaces                     │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

二、NetworkPolicy深度应用

2.1 NetworkPolicy默认策略

# 默认拒绝所有入站流量
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:default-deny-ingress
namespace:sensitive
spec:
podSelector: {}
policyTypes:
-Ingress
---
# 默认拒绝所有出站流量
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:default-deny-egress
namespace:sensitive
spec:
podSelector: {}
policyTypes:
-Egress
---
# 默认拒绝所有流量(入站+出站)
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:default-deny-all
namespace:sensitive
spec:
podSelector: {}
policyTypes:
-Ingress
-Egress

2.2 多层网络隔离架构

┌─────────────────────────────────────────────────────────────────┐
│                  多层网络隔离架构                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  外部流量                                                        │
│      │                                                           │
│      ▼                                                           │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │               DMZ层 (公开服务)                            │  │
│  │                                                          │  │
│  │  ┌─────────┐  ┌─────────┐                               │  │
│  │  │ Ingress │  │  API GW │  ← 允许外部入站               │  │
│  │  └────┬────┘  └────┬────┘                               │  │
│  │       │             │                                     │  │
│  └───────┼─────────────┼─────────────────────────────────────┘  │
│          │             │                                        │
│          ▼             ▼                                        │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │               应用层 (内部服务)                            │  │
│  │                                                          │  │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐                  │  │
│  │  │Web App  │  │ API Svc │  │ Worker  │                  │  │
│  │  └────┬────┘  └────┬────┘  └─────────┘                  │  │
│  │       │             │           ▲                        │  │
│  └───────┼─────────────┼───────────┼────────────────────────┘  │
│          │             │           │                            │
│          ▼             ▼           │                            │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │               数据层 (敏感数据)                            │  │
│  │                                                          │  │
│  │  ┌─────────┐  ┌─────────┐                               │  │
│  │  │ MySQL   │  │ Redis   │  ← 仅允许应用层访问            │  │
│  │  └─────────┘  └─────────┘                               │  │
│  │                                                          │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  NetworkPolicy规则:                                             │
│  ├── DMZ→应用: 允许特定端口                                      │
│  ├── 应用→数据: 允许数据库端口                                  │
│  ├── 数据层: 禁止所有外部访问                                    │
│  └── 跨层访问: 需要明确允许                                      │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

2.3 NetworkPolicy高级配置

# 多层隔离NetworkPolicy
# 数据库层
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:database-policy
namespace:data
spec:
podSelector:
    matchLabels:
      tier:database
policyTypes:
-Ingress
-Egress
ingress:
-from:
    -podSelector:
        matchLabels:
          tier:application
      namespaceSelector:
        matchLabels:
          name:app
    ports:
    -protocol:TCP
      port:3306
egress:
-to:
    -namespaceSelector:
        matchLabels:
          name:monitoring
      podSelector:
        matchLabels:
          app:prometheus
    ports:
    -protocol:TCP
      port:9104
-to:# DNS
    -namespaceSelector: {}
      podSelector:
        matchLabels:
          k8s-app:kube-dns
    ports:
    -protocol:UDP
      port:53

---
# 应用层
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:application-policy
namespace:app
spec:
podSelector:
    matchLabels:
      tier:application
policyTypes:
-Ingress
-Egress
ingress:
-from:
    -namespaceSelector:
        matchLabels:
          name:dmz
    ports:
    -protocol:TCP
      port:8080
egress:
-to:
    -podSelector:
        matchLabels:
          tier:database
      namespaceSelector:
        matchLabels:
          name:data
    ports:
    -protocol:TCP
      port:3306
-to:# 外部API
    -ipBlock:
        cidr:10.0.0.0/8
        except:
        -10.0.0.0/24# 排除内部网段

三、Pod安全标准

3.1 Pod安全级别

┌─────────────────────────────────────────────────────────────────┐
│                    Pod安全标准                                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  三种安全级别:                                                   │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ Privileged (特权)                                         │  │
│  │ ├── 不限制                                                │  │
│  │ ├── 允许特权容器                                          │  │
│  │ ├── 允许hostNetwork/hostPID/hostIPC                       │  │
│  │ └── 适用: 系统组件、CNI、CSI等                            │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ Baseline (基线)                                           │  │
│  │ ├── 禁止明显危险配置                                      │  │
│  │ ├── 禁止特权容器                                          │  │
│  │ ├── 禁止hostNetwork/hostPID/hostIPC                       │  │
│  │ ├── 禁止hostPath                                          │  │
│  │ └── 适用: 普通应用                                        │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ Restricted (受限)                                         │  │
│  │ ├── 最严格限制                                            │  │
│  │ ├── 必须runAsNonRoot                                      │  │
│  │ ├── 必须seccompProfile                                    │  │
│  │ ├── 必须readOnlyRootFilesystem                            │  │
│  │ ├── 必须drop ALL capabilities                             │  │
│  │ └── 适用: 安全敏感应用                                     │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

3.2 Pod安全标准配置

# 命名空间级别Pod安全策略
apiVersion:v1
kind:Namespace
metadata:
name:production
labels:
    pod-security.kubernetes.io/enforce:restricted
    pod-security.kubernetes.io/audit:restricted
    pod-security.kubernetes.io/warn:restricted
---
# 符合Restricted级别的Pod配置
apiVersion:v1
kind:Pod
metadata:
name:secure-pod
namespace:production
spec:
securityContext:
    runAsNonRoot:true
    runAsUser:1000
    runAsGroup:3000
    fsGroup:2000
    seccompProfile:
      type:RuntimeDefault
containers:
-name:app
    image:my-app:latest
    securityContext:
      allowPrivilegeEscalation:false
      readOnlyRootFilesystem:true
      capabilities:
        drop:
        -ALL
    volumeMounts:
    -name:tmp
      mountPath:/tmp
volumes:
-name:tmp
    emptyDir: {}

3.3 安全配置检查清单

┌─────────────────────────────────────────────────────────────────┐
│                  Pod安全配置检查清单                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  基础安全:                                                       │
│  ├── [ ] runAsNonRoot: true                                     │
│  ├── [ ] runAsUser: <non-zero-uid>                              │
│  ├── [ ] readOnlyRootFilesystem: true                           │
│  └── [ ] allowPrivilegeEscalation: false                        │
│                                                                  │
│  能力控制:                                                       │
│  ├── [ ] capabilities.drop: ["ALL"]                            │
│  └── [ ] 不添加不必要的capabilities.add                        │
│                                                                  │
│  安全配置:                                                       │
│  ├── [ ] seccompProfile.type: RuntimeDefault                   │
│  ├── [ ] apparmorProfile (如支持)                               │
│  └── [ ] seLinuxOptions (如需要)                                │
│                                                                  │
│  网络安全:                                                       │
│  ├── [ ] hostNetwork: false                                     │
│  ├── [ ] hostPID: false                                         │
│  └── [ ] hostIPC: false                                         │
│                                                                  │
│  卷安全:                                                         │
│  ├── [ ] 不使用hostPath                                         │
│  ├── [ ] 不挂载敏感主机目录                                      │
│  └── [ ] Secret使用SecretProjection                            │
│                                                                  │
│  验证工具:                                                       │
│  kubectl get pod <pod> -o yaml | kubectl apply -f - --dry-run=warn│
│  kubectl auth can-i --as=system:anonymous list pods             │
│  kubectl auth can-i --as=system:anonymous create pods           │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

四、零信任架构

4.1 零信任核心原则

┌─────────────────────────────────────────────────────────────────┐
│                    零信任核心原则                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  传统边界安全 vs 零信任:                                         │
│                                                                  │
│  传统模式:                                                       │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │  "信任内部网络,怀疑外部网络"                              │  │
│  │                                                          │  │
│  │  外部 ──►防火墙──► 内部(信任)                            │  │
│  │                                                          │  │
│  │  问题: 一旦突破边界,内部横向移动无阻拦                    │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  零信任模式:                                                     │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │  "永不信任,始终验证"                                      │  │
│  │                                                          │  │
│  │  每个请求都需要:                                          │  │
│  │  ├── 身份验证(Authentication)                            │  │
│  │  ├── 授权验证(Authorization)                             │  │
│  │  ├── 设备验证(Device Trust)                             │  │
│  │  └── 上下文验证(Context: 时间/位置/行为)                 │  │
│  │                                                          │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
│  零信任三大支柱:                                                 │
│  ├── 身份: 强身份认证,最小权限                                   │
│  ├── 设备: 设备健康检查,证书管理                                │
│  └── 网络: 微分段,加密通信                                       │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

4.2 Kubernetes零信任实现

┌─────────────────────────────────────────────────────────────────┐
│                Kubernetes零信任架构                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    身份层                                 │  │
│  │  ├── ServiceAccount (工作负载身份)                        │  │
│  │  ├── SPIFFE/SPIRE (统一身份框架)                          │  │
│  │  └── mTLS (双向TLS认证)                                  │  │
│  └──────────────────────────────────────────────────────────┘  │
│                              │                                   │
│                              ▼                                   │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    授权层                                 │  │
│  │  ├── RBAC (API访问控制)                                   │  │
│  │  ├── NetworkPolicy (网络访问控制)                         │  │
│  │  └── AuthorizationPolicy (Istio/Kyverno/OPA)             │  │
│  └──────────────────────────────────────────────────────────┘  │
│                              │                                   │
│                              ▼                                   │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    数据层                                 │  │
│  │  ├── etcd加密                                             │  │
│  │  ├── Secret加密(KMS/External Secrets)                     │  │
│  │  └── 传输加密(TLS)                                        │  │
│  └──────────────────────────────────────────────────────────┘  │
│                              │                                   │
│                              ▼                                   │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    可观测层                               │  │
│  │  ├── 审计日志                                             │  │
│  │  ├── 访问日志                                             │  │
│  │  └── 异常检测                                             │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

4.3 Istio零信任配置

# Istio AuthorizationPolicy
apiVersion:security.istio.io/v1beta1
kind:AuthorizationPolicy
metadata:
name:deny-all
namespace:production
spec:
  {}  # 空规则 = 拒绝所有请求
---
apiVersion:security.istio.io/v1beta1
kind:AuthorizationPolicy
metadata:
name:allow-frontend
namespace:production
spec:
selector:
    matchLabels:
      app:backend
rules:
-from:
    -source:
        principals: ["cluster.local/ns/frontend/sa/frontend-sa"]
    to:
    -operation:
        methods: ["GET", "POST"]
        paths: ["/api/*"]
    when:
    -key:request.headers[x-request-id]
      notValues: [""]
---
# PeerAuthentication - 强制mTLS
apiVersion:security.istio.io/v1beta1
kind:PeerAuthentication
metadata:
name:default
namespace:istio-system
spec:
mtls:
    mode:STRICT# 严格模式,只接受mTLS

五、供应链安全

5.1 软件供应链风险

┌─────────────────────────────────────────────────────────────────┐
│                  软件供应链风险                                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  供应链攻击面:                                                   │
│                                                                  │
│  源代码层                                                        │
│  ├── 恶意代码注入                                                │
│  ├── 依赖混淆攻击                                                │
│  └── 代码库入侵                                                  │
│       │                                                          │
│       ▼                                                          │
│  构建层                                                          │
│  ├── 构建系统入侵                                                │
│  ├── 恶意构建脚本                                                │
│  └── CI/CD漏洞利用                                               │
│       │                                                          │
│       ▼                                                          │
│  制品层                                                          │
│  ├── 镜像篡改                                                    │
│  ├── 依赖漏洞                                                    │
│  └── 签名伪造                                                    │
│       │                                                          │
│       ▼                                                          │
│  部署层                                                          │
│  ├── 中间人攻击                                                  │
│  ├── 配置篡改                                                    │
│  └── 运行时注入                                                  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

5.2 镜像安全

┌─────────────────────────────────────────────────────────────────┐
│                    镜像安全实践                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. 镜像构建安全                                                 │
│  ├── 使用最小基础镜像(distroless/scratch)                        │
│  ├── 多阶段构建减少攻击面                                        │
│  ├── 不以root用户运行                                            │
│  └── 固定版本标签,不使用:latest                                  │
│                                                                  │
│  2. 镜像扫描                                                     │
│  ├── 构建时扫描(Trivy/Grype)                                     │
│  ├── 定期扫描已部署镜像                                          │
│  ├── CVE数据库及时更新                                           │
│  └── 修复已知高危漏洞                                            │
│                                                                  │
│  3. 镜像签名与验证                                               │
│  ├── Cosign签名镜像                                              │
│  ├── 部署前验证签名                                              │
│  └── 集成到CI/CD流程                                             │
│                                                                  │
│  4. 镜像仓库安全                                                 │
│  ├── 私有仓库(Harbor/ECR/ACR)                                    │
│  ├── 访问控制                                                    │
│  ├── 镜像签名策略                                                │
│  └── 漏洞扫描策略                                                │
│                                                                  │
│  5. SBOM(软件物料清单)                                           │
│  ├── 生成SBOM(Syft)                                             │
│  ├── 存储SBOM                                                   │
│  └── 漏洞追踪                                                   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

5.3 镜像安全流水线

# GitHub Actions镜像安全流水线
name:secure-build
on:
push:
    branches: [main]

jobs:
build:
    runs-on:ubuntu-latest
    steps:
    -uses:actions/checkout@v4

    -name:GenerateSBOM
      uses:anchore/sbom-action@v0
      with:
        image:myapp:${{github.sha}}
        format:spdx-json
        output-file:sbom.json

    -name:Scanforvulnerabilities
      uses:aquasecurity/trivy-action@master
      with:
        image-ref:myapp:${{github.sha}}
        format:'table'
        exit-code:'1'
        severity:'CRITICAL,HIGH'

    -name:SignimagewithCosign
      uses:sigstore/cosign-installer@v3
    -run:|
        cosign sign --key env://COSIGN_PRIVATE_KEY \
          ${{ env.REGISTRY }}/myapp@${{ steps.meta.outputs.digest }}
      env:
        COSIGN_PRIVATE_KEY:${{secrets.COSIGN_PRIVATE_KEY}}

    -name:Pushtoregistry
      run: |
        docker push ${{ env.REGISTRY }}/myapp:${{ github.sha }}

5.4 策略引擎(Kyverno/OPA)

# Kyverno镜像签名验证策略
apiVersion:kyverno.io/v1
kind:ClusterPolicy
metadata:
name:verify-image-signatures
spec:
validationFailureAction:enforce
background:false
rules:
-name:verify-signature
    match:
      any:
      -resources:
          kinds:
          -Pod
    verifyImages:
    -imageReferences:
      -"*"
      attestors:
      -entries:
        -keys:
            publicKeys:|-
              -----BEGIN PUBLIC KEY-----
              ...
              -----END PUBLIC KEY-----
---
# Kyverno镜像仓库限制策略
apiVersion:kyverno.io/v1
kind:ClusterPolicy
metadata:
name:allowed-registries
spec:
validationFailureAction:enforce
rules:
-name:validate-registry
    match:
      any:
      -resources:
          kinds:
          -Pod
    validate:
      message:"镜像必须来自允许的仓库"
      pattern:
        spec:
          containers:
          -image:"harbor.company.com/* | gcr.io/*"

六、安全合规检查

6.1 安全基线检查工具

┌─────────────────────────────────────────────────────────────────┐
│                  安全基线检查工具                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  kube-bench (CIS Kubernetes基准测试)                             │
│  ├── 检查控制平面配置                                            │
│  ├── 检查etcd配置                                                │
│  ├── 检查kubelet配置                                             │
│  └── 生成合规报告                                                │
│                                                                  │
│  kubectl命令:                                                    │
│  kube-bench run --targets master                                 │
│  kube-bench run --targets node                                   │
│  kube-bench run --targets etcd                                   │
│                                                                  │
│  kube-hunter (Kubernetes渗透测试)                                │
│  ├── 发现集群漏洞                                                │
│  ├── 模拟攻击路径                                                │
│  └── 生成安全报告                                                │
│                                                                  │
│  Trivy Operator                                                  │
│  ├── 镜像漏洞扫描                                                │
│  ├── 配置审计                                                    │
│  ├── RBAC评估                                                    │
│  └── 网络策略检查                                                │
│                                                                  │
│  Falco (运行时安全)                                              │
│  ├── 系统调用监控                                                │
│  ├── 异常行为检测                                                │
│  └── 实时告警                                                    │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

6.2 Falco规则示例

# Falco规则 - 检测异常行为
-rule:PrivilegeContainerLaunched
desc:检测特权容器启动
condition:>
    container.id != host and
    container.privileged = true
output:>
    Privileged container started
    (user=%user.name container=%container.id image=%container.image.repository)
priority:WARNING
tags: [container, privilege]

-rule:ShellSpawnedinContainer
desc:检测容器内shell启动
condition:>
    container.id != host and
    proc.name in (bash, sh, zsh, ash) and
    proc.pname exists
output:>
    Shell spawned in container
    (user=%user.name container=%container.id image=%container.image.repository
    shell=%proc.name parent=%proc.pname)
priority:NOTICE
tags: [container, shell]

-rule:FileReadfromSensitivePath
desc:检测敏感文件读取
condition:>
    container.id != host and
    open_read and
    fd.name in (/etc/shadow, /etc/passwd, /etc/ssh/*)
output:>
    Sensitive file read in container
    (user=%user.name container=%container.id file=%fd.name)
priority:WARNING
tags: [container, filesystem]

参考资料

  • Kubernetes RBAC

  • Pod Security Standards

  • Network Policies

  • Zero Trust Architecture

  • CIS Kubernetes Benchmark

  • Falco Documentation

  • Kyverno Documentation

更多推荐