Kod Olarak Altyapı Güvenliği: Kritik Bir Sorumluluk


Thomas Segura, Teknik İçerik Yazarı, GitGuardian

Genel olarak yazılım, diğer büyük ölçekli endüstrilere kıyasla hala ergenlik çağındadır. İlkeleri yarım asırdan fazla bir süredir oluşturulmuş olmasına rağmen, nasıl kullanılabileceğini düzenli olarak genişleten güçlü dönüşümlerden geçmektedir. Son zamanlarda, işletmeler bulut bilişimin ortaya çıkmasıyla böyle bir hareket yaşadılar. BT operasyonlarının büyük bir bölümünü buluta taşımak, yeni ürünleri daha hızlı sunmaları için çok büyük bir fırsat oldu. Bulut, bilgi işlem kaynaklarının anında tahsis edilmesi veya yeniden tahsis edilmesi söz konusu olduğunda benzeri görülmemiş bir çeviklik düzeyi sunar.

Ancak daha yakından incelediğimizde, bulutun gücünün çoğunun altyapı yeteneklerine dayandığını görüyoruz. Bulut varlıkları, bulut hizmetleri ve kaynaklarının yanı sıra Kubernetes gibi orkestratörler ve hatta politikalar insan operatörler tarafından gerçek zamanlı olarak yönetilmez. Yazılım kontrollüdürler ve kodda tanımlanırlar. Kod Olarak Altyapı veya IaC çağına hoş geldiniz!

Bulut kaynaklarını demokratikleştirme

IaC, DevOps mühendislerine, SRE’ye ve geliştiricilere BT altyapısının nasıl olması gerektiğini beyan etmek için ortak bir dil sunan yeni soyutlama katmanıdır: sunucu sayısı, depolama, veritabanları, ağ topolojisi ve tüm temel yapılandırmalar (DNS girişleri, güvenlik duvarları, vesaire..).

Altyapı, yalnızca üretim iş yüklerinden ibaret değildir. Tüm geliştirme sürecini desteklemek için gerekli bir şeydir. IaC ile ilgili harika olan şey, herkesin SDLC’nin her aşamasında hangi kaynaklara ihtiyaç duyulduğunu belirtebilmesidir: geliştirme aşamasında birkaç yalıtılmış ortam oluşturun, test için üretim koşullarını çoğaltın, vb. IaC, bu kaynakları tanımlamak için standart dildir ve nasıl yapılandırılmaları gerektiği.

Bu, pazara açılma stratejileri için inanılmaz faydalar sağlar: altyapı, desteklediği yazılım kadar esnek ve yeniden kullanılabilir modüller sayesinde daha hızlı yürütülür ve aynı zamanda daha tutarlı hale gelir. Bakım maliyetleri ve doğru yapıldığında insan hatası riski azalır.

Elbette, gereksinimler daha karmaşık hale geldikçe, IaC bildirimleri de karmaşıklaşır. Ancak bu teknolojinin parladığı yer burasıdır: metinsel bir “tek gerçek kaynağına” sahip olmak (dosyalarda yazılanların her zaman dağıtılanlara ve nasıl yapılandırıldığına karşılık geldiği anlamına gelir), sürüm kontrollü (insanların değişiklikleri incelemesine ve işbirliği yapmasına izin vermek) kolayca) mühendisleri çok fazla zaman ve baş ağrısından kurtarır.

Bu paradigmanın bir adı var: GitOps. Altyapı yapılandırma dosyalarını yönetmek için yazılım kaynak koduyla aynı yaklaşımı kullanarak daha hızlı ve daha güvenilir bulut yerel devreye alımlara olanak tanır. Ekipler, yazılım koduyla aynı titizlikle altyapı değişiklikleri ve veteriner yapılandırma dosyaları üzerinde daha etkili bir şekilde işbirliği yapar. Altyapı tanımları git havuzlarında depolanır, aşamalı olarak değiştirilir ve çekme veya birleştirme istekleri gözden geçirilir ve son olarak test edilir ve CI/CD ardışık düzenleri aracılığıyla uygulanır.

Mühendisler doğrudan kodla çalıştığından, IaC altyapı iş akışlarını sola kaydırdı.

Ama her şeyde olduğu gibi bunun da bir bedeli var. Bu durumda bulut güvenliğini de sola kaydırmak gerekiyor.

Altyapıyı kodla koruma

Güvenlikle ilgili olarak, IaC’nin bazı ilginç özellikleri vardır: ilk olarak, güvenlik kontrollerinin sağlanmasını otomatikleştirmek için kullanılabilir. Bu, güvenlik ilkelerini daha tutarlı ve verimli bir şekilde uygulayabileceğiniz anlamına gelir.

İkincisi, IaC, güvenlik duruşunuzu daha etkin bir şekilde yönetmenize yardımcı olabilir. Güvenlik kontrollerinin sağlanmasını otomatikleştirerek, güvenlik sorunları için altyapınızı daha kolay takip edebilir ve izleyebilirsiniz. Olası güvenlik sorunlarını hızlı bir şekilde belirlemenize ve çözmenize yardımcı olabilir.

Son olarak, IaC, olaya müdahale yeteneklerinizi geliştirmenize de yardımcı olabilir. Bir güvenlik olayında karşı önlemleri daha hızlı ve kolay bir şekilde uygulayabilirsiniz. Bu, bir güvenlik olayının etkisini en aza indirmeye ve altyapıyı mümkün olan en kısa sürede yedekleyip çalışır duruma getirmeye yardımcı olabilir.

Ancak altyapıyı korumak önemli bir zorluktur. IaC’nin benimsenmesi, uygulama ve altyapı güvenliği arasındaki çizgiyi bulanıklaştırarak büyük bir soruyu gündeme getiriyor: Bundan kim sorumlu olmalı?

Kod Olarak Altyapı yeni bir sorumluluktur

Altyapı güvenliğinin her şeyden önemli olduğunu söylemeye gerek yok. Geleneksel olarak, uzman operasyon ekipleri denenmiş ve test edilmiş birçok araçla bu saldırı yüzeyini denetler. Ancak kod altyapıyı yönettiğinde, yakalanmayan hatalar sinsi güvenlik açıklarına neden olabilir. Bir IaC bildirimindeki tek bir hatalı yapılandırma, çalışma zamanını veya ağ güvenliğini etkileyebilir: örneğin, trafik bir kaynağa kısıtlanmadan bırakılabilir veya veriler yanlışlıkla dışarıya maruz kalabilir.

Sadece bu değil, statik güvenlik açıklarının da özel olarak ele alınması gerekir: sabit kodlanmış kimlik bilgileri en kritik olanlardır. önemi konusunda farkındalık düzeyi ne olursa olsun, olumsuzluk düz metin kimlik bilgilerini yapılandırma dosyalarında saklarken, hatalar hala sık sık meydana geliyor.

Aslında yanlış yapılandırmalar, OWASP tarafından tanımlanan ilk on güvenlik açığından biridir. Bu nedenle, baştan temiz kod göndermek için doğru korkulukları ayarlayarak potansiyel güvenlik açıklarını tahmin etmek mantıklıdır. Bu sorumluluk, parça kalitesi, parça güvenliği, gerçek bir DevSecOps felsefesi uygulamak için paylaşılmalıdır. Bunu yapmamak, potansiyel olarak maliyetli bir güvenlik arızasının köşede olduğu anlamına gelebilir.

Kod Olarak Altyapı sorumluluğu, DevOps, AppSec ve CloudOps mühendisleri arasındaki yol ayrımındadır. Kaynaktan konuşlandırmaya kadar iş birliğini etkinleştirmek, bir kuruluşun kendisini gelecekteki tehditlere karşı korumasının tek yoludur. Bu yeni paradigmayı karşılamak için araçlar ortaya çıkmaya başlıyor.

IaC, otomasyon alanında yeni zirvelere ulaştığı için, otomasyonun cevabın bir parçası olduğu açıktır. Yanlış yapılandırılmış güvenlik açıkları ve sabit kodlanmış kimlik bilgileri için otomatik tarama getirmek, kuruluşların genel güvenlik duruşunu güçlendirecektir. Bunun da ötesinde, IaC güvenlik en iyi uygulamaları ve yaygın hatalar hakkında farkındalık yaratmaya da katkıda bulunacaktır.

Çözüm

Kod olarak altyapı kalıcıdır. Getirdiği faydalar, yazılım geliştirme döngüsünü tamamen dönüştürmekte ve otomasyon ve yenilik için yeni kapılar açmaktadır. Avantajları bir süredir övülse de, beraberinde getirdiği tehditler giderek daha belirgin hale geliyor. Güvenliğin, bulut tarafından sunulan temel kaynakların dinamizmi ve geçiciliği merkezli bu yeni paradigmayı tam olarak benimsemesi gerekiyor. Güvenlik, operasyonlar ve geliştirme faaliyetleri arasındaki boşluğu kapatmak, verimli güvenlik çözümleri oluşturmak için otomasyondan yararlanmak, kuruluşların güvenlik duruşlarının çıtasını yükseltmeleri için gerekli olacaktır. Bu yönde atılacak ilk adım, bulut altyapılarını SDLC’de mümkün olduğunca erken kaynak kodu düzeyinde korumak olmalıdır.

yazar hakkında

Thomas Segura'nın yazarıThomas, çeşitli büyük Fransız şirketlerinde hem analist hem de yazılım mühendisi danışmanı olarak çalıştı. Teknolojiye ve açık kaynağa olan tutkusu, teknik içerik yazarı olarak GitGuardian’a katılmasına neden oldu. Şimdi siber güvenlik ve yazılımın içinden geçmekte olduğu dönüştürücü değişiklikleri netleştirmeye odaklanıyor.

Thomas’a çevrimiçi olarak LinkedIn’den ulaşılabilir, TWİTTERve şirketimizin web sitesinde https://www.gitguardian.com/





Source link