Ana içeriğe geç

MuleSoft Flex Gateway için Wallarm Connector

Bu kılavuz, Wallarm connector kullanarak MuleSoft Flex Gateway tarafından yönetilen Mule ve Mule olmayan API'larınızı nasıl güvence altına alacağınızı açıklar.

Flex Gateway için Wallarm'ı bir connector olarak kullanmak için, Wallarm node'u harici olarak dağıtmanız ve trafiği analiz için Wallarm node'una yönlendirmek amacıyla MuleSoft içinde Wallarm tarafından sağlanan policy'yi uygulamanız gerekir.

Flex Gateway için Wallarm connector, hem eşzamanlı (in-line) hem de eşzamansız (out‑of‑band) trafik analizini destekler:

Wallarm policy ile MuleSoft

Wallarm policy ile MuleSoft

Kullanım senaryoları

Bu çözüm, Flex Gateway tarafından yönetilen API'ların güvenliğini sağlamak için önerilen çözümdür.

Sınırlamalar

  • When deploying the Wallarm service with the LoadBalancer type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported.

  • Custom blocking page and blocking code configurations are not yet supported.

    All blocked malicious traffic is returned with status code 403 and the default block page.

  • Rate limiting by Wallarm rules is not supported.

    Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.

  • Multitenancy is not supported.

    All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.

Gereksinimler

Dağıtıma devam etmek için aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • MuleSoft platformunu anlama.

  • Uygulamanız ve API'niz Flex Gateway üzerinde ilişkilendirilmiş ve çalışır durumda.

    Kısmi istekler notu

    Policy engelleme modunda çalışan connector için, upstream'inizin kısmi istekleri güvenli şekilde işleyebildiğinden emin olun. Bunun nedeni proxy wasm policy'lerinin akış doğasıdır - tam doğrulama tamamlanmadan önce bazı gövde verileri upstream'e ulaşabilir. Daha fazla bilgi

  • MuleSoft kullanıcınızın MuleSoft Anypoint Platform hesabına artifact yükleme yetkisi olması.

  • Wallarm Console'da US Cloud veya EU Cloud için Administrator hesabına erişim.

  • Ana sisteminizde yüklü Node.js 16.0.0+ ve npm 7+.

  • Ana sisteminizde yüklü make.

  • Ana sisteminizde yüklü Anypoint CLI 4.x.

  • Ana sisteminizde yüklü PDK CLI ön koşulları.

  • Ana sisteminizde yüklü ve çalışan Docker.

  • Native Node 0.16.0 veya üzeri.

Dağıtım

1. Bir Wallarm node dağıtın

Wallarm node, dağıtmanız gereken Wallarm platformunun temel bileşenidir. Gelen trafiği inceler, kötü amaçlı etkinlikleri tespit eder ve tehditleri azaltacak şekilde yapılandırılabilir.

Flex Gateway connector için node'u yalnızca kendi altyapınızda dağıtabilirsiniz.

Kendi kendine barındırılan node dağıtımı için bir yapıt seçin ve ekli talimatları izleyin:

Gerekli Node sürümü

Lütfen MuleSoft Flex Gateway connector'ünün yalnızca Native Node'un 0.16.0+ sürümü tarafından desteklendiğini unutmayın.

2. Wallarm policy'sini MuleSoft Exchange'e edinin ve yükleyin

Wallarm policy'sini edinmek ve MuleSoft Exchange'e yüklemek için şu adımları izleyin:

  1. Kod paketini almak için sales@wallarm.com ile iletişime geçin.

  2. Policy'yi yayınlamak için kullanacağınız makinenin gerekli tüm gereksinimleri karşıladığından emin olun.

  3. Policy arşivini çıkarın.

  4. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → kuruluşunuzu seçin → business group ID değerini kopyalayın.

  5. Çıkardığınız policy dizininde → Cargo.toml[package.metadata.anypoint]group_id alanına kopyaladığınız grup ID'sini girin:

    ...
    [package.metadata.anypoint]
    group_id = "<BUSINESS_GROUP_ID>"
    definition_asset_id = "wallarm-custom-policy"
    implementation_asset_id = "wallarm-custom-policy-flex"
    ...
    
  6. Policy ile çalıştığınız aynı terminal oturumunda Anypoint CLI ile kimlik doğrulayın:

    anypoint-cli-v4 conf username <USERNAME>
    anypoint-cli-v4 conf password '<PASSWORD>'
    
  7. Policy'yi derleyin ve yayınlayın:

    make setup      # Bağımlılıkları ve PDK CLI'yi kurar
    make build      # Policy'yi derler
    make release    # Policy'nin yeni üretim sürümünü Anypoint'e yayınlar
    # veya
    # make publish  # Policy'nin bir geliştirme sürümünü Anypoint'e yayınlar
    

Özel policy'niz artık MuleSoft Anypoint Platform Exchange'de kullanılabilir.

Wallarm policy ile MuleSoft

3. Wallarm policy'sini API'nize ekleyin

Wallarm policy'yi tek bir API'ya veya tüm API'lara ekleyebilirsiniz.

  1. Policy'yi tek bir API'ya uygulamak için Anypoint Platform → API Manager → istenen API'yı seçin → PoliciesAdd policy yolunu izleyin.

  2. Policy'yi tüm API'lara uygulamak için Anypoint Platform → API ManagerAutomated PoliciesAdd automated policy yolunu izleyin.

  3. Exchange'den Wallarm policy'yi seçin.

  4. wallarm_node parametresinde http:// veya https:// dahil Wallarm node URL'sini belirtin.

  5. Gerekirse, diğer parametreleri değiştirin.

  6. Policy'yi uygulayın.

Wallarm policy

Yapılandırma seçenekleri

Flex Gateway için Wallarm policy ayarlarında aşağıdaki parametreleri belirtebilirsiniz:

Parametre Açıklama Gerekli mi?
wallarm_node Wallarm Node örneğinizin adresini ayarlar. Evet
real_ip_header Proxy veya yük dengeleyici arkasındayken orijinal istemci IP adresini belirlemek için hangi başlığın kullanılacağını belirtir. Varsayılan: X-Forwarded-For. Evet
wallarm_mode Trafik işleme modunu belirler: sync, trafiği doğrudan Wallarm Node üzerinden işler, async ise trafiğin kopyasını orijinal akışı etkilemeden analiz eder. Varsayılan: sync. Evet
fallback_action Wallarm node kapalıyken istek işleme davranışını tanımlar. pass (tüm istekler geçirilir) veya block (tüm istekler 403 kodu ile engellenir) olabilir. Varsayılan: pass. Evet
parse_responses Yanıt gövdelerinin analiz edilip edilmeyeceğini kontrol eder. Yanıt şeması keşfini ve gelişmiş saldırı ve zafiyet tespit yeteneklerini etkinleştirir. Varsayılan: true. Evet
response_body_limit Wallarm node'una gönderilen yanıt gövdesinin boyutunu sınırlar. Varsayılan: 4096 bayt. Hayır

Test

Dağıtılan policy'nin işlevselliğini test etmek için şu adımları izleyin:

  1. API'nize test amaçlı Path Traversal saldırısı içeren isteği gönderin:

    curl http://<GATEWAY_URL>/etc/passwd
    
  2. Wallarm Console → US Cloud veya EU Cloud içindeki Attacks bölümünü açın ve saldırının listede görüntülendiğinden emin olun.

    Arayüzde Attacks

    Wallarm node modu engelleme olarak ayarlanmışsa ve trafik in-line akıyorsa, istek de engellenecektir.

Sorun giderme

Çözüm beklenildiği gibi çalışmıyorsa, MuleSoft Anypoint Platform → Runtime Manager → uygulamanız → Logs yolunu izleyerek API'nizin günlüklerine bakın.

Ayrıca API Manager içinde API'nize gidip Policies sekmesinde uygulanan policy'leri inceleyerek policy'nin API'ya uygulanıp uygulanmadığını doğrulayabilirsiniz. Otomatik policy'ler için, kapsanan API'ları ve hariç tutulma nedenlerini görmek amacıyla See covered APIs seçeneğini kullanabilirsiniz.

Policy'yi yükseltme

Dağıtılmış Wallarm policy'yi daha yeni bir sürüme yükseltmek için:

  1. Güncellenmiş Wallarm policy'yi indirin ve Adım 2'de açıklandığı gibi MuleSoft Exchange'e yükleyin.

  2. Yeni sürüm Exchange'de göründüğünde, API Manager → API'niz → Policies → Wallarm policy → Edit configurationAdvanced options yolunu izleyin ve açılır menüden yeni policy sürümünü seçin.

  3. Yeni sürüm ek parametreler getiriyorsa, gerekli değerleri sağlayın.

  4. Değişiklikleri kaydedin.

Wallarm policy otomatik policy olarak uygulanıyorsa, doğrudan yükseltmeler mümkün olmayabilir. Bu gibi durumlarda mevcut policy'yi kaldırın ve yeni sürümü manuel olarak yeniden uygulayın.

Policy yükseltmeleri, özellikle büyük sürüm güncellemeleri için bir Wallarm node yükseltmesi gerektirebilir. Kendi kendine barındırılan Node sürüm notları için Native Node değişiklik günlüğüne bakın. Gelecekteki yükseltmeleri basitleştirmek ve kullanımdan kaldırmayı önlemek için düzenli node güncellemeleri önerilir.

Policy'yi kaldırma

Wallarm policy'yi kaldırmak için, otomatik policy listesinde veya tek bir API'ya uygulanmış policy'lerin listesinde Remove policy seçeneğini kullanın.