deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

İnternete açık OneDev instance'ları, giriş sayfalarının ima ettiğinden çok daha fazla yetki taşıyor

dev.to'da yayımlanan bir güvenlik yazısı, internete açık bir OneDev sunucusunun yalnızca kaynak kodu değil; access token'ları, job secret'ları, paket yayınlama haklarını ve build çalıştırma yetkisini de ortaya çıkardığını savunuyor. Bir ZoomEye sorgusu 271 eşleşen varlık saydı.

İnternete açık OneDev instance'ları, giriş sayfalarının ima ettiğinden çok daha fazla yetki taşıyor

Küçük ama yetki yoğunluğu yüksek bir popülasyon

OneDev; Git barındırma, sorun takibi, paket yönetimi ve CI/CD'yi tek bir sunucuda birleştiren self-hosted bir platformdur. Çoğunlukla bir kaynak kodu aracı olarak tanımlandığı için güvenlik ekipleri, herkese açık bir instance'ı pek çok şeyden fazlası olmayan bir kod tarayıcısı gibi değerlendirme eğiliminde. Kozhevniko tarafından 2 Kasım 2026'da dev.to'da yayımlanan bir yazı, bu bakış açısının maruziyeti ciddi biçimde hafife aldığını savunuyor.

Yazıya göre o gün çalıştırılan, yalnızca sayım yapan bir ZoomEye sorgusu, ürünün OneDev parmak izini kullanarak 271 eşleşen varlık döndürdü. Yazar rakamın ne anlama geldiği konusunda dikkatli: bu sayı, ZoomEye'nin gözlem kapsamı içinde parmak iziyle eşleşen host'ları yansıtıyor; erişilebilirlik, yanlış yapılandırma veya ele geçirilme konusunda bir hüküm değil. Önerilen kullanım, envanter için bir başlangıç noktası olması; herhangi bir host'un bir kuruma atfedilmesinden önce DNS kayıtları, bulut varlık listeleri, sahiplik verileri ve iç dağıtım kayıtlarıyla karşılaştırılması gerektiği.

Giriş sayfasının arkasındaki yetki

Merkezi argüman, OneDev'in izin modelinin bir giriş sayfasının duyurmadığı birkaç farklı yetki türünü kapsadığıdır.

Access token'lar kullanıcı menüsünden oluşturulur ve yönetilir; sahip oldukları kullanıcının proje ayrıcalıklarını devralır. Bu nedenle bir token, belirli bir proje için kod yazma veya paket yazma izni taşıyabilir; bu da dal ve etiket koruma ayarlarını, değişiklik iten her build job'ı için belirleyici kılar.

Job secret'lar ikinci bir kimlik sınırı oluşturur. OneDev, ekiplerin hassas değerleri build tanımının dışında tutmasına izin verir; ancak yazı, bunun yalnızca proje okuyucularının secret'ı build logları veya aşırı geniş kapsamlı bir token üzerinden ele geçirememesi durumunda işe yaradığı konusunda uyarıyor. Örnek olay: üretim dağıtımı için tutulan bir token, güvenilmeyen bir katkıcı tarafından tetiklenen bir pull request build'inden erişilebilir olmamalıdır.

Paket izinleri, kaynak koduyla aynı hesap ve rol sistemine dayanır. Sonuç olarak açığa çıkmış bir repository, dahili bir paket registry'sine giden bir yol açabilir; bu yüzden yazar, paket namespace'lerinin ve yayın kimliklerinin repository'lerle aynı envanter disiplinini hak ettiğini savunuyor.

Build çalıştırma ise resmi tamamlar. Bir CI runner çekici bir çalıştırma hedefidir; ağ erişimi ve mount edilmiş kimlik bilgileri, web hesabından ayrı olarak incelenmeyi hak eder.

Yazının önerileri

Yazı, gözlemlenen her endpoint için hostname, IP adresi, TLS sertifikası, açığa çıkan ürün sürümü, kimlik doğrulama yöntemi, sahip kuruluş ve ilk görülme zamanının kaydedilmesini önerirken, varsayılan kimlik bilgileri veya token'ların denenmesini açıkça yasaklıyor. Ekipler, giriş sayfasının bir SSO akışı duyurup duymadığını ve yönetim yollarının herkese açık internette olup olmadığını kontrol etmeli.

Reverse proxy'lere özel ilgi gösteriliyor: alternatif bir origin'in, eski bir DNS kaydının veya servis portunun kimlik doğrulamayı atlatmadığını doğrulayın; herkese açık DNS ve sertifika adlarını beklenen ingress ile karşılaştırın.

İç tarafta inceleme, proje oluşturabilen, kullanıcıları yönetebilen veya kimlik doğrulama kaynaklarını yönetebilen hesaplarla başlamalı. Token'lar; ürünün bu detayı gösterdiği ölçüde sahip, oluşturma tarihi, izin ve son kullanım bilgilerine göre incelenmeli; bir job veya entegrasyonla ilişkilendirilemeyen token'lar kaldırılmalı; repository dosyasında, build logunda, container imajında veya herkese açık bir artifact'ta bulunan herhangi bir token rotate edilmelidir. Job secret yetkilendirmesi dal bazında ve proje bazında kontrol edilmeli; bir job'ın ortam değerlerini yazdırıp yazdıramayacağı veya harici bir servise erişip erişemeyeceği de buna dahildir. Anonim izinler açık bir incelemeyi hak eder; çünkü kaynak ve build logları gizli kalırken yayın artifact'larını açıkça yayınlamak bilinçli bir tercih olabilir.

İzleme için yazı, ZoomEye sorgusunun düzenli bir planla yeniden çalıştırılmasını ve sonuçların önceki envanterle karşılaştırılmasını; yeni hostname'lere, sertifikalara veya sahiplenilen alan adlarına bağlı eşleşmelere karşı uyarı verilmesini ve sorgunun, kapsamın, zamanın ve sayımın saklanmasını öneriyor. Sayımdaki bir değişim, envanterde bir değişikliğe işaret eder; ele geçirilme kanıtı değildir. Dahili olarak token oluşturma, izin değişiklikleri, başarısız kimlik doğrulama ve alışılmadık repository işlemleri izlenmeli, yapılandırılmış kimlik sağlayıcısıyla ilişkilendirilmeli ve denetim dışa aktarımları, OneDev host'undan bağımsız bir sistemde saklanmalıdır.

Neden önemli

Tek bir internete açık OneDev instance'ı; kod yazma erişimini, paket yayın haklarını, secret taşıyan build çalıştırmayı ve yönetim işlevlerini tek bir ürünün arkasında toplar. Onu yalnızca bir Git sunucusu olarak görmek, dağıtımdaki en yüksek değerli yetkiyi atlayan envanterler, izleme ve erişim incelemeleri üretir. Yazının daha geniş noktası her self-hosted geliştirme platformuna genellenir: bir parmak izi yalnızca bir ürünün var olduğunu kanıtlar; asıl güvenlik çalışması, endpoint'in arkasında hangi kimlik bilgilerinin, secret'ların ve ayrıcalıkların durduğunu ve build sisteminin repository'nin incelenmiş yolu dışında kod veya paket değiştirip değiştiremeyeceğini haritalamaktır.

  • #devops
  • #security
  • #ci-cd
  • #self-hosted
  • #onedev

İlgili yazılar