BAIBUSEC Header

Kimlik ve Erişim Yönetimi

Siberle kalın, güvende kalın!

DevSecOps Kültürü: Yazılım Geliştirme Sürecine Güvenliği Dahil Etmek

Hazırlayanlar: Şevval Kanberoğlu ve Çağrı Ceyhan 1)DevSecOps Nedir? 1.1. DevSecOps’un Tanımı ve Ortaya Çıkışı DevSecOps terimini açıklayabilmek için öncelikle DevOps’un ne anlama geldiğini bilmek gerekir. DevOps, IT (ınformation Technologies) departmanının iki ana bileşeni olan geliştirme(develop) ve operasyon(operations) birimlerinin beraber çalışmasıdır ve yazılım geliştirme yaşam döngüsü(SDLC) boyunca devam eden bir süreç bileşenidir. Bu çalışma sürecin yürütülmesi ve denetlenmesini aynı anda mümkün kılar. Ancak bu yapının en büyük zafiyeti ürünün güvenlik tarafındaki gereksinimleri hep en son basamak olarak bırakılmasıydı. DevOps sürecinde güvenlik, ürün üretim sürecinin en son adımında yer almaktaydı. Bu sebeple ürünün güvenlik tarafındaki açıkları, eksiklikleri vb. ürün yayımlandıktan sonra fark ediliyor ve düzenlenmek zorunda kalınıyordu. Bu durum kurumlara mali ve operasyonel yük katıyordu. Bu eksiklikler yeni ürün geliştirmesi tarafını da aksatıyordu. Bundan dolayı güvenlik son kontrol yerine otomatikleştirilip sürecin içerisine yayıldı. 1.2. DevSecOps’un Kapsamı CI/CD(continuous ıntegration/continuous delivery), yazılım geliştirme sürecinde manuel kod dağıtımı yerine otomasyonu benimser ve bu süreci optimize eder. Bu süreç, modern yazılım  süreçlerinin ana fikridir.  CI, kod geliştirme sürecinde her yazılan adımda kod birleştirme işlemi otomatik testte doğrular ve bu sayede yazılım geliştirme sürecinde hatalar daha erken fark edilir. CD, CI sonrasında yazılan kod geçici olarak ana kodda denenir ve ana ürün öncesi olası hatalar daha çabuk test edilir. Bu adıma Delivery(teslimat) denir. Diğer bir kavram deployment(dağıtım), son adımın otomatikleştirilmesi ile oluşturulur. Kurumlar risk toleransyonuna, test kapsamlarına vs. göre bu iki kavramdan birini benimserler. Shift left security, verilen isim dolayısıyla güvenliği sola yani başa kaydırır. Bu da önceden kullanılan tüm testi bitirelim en son güvenlik kalsın anlayışının aksine güvenlik basamağını ürün üretim sürecinin; tasarım, kod geliştirme, commit/push sırasında ve CI/CD adımlarının erken adımlarına da ekler. Bu süreç güvenlik açıklarının daha kolay tespit edilmesini ve bu sayede düzeltme sürecinin daha kısa sürede tamamlanmasına olanak sağlar. Shift left security, DevSecOps kültürün yapı taşlarından biridir. 1.3. DevSecOps ve DevOps Arasındaki Temel Farklar DevOps kültüründe güvenlik basamağı tüm ürün üretim ve test süreçlerinin sonunda gerçekleştiriliyordu. Bu yöntem sebebiyle herhangi bir açık bulunduğunda bunu kapatmak hem fazla zaman kaybına  hem de pahalı düzeltmelere yol açıyordu. Bunun aksine DevSecOps  güvenliği üretimin her adımına yerleştirerek hatanın bulunma süresini azaltıyor, buna bağlı olarak da sonraki üretimi aksatmıyor. 2) Neden  DevSecOps’a İhtiyaç Duyarız? 2.1. Artan Siber Tehditlerin Etkisi Modern dönemin yazılım mimarileri  daha dinamik ve parçalı  bir yapıya ulaştı. Bu durum kurumlara hız ve esneklik kazandırırken olası saldırılar için de birçok farklı kapı aralıyor. Bu tarz durumlarda geleneksel güvenlik yöntemleri yetersiz kalmakta. DevSecOps’a tam olarak bu duruma uygun olduğundan ihtiyaç duyuyoruz. Shift left security, otomatikleştirilmiş test ve tarama, her üretim ve geliştirme adımında sağlanan geri dönüş dinamik saldırılara karşı dinamik bir koruma döngüsü sağlamakta. Supply chain saldırısında, saldırgan direkt uygulamayı değil uygulamanın yaralandığı tedarik ögelerine saldırır. Bu durumda tek bir yanlış girdi, paket, pipeline  tüm sistemin dengesini bozabilir.  DevSecOps, süreç boyunca tüm adımları otomatik denetleme ve geri bildirim yapar. Bu sayede bu saldırının sürecin hangi kısmına etki ettiğini erkenden fark ederek olası zararları minimuma indirir. 2.2. Geliştirme Süreçlerindeki Hız Baskısı Oluşturulma biçimi sebebiyle DevOps’un hızlı teslimat anlayışı, sürekli üretim, sürekli entegrasyon ve geri dönüş adımlarını içermektedir. Bu hız anlayışının oluşturduğu riskler de kontrol mekanizması yeterince gelişmemiş sistemlerde büyük zarara yol açar. Örneğin bir an önce yetiştirme amacı ile oluşan bir ekip hatası aynı şekilde çabuk yetişsin diye ertelenen güvenlik kontrolleri yetiştirilmeye çalışılan bu iş saldırılmaya açık bir yüzey oluşturur. 2.3. Güvenlik ve Geliştirme Ekipleri Arasındaki Kopukluk DevSecOps yapısı gereği geliştirme, denetleme ve güvenlik departmanlarının tüm süreçte aktif rol alması ile oluşturulan bir yöntemdir. Güvenliğin sona bırakılması ile oluşacak aksaklık ve mali zararları, geliştirme sonucunda  denetlenmemenin yaratabileceği eksiklik ve hatalar yığınını engellemesi bu yöntemin süreç boyunca neden kullanıldığını açıklıyor. 3)DevSecOps’un Temel İlkeleri 3.1. Otomasyonun Merkezde Olması SAST: Kaynak kodu analiz ederek güvenlik açıklarını tespit eden bir yöntemdir. Yazılım geliştirme sürecinin erken aşamalarında kullanılır ve kodun yazıldığı veya derlendiği her noktada çalıştırılır. Erken müdahale, güvenlik açıklarının giderilmesi için gereken maliyet ve zaman kaybını önemli ölçüde azaltır.  DAST: Uygulama çalışırken gerçekleştirilen güvenlik testleridir. Bu yöntem, uygulamanın dinamik davranışını analiz ederek güvenlik açıklarını tespit eder. Özellikle web uygulamaları için yaygın olarak kullanılan DAST, saldırganların uygulamaya nasıl erişebileceğini anlamaya çalışır.  SCA: Yazılımın bağımlılıklarını ve bileşenlerini analiz eder. Açık kaynak kütüphaneler ve üçüncü parti bileşenler, yazılım geliştirme sürecinde sıkça kullanılır ve bu bileşenlerdeki güvenlik açıkları ciddi riskler oluşturabilir. SCA araçları, bu bileşenlerin güncel olup olmadığını ve bilinen güvenlik açıklarına karşı korunup korunmadığını kontrol eder.  — Bu araçlar sürecin azalmasında kullanılan en temel araçlardır– 3.2. Sürekli İzleme ve Geri Bildirim Loglar, güvenlik açıklarını ve anormal aktiviteleri tespit etmek için analiz edilir. Aynı zamanda yasal gerekliliklere uyumu sağlamak ve denetim süreçlerinde kanıt sunmak için de kullanılır. Bu durum yeni ürün süreçlerinde geliştirilmesi gereken yerlerin tespitinde yarar gösterir. Log analizi, sistemin performansını optimize etmeye yardımcı olur. IDS: Paketler ve ağ istilasının olası devamı için ağ trafiğini analiz eder. Daha sonra sistem bilinen tehditleri ve zafiyetleri işaretler. IPS: IPS sistemi, bir güvenlik duvarı ile aynı alanda; dahili ağ ile dış internet arasında yer alır. IDS tehdit olarak aldığı şeyi işaretlerken IPS kötü niyetli trafiği reddeder ve paket gönderimini keser. SIEM: Bilgi güvenliği yönetimi ve durum güvenliği yönetimi teknolojilerinin birleşimidir. SIEM’in temel amacı güvenlik ile ilgili tüm bilgileri takip ve analiz ederek toplamaktır. Hep tespit hem de duruma uygun korumayı/aksiyonu sağlar.     4) Erken Aşama Güvenlik Yaklaşımı Geleneksel yazılım geliştirme süreçlerinde güvenlik genellikle projenin sonuna bırakılır. Kod tamamlandıktan, testler yapıldıktan ve ürün yönetim ortamına alınmadan önce güvenlik kontrolleri yapılır. Bu yaklaşım, çoğu zaman güvenlik açıklarının tespit edilmesini geciktirir ve düzeltme maliyetlerini yükseltir.  Erken aşama güvenlik yaklaşımı, güvenliği yazılım geliştirme sürecinin başına taşır. Yani, kod yazımından tasarım aşamasına, hatta fikir aşamasına kadar güvenlik perspektifi entegre edilir. Bu yaklaşımın temel avantajı, sorunlar büyümeden, sistemin temel yapı taşlarıyla birlikte ele alınabilmesidir. Sonuç olarak hem zaman hem de kaynak tasarrufu sağlanır; güvenlik, ürünün sonradan eklenen bir zorunluluk değil, doğal bir parçası haline gelir.  Bu yaklaşım aynı zamanda ekipler arası sorumluluk paylaşımını da güçlendirir. Geliştiriciler, güvenliği bir engel olarak değil, proje başarısının kritik bir boyutu olarak görür. Test ekipleri ve operasyon ekipleri de güvenlik önlemlerini baştan dahil ederek sürprizlerle karşılaşma riskini azaltır. Özet olarak erken aşama güvenlik yaklaşımı, yazılım geliştirme sürecinde güvenliğin

Read More