Ana içeriğe geç

Ş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:

  1. Hesabınız için Security Testing abonelik planını etkinleştirmesi için sales@wallarm.com ile iletişime geçin.

  2. Security TestingSchema-BasedTest 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 SettingsAPI 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:

  1. Wallarm Console → Security TestingSchema-BasedTest policies yoluna gidin.

  2. Add policy'ye tıklayın, OpenAPI spesifikasyon dosyasını ekleyin.

  3. Çalıştırılacak test türlerini seçin.

  4. Target URL değerini belirleyin (her test çalışmasında dinamik olarak yeniden tanımlanabilir).

  5. İsteğe bağlı olarak kimlik doğrulama Runtime parameters ekleyin.

    Şema Tabanlı Test - OpenAPI spesifikasyonuna dayalı test politikası oluşturma

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:

  1. 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
  2. (Önerilir) Postman koleksiyonunun tamamen çalışıp çalışmadığını kontrol edin. Örneğin, şu komutu çalıştırarak yapılabilir:

    newman run my_collection.json -e my_environment.json
    

    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:

  1. Wallarm Console → Security TestingSchema-BasedTest policies yoluna gidin.

  2. Add policy'ye tıklayın, Source değerini Postman collection olarak ayarlayın.

  3. Postman koleksiyon dosyasını ekleyin.

  4. İ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.

    Şema Tabanlı Test - Postman koleksiyonuna dayalı test politikası oluşturma

İş 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:

  1. İ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 ve Kullanıcı B'den oturum açma ve aktivite isteklerini dahil edin.

    Postman koleksiyonu - 2 kullanıcı işlemleri

  2. Tüm isteklerin doğru şekilde yürütüldüğünü doğrulayın.

  3. 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:

  1. Her biri farklı bir kimliği doğrulanmış kullanıcıya ait kimlik bilgilerini tutan iki Postman ortam dosyası oluşturun, örneğin:

    • env1.jsonKullanıcı A
    • env2.jsonKullanıcı B
  2. 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 kez env2.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:

Şema Tabanlı Test - test politikasını düzenleme

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:

  1. Wallarm Console → Security TestingSchema-BasedTest policies yoluna gidin.

  2. Politikanıza tıklayın. Politikanın Docker komutu görüntülenecektir.

    Şema Tabanlı Test - test politikası Docker komutu

  3. Gerekirse, Docker günlük düzeyi ve biçimini yeniden tanımlayın.

  4. 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:

    -e TARGET_URL="http://dvapi.st.wallarm.tools" 
    -e AUTH_HEADER="Authorization: Bearer <VALUE>"
    

    Bu parametreleri yeniden tanımlamayı, komuta şunları ekleyen Rewrite authentication data ve/veya Rewrite target URL onay kutularını seçerek kolaylaştırabilirsiniz:

    -e AUTH_HEADER="${AUTH_HEADER}" -e TARGET_URL="${TARGET_URL}"
    
  5. 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