Yazılım geliştirme, dağıtım ve operasyon boru hatlarını DevOps takımlarına birleştirmek artan verimlilik, daha kolay ve daha sık güncellemeler ve daha yüksek kaliteli uygulamalar vaat ediyor. Ancak altyapının karmaşıklığı, izlenmesi ve bakımı zor olan büyüyen bir saldırı yüzeyine de 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 ilgileniyor ve en yaygın açık kaynaklı bileşenlerdeki binlerce güvenlik açığını gidermek zorunda kalıyor, diyor JFrog’un “Yazılım Tedarik Zinciri Birliğinin Durumu 2024” raporuDevOps hattının diğer ucunda, şirketlerin üçte ikisi Kubernetes güvenlik endişeleri nedeniyle bir uygulamanın dağıtımını geciktirdi ve neredeyse yarısı (%46) gerçek güvenlik olayları yaşadı. Red Hat’in 2024 “Kubernetes Durumu” güvenlik raporu.
Yazılım güvenliği firması Contrast Security’nin baş teknoloji sorumlusu ve kurucu ortağı Jeff Williams, uygulama hattını güvence altına almayı hedefleyen siber güvenlik uzmanlarının, geliştiriciler tarafından yazılan yazılıma, geliştiriciler tarafından içe aktarılan açık kaynaklı bileşenlere, yazılımı dağıtmak için kullanılan konteynerlere ve bulut altyapısına ve yazılımı yapmak için kullanılan derleme araçlarına dikkat etmesi gerektiğini söylüyor.
“Sorun, bunun çok büyük bir saldırı yüzeyi olması,” diyor. “Sadece boru hattınız değil. Yazılım geliştirmeye giren diğer tüm kodlar — IDE’ler, test araçları ve performans paketleri. … Bunlardan herhangi biri, geliştiricilerinizin oluşturduğu ve ürettiği kodu altüst edebilir.”
Geliştirmeden uygulama dağıtımına kadar tüm DevOps hattının bütünleşik bir görünümünü elde etmek giderek daha önemli hale geliyor. Yazılım bileşenleri — yalnızca açık kaynaklı kütüphaneler değil, aynı zamanda Docker konteynerleri Ve diğer altyapı varlıkları — genellikle savunmasız kodlara sahiptir, bu da riski artırır. Üçüncü taraf araçları tehlikeye atılabilir — unutmayın Codecov’un ihlali — kötü amaçlı kodun geliştirilmekte olan projelere enjekte edilmesine izin verir. Bulut altyapısı ve depolama yanlış yapılandırılabilir veya uygunsuz bir şekilde korunabilir, örneğin Kar tanesi örnekleri.
DevOps sağlayıcısı GitLab’ın baş bilgi güvenliği sorumlusu Josh Lemos (yazarla hiçbir akrabalığı yoktur), DevOps yazılım hattının ve dağıtım altyapısının durumu hakkında iyi bir görünürlüğe sahip olmanın kritik öneme sahip olduğunu söylüyor.
“Çalışması gereken iki gerçekten önemli tren var,” diyor. “Birincisi, bu trenlerden veya iş akışlarından birinde tüm yapı eserlerinizin geliştirilmesi ve paketlenmesi, güvenliği, uyumluluğu ve onaylanması gerekir. Diğeri ise bu şeylerin üretim ortamlarınızda dağıtımının izlenmesi ve düzenlenmesidir.”
Yaz, Kullan, Satın Al, İnşa Et
Genel olarak, DevOps güvenlik ekiplerinin saldırıya açık dört alanı koruması gerekir. Contrast Security’den Williams, birinci ve ikinci alanların geliştiriciler için en belirgin olanların: yazdıkları kod ve kullandıkları yazılım bileşenleri olduğunu söylüyor.
“Biz bunun hakkında konuşuyorduk [that code] “OWASP’ın başlangıcından beri,” diyor. “Yazdığınız kodda hatalar varsa, insanlar bunları istismar eder ve siz ihlal edilirsiniz. Bu iyi değildir.”
Şirketler ayrıca satın aldıkları veya bir hizmet aracılığıyla dolaylı olarak kullandıkları kodlara da dikkat etmelidir. Son olarak, yazılım oluşturmak ve dağıtmak için kullanılan uygulamaları ve hizmetleri (IDE’ler, test araçları, performans paketleri ve enstrümanlar) güvence altına almaları gerekir.
Williams, “Bunlardan herhangi biri son kodu altüst edebilir,” diyor ve DevOps ekiplerinin çoğunun boru hatları ve yazılım tedarik zincirlerinin oluşturduğu tam saldırı yüzeyine dikkat etmediğini ekliyor. “Gerçek tedarik zinciri güvenliği söz konusu olduğunda hala Taş Devri’nde olduğumuzu düşünüyorum.”
Şirketlerin büyük çoğunluğu (%87) uygulamaları bulut tabanlı olarak oluştururken veya bulut tabanlı uygulamalara taşırken, %59’u bunu yapmanın güvenlik etkilerini anlamamış ve bunun sonucunda bir güvenlik sorunu yaşamıştır. Öngörülebilir bir şekilde, yaygın güvenlik olaylarının koleksiyonu, yazılım üretmek ve dağıtmak için gereken altyapı kadar çeşitlidir: Bir araştırmaya göre, ağ ihlalleri, API güvenlik açıkları, sertifika yanlış yapılandırmaları, küme yanlış yapılandırmaları ve kapsayıcılardaki güvenlik açıkları güvenlik olaylarının başlıca nedenleri arasındadır. Kasım 2023 bulut tabanlı uygulama güvenliği sorunları anketi.
Williams, DevOps süreçlerinin bir kısmını izleyen şirketlerin bile yeterli kapsama sahip olmadığını söylüyor.
“Her yerde değil ve neredeyse hiçbir şey DevOps’un geliştirici iş istasyonları, IDE’ler, test çerçeveleri ve eklentiler gibi bir kısmını kapsamıyor,” diyor. “Yani, kimsenin izlemediği bir kod evreni var ve çoğu kuruluş bu sorun hakkında gerçekten düşünmüyor.”
DevOps Altyapınızı Sorgulamak
Çoğu şirket için, tüm boru hattına görünürlüklerinin olduğundan emin olmak esastır. İzleme, emekliye ayrılmış bir paketin güvenilmeyen bir tarafça depoda aniden yeniden canlandırıldığı, aksi takdirde bir depoya gönderilebilecek koda gizli bilgiler eklendiği veya bir Docker görüntüsünde önemli miktarda kullanılmayan yazılım bulunduğu zaman uyarı verebilir.
Yazılım tedarik zinciri sağlayıcısı JFrog’un saha CISO’su Paul Davis, şirketlerin süreç boyunca her adımı sürekli olarak izlemeleri gerektiğini söylüyor.
“[Knowing] neler oluyor… ve [seeing that] üretimde bir paketin bozulması veya birisinin yeni bir güvenlik açığıyla gelmesi nedeniyle paketi geri almam gerekmesi, kullanım kolaylığı [and visibility] “Saldırı yüzeyine ilişkin bu içgörü ve izlenebilirlik benim için çok önemli” diyor.
GitLab’den Lemos’a göre şirketler ayrıca DevOps altyapılarının dört belirli alanıyla ilgili olarak da harekete geçmelidir. İlk olarak, boru 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, hangilerinin güvenlik açıkları olduğunu ve mümkünse özel bir depo bulundurmalı. Yapı sistemleri sık sık test edilmeli ve herhangi bir otomatik tetikleyici (örneğin, bir yapıyı tetikleyen üçüncü taraf yazılımlarındaki değişiklikler) olası güvenlik etkileri açısından analiz edilmelidir. Son olarak, tüm boru hattı, bir uzlaşmanın etkisini (yani “patlama yarıçapını”) en aza indirecek şekilde tasarlanmalıdır, diyor.
“Şirketlerin ilk adım olarak yaptığı en iyi şeyin, bilinen bazı iyi tasarım kalıplarına ulaşmak olduğunu gördüm,” diyor Lemos. “Bundan soyutlayabileceğiniz daha fazla şey [bad security practices]”Güvenlik programınız ne kadar başarılı olursa, o kadar az yük ve karmaşa yaşarsınız ve kodunuz o kadar yeniden kullanılabilir hale gelir.”
Yapay Zekanın Vaatleri ve Tehlikeleri
DevOps saldırı yüzeyinin genişliği ayrıca otomasyon ve yapay zekanın (AI) yardımı için bir fırsat sunar. DevOps, çevikliğinin ve hızının çoğunu otomasyon yoluyla elde eder ve yapılandırma ve kod olarak altyapı hakimdir çünkü mimariyi dosyalar olarak ifade etmek işlemler için tekrarlanabilirlik sağlarken, talimatları analiz etmek daha güvenli bir altyapı sağlar.
Ancak Kubernetes otomasyon platformu CAST AI’nın baş ürün sorumlusu Laurent Gil, güvenlik söz konusu olduğunda çoğu şirketin benimseme konusunda geri durduğunu söylüyor.
“Neredeyse her güvenlik şirketi bir şekilde otomasyon sunuyor, ancak kimse bunu kullanmıyor” diyor.[Security teams] “Engellenmesi gereken şeyleri engellemek veya güvenlik açıkları içeren bir şey bulduğunuzda otomatik düzeltme yapmak için otomasyonu kullanmanın sorun olmadığını bilmelisiniz.”
Ancak Lemos, yapay zeka geliştirmenin aynı zamanda kod ve verilerle çalışmanın yeni yollarını da beraberinde getirdiğini, bunun henüz tam olarak anlaşılmayan ve DevOps ekiplerinin hazır olmadığı bir saldırı alanı olduğunu söylüyor.
“Verileri ve içeriği bir modelde birleştirdiğiniz için gerçekten eski tarz saldırılar yapma olasılığı var,” diyor. “Bir veri bilimcisinin iş istasyonuna giren bir pickle dosyasına sahip bir model, eğer onu seri hale getirirlerse ve bir yükü varsa, ortamlarına kötü amaçlı bir kod davet etmiş olurlar.”