Threat Replay Testing
¶
Gerçek dünyadan gelen saldırıları zararsız güvenlik testleri olarak yeniden oynatarak, Wallarm'ın Threat Replay Testing özelliği, geleneksel güvenlik test araçlarının gözden kaçırabileceği uygulama ve API'lerdeki güvenlik açıklarını bulma zorluğunu ele alır.
Threat Replay Testing yetenekleri:
-
Gerçek zamanlı analiz: Gerçek saldırı verilerini kullanarak hâlihazırda istismar edilen veya gelecekte istismar edilme potansiyeli olan güvenlik açıklarını belirler.
-
Kapsamlı test: Gerçek saldırıların varyasyonlarını üretip farklı saldırı vektörlerini keşfeder ve orijinal saldırganların gözden kaçırmış olabileceği zayıflıkları ortaya çıkarır.
-
Güvenli simülasyon: Test isteklerinden zararlı kodu ve hassas kimlik doğrulama ayrıntılarını çıkarır, böylece test süreci herhangi bir hasara yol açmaz veya sistemleri tehlikeye atmaz.
-
Canlı dışı test: Üretim verilerini veya sistem kararlılığını riske atmadan, uygulamaları ve API'leri güvenli bir ortamda (genellikle staging) test etmeye olanak tanır.
Nasıl çalışır¶
Threat Replay Testing modülü Wallarm Cloud üzerinde çalışır. İlk olarak, modül Security Edge veya self-hosted filtreleme düğümünün tespit edip Cloud'a yüklediği kötü amaçlı istekler hakkında ayrıntılı bilgi toplar. Bu verilerden yararlanarak, modül dinamik olarak yaklaşık 100-150 test isteğinden oluşan bir set üretir. Bu test istekleri, kötü amaçlı isteklerle aynı zafiyet türlerini hedefler ancak farklı payload'lar kullanır.
Ortaya çıkan saldırı simülasyonları, orijinal kötü amaçlı isteğin gönderildiği aynı adrese yönlendirilir. Ancak modül, bu test isteklerini örneğin staging veya geliştirme ortamlarına ya da her ikisine birden alternatif hedeflere yönlendirme esnekliği sunar.
Test isteklerine verilen yanıtları analiz ederek, modül belirli saldırı türlerine karşı zafiyeti belirler. Keşfedilen güvenlik açıkları Wallarm Console UI'nin Vulnerabilities bölümünde kataloglanır. Ayrıca, bu bulgular hakkında bildirimler almayı tercih edebilirsiniz.
Aşağıdaki diyagram modülün nasıl çalıştığını göstermektedir:
Oluşturulan istekler, diğer isteklerden ayırt edilmesine yardımcı olmak için User-Agent: Wallarm Threat-Verification (v1.x)
başlığını taşır.
Test isteği güvenliği¶
Threat Replay Testing modülü, test isteklerini mümkün olan en güvenli şekilde oluşturacak biçimde tasarlanmıştır ve şu temel özellikleri sağlar:
-
Oluşturulan isteklerin kötü amaçlı yükleri gerçek zararlı söz dizimi içermez, sadece saldırı ilkesini taklit etmeye yöneliktir. Sonuç olarak, kaynaklarınıza zarar vermezler.
-
Cookie
,Authorization: Basic
veViewstate
gibi kimlik doğrulama başlıkları yeniden oynatılan isteklerden hariç tutulur. Ayrıca, özel kimlik doğrulama başlıkları ve maskeleme kuralı doğrultusunda, gerekli görüldüğünde ilave başlıklar uyarlanabilir veya kaldırılabilir.
Örnek¶
Aşağıdaki gibi, Wallarm filtreleme düğümü tarafından ilk olarak tespit edilip Cloud'a yüklenen gerçek dünyaya benzer bir GET isteğini ele alalım:
Bu istekten, modül şu ayrıntıları öğrenir:
-
Saldırıya uğrayan URL
https://example.com/login
-
Kullanılan saldırı türü SQLi'dir (
UNION SELECT username, password
payload'una göre) -
Saldırıya uğrayan sorgu dizesi parametresi
user
-
İstekte sağlanan ek bilgi, istek dizesi parametresi
token=IyEvYmluL3NoCg
'dur (muhtemelen uygulama, kullanıcının kimliğini doğrulamak için kullanır)
Bu verilerden yararlanan modül bir dizi test isteği hazırlar. Bu istekler, aşağıdakiler gibi çeşitli payload'lar kullanarak olası SQL enjeksiyonu zafiyetlerine odaklanır:
https://example.com/login&user=1')+WAITFOR+DELAY+'0 indexpt'+AND+('wlrm'='wlrm
https://example.com/login&user=1+AND+SLEEP(10)--+wlrm
https://example.com/login&user=1);SELECT+PG_SLEEP(10)--
https://example.com/login&user=1'+OR+SLEEP(10)+AND+'wlrm'='wlrm
https://example.com/login&user=1+AND+1=(SELECT+1+FROM+PG_SLEEP(10))
https://example.com/login&user=%23'%23\x22%0a-sleep(10)%23
https://example.com/login&user=1';+WAITFOR+DELAY+'0code:10'--
https://example.com/login&user=1%27%29+OR+SLEEP%280%29+AND+%28%27wlrm%27%3D%27wlrm
https://example.com/login&user=SLEEP(10)/*'XOR(SLEEP(10))OR'|\x22XOR(SLEEP(10))OR\x22*/
Sınırlamalar¶
Threat Replay Testing şu durumlarda kullanılamaz:
-
İstek işleme limiti olan saldırılar
-
Güvenlik açıkları zaten kapatılmış olan saldırılar
-
Doğrulama için yeterli veri içermeyen saldırılar
-
kaynak IP'lere göre gruplanmış hits'lerden oluşan saldırılar
Desteklenen saldırı türlerinin listesini kurulum dokümantasyonunda görün.