Şema Tabanlı Test Kurulumu
¶
Bu makale, Wallarm'ın Şema Tabanlı Testini nasıl etkinleştireceğinizi ve yapılandıracağınızı açıklar.
Etkinleştirme¶
Şema Tabanlı Test varsayılan olarak devre dışıdır. Etkinleştirmek için:
-
Hesabınız için Security Testing abonelik planını etkinleştirmesi için sales@wallarm.com ile iletişime geçin.
-
Security Testing → Schema-Based → Test policies sekmesine gidin ve en az bir politika oluşturun.
Önkoşullar - token¶
Şema Tabanlı Test, çalışan Docker konteyneri ile Wallarm Cloud arasında veri alışverişinin yetkilendirilmesi için bir token gerektirir. Token iki şekilde oluşturulabilir:
-
Otomatik - Şema Tabanlı Test, herhangi bir politikadan Docker komutunu ilk kez kopyalama girişiminde token'ı otomatik olarak oluşturacak ve
docker run
komutuna ekleyecektir. Diğer politikalar mevcut token'ı yeniden kullanacaktır. -
Manuel - Wallarm Console içinde Settings → API Tokens yoluna gidin, New token'a tıklayın; oluştururken, Token usage değerini
Schema-Based Testing agent
olarak ayarlayın. Tüm politikalar bu token'ı kullanacaktır.
Test politikalarını yapılandırma¶
Bir test politikasını OpenAPI spesifikasyonuna (OAS) veya Postman koleksiyonuna temelli olarak yapılandırabilirsiniz. Dikkat edin, bir test politikası yalnızca tek bir test türüne yöneliktir (ya OAS ya da Postman tabanlı).
-
OAS, girdi doğrulama, enjeksiyon ve yanlış yapılandırma tespitine daha odaklıdır
-
Postman, karmaşık iş mantığı ve erişim kontrol zafiyetlerine odaklanır
OAS tabanlı¶
OpenAPI spesifikasyonu (OAS) tabanlı test politikası, kalıcı olarak şunları tanımlar:
-
Uygulamanın OpenAPI spesifikasyonu
-
Çalıştırılacak testler
Her test çalışması için aynı olan kalıcı parametrelerin yanı sıra, her test politikası, her bir sonraki test çalışması sırasında yeniden tanımlanabilen isteğe bağlı parametreler (Runtime parameters) içerebilir. Çalışma zamanı parametrelerini yeniden tanımlamak, Docker'ı CI/CD hatlarına gömmek için kullanışlı olabilir:
-
Uygulamanın Target URL değeri
(her çalıştırmada yeniden tanımlanabilse de, bazı başlangıç değerleri gereklidir)
-
Kimlik doğrulama parametreleri
Test politikasını yapılandırmak için:
-
Wallarm Console → Security Testing → Schema-Based → Test policies yoluna gidin.
-
Add policy'ye tıklayın, OpenAPI spesifikasyon dosyasını ekleyin.
-
Çalıştırılacak test türlerini seçin.
-
Target URL değerini belirleyin (her test çalışmasında dinamik olarak yeniden tanımlanabilir).
-
İsteğe bağlı olarak kimlik doğrulama Runtime parameters ekleyin.
Postman koleksiyonu tabanlı¶
Postman tabanlı güvenlik testi ile düzenli API testlerinizle birlikte güvenlik taramalarını otomatikleştirerek her API çalıştırmasının zafiyetlere karşı kapsamlı şekilde test edildiğinden emin olabilirsiniz.
Temel olarak API fonksiyonel testleri
Wallarm'ın şema tabanlı testi, güvenlik testleri üretmek için fonksiyonel testlerinizi kullanır. Fonksiyonel testleriniz ne kadar kapsamlıysa, Wallarm'ın sağlayabileceği güvenlik kapsamı o kadar geniş olur. Daha fazla API, kullanıcı ve istek, daha zengin ve etkili güvenlik testi demektir.
Postman koleksiyonunun ön kontrolü¶
Şema tabanlı güvenlik testi için Postman verilerini kullanmadan önce:
-
Koleksiyon ve ortam dosyalarınızın şunları içerdiğinden emin olun:
- API uç noktaları için fonksiyonel testler
- hedef uygulamanın konumu
- tüm ortam değişkenlerinin ayarlanmış olması
- hedef uygulamada kimlik doğrulamak için gerekli kimlik bilgileri
-
(Önerilir) Postman koleksiyonunun tamamen çalışıp çalışmadığını kontrol edin. Örneğin, şu komutu çalıştırarak yapılabilir:
Bu, önceden size Postman koleksiyonunun kalitesi, hedef URL'nin erişilebilirliği veya gerekli tüm değişkenlerin belirtilip belirtilmediği gibi konularda herhangi bir sorun olup olmadığını söyleyebilir.
Geçerli Postman koleksiyonu
Postman koleksiyonunun kendisi çalışamıyorsa, şema tabanlı güvenlik testi de çalışmayacaktır.
Wallarm'da test politikasını yapılandırma¶
Wallarm'da, Postman koleksiyonu tabanlı test politikası şunları tanımlar:
-
Uygulamanın Postman koleksiyonu.
-
Postman ortam dosyaları (tüm yapılandırma ana koleksiyon dosyasında tutuluyorsa isteğe bağlıdır).
Target URL ve kimlik doğrulama
Uygulamanın Target URL ve kimlik doğrulama parametreleri Postman koleksiyonu veya ortam dosyalarında tanımlanır.
-
Postman koleksiyonlarına dayalı güvenlik testi için test vaka seçimi şu anda desteklenmemektedir.
Test politikasını yapılandırmak için:
-
Wallarm Console → Security Testing → Schema-Based → Test policies yoluna gidin.
-
Add policy'ye tıklayın, Source değerini Postman collection olarak ayarlayın.
-
Postman koleksiyon dosyasını ekleyin.
-
İsteğe bağlı olarak Postman ortam dosyalarını ekleyin. 2 dosya eklemek, farklı değişken değerleriyle (örneğin, farklı kimlik bilgileri) testi iki kez çalıştırmayı ve ardından sonuçları karşılaştırmayı sağlar.
İş mantığı güvenlik testi¶
İş mantığı testleri için (OWASP API1:2023 Nesne Düzeyi Yetkilendirmenin Bozulması (BOLA) ve OWASP API5:2023 Fonksiyon Düzeyi Yetkilendirmenin Bozulması (BFLA)) Wallarm'ın Şema Tabanlı Güvenlik Testi, tercihen farklı ayrıcalık seviyelerine sahip (ör. yönetici ve normal kullanıcılar) en az iki farklı kimliği doğrulanmış kullanıcıdan API trafiği gerektirir. Bu çeşitlilik, daha etkili iş mantığı güvenlik testlerini mümkün kılar ve daha kapsamlı bir değerlendirme sağlar.
İş mantığı zafiyeti | Girdi gereksinimleri |
---|---|
OWASP API1:2023 Nesne Düzeyi Yetkilendirmenin Bozulması (BOLA) | Bu zafiyetin test edilmesi, uygun nesne düzeyi yetkilendirme kontrollerinin mevcut olup olmadığını göstermek için birden fazla kimliği doğrulanmış kullanıcı gerektirir. |
OWASP API5:2023 Fonksiyon Düzeyi Yetkilendirmenin Bozulması (BFLA) | Bu zafiyetin test edilmesi, fonksiyon düzeyi yetkilendirmenin tutarlı şekilde uygulanıp uygulanmadığını değerlendirmek için farklı ayrıcalık seviyelerine sahip kullanıcıların isteklerini gerektirir. |
Örnek 1: İki kullanıcıdan gelen istekleri içeren Postman koleksiyonları kullanma¶
Şunları yapın:
-
İki kimliği doğrulanmış kullanıcıdan gelen istekleri içeren bir Postman koleksiyonu oluşturun. Örneğin, hedef uygulamada aynı koleksiyonda
Kullanıcı A
veKullanıcı B
'den oturum açma ve aktivite isteklerini dahil edin. -
Tüm isteklerin doğru şekilde yürütüldüğünü doğrulayın.
-
Oluşturduğunuz Postman koleksiyonu ile bir test politikası oluşturun.
Örnek 2: Birden çok kullanıcı için Postman ortamlarını kullanma¶
Şunları yapın:
-
Her biri farklı bir kimliği doğrulanmış kullanıcıya ait kimlik bilgilerini tutan iki Postman ortam dosyası oluşturun, örneğin:
env1.json
→Kullanıcı A
env2.json
→Kullanıcı B
-
Postman koleksiyonunuzu ve her iki ortam dosyasını kullanan bir test politikası oluşturun.
Bu yapılandırmada, koleksiyon iki kez çalıştırılır - bir kez
env1.json
(Kullanıcı A
) ve bir kezenv2.json
(Kullanıcı B
) ile - böylece her istek her iki kullanıcı bağlamında da çalışır.
Mevcut politikayı düzenleme¶
Önceden oluşturulmuş politikaları düzenleyebilirsiniz: doğrudan politikaya tıklamak Docker komut bilgilerini açarken, düzenleme iletişim kutusuna erişmek için düzenle düğmesine tıklayabilirsiniz:
Docker çalıştırma¶
Test politikası oluşturulduğunda, uygulamanız için testleri başlatmanızı sağlayan Docker çalıştırma komutunu size sunar:
-
Wallarm Console → Security Testing → Schema-Based → Test policies yoluna gidin.
-
Politikanıza tıklayın. Politikanın Docker komutu görüntülenecektir.
-
Gerekirse, Docker günlük düzeyi ve biçimini yeniden tanımlayın.
-
Komutu kopyalayın ve çalıştırın veya CI/CD hattınıza gömün. Bu, politikanızda seçilen güvenlik testlerini uygulamanız için çalıştıracaktır.
OAS tabanlı çalıştırma için, Docker
run
komutuna ilgili-e
parametrelerini ekleyerek her çalıştırmada politikanın Runtime parameters değerlerini yeniden tanımlayabileceğinizi unutmayın, örneğin:Bu parametreleri yeniden tanımlamayı, komuta şunları ekleyen Rewrite authentication data ve/veya Rewrite target URL onay kutularını seçerek kolaylaştırabilirsiniz:
-
Test runs sekmesinde çalıştırma istatistiklerini ve test çalıştırma sonuçlarını görüntüleyin.
Politikaları silme¶
Bir test politikasını silebilirsiniz. Bunu yaparsanız:
-
Önceki test çalıştırmalarına ilişkin bilgiler olduğu gibi kalır
-
Silinen politika temelinde Docker komutunu çalıştıramazsınız
-
Politikanın Docker konteynerleri çalışıyorsa, çalışmaya devam ederler
-
Politikanın Docker konteynerleri durduğunda, bunları yeniden çalıştıramazsınız