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ın
Equals
. - Ş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şleciniEquals 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 DecodedInitialBodyContents
değerine InitialBodyContents
sahip matchVariableName
günlük girdilerini görebilirsiniz.
Örneğin, adlı FOO
POST 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:FOO
gö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 Equals
ve seçicisi posts.comment
ile 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
, PostParamName
veya QueryParamName
olduğ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
- Azure Front Door WAF'nizde dışlama listelerini yapılandırın.
- WAF ayarlarınızı yapılandırdıktan sonra WAF günlüklerinizi görüntülemeyi öğrenin. Daha fazla bilgi için bkz . Azure Front Door tanılaması.