Güvenlik kaosu mühendisliği kısaca güvenlik ekiplerinin bir şirketin sisteminde bulunan güvenlik açıklarını veya zayıflıklarını proaktif olarak keşfetmek için kullanılan yeni bir yöntemdir.
Her ne kadar güvenlik kaosu mühendisliği penetrasyon testi gibi gözükse de aslında aynı değil. Her ikisi de, bir etki yaratmadan önce bir sistem içerisindeki güvenlik açıklarını ve zayıf noktaları bulmayı sağlayan proaktif önlemlerdir. İkisini birbirinden ayıran farklar:
- Penetrasyon testinde sistemdeki zayıflıklar bir saldırı taklit edilerek ortaya çıkılır.
- Kaos testinde kasıtlı olarak hata, başarısızlık ve rastgele davranışlar üretilir. Sistemin hepsini doğru bir şekilde algılayıp işleyemediği değerlendirilir.
Üretim aşamasında olan herhangi bir uygulamayı imkan dahilinde sabote temeyi isteyen bir güvenlik ekibi çok fazla tepki alacaktır. Ancak bilinmesi gerekir ki tüm bunlar kontrollü deneylerdir. Ve bu deneyler doğru yapıldığında eskisinden daha güçlü ve güvenli bir IT ortamı yaratacaktır. Sonuç olarak sistemin tasarlandığı şekilde çalıştığına dair güven artar.
Güvenliği test etmek için güvenlik kaosu mühendisliği nasıl kullanılır?
Bir işletmede yapılacak ilk test, personellerin kullandıkları cihazların ve sürecin nasıl çalıştığını öğrenebilmeleri için hazırlık ortamında ya da test ortamında çalıştırılmalıdır. Test edilen ortamda her seferinde yalnızca bir deney yapılmalıdır. Buradaki amaç ise, örneğin bir bağlantı noktası yanlış konfigüre edilmiş olsun. Test sonucunda olayın ne, ne zaman ve hangi noktada olduğu tespit edilir.
Unutmayın ki, kaos mühendisliğinde amaç hiçbir zaman tüm altyapıya karşı karmaşık bir saldırı başlatmak değildir. Çünkü böyle bir durumda beklenmedik olaydan daha farklı bir senaryo yaratarak olayın nerede başladığını anlamayı zorlaştırır. Bu, katılanların gerçek bir saldırının yoğun baskısı altında olmadığı ve pratikten daha fazlasını öğrenebileceğini gösterir. Testlerinize çok fazla değişken eklemeyin. Yoksa ilk hedefe ne olduğuna yönelik görünürlüğü engelleyen kademeli sorunlar olabilir.
Bu çalışmadan etkilenme ihtimali olan ve sistemi tekrar stabil bir duruma getirmesi gereken herkes teste alınır. Örneğin; yazılım mühendisleri, network mühendisleri, müdahale ve güvenlik ekipleri teste dahil edilmelidir. Kod olarak altyapı kullanımı yaygınlaştıkça, çalışanların kodlamayı biraz anlayabilmesi, yazılımın nasıl oluşturulduğunu ve içerdiği karmaşıklıkları daha çabuk kavramalarını sağlar.
Planlama önceden yapılmadan test yapılamaz. Planda, testin nelerden oluşacağını açıkça tanımlayın. Sistemler ve güvenlik kontrolleri beklenildiği gibi çalıştığında ne olacağını ve testin hangi aşamada sonlanacağını açıklayın. Örneğin; Bağlantı noktası yanlış konfigüre edildiğinde,
- Hangi firewall kurallarının bağlantı noktası üzerinden yetkisiz trafiği yakalaması gerekiyor,
- Hangi hareketler oluşturulmalıdır
- Hareketler nerede loglanıp işlenmelidir,
- Uyarıları kimlerin almalı
Planlama haritası çıkartıp belgeleyin.
Yazılım, ağ ve çözüm planlayıcıları, genel sistemin nasıl çalışması gerektiğine dair farklı modelleri kullandığı için böyle bir çalışma ilginç bir alıştırma örneği sağlar.
Teste başladıktan sonra, beklenen ve beklenmeyen her olayı kaydedin. Böylece ekibin sadece güvenlik kontrolleri tarafından hazırlanan bilgileri kullanarak problemi ne kadar hızlı çözdüğünü görün. Test, beklenmedik problemler veya kararsızlık yaratmaya başladığı zaman sonlandırılır. Eklenen hatalar çözülür.
Test sonlandıktan sonra çıkan sonuçların değerlendirmesini yapın. Sistemin bir sonraki testten geçebilmesi için hangi değişikliklerin yapılması gerektiğini belirleyin.
Örneğin:
- Örnekler arasında konfigürasyon drifti var mı?
- Loglama daha fazla içeriğe ihtiyaç duyuyor mu?
- Sorunun nereden geldiği belli olduğunda uyarı almak iyidir. Diğer test sonuçları, firewall kurallarının artık etkisinin kalmadığını ya da geçerli olmadığını gösterir.
- Güvenlik kontrolleri, yapmak için tasarlandıkları veya konfigüre edildikleri neleri yapamadılar?
Hatanın olması gerekenden daha uzun sürmesi, personel veya beceri eksikliğinden kaynaklanıyor olabilir. Tüm bu sonuçlar müdahale ekibine güçlü ve zayıf yönleri hakkında bilgi verir.
Test ortamında farklı güvenlik kontrolleri test edilip değerlendirildikten sonra, güvenlik kontrolü doğrulaması üretim ortamına geçer. Bu adımın önemli olmasının nedeni, distributed bir sistemde, ikisi arasında her zaman birkaç konfigürasyon driftleri veya farklılıklar bulunur.
Beklemek yerine olası arızaları test edin
İnsanların modern bir uygulamayı ve destekleyici altyapısının modellemesini yapmak zordur. Her bir olayda penetrasyon testi yapmak imkansız olduğu için aynı araçlara fazladan para harcamak gereksizdir. Bu durumda güvenlik kaosu mühendisliği işletmelerde kritik ve önemli uygulamalarda güveni ve genel güvenliği nasıl arttırabileceğinize dair bir cevap oluşturur.