Azure Application Gateway üzerinde Web Uygulaması Güvenlik Duvarı v2 için özel kurallar

Azure Uygulaması lication Gateway Web Uygulaması Güvenlik Duvarı (WAF) v2, birçok farklı saldırı türünden koruma sağlayan önceden yapılandırılmış, platform tarafından yönetilen bir kural kümesiyle birlikte gelir. Bu saldırılar siteler arası betik, SQL ekleme ve diğerleridir. WAF yöneticisiyseniz, çekirdek kural kümesi (CRS) kurallarını artırmak için kendi kurallarınızı yazmak isteyebilirsiniz. Özel kurallarınız eşleşen ölçütlere göre istenen trafiği engelleyebilir, izin verebilir veya günlüğe kaydedebilir. WAF ilkesi algılama moduna ayarlanırsa ve özel bir engelleme kuralı tetiklendiğinde istek günlüğe kaydedilir ve engelleme eylemi yapılmaz.

Özel kurallar, WAF'dan geçen her istek için değerlendirilen kendi kurallarınızı oluşturmanıza olanak sağlar. Bu kurallar, yönetilen kural kümelerindeki kuralların geri kalanından daha yüksek önceliklidir. Özel kurallar bir kural adı, kural önceliği ve eşleşen koşullar dizisi içerir. Bu koşullar karşılanırsa bir eylem gerçekleştirilir (izin vermek, engellemek veya günlüğe kaydetmek için). Özel bir kural tetiklenirse ve bir izin ver veya engelle eylemi yapılırsa, başka özel veya yönetilen kural değerlendirilmez. Özel kurallar isteğe bağlı olarak etkinleştirilebilir/devre dışı bırakılabilir.

Örneğin, 192.168.5.0/24 aralığındaki bir IP adresinden gelen tüm istekleri engelleyebilirsiniz. Bu kuralda işleç IPMatch, matchValues IP adres aralığıdır (192.168.5.0/24) ve eylem trafiği engellemektir. Kuralın adını, önceliğini ve etkin/devre dışı durumunu da ayarlarsınız.

Özel kurallar, güvenlik gereksinimlerinizi karşılayan daha gelişmiş kurallar oluşturmak için bileşik mantık kullanmayı destekler. Örneğin, aşağıdaki mantığı ((kural1:Koşul 1 ve kural1:Koşul 2) veya kural2:Koşul 3) oluşturmak için iki özel kural kullanabilirsiniz. Bu mantık, Koşul 1 ve Koşul 2 karşılanırsa veya Koşul 3 karşılanırsa WAF'nin özel kurallarda belirtilen eylemi gerçekleştirmesi gerektiği anlamına gelir.

Aynı kural içindeki farklı eşleştirme koşulları her zaman ve kullanılarak bileşik hale getirilir. Örneğin, belirli bir IP adresinden gelen ve yalnızca belirli bir tarayıcı kullanan trafiği engelleyin.

veya iki farklı koşul arasında kullanmak istiyorsanız, iki koşul farklı kurallarda olmalıdır. Örneğin, belirli bir IP adresinden gelen trafiği engelleyin veya belirli bir tarayıcı kullanıyorlarsa trafiği engelleyin.

Normal ifadeler, CRS kural kümelerinde olduğu gibi özel kurallarda da desteklenir. Örnekler için bkz. Özel web uygulaması güvenlik duvarı kuralları oluşturma ve kullanma bölümünde Örnekler 3 ve 5.

Not

EN fazla WAF özel kuralı sayısı 100'dür. Application Gateway sınırları hakkında daha fazla bilgi için bkz . Azure aboneliği ve hizmet sınırları, kotalar ve kısıtlamalar.

Dikkat

Uygulama ağ geçidi düzeyinde uygulanan tüm yeniden yönlendirme kuralları WAF özel kurallarını atlar. Yeniden yönlendirme kuralları hakkında daha fazla bilgi için bkz . Application Gateway yeniden yönlendirmesine genel bakış .

İzin verme ve engelleme

Özel kurallarla trafiğe izin vermek ve trafiği engellemek kolaydır. Örneğin, bir IP adresi aralığından gelen tüm trafiği engelleyebilirsiniz. İstek belirli bir tarayıcıdan geliyorsa trafiğe izin vermek için başka bir kural oluşturabilirsiniz.

Bir şeye izin vermek için parametresinin İzin Ver olarak ayarlandığından -Actionemin olun. Bir şeyi engellemek için parametresinin Engelle olarak ayarlandığından -Actionemin olun.

$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example1 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Allow `
   -State Enabled

$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example2 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Block `
   -State Enabled

Önceki $BlockRule , Azure Resource Manager'da aşağıdaki özel kuralla eşler:

"customRules": [
      {
        "name": "blockEvilBot",
        "priority": 2,
        "ruleType": "MatchRule",
        "action": "Block",
        "state": "Enabled",
        "matchConditions": [
          {
            "matchVariables": [
              {
                "variableName": "RequestHeaders",
                "selector": "User-Agent"
              }
            ],
            "operator": "Contains",
            "negationCondition": false,
            "matchValues": [
              "evilbot"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ], 

Bu özel kural, eylemin gerçekleşmesi için karşılanması gereken bir ad, öncelik, eylem ve eşleşen koşullar dizisi içerir. Bu alanların daha fazla açıklaması için aşağıdaki alan açıklamalarına bakın. Örneğin özel kurallar, bkz . Özel web uygulaması güvenlik duvarı kuralları oluşturma ve kullanma.

Özel kurallar için alanlar

Ad [isteğe bağlı]

Kuralın adı. Günlüklerde görünür.

Kuralı etkinleştirme [isteğe bağlı]

Bu kuralı açın/kapatın. Özel kurallar varsayılan olarak etkindir.

Öncelik [gerekli]

  • Kural değerleme sırasını belirler. Değer ne kadar düşükse kuralın değerlendirilmesi o kadar erkendir. İzin verilebilen aralık 1-100 arasındadır.
  • Tüm özel kurallarda benzersiz olmalıdır. Önceliği 40 olan bir kural, öncelik 80 olan bir kuraldan önce değerlendirilir.

Kural türü [gerekli]

Şu anda MatchRule olmalıdır.

Değişken eşleştirme [gerekli]

Değişkenlerden biri olmalıdır:

  • RemoteAddr – Uzak bilgisayar bağlantısının IPv4 Adresi/Aralığı
  • RequestMethod – HTTP İstek yöntemi
  • QueryString – URI'deki değişken
  • PostArgs – POST gövdesinde gönderilen bağımsız değişkenler. Bu eşleşme değişkenini kullanan Özel Kurallar yalnızca 'content-Type' üst bilgisi 'application/x-www-form-urlencoded' ve 'multipart/form-data' olarak ayarlandıysa uygulanır. Ek içerik türü application/json CRS sürüm 3.2 veya üzeri, bot koruma kuralı kümesi ve coğrafi eşleştirme özel kurallarıyla desteklenir.
  • RequestUri – İsteğin URI'si
  • RequestHeaders – İsteğin üst bilgileri
  • RequestBody : Bu değişken, istek gövdesinin tamamını bir bütün olarak içerir. Bu eşleştirme değişkenini kullanan özel kurallar yalnızca 'content-Type' üst bilgisi medya türüne application/x-www-form-urlencoded ayarlandıysa uygulanır. Ek içerik türleri application/soap+xml, application/xml, text/xml CRS sürüm 3.2 veya üzeri, bot koruma kuralı kümesi ve coğrafi eşleştirme özel kurallarıyla desteklenir.
  • RequestCookies – İsteğin tanımlama bilgileri

Seçici [isteğe bağlı]

matchVariable koleksiyonunun alanını açıklar. Örneğin, matchVariable RequestHeaders ise, seçici User-Agent üst bilgisinde olabilir.

İşleç [gerekli]

Aşağıdaki işleçlerden biri olmalıdır:

  • IPMatch - Yalnızca Eşleme Değişkeni RemoteAddr olduğunda kullanılır ve yalnızca IPv4'i destekler
  • Equal – giriş MatchValue ile aynıdır
  • Any: MatchValue olmamalıdır. Değişkeni geçerli bir Seçici ile eşleştirmek için önerilir.
  • Contains
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Normal ifade
  • Geomatch

Negate koşulu [isteğe bağlı]

Geçerli koşulu olumsuzlar.

Dönüştürme [isteğe bağlı]

Eşleşme denenmeden önce yapılacak dönüştürmelerin adlarını içeren dizelerin listesi. Bunlar aşağıdaki dönüştürmeler olabilir:

  • Küçük harf
  • Büyük harfe
  • Trim
  • UrlDecode
  • UrlEncode
  • RemoveNulls
  • HtmlEntityDecode

Değerleri eşleştirme [gerekli]

Eşleştirilecek değerlerin listesi; or'ed olarak düşünülebilir. Örneğin, IP adresleri veya diğer dizeler olabilir. Değer biçimi önceki işlecine bağlıdır.

Desteklenen HTTP isteği yöntemi değerleri şunlardır:

  • GET
  • HEAD
  • POST
  • OPTIONS
  • PUT
  • SİL
  • PATCH

Eylem [gerekli]

WAF ilke algılama modunda, özel bir kural tetiklendiğinde, özel kuralda ayarlanan eylem değeri ne olursa olsun eylem her zaman günlüğe kaydedilir.

  • allow : diğer tüm kuralları atlayarak işlemi yetkiler. Belirtilen istek izin verilenler listesine eklenir ve eşleştirildikten sonra istek daha fazla değerlendirmeyi durdurur ve arka uç havuzuna gönderilir. İzin verilenler listesinde yer alan kurallar, başka özel kurallar veya yönetilen kurallar için değerlendirilmez.
  • Engelle - SecDefaultAction (algılama/önleme modu) temelinde işlemi engeller veya günlüğe kaydeder.
    • Önleme modu - SecDefaultAction temelinde işlemi engeller. Eylemde Allow olduğu gibi istek değerlendirilip blok listesine eklendikten sonra değerlendirme durdurulur ve istek engellenir. Bundan sonra aynı koşulları karşılayan istekler değerlendirilmez ve engellenir.
    • Algılama modu - İşlemi, değerlendirme durdurulduktan sonra SecDefaultAction'a göre günlüğe kaydeder. Aynı koşullara uyan istekler değerlendirilmez ve yalnızca günlüğe kaydedilir.
  • Log: Kuralın günlüğe yazmasına izin verir, ancak diğer kuralların değerlendirme için çalışmasına izin verir. Diğer özel kurallar öncelik sırasına göre değerlendirilir ve ardından yönetilen kurallar gelir.

Özel kuralları kopyalama ve yineleme

Özel kurallar belirli bir ilke içinde çoğaltılabilir. Bir kuralı yinelerken, kural için benzersiz bir ad ve benzersiz bir öncelik değeri belirtmeniz gerekir. Ayrıca, ilkeler aynı abonelikte olduğu sürece özel kurallar bir Application Gateway WAF ilkesinden diğerine kopyalanabilir. Kuralı bir ilkeden diğerine kopyalarken, kuralı kopyalamak istediğiniz Application Gateway WAF ilkesini seçmeniz gerekir. WAF ilkesini seçtikten sonra kurala benzersiz bir ad vermeniz ve bir öncelik derecesi atamanız gerekir.

Coğrafi eşleştirme özel kuralları

Özel kurallar, uygulamalarınızın ve güvenlik ilkelerinizin tam gereksinimlerine uyacak şekilde uyarlanmış kurallar oluşturmanıza olanak tanır. Web uygulamalarınıza erişimi ülkeye/bölgeye göre kısıtlayabilirsiniz. Daha fazla bilgi için bkz . Geomatch özel kuralları.

Sonraki adımlar