2018'de açık kaynak durumu: Kod 31 milyardan fazla satıra katkıda bulundu ve güvenlik açıklarının sayısı 16.000'i aştı

Birkaç yıl önce, "açık kaynak" hala küçük bir kıvılcımdı ve şimdi bir çayır yangını haline geldi. Geçtiğimiz 2018'de şirketler açık kaynak yeteneklerini aktif olarak güçlendirdiler. IBM, RedHat'ı 34 milyar dolara satın aldı ve Microsoft, GitHub'ı 7.5 milyar dolara satın aldı.

Açık kaynaklı yazılım patlarken, güvenlik ihlalleri riski de artıyor. SNYK, 500'den fazla açık kaynak kullanıcısına ve bakımcısına araştırma raporları dağıtmakla kalmadı, aynı zamanda SNYK tarafından dahili olarak izlenen ve korunan yüz binlerce projenin güvenlik açığı verilerini de izledi ve harici araştırmalarla birleştirerek 2019 açık kaynak güvenlik durum raporunu yayınladı.

İlk olarak, birkaç önemli sonuca bakalım:

  • 2017'den 2018'e, paket yönetim araçlarıyla indekslenen açık kaynaklı paketlerin sayısı patladı. Bunlar arasında Maven Central% 102, PyPI% 40, NPM% 37, NuGet% 26 ve RubyGems% 5,6 arttı .
  • Uygulamalardaki güvenlik açıklarının sayısı sadece iki yılda% 88 arttı. 2018'de SNYK tarafından izlenen Rhel, Debian ve Ubuntu'daki güvenlik açıklarının sayısı 2017'ye göre dört kattan fazlaydı.
  • En popüler 10 varsayılan Docker görüntüsünün her biri, en az 30 güvenlik açığı bulunan sistem kitaplığı içerir ve bunların% 44'ü Docker görüntüsünü güncelleyerek bilinen güvenlik açıklarını giderebilir.
  • Anket, açık kaynak geliştiricilerin% 37'sinin CI sırasında herhangi bir güvenlik testi yapmayacağını, geliştiricilerin% 54'ünün Docker görüntülerinde güvenlik testi yapmayacağını ve açık kaynak paketinde güvenlik açığının ortaya çıkmasından güvenlik açığının onarımına kadar geçen sürenin aşabileceğini göstermektedir. İki yıl.
  • Ankete göre, ankete katılanların% 81'i geliştiricilerin açık kaynak güvenliğinden sorumlu olması gerektiğine inanıyor ve katılımcıların% 68'i geliştiricilerin Docker konteyner görüntülerinin güvenliğinden sorumlu olması gerektiğine inanıyor; ancak açık kaynak bakımcılarının yalnızca onda üçü yüksek güvenliğe sahip olmaları gerektiğine inanıyor Bilgi.

Açık kaynak uygulaması

Açık kaynaklı yazılımın modern yazılım geliştirme üzerinde derin bir etkisi olmuştur ve bu etki her yıl artmaktadır. GitHub raporuna göre, 2018'deki yeni kullanıcı kaydı sayısı toplamda önceki altı yılı aştı ve platformda oluşturulan yeni kuruluş ve yeni depo sayısı% 40 arttı. Buna ek olarak, açık kaynak yazılım, dillerin ve platformların gelişimini destekler ve sektörün büyümesini etkiler Forrester, açık kaynak yazılımın iş teknolojisi stratejisinin önemli bir parçası olduğunu bildiriyor.

Daha önce de bahsettiğimiz gibi, teknoloji şirketleri açık kaynağı yoğun bir şekilde kullanıyor.Her programlama dili ekosisteminde, giderek daha fazla açık kaynak kitaplığı endeksleniyor ve büyüme oranlarının bir kısmı çift haneli hatta üç haneli büyüme elde etti. Büyüme (Maven Central% 102 üç haneli büyüme elde etti.)

Açık kaynak kullanımı karayolunda. 2018'de Java paketleri iki katına çıktı ve NPM yaklaşık 250.000 yeni paket ekledi.

Linux Foundation raporuna göre, açık kaynak katkıda bulunanlar 2018'de 31 milyardan fazla kod satırı gönderdiler. Bu kodlar gerçek üretim ortamlarında kullanılmaya başlandığında, bu koda sahip olan, bakımını yapan ve kullananların belirli sorumlulukları taşıması gerekiyor. riskten kaçının.

CVE liste raporuna göre, 2017'de toplam 14.000'den fazla güvenlik açığı vardı ve CVE tarafından bir yıl içinde bildirilen güvenlik açıklarının rekorunu kırdı. 2018'de güvenlik açıklarının sayısı artmaya devam ederek 16.000'i aştı.

Anketimizde, farklı ekosistemlerdeki farklı yazılım paketlerinin indirilme sayılarına dikkat ettik ve bu açık kaynak yazılım paketlerinin kullanıcı benimsemesine nasıl dönüştürüldüğüne de dikkat ettik.

Python kayıt defterine göre, PYPI 2018'de 14 milyardan fazla indirmeye sahip, bu da 2017 raporundaki 6,3 milyar indirme sayısına kıyasla iki kat daha fazla. Aşağıdaki tablodan, Ağustos ayında indirmelerde keskin bir artış olduğunu görebiliriz, bunun nedeni LineHaul'un (PYPI'nin istatistiksel toplama servisi) indirmelerin çoğunun Ağustos ayından önce kaybolmasına neden olan başarısızlığıdır. .

Ek olarak, açık kaynak yazılımların tüketimi de büyük bir sıçrama yaptı.PYPI'den indirilen python paketlerinin sayısı orijinalin iki katı ve NPM'den indirilen javascript paketlerinin sayısı şaşırtıcı bir şekilde 317 milyara ulaştı.

NPM kaydı, tüm JavaScript ekosisteminin çekirdeğidir. Geçtiğimiz birkaç yılda, eklenen veya indirilen yazılım paketlerinin sayısı istikrarlı bir şekilde arttı ve yalnızca Aralık 2018'de ayda 30 milyardan fazla kez gerçekleşti.

Docker'ın benimsenmesi, açık kaynaklı yazılımların büyümesini de teşvik etti.Docker'ın 2018'de iki haftada bir 1 milyardan fazla konteyner indirdiği bildirildi. Şu an itibariyle bu sayı yaklaşık 50 milyar. Yalnızca 2018'de Docker Hub'a 1 milyondan fazla yeni uygulama eklendi.

Risk ve etki

Yazılım paketlerinin sayısının artmasıyla birlikte güvenlik açıklarında da artış var.Yeni güvenlik açıklarının sayısının 2018'de 16.000'i aşarak yeni bir yüksekliğe ulaştığını daha önce belirtmiştik.

GitHub tarafından yayınlanan Octoverse raporunda, Güvenlik en popüler proje entegrasyon uygulaması haline geldi. Gartner endüstri analistleri de yakın tarihli bir uygulama güvenliği raporunda şirketlerin güvenliği uygulama yaşam döngüsünde olabildiğince erken test etmesi gerektiğini belirtti.

Ne kadar çok açık kaynak yazılım kullanılırsa, diğer kişilerin kodu doğal olarak koda dahil edilir ve kümülatif risk o kadar büyük olur, çünkü bu kodlar şu anda veya gelecekte güvenlik açıkları içerebilir. Tabii ki buradaki risk sadece kodun güvenliğiyle ilgili değildir, aynı zamanda kullanılan kodun lisansını ve kodun lisansın kendisini ihlal edip etmediğini de içerir.

Ankete yanıt verenlerin% 43'ünün en az 20 doğrudan bağımlılığı var ve bu da şüphesiz bu içe aktarılan kütüphanelerin kaynak kodunun gelişmiş bir şekilde izlenmesini gerektiriyor. Aslında, geliştiricilerin yalnızca üçte biri ciddi güvenlik açıklarını bir gün veya daha kısa sürede çözebilir.

"Kuruluşlar, kuruluş tarafından geliştirilen ve kullanılan yazılımın güvenlik ve yasal standartlara, kurallara ve düzenlemelere uygun olduğundan emin olmak için yazılım varlıklarını (sürüm kontrolü ve yapılandırma yönetimi sistemleri gibi) içeren depoları denetlemek için düzenli olarak SCA araçlarını kullanmalıdır. Ek olarak, uygulama geliştiricileri de Kullanmayı planladıkları bileşenleri kontrol etmek için SCA araçlarını kullanabilirsiniz.

Günümüzde açık kaynak bağımlılıkları olmadan kod yazmak neredeyse imkansızdır, bu nedenle bağımlı kitaplıkları doğru bir şekilde izlemek bir sorun haline gelir. Bağımlılıklar arasındaki uyumluluğu korurken güvenlik açıklarını ortadan kaldırmak için ne gibi önlemler alınabilir?

NPM, Maven ve Ruby'deki çoğu bağımlılık, birkaç iyi tanımlanmış kitaplık tarafından istenen dolaylı bağımlılıklardır. Araştırmada Snyk, 1 milyondan fazla anlık görüntü projesini taradı ve dolaylı bağımlılıklardaki güvenlik açıklarının toplam güvenlik açıklarının% 78'ini oluşturduğunu buldu.Bu, bağımlılık ağacına ilişkin içgörülerimizi daha da geliştirmemiz ve savunmasız yolların nüanslarını vurgulamamız gerektiğini gösteriyor.

Açık kaynak bakımcılarının güvenlik durumu

Çoğu geliştirici ve bakımcı, ürün oluştururken ve kod yazarken güvenliğin çok önemli olduğu konusunda hemfikir olsalar da, onlar için açık kaynak projeleri oluştururken başvuracakları bir "ders kitabı" kuralı yoktur, bu nedenle Güvenlik standartları çok farklı olabilir.

Bu yılki ankette, çoğu kullanıcı (10 kullanıcıdan ortalama 6,6'sı) güvenlik teknolojilerini orta düzeyde seçti ve yanıt verenlerin% 7'si mevcut güvenlik teknolojisi seviyesinin düşük olduğuna inanıyordu.

İlgili mesleki bilgi sıralamasına göre, 2019'da sıralamalarda özellikle Yüksek ve Düşük olmak üzere bazı değişiklikler gerçekleşti. Yüksek% 30, Orta% 63 ve düşük% 7 idi. 2017'de yalnızca Yüksek % 17, düşük% 26'yı oluşturdu.

Soruşturma sırasında, bakım personelinin genellikle projenin işlevsel yönlerine zaman ve deneyim harcadığını ve genellikle güvenliği göz ardı ettiğini gördük.

güvenlik denetimi

Kod incelemesinin bir parçası olarak, güvenlik denetimleri, her iki tarafın da en iyi güvenli kod uygulamalarını takip etmelerini veya başka bir yaklaşım benimsemelerini, yani statik veya dinamik uygulama güvenlik testi gibi farklı güvenlik denetimi varyantları çalıştırmalarını gerektirir.

İster manuel denetim ister otomatik denetim olsun, bunlar uygulamalardaki güvenlik açıklarını tespit etmenin ve azaltmanın önemli bir parçasıdır ve daha sonra açığa çıkma ve veri sızıntısı riskini azaltmak için geliştirme aşamasında mümkün olan en erken zamanda düzenli olarak gerçekleştirilmelidir.

Geçen yıl, ankete katılanların% 44'ü hiç güvenlik denetimi yapmadıklarını belirtti, ancak bu yıl bu sayı çok daha düşük, kullanıcıların yalnızca% 26'sı kaynak kodunu denetlemediğini söyledi. Geçen yılki raporla karşılaştırıldığında, bu yıl tekrarlanan denetimler de olumlu bir eğilim gösterdi .. Üç aylık ve yıllık bazda, kullanıcıların% 10'u sıklıkla kod denetliyor.

Makalenin telif hakkı Geekbang InfoQ'a aittir ve izinsiz çoğaltılamaz.

Bir başka "delik kazma ekranı" telefonu olan Huawei nova 4 resmi olarak piyasaya sürüldü
önceki
"Klon": Aşk hastası olsa bile, tabu önemsiz değildir
Sonraki
2016'daki ilk on lazer teknolojisi ilerleme envanteri
Yeni Mercedes-Benz A-Serisi: Yeni nesil lüks otomobiller nasıl görünmeli?
Bu yıl Bahar Festivali'nde, Çin'in ilk sert bilim kurgu filmi "The Wandering Earth" olan bir bilim kurgu filmi var.
Hediyeleri seçenler için bu Noel hediyeleri
Nihai kılavuz: Java geliştirme için Visual Studio Code nasıl kullanılır?
"TFBOYS" "Haberler" 190401 Wang Yuan, markanın CEO'su hakkında büyüleyici bir ton ve süper bir ifade ile yorum yaptı
Lianzhong'un kumarı soruşturuldu, 20 yıllık iniş ve çıkışlar utanç verici
Mobil Fotoğrafçılık: Yolda 12 ülke, 27 şehir, 158 gün
190401 Wang Yuan, marka CEO'sunun hassas tonu ve süper ifadesi hakkında yorum yaptı
"The Legend of the Vikings", yerinde patlayan sıcak kanlı bir Amerikan draması
190401 IKUN-kun'un çift ok aşkı Cai Xukun hayran mektubunu paketleyip eve gönderiyor
Yazılım geliştirmenin kalitesinden kim sorumludur?
To Top