Yazılım geliştirmede, güvenli kodlama uygulamalarının önemi göz ardı edilemez. Geliştirme ekipleri içinde bir güvenlik kültürünün teşvik edilmesi, dijital sistemlerin bütünlüğünü ve korunmasını sağlamak için çok önemli hale geldi.
Bu konuyu daha derinlemesine incelemek için Secure Code Warrior CEO’su Pieter Danhieux ile röportaj yapma fırsatımız oldu. Pozitif güvenlik kültürünün önemine, tekrarlayan güvenlik açıklarının arkasındaki nedenlere, geliştirme süreçlerini engellemeden güvenli kodlama eğitimini dahil etmeye yönelik stratejilere, oyunlaştırılmış öğrenme deneyimlerinin etkinliğine, güvenli geliştirme eğitiminin düzenli olarak yenilenmesi ihtiyacına ve geliştiricileri güvenli kodlama tekniklerini geliştirmeye teşvik edecek yenilikçi yöntemlere ışık tutuyor.
Güvenli kodlama uygulamaları için geliştirme ekipleri içinde bir güvenlik kültürü geliştirmek ne kadar önemlidir?
Geliştirme kohortu içinde güvenliğin nasıl algılandığını ve eyleme geçildiğini çevreleyen kültür, her şeyin temelini oluşturur ve muhtemelen olumlu güvenlik sonuçlarına ulaşmada ne kadar başarılı olacaklarını yansıtır.
Geleneksel olarak geliştiriciler, AppSec muadilleriyle olumsuz deneyimler yaşamıştır. Geliştiricinin oturduğu yerden bakarsak, güvenlik ekibinden yalnızca bir şeyler ters gittiğinde haber alma eğilimindedirler: güvenlik açısından kodları bozulur veya başka bir geliştiricinin hatasını düzeltmekle yükümlü olurlar. Her ikisi de iş akışlarını eşit derecede rahatsız ediyor ve kendi işleri söz konusu olduğunda, bebeklerine çirkin demekten farklı değil. Özellik sağlama hedeflerine ulaşan güzel, işlevsel kodlar sunmak için yorulmadan çalıştılar; güvenlik başkasının rolüdür ve çoğu zaman kurumsal KPI’lar açısından kod kalitesinin bir ölçüsü değildir.
Her iki ekip arasında kızgınlık güçlü olabilir, ancak geliştiricilerin kod düzeyinde güvenlik açıklarını azaltmada oynayabilecekleri rolü anlamalarının yanı sıra güvenli kodlamayı kendileri için rahat bir şekilde öğrenebilecekleri bir ortam yaratmanın yanı sıra pozitif bir güvenlik kültürünü teşvik etmek, bu ilişkiyi onarmak için çok önemlidir.
AppSec tarafı, güvenlik sorunları yalnızca tanımlanıp bildirilmedikçe, yalnızca gerçekten düzeltildiğinde iş değeri kattıklarını da anlamalıdır. Genel ifadelerden daha ileri gitmeleri ve sorunları önleyebilecek veya hafifletebilecek dile özgü kodlama kalıpları sağlamaları gerekir. Her iki ekip de ortak güvenlik hedefleriyle aynı çizgide olduğunda ve ideal olarak güvenliğin kod kalitesiyle eşanlamlı olması gerektiğini anladığında, önemli risk azaltma için muazzam bir potansiyel vardır.
Güvenli geliştirme eğitimi olmayan şirketlerin genellikle aynı güvenlik açığı türü için tekrar tekrar hata ödülleri ödediği gözlemlenmiştir. Bu kalıpların var olma nedenlerinden bazılarını paylaşabilir misiniz?
Bu şaşırtıcı değil ve geliştiriciler aynı zayıf kodlama kalıplarını tekrar tekrar kullandıklarından, onlarca yıldır aynı tekrarlayan güvenlik açıklarını gördüğümüz gerçeğine geri dönüyoruz (siteler arası komut dosyası çalıştırmayı ve SQL enjeksiyonunu düşünün). En son yapay zeka tarama teknolojisinden, hata ödüllerinden veya klasik statik kod analizi için harcanan zaman ve emekten yararlanıyor olmanız fark etmeksizin, temel neden ele alınmazsa aynı sorunların geri geldiğini göreceksiniz.
İster kestirmeden gitmek, kötü alışkanlıklar ya da bu riski devam ettiren kabul edilmiş öğrenilmiş bir davranış olsun, çözüm eğitim ve doğru kodlama kalıplarının olumlu bir şekilde pekiştirilmesidir, böylece rotalarını düzeltebilir ve döngüyü kırabilirler. Bir endüstri olarak, bugüne kadar iş gücünde veya üçüncül düzeyde uygulanabilir güvenli kodlama eğitimi sağlamayarak geliştiricileri hayal kırıklığına uğrattık; bu riskli davranışları düzeltmek ve güvenliği ön planda tutarak kodlamak için gereken becerileri geliştirmelerine olanak tanıyan doğru araçlara ve öğrenme yollarına ihtiyaçları vardır.
Kuruluşlar, geliştirme süreçlerini önemli ölçüde yavaşlatmadan güvenli kodlama eğitimini nasıl dahil edebilir?
Hızla güvenliğe ulaşmak imkansız değildir, ancak geliştiricilerin iş akışlarını en az kesintiye uğratacak ve yine de anlamlı bir etki sağlayacak şekilde becerilerini geliştirmelerini gerektirir. “Kutuyu işaretleyin” yıllık uyum eğitimi, basitçe yeterli olmayacak; bu çok nadirdir ve kullandıkları dillere ve çerçevelere veya üzerinde çalıştıkları kod tabanlarında karşılaşmaları muhtemel güvenlik açıklarına göre uyarlanmamıştır.
İş dünyasının ve tehdit ortamının sürekli değişen gereksinimlerine göre esneyen ve aynı zamanda geliştiricilerin büyümesine ve mevcut bilgileri üzerine inşa etmesine izin veren çevik öğrenme çözümleri çok daha başarılı ve ilgili olma eğilimindedir. Bu öğrenme yolu, modülleri, gerçek dünyada benzer zorluklar ortaya çıktığında bağlamsal olarak tutması ve yürütmesi daha kolay olan “mikro patlamalara” ayırma eğilimindedir.
Kuruluşlar neden eğitimlerine turnuvaları dahil etmelidir? Güvenli kodlama bağlamında oyunlaştırılmış bir öğrenme deneyiminin etkililiğini tanımlayabilir misiniz?
Her şeye biraz eğlence katmanın büyük bir savunucusuyum ve turnuvalar, bir kuruluşta pozitif bir güvenlik kültürü geliştirmeye yardımcı olmak için güçlü bir araç olabilir. Geliştiriciler için, akranlarına karşı rekabetçi bir düzeyde güvenlik öğrenimi sonuçlarıyla etkileşim kurma ve nerede ölçtüklerine dair net bir görüş elde etme şansı sunarlar.
Müşterilerimizin birçoğu bunu ekip oluşturma ve farkındalık yaratma fırsatı olarak görüyor, liderlik tablosunun zirvesine ulaşanlar için harika ödüller sunulan temalı turnuvalar düzenliyor. Ayrıca, yönetim için geliştirme kohortundaki güvenlik tutkunlarını belirlemek için bir şanstır, bu da tutkuyu turnuva sona erdikten çok sonra bile canlı tutmak için zorlu güvenlik şampiyonlarının atanmasıyla sonuçlanabilir.
Güvenli geliştirme eğitiminin tazelenmesi ne kadar önemlidir? Bu seanslar ne sıklıkta yapılmalı?
Yılda yalnızca bir kez uygulanan herhangi bir beceri geliştirme programını uygulamak tamamen anlamsızdır. Geliştiriciler diğer görevlere odaklanırken iki kat daha hızlı çalışması için onlara birkaç video atmak, kuruluştaki güvenlik açıklarını azaltmak veya kötü alışkanlıkları ve aktif olarak kullanımda olan kodlama kalıplarını düzeltmek için tek bir şey yapmaz.
OWASP İlk 10’u 20 yılda çok fazla değişmedi, ancak kullandığımız teknolojiler büyük ölçüde değişti. Artık farklı amaçlar için kod yazıyoruz: full-stack, gömülü, mobil, API’ler… ve bu teknolojilerin çoğunda farklı kodlama kalıpları ve yaklaşımları gerektiren farklı biçimlerde güvenlik açıkları var. Güvenlik açıklarına ayak uydurmaya çalışmak yerine dillerin veya yığınların yeni sürümlerine yakın olmak çok daha önemlidir.
İdeal olarak, eğitim, kuruluşla en alakalı sorunların üstesinden gelmek için sık sık çalıştırılan çekirdek oturumlarla ihtiyaç duyulduğunda küçük ve sindirilebilir olmalıdır (örneğin, sorun izleme sistemlerine entegre edilmelidir). Uygulamalı olmalı, iş günlerinde görecekleri kod ve senaryoları kopyalamalıdır. İş akışlarının bir parçası olarak minimum bağlam değişikliği ile eğitime kolay erişimle birlikte eğitim için yeterli zaman verilmelidir. Gerçekten bu kadar önemli.
Güvenli kodlamanın önemi göz önüne alındığında, geliştiricileri güvenli kodlama tekniklerini geliştirmeye sürekli olarak teşvik etmek için hangi yenilikçi yöntemler veya stratejiler kullanılabilir?
Her gün yeni (ve potansiyel olarak güvensiz) yapay zeka geliştirme araçlarının ortaya çıktığı bu çağda, geliştiricilerin kod düzeyinde siber riski azaltmada oynadıkları rolü anlamalarına her zamankinden daha fazla yardımcı olmamız gerekiyor. Güvenli kodlama sonuçlarını daha fazla önemsemek için eğitilmeleri ve kendi işlerinde ortak güvenlik açıklarını tamamen belirleyip bunlardan kaçınma becerileriyle donatılmaları gerekir.
Yüksek düzeyde güvenlik olgunluğuna sahip kuruluşlar, öğrenme yolculuklarına, kariyer yollarına ve bilgi paylaşımına odaklanan güçlü, geliştirici odaklı güvenlik programlarına sahiptir. Güvenli kodlamayı genellikle geliştirme KPI’larının bir parçası haline getirirler, ancak aynı şekilde sürekli eğitimi ve değerlendirmeleri geçmeyi teşvik ederler.
Güvenlik bilincine sahip geliştiriciler aranır, meslektaşları tarafından büyük saygı görür ve daha ortalama geliştiriciler arasında öne çıkmalarına yardımcı olan statünün keyfini çıkarır. Bundan faydalanmak ve güvenli kodlamayı acısız, teşvikli ve hatta daha ilginç projelere bağlı hale getirmek güçlü bir motive edici olabilir.