Siber Güvenlikte “Kod Olarak Altyapı” (IaC)

Bilişim sistemleri altyapılarının daha sağlıklı ve kolay bir şekilde oluşturulabilmesi, yapılandırılabilmesi ve yönetilebilmesi için “Kod olarak altyapı” – Infrastructure as code (IaC) adı verilen bir yöntem kullanılmaktadır.

IaC, altyapının manuel süreçler yerine kod aracılığıyla yönetilmesi ve sağlanmasıdır. Her geçen gün ilgili araçların önemi artmakta ve yaygın olarak kullanılmaya devam etmektedir.

IaC ile altyapı sistemlerini ve ilgili sistemlerin özelliklerini içeren yapılandırma dosyaları oluşturulur, bu da yapılandırmaları düzenlemeyi (configuration) ve dağıtmayı (provisioning) kolaylaştırır. Ayrıca her seferinde aynı ortamı oluşturmamızı sağlar. IaC aynı zamanda yapılandırma özelliklerimizi kodlayarak ve belgeleyerek yapılandırma yönetimine de yardımcı olmaktadır.

Buradan yola çıkarak şunu çok net bir biçimde ifade etmemiz gerekir ki; bilişim sistemleri güvenliği sağlanırken tam anlamıyla aktif olunmalıdır ve proaktif bir yol izlenmelidir. Bu amaca ulaşabilmek için de öncelikle bilişim altyapısının doğru ve güvenli bir şekilde oluşturulması gerekmektedir.

IaC maksatlı kullanılan çeşitli araçlar (tool) bulunmaktadır. Piyasada yaygın olarak kullanılan kod olarak altyapı araçları ve konfigürasyon araçları; Ansible, Puppet ve Chef şeklinde ifade edilebilir. Diğer önemli bir altyapı oluşturma aracı da Terraform (Provisioning Tool)’ dur. Bunu şöyle de ifade edebiliriz: Terraform ile altyapı oluşturulmakta, Ansible ile de oluşturulan bu altyapı konfigüre edilmektedir.

Doğal olarak IT sistemlerinin güvenliğini ön alarak sağlayabilmek ve daha güvenli bir sistem altyapısı oluşturabilmek için; gerekli adımlar daha sistemler kurulurken atılmalı ve akabinde gerekli izleme ve takip araçları (monitoring) ile sistemin güvenliği devam ettirilmelidir.

Siber güvenlik saldırılarına karşı sadece savunmada kalınmaması ve proaktif tedbirler üretilebilmesi adına, savunma hattı çok katmanlı (multilayer) bir şekilde oluşturulmalıdır. Ancak bu sayede hem daha başarılı hem de daha istikrarlı bir güvenlik tedbiri oluşturma imkânı elde edilebilir.

Ansible ile ilgili alınabilecek önemli güvenlik tedbirleri aşağıdaki gibi özetlenebilir;

  • Yönetici hesaplarını en aza indirmek
  • Erişim kontrolü (Access Controls)
  • Yerel sistemlere erişimi en aza indirmek ve kontrol altında bulundurmak
  • Kullanıcıların kimlik bilgilerine erişim yetkisini kısıtlamak
  • Görevler ayrılığı ilkesini uygulamak
  • Denetim ve log kayıtları özellikleri
  • Tek anonim süper kullanıcıdan (single anonymous super user) kaçınmak
  • Ansible Secret Management kullanılması
  • Ortamların ayrıştırılması (Separation of environments)
  • Rol ve yetki tanımlanması
  • Farkındalık ve eğitim (Awareness and training)
  • Çok faktörlü kimlik doğrulama (Multifactor authentication)

Sonuç olarak; Ansible’ı kurumsal bir ortamda güvence altına alırken, derinlemesine savunma veya örtüşen güvenlik ilkesi kararlı bir şekilde uygulanmalıdır. Bu bağlamda; hem güncel gelişmeler, iyileştirmeler ve “best practice”ler takip edilerek uygulanmalı hem de sistemlerimiz her daim güncel bir şekilde muhafaza edilmelidir. Ayrıca ilgili tedbirlerin temini, kontrolü ve takibi için NIST RMF (Risk Management Framework) kullanılarak, buradaki güncellemelere göre sürekli iyileştirme yapılmalıdır. Söz konusu yöntemler ile, hem bilişim sistemleri güvenli bir şekilde oluşturulabilmekte, hem sistem güvenliği daha stabil bir şekilde temin edilebilmekte, hem de siber saldırılara karşı ön alma imkânı elde edilebilmektedir. Sistemlerin daha kurulurken güvenli bir şekilde oluşturulması, bize güvenlik konusunda esneklik sağlarken, aynı zamanda proaktif olma imkânı da sunmaktadır.