Мэдээ

PyPI дэх AI Сангуудыг Онилсон Нийлүүлэлтийн Сүлжээний Халдлага: `.pth` Файлын Далд Аюул ба Хөгжүүлэгчдийн Хамгаалалт

TOGTOKHTOGTOKH·2026 оны наймдугаар сарын 9·3 үзсэн·
PyPI дэх AI Сангуудыг Онилсон Нийлүүлэлтийн Сүлжээний Халдлага: `.pth` Файлын Далд Аюул ба Хөгжүүлэгчдийн Хамгаалалт

AI хөгжүүлэлтийн орчин дахь шинэ аюулгүй байдлын давалгаа

Сүүлийн үед Python-ийн багц удирдлагын PyPI (Python Package Index) экосистемд AI болон машинаар суралцах (ML) сангуудыг онилсон нийлүүлэлтийн сүлжээний халдлага (Supply Chain Attack) эрс нэмэгдэж байна. Хамгийн сүүлийн үеийн аюулгүй байдлын судалгаа, тайлангуудаас харахад халдагчид зөвхөн бэлэн кодонд хортой програм нуухаас гадна Python интерпретаторын бага яригддаг далд механизмуудыг ашиглан код import хийгдээгүй байхад ч шууд ажиллах хэмжээний нарийн халдлагуудыг хийж эхэллээ.

LiteLLM, PyTorch Lightning зэрэг сая сая татан авалттай AI дэд бүтцийг бүрдүүлдэг гол сангуудыг халдагчид CI/CD пайплайн болон maintainer-ийн эзэмшлийн токеноор дамжуулан барьцаалж, хортой багцуудыг PyPI дээр нийтэлсэн тохиолдлууд гарсан. Энэ нь орчин үеийн AI хөгжүүлэгчдийн AWS, GCP, Azure, SSH болон Kubernetes нууц түлхүүрүүдийг алдахад хүргэж буй хамгийн том эрсдэл болж байна.

.pth файл гэж юу вэ? Яагаад код import хийхгүй байхад ажилладаг вэ?

Халдлагын техникийн хамгийн сонирхолтой бөгөөд аюултай хэсэг нь Python-ийн site-packages/ фолдер доторх .pth (path configuration) файлуудын ажиллах зарчимд оршиж байна.

Анхлан .pth файлууд нь Python орчинд нэмэлт замуудыг (sys.path) зааж өгөх зориулалттай байсан бөгөөд файл доторх замуудыг Python эхлэх бүрт уншдаг. Гэвч Python-ийн интерпретатор .pth файл дотор import үгээр эхэлсэн мөрийг харвал түүнийг замын тохиргоо биш, шууд гүйцэтгэх Python код гэж үзэн ажиллуулдаг механизмтай.

Халдагчид энэ боломжийг ашиглан дараах хэлбэрээр хортой код залгадаг:

import sys, os, base64; exec(base64.b64decode('...'))

Энэхүү файл нь хөгжүүлэгчийн эсвэл серверийн virtualenv дээр суусан л бол хөгжүүлэгч тухайн багцыг кодондоо import litellm эсвэл import lightning гэж бичээгүй байсан ч хамаагүй, зүгээр л python script.py эсвэл python --version гэж ажиллуулах төдийд арын фоноор автоматаар гүйцэтгэгддэг. Энэ нь стандарт статик анализаторууд болон linter-үүдэд баригдахгүйгээр нууц мэдээллийг хэдхэн секундэд замаар нь завшиж амждаг.

CI/CD пайплайнаас PyPI хүртэлх халдлагын гинжин хэлхээ

Халдагчдын (тухайлбал TeamPCP зэрэг бүлэглэлүүд) ашиглаж буй стратеги нь шууд хөгжүүлэгчийн компьютер руу халдахаас илүүтэй, нээлттэй эх бүхий хамгаалалтын болон AI хэрэгслүүдийн CI/CD пайплайныг эхэлж барьцаалахад чиглэж байна.

  1. Trivy, KICS зэрэг сканеруудыг онилох: Халдагчид эхлээд CI/CD пайплайнд өргөн ашиглагддаг аюулгүй байдлын шалгуур хэрэгслүүдийн хоосон зайг ашиглан хууль ёсны сангаас PyPI-ийн хэвлэх токенийг (Publishing Token) хулгайлдаг.
  2. PyPI дээр хортой хувилбар шахах: Хулгайлсан токеноор хортой .pth болон далд хэрэгсэл бүхий v1.82.7, v1.82.8 гэх мэт багцуудыг PyPI руу шууд нийтэлдэг.
  3. Multi-stage шинжтэй Payload ажиллуулах: Хортой багц нь суумагц хөгжүүлэгчийн орчны ~/.aws/credentials, SSH keys, Kubernetes secret болон систем дэх орчны хувьсагчуудыг (Environment variables) цуглуулан халдагчийн C2 (Command & Control) сервер рүү илгээдэг.

Зарим тохиолдолд хортой код нь системд systemd сервис үүсгэж, процессыг тогтвортой хадгалах болон олон дахин child process үүсгэн Fork Bomb маягийн гацалт үүсгэх эрсдэлийг дагуулдаг.

AI хөгжүүлэгчид яагаад хамгийн өндөр эрсдэлтэй бай вэ?

AI/ML салбарын хөгжүүлэгчид болон инженерүүд туйлын олон тооны хамааралтай (dependencies) нээлттэй эх сангуудыг ашигладаг. Олон мянган вектор мэдээллийн бааз, LLM wrapper-ууд, RAG фрэймворкууд өдөр бүр шинэчлэгдэж байдаг тул хөгжүүлэгчид ихэвчнэн Version Pinning хийхгүйгээр хамгийн сүүлийн хувилбарыг шууд татаж авдаг.

Мөн AI програм хангамжууд нь клауд дээрх зардлуудыг удирдах, сая сая API хүсэлт шидэх зорилгоор Клауд провайдеруудын (AWS, GCP, Azure) өндөр эрхтэй Service Account түлхүүрүүдийг орчны хувьсагч дээрээ хадгалдаг. Энэ нь халдагчдад ганцхан амжилттай халдлагаар томоохон AI дэд бүтцийг бүхэлд нь хяналтандаа авах боломжийг олгож байна.

Хөгжүүлэгчид болон DevOps инженерүүдэд зориулсан хамгаалалтын практик

Энэхүү нийлүүлэлтийн сүлжээний аюулаас урьдчилан сэргийлэхийн тулд DEVX-ээс дараах техникийн алхмуудыг хэрэгжүүлэхийг зөвлөж байна:

  1. Lockfile болон Hash Verification ашиглах: Нийтээр ашигладаг pip install package командыг шууд ажиллуулахаас зайлсхийж, pip-tools, uv эсвэл Poetry ашиглан бүх хамаарлын хешийг (SHA-256) түгжиж хэвших.

    pip install --require-hashes -r requirements.txt
    
  2. site-packages доторх .pth файлуудад аудит хийх: Өөрийн virtualenv эсвэл Docker контейнер дотор сэжигтэй .pth файлууд байгаа эсэхийг шалгах скрипт ажиллуулах:

    find .venv/lib/python*/site-packages/ -name "*.pth" -exec grep -H "import" {} \;
    
  3. Trusted Publishers (PEP 740) болон Short-lived Tokens нэвтрүүлэх: Өөрийн нээлттэй эхийн багц хөгжүүлж буй бол PyPI дээр статик API Key ашиглахаас татгалзаж, GitHub Actions-той шууд холбогдох Trusted Publishers тохиргоог нэвтрүүлснээр токен алдагдахаас сэргийлнэ.

  4. CI/CD пайплайнд хязгаарлагдмал эрх олгох: Security scanner буюу шалгуур хэрэгслүүд (Trivy, KICS г.м.) ажиллахдаа PyPI хэвлэх эрх бүхий нууц түлхүүрүүдэд хандах эрхгүй байхаар CI/CD-ийн ажлуудаа (Jobs/Steps) тусгаарлах.

  5. pip-audit эсвэл uv audit ашиглах: Төслийнхөө хамаарлуудыг аюулгүй байдлын мэдээллийн баазтай тухай бүр тулгаж байх хэрэгтэй:

    pip-audit
    

AI экосистем асар хурдацтай хөгжихийн хэрээр халдагчдын техник улам бүр нарийсаж байна. Зөвхөн AI моделийн аюулгүй байдал, Prompt Injection-д анхаараад зогсохгүй, түүний доор ажиллаж буй Python программ хангамжийн суурь дэд бүтцийг хамгаалах нь орчин үеийн хөгжүүлэгчийн чухал үүрэг болоод байна.

Эх сурвалж: CSO Online, PyPI Security Team, Datadog Security Labs

Сэтгэгдэл

Ачаалж байна...