Azure Front Door dışlama listeleriyle Web Uygulaması Güvenlik Duvarı

Bazen Azure Front Door'daki Azure Web Uygulaması Güvenlik Duvarı yasal bir isteği engelleyebilir. Web uygulaması güvenlik duvarınızı (WAF) ayarlamanın bir parçası olarak, WAF'yi uygulamanızın isteğine izin verecek şekilde yapılandırabilirsiniz. WAF dışlama listeleri, bir WAF değerlendirmesinden belirli istek özniteliklerini atlamanıza olanak tanır. İsteğin geri kalanı normal olarak değerlendirilir.

Örneğin, Microsoft Entra Id kimlik doğrulaması için kullanılan belirteçler sağlar. Bu belirteçler bir istek üst bilgisinde kullanıldığında, bir veya daha fazla WAF kuralı tarafından hatalı pozitif algılama tetikleyebilecek özel karakterler içerebilir. Üst bilgiyi, WAF'ye üst bilgiyi yoksaymalarını söyleyen bir dışlama listesine ekleyebilirsiniz. WAF, şüpheli içerik isteğinin geri kalanını incelemeye devam eder.

Dışlama kapsamları

Aşağıdaki kapsamlarda dışlamalar oluşturabilirsiniz:

  • Kural kümesi: Bu dışlamalar bir kural kümesi içindeki tüm kurallar için geçerlidir.
  • Kural grubu: Bu dışlamalar, bir kural kümesi içindeki belirli bir kategorinin tüm kuralları için geçerlidir. Örneğin, tüm SQL ekleme kuralları için geçerli olan bir dışlama yapılandırabilirsiniz.
  • Kural: Bu dışlamalar tek bir kural için geçerlidir.

Dışlama seçicileri

Dışlama seçicileri, dışlamanın uygulandığı isteklerin bölümlerini tanımlar. WAF, isteğin belirtilen bölümlerinde bulduğu tüm algılamaları yoksayar. Tek bir dışlamada birden çok dışlama seçicisi belirtebilirsiniz.

Her dışlama seçicisi bir eşleşme değişkeni, bir işleç ve bir seçici belirtti.

Değişkenleri eşleştirme

Bir dışlama için aşağıdaki istek özniteliklerini ekleyebilirsiniz:

  • İstek üst bilgisi adı
  • İstek tanımlama bilgisi adı
  • Sorgu dizesi args adı
  • İstek gövdesi POST args adı
  • İstek gövdesi JSON birleştirme adı (DRS 2.0 veya üzerinde desteklenir)

Kullandığınız alanların değerleri WAF kurallarına göre değerlendirilmez, ancak adları değerlendirilir. Dışlama listeleri, alanın değerini denetlemeyi devre dışı bırakır. Ancak, alan adları yine de değerlendirilir. Daha fazla bilgi için bkz . Diğer istek özniteliklerini dışlama.

İşleçler

Eşleşecek tam bir istek üst bilgisi, gövde, tanımlama bilgisi veya sorgu dizesi özniteliği belirtebilirsiniz. İsterseniz kısmi eşleşmeler de belirtebilirsiniz. Eşleştirme ölçütleri için aşağıdaki işleçler desteklenir:

  • Eşittir: Belirtilen seçici değeriyle tam olarak eşleşen tüm istek alanlarını eşleştirin. Örneğin bearerToken adlı bir üst bilgi seçmek için seçicisi bearerToken olarak ayarlanmış işlecini kullanınEquals.
  • Şununla başlar: Belirtilen seçici değeriyle başlayan tüm istek alanlarını eşleştirin.
  • Şununla biter: Belirtilen seçici değeriyle biten tüm istek alanlarını eşleştirin.
  • İçerir: Belirtilen seçici değerini içeren tüm istek alanlarını eşleştirin.
  • Herhangi birine eşittir: Tüm istek alanlarını eşleştirin. işlecini Equals any kullandığınızda seçici değeri otomatik olarak olarak ayarlanır *. Örneğin, işlecini Equals any kullanarak tüm istek üst bilgileri için geçerli olan bir dışlama yapılandırabilirsiniz.

Büyük/küçük harfe duyarlı

Üst bilgi ve tanımlama bilgisi adları büyük/küçük harfe duyarlı değildir. Sorgu dizeleri, POST bağımsız değişkenleri ve JSON bağımsız değişkenleri büyük/küçük harfe duyarlıdır.

Gövde içeriği denetimi

Yönetilen kurallardan bazıları, POST bağımsız değişkenlerine veya JSON bağımsız değişkenlerine ayrıştırmadan önce istek gövdesinin ham yükünü değerlendirir. Bu nedenle bazı durumlarda veya DecodedInitialBodyContentsdeğerine InitialBodyContents sahip matchVariableName günlük girdilerini görebilirsiniz.

Örneğin, adlı FOOPOST bağımsız değişkenlerini tanımlamak ve yoksaymak için eşleme değişkeni Request body POST args ve seçici ile bir dışlama oluşturduğunuzu varsayalım. Artık değeri olan matchVariableName hiçbir günlük girdisi PostParamValue:FOOgörmezsiniz. Ancak, adlı FOO post bağımsız değişkeni bir kuralı tetikleyen metin içeriyorsa, günlük algılamayı ilk gövde içeriğinde gösterebilir. Şu anda ilk gövde içeriği için dışlama oluşturamazsınız.

Azure Web Uygulaması Güvenlik Duvarı günlüklerini temel alan dışlama kuralları tanımlama

Kuralı tetikleyen istek bölümleri de dahil olmak üzere engellenen bir isteğin ayrıntılarını görüntülemek için günlükleri kullanabilirsiniz. Daha fazla bilgi için bkz. Azure Web Uygulaması Güvenlik Duvarı izleme ve günlüğe kaydetme.

Bazen belirli bir WAF kuralı istek gövdesindeki bir istek üst bilgisi, tanımlama bilgisi, POST bağımsız değişkeni, sorgu dizesi bağımsız değişkeni veya JSON alanında bulunan değerlerden hatalı pozitif algılamalar üretir. Bu hatalı pozitif algılamalar gerçekleşirse, kuralı isteğin ilgili bölümünü değerlendirmesinin dışında tutacak şekilde yapılandırabilirsiniz.

Aşağıdaki tabloda WAF günlüklerindeki örnek değerler ve oluşturabileceğiniz ilgili dışlama seçicileri gösterilmektedir.

WAF günlüklerinden matchVariableName Portalda kural dışlama
CookieValue:SOME_NAME İstek tanımlama bilgisi adı Eşittir SOME_NAME
HeaderValue:SOME_NAME İstek üst bilgisi adı Eşittir SOME_NAME
PostParamValue:SOME_NAME İstek gövdesi POST birleştirme adı Eşittir SOME_NAME
QueryParamValue:SOME_NAME Sorgu dizesi args adı Eşittir SOME_NAME
JsonValue:SOME_NAME İstek gövdesi JSON birleştirme adı Eşittir SOME_NAME

JSON istek gövdeleri için dışlamalar

DRS sürüm 2.0'dan JSON istek gövdeleri WAF tarafından incelenir. Örneğin, şu JSON istek gövdesini göz önünde bulundurun:

{
  "posts": [
    {
      "id": 1,
      "comment": ""
    },
    {
      "id": 2,
      "comment": "\"1=1\""
    }
  ]
}

İstek, WAF'nin olası bir SQL ekleme saldırısı olarak algıladığı bir SQL açıklama karakter dizisi içerir.

İsteğin geçerli olduğunu belirlerseniz, eşleme değişkeni Request body JSON args name, işleci Equalsve seçicisi posts.commentile bir dışlama oluşturabilirsiniz.

Diğer istek özniteliklerini dışlama

WAF günlük girdiniz önceki tabloda olmayan bir matchVariableName değer gösteriyorsa, dışlama oluşturamazsınız. Örneğin, şu anda tanımlama bilgisi adları, üst bilgi adları, POST parametre adları veya sorgu parametresi adları için dışlama oluşturamazsınız.

Bunun yerine aşağıdaki eylemlerden birini gerçekleştirmeyi göz önünde bulundurun:

  • Hatalı pozitif sonuçları veren kuralları devre dışı bırakın.
  • Bu isteklere açıkça izin veren özel bir kural oluşturun. İstekler tüm WAF incelemelerini atlar.

Özellikle, değer CookieName, HeaderName, PostParamNameveya QueryParamNameolduğundamatchVariableName, kuralın değerini değil, alanın adını tetiklediği anlamına gelir. Kural dışlama şu anda bu matchVariableName değerler için destek sağlanmamıştır.

Sonraki adımlar