Git deposundaki büyük bir paketin güvenli olduğunu nasıl doğrularım?


9

Özellikle aşağıdaki özelliklere sahip emacs dümen bakıyorum :

  • binlerce taahhüt var
  • büyük ölçüde bir kullanıcı tarafından korunur
  • bakımcının başka bir profili yok (sosyal medya, vb.) Birkaç aramada bulabildim
  • aktif olarak korunmaktadır (bugün)

Metin düzenleyicimde kullanmak üzere bilgisayara rasgele kod yüklemek üzere olduğum için, bunun herhangi bir inceleme işleminden geçip geçmediğini doğrulamak istedim. "Açık kaynak" demek istiyorum ama gerçekten tüm kodu kendim denetlemek için elisp yeteneğinden çok uzakım. Topluluktaki diğer kişilerin bunu gözden geçirdiğini, ancak muhtemelen yanlış olduğunu ve iki tanesinin de dakikalar sürdüğünü varsaymak isterim. Kaçırdığım başka stratejiler var mı?

Kayıt için vektör basittir: "açık kaynak", katılımcının bir ödeme hesabı altında çalışıyor olması veya inceleme süreci olmaması durumunda o kadar önemli değildir.


6
" Doğrula " büyük bir kelimedir. Kelimenin normal anlamında, bence cevap "Sen yapamazsın (yapamazsın)." Bir kütüphane için geliştirme faaliyetini takip edebilir ve dijital imzaları ve benzerlerini kontrol edebilirsiniz, ancak emin ve kesin olan hiçbir şey olmadığını düşünüyorum.
Drew

3
İyi soru. FWIW, Emacs ile gelen kod gözden geçirilir (emacs-diffs posta listesi üzerinden), ancak bazı katılımcılar bir güvenlik deliği ekleyecek olsaydı, fark edilmeden bunu yapabileceğinden eminim. Tabii ki, zaten Emacs'ta çok sayıda büyük kazara güvenlik deliği yoksa şaşırırdım, bu yüzden bunun ne kadar problem olabileceğinden emin değilim. Bu yüzden daha yeniden temin edici bir cevap alabilmek için, belirli bir basit tehdide odaklanmamız gerektiğini düşünüyorum (örneğin, kodun gizli olmayan bir gözetim gerçekleştirip gerçekleştirmediğini kontrol etmek oldukça kolay olmalıdır).
Stefan


1
@Stefan, sadece bir nokta kontrolü yapmayı düşünüyordum. Benim açımdan , ve mapatomsile birlikte "tehlikeli" gruba konabilir . Tabii ki bazı yanlış pozitifler olurdu, ancak paket bu işlevlerden herhangi birini kullanmazsa, büyük bir kesinlikle zararsız olarak işaretlenebilir. start-processevalfuncall
abo-abo

1
Yeni eklemeniz gerekir make-processyanı sıra call-process, dbus-<foo>, make-network-streamve sonra vc-do-command, vc-git-commandsen koyarsanız, .... Ve evalve funcall"tehlikeli" kategorisinde, daha sonra en / tüm paketler tehlikelidir.
Stefan

Yanıtlar:


7

Kısa cevap, kodu kendiniz okumamanız durumunda, çok güveniyorsunuzdur. Bir akış yukarı SCM'den kaynaklanan bir projeye güvenmenin , örneğin doğrudan Emacs Wiki'den alınan projeden biraz daha güvenli olduğunu söyledikten sonra . Bununla birlikte, temelde paketin yazarına, kötülüğü döndürmemesine ve Emacs oturumunuz altında rastgele kod çalıştırma yeteneğini kötüye kullanmamasına güveniyorsunuz.

Kendinizi daha güvenli hissetmenizi sağlayacak bazı şeyler vardır:

  • Popüler paketlere sadık kalın

Popüler paketler otomatik olarak daha fazla incelemeye sahip olmasa da, daha fazla kullanıcıya sahip oldukları gerçeği, sizi etkilemeden önce kötü niyetli davranışların algılanma şansı anlamına gelir.

  • Kod metriklerine bakın

Github'da projelerin katkı geçmişini oldukça iyi görebilirsiniz . İlke yazarı, taahhütlerin çoğunu geniş bir yazar yelpazesine sahip olsa bile, kodun kararlılığı ve etkililiği ile aktif olarak ilgilenen başka insanlar olduğunu gösterir.

  • GNU ELPA ve MELPA tercih et HEAD'leri (MELPA) izleyen veya denetlenmeyen gönderimlere izin veren depolara (Marmelat) karşı kararlı

Kanama kenarında yaşamak en son parlak özellikleri isteyenler için belirli bir çekiciliğe sahip olsa da, ortamınıza en son taahhüdü kabul eden ilk kişi olabileceğiniz anlamına gelir. Kötü amaçlı olmasa bile, "resmi" bir sürümün en azından bir çeşit imleç incelemesi olurken, bir paket akışında alabilirsiniz. Örneğin, GNU ELPA paketleri yalnızca taahhüt hakları olan emacs-devel kullanıcıları tarafından taahhüt edilecektir.

Sonuçta eminim ki bir noktada sadece konsept denemesinin bir kanıtı olsa bile, paket sistemi üzerinden bir güvenlik ihlali olacaktır. Normal yedeklemelerinize güvenmeniz gerekebilecek nokta bu olacaktır.


1
Marmelat “güven” söz konusu olduğunda fakir bir arşivdir. Herkesin sıfır doğrulama veya inceleme ile herhangi bir ad altında herhangi bir paket yüklemesine izin verir. Ve tam olarak bakımlı değil (sadece açık konuların sayısına bakın).
lunaryorn

@lunaryorn: iyi nokta, cevabı değiştireceğim.
stsquad

@lunaryorn MELPA'nın elmarmalade deposundan daha açık sorunları var, bu yüzden bunun kullanılabilir bir metrik olduğundan şüpheliyim.
wasamasa

@stsquad MELPA Stable'ın size verdiği tek şey, zaten MELPA'da ortaya çıkacak şeylerin etiketli yayınlarıdır, bu yüzden Marmalade kullanmaktan daha güvenli olduğunu görmüyorum.
wasamasa

1
@wasamasa Üzgünüm, yorumum çok kötü bir şekilde ifade edildi. Numara kesin, çok şey söylemez ancak açık sorunları vardır söylüyorum: Yeni sorunları, hiçbir yorum, hatta etiketleri veya atamaları sıfır tepki yoktur. Marmelat etkili bir şekilde öldü.
lunaryorn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.