Ansichten:
Verwenden Sie die folgenden Befehle und Beispiele, um die Cluster-Richtlinie und das Laufzeit-Regelsatz-Custom-Resource für Ihre clusterverwalteten Richtlinien in Container Security zu erstellen.
Clusterverwaltete Richtlinien sind standardmäßig nicht aktiviert. Um diesen Richtlinientyp zu aktivieren, fügen Sie Folgendes zu Ihrer overrides.yaml-Datei hinzu:
visionOne:
  policyOperator:
    enabled: true
    clusterPolicyName: <name of your policy custom resource>

Richtlinie auf Cluster anwenden

Weitere Informationen zu den Regeln, Ausnahmen und XDR-Aktivierungsressourcen, die Sie auf Ihre verwaltete Cluster-Richtlinie anwenden können, finden Sie unter Benutzerdefinierte Ressourcen für clusterverwaltete Richtlinien.
Verwenden Sie den folgenden Befehl, um Ihre Richtlinie auf einen Cluster anzuwenden:
Hinweis
Hinweis
Ihre Datei muss nicht policy.yaml genannt werden.
kubectl apply -f policy.yaml
Hinweis
Hinweis
Der Name der benutzerdefinierten Ressource der Cluster-Richtlinie muss mit dem in den Werten oder der overrides.yaml-Datei angegebenen Namen übereinstimmen.
Das Folgende ist ein Beispiel für eine clusterverwaltete Richtliniendatei:
apiVersion: container-security.trendmicro.com/v1alpha1
kind: ClusterPolicy
metadata:
  name: trendmicro-cluster-policy
spec:
  xdrEnabled: true
  rules:
    # Pod properties
    - type: hostNetwork
      action: log
      mitigation: log
    - type: hostIPC
      action: log
      mitigation: log
    - type: hostPID
      action: log
      mitigation: log

    # Container properties
    - type: runAsNonRoot
      action: log
      mitigation: log
    - type: privileged
      action: log
      mitigation: log
    - type: privileged
      action: log
      mitigation: log
    - type: allowPrivilegeEscalation
      action: log
      mitigation: log
    - type: readOnlyRootFilesystem
      action: log
      mitigation: log
    - type: containerCapabilities
      properties:
        capabilityRestriction: baseline
      action: log
      mitigation: log

    # Image properties
    - type: imageRegistry
      properties:
        operator: equals
        values:
          - 198890578717.dkr.ecr.us-east-1.amazonaws.com/sample-registry
      action: log
      mitigation: log
    - type: imageName
      properties:
        operator: startsWith
        values:
          - nginx
          - alpine
      action: log
      mitigation: log
    - type: imageTag
      properties:
        operator: notEquals
        values:
          - latest
      action: log
      mitigation: log
    - type: imagePath
      properties:
        operator: contains
        values:
          - example.com/org/repo
          - example.com/image
      action: log
      mitigation: log

    # Unscanned images
    - type: imagesNotScanned
      properties:
        scanType: vulnerability
        maxScanAge: 30
      action: log
      mitigation: log
    - type: imagesNotScanned
      properties:
        scanType: malware
        maxScanAge: 30
      action: log
      mitigation: log
    - type: imagesNotScanned
      properties:
        scanType: secret
        maxScanAge: 30
      action: log
      mitigation: log

    # Artifact Scanner Scan results
    - type: imagesWithMalware
      action: log
      mitigation: log
    - type: imagesWithSecrets
      action: log
      mitigation: log
    - type: imagesWithVulnerabilities
      properties:
        severity: critical
      action: log
      mitigation: log
    - type: imagesWithCVSSAttackVector
      properties:
        attackVector: network
        severity: high
      action: log
      mitigation: log
    - type: imagesWithCVSSAttackComplexity
      properties:
        attackComplexity: high
        severity: high
      action: log
      mitigation: log
    - type: imagesWithCVSSAvailabilityImpact
      properties:
        availabilityImpact: low
        severity: high
      action: log
      mitigation: log

    # Kubectl Access
    - type: podExec
      action: log
      mitigation: log
    - type: podPortForward
      action: log
      mitigation: log

  # Exceptions
  exceptions:
    - type: imageName
      properties:
        operator: equals
        values:
          - sampleImage
      namespaces: # exclude to apply to all namespaces
        - sample-namespace
    - type: imageRegistry
      properties:
        operator: equals
        values:
          - 198890578717.dkr.ecr.us-east-1.amazonaws.com/sample-registry

Benutzerdefinierte Ressourcenregelset

Das Laufzeit-Regelwerk definiert die Regeln für die Laufzeitsicherheit. Diese Falco-Regeln werden von Trend Micro verwaltet und mit der Regel-ID referenziert. Die RuntimeRuleset-Spezifikation enthält die Laufzeitdefinition mit zwei Feldern: labels und rules.
labels: Ein Array von Pod-Labels, bei dem die Regeln mithilfe von Label-Selektoren angewendet werden. Ohne die Labels werden die Regeln auf alle Pods angewendet.
  • key: Beschriftungsschlüssel.
  • value: Bezeichnungswert.
Regeln: Ein Array von Regel-IDs und die zu ergreifende Maßnahme, wenn die Regel ausgelöst wird.
Verwenden Sie folgenden Befehl zum Anwenden des Laufzeit-Regelsatzes:
Hinweis
Hinweis
Ihre Datei muss nicht runtimeruleset.yaml genannt werden.
kubectl apply -f runtimeruleset.yaml
Das Folgende ist ein Beispiel für eine Laufzeit-Regelsatzdatei:
apiVersion: container-security.trendmicro.com/v1alpha1
kind: RuntimeRuleset
metadata:
  labels:
    app.kubernetes.io/name: init
    app.kubernetes.io/managed-by: kustomize
  name: trendmicro-ruleset-sample
spec:
  definition:
    labels:
      - key: "app"
        value: "nginx"
    rules:
      - ruleID: TM-00000001
        mitigation: log
      - ruleID: TM-00000002
        mitigation: log
      - ruleID: TM-00000003
        mitigation: isolate
      - ruleID: TM-00000004
        mitigation: terminate