GitHub menempatkan firewall sebelum pemasangan paket
Pratinjau package firewall baru GitHub memindahkan keputusan keamanan ke saat agen atau pengembang mengambil dependensi. Manfaatnya bergantung pada kebijakan, cakupan, dan proses pengecualian yang dapat dijalankan.

Logotipe GitHub melalui Wikimedia Commons, yang mengklasifikasikannya sebagai PD-textlogo. Digunakan untuk mengidentifikasi perusahaan; ini bukan tangkapan layar package firewall. Ukuran diubah secara proporsional dengan ruang tepi netral; tidak menyiratkan dukungan.
Agen pemrograman mengusulkan jalan pintas yang berguna: pasang sebuah paket, tambahkan beberapa baris, lalu jalankan pengujian. Perubahan kode yang terlihat mungkin cukup kecil untuk ditinjau dalam satu menit. Namun, dependensi membawa keputusan terpisah ke dalam sesi. Seseorang memilih artefak eksternal yang akan masuk ke lingkungan pengembang atau proses build. Meninjau fungsi yang dihasilkan belum sepenuhnya menjawab pertanyaan kedua itu.
Pada 20 Oktober, GitHub memperkenalkan package firewall dalam pratinjau publik bagi pelanggan Enterprise Cloud, termasuk yang memakai residensi data. Endpoint yang dikonfigurasi mengarahkan permintaan paket melalui pemeriksaan kebijakan sebelum mengambilnya dari registri hulu. Ekosistem awalnya adalah npm. Fitur keamanan komersial ini khususnya relevan bagi pengembangan berbantuan AI: ketika agen mempermudah penambahan dependensi, saat pemasangan menjadi titik yang semakin penting untuk menerapkan aturan bersama. Pengumuman GitHub.
Pandangan kami: memajukan waktu pengambilan keputusan dapat berguna, asalkan batasnya nyata dan pengecualiannya dapat dipakai. Firewall ini perlu dinilai sebagai lapisan kebijakan dalam alur pengembangan. Paket yang diizinkan tidak sama dengan paket yang isinya telah terbukti tidak berbahaya, dan paket yang diblokir bukan dengan sendirinya vonis terhadap pengelolanya.
Produk baru ini berada sebelum alur GitHub yang sudah dikenal
GitHub merupakan platform penyimpanan kode dan kolaborasi, dengan pull request, alur Actions otomatis, serta alat keamanan di sekitar proses pengembangan. Firewall baru ini berfokus pada apa yang terjadi ketika workstation, runner, atau agen pemrograman meminta sebuah paket. Titik tersebut berbeda dari peninjauan pull request atau pengusulan perbaikan kode yang sudah berada di repositori.
Perbedaan ini mudah terlewat di tengah banyaknya pengumuman keamanan. Agen perbaikan kode dapat membantu mengubah kode aplikasi yang rentan. Package firewall dapat menerapkan kebijakan pada permintaan dependensi sebelum artefaknya sampai ke endpoint yang dikonfigurasi. Keduanya menangani bagian berbeda dari proses pengembangan yang sama, sehingga keberhasilan di satu bagian tidak menghapus alasan untuk memeriksa bagian lainnya.
Bagi tim yang memakai agen pemrograman, daya tarik praktisnya adalah konsistensi. Pengembang manusia mungkin ingat bahwa organisasi menghindari dependensi yang baru dirilis selama jangka waktu singkat. Sesi agen yang baru belum tentu membawa kebiasaan itu. Aturan yang ditegakkan pada jalur permintaan dapat berlaku tanpa bergantung pada pengulangan kebijakan di setiap prompt. Inilah sumbangan produk yang paling menarik: mengubah preferensi organisasi menjadi batas operasional.
Infografik editorial orisinal. Jalur permintaan konseptual, bukan diagram penerapan yang lengkap.
Apa yang diperiksa pratinjau ini, dan di mana pemeriksaannya berlaku?
Kontrol yang diumumkan mencakup usia minimum paket, pemeriksaan GitHub Advisory Database untuk malware atau kerentanan, serta sinyal rantai pasok seperti penurunan attestasi. Permintaan metadata paket dan unduhannya sama-sama melewati layanan ketika endpoint dikonfigurasi untuk menggunakannya. Alur pengecualian menangani permintaan paket yang diblokir oleh kebijakan. Cara kerja firewall.
Dokumentasi GitHub menjelaskan usia minimum yang dapat diatur dari nol, yang menonaktifkan kontrol tersebut, hingga 365 hari; nilai bawaannya satu hari. Masa tunggu memberi waktu bagi informasi baru untuk muncul. Masa tunggu itu tidak mengubah paket menjadi artefak aman begitu waktunya habis. Dokumentasi yang sama menjelaskan tampilan permintaan yang diblokir pada keluaran pengembangan dan cara pengguna meminta pengecualian. Dokumentasi perlindungan endpoint.
Cakupan layak mendapat perhatian sebesar daftar pemeriksaannya. Pratinjau ini tidak otomatis melindungi setiap dependensi di setiap aplikasi. Dukungan dimulai dari npm, dan endpoint harus mengarahkan permintaannya melalui firewall. Tim dengan layanan Python, image container, dan aplikasi JavaScript tetap memiliki beberapa jalur artefak yang berbeda untuk diperhatikan. Bahkan di dalam proyek JavaScript, pertanyaan yang berguna adalah permintaan nyata mana yang mengikuti jalur yang ditegakkan.
Ketentuan komersialnya juga spesifik. Layanan gratis selama pratinjau, sementara harga berdasarkan pemakaian direncanakan saat ketersediaan umum. Artinya, pratinjau merupakan kesempatan memahami perilaku operasional, bukan dasar untuk menganggap biayanya akan selalu nol. Uji coba yang representatif harus mencakup permintaan dari CI dan agen, bukan hanya pemasangan manual sesekali oleh pengembang. Status ketersediaan dan harga.
Infografik orisinal yang merangkum cakupan pengumuman. Dukungan npm dan kelayakan Enterprise Cloud menjelaskan pratinjau ini, bukan semua versi mendatang.
Mengapa agen pemrograman membuat batas ini lebih terlihat?
Daya tarik agen adalah kemampuannya bergerak dari gagasan ke perubahan yang berfungsi dengan lebih sedikit jeda. Menemukan pustaka, mengubah konfigurasi, dan menjalankan pengujian dapat menjadi bagian dari percakapan yang sama. Kemudahan itu memadatkan beberapa keputusan menjadi satu tindakan yang tampak sederhana: “terapkan fitur ini”. Keputusan dependensi bisa memperoleh lebih sedikit perhatian justru karena keseluruhan proses terasa sangat efisien.
Bayangkan contoh tugas menambahkan fitur kecil untuk format tanggal. Agen mengusulkan paket baru karena itulah jalur tercepat yang dikenalnya. Peninjauan kode tetap harus menanyakan apakah proyek yang ada sudah menyelesaikan masalah tersebut. Firewall tidak dapat menjawab pertanyaan arsitektur itu. Ia dapat menerapkan aturan terpisah pada versi yang diminta. Kedua peninjauan saling melengkapi: yang satu menanyakan apakah dependensi perlu ditambahkan, yang lain apakah permintaan ini memenuhi kebijakan organisasi saat ini.
Kasus kedua adalah cabang pemeliharaan yang dikerjakan agen. Beberapa paket diperbarui, pengujian dijalankan, dan cabangnya terlihat siap. Jika satu versi yang diminta terlalu baru menurut kebijakan, pengembang harus menerima alasan yang jelas serta langkah berikutnya yang dapat dilakukan. Pemblokiran berguna jika menghasilkan penantian yang dipertimbangkan atau pengecualian terdokumentasi. Manfaatnya berkurang jika agen menafsirkan kegagalan sebagai undangan untuk mencari jalur pemasangan yang tidak diatur.
Karena itu, alur kerja perlu memperlakukan pemblokiran kebijakan sebagai informasi yang bermakna. Agen harus dapat melaporkan paket yang diblokir, alasannya, dan tugas yang belum selesai. Agen tidak boleh diam-diam mengganti proyek ke dependensi lain yang tidak terkait hanya agar pemasangan berhasil. Harapan tersebut merupakan bagian dari proses pengembangan di sekelilingnya, bukan klaim bahwa firewall mengendalikan setiap keputusan agen berikutnya.
Masa tunggu memberi waktu, tetapi bisa menunda perbaikan berguna
Kontrol usia minimum menangkap pertukaran yang nyata dalam bentuk sederhana. Menunggu memberi artefak yang baru diterbitkan lebih banyak waktu untuk diperiksa. Penantian juga dapat menunda rilis yang memperbaiki masalah serius. Penundaan menyeluruh mungkin mudah dijelaskan, tetapi proses pengecualian yang baik menentukan apakah tim dapat merespons dengan cerdas ketika aturan biasa kurang sesuai.
Pertimbangkan tim yang menghadapi build rusak akibat regresi dependensi. Pengelola segera menerbitkan versi yang diperbaiki. Versi baru itu mungkin tepat seperti yang dibutuhkan tim, tetapi masih berada dalam jendela masa tunggu. Peninjauan yang relevan adalah apakah bukti untuk memakainya membenarkan pengecualian dalam situasi ini. Menghapus aturan secara diam-diam di semua tempat akan membuang manfaatnya bagi pekerjaan lain yang tidak terkait.
Kasus sebaliknya juga penting. Paket yang lolos aturan usia mungkin tetap mengandung masalah yang belum dilaporkan. Menunggu merupakan cara mengubah paparan, bukan pengganti pemahaman dependensi atau pembatasan akses lingkungan. Inilah sebabnya pemasangan yang berhasil tidak seharusnya mengakhiri penalaran tim tentang rantai pasok perangkat lunak.
Perbandingan konseptual orisinal. Ini tidak menunjukkan tingkat deteksi terukur atau mengklaim paket yang diizinkan pasti aman.
Proses pengecualian dapat menentukan apakah kebijakan bertahan
Aturan masa tunggu juga berubah seiring waktu dengan cara yang berbeda dari perubahan kode. Versi yang diblokir hari ini mungkin menjadi layak besok tanpa perubahan apa pun pada fitur yang diusulkan. Sebaliknya, informasi baru dapat mengubah hasil kebijakan untuk versi yang pernah dipakai tim. Karena itu, pengembang sebaiknya menyimpan versi yang diminta dan alasan pemblokiran bersama tugasnya. Catatan tersebut membuat keputusan berikutnya dapat dipahami. “Kali ini berhasil terpasang” adalah pengamatan tentang satu percobaan, sementara pilihan dependensi yang ditinjau menjelaskan apa yang hendak diadopsi tim dan mengapa pilihan itu dianggap dapat diterima.
Aturan keamanan sering gagal secara sosial sebelum gagal secara teknis. Jika pemblokiran menghasilkan kesalahan tanpa penjelasan dan penantian panjang, orang belajar memandang kontrol sebagai penghalang. Jika alasannya terlihat dan pengecualian dapat ditinjau orang yang memiliki konteks tepat, pemblokiran yang sama bisa menjadi jeda yang berguna. Alur permintaan fitur baru ini perlu dinilai dengan mempertimbangkan pengalaman manusia sehari-hari tersebut.
Pengecualian yang bermakna mencatat paket dan versinya, alasan kebutuhan, bukti terkait, serta cakupan keputusan. Harus jelas apakah persetujuan berlaku untuk satu permintaan segera atau perubahan kebijakan yang lebih luas. Tanpanya, pengecualian yang beralasan perlahan dapat menjadi celah permanen yang tidak diingat siapa pun asal-usulnya.
Peninjau juga membutuhkan jalur praktis menuju keputusan. “Mohon disetujui” tidak cukup ketika dependensinya asing. Tugas pengembangan harus menjelaskan apakah paket tersebut penting, apa yang berubah pada versi ini, dan apakah versi yang sudah disetujui masih dapat digunakan. Ini usulan praktik kerja di sekitar produk. Bukan berarti layanan secara otomatis menyediakan seluruh konteks tersebut.
Bagi agen, laporan pengecualian yang baik adalah kesempatan untuk menjadi lebih berguna. Alih-alih terus mencoba pemasangan, agen dapat mempertahankan pekerjaan yang sudah selesai dan menyajikan langkah tepat yang terblokir. Keputusan manusia menjadi lebih kecil dan lebih mudah ditinjau. Manfaatnya adalah kesinambungan: tugas dapat dilanjutkan setelah keputusan dibuat tanpa kehilangan alasan jedanya.
Asal-usul artefak dan kontrol skrip menjawab pertanyaan berbeda
Firewall lebih mudah dinilai jika diletakkan berdampingan dengan dua kontrol rantai pasok lain. Dokumentasi provenance npm menjelaskan hubungan yang dapat diverifikasi dengan sumber paket dan instruksi build, sekaligus secara eksplisit memperingatkan bahwa provenance tidak menjamin ketiadaan kode berbahaya. Penjelasan attestasi artefak GitHub juga menjabarkan asal-usul build bertanda tangan, termasuk informasi repositori, workflow, dan commit. Catatan tersebut dapat menjelaskan dari mana artefak berasal; firewall menerapkan kebijakan tentang apakah versi yang diminta boleh diambil melalui endpoint-nya.
Perbedaan itu penting saat insiden terjadi. Paket yang baru diterbitkan dapat mempunyai riwayat build autentik dan tetap mengandung perubahan yang tidak diinginkan. Paket lama bisa tidak memiliki bukti yang diharapkan tim dari pengelolanya. Masa tunggu, pemeriksaan advisori, dan catatan provenance masing-masing menyumbang pengamatan berbeda. Menggabungkannya dapat memperkuat dasar keputusan, tetapi tidak ada satu indikator hijau yang memastikan kode sesuai untuk aplikasi tertentu.
| Kontrol | Pertanyaan yang dibantu dijawab | Hal yang tetap berada di luar jawaban itu |
|---|---|---|
| Kebijakan package firewall | Bolehkah versi yang diminta melewati aturan pengambilan yang dikonfigurasi? | Apakah seluruh perilaku kode yang diizinkan sesuai |
| Provenance build atau attestasi | Sumber dan proses build tercatat mana yang menghasilkan artefak? | Apakah sumber tersebut mencerminkan niat yang dapat dipercaya |
| Pembatasan skrip pemasangan | Bolehkah skrip siklus hidup paket berjalan selama pemasangan? | Perilaku kode aplikasi yang diimpor kemudian |
Baris ketiga berasal dari mekanisme terpisah. Referensi konfigurasi npm menyebut ignore-scripts menahan skrip yang ditentukan dalam manifes paket, sedangkan skrip yang diminta secara eksplisit, seperti npm test, tetap menjalankan sasaran yang dimaksud. Ini dapat mengurangi satu jenis eksekusi saat pemasangan, tetapi juga memengaruhi paket yang memang membutuhkan tahap build. Kemampuan ini perlu dievaluasi terhadap kumpulan dependensi, bukan sakelar universal yang membuat setiap paket tidak berbahaya.
Pengelola dan pengembang mengalami kebijakan dari sisi berlawanan
Ada sudut pandang pengelola yang konstruktif di balik mekanisme ini. Tim yang menerbitkan build yang dapat diulang dan informasi rilis yang berguna memberi pengguna hilir lebih banyak bukti untuk ditinjau. Kebijakan firewall bersama dapat membuat praktik tersebut berarti secara konsisten bagi banyak pengembang, alih-alih bergantung pada ingatan setiap orang terhadap aturan informal. Manfaatnya adalah pengambilan paket yang lebih dapat diperkirakan, selama aturan dan pengecualiannya tetap dimengerti oleh orang yang pekerjaannya terdampak.
Kebijakan yang sama dapat terlihat berbeda bagi pembuat perbaikan mendesak. Paket yang dirilis beberapa menit lalu mungkin memperbaiki persis masalah yang perlu diselesaikan pelanggan. Jika usia saja memblokirnya, tim aplikasi memerlukan cara memeriksa perubahan dan menjelaskan pengecualian yang disengaja. Hal itu tidak membatalkan nilai masa tunggu. Justru terlihat bahwa mutu operasional produk bergantung pada apakah rilis yang sah dapat melewati peninjauan tanpa mendorong penghindaran permanen terhadap jalur yang dikendalikan.
Contoh evaluasi dapat mengikuti satu pembaruan biasa dan satu perbaikan mendesak melalui organisasi yang sama. Bandingkan bukti yang terlihat oleh peninjau, waktu sampai pengembang memahami keputusan, dan apakah pengecualian yang dipilih tercatat. Sertakan dependensi dengan tahap pemasangan yang sah agar tim dapat membedakan kebijakan pengambilan dari perilaku eksekusi skrip. Ini tugas evaluasi yang diusulkan, bukan hasil penggunaan pratinjau oleh kami.
Peluang lebih besarnya adalah bahasa bersama untuk keputusan dependensi. Pengembang dapat menanyakan apakah suatu versi terlalu baru, terpengaruh informasi yang sudah diketahui, atau tidak memiliki provenance yang diharapkan, alih-alih menerima penolakan tanpa penjelasan. Pengelola dapat melihat bukti apa yang akan membantu. Agen dapat diberi status kegagalan yang jelas untuk dilaporkan, bukan terus mencoba jalur unduhan lain. Posisi GitHub dalam alur pengembangan dapat membuat koordinasi ini berharga, bahkan ketika aturan dasarnya sengaja konservatif dan penilaian akhir tetap berada pada organisasi.
Paket yang diizinkan tetap memasuki lingkungan yang menimbulkan konsekuensi
Posisi firewall pada jalur unduhan bernilai karena endpoint adalah tempat artefak akan digunakan. Endpoint itu mungkin memiliki kode sumber, kredensial, atau akses ke layanan lain. Kebijakan paket mengurangi satu jenis ketidakpastian, sementara rancangan lingkungan membatasi dampak keputusan yang keliru. Pertanyaan yang berguna adalah bagaimana kontrol tersebut bekerja bersama dalam penyiapan pengembangan yang sebenarnya.
Runner CI dengan kredensial bercakupan sempit menghadirkan situasi berbeda dari workstation berumur panjang yang menyimpan akses ke banyak proyek. Sandbox agen yang hanya dapat mengubah checkout sementara berbeda dari sandbox yang dapat menjangkau rahasia deployment. Contoh ini menjelaskan mengapa produk tidak dapat dinilai hanya dari nama pemeriksaannya. Dependensi yang sama-sama diizinkan dapat menghasilkan konsekuensi sangat berbeda dalam lingkungan yang berbeda.
Tim juga perlu membedakan peristiwa kebijakan dari kegagalan perangkat lunak. Unduhan yang diblokir, gangguan penyedia hulu, dan paket yang terpasang tetapi menggagalkan pengujian memerlukan penanganan berbeda. Jika ketiganya tampak bagi agen sebagai “pemasangan gagal”, otomatisasi dapat memilih pemulihan yang buruk. Pelaporan jelas membantu orang menentukan apakah harus menunggu, meminta pengecualian, atau menyelidiki aplikasi.
Langkah berikutnya adalah pratinjau representatif, bukan label serba aman
Uji coba yang berguna akan menelusuri workstation biasa, workflow Actions, dan lingkungan agen pemrograman melalui jalur permintaan. Pastikan endpoint yang dimaksud tercakup, pemblokiran representatif memberi penjelasan berguna, dan pengecualian yang disetujui memiliki cakupan sesuai harapan. Ini saran kriteria evaluasi; kami belum menjalankan pratinjau ini pada akun perusahaan produksi.
Ukuran bisnisnya perlu mencakup perlindungan dan hambatan. Hitung peristiwa kebijakan yang menghasilkan peninjauan berguna, waktu untuk menyelesaikan pemblokiran keliru, serta titik tempat permintaan keluar dari jalur yang dimaksud. Perkirakan biaya berdasarkan pemakaian di masa depan dari aktivitas representatif ketika harga terkait tersedia. Kontrol yang menciptakan keputusan yang dapat dikelola pada saat tepat dapat bertahan lebih lama daripada kebijakan agresif yang dipelajari semua orang untuk dihindari.
GitHub package firewall menarik karena mengakui bahwa pengambilan paket merupakan bagian dari perubahan yang dibuat. Dalam pengembangan berbantuan AI, perbedaan kode hanyalah satu bagian pekerjaan agen yang terlihat. Dependensi yang diminta dan lingkungan penerimanya layak memperoleh perhatian tersendiri. Pratinjau ini menawarkan tempat untuk menuangkan perhatian tersebut ke dalam kebijakan, sementara tim tetap bertanggung jawab menentukan seperti apa pilihan dependensi yang baik.
Sumber
-
Pratinjau publik GitHub package firewall, 20 Oktober 2026.
-
Melindungi endpoint dengan package firewall, diperiksa 21 Oktober 2026.
-
Provenance npm dan batasannya, diperiksa 21 Oktober 2026.
-
Attestasi artefak GitHub, diperiksa 21 Oktober 2026.
-
Konfigurasi skrip npm, diperiksa 21 Oktober 2026.
Pertahankan alasan di balik keputusan dependensi
Jika Anda membutuhkan ruang kerja terpisah untuk tautan sumber dan catatan teknis yang telah ditinjau, Telli.sh adalah salah satu pilihan. Buka ruang kerja catatan Anda.