Мэдээ

AI агент ба npm install-ийн дундуур хаалт босов: GitHub хортой хамаарлыг таслан зогсоох "Package Firewall"-ийг танилцууллаа

TOGTOKHTOGTOKH·2026 оны аравдугаар сарын 25·1 үзсэн·
AI агент ба npm install-ийн дундуур хаалт босов: GitHub хортой хамаарлыг таслан зогсоох "Package Firewall"-ийг танилцууллаа

Хөгжүүлэгч бүрийн өдөр тутмын дадал болсон npm install тушаал сүүлийн жилүүдэд хамгийн эрсдэлтэй үйлдлүүдийн нэг болж хувирлаа. Ялангуяа Cursor, Claude Code эсвэл автомат CI/CD runner-ууд өөрсдөө код бичиж, шаардлагатай сангуудыг хүний хяналтгүйгээр татаж суулгадаг болсон өнөө үед нийлүүлэлтийн сүлжээний (supply chain) халдлага урьд өмнөхөөсөө ч хурдацтай нэмэгдэж байна.

Энэхүү ноцтой асуудлыг шийдвэрлэхийн тулд GitHub компани нээлттэй эхийн багцуудыг төхөөрөмжид татагдахаас нь өмнө шүүж блоклодог GitHub Package Firewall хэмээх шинэ бүтээгдэхүүнээ public preview хэлбэрээр танилцууллаа.

Терминал дахь итгэлцлийн хямрал: npm install яагаад аюултай болов?

Олон арван мянган хамаарал (transitive dependencies) бүхий орчин үеийн JavaScript/TypeScript төслүүдэд нэг л хортой package бүхэл бүтэн дэд бүтцийг эвдэх чадалтай. Тэр дундаа package-ийн preinstall болон postinstall зэрэг lifecycle скриптүүд нь package татагдаж дуусмагц таны үйлдлийн систем дээр shell тушаал дур мэдэн ажиллуулах эрхтэй байдаг.

Халдагчид maintainer-ийн бүртгэлийг хакердах, typo-squatting (түгээмэл сангийн нэрийг нэг үсгээр зөрүүлж андууруулах) хийх замаар хэдхэн минутын дотор хортой шинэчлэлт цацдаг. Уг шинэчлэлт нь хөгжүүлэгчийн машин дээрх .env файлууд, AWS credentials, SSH private key-үүдийг хулгайлан гаднын сервер рүү илгээж амждаг билээ.

Одоогийн нөхцөлд AI кодинг агентууд алдаа засах явцдаа өөрсдөө таамаглан (hallucination) байхгүй эсвэл эрсдэлтэй багцыг дуудаж суулгах эрсдэл бий болсон нь галыг улам өдөөсөн юм.

Package Firewall хэрхэн ажилладаг вэ?

Package Firewall нь хөгжүүлэгчийн төхөөрөмж, CI орчин болон олон нийтийн npm registry (npmjs.org)-ийн хооронд ухаалаг proxy хэлбэрээр байрлана.

Хөгжүүлэгч эсвэл CI систем өөрийн .npmrc тохиргоондоо registry-ийн хаягийг байгууллагын Package Firewall endpoint руу чиглүүлснээр хангалттай. Аливаа багцын мета өгөгдлийн хүсэлт болон .tgz файлыг татах бүрд уг firewall дараах дөрвөн түвшний нарийн бодлогын шалгуурыг бодит цаг хугацаанд шалгана. Хэрэв аль нэг шалгуурт бүдэрвэл package хөгжүүлэгчийн төхөөрөмжид хүрэхээсээ өмнө сүлжээний түвшинд таслагдана.

Хортой кодоос хамгаалах үндсэн 4 шүүлтүүр

GitHub-ийн зарласнаар уг систем нь уламжлалт vulnerability сканеруудаас ялгаатай нь хохирол учрахаас урьдчилан сэргийлэх зарчим дээр суурилжээ:

  1. Cooldown Period (Багцын насжилтын хязгаар): Статистикаас харахад ихэнх хортой npm багцууд цацагдсанаас хойш хэдхэн цагийн дотор илэрч, registry-ээс устгагддаг. Package Firewall нь админуудад шинээр нийтлэгдсэн package-д хөргөх хугацаа (жишээ нь, 24 цагаас 7 хоног) зааж өгөх боломж олгоно. Ингэснээр яг одоо нийтлэгдсэн цоо шинэ хувилбар аюулгүй нь батлагдах хүртэл танай систем рүү суулгагдахгүй.

  2. Block Newly-Introduced Install Scripts: Өмнө нь суулгалтын скрипт ашигладаггүй байсан тогтвортой package гэнэт шинэ хувилбар дээрээ preinstall эсвэл postinstall скрипт нэмж оруулж ирвэл уг firewall шууд блоклоно. Энэ нь бүртгэлээ хакердуулсан хөгжүүлэгчийн нэрээр нууцаар хортой код шахдаг хамгийн түгээмэл арга замыг шууд хааж байна.

  3. Block Attestation Downgrades (SLSA баталгаажуулалт): Хэрэв тухайн багц өмнө нь баталгаат CI орчинд угсрагдсан SLSA artifact attestation-тай байснаа гэнэт шинэ хувилбар дээрээ уг баталгаажуулалтгүй цацагдвал эрсдэлтэйд тооцогдоно. Энэ нь maintainer-ийн нийтлэх орчин дундуураа тасарсан эсвэл гуравдагч этгээд дундуур нь орсон байж болзошгүйг илтгэнэ.

  4. GitHub Advisory Database-ийн шалгалт: Бүх хүсэлтийг GitHub-ийн аюулгүй байдлын мэдээллийн сантай бодит цагт тулган, аль хэдийн CVE оноогдсон эсвэл critical цоорхойтой хувилбаруудыг суулгахыг хориглоно.

AI агентууд ба CI/CD автоматжуулалтын эрин үе

Яагаад GitHub энэхүү хамгаалалтыг яг одоо танилцуулах болов? Хариулт нь AI агентуудын тэсрэлт юм.

Өмнө нь хөгжүүлэгч ямар санг npm i хийж байгаагаа өөрөө шийдэж, анхаарал тавьдаг байсан. Харин одоо terminal дээр ажиллаж буй автономит агентууд дураараа сан нэмж, build-ийг бүтэн босгохын тулд автомат горимоор командуудыг цувруулан ажиллуулдаг. Хэрэв агентад тодорхой сүлжээний болон багцын хязгаарлалт тавьж өгөхгүй бол эвдэрсэн эсвэл хордсон багцыг системд өөрөө суулгаж, serverless token болон API key-үүдийг гадагш алдах эрсдэл бий болсон.

Түүнчлэн GitHub Actions зэрэг CI runner дээр npm ci ажиллах мөчид орчны бүх өндөр эрхтэй нууц үгнүүд санах ойд ачаалагдсан байдаг тул, энэ цэг дээр сүлжээний хаалт (firewall) тавьж өгсөн нь нийлүүлэлтийн сүлжээний хамгаалалтад чухал ахиц дэвшил авчирч байна.

Хөгжүүлэгчид юуг анхаарах вэ?

  • Одоогоор уг функц нь GitHub Enterprise Cloud хэрэглэгчдэд нээлттэй бөгөөд зөвхөн npm экосистемийг дэмжиж байна (цаашид PyPI зэрэг бусад реестрүүдийг нэмэх төлөвтэй).
  • Public preview хугацаанд үнэгүй бөгөөд албан ёсоор зах зээлд гарахад GitHub Actions-той ижил хэрэглээнд суурилсан үнийн загвартай болно.
  • Хэрэв танай баг enterprise шийдэл ашигладаггүй бол өөрсдийн CI болон хөгжүүлэлтийн скриптүүд дээр npm install --ignore-scripts тугийг ашиглаж дадах, эсвэл нээлттэй эхийн proxy шүүлтүүрүүдийг туршиж үзэхийг мэргэжилтнүүд зөвлөж байна.

Нийлүүлэлтийн сүлжээний аюулгүй байдал зөвхөн "код бичиж дууссаны дараа сканердах" биш, харин код орж ирэх хаалган дээр "шүүлтүүр тавих" чиглэл рүү бүрэн шилжиж байгааг энэхүү шинэчлэл баталлаа.

Эх сурвалж: GitHub Changelog & GitHub Blog, DevOps.com

Сэтгэгдэл

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