Pipeline-ul tau ML are o problema de supply chain. NSA tocmai a confirmat-o.
Instalezi modele de la necunoscuti cu pip
Pe 4 martie 2026, NSA si CISA au publicat un ghid comun intitulat "AI/ML Supply Chain Risks and Mitigations". Documentul numeste sase componente din supply chain-ul tau AI care pot fi compromise: date de antrenament, modele, software, infrastructura, hardware si servicii terte.
Daca rulezi ML in productie, stii deja ca cel putin trei dintre ele sunt practic un exercitiu de incredere. Instalezi un model de pe Hugging Face cu pip. Tragi o imagine de baza de pe Docker Hub. Faci fine-tuning pe un dataset pe care cineva l-a colectat de pe internet. Nimeni nu auditeaza nimic.
Protect AI scaneaza Hugging Face din 2024. In aprilie 2025, au scanat 4,47 milioane de versiuni de modele si au gasit 352.000 de probleme nesigure sau suspecte in 51.700 de modele. Nu e o eroare de rotunjire. Asta inseamna aproximativ 3,7% din toate repository-urile scanate cu probleme de securitate.
Si devine mai rau. In ianuarie 2026, cercetatorii de la The Register au raportat ca bibliotecile Python din modelele AI/ML pot fi otravite prin metadata, exploatand modul in care framework-uri precum Nvidia NeMo folosesc hydra.utils.instantiate() pentru incarcarea configuratiilor. Un atacator poate obtine executie de cod la distanta folosind functii Python built-in precum eval() si os.system(). Peste 700 de modele de pe Hugging Face folosesc formatul NeMo afectat.
Suprafata de atac pe care nu o monitorizezi
Iata cum arata un pipeline ML tipic din perspectiva supply chain-ului:
# Presupunerile ascunse de incredere din pipeline-ul tau ML
pipeline:
data:
source: "s3://shared-datasets/training-v3" # Cine a pus asta aici?
preprocessing: "pandas==2.1.0" # Auditat? Nu.
model:
base: "huggingface/bert-base-uncased" # Verificare de integritate? Poate.
fine_tune: "custom-lora-adapter" # Din Jupyter-ul tau? Super.
serving:
framework: "torch==2.2.0" # CVE-uri verificate? Probabil nu.
container: "python:3.11-slim" # 47 de vulnerabilitati cunoscute.
dependencies:
- transformers==4.38.0
- accelerate==0.27.0
- datasets==2.18.0 # Vreunul dintre acestea e typosquatted?Fiecare linie e o decizie implicita de incredere. Ghidul NSA spune: nu mai avea incredere implicita.
Atacul de dependency confusion asupra PyTorch din 2022 e exemplul de manual. Un atacator a publicat un pachet malitios numit torchtriton pe PyPI cu acelasi nume ca o dependenta interna PyTorch. Pentru ca pip rezolva pachetele publice primele, build-urile nightly PyTorch au inclus pachetul malitios timp de cinci zile inainte ca cineva sa observe. Cinci zile de pip install torch-nightly care tragea malware.
Mai recent, cercetatorii au gasit peste 100 de pachete malitioase care vizau biblioteci ML populare pe PyPI folosind typosquatting. Nume precum "Matplotltib" si "PyToich" concepute sa prinda o singura greseala de tiparire in requirements.txt.
Ce vrea NSA sa faci (si ce functioneaza de fapt)
Ghidul NSA recomanda AI Bills of Materials (AI-BOMs), evaluari de securitate ale furnizorilor, planuri de raspuns la incidente si urmarirea provenientei tuturor componentelor AI. Asta e versiunea enterprise.
Iata versiunea practica pentru echipele care ruleaza ML in productie:
1. Fixeaza si verifica totul
# Nu face asta
pip install transformers
# Fa asta in schimb
pip install transformers==4.38.0 \
--require-hashes \
--hash=sha256:abc123...
# Sau foloseste pip-compile cu hash-uri
pip-compile --generate-hashes requirements.inFixarea cu hash-uri nu e noua, dar aproape nimeni in ML nu o face. Echipa ta de web probabil fixeaza versiunile. Echipa ta de ML probabil nu. Rezolva asta.
2. Scaneaza modelele inainte de incarcare
# Inainte sa faci torch.load() pe orice de pe internet
# Foloseste scanerul de modele de la Protect AI sau similar
from modelscan import ModelScan
scanner = ModelScan()
results = scanner.scan("./downloaded_model.pt")
if results.issues:
print(f"Found {len(results.issues)} security issues")
for issue in results.issues:
print(f" - {issue.severity}: {issue.description}")
sys.exit(1)Scanerul Guardian de la Protect AI este integrat direct in Hugging Face acum. Foloseste-l. Daca tragi modele de oriunde altundeva, scaneaza-le local mai intai. torch.load() foloseste pickle in spate, iar pickle deserializeaza obiecte Python arbitrare. E, prin design, o vulnerabilitate de executie de cod.
3. Construieste un AI-BOM
NSA recomanda AI Bills of Materials. CycloneDX are o specificatie ML-BOM care acopera provenienta modelelor, datele de antrenament si dependentele. Conform raportului Cycode 2026 State of Product Security, doar 19% din organizatii au vizibilitate completa asupra locului si modului in care AI este folosit in dezvoltare.
Incepe simplu:
# ai-bom.yaml - AI-BOM minim viabil
model:
name: "fraud-detection-v3"
base_model: "bert-base-uncased"
base_model_hash: "sha256:a8b3c..."
source: "huggingface.co"
fine_tuned_on: "internal-transactions-2024"
framework: "pytorch==2.2.0"
training_data:
sources:
- name: "internal-transactions"
records: 2400000
pii_scan: "passed"
last_audit: "2026-01-15"
dependencies:
pinned: true
hash_verified: true
last_vulnerability_scan: "2026-03-15"
known_cves: 04. Izoleaza inferenta modelelor de reteaua ta
Daca un model otravit ruleaza cod arbitrar in timpul incarcarii, poate exfiltra date, stabili un reverse shell sau modifica alte modele. Ruleaza inferenta in containere izolate fara acces la retea outbound. E securitate de baza pentru containere, dar majoritatea setup-urilor de serving ML au acces complet la retea pentru ca "modelul trebuie sa apeleze un API."
Nu, nu trebuie. Modelul face matematica. Daca containerul tau de serving are nevoie de acces internet outbound, ceva e gresit.
Cum se conecteaza cu EU AI Act
Daca esti o companie din UE, nu e vorba doar de igiena securitatii. EU AI Act Articolul 15 cere "niveluri adecvate de securitate cibernetica" pentru sistemele AI cu risc ridicat. Articolul 9 impune managementul riscurilor care acopera "riscuri pentru sanatate, siguranta sau drepturi fundamentale." Un model otravit intr-un sistem de sanatate sau financiar e exact genul asta de risc.
Ghidul NSA recomanda explicit practici de documentare care se mapeaza direct pe cerintele de evaluare a conformitatii EU AI Act. AI-BOM-ul tau e jumatate din documentatia tehnica gata facuta.
Adevarul incomod
Majoritatea echipelor MLOps trateaza securitatea ca pe problema altcuiva. Echipa de securitate se ocupa de infrastructura. Echipa de ML se ocupa de modele. Nimeni nu se ocupa de spatiul dintre ele, acolo unde un pachet pip typosquatted intalneste o cerinta nefixata care intalneste un checkpoint de model nescanat.
Publicarea acestui ghid de catre NSA nu e o surpriza. E o confirmare ca actorii statali vizeaza deja supply chain-urile ML. Cele 12 miliarde de dolari in pierderi estimate din modele ML compromise in 2025 ar fi trebuit sa fie alarma de trezire. Acest ghid e butonul de amana alarma.
Daca rulezi ML in productie si nu ti-ai auditat supply chain-ul, lista de verificat e scurta: fixeaza-ti dependentele, scaneaza-ti modelele, documenteaza-ti AI-BOM-ul si izoleaza-ti inferenta. Poti face toate patru intr-o saptamana. Alternativa e sa afli dintr-un raport de incident.
Am integrat aceste audituri de supply chain in munca noastra pe platforme ML la DeviDevs. Daca genul asta de lucruri te tin treaz noaptea, am trecut prin asta.
Despre DeviDevs: Construim platforme ML, securizam sisteme AI si ajutam companiile sa se conformeze EU AI Act. devidevs.com