29.5.3 Ellátási láncot megfigyelő eszközök

2025.10.06.
AI Biztonság Blog

Míg a sandbox technikák a modell futásidejű, dinamikus viselkedését elemzik, az ellátási lánc biztonsága egy lépéssel korábban kezdődik: a forráskód, a függőségek és a build artefaktumok statikus vizsgálatával. Egy rejtett, rosszindulatú csomag vagy egy kompromittált alap konténerkép éppolyan veszélyes lehet, mint egy mérgezett modell, csak a támadási felület helyeződik át.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Az ellátási láncot megfigyelő eszközök proaktív védelmet nyújtanak azáltal, hogy még a telepítés előtt feltárják a rejtett kockázatokat. Ezek az eszközök a CI/CD (Continuous Integration/Continuous Deployment) folyamatba integrálva automatizáltan képesek ellenőrizni az AI rendszered építőköveit.

Probléma-megoldás párok a gyakorlatban

Nézzünk meg néhány tipikus problémát és azokat a konkrét eszközöket, amelyekkel kezelheted őket.

1. Probléma: Ismeretlen sérülékenységek a Python függőségekben

A gépi tanulási projektek gyakran több tucat, sőt több száz nyílt forráskódú Python csomagra támaszkodnak. Egyetlen sérülékeny függőség (vagy annak egy tranzitív függősége) is belépési pontot jelenthet egy támadónak.

Megoldás: Függőség-ellenőrzők (pl. `pip-audit`)

Az olyan eszközök, mint a pip-audit, összevetik a projekt függőségeit (a requirements.txt fájl alapján) az ismert sérülékenységek adatbázisával (pl. a PyPI Advisory Database).

# Telepítjük a pip-audit eszközt
pip install pip-audit

# Futtatjuk a projekt requirements.txt fájlján
pip-audit -r requirements.txt

# Kimenet (példa):
# Found 1 vulnerability in 1 package.
# ------------------------------------------------------------------------------
# Name Version ID Fix versions
# ------- ---------- ------------------- --------------------
# numpy 1.21.0 PYSEC-2021-456 1.22.0
# 
# Description:
# A buffer overflow vulnerability in numpy < 1.22.0 allows for potential
# denial-of-service attacks via crafted input arrays.

Ez a kimenet egyértelműen jelzi a problémát, a sérülékeny csomagot, a verziószámot és a javított verziót, amire frissíteni érdemes.

2. Probléma: Kompromittált Docker alapképek

Az AI modelleket gyakran Docker konténerekbe csomagolják a hordozhatóság és a reprodukálhatóság érdekében. Ha a használt alap kép (pl. python:3.9-slim) elavult vagy ismert sérülékenységeket tartalmaz, a teljes alkalmazásod sebezhetővé válik, függetlenül a saját kódod minőségétől.

Megoldás: Konténerkép-szkennerek (pl. `Trivy`)

A Trivy egy népszerű, nyílt forráskódú eszköz, amely képes konténerképeket, fájlrendszereket és Git repositorykat szkennelni ismert sérülékenységekre (CVE-kre).

# A Trivy futtatása egy Docker képen
trivy image python:3.9-slim-buster

# Kimenet (részlet):
# 
# ==============================================================================
# Total: 124 (UNKNOWN: 0, LOW: 78, MEDIUM: 31, HIGH: 13, CRITICAL: 2)
# ==============================================================================
# 
# libssl1.1 (CRITICAL)
# --------------------
# Vulnerability ID: CVE-2023-0286
# Installed Version: 1.1.1n-0+deb10u3
# Fixed Version: 1.1.1n-0+deb10u4
# Description: Type confusion relating to X.400 address processing inside an
# X.509 GeneralName...

A CI/CD pipeline-ba integrálva a Trivy megakadályozhatja a kritikus sérülékenységet tartalmazó képek továbbjutását a deployment fázisba.

3. Probléma: Az átláthatóság hiánya – „Mi van a dobozban?”

Egy komplex AI rendszer build folyamatának végén nehéz pontosan megmondani, milyen szoftverkomponensekből és milyen verziókból állt össze a végső artefaktum. Ez az átláthatóság hiánya megnehezíti a későbbi auditálást és a sérülékenységekre való reagálást.

Megoldás: Szoftverjegyzék (SBOM) generátorok (pl. `Syft`)

A Software Bill of Materials (SBOM) egy „összetevőlista” a szoftveredhez. Olyan eszközök, mint a Syft, képesek automatikusan legenerálni ezt a listát egy konténerképből vagy fájlrendszerből, szabványos formátumokban (SPDX, CycloneDX).

# SBOM generálása egy konténerképből SPDX JSON formátumban
syft packages my-model-service:latest -o spdx-json > sbom.json

Az így kapott sbom.json fájl egy részletes, gépileg feldolgozható leltár, ami alapját képezi a további biztonsági ellenőrzéseknek és a megbízható modell-nyilvántartásoknak.

Eszközök elhelyezkedése a CI/CD folyamatban

Forráskód & Modellek Build & Csomagolás Konténer Registry Deployment pip-audit Syft (SBOM) Trivy

Az ellátási lánc különböző pontjain bevethető eszközök sematikus ábrája.

Összefoglaló táblázat

Az alábbi táblázat gyors áttekintést nyújt a tárgyalt eszközökről és azok tipikus felhasználási területeiről.

Eszköz Fő funkció Tipikus bevetési pont
pip-audit Python függőségek sérülékenység-ellenőrzése. CI pipeline, a kód buildelése előtt; fejlesztői környezetben.
Trivy Konténerképek és fájlrendszerek sérülékenység-szkennelése. CI pipeline, a konténerkép registry-be való feltöltése előtt vagy után.
Syft Szoftverjegyzék (SBOM) generálása különböző forrásokból. CI pipeline, a build artefaktum (pl. konténerkép) elkészülte után.
Grype SBOM vagy konténerkép szkennelése sérülékenységekre. A Syft által generált SBOM elemzésére a CI folyamatban.

Ezek az eszközök nem csodaszerek, de nélkülözhetetlenek egy többrétegű védelmi stratégia (defense-in-depth) kiépítésében. Az automatizált ellenőrzésekkel jelentősen csökkentheted a kockázatát annak, hogy egy ismert sérülékenység vagy kompromittált komponens bekerüljön az éles rendszereidbe. Az általuk generált adatok, különösen az SBOM, pedig elengedhetetlen alapot szolgáltatnak a következő szinthez: egy megbízható modell-nyilvántartás felépítéséhez.