Alesta WEB

Kısa cevap: GitHub, 20 Ekim 2026'da package firewall (paket güvenlik duvarı) özelliğini herkese açık önizlemeye aldı. Hizmet, geliştirici makineleri, CI sunucuları ve kodlama ajanlarıyla npm kayıt deposu arasına giriyor ve paket indirilmeden önce denetim yapıyor. Varsayılan politika bilinen zararlı paketleri, kritik açıklı sürümleri, yeni eklenmiş postinstall gibi kurulum betiklerini ve SLSA kanıtı (attestation) düşürülmüş sürümleri engelliyor; ayrıca yayımlanalı en az 1 gün olmayan sürümleri bekletiyor. Şimdilik yalnız npm destekleniyor, yalnız GitHub Enterprise Cloud müşterilerine açık ve önizleme süresince ücretsiz.

Neden paket güvenlik duvarı? (Why a package firewall)
Son iki yılın npm tedarik zinciri saldırılarının ortak noktası, zararlı kodun paketin kurulduğu anda çalışması. Ele geçirilen bir geliştirici hesabından yeni bir sürüm yayımlanıyor, sürüme bir postinstall betiği ekleniyor ve npm install çalıştıran her makine ilk dakikalarda etkileniyor. Shai-Hulud türü solucanlar bu yolla geliştirici jetonlarını çalıp kendini başka paketlere yaydı. Dependabot ya da kod taraması gibi araçlar sorunu paket projeye girdikten sonra görüyor; kurulum betiği o sırada çoktan çalışmış oluyor.
GitHub'ın package firewall'u bu boşluğu hedefliyor. Hizmet uç noktalar (geliştirici makinesi, CI ana makinesi, kodlama ajanı) ile üst kayıt deposu arasında vekil (proxy) gibi çalışıyor. Hem paket meta veri isteklerini hem de paket indirmelerini kurum politikasına göre değerlendiriyor ve uygun olmayanı daha makineye ulaşmadan durduruyor.
Politika seçenekleri (Policy controls)
Politika kurum (enterprise) düzeyinde Policies > Package firewall ekranından ayarlanıyor. GitHub belgelerindeki denetimler ve varsayılanlar şöyle:
| Denetim | Ne yapar? | Varsayılan |
|---|---|---|
| Bilinen zararlı yazılımı engelle | GitHub Advisory Database'de etkin zararlı yazılım kaydı olan paketleri engeller | Açık |
| Güvenlik açığı kayıtlarını engelle | Seçilen önem düzeyindeki açıklardan etkilenen sürümleri engeller (yalnız kritik / yüksek ve üstü / orta ve üstü / tümü) | Yalnız kritik |
| Kanıt düşürmeyi engelle | Önceki sürümlerinde SLSA kanıtı olan bir paketin kanıtsız yeni sürümünü engeller | Açık |
| Yeni kurulum betiklerini engelle | Daha önce olmayan preinstall/postinstall gibi kurulum betiği ekleyen sürümleri engeller | Açık |
| En düşük paket yaşı | Yayımlanalı belirlenen süreyi doldurmamış sürümleri bekletir (1–365 gün, 0 kapatır) | 1 gün |
Bu beş denetimden ikisi özellikle değerli. Kanıt düşürme denetimi, ele geçirilen hesapla elle yayımlanan sürümleri yakalıyor: normalde CI'dan kanıtlı yayımlanan bir paketin birden kanıtsız sürüm çıkarması güçlü bir alarm işareti. En düşük yaş (cooldown) ise zararlı sürümlerin çoğunun birkaç saat içinde fark edilip kaldırılmasından yararlanıyor. 1 günlük bekleme bile ilk dalgayı atlatmaya çoğu zaman yetiyor. Daha temkinli kurumlar bu süreyi 3–7 güne çıkarabilir.
Kurulum: .npmrc ayarı (Setup)
Politikayı ayarladıktan sonra npm'in paketleri doğrudan kayıt deposundan değil, güvenlik duvarından çekmesi gerekiyor. Adres biçimi şu (ENTERPRISE yerine kurumun kısa adı yazılır):
https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISEKullanıcı düzeyindeki .npmrc dosyasına iki satır ekleniyor:
registry=https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISE
//package-firewall.githubapp.com/npm/enterprises/ENTERPRISE/:_authToken=${GITHUB_TOKEN}Aynı ayar komutla da yapılabilir:
npm config set registry \
https://package-firewall.githubapp.com/npm/enterprises/ENTERPRISE
npm config set \
'//package-firewall.githubapp.com/npm/enterprises/ENTERPRISE/:_authToken=${GITHUB_TOKEN}'Her istek, kurum üyesi bir kullanıcıya ya da bot hesabına ait bir jetonla yapılmalı. Jetonun yalnız herkese açık depolara salt okuma yetkisi olması yeterli. Jeton GITHUB_TOKEN ortam değişkeninde tutulmalı; CI'da gizli değer olarak saklanmalı, depoya asla yazılmamalı. Artifactory kullanan kurumlar için deneysel destek var; bu durumda Artifactory'deki doğrudan npm'e giden uzak depoların kapatılması gerekiyor, yoksa güvenlik duvarı atlanmış olur.
Engellenen paket için istisna (Exception requests)
Bir paket yanlışlıkla engellenirse npm çıktısında ya da CI günlüğünde bir istisna isteği bağlantısı çıkıyor. Geliştirici bağlantıyı açıp depo, paket adı, sürüm ve gerekçeyi içeren önceden doldurulmuş formu gönderiyor. Kurum yöneticileri ve güvenlik yöneticileri istekleri Security and quality > Package firewall bypass ekranında inceliyor. Onaylarken sürümü * yaparak paketin tüm sürümlerine izin verebiliyorlar. Onaylanan istisnalar Policies > Package firewall > Overrides altında listeleniyor ve oradan kaldırılabiliyor. Politikayı düzenleme yetkisi özel bir rolle bir ekibe de devredilebiliyor.
Sınırlar ve ücret (Limitations and pricing)
- Yalnız npm: PyPI, Maven, Composer ya da NuGet desteği şimdilik yok.
- Yalnız Enterprise Cloud: veri yerleşimli (data residency) Enterprise Cloud dahil. Bireysel, Team ve GitHub Enterprise Server kullanıcıları yararlanamıyor.
- Koruma yalnız yönlendirilen trafik için:
.npmrcayarı yapılmamış bir makine ya da CI işi doğrudan kayıt deposuna gider ve korunmaz. - Ücret: önizleme süresince ücretsiz. Genel kullanıma geçince Actions'a benzer biçimde kullanım bazlı ücretlendirilecek.
- Önizleme: özellikler ve ekranlar değişebilir.
Enterprise olmayanlar ne yapabilir? (Alternatives)
Package firewall'un yaptığı denetimlerin bir kısmı her ekip için ücretsiz olarak uygulanabiliyor:
- Kurulum betiklerini kapatın: CI'da
npm ci --ignore-scriptsile kurup yalnız güvendiğiniz paketlerin betiklerini ayrıca çalıştırın. - Kilit dosyasını zorunlu tutun: CI'da
npm installyerinenpm cikullanın;package-lock.jsondışında sürüm çekilmesin. - Bekleme süresi: pnpm'deki
minimumReleaseAgeayarını, Dependabot'ta isecooldownseçeneğini kullanarak yeni sürümleri birkaç gün bekletin. - Jetonları daraltın: npm yayın jetonlarını kısa ömürlü tutun, mümkünse güvenilir yayımlama (trusted publishing) ile CI'dan kanıtlı yayımlayın.
Alesta WEB olarak JavaScript projelerinde bağımlılık güncellemelerinin kilit dosyasıyla sabitlenmesini ve tek tek gözden geçirilmesini öneriyoruz; GitHub'ın yeni özelliği bu elle yapılan işin bir kısmını kurum düzeyinde otomatiğe bağlıyor. Aynı haftada duyurulan Actions kilit dosyası ile birlikte düşünüldüğünde GitHub'ın tedarik zinciri güvenliğini kurulum öncesine taşıdığı görülüyor.
Sık sorulan sorular
Package firewall ücretsiz mi?
Önizleme süresince ücretsiz. Genel kullanıma geçtiğinde kullanım bazlı ücretlendirilecek.
Python (pip) ya da PHP (Composer) paketlerini de koruyor mu?
Hayır, şimdilik yalnız npm destekleniyor. GitHub başka ekosistemler için bir tarih açıklamadı.
1 günlük bekleme acil güvenlik yamasını da geciktirir mi?
Evet, en düşük yaş kuralı tüm yeni sürümlere uygulanıyor. Acil bir yama için istisna isteği açılabilir ya da yönetici süreyi geçici olarak değiştirebilir.
Kodlama ajanlarını da kapsıyor mu?
GitHub, kodlama ajanlarını ve CI ana makinelerini korunacak uç noktalar arasında sayıyor. Ajanın çalıştığı ortamdaki npm ayarının güvenlik duvarını göstermesi yeterli.
Kaynaklar (References)
İlgili yazılar: GitHub Actions kilit dosyası · npm Shai-Hulud solucanı · GitHub AI Scan · Web yazılım hizmetleri · İletişim
Kapak fotoğrafı: FlyD / Unsplash

