# GitHub package firewall เปิดทดลอง บล็อกแพ็กเกจ npm อันตรายก่อนถึงเอเจนต์ AI และ CI

> GitHub package firewall เปิด public preview 20 ต.ค. 2026 ให้ลูกค้า Enterprise Cloud บล็อกแพ็กเกจ npm ที่มีมัลแวร์หรือออกใหม่เกินไปก่อนติดตั้งลงเครื่องและ CI

- ประเภท: ข่าว · หมวด: Software
- เผยแพร่: 2026-10-22T12:50:00.000Z · อัปเดต: 2026-10-22T12:50:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/software/github-package-firewall-npm-public-preview/

## สรุปประเด็นสำคัญ

- GitHub เปิด **GitHub package firewall** แบบ public preview เมื่อ **20 ตุลาคม 2026** สำหรับลูกค้า **GitHub Enterprise Cloud** ทุกราย รวมลูกค้าแบบ data residency ใช้ฟรีช่วงทดลอง และจะคิดเงินตามการใช้งานแบบเดียวกับ GitHub Actions เมื่อเป็นรุ่น GA
- ไฟร์วอลล์นี้คั่นกลางระหว่างเครื่องนักพัฒนา เอเจนต์ AI และ CI runner กับ registry สาธารณะ ตรวจทั้งคำขอ metadata และไฟล์แพ็กเกจก่อนปล่อยให้ติดตั้ง ตอนนี้รองรับเฉพาะ **npm**
- นโยบายมี **5 ข้อ** ได้แก่ บล็อกมัลแวร์ที่รู้จัก บล็อกตามระดับช่องโหว่ (ค่าเริ่มต้น Critical only) บล็อกรุ่นที่หาย SLSA attestation บล็อกรุ่นที่เพิ่ม install script ใหม่ และกำหนดอายุขั้นต่ำของแพ็กเกจ **1–365 วัน** (ค่าเริ่มต้น **1 วัน**)
- ผู้ใช้ชี้ npm ไปที่ GitHub package firewall ผ่าน `package-firewall.githubapp.com` ด้วยโทเคนของสมาชิก enterprise ที่ต้องการเพียงสิทธิ์อ่าน repository สาธารณะ และต่อผ่าน JFrog Artifactory ได้แบบทดลอง
- เมื่อแพ็กเกจถูกบล็อก ผลลัพธ์ของ npm หรือ log ของ CI จะมีลิงก์ขอยกเว้น ให้ผู้ดูแล enterprise อนุมัติเป็นรายรุ่นหรือทุกรุ่น เช่น รุ่นแก้ช่องโหว่ที่ถูกกฎอายุขั้นต่ำ **1 วัน** บล็อกไว้

GitHub เปิด **GitHub package firewall** แบบ public preview เมื่อวันที่ 20 ตุลาคม 2026 ให้ลูกค้า GitHub Enterprise Cloud ตั้งนโยบายตรวจแพ็กเกจ npm ก่อนติดตั้ง และบล็อกแพ็กเกจที่มีมัลแวร์ มีช่องโหว่ร้ายแรง หรือเพิ่งออกใหม่เกินไป ตั้งแต่เครื่องนักพัฒนาไปจนถึงเอเจนต์ AI และ CI runner

GitHub ให้เหตุผลว่าช่วงนี้มีมัลแวร์จำนวนมากที่โจมตีตอนติดตั้งแพ็กเกจ และเอเจนต์กับ CI runner เสี่ยงเป็นพิเศษ เพราะติดตั้ง dependency เองเพื่อทำงานหรือ build ให้เสร็จโดยไม่มีคนดูอยู่ ช่วงทดลองใช้ฟรี และจะคิดเงินตามการใช้งานเมื่อเป็นรุ่น GA

## GitHub package firewall ทำงานอย่างไร

ไฟร์วอลล์ตัวนี้อยู่ระหว่างปลายทางที่ติดตั้งแพ็กเกจหรือ registry ภายในขององค์กร กับ registry สาธารณะต้นทาง ผู้ดูแลตั้งนโยบายระดับ enterprise ก่อน จากนั้นตั้งค่า package manager ของเครื่องนักพัฒนา เอเจนต์ และ CI ให้ส่งคำขอผ่านไฟร์วอลล์แทนการต่อ registry ตรง ทั้งคำขอรายการแพ็กเกจ (metadata) และการดาวน์โหลดไฟล์จะถูกตรวจตามนโยบาย GitHub เรียกบทบาทนี้ว่าด่านตรวจนโยบายตอนติดตั้ง (install-time policy gate)


เอกสารของ GitHub ระบุนโยบาย 5 ข้อและค่าเริ่มต้นดังนี้ (ภาพบนสุดของบทความคือหน้าตั้งค่าจริงจากประกาศของ GitHub ซึ่งตัวอย่างตั้งอายุขั้นต่ำไว้ 3 วัน)

| นโยบาย | ทำอะไร | ค่าเริ่มต้น |
| --- | --- | --- |
| Block known malware | บล็อกแพ็กเกจที่ GitHub Advisory Database มีประกาศมัลแวร์ | เปิด |
| Block vulnerability advisories | บล็อกรุ่นที่มีช่องโหว่ตามระดับที่เลือก: Critical only, High or higher, Medium or higher หรือ Any severity | Critical only |
| Block attestation downgrades | บล็อกรุ่นที่ไม่มี SLSA attestation ทั้งที่รุ่นก่อนหน้าเคยมี ซึ่งอาจบอกว่ากระบวนการเผยแพร่ถูกเจาะ | เปิด |
| Block newly-introduced install scripts | บล็อกรุ่นที่เพิ่งเพิ่มสคริปต์ที่รันตอนติดตั้ง เช่น preinstall หรือ postinstall | เปิด |
| Minimum package age | ห้ามติดตั้งรุ่นที่เผยแพร่ไม่ถึงจำนวนวันที่กำหนด 1–365 วัน (ตั้ง 0 เพื่อปิด) ให้เวลาชุมชนค้นพบปัญหาก่อน | 1 วัน |

ข้อที่น่าสนใจที่สุดคือสองข้อหลัง สคริปต์ติดตั้งรันคำสั่งใดก็ได้บนเครื่องและเป็นช่องทางขโมยข้อมูลรับรองที่พบบ่อย ส่วนกฎอายุขั้นต่ำ (cooldown) ให้เวลาชุมชนค้นพบรุ่นอันตรายก่อนที่ CI ซึ่งติดตั้งรุ่นล่าสุดอัตโนมัติจะดึงไปใช้

## ตั้งค่า GitHub package firewall และขอยกเว้นอย่างไร

ผู้ดูแล enterprise และ enterprise security manager ตั้งนโยบายได้ที่หน้า Policies ของ enterprise เมนู Package firewall และมอบสิทธิ์ให้ทีมอื่นผ่าน custom role ที่มีสิทธิ์ "Edit enterprise-level package firewall policy"

ฝั่งปลายทางใช้ไฟล์ `.npmrc` ระดับผู้ใช้ ชี้ `registry` ไปที่ `https://package-firewall.githubapp.com/npm/enterprises/<ชื่อ enterprise>` พร้อมโทเคนของผู้ใช้หรือบอตที่เป็นสมาชิก enterprise โทเคนต้องการเพียงสิทธิ์อ่าน repository สาธารณะ และเอกสารเตือนให้เก็บไว้ใน secret ของ CI ห้าม commit ลง repository องค์กรที่ใช้ JFrog Artifactory ตั้งไฟร์วอลล์เป็น remote repository แล้วรวมใน virtual repository ได้ (ยังเป็นการรองรับแบบทดลอง) โดยต้องตัด remote ที่ดึงจาก npm สาธารณะตรงออก ไม่อย่างนั้นจะมีทางเลี่ยงไฟร์วอลล์

![ตัวอย่างจาก GitHub เมื่อสั่ง npm i crypto-js@3.1.2 แล้วไฟร์วอลล์บล็อก 12 รุ่นตามนโยบาย พร้อมลิงก์ขอยกเว้น](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/github-package-firewall-npm-public-preview/swb-dev-github-package-firewall-npm-blocked.webp?v=25007cee) _(ภาพ: GitHub)_

เมื่อแพ็กเกจถูกบล็อก ข้อความของ npm หรือ log ของ CI จะมี URL สำหรับขอยกเว้น ผู้ใช้กรอก repository รุ่น และเหตุผล แล้วผู้ดูแลอนุมัติจากเมนู Package firewall bypass ใต้ Security and quality ของ enterprise จะอนุญาตเฉพาะรุ่นนั้นหรือทุกรุ่นของแพ็กเกจก็ได้ เอกสารยกตัวอย่างว่ารุ่นที่แก้ช่องโหว่อาจถูกกฎอายุขั้นต่ำบล็อก จึงต้องมีทางขอยกเว้นที่เร็ว

![หน้าคำขอยกเว้น Request bypass to Package Firewall บน GitHub ที่แสดงว่าส่งคำขอแล้วและรอผู้ดูแลอนุมัติ](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/github-package-firewall-npm-public-preview/swb-dev-github-package-firewall-bypass-request.webp?v=77ea4fc2) _(ภาพ: GitHub)_

## ทำไม GitHub package firewall จึงมาตอนนี้

ประกาศของ GitHub ออกในสัปดาห์ที่มีเหตุโจมตีห่วงโซ่ซอฟต์แวร์ต่อเนื่อง เช่น [LiteLLM 1.107.0 บน PyPI ที่ถูกฝังมัลแวร์](/ai/litellm-1-107-0-compromised-pypi-infostealer/) ซึ่งเป็นตัวอย่างที่ดีของข้อจำกัดด้วย เพราะไฟร์วอลล์รุ่นแรกคุมได้เฉพาะ npm ยังไม่ครอบคลุม PyPI

แนวทางนี้คล้ายกับ [Dependency Firewall ที่ GitLab เปิดรุ่น early access เมื่อต้นเดือน](/software/gitlab-transcend-dependency-firewall-artifact-central/) แพลตฟอร์มโค้ดรายใหญ่ทั้งสองรายกำลังย้ายการตรวจ dependency จากการแจ้งเตือนหลังติดตั้งไปเป็นการกันไว้ก่อนติดตั้ง GitHub ชูการใช้กับปลายทางทุกประเภท ทั้งเครื่องนักพัฒนา CI และเอเจนต์เขียนโค้ดที่ติดตั้งแพ็กเกจเองระหว่างทำงาน

## ผลต่อองค์กรไทยและทีมพัฒนา

1. **องค์กรที่ใช้ GitHub Enterprise Cloud และ npm เริ่มทดลอง GitHub package firewall ได้ทันทีโดยไม่มีค่าใช้จ่าย** เริ่มจาก CI runner และสภาพแวดล้อมของเอเจนต์ AI ก่อน เพราะเป็นจุดที่ติดตั้งแพ็กเกจโดยไม่มีคนตรวจ
2. **เลือกค่าอายุขั้นต่ำให้เหมาะกับทีม** ค่าเริ่มต้น 1 วันกันรุ่นอันตรายที่ถูกถอดเร็วได้ระดับหนึ่ง ทีมที่ต้องการความปลอดภัยสูงอาจตั้งหลายวัน แต่ต้องมีขั้นตอนอนุมัติข้อยกเว้นที่เร็วสำหรับรุ่นแก้ช่องโหว่
3. **ปิดทางเลี่ยง** ถ้าใช้ Artifactory หรือ registry ภายใน ให้ตัด remote ที่ดึงจาก npm สาธารณะตรงออก และตรวจว่าไม่มี pipeline ใดตั้ง `registry` เป็นค่าเดิม
4. **เตรียมงบหลังช่วงทดลอง** GitHub จะคิดเงินค่า GitHub package firewallตามการใช้งานเมื่อเป็นรุ่น GA แต่ยังไม่ประกาศอัตรา ฝ่ายไอทีควรเก็บสถิติจำนวนการติดตั้งในช่วงทดลองไว้ประเมิน
5. **ภาษาอื่นยังต้องใช้มาตรการเดิม** ทีม Python, Java และ .NET ยังไม่ได้รับความคุ้มครองนี้ และประกาศของ GitHub ระบุเฉพาะลูกค้า Enterprise Cloud ไม่ได้รวม GitHub Enterprise Server ที่องค์กรติดตั้งเอง ติดตามข่าวเครื่องมือนักพัฒนาอื่นได้ที่[หมวดการพัฒนาซอฟต์แวร์](/software/development/)

## คำถามที่พบบ่อย

### GitHub package firewall คืออะไร?

GitHub package firewall คือบริการที่คั่นกลางระหว่างเครื่องนักพัฒนา เอเจนต์ AI และ CI runner กับ registry ของแพ็กเกจสาธารณะ ตรวจคำขอและไฟล์แพ็กเกจตามนโยบายที่ enterprise ตั้งไว้ เช่น มีมัลแวร์ มีช่องโหว่ระดับร้ายแรง หรือเพิ่งออกไม่ถึงจำนวนวันที่กำหนด แล้วบล็อกก่อนติดตั้ง GitHub เปิดเป็น public preview เมื่อ 20 ตุลาคม 2026

### GitHub package firewall ใช้ได้กับใครและคิดเงินอย่างไร?

GitHub package firewall ใช้ได้กับลูกค้า GitHub Enterprise Cloud ทุกราย รวมลูกค้าแบบ data residency ช่วง public preview ใช้ฟรี GitHub ระบุว่าเมื่อเป็นรุ่น GA จะคิดเงินตามปริมาณการใช้งานคล้ายการคิดเงินของ GitHub Actions แต่ยังไม่ได้ประกาศอัตรา

### GitHub package firewall รองรับ PyPI หรือ Maven ไหม?

ยังไม่รองรับ ตอนเปิด public preview GitHub package firewall รองรับเฉพาะแพ็กเกจ npm และ GitHub บอกว่าจะเพิ่มความสามารถตามความต้องการของลูกค้า ทีมที่ใช้ Python, Java หรือ .NET ยังต้องใช้เครื่องมือหรือ registry ภายในแบบอื่นคุมการติดตั้งไปก่อน

### ถ้า GitHub package firewall บล็อกแพ็กเกจที่ต้องใช้จะทำอย่างไร?

ข้อความของ npm หรือ log ของ CI จะมี URL สำหรับขอยกเว้น ผู้ใช้กรอกเหตุผลแล้วส่งคำขอ จากนั้นผู้ดูแล enterprise หรือ enterprise security manager ตรวจในเมนู Package firewall bypass และอนุมัติเฉพาะรุ่นนั้นหรือทุกรุ่นของแพ็กเกจได้ เช่น กรณีรุ่นที่แก้ช่องโหว่ถูกกฎอายุขั้นต่ำบล็อกไว้


## แหล่งอ้างอิง

- [GitHub package firewall in public preview](https://github.blog/changelog/2026-10-20-github-package-firewall-in-public-preview) — GitHub Changelog
- [Protecting endpoints with GitHub package firewall](https://docs.github.com/en/enterprise-cloud@latest/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/protecting-endpoints-with-package-firewall) — GitHub Docs
