Yazılım geliştirme, dağıtım ve operasyon süreçlerini DevOps ekipleriyle birleştirmek, daha fazla verimlilik, daha kolay ve daha sık güncellemeler ve daha kaliteli uygulamalar vaat ediyor. Ancak altyapının karmaşıklığı, izlenmesi ve bakımı zor olan, büyüyen bir saldırı yüzeyinin oluşmasına da yol açtı.
Geliştirme tarafında, ortalama bir kuruluş dört ila dokuz farklı programlama dili kullanıyor, her yıl milyonlarca yeni paket ve görüntüyle uğraşmak zorunda kalıyor ve en yaygın açık kaynak bileşenlerindeki binlerce güvenlik açığını düzeltiyor. JFrog’un Yazılım Tedarik Zinciri Birliğin Durumu 2024 raporu. DevOps hattının diğer ucunda şirketlerin üçte ikisi Kubernetes güvenlik endişeleri nedeniyle bir uygulamanın dağıtımını erteledi ve neredeyse yarısı (%46) gerçek güvenlik olayları yaşadı. Red Hat’in Kubernetes Güvenliğinin Durumu 2024 raporu.
Jeff, uygulama hattını güvence altına almayı amaçlayan siber güvenlik profesyonellerinin, geliştiriciler tarafından yazılan yazılıma, geliştiriciler tarafından içe aktarılan açık kaynak bileşenlere, yazılımı dağıtmak için kullanılan konteynerlere ve bulut altyapısına ve yazılımı oluşturmak için kullanılan derleme araçlarına dikkat etmesi gerektiğini söylüyor. Williams, baş teknoloji sorumlusu ve bir yazılım güvenliği firması olan Contrast Security’nin kurucu ortağı.
“Sorun şu ki, çok büyük bir saldırı yüzeyi var” diyor. “Bu yalnızca sizin üretim hattınız değil. Yazılım geliştirmeye giden tüm diğer kodlar; IDE’ler, test araçları ve performans paketleri… bunlardan herhangi biri, geliştiricilerinizin oluşturduğu ve ürettiği kodu alt üst etme kapasitesine sahip.”
Geliştirmeden uygulama dağıtımına kadar tüm DevOps hattının entegre bir görünümünü elde etmek giderek daha önemli hale geliyor. Yazılım bileşenleri — yalnızca açık kaynak kitaplıkları değil, aynı zamanda Docker kapsayıcıları Ve diğer altyapı varlıkları — genellikle savunmasız kodlara sahiptir ve bu da riski artırır. Üçüncü taraf araçların güvenliği ihlal edilebilir; unutmayın Codecov’un ihlali —Geliştirilmekte olan projelere kötü amaçlı kodların eklenmesine izin verilmesi. Bulut altyapısı ve depolama, yanlış yapılandırılabilir veya uygun olmayan şekilde korunabilir. Kar tanesi örnekleri.
DevOps sağlayıcısı GitLab’ın bilgi güvenliği sorumlusu Josh Lemos, DevOps yazılım hattının ve dağıtım altyapısının durumuna ilişkin iyi bir görünürlüğe sahip olmanın kritik öneme sahip olduğunu söylüyor (ve yazarla hiçbir ilişkisi yok).
“Çalışması gereken gerçekten önemli iki tren var” diyor. “Biri, tüm derleme yapılarınızın bu trenlerden veya iş akışlarından birinde geliştirilmesine ve paketlenmesine, güvenliğine, uyumluluğuna ve doğrulanmasına ihtiyaç duymanızdır. Diğeri ise bu şeylerin üretim ortamlarınızda konuşlandırılmasının izlenmesi ve düzenlenmesidir.”
Yaz, Kullan, Satın Al, Oluştur
Genel olarak DevOps güvenlik ekiplerinin saldırıya açık dört alanı koruması gerekiyor. Contrast Security’den Williams, birinci ve ikinci alanların geliştiriciler için en açık olanı olduğunu söylüyor: yazdıkları kod ve kullandıkları yazılım bileşenleri.
“Biz şunu konuşuyorduk [that code] OWASP’ın başlangıcından beri … yazdığınız kodda hatalar varsa, insanlar bunları istismar eder ve ihlallere maruz kalırsınız. Bu iyi değil” diyor.
Şirketlerin ayrıca satın aldıkları veya bir hizmet aracılığıyla dolaylı olarak kullandıkları kodlara da dikkat etmeleri gerekiyor. Son olarak, yazılım oluşturmak ve dağıtmak için kullanılan uygulama ve hizmetlerin (IDE’ler, test araçları, performans paketleri ve enstrümantasyon) güvenliğini sağlamaları gerekiyor.
Williams, “Bunlardan herhangi biri son kodu bozabilir” diyor ve çoğu DevOps ekibinin, boru hattı ve yazılım tedarik zincirinin oluşturduğu tam saldırı yüzeyine dikkat etmediğini ekliyor. “Gerçek tedarik zinciri güvenliği söz konusu olduğunda hâlâ Taş Devri’nde olduğumuzu düşünüyorum.”
Şirketlerin büyük çoğunluğu (%87) uygulamaları bulut yereline taşırken veya oluştururken, çoğu (%59) bunu yapmanın güvenlik açısından sonuçlarını anlamadı ve bunun sonucunda bir güvenlik sorunu yaşadı. Tahmin edilebileceği gibi, yaygın güvenlik olaylarının toplamı, yazılım üretmek ve dağıtmak için gereken altyapı kadar çeşitlidir: Ağ ihlalleri, API güvenlik açıkları, hatalı sertifika yapılandırmaları, küme yanlış yapılandırmaları ve kapsayıcılardaki güvenlik açıkları, güvenlik olaylarının en önemli nedenleri arasındadır. Bulutta yerel uygulama güvenliği sorunlarına ilişkin Kasım 2023 anketi.
Williams, DevOps boru hatlarının bazı kısımlarını izleyen şirketlerin bile yeterince kapsama alamadığını söylüyor.
“Bu her yerde bulunmuyor ve geliştirici iş istasyonları ve IDE’ler ile test çerçeveleri ve eklentileri gibi DevOps’un bir bölümünü neredeyse hiçbir şey kapsamıyor” diyor. “Demek istediğim, kimsenin denetlemediği bir kod evreni var ve çoğu kuruluş bu sorun hakkında gerçekten düşünmüyor.”
DevOps Altyapınızı Sorgulama
Çoğu şirket için boru hattının tamamının görünür olmasını sağlamak çok önemlidir. İzleme, kullanımdan kaldırılmış bir paketin güvenilmeyen bir tarafça depoda aniden yeniden canlandırıldığı veya başka şekilde bir depoya gönderilebilecek gizli kodların koda dahil edildiği veya bir Docker görüntüsünde önemli miktarda kullanılmamış yazılım bulunduğu durumlarda uyarı verebilir.
Yazılım tedarik zinciri sağlayıcısı JFrog’un saha CISO’su Paul Davis, şirketlerin üretim hattındaki her adımın sürekli izlenmesi gerektiğini söylüyor.
“[Knowing] neler oluyor… ve [seeing that] bir paket üretimde bozuldu ya da birisi yeni bir güvenlik açığıyla – yani kullanım kolaylığıyla – geldiğinden paketi geri almam gerekiyor [and visibility] Saldırı yüzeyine ulaşmak, bu içgörü ve izlenebilirlik benim için çok önemli” diyor.
GitLab’dan Lemos’a göre şirketlerin DevOps altyapılarının dört spesifik alanı etrafında da harekete geçmesi gerekiyor. İlk olarak, işlem hattında yer alan herhangi bir geliştiricinin, operasyon uzmanının, cihazın veya hizmetin kimlikleri kaydedilmelidir. Şirketler ayrıca kullandıkları yazılım eserlerinin bir listesini tutmalı, hangilerinin zayıf noktaları var ve mümkünse özel bir depo bulundurmalıdır. Yapı sistemleri sık sık test edilmeli ve herhangi bir otomatik tetikleyici (bir yapıyı tetikleyen üçüncü taraf yazılımlarda yapılan değişiklikler gibi) potansiyel güvenlik etkileri açısından analiz edilmelidir. Son olarak, boru hattının tamamının uzlaşmanın etkisini (‘patlama yarıçapını’) en aza indirecek şekilde tasarlanması gerektiğini söylüyor.
Lemos, “Şirketlerin ilk adım olarak yaptığını gördüğüm en iyi şey, bilinen bazı iyi tasarım modellerine ulaşmaktır” diyor. “Bundan ne kadar çok soyutlayabilirsen [bad security practices]güvenlik programınız ne kadar başarılı olursa, karmaşa ve yük o kadar az olur ve kodunuz o kadar yeniden kullanılabilir hale gelir.”
Yapay Zekanın Vaadi ve Tehlikesi
DevOps saldırı yüzeyinin genişliği aynı zamanda otomasyon ve yapay zeka yardımı için de bir fırsatı temsil ediyor. DevOps, yapılandırma ve kod olarak altyapının hakim olduğu otomasyon sayesinde çevikliğinin ve hızının çoğunu zaten kazanıyor çünkü mimariyi dosyalar olarak ifade etmek operasyonlar için tekrarlanabilirliğe izin verirken talimatları analiz etmek daha güvenli bir altyapıya olanak tanıyor.
Kubernetes otomasyon platformu Cast AI’nin baş ürün sorumlusu Laurent Gil, konu güvenlik olduğunda çoğu şirketin benimseme konusunda geri adım attığını söylüyor.
“Neredeyse her güvenlik şirketi bir şekilde otomasyon sunuyor ancak henüz kimse bunu kullanmıyor” diyor. “[Security teams] Engellenmesi gereken şeyleri engellemek veya güvenlik açıkları içeren bir şey bulduğunuzda otomatik olarak düzeltme yapmak için otomasyonu kullanmanın sorun olmadığını bilmelidir.”
GitLab’dan Lemos, yapay zeka gelişiminin aynı zamanda kod ve verilerle çalışmanın yeni yollarını da beraberinde getirdiğini söylüyor; bu, tam olarak anlaşılmayan ve DevOps ekiplerinin hazır olmadığı bir saldırı yüzeyi alanı.
“Gerçekten eski tarz saldırılar yapma olasılığı var çünkü verileri ve içeriği bir modelde birleştiriyorsunuz” diyor. “Veri bilimcinin iş istasyonunda tüketilen turşu dosyasına sahip bir model, seri durumdan çıkarılırsa ve bir veri yüküne sahipse, çevrelerine bazı kötü amaçlı kodlar davet etmiş olurlar.”