Kod olarak altyapı (IaC), HashiCorp’un Terraform ve AWS CloudFormation gibi teknolojilerin benimsenmesinin hızla artmasıyla birlikte birçok kuruluşun BT uygulamalarının temel bir parçası haline geldi. IaC’ye geçiş, şirketlerin bu değişiklikleri otomatikleştirmek için sunucuları manuel olarak yapılandırmaktan veya zorunlu komut dosyası dillerini kullanmaktan uzaklaştığını ve bir kaynağın tercih edilen son durumunu özetlemek için bildirim kodunun kullanıldığı bir modele doğru ilerlediğini görüyor.

BT yaklaşımındaki herhangi bir değişiklikte olduğu gibi, anlaşılması gereken güvenlik hususları vardır. IAC’ye geçiş, şirketlerin ortamlarını güvence altına alma yöntemlerini iyileştirme fırsatlarıyla birlikte bazı riskler de sunuyor. IaC’nin bir kuruluşun sistemlerinin güvenlik parametrelerini yapılandırmadaki kilit rolü ve kusurlu bir şablonun çok sayıda sistemde kullanıma sunulma hızı göz önüne alındığında, bu teknolojiden en iyi şekilde yararlanmak için iyi güvenlik uygulamalarına uyulmasını sağlamak hayati önem taşımaktadır. .

IaC Güvenlik Riskleri ve Fırsatları
IaC’ye geçişle birlikte dikkate alınması gereken yeni güvenlik riskleri var. Birincisi sır yönetimidir. Kaynakları oluştururken ve yönetirken, uzak sistemlerde kimlik doğrulaması yapmak için genellikle kimlik bilgilerine ihtiyaç duyulur; Bu görevleri otomatikleştirmek için IaC kodu yazıldığında, kimlik bilgilerinin veya API anahtarlarının koda sabit kodlanmış olma riski vardır. Bunu önlemek için uygun sır yönetimi süreçlerinin takip edildiğinden emin olmak için özen gösterilmelidir. Sırlar, bulut anahtarı yönetim hizmeti (KMS) gibi güvenli bir yerde tutulmalı ve çalıştırılırken komut dosyaları tarafından talep üzerine alınmalıdır.

İkinci bir risk, yanlış yapılandırmaların IaC şablonlarına sızabilmesidir – örneğin, kod harici bir kaynaktan kopyalanır/yapıştırılırsa – ve ardından IaC kullanıldıkça bir ortam boyunca hızla yayılır. Bu riskten kaçınmak, diğer tüm kaynak kodlarında olduğu gibi hem otomatik hem de manuel inceleme gerektirir.

IaC sürüş ortamlarına geçmenin doğasında var olan fırsat, altyapınızın tamamı kodda tanımlandıktan sonra, iyi uygulamaların takip edildiğinden emin olmak için ortak otomatikleştirilmiş linterler ve inceleme araçları uygulamak mümkündür. Araçlar, ortak iyi uygulama kitaplıklarından alınabilir ve kuruluşa özel uygulamaları uygulayan özel kurallarla desteklenebilir.

Ek olarak, IaC tabanlı bir yaklaşımla, tüm konfigürasyonlar sürüm kontrollü kaynak kod havuzlarında saklanmalıdır. Bu, şirketlerin zaman içindeki değişiklikleri izleyebilmeleri ve ayrıca uygun erişim kontrolünü ve denetimin yerinde olmasını sağlamaları için değişikliklerin daha iyi izlenmesini sağlar.

Son olarak, IaC tabanlı dağıtım, test ortamlarının üretimi etkili bir şekilde yansıtabilmesi gerektiği anlamına gelir; bu, güvenlik testinin, üretimde herhangi bir sonucun anlamlı olacağına dair daha yüksek bir güvenle güvenli bir şekilde yürütülebileceği anlamına gelir.

IAC Teknoloji Yığınları
IaC için çeşitli seçenekler vardır. Tipik olarak, farklı araçlar farklı güçlü ve zayıf yönlere sahip olduğundan, büyük kuruluşlar bunların çoğunu aynı anda kullanır.

Terraform HashiCorp’tan en yaygın kullanılan IaC araç setlerinden biridir. Açık kaynak olma ve herhangi bir bulut platformuna veya altyapı sağlayıcısına bağlı olmama avantajına sahiptir, yani çeşitli ortamlarda çalışır.

Şaşırtıcı olmayan bir şekilde, büyük bulut hizmeti sağlayıcıları, bulutlarına odaklanan IaC araç setlerine de sahiptir. Amazon’un BulutFormasyonuMicrosoft’un KOL ve pazıve Google’ın Bulut Dağıtım Yöneticisi tümü, o şirketin bulutunun kullanıcılarının IaC paradigmasından yararlanmaları için bir araç sağlar.

Bulutta yerel IaC için bir başka popüler seçenek pulumiBu, geliştiricilerin IaC şablonlarını yazmak için zaten bildikleri programlama dillerini (örn. JavaScript veya Golang) kullanmalarına olanak tanır.

IaC İnceleme Araçları
IaC kodunun güvenlik incelemeleri sürecinde yardımcı olabilecek bir dizi açık kaynak aracı vardır. Bu araçlar, belirli bir IaC dili kümesi için ortak güvenlik yanlış yapılandırmalarının bir kural kümesini sağlamada benzer bir yaklaşım benimser. Ana IaC biçimine ek olarak, bu araçlardan bazıları Kubernetes bildirimleri ve Dockerfiles gibi diğer biçimleri inceleyecektir. Bu arenada yaygın olarak kullanılan araçlardan bazıları şunlardır:

  • önemsiz Terraform ve CloudFormation’ı kapsayan tfsec ve cfsec projelerinin kurallarının yanı sıra Kubernetes ve Docker için bir dizi kuralı içeren bir güvenlik açığı ve yanlış yapılandırma tarayıcısıdır. Bir CI/CD ardışık düzenine kolayca entegre edilebilir ve geliştiriciler tarafından kodlama ortamının bir parçası olarak çalıştırılabilir.
  • Çekov Terraform, CloudFormation, Azure Bicep ve ARM ve Kubernetes bildirimleri dahil olmak üzere çok çeşitli IAC dillerini kapsayan Python’da yazılmış bir araçtır. Ayrıca, bunun meydana gelebileceği örnekleri tarayarak IaC dosyalarının sırları sabit kodlamamasını sağlama zorluğuna da yardımcı olur.
  • Terrascan IaC taraması için başka bir popüler seçenektir. Adına rağmen, Trivy ve Checkov ile aynı şekilde bir dizi IaC formatını destekler. Trivy’ye benzer şekilde, Terrascan Golang’da yazılmıştır ve CI/CD ardışık düzenlerine entegre edilebilir ve bağımsız bir program olarak çalıştırılabilir.

Güvenlik Yolunu Düzeltme
IAC’ye geçiş, çeşitli kuruluşlarda iyi bir şekilde devam etmektedir. Zorluklar getirse de süreç – iyi yönetilirse – tüm sistem yapılandırmalarının sürüm kontrollü kaynak kod havuzlarında tutulmasına ve yanlış yapılandırmalara karşı düzenli olarak kontrol edilmesine izin vererek kuruluşların genel güvenlik duruşunu temelden iyileştirebilir.

IaC’nin gücü göz önüne alındığında, benimsenmesinin, bu süreçler için tarama ve doğrulama anahtarı ile birlikte güçlü güvenlik uygulamalarıyla birlikte olması hayati önem taşımaktadır. Şirketler, yukarıda bahsedilenler gibi açık kaynak inceleme araçlarını kullanarak bu teknolojiyi benimseme yolunda ilerlemelerine yardımcı olabilir.



siber-1