Kai Ole Hartwig
9 Min. Lesezeit
Niedrig
Von

AI-BOM, ML-BOM und ISO/IEC 27090: Welches Modell läuft eigentlich in deinem Cluster?

Stell dir vor, du stehst im Audit vor deinem GPU-Cluster. Im Namespace inference läuft ein vLLM-Pod. Das Image ist signiert und gescannt, die SBOM liegt im Registry.

Dann kommt die Frage: Welches Modell lädt dieser Pod eigentlich? Woher stammen die Gewichte? Wer hat sie zuletzt verändert?

Und plötzlich wird es still. Das Image kennst du bis zur letzten Bibliothek. Die 40 GB Gewichte aus dem Bucket kennst du nicht.

Seit dem 14. Oktober 2026 ist ISO/IEC 27090 veröffentlicht. Zeit, AI-BOMs nicht mehr als Compliance-Folklore zu behandeln.

01 — Die blinde Stelle der SBOM

Eine klassische SBOM beschreibt Code und Pakete. Warum das unverzichtbar ist, habe ich am Beispiel von libssh2 und CVE-2026-7598 gezeigt.

Ein KI-Workload besteht aber aus mehr als seinem Container. Die eigentliche Logik steckt in Artefakten, die kein Paketmanager kennt:

Wird eines davon manipuliert, sieht dein Image-Scanner nichts. Das Image ist ja unverändert. Data Poisoning, ein ausgetauschtes Modell oder ein Backdoor-Adapter bleiben unsichtbar.

Das ist Supply-Chain-Security, nur eine Ebene tiefer. Genau diese Ebene beschreibt eine AI-BOM.

02 — AI-BOM und ML-BOM im Vergleich

AI-BOM ist der Sammelbegriff, ML-BOM der Name bei CycloneDX. Gemeint ist dasselbe: ein maschinenlesbares Inventar aller KI-Bestandteile eines Systems, inklusive ihrer Beziehungen.

CycloneDX ML-BOMSPDX 3.0 AI-Profil
StatusTeil von CycloneDX 1.7 (ECMA-424), AI/ML-Schema für 2.0 in ArbeitAI-Profil, kombinierbar mit dem Software-Profil
ModellKomponente machine-learning-model mit modelCardAI-Package mit eigenen Feldern
DatensätzeKomponententyp dataDataset-Profil
StärkePasst in bestehende SBOM- und Vuln-PipelinesProvenienz, Lizenzen, Beziehungsgraph

Meine Empfehlung: Spricht deine Pipeline schon CycloneDX, bleib dabei. Die ML-BOM ist dann ein weiterer Komponententyp im selben Dokument, kein Parallelprozess.

Was unbedingt hinein gehört

03 — ISO/IEC 27090 als Leitfaden

ISO/IEC 27090:2026 kommt aus dem JTC 1/SC 27, also aus der Ecke von ISO 27001. Auf 56 Seiten beschreibt sie, wie KI-spezifische Bedrohungen über den Lebenszyklus erkannt und abgewehrt werden.

Hier schließt sich der Kreis zur AI-BOM. Du kannst keine Bedrohung für ein Asset erkennen, von dem du nichts weißt. Die AI-BOM ist für 27090, was das Asset-Register für 27001 ist.

Dieselbe Inventur verlangt auch der AI Act. Was das praktisch heißt, steht in meiner Checkliste zum EU AI Act. Wie ein Nachweis mehrere Standards bedient, zeigt Grundschutz++ als Code, Teil 7.

Die Norm ist erst seit wenigen Tagen verfügbar. Welche Kapitel Inventar und Lieferkette im Detail behandeln, zeigt dir der Normtext selbst. Für den Einstieg reicht die Grundidee: erst inventarisieren, dann bewerten.

04 — Modelle als OCI-Artefakte im Cluster

Der größte Hebel im Cluster ist banal. Hör auf, Gewichte per Init-Container aus einem Bucket zu ziehen. Pack sie als OCI-Artefakt ins Registry, genau wie deine Images.

Für TYPO3-Code mache ich das längst. Die Idee dahinter steht in TYPO3 als signiertes OCI-Artefakt, die Umsetzung in der Feldnotiz zu Code als Image-Volume. Für Modelle funktioniert es genauso:

apiVersion: v1
kind: Pod
metadata:
  name: llm-inference
spec:
  containers:
    - name: server
      image: registry.example.com/ai/vllm@sha256:<image-digest>
      args: ["--model=/models"]
      volumeMounts:
        - name: model
          mountPath: /models
          readOnly: true
  volumes:
    - name: model
      image:
        reference: registry.example.com/models/my-llm@sha256:<model-digest>
        pullPolicy: IfNotPresent

 

Im Pod-Spec stehen jetzt zwei Digests: Laufzeit und Modell. Alles mit Digest kannst du signieren, attestieren und bei der Admission prüfen.

05 — Warnsignale in der AI-BOM

Eine AI-BOM ist erst ein Werkzeug, wenn du sie lesen kannst. Drei Stufen helfen bei der Entscheidung.

Blocker

Prüfen

Normal

Wichtig: Die AI-BOM enthält nur, was der Generator findet. Ergänze sie um einen Scanner wie ModelScan oder picklescan, der in die Dateien schaut. Die Blocker werden harte Regeln, die Prüf-Fälle Warnungen mit dokumentierter Ausnahme.

06 — Die AI-BOM als Gate in GitLab CI

Eine AI-BOM als PDF im Wiki schützt nichts. Sie muss in der Pipeline entstehen, dort geprüft werden und im Cluster wirken. Das Muster kennst du aus Grundschutz Teil 3 zum signierten Artefakt und dem CVE-Gate aus Teil 4.

  1. Erzeugen: AI-BOM aus Repository und Modell-Metadaten generieren.
  2. Validieren: Schema prüfen. Kaputte BOMs brechen den Build.
  3. Policy prüfen: Hash, Lizenz und erlaubte Formate durchsetzen.
  4. Attestieren: AI-BOM als signierte Attestation an Modell- und Image-Digest hängen.
  5. Admission: Im Cluster nur zulassen, was eine gültige Attestation hat.
stages: [aibom, verify, attest]

variables:
  MODEL_REF: registry.example.com/models/my-llm
  IMAGE_REF: registry.example.com/ai/vllm
  # MODEL_DIGEST und IMAGE_DIGEST kommen aus den Build-/Push-Jobs

aibom:generate:
  stage: aibom
  image: ghcr.io/cyclonedx/cdxgen:latest   # in echt: per Digest pinnen
  script:
    - cdxgen -t ai --spec-version 1.7 -o aibom.cdx.json .
  artifacts:
    paths: [aibom.cdx.json]

aibom:validate:
  stage: verify
  image: cyclonedx/cyclonedx-cli:latest   # in echt: per Digest pinnen
  script:
    - cyclonedx validate --input-file aibom.cdx.json --fail-on-errors

aibom:policy:
  stage: verify
  image: alpine:3
  before_script:
    - apk add --no-cache jq
  script:
    # Jedes Modell braucht Hash und Lizenz, sonst bricht der Build
    - |
      jq -e '
        [.components[]? | select(.type == "machine-learning-model")] as $m
        | ($m | length) > 0
          and all($m[]; (.hashes // [] | length) > 0
                    and (.licenses // [] | length) > 0)
      ' aibom.cdx.json

aibom:attest:
  stage: attest
  image: cgr.dev/chainguard/cosign:latest   # in echt: per Digest pinnen
  id_tokens:
    SIGSTORE_ID_TOKEN:
      aud: sigstore
  script:
    - cosign attest --yes --type cyclonedx --predicate aibom.cdx.json "$MODEL_REF@$MODEL_DIGEST"
    - cosign attest --yes --type cyclonedx --predicate aibom.cdx.json "$IMAGE_REF@$IMAGE_DIGEST"

 

Drei Dinge, die du nicht überspringen solltest

Und eine gültige Signatur allein beweist noch keinen sauberen Inhalt. Warum, habe ich nach Mini Shai-Hulud aufgeschrieben. Die Attestation sagt, wer die AI-BOM erstellt hat. Ob der Inhalt akzeptabel ist, entscheidet deine Policy.

07 — Admission mit Kyverno

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-aibom
spec:
  validationFailureAction: Enforce
  webhookTimeoutSeconds: 30
  rules:
    - name: verify-aibom-attestation
      match:
        any:
          - resources:
              kinds: [Pod]
      verifyImages:
        - imageReferences:
            - "registry.example.com/ai/*"
          attestations:
            - type: cyclonedx.org/bom
              attestors:
                - entries:
                    - keyless:
                        subject: "https://gitlab.example.com/ai/inference//.gitlab-ci.yml@refs/heads/main"
                        issuer: "https://gitlab.example.com"
              conditions:
                - all:
                    - key: "{{ components[?type=='machine-learning-model'] | length(@) }}"
                      operator: GreaterThan
                      value: 0
    - name: model-volumes-by-digest
      match:
        any:
          - resources:
              kinds: [Pod]
      validate:
        message: "Modelle nur aus dem freigegebenen Registry und nur per Digest."
        pattern:
          spec:
            =(volumes):
              - =(image):
                  reference: "registry.example.com/models/*@sha256:*"

 

Die erste Regel prüft die AI-BOM-Attestation am Laufzeit-Image. Die zweite stellt sicher, dass Modelle nur per Digest aus deinem Registry kommen.

Ein Hinweis aus der Praxis: Teste, ob verifyImages in deiner Kyverno-Version auch Image Volumes erfasst. Falls nicht, prüfst du die Signatur des Modell-Artefakts zusätzlich in der Pipeline oder mit einer eigenen Regel.

08 — Der Impuls

Zurück zum Audit. Die Frage nach dem Modell beantwortest du jetzt nicht mehr mit Schweigen. Du hast einen Digest, eine signierte AI-BOM und eine Policy, die alles andere abgelehnt hätte.

ISO/IEC 27090 sagt dir, welche Bedrohungen du ernst nehmen solltest. Die AI-BOM sagt dir, wo sie zuschlagen können. Deine Pipeline sorgt dafür, dass beides nicht in einer Excel-Liste endet.

Fang klein an: ein Modell, ein Registry, eine Policy. Wenn das läuft, ist der Rest Fleißarbeit.

Wie inventarisierst du heute die Modelle in deinem Cluster? Oder ist das bei dir auch noch der Bucket mit dem Init-Container?

09 — Quellen

Häufige Fragen

Reicht eine Signatur am Modell nicht aus?+

Nein. Die Signatur belegt, wer etwas freigegeben hat. Ob ein Pickle-Modell mit fremdem Code darunter liegt, beantwortet erst die Prüfung des Inhalts.

Kann ich mich nach ISO/IEC 27090 zertifizieren lassen?+

Nein. Die Norm ist ein Leitfaden. Sie ergänzt ein ISMS nach ISO 27001 um KI-spezifische Bedrohungen.

CycloneDX oder SPDX?+

Nimm das Format, das deine Pipeline schon spricht. Mit CycloneDX bleibt die ML-BOM ein weiterer Komponententyp im selben Dokument. SPDX spielt seine Stärken bei Lizenz- und Provenienzfragen aus.

Brauche ich eine AI-BOM, wenn ich nur ein Modell über eine API nutze?+

Ja, nur schlanker. Dann gehört der externe Dienst als Service in die BOM, mit Anbieter, Modellversion und Datenfluss. Die Gewichte liegen nicht bei dir, die Abhängigkeit schon.

Weißt du, welche Modelle in deinem Cluster laufen?

Ich sehe mir an, wie Modelle in deine Kubernetes-Umgebung kommen: was heute ungeprüft geladen wird, wie eine AI-BOM für deine Workloads aussieht und wie du sie als Gate in Pipeline und Admission verankerst.

Termin buchen →

Über den Autor

Foto von Kai Ole Hartwig.

Kai Ole Hartwig

Freiberuflicher DevSecOps-Berater · OnlyOle Consulting

Programmiert seit 2002 – autodidaktisch gelernt, 2012 mit KO-Web selbständig gemacht. Über 100 Projekte, Fokus auf Security, Performance, Automatisierung und Qualität. Heute freiberuflich: DevSecOps-Beratung, Schulungen und Softwareentwicklung.