Өнімдер
TRAIODerScannerSonatypeHashiCorp VaultDPA FASTBurp DASTBurp ProfessionalTRIDS-тен DevSecOps қызметтері
Қызметтер
DevSecOps енгізуБҚ қорғалуын талдауAppSec және DevSecOps оқыту
Компания
Компания туралыМансап және тағылымдамаAppSecFestSonatype User GroupСаясатБлогБайланыс
Тіл
RUKZENUZ
+7 777 734 7070 Кеңес алу

ПО жеткізу тізбегіне шабуылдар: npm және PyPI зиянды пакеттері және одан қалай қорғануға болады

22.10.2026 7 мин оқу AST Cyber Lab

ПО жеткізу тізбегіне шабуыл — бұл сіздің жүйеңіздің емес, оған орнататын нәрселердің: ашық кітапханалардың, құрастыру скрипттерінің, әзірлеушілердің есептік жазбаларының бұзылуы. Қорғаныс үш қағидатқа құрылады: қосымшаларыңыздың құрамын білу (SBOM), күдікті пакеттерді құрастыруға жібермеу (репозиторий деңгейіндегі саясат пен карантин) және әзірлеушілер мен CI/CD құпияларын сақтау.

Жеткізу тізбегіне шабуыл дегеніміз не

Заманауи қосымша көбіне бөтен кодтан тұрады. Әзірлеуші бір тәуелділікті қосады, сонымен бірге ондаған транзитивті тәуелділікті алады. Олардың әрқайсысы — әлеуетті кіру нүктесі: егер шабуылдаушы пакетті ауыстырса немесе оған код енгізсе, зиянды бөлік сізге тәуелділіктерді қарапайым орнату кезінде автоматты түрде түседі.

Негізгі сценарийлер:

  • Нөлден жасалған зиянды пакет. Шабуылдаушы тартымды атауы бар пакетті жариялайды, оны біреу орнатады.
  • Тайпсквоттинг және атауларды алмастыру. Пакеттің аты танымал пакетке өте ұқсас, есеп қателесуге немесе зейінсіздікке құрылған. Туыстас тәсіл — есімдер кеңістігін алмастыру (namespace confusion).
  • Мейнтейнер аккаунтын басып алу. Нағыз танымал пакет заңды автордың атынан зиянды нұсқа алады.
  • Сенім арқылы енгізу. Шабуылдаушы жобаға жылдар бойы қатысады, мейнтейнер құқықтарын алады және бэкдор қосады.
  • Тәуелділік-құрт. Зиянды код әзірлеушінің токендерін ұрлап, басқа пакеттердің жұқтырылған нұсқаларын өзі жариялайды.

Мәселенің ауқымы

Sonatype-тың «2026 State of the Software Supply Chain» есебіне сәйкес, 2025 жылы 454 648 жаңа зиянды пакет тіркелген. Сол жылы әзірлеушілер Maven Central, PyPI, npm және NuGet-тен компоненттерді 9,8 трлн рет жүктеген. Sonatype қауіптердің спамнан «тұрақты, индустриализацияланған кампанияларға» ауысқанын атап өтеді, олардың арасында мемлекеттер қолдайтындары да бар. Зиянды пакеттер көбіне көпсатылы шабуылдың алғашқы қадамы болып табылады: құпияларды ұрлау, жүктегіштер, бэкдорлар.

Есепте жасыру тәсілдері де тіркелген: тайпсквоттинг, есімдер кеңістігінің шатасуы, құрастыру құралдарын имитациялау, сондай-ақ зиянды жүктемені AI модельдеріне, контейнер образдарына және көмекші бинарлық файлдарға орналастыру. Жеке қауіп — AI-көмекшілер: олар пакеттердің шығу тегін тексермей, оларды орнатуды ұсына алады.

Нақты оқиғалар

ua-parser-js (2021 жылғы қазан): аккаунтты басып алу

2021 жылғы 22 қазанда шабуылдаушылар user-agent жолы бойынша браузер мен ОЖ-ны анықтайтын танымал ua-parser-js npm-кітапханасы әзірлеушісінің есептік жазбасына қол жеткізіп, үш зиянды нұсқа жариялады: 0.7.29, 0.8.0 және 1.0.0. CERT-EU деректері бойынша, preinstall скрипті операциялық жүйені тексерген. Linux-та XMRig майнері жүктелген, Windows-та — майнер және FTP-клиенттерден, поштадан, мессенджерлерден және браузерлерден парольдерді ұрлауға арналған DLL. Қызықты нәрсе: Linux-та зиянды код Ресейде, Украинада, Беларусьте және Қазақстанда іске қосылмаған. Түзетілген нұсқалар — 0.7.30, 0.8.1 және 1.0.1.

Сабақ: зиянды код орнату кезеңінде, қосымша іске қосылғанға дейін-ақ орындалды, ал пакет заңды және танымал болды.

XZ Utils (2024 жылғы наурыз): сенім арқылы бэкдор

2024 жылғы наурызда әзірлеуші Андрес Фройнд Debian сынақ нұсқасында SSH қосылымдарының баяулауын талдай отырып, xz/liblzma қысу кітапханасынан бэкдор тапты. Осалдыққа CVE-2024-3094 идентификаторы және CVSS 10.0 ең жоғары бағасы берілді; 5.6.0 және 5.6.1 нұсқалары зардап шекті. Жария ашылуы — 2024 жылғы 29 наурыз.

Бұл жағдайдың ерекшелігі — ұзақ дайындық. Wikipedia сипаттамасы бойынша, «Jia Tan» деген есіммен жүрген пайдаланушы 2021 жылдан бастап екі жылдан астам кампания жүргізді, ал жалған аккаунттар бастапқы мейнтейнер құқықтарды бергенге дейін қысым жасады. Зиянды бөлік релиз мұрағаттарында болды, бірақ Git репозиторийінің өзінде болмады, сондықтан GitHub-тағы бастапқы кодты қарау оны көрсетпеді. Кампанияны кездейсоқ байқады.

Сабақ: код ревью мен репозиторийді сканерлеу жеткіліксіз; құрастыруға нақты түсетін нәрсені тексеру және релиз артефактілерін бастапқы кодпен салыстыру қажет.

Shai-Hulud (2025 жылғы қыркүйек): npm-дегі құрт

2025 жылғы 23 қыркүйекте АҚШ-тың CISA агенттігі npm экожүйесінің кең ауқымды бұзылуы туралы хабарландыру шығарды. Өзін-өзі көбейтетін Shai-Hulud құрты 500-ден астам пакетті жұқтырды. Әзірлеуші ортасына түскен соң, ол есептік деректерді, соның ішінде GitHub токендерін және AWS, Google Cloud және Azure API кілттерін іздеді, оларды шабуылдаушылар серверіне жіберіп, жария репозиторийге жариялады. Содан кейін құрт npm-де әзірлеушінің атынан аутентификацияланып, оның басқа пакеттерінің жұқтырылған нұсқаларын жариялады. Осылай ол әрі қарай таралды.

CISA ұсынымдары: құлыптау файлдарын (package-lock.json, yarn.lock) зардап шеккен пакеттерге, соның ішінде кірістірілгендеріне тексеру; артефакт репозиторийлерінен кэштелген көшірмелерді табу; 2025 жылғы 16 қыркүйекке дейін шыққан нұсқаларды бекіту; әзірлеушілердің барлық есептік деректерін ауыстыру; GitHub және npm үшін фишингке төзімді MFA қосу; шығыс қосылымдарды шектеу.

Сабақ: әзірлеушінің ағып кеткен токені таралу арнасына айналады. Мұнда құпиялар мен жеткізу тізбегі — бір мәселе (қараңыз: құпияларды басқару).

Бұл Орталық Азиядағы компанияларға неге қатысты

Өңірдің банктері мен қаржы компаниялары қосымшаларды бүкіл әлем сияқты сол npm, PyPI, Maven және NuGet негізінде әзірлейді. Өңірлік география өзі қорғамайды: CERT-EU-дің ua-parser-js сипаттамасында Қазақстан майнердің Linux-нұсқасы іске қосылмаған елдердің арасында аталған, ал парольдерді ұрлайтын Windows тармағы үшін мұндай ерекшелік көрсетілмеген. Оның үстіне әзірлеушілер жиі интернетке прокси арқылы шығатын жабық контурлардан жұмыс істейді, онда пакеттерді тікелей орнатудың бір бақыланбайтын арнасы қорғанысты нөлге теңейді.

Қалай қорғануға болады: практикалық шаралар

1. Не барын біліңіз

Түгендеусіз «біз зардап шектік пе?» сұрағына тез жауап беру мүмкін емес. SBOM-ды әр құрастыру кезінде қалыптастырып, релизбен бірге сақтаңыз. Егжей-тегжейі — «SBOM деген не» мақаласында. Sonatype Lifecycle сияқты SCA құралдары осал және зиянды компоненттерді табады және олардың қай қосымшаларда қолданылатынын көрсетеді.

2. Интернет пен құрастыру арасына шлюз қойыңыз

Барлық тәуелділік ішкі артефакт менеджері арқылы өтуі керек, ал құрастыру агенттерінің npmjs.com мен PyPI-ге тікелей қолжетімділігін жабу қажет. Бұл бақылау нүктесін береді. Sonatype Repository Firewall зиянды және осал пакеттерді жүктеу сәтінде бұғаттайды, күдікті компоненттерді карантинге орналастырады және қауіпсіз деп танылғандарды автоматты түрде босатады. Саясатты пакеттің жасы, тәуекел деңгейі және лицензиясы бойынша құруға болады. Өнім Nexus Repository үшін жобаланған, ал басқа репозиторий-менеджерлер үшін Sonatype-та Firewall Pro бар. Таңдау туралы толығырақ — Nexus Repository vs Artifactory.

3. Нұсқаларды бекітіп, жаңартуларды тексеріңіз

  • Lock-файлдарды пайдаланыңыз және диапазондарды емес, нұсқаларды бекітіңіз.
  • «Жаңалық карантинін» енгізіңіз: жақында ғана жарияланған нұсқаны тексерілгенге дейін құрастыруға қабылдамаңыз. Көптеген шабуыл алғашқы сағаттарда немесе күндерде анықталады.
  • Орнату скрипттеріндегі (preinstall, postinstall) күдікті өзгерістерді қадағалаңыз.

4. Есептік жазбалар мен құпияларды қорғаңыз

  • GitHub, npm және PyPI-де фишингке төзімді MFA қосыңыз.
  • Токендерді әзірлеушілердің орта айнымалыларында және репозиторийлерде ашық түрде сақтамаңыз. Құпиялар сақтағышын және қысқа мерзімді есептік деректерді пайдаланыңыз.
  • Жаппай ротация рәсімін дайындаңыз: Shai-Hulud сияқты оқиғадан кейін бәрін ауыстыруға тура келеді.

5. Өз кодыңызды және құрастыруды тексеріңіз

Бэкдор мердігеріңіз арқылы да, ішкі пакет арқылы да түсуі мүмкін. SAST және бинарлық талдау өз кодыңыздағы және үшінші тарап құрастырулардағы жарияланбаған мүмкіндіктерді табуға көмектеседі. Құралдар кластары туралы — SAST, DAST, SCA және MAST мақаласында.

6. Әрекет етуге дайындалыңыз

Алдын ала анықтаңыз: пакетті бұғаттау туралы шешімді кім қабылдайды, компоненті бар барлық қосымшаны қаншалықты тез табуға болады, жұқтырылған нұсқаны қалай ауыстыруға болады және зиянды кодтың құрастыру серверлерінде және әзірлеушілер машиналарында орындалмағанын қалай тексеруге болады.

Неден бастау керек

  1. Құрастырудың сыртқы реестрлерге тікелей қолжетімділігін жауып, оны артефакт менеджері арқылы бағыттаңыз.
  2. Сыни қосымшалар үшін құрамды сканерлеуді және SBOM қалыптастыруды қосыңыз.
  3. Зиянды пакеттерді бұғаттау және жаңа нұсқаларды карантинге салу саясатын баптаңыз.
  4. Токендерге ревизия жүргізіп, әзірлеушілер үшін MFA қосыңыз.
  5. «Зиянды пакет табылды» сценарийін жаттықтырыңыз.

Жиі қойылатын сұрақтар

Зиянды пакет осал пакеттен немен ерекшеленеді?
Осал пакетте пайдалануға болатын қате бар (мысалы, Log4Shell). Зиянды пакет шабуыл жасау үшін жасалған немесе өзгертілген: орнату кезінде кодты орындау, парольдерді ұрлау, бэкдор. Біріншілеріне жаңарту қажет, екіншілеріне — дереу жою және құпияларды ротациялау.
CI-да тәуелділіктерді жай сканерлеу жеткілікті ме?
Әрдайым емес. Зиянды орнату скрипті сканерлеу нәтижелері әзірлеушіге жеткенге дейін орындалуы мүмкін. Сондықтан артефакттер репозиторийінің кіреберісіндегі тексеру (бұғаттау және карантин) CI-дағы сканерлеуді толықтырады.
Жұқтырылған пакетті орнатып алсақ, не істеу керек?
Зардап шеккен машиналар мен құрастыру агенттерін оқшаулау, пакетті жою, ол түсуі мүмкін барлық қосымшалар мен образдарды табу және осы машиналардан қолжетімді барлық есептік деректер мен токендерді ауыстыру керек. Хабарландыру жариялаушысының, мысалы, CISA немесе CERT-EU ұсынымдарын басшылыққа алыңыз.
SBOM шабуылдың алдын алуға көмектесе ме?
Өзі көмектеспейді, бірақ әрекет етуді жылдамдатады: зардап шеккен компоненттің қайда қолданылатыны бірнеше минутта көрінеді. Алдын алуға SBOM, пакеттерді қабылдау саясаты және құпияларды қорғау үйлесімі көмектеседі.

Құрастыруларыңызға не түсетінін тексеріп, зиянды пакеттердің кіруін жапқыңыз келе ме? AST Cyber Lab Қазақстанда және Орталық Азияда Sonatype дистрибьюторы ретінде сіздің жобаларыңызда Repository Firewall және Lifecycle пилотын өткізеді.

Sonatype пилотын сұрау

Дереккөздер

Тақырып бойынша шешімдер
Кеңес

Қосымшаларыңызды әзірлеудің барлық кезеңінде қорғаймыз.

Міндетіңізді айтыңыз — AST Cyber Lab сарапшылары шешім таңдап, демо өткізіп, енгізуге көмектеседі.