Мэдээ

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

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

Хөгжүүлэгч бүрийн өдөр тутмын амьдралд npm install гэсэн ганцхан комманд үйлдлийн систем дээр ямар ч хяналтгүйгээр гуравдагч талын код ажиллуулах эрхийг олгодог. Хэрэв тухайн багц хакердуулсан, эсвэл хортой скрипт агуулсан бол таны .env файл, AWS түлхүүр, CI/CD орчны нууц өгөгдлүүд хормын төдийд халдлага үйлдэгчийн сервер рүү илгээгдэх аюултай.

Нээлттэй эхийн ханган нийлүүлэлтийн сүлжээний (software supply chain) энэхүү цоорхойг хаах зорилгоор GitHub сүүлийн 24 цагийн дотор өөрсдийн цоо шинэ хамгаалалтын систем болох "GitHub Package Firewall"-ийг албан ёсоор public preview горимд танилцууллаа.

Энэхүү шинэ шийдэл нь хөгжүүлэгчийн машин, CI/CD runner болон кодоо бие даан бичиж буй AI агентуудын дундуур proxy маягаар байршиж, багцыг системд татаж суурилуулахаас өмнө хортой эсэхийг нь шүүж блоклох зориулалттай юм.


Яагаад уламжлалт хамгаалалт хангалтгүй байсан бэ?

Сүүлийн жилүүдэд Dependabot, Snyk зэрэг хэрэгслүүд асар их тархсан ч тэдгээрийн үндсэн сул тал нь хэт хожуу ажилладагт оршдог. Хортой сан (malicious package) бүртгэгдээд CVE дугаар автал хамгийн багадаа хэдэн цаг, заримдаа хэдэн өдөр өнгөрдөг.

Гэтэл орчин үеийн нийлүүлэлтийн сүлжээний халдлагуудын 60 гаруй хувь нь багц нийтлэгдсэнээс хойш эхний хэдхэн цагийн дотор идэвхжиж, preinstall эсвэл postinstall скриптүүдээр дамжуулан хор хөнөөлөө тарьдаг. Уламжлалт SAST эсвэл сканерууд кодонд дүн шинжилгээ хийж амжихаас өмнө машинд нэвтрэлт аль хэдийнэ явагдсан байдаг гэсэн үг.

Нэмж дурдахад, өнөөдөр хөгжүүлэлтийн багууд Claude Code, Copilot Workspace, SWE-agent зэрэг бие даасан AI агентуудыг өргөнөөр ашиглаж эхэлсэн. Агентууд даалгавар гүйцэтгэх явцдаа өөрсдөө дур мэдэн шинэ сангууд суулгах, хийсвэрлэсэн (hallucinated) эсвэл баталгаагүй багцууд татаж терминал дээр ажиллуулах эрсдэл эрс нэмэгдээд байна.


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

GitHub Package Firewall нь таны хөгжүүлэлтийн орчин болон нийтийн npm registry хоёрын голд ухаалаг шүүлтүүр хаалт болж ажиллана. Хөгжүүлэгч эсвэл систем npm install lodash гэж дуудахад хүсэлт шууд npm рүү биш, эхлээд GitHub-ийн хамгаалалтын firewall дэд бүтэц рүү очно.

Firewall нь тухайн багцын мета өгөгдөл болон татаж буй файлуудыг дараах 4 түвшний шалгуураар шалгадаг:

1. Түр хөргөх хугацаа (Minimum Package Age)

Хамгийн үр дүнтэй хамгаалалтуудын нэг нь "хөргөх хугацаа" юм. Шинээр нийтлэгдсэн багцын шинэчлэлт бүрт админууд 1-ээс 365 хоногийн хорио тавьж болно (анхдагч утга: 1 өдөр). Жишээ нь: Хакер хэн нэгний алдартай санг хулгайлж аваад 15 минутын өмнө хортой хувилбар цацсан байлаа ч танай баг руу уг шинэчлэлт нэвтрэхгүй, олон нийтийн аюулгүй байдлын шинжээчид илрүүлж хориглох хүртэл автоматаар түдгэлзэнэ.

2. Сэжигтэй суулгалтын скриптүүдийг хаах (Block New Install Scripts)

Олон сангууд өмнөх бүх хувилбар дээрээ цэвэр JS кодтой байснаа гэнэт шинэ хувилбар дээрээ postinstall скрипт нэмж, систем комманд (curl | bash гэх мэт) дуудсан байдаг. Package Firewall нь өмнөх хувилбаруудыг шинэ хувилбартай нь автоматаар харьцуулж, өмнө нь байгаагүй preinstall/postinstall скрипт нэмэгдсэн байвал суулгалтыг хүчээр тасална.

3. Баталгаажуулалтын бууралт (Block Attestation Downgrades)

Хэрэв тухайн багцын өмнөх хувилбарууд SLSA (Supply chain Levels for Software Artifacts) баталгаажуулалттай, гарал үүсэл нь тодорхой build pipeline-аар гарсан байснаа, шинэ хувилбар нь гэнэт ямар ч attestation-гүй энгийн гар аргаар орж ирвэл firewall үүнийг хакердуулалт гэж тооцон шууд блоклоно.

4. GitHub Advisory Database-ийн бодит цагийн шалгалт

Хэрэв багц аль хэдийн бүртгэгдсэн чухал (Critical/High) эмзэг байдалтай бол суурилуулалтыг эхлэхээс нь өмнө зогсооно.


Хөгжүүлэгчийн өдөр тутмын ажилд хэрхэн нөлөөлөх вэ?

Инженерүүдийн зүгээс ажлын урсгалаа өөрчлөх шаардлага бараг байхгүй. Байгууллагын админ GitHub дээрээ бодлогоо тохируулсны дараа та өөрийн локал эсвэл CI орчны .npmrc файлд ердөө ганц л тохиргоо нэмэхэд хангалттай:

registry=https://npm.pkg.github.com/enterprises/YOUR-ENTERPRISE/
//npm.pkg.github.com/:_authToken=ghp_your_read_only_token

Хэрэв таны суулгах гэж буй сан эсвэл хамаарал хортой, эсвэл дүрмийн шаардлага хангаагүй бол npm install комманд ердийн сүлжээний алдаа шиг бус, харин PackageFirewallBlocked: Version blocked due to minimum age rule гэсэн тодорхой шалтгаантайгаар шууд зогсоно.


Цаашдын төлөв: AI агентуудын эриний стандарт

GitHub одоогоор уг үйлчилгээг зөвхөн npm сан дээр, GitHub Enterprise Cloud хэрэглэгчдэд нээгээд байгаа ч цаашид Python-ий PyPI, Go modules, Rust-ийн crates.io зэрэг экосистемүүдийг нэмж өргөтгөхөө мэдэгдээд байна.

Программ хангамжийн ертөнц гараар код бичдэг үеэс AI агентууд автомат PR нээж, хамаарлуудаа өөрсдөө татаж туршдаг загвар луу шилжиж буй энэ цаг үед "Package Firewall" нь сонголт биш, харин дэд бүтцийн хамгийн суурь аюулгүй байдлын давхарга болж хувирах нь тодорхой байна.

Эх сурвалж: GitHub Changelog (2026-10-20), DevOps.com Analysis.

Сэтгэгдэл

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