‘Geliştiricilere nasıl güvenli yazılım yazılacağını öğretmiyoruz’ – Linux Vakfı’ndan David A Wheeler, CVE artışını tersine çevirme konusunda



Wheeler, geliştiricilere tedarik zinciri esnekliğini desteklemek için güvenlik temellerini öğretin

kodlama okulu

Konunun önde gelen uzmanlarından biri, kodlama müfredatlarında onlarca yıllık bir eksikliğin ele alınmasının yazılım tedarik zincirinin güvenliği üzerinde derin bir etkisi olabileceğini söylüyor. Günlük Swig.

Özellikle, Linux Foundation’da açık kaynak tedarik zinciri güvenliği direktörü David A Wheeler, güvenliği giriş seviyesi geliştirici kurslarına dahil etmedeki başarısızlık ile az sayıda yaygın hata sınıfına ait güvenlik açıklarının büyük çoğunluğu arasında bir bağlantı kurar.

BT Doktora ve Sertifikalı Bilgi Sistemleri Güvenliği Uzmanı (CISSP) ayrıca Virginia’daki George Mason Üniversitesi’nde yardımcı bilgisayar bilimi profesörü olarak görev yapıyor ve 2020’de ABD Savunma Analizleri Enstitüsü’nde 33 yıllık bir büyüyü tamamladı.

Daily Swig: David, geçmişini ve şu anki rollerinin neler içerdiğini özetleyebilir misin?

David A Wheeler: Ortaokuldan beri bilgisayarları seviyorum ve okulumu bilgisayar danışmanlığı yaparak kazandım. Ayrıca dünyanın ilk ticari, tamamen metin tabanlı çok oyunculu rol yapma oyunu olan Scepter of Goth’un da kısa bir süreliğine bakımını yaptım.

Şimdi George Mason Üniversitesi’nde güvenli yazılımın nasıl geliştirileceğini öğretiyorum – yıllardır bu konu üzerinde çalışıyorum.

Çalışmalarımın çoğu Open Source Security Foundation, OpenSSF ile [whose members include AWS, Google, and Microsoft]. Rolümü bir tür katalizör veya hızlandırıcı olarak görüyorum. Kuruluşların yazılımlarının güvenliğini iyileştirmelerine yardımcı olmak için bir konu uzmanı olarak etrafta dolaşabilirim.

David Wheeler, Linux VakfıDavid A Wheeler, onlarca yıldır yazılımın güvenli gelişimini inceliyor

DS: Uygulama güvenliğini iyileştirmenin önündeki en büyük engeller nelerdir?

DAW: Temel sorun, yazılım geliştiricilere nasıl güvenli yazılım yazılacağını öğretmememizdir.

Ayrı bir kurs veya gömülü olması umurumda değil [in other coding courses] – soru bu değil. Soru şudur: Yazılım geliştiricileri zanaatlarının temellerini öğrenirken, güvenli yazılım geliştirmenin temellerini de öğreniyorlar mı? Ve cevap çoğunlukla “hayır”.

2019 Forrester araştırması, ABD’deki en iyi kodlama okullarından hiçbirinin ve ABD dışındaki en iyi beş bilgisayar bilimi okulundan hiçbirinin bunu öğretmediğini buldu. Başka bir araştırma, yalnızca bir okulun yaptığını buldu – UC, San Diego’da. Onlar için çok iyi, geri kalanına yazık.

DS: Tüm kodlama okullarının, güvenlik temellerini dahil etmek için derslerini hemen yenilediğini hayal edelim. Güvenlik konusunda bilgili yeni bir geliştirici dalgası ortaya çıktıkça, güvenlik açıklarında istikrarlı bir düşüş görecek miyiz?

DAW: Genel olarak, tüm güvenlik açıklarının %90 ila %95’inin nispeten küçük bir ortak güvenlik açığı grubunda olduğu tahmin edilmektedir. [classes].

Bu nedenle, geliştiricileri bunları sistematik olarak önlemeleri için eğitirseniz ve ardından geride kalanları bulmak için araçlar kullanırsanız, gerçekten kaybolan güvenlik açıklarının sayısını en az bir, belki de iki büyüklük derecesinde önemli ölçüde azaltabiliriz.

Ayrıca geçmişte yaratılan sorunları bulup düzeltebilirler.

Şu anda, tespit, müdahale ve kurtarma, dağıtılan sistemlere giren çok sayıda güvenlik açığı nedeniyle boğuluyor, bu nedenle güvenlik açıkları çok daha nadir olduğunda saldırganlara karşı koymak çok daha kolay olacak. Ve bu gerçekten genel olarak ‘sola kaydırma’ argümanıdır: sorunlardan ne kadar erken kurtulursanız o kadar iyi.

DS: Yazılım açıklarının potansiyel olarak ciddi sonuçları göz önüne alındığında, kodlama müfredatında güvenlik neden ihmal ediliyor?

DAW: Eğitim sistemimiz her zaman toplumsal ihtiyaçlara cevap vermiyor. Oracle ve diğer bazı kişiler tarafından 10, 15 yıl önce yazılmış, temelde üniversitelere yalvardıkları bir açık mektup vardı. [to educate them properly].

Ama onlar [universities] öğretmek istediklerini öğretmek istiyorlar ve gerçekten toplumun ihtiyaçlarının ne olduğu önemli değil.

DS: Bu, pek çok eğitimcinin, siber tehditler daha az sayıda ve şiddetliyken zanaatlarını öğrendiği gerçeğini kısmen yansıtabilir mi?

DAW: Üzerinde [early] İnternet insanları çoğunlukla güvenebileceklerini düşündükleri kişilere bağlıydı. Ancak, 90’larda internetin ve dünya çapındaki web’in bu büyümesini bir kez gördüğünüzde, çok hızlı bir şekilde [they realized] hayır, bağlandığınız rastgele bilgisayarlara güvenemezsiniz.

Ancak eğitim muhafazakarlığı o kadar da kötü değil. Güvenliğin sahip olduğu, zamanın testinden geçen şeyleri öğretmek aslında mantıklı. Temel [computing] tasarım ilkeleri biliniyor [about] 1970’lerden beri.

ÖNERİLEN ‘Güvenlik ekipleri genellikle geliştiricilerin AppSec’in kontrolünü ele geçirmesine karşı savaşıyor’: Tanya Janca, DevSecOps’u benimseme yolunda

DS: Güvenli kodlama yerine hızlı kodlamayı tercih eden ticari bir teşvik olabilir mi?

DAW: Belki bir dereceye kadar kâr amacı güdenler için, ama bence kâr amacı güden daha büyük mesele şu ki, eğer nasıl yapacağınızı biliyorsanız [secure development]muhtemelen endüstride iki veya üç kat kazanabilirsiniz [compared to teaching]. Öğretmeyeceksin.

Öğretiyorum, ama bu benim yan işim. Öğretmekten zevk alıyorum. George Mason Üniversitesi bana 20 dakika uzaklıkta ve endüstriye diğer üniversitelerden daha bağlı.

DS: Eğitim sağlayıcılarını güvenliği kodlama kurslarına dahil etmeye nasıl ikna ederiz veya teşvik ederiz?

DAW: Bunun çözülebilir bir sorun olduğunu düşünüyorum – temelde toplumun daha yüksek sesle çığlık atması gerekiyor.

ABD, bilgisayar bilimi de dahil olmak üzere muazzam miktarda para finansmanı derecesi harcıyor. Ödeyeceksek, belki bazı kriterlerimiz olabilir?

DS: ‘Sola kaymanın’ veya DevSecOps’un arkasındaki itici güç, eğitim sağlayıcılarını vurguyu değiştirmeye ikna etmeye yardımcı olabilir mi?

DAW: Ben de öyle düşünmek isterdim ama bence çok daha fazla toplumsal ve sektör baskısı belli bir süre devam ediyor [that will make the difference].

Şu anda DevSecOps [is practised properly by] bir azınlık ve bundan emin olmamız gerekiyor [secure development is practised] sadece çoğunluk değil, aynı zamanda [a baseline] beklenti [of all developers].

ddddWheeler, geliştiricilere genel güvenlik ilkeleri öğretilmiyor – bunları nasıl uygulayacaklarını bir yana, diyor

Yıllar önce, bir çok baskı ve tartışmadan sonra, yazılım mühendisliği üzerine bir kursa güvenliğin eklenmesi için gerçekten çok uğraştım. [the provider] nihayet ‘güvenlik’ kelimesini ekledi – içerik yok, sadece bu güvenlik önemli olabilir!

ACM yazılım mühendisliği müfredat kılavuzu, en azından güvenli yazılımın nasıl geliştirileceğini bilmekten bahseder, ancak temel özelliklerden yoksundur.

Ancak, sürekli vurgu yaparak, yazılım geliştiricilerin temelleri bilmelerini sağlayarak akademiyi ve diğer birçok kuruluşu bir araya getirebileceğimize inanmaya hazırım.

DS: Acemi geliştiricilere hangi temel bilgiler öğretilmelidir?

DAW: Ortak sorunlar nelerdir? Bunları genel olarak nasıl önleyebiliriz? Saldırıya uğrama olasılığını azaltmak için yazılımı nasıl tasarlarsınız? Ve ne tür araçlar geliştiricilerin bununla başa çıkmasına yardımcı olabilir?

Bu genel ilkeler ve bunları uygulama becerisi önemlidir. [skills] ama bugün yoksun.

Daha güvenli yazılım geliştirme haberlerini okuyun

2020’de Linux Vakfı’na bir çalışan olarak katıldığımda yaptığım ilk şey, güvenli yazılım temelleri geliştirme üzerine bir kurs geliştirmek oldu. Şimdi binlerce kişi üye oldu.

George Mason Üniversitesi başlangıçta kursumu iki sömestrde bir yapmayı kabul etti ve çok hızlı bir şekilde, her sömestrde – talep görüyor.

Ama bu isteğe bağlı bir yüksek lisans dersidir. Toplumda, daha derine inen ve daha derine inen insanlara ihtiyacımız var. [become experts]ancak her geliştiricinin temel bilgileri bilmesine de ihtiyacımız var.

DS: Geliştiricilerin güvenlik araçlarını nasıl kullanacaklarını anlamaları ne kadar önemli?

DAW: DevOps yapıyorsanız, hemen hemen bir CI ardışık düzenine ihtiyacınız vardır ve bu, güvenlik araçlarını eklemek için bariz bir yerdir. Ancak geliştirici ne yaptığını bilmiyorsa, aracın onlara ne söylediğini ve bu konuda ne yapacağını bilemez.

Aleti olan bir aptal yine de aptaldır. Aptal değiller – sadece kimse onlara söylemedi. Eğitim ve aletler el ele gider.

Araçlar, bazı şeyleri kaçıracak veya bağlamda gerçekten sorun olmayan şeyleri bildirecektir. Bilgisayar programları tam bağlamı bilmez – bilmez.

Ancak geliştiriciler hangi araçları ve nasıl kullanacaklarını bildikleri sürece, bunu yapabilirler. [some] inanılmaz şeyler.

DS: Son olarak, OpenSSF’nin yazılım tedarik zinciri güvenliğini güçlendirmeyi amaçlayan çeşitli girişimleri hakkında söylenecek bir şey var mı?

DAW: Endüstri, akademi veya hükümetler olsun, hepimiz açık kaynaklı yazılım kullanıyoruz, bu yüzden ilk adımım şu olurdu: OpenSSF’ye katılın. Katılan daha fazla insanı görmek isteriz.

Güvenli yazılım geliştirmeye ve açık kaynaklı yazılımları değerlendirmeye yönelik özlü kılavuzlara derinden dahil oldum. Ve daha önce, OpenSSF açık kaynak projeleri ve güvenlik araştırmacıları için şu konularda kılavuzlar yayınladı: [handling] koordineli [vulnerability] ifşa.

Alpha-Omega Projesi Python Yazılım Vakfı’nı finanse etti ve Eclipse, Node’u finanse ediyor… Rust ile yeni bir ortaklık duyurdular. Güvenlik açıklarını bulmak için bazı araçlar yayınladılar – yine sola kaydırmaya çalışıyorlar.

Ayrıca, SPDX için bir Python kitaplığı için bir araç olan SBOM çalışması için bir miktar fon var. [Software Package Data Exchange]ve bir [enterprise] son kullanıcılar çalışma grubu başlıyor.

İLİŞKİLİ Geliştiriciler, kod incelemeleri sırasında hala güvenlik sorunlarıyla mücadele ediyor, çalışma bulguları



Source link