Yazılım Tedarik Zincirinin Ortak Faydaları ve Paylaşılan Tehditleri


Belki de yazılım tedarik zincirinin belirleyici niteliği karmaşıklıktır. Modern dünyanın üzerinde çalıştığı sayısız kod satırının ortasında hatalar, güvenlik açıkları ve kötü niyetli manipülasyonlar için potansiyel olarak sonsuz bir alan vardır.

Yazılım geliştirmenin doğası aynı zamanda kod ve araçların sürekli olarak yeniden kullanıldığı ve bunların da başka uygulamalar oluşturmak için kullanıldığı anlamına gelir. Buradan, bir uygulama veya kod deposuna yerleştirilmiş olabilecek güvenlik açıkları, kullanıldığı her yere hızla yayılır.

Bu karmaşık, hızlı hareket eden tedarik zincirinde, güvenlik borcu hızla birikir. Hatalar, sorunlar ve güvenlik açıkları nihayet piyasaya çıkan yazılımın derinliklerine gömülür. Bu noktadan sonra gereken tek şey, doğru yerde bir başarısızlık veya felakete yol açabilecek özellikle yetenekli bir düşmandır.

Yazılım geliştirme üzerindeki baskılar

Tüm dünyamız yazılımla çalışıyor. Bu durum son yıllarda daha da belirgin hale geldi ve yeni uygulamalara, araçlara, ürünlere ve hizmetlere yönelik taleplerde patlama yaşandı. Bu, dünya nüfusunun bu yıl sonuna kadar 28,7 milyona ulaşması beklenen ve son dört yılda 3,2 milyon artan yazılım geliştiricilere yönelik artan talebe de yansıyor.

Bununla birlikte, sorunlar diğer her şeyle birlikte büyür. Talepteki bu patlama, yazılım geliştiricilerin üzerinde büyük bir baskı oluşmasına neden oldu. Onlardan daha hızlı gelişmeleri, daha fazlasını yapmaları ve daha sıkı teslim tarihlerine kadar teslim etmeleri isteniyor. Elbette bu, ürünün nihai kalitesi üzerinde zararlı etkiler yaratma konusunda büyük bir potansiyele sahiptir.

2022 Sonbahar AppSec Göstergemiz, geliştiricilerin neredeyse yarısının, yani %45’inin, gittikçe sıkılaşan son teslim tarihlerini tutturmak için aslında önemli güvenlik adımlarını atlayacağını ortaya çıkardı. Nedenini anlamak zor değil; geliştiricilerin %80’i bu önemli güvenlik süreçlerinin bile teslimatı geciktirdiğini kabul ediyor. AppSec göstergesi, ankete katılanların %74’ünün düzenli olarak güvenli olmayan uygulamalar yayınladığını itiraf ettiğini ortaya çıkardı. Üstelik, iyileştirme altındaki her 3 sorundan 1’i, görünüşe göre test veya geliştirme aşamasına takılmadan üretime geçiyor.

Dahası, üretime aktarılan kodun büyük miktarı, kod inceleme süreci üzerinde baskı oluşturuyor. Bu, titiz bir konsantrasyon ve odaklanma gerektiren bir aşamadır ve bunu yürüten uzmanlar, aşırı çalışma ve tükenmişlik gibi sorunlarla karşı karşıya kalabilirler. Bu baskılar tek bir uygulama veya hizmette riskli hale gelebilir, ancak aynı zamanda müşterilere bir sürüm çıktığında veya diğer geliştiriciler bunun üzerine inşa edildiğinde yazılım tedarik zinciri boyunca herhangi bir zamanda ortaya çıkabilirler. Bu sürümler zincirin bir sonraki halkasına aktarıldıkça, onlarla birlikte gelen hatalar ve kusurlar da aynı şekilde aktarılır.

Tek bir bağlantıda olabilecek şey budur, ancak bu tedarik zincirindeki uğultulu aktörler bataklığına bakarsak, göze çarpan yapısal sorunları da gözden kaçırmak neredeyse imkansızdır.

Açık Kaynak

Hata yapmayın, modern yazılım geliştirme, Açık Kaynak’ın ortak felsefesine dayanır. Bu, insanların kodlarını kamuya açık hale getirdiği ve böylece herkesin bu yazılımı kullanmasına, değiştirmesine ve dağıtmasına olanak tanıyan bir tasarım felsefesidir. Bu, hem açık kaynak hem de özel sektördeki yazılım geliştiriciler için temel bir kaynak haline geldi.

Rakamlar da bunu gösteriyor. 2024 Açık Kaynak Güvenliği ve Risk Analizi Raporu’ndaki bir rapor, açık kaynak bileşenlerinin neredeyse her yerde olduğunu ortaya çıkardı. Gerçekten. Rapor, incelediği tüm kod tabanlarının %96’sının açık kaynak bileşenleri içerdiğini buldu. Sadece neredeyse tüm uygulamalarda bulunmuyor, aynı zamanda çok da var. Rapor, incelenen kod tabanlarındaki kodun dörtte üçünden fazlasının (%77) açık kaynak olduğunu ekliyor. Daha da ileri giderek, “taranan her endüstri kod tabanının açık kaynak içerdiğini – çoğu %99 ile %100 arası yüzdelerde” olduğunu ortaya koyuyor.

Açık kaynak felsefesi ne kadar iyi niyetli olursa olsun, açıklığı her türlü hataya izin verir ve yazılım geliştiricilerin ona olan güveni bu hataları özellikle tehlikeli hale getirir.

Bu tehlike iki alandan kaynaklanıyor; hem tamamen masum hem de kötü niyetli. İlk basit nokta, yazılım tedarik zincirinin tamamında kullanılan açık kaynaklı bileşenlerin büyük ölçeğinin, güvenlik açıkları için büyük bir alan yaratmasıdır. Aslında yazılımın katlanarak büyümesi göz önüne alındığında, bu kapsam genişlemektedir.

Aslında bu devasa kategoride her geçen gün yeni güvenlik açıkları açılıyor. Hızlı bir Google araması, açık kaynaklı araçlarda neredeyse her gün ortaya çıkan yeni güvenlik açıklarını ortaya çıkaracaktır. Örneğin son zamanlarda güvenlik araştırmacıları, GOG’un Git Hizmetinde yaygın olarak kullanılan dört güvenlik açığı buldu; bunlardan üçü kritik önem derecesine sahip.

Elbette buradaki güvenlik açıkları düzenli olarak tüketicilerin ve işletmelerin eline geçiyor. EVAsec’teki güvenlik araştırmacıları yakın zamanda, yazılım kitaplıklarını mevcut uygulamalara dahil etmek için kullanılan açık kaynaklı bir araç olan CocoaPods’ta (bunlardan biri on yıllık) üç güvenlik açığı keşfetti. Araştırmacılar, CocoaPod’ların üç milyonun üzerinde uygulamada bulunabileceğini ekledi: “Mobil uygulama ekosistemine yönelik böyle bir saldırı, hemen hemen her Apple cihazını etkileyebilir ve binlerce kuruluşu, feci mali ve itibari zararlara karşı savunmasız bırakabilir.”

Bunlara CocoaPod’lar tarafından hızlı bir şekilde yama uygulandı, ancak bunların ilk önce “etik bilgisayar korsanları” olarak bilinen güvenlik araştırmacıları tarafından keşfedilmesi nedeniyle. Kötü niyetli bir tarafça keşfedilmiş olsaydı sonuç, dünyanın her yerindeki Apple ürünleri kullanıcıları için yıkıcı olabilirdi.

Öte yandan saldırganlar bunu biliyor ve sonuçta her sektöre girecek olan ortak kaynak akışında yer edinmek için sürekli olarak açık kaynak bileşenlerini kötüye kullanmaya ve bozmaya çalışıyor. Bu bileşenlerden birinde güvenlik açığı bulunması, kullanıldığı her yerde güvenlik açığı oluşmasına neden olabilir.

Aslında açık kaynak tedarik zincirine yönelik saldırılar son yıllarda hızla arttı. Sonatype, 2023 yılında açık kaynak tedarik zincirine yönelik 245 binin üzerinde saldırı gördüklerini ve bir önceki yıla göre yüzde 280 büyüme sergilediklerini açıkladı.

Bunun özellikle yıkıcı bir örneği şu anda oluyor – Polyfill.io, diğer binlerce web sitesinin belirli bir tarayıcının farklı sürümlerinden ortaya çıkan farklılıkları ortadan kaldırmak için kullandığı son derece popüler bir javascript CDN’sidir. 2024’ün başlarında yeni bir firmanın alanı devralmasının ardından Polyfill.io CDN, jstor ve Dünya Ekonomik Forumu da dahil olmak üzere cdn.polyfill.io’yu içeren 100.000’den fazla web sitesine kötü amaçlı javascript dağıtmaya başladı.

Tedarik zinciri invasion

Elbette saldırganların tedarik zincirine bulaşmak ve belirli bir saldırının etkinliğini artırmak için açık kaynak bileşenlerine olan temel güveni kötüye kullanmasına gerek yok. Aslında, Enterprise Strateji Grubu’nun 2024 yılında yaptığı bir anket, kuruluşların %91’inin önceki 12 ayda bir yazılım tedarik zinciri olayı yaşadığını ortaya çıkardı. Bu olayların en önemli vektörü, üçüncü taraf kodundaki güvenlik açıklarından kaynaklanan sıfır gün istismarlarıydı.

Yaygın olarak kullanılan uygulamaları sağlayan yazılım şirketleri de önemli bir hedeftir. 2020 SUNBURST saldırılarında saldırganlar, Solarwinds’in amiral gemisi altyapı izleme ve yönetim platformu olan Orion’un güncelleme mekanizmasına kötü amaçlı kod yerleştirdi ve potansiyel olarak bu kötü amaçlı kodu, uluslararası işletmeler, hükümetler ve çok daha fazlası dahil olmak üzere güncelleme yapan tüm müşterilere yaydı. Neyse ki bu saldırı durduruldu ancak saldırganlar başlangıçta ilk tavizi verdikten yalnızca aylar sonra.

Yapay Zekace

İleriye baktığımızda, Yapay Zeka iyi de olsa kötü de olsa oyunun kurallarını değiştirebilir.

ChatGPT gibi halka açık temel LLM’ler bile yazılım geliştiriciler için vazgeçilmez araçlar haline geldi. Yukarıda belirtilen baskılar göz önüne alındığında, bu araçlar artık geliştiricilerin daha da hızlı kod yazmasına olanak tanıyor. Ancak bu araçlar hatasız değildir ve ürettikleri koda hatalar ekledikleri çok sayıda kayıtlı durum vardır. Bu araçların kod çıktısını ölçeklendirme yeteneğinin, büyük olasılıkla o kod içindeki güvenlik açıklarının ölçeklendirilmesiyle sonuçlanacağını düşündüğümüzde başka bir risk ortaya çıkıyor.

Aslında Stanford Üniversitesi’nde yakın zamanda yapılan bir araştırma, yapay zeka yardımı olmadan yazılan kodun genel olarak daha güvenli olduğunu gösterdi. Kod yazmalarına yardımcı olmak için yapay zeka araçlarını kullanan çalışma katılımcılarında önemli ölçüde daha fazla güvenlik açığı ortaya çıktı. Ancak daha da önemlisi, bu yapay zeka araçlarını kullananlar, yazdıkları kodun aslında emsallerinden daha güvenli olduğunu hayal ettiler. Makalenin yazarları şu notu veriyor: “Yapay zeka asistanına erişimi olan katılımcıların programlama görevlerinin çoğu için güvenlik açıkları oluşturma olasılıkları daha yüksekti, ancak aynı zamanda kontrol grubumuzdakilerle karşılaştırıldığında güvenli olmayan yanıtlarını güvenli olarak derecelendirme olasılıkları da daha yüksekti. ”

Henüz başınız dönüyor mu?

Özellikle bunların güvenli yazılım oluşturmak ve kullanmak için hepimizin güvendiği tedarik zincirleri olduğunu düşündüğümüzde, başa çıkılması baş ağrısı yaratacak kadar karmaşık bir durumdur. Bir bakıma sorun, bu uzun ve karmaşık tedarik zincirlerini görmenin gerçekte ne kadar zor olduğuyla ilgili. Aslında bunlar çoğu kişi için görünmez. Cycode’un 2024 yılında yaptığı bir anket, BT profesyonellerinin %72’sinin yazılım tedarik zinciri güvenliğini en büyük kör noktaları olarak nitelendirdiğini ortaya çıkardı.

Bu sorunların yalnızca tedarik zincirinin sonunda, yani iş nihayet kullanıcıların eline geçtiğinde zarar vermediğinin farkına varmak da önemlidir. Aslında bu sorunlar ortaya çıkabilir ve zincirin herhangi bir noktasında yıkıma yol açabilir; özellikle de bu zincirin farklı halkalarının aynı zamanda kullanıcı olarak da nitelendirilebilmesi nedeniyle. İşletmelerin kendilerini hem potansiyel kurbanlar hem de yeni sorunların potansiyel kaynakları olarak düşünmeleri gerekiyor.

Bireysel bir işletmenin bu sorunla sistematik düzeyde mücadele etmek için yapabileceği sınırlı miktarda vardır; bu, yazılıma olan inanılmaz talebin ve sınırlar, sektörler ve işletmeler arasında daha geniş korkulukların bulunmamasının bir sonucudur. Bununla birlikte, yazılım tedarik zinciri güvensizliğinin kurbanı veya yaratıcısı olmadıklarından emin olmak nispeten basit bir iştir.

Yazılım geliştirme sürecinde ortaya çıkan güvenlik açıklarını tespit edebilmek için CI/CD iş akışına entegre edilen sürekli otomatik taramayla tüm tehdit ortamının doğru bir resmini sunabilen güçlü bir AppSec programıyla başlayabilir. Üstelik Sıfır Güven yaklaşımı, tedarik zinciri riskinin azaltılmasına büyük ölçüde yardımcı olacak, kuruluşların varlıklarının ve üçüncü taraf bileşenlerinin geliştirme boyunca kapsamlı bir şekilde incelenmesini ve riskleri dengelemek için doğru miktarda şüpheyle ele alınmasını sağlayacaktır.

Bu risklerle mücadele etmemenin bedeli malum. Ancak siber saldırı tehdidi, itibar kaybı, gelir kaybı veya müşteri kaçışı işletmeleri harekete geçmeye sevk etmese bile, düzenleme harekete geçebilir. Avrupa Birliği’nin NIS2’si ufukta görünüyor ve Ekim 2024’te yürürlüğe girecek. Genel Veri Koruma Yönetmeliği’ne benzer şekilde, NIS2 de uyumsuzlara ağır para cezaları getiriyor. Ancak GDPR’den farklı olarak uyumlu kuruluşların tedarik zincirlerinin güvenliğinden sorumlu olmasını sağlar. Bu, her bir işletme ve kuruluşun, kendi yazılım sağlayıcılarının ve ortak kuruluşlarının temel güvenliğini hesaba katması ihtiyacının altını çizmelidir.

Yazılım tedarik zinciri hepimizin güvendiği bir kanaldır. Sonuç olarak, o zincirdeki her halka, yalnızca bağlandığı halkalar kadar iyidir. Hem ürettikleri hem de aldıkları yazılımın güvenliğini kapsamlı bir şekilde değerlendirmek, her bir tarafın görevidir. Bu sadece işletmeler için kişisel çıkar meselesi değil aynı zamanda kişisel dürüstlük meselesidir.

Yazar Hakkında

Yazılım Tedarik Zincirinin Ortak Faydaları ve Paylaşılan TehditleriFrank Catucci, Invicti’de CTO ve Güvenlik Araştırması Başkanıdır. Ölçeklenebilir uygulama güvenliğine özel mimari tasarlama, işlevler arası mühendislik ve ürün ekipleriyle ortaklık kurma konusunda 20 yılı aşkın deneyime sahip küresel bir uygulama güvenliği teknik lideridir. Frank, OWASP Bölüm Başkanı’dır ve OWASP hata ödülü girişimine katkıda bulunmuştur ve son olarak Data Robot’ta Uygulama ve Ürün Güvenliği Başkanı olarak görev yapmıştır. Bu görevden önce Frank, Gartner’da Uygulama Güvenliği ve DevSecOps Kıdemli Direktörü ve Güvenlik Araştırmacısı olarak görev yaptı ve aynı zamanda Qualys için Uygulama Güvenliği Direktörü olarak görev yaptı. Frank ve karısı, iş ve bir şeyleri hacklemenin dışında bir aile çiftliği işletiyorlar. Açık havanın tutkulu bir hayranıdır ve her türlü balık tutmayı, tekneyle gezmeyi, su sporlarını, yürüyüşü, kamp yapmayı ve özellikle de arazi bisikletlerini ve motosikletleri sever.

Frank’e şu adresten çevrimiçi olarak ulaşılabilir: [email protected] ve şirketimizin web sitesinde https://www.invicti.com/



Source link