Azure Web Uygulaması Güvenlik Duvarı nedir?

Tamamlandı

Burada Azure Web Uygulaması Güvenlik Duvarı hakkında temel bilgileri öğreneceksiniz. Bu genel bakış, Azure Web Uygulaması Güvenlik Duvarı'ın Contoso'nun genel ağ güvenliği stratejisine eklemek için kullanışlı bir araç olup olmadığını değerlendirmenize yardımcı olur.

Azure Web Uygulaması Güvenlik Duvarı genel bakış

Kötü amaçlı kullanıcıların web uygulamalarınızla uğraşmayacağını düşünebilirsiniz. Ancak testler, botların veya kötü amaçlı aktörlerin dağıtımdan sonra dakikalar içinde zayıflıklar için yeni web uygulamalarını araştırdığını göstermiş. Web'e bir uygulama eklerseniz tehdit aktörlerinin uygulamayı güvenlik açıkları için neredeyse hemen test edeceklerini varsayalım. Ayrıca bu tür yoklamaların uygulamanın ömrü boyunca devam edeceği varsayılabilir.

Web uygulamalarının kötü amaçlı testlerinin çoğu, bir veya daha fazla yaygın güvenlik açığının olup olmadığını denetler. Bir tehdit aktörü bulunursa bu güvenlik açıklarını kullanarak aşağıdaki açıklardan yararlanmaya benzer saldırılar çalıştırabilir:

  • SQL kodu ekleme
  • Siteler arası betik çalıştırma
  • Yerel ve uzak dosya ekleme
  • HTTP/HTTPS selleri
  • Kötü amaçlı bot saldırıları

Web uygulaması geliştirme döngüsündeki yaygın bir görev, en yaygın güvenlik açıklarını kapatmak için kod yazmayı içerir. Güvenlik kodunu yazmak için zaman, uzmanlık ve test gerekir.

Azure Web Uygulaması Güvenlik Duvarı, Azure tarafından barındırılan web uygulamalarının merkezi korumasını sağlayan bir Azure hizmetidir. Azure Web Uygulaması Güvenlik Duvarı, web uygulamalarını SQL ekleme ve siteler arası betik oluşturma gibi yaygın tehditlere karşı korur.

Diagram of an Azure virtual network with Azure Web Application Firewall. Bots and threats are blocked from a web app; legitimate requests are allowed.

Azure Web Uygulaması Güvenlik Duvarı'yi dakikalar içinde dağıtabilirsiniz. Web uygulamalarınız, tek bir güvenlik kodu satırı yazmadan bilinen tehditlere karşı hemen güçlü koruma elde eder.

Azure Web Uygulaması Güvenlik Duvarı'ın temel özellikleri

Azure Web Uygulaması Güvenlik Duvarı değerlendirmenize yardımcı olmak için önemli özelliklerinden bazıları şunlardır:

  • Yönetilen kurallar: Azure Web Uygulaması Güvenlik Duvarı'ın yaygın açıklardan yararlanmaları algılamak ve önlemek için kullandığı kurallar Microsoft'un güvenlik ekibi tarafından oluşturulur, korunur ve güncelleştirilir. Bir kural değişirse veya bir kural kümesi (aşağıdaki açıklamaya bakın) değiştirilirse, Microsoft Azure Web Uygulaması Güvenlik Duvarı otomatik ve sorunsuz bir şekilde güncelleştirir.

    Dekont

    Azure Web Uygulaması Güvenlik Duvarı tarafından sunulan yönetilen kuralları değiştiremez veya silemezsiniz. Ancak, belirli bir kural ortamınız için sorunluysa (örneğin, web uygulamanıza yönelik yasal trafiği engeller), dışlamalar oluşturabilir veya kuralı veya kural kümesini devre dışı bırakabilirsiniz. Varsayılan davranışın üzerine yazmak için özel kurallar da oluşturabilirsiniz.

  • Bot kuralları: Bot kuralları iyi botları belirler ve kötü botlardan korur. Hatalı botlar Microsoft Tehdit Bilgileri'ne göre algılandı.

  • Özel kurallar: Azure Web Uygulaması Güvenlik Duvarı tarafından sunulan yönetilen kurallar web uygulamanız için belirli bir tehdidi kapsamazsa özel bir kural oluşturabilirsiniz.

  • Modlar: Azure Web Uygulaması Güvenlik Duvarı iki moddan birinde çalışabilir: algılama modu yalnızca kuralı ihlal eden istekleri günlüğe kaydederken önleme modu bir kuralı ihlal eden istekleri hem günlüğe kaydeder hem de engeller.

  • Dışlama listeleri: Azure Web Uygulaması Güvenlik Duvarı istekleri denetlerken belirli öznitelikleri yoksayacak şekilde yapılandırabilirsiniz.

  • İlkeler: Yönetilen kurallar, özel kurallar, dışlamalar ve diğer Azure Web Uygulaması Güvenlik Duvarı ayarları kümesini Azure Web Uygulaması Güvenlik Duvarı ilkesi olarak adlandırılan tek bir öğede birleştirebilirsiniz. Daha sonra, kolay yönetim ve bakım için bu ilkeyi birden çok web uygulamasına uygulayabilirsiniz.

  • İstek boyutu sınırları: Azure Web Uygulaması Güvenlik Duvarı'ı çok küçük veya çok büyük isteklere bayrak eklemek için yapılandırabilirsiniz.

  • Uyarılar: Azure Web Uygulaması Güvenlik Duvarı, Azure İzleyici ile tümleşir. Bu tümleştirme, WAF bir tehdit algıladığında size neredeyse gerçek zamanlı uyarılar verir.

Azure Web Uygulaması Güvenlik Duvarı tarafından engellenen yaygın saldırılar

Aşağıdaki tabloda, Azure Web Uygulaması Güvenlik Duvarı'ın korunmaya yardımcı olduğu en yaygın kötü amaçlı tehdit türleri açıklanmaktadır.

Tehdit Açıklama
Siteler arası betik çalıştırma Tehdit aktörü, başka bir kullanıcının web tarayıcısına kötü amaçlı kod göndermek için bir web uygulaması kullanır. Tarayıcı, betiğin kullanıcının oturum verilerine, tanımlama bilgilerine ve diğer hassas bilgilere erişmesini sağlayan kodu çalıştırır.
Yerel dosya ekleme Saldırgan, çoğu zaman PHP betiklerinde olmak üzere bir sunucunun include deyimleri işlemesindeki güvenlik açıklarından yararlanıyor. Saldırgan, özel olarak yapılandırılmış bir metni bir betiğin include deyimine geçirerek sunucuda yerel olarak bulunan dosyaları içerebilir. Saldırgan daha sonra hassas bilgilere erişebilir ve sunucu komutlarını çalıştırabilir.
PHP ekleme Saldırgan, sunucuyu PHP komutlarını çalıştırması için kandırmak için özel olarak yapılandırılmış metin ekler. Bu komutlar saldırganın yerel veya uzak PHP kodu çalıştırmasına olanak sağlar. Saldırgan daha sonra hassas verilere erişebilir ve sunucuda komutlar çalıştırabilir.
Protokol saldırıları Saldırgan, http/HTTPS isteği üst bilgisine özel olarak yapılandırılmış metin ekler. Üst bilgisine eklenen belirli metne bağlı olarak, saldırgan sunucuyu hassas verileri görüntülemeye veya kod çalıştırmaya aldatabilir.
Uzaktan komut yürütme Saldırgan, bir sunucuyu sunucunun işletim sistemiyle ilişkili komutları çalıştırma konusunda kandırıyor. Örneğin bir UNIX sisteminde, saldırgan bir dizin listesi almak için sunucuyu çalıştırmış ls olabilir.
Uzak dosya ekleme Yerel dosya ekleme ile aynıdır, ancak saldırgan, sunucuya özel olarak yapılandırılmış ve uzak bir dosya (yani saldırgan tarafından denetlenen uzak sunucudaki bir dosya) geçen metni betiğin include deyimine gönderir.
Oturum sabitleme Saldırgan, geçerli bir oturum kimliği edinmesini sağlayan bir web uygulaması güvenlik açığından yararlanıyor. Saldırgan, kullanıcıyı bu kimlikle yeni bir oturumun kimliğini doğrulayarak kandırır. Saldırgan daha sonra bu kullanıcı tarafından doğrulanmış oturumu ele geçirmektedir.
SQL kodu ekleme Bir web formu alanına, saldırgan sunucuyu SQL komutlarını çalıştırması için kandırmak için özel olarak yapılandırılmış metin ekler (veya "ekler"). Bu komutlar saldırganın hassas verilere erişmesine, verileri eklemesine, güncelleştirmesine veya silmesine ya da SQL işlemlerini çalıştırmasına olanak sağlar.

Önceki tabloda listelenen tüm açıklardan yararlanma işlemleri yalnızca sunucu aldığı girişe güvendiğinde mümkündür. Yalnızca bu açıklardan yararlanan ve temizleyen kod yazmak zor ve zaman alıcı olabilir. Bir web uygulamasının karşılaşabileceği olası açıklardan yalnızca küçük bir bölümü önceki tabloda gösterilir. Azure Web Uygulaması Güvenlik Duvarı, bu saldırıları ve daha fazlasını önlemek için tasarlanmıştır.

Girişi temizleme

Modern web uygulamalarının karşılaştığı tehditler çeşitli ve karmaşıktır. Ancak çoğu durumda, açıklardan yararlanmanın mümkün olmasının nedeni web uygulamasının aldığı girişe örtük olarak güvenmesidir.

Örneğin, yetkili bir web uygulaması kullanıcısının kullanıcının hesabında oturum açmasına izin veren bir web formu düşünün. Form yalnızca üç öğeden oluşur:

  • Kullanıcı adı metin kutusu
  • Parola metin kutusu
  • Oturum Aç düğmesi

Yetkili bir kullanıcı formu doldurup Oturum Aç'ı seçtiğinde, web uygulaması betiği kullanıcı adını ve parolayı değişkenlerde depolar. Bu değişkenlerin sırasıyla ve userPasswordolduğunu userName varsayalım. Betik daha sonra aşağıdaki deyimi yürütür:

sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"

Örneğin, kullanıcı adı support ve parola ise 1234ABCDsql değişkeni aşağıdaki değere sahiptir:

SELECT * FROM users WHERE username='support' AND password='1234ABCD'

Web uygulaması bu SQL deyimini yürütür. Sorgudan bir kayıt döndürülürse, web uygulaması kullanıcıyı oturum açar.

Şimdi bir saldırganın Kullanıcı Adı alanına girdiğini admin'--ve Parola alanını boş bıraktığını varsayalım. Bu durumda, sonuçta elde edilen SQL deyimi aşağıdadır:

SELECT * FROM users WHERE username='admin'--' AND password=''

Birçok SQL sisteminde, çift tire (--) bir açıklamanın başlangıcını işaretler. Sonrasındaki -- her şey yoksayılır, bu nedenle önceki deyim aşağıdaki kodla eşdeğerdir:

SELECT * FROM users WHERE username='admin'

adlı adminbir kullanıcı olduğunu varsayarsak, bu komut saldırganda yönetici kullanıcı olarak oturum açar; ciddi bir ihlal!

Network diagram depicting two sign-in attempts, with Azure Web Application Firewall allowing the authorized sign-in and denying the unauthorized sign-in.

Yukarıdaki örnek, SQL ekleme adlı bir açıklardan yararlanma örneğidir. Saldırganlar, tüm girişlere güvenen web uygulamalarında SQL ekleme ve diğer açıklardan yararlanabilir.

Azure Web Uygulaması Güvenlik Duvarı, bir web uygulaması ile kullanıcı girişi arasında güvenilmezlik engeli oluşturur. Azure Web Uygulaması Güvenlik Duvarı tüm girişlerin kötü amaçlı olduğunu varsayar ve bu nedenle bu girişi temizler.

Girişi temizleme, bağlama bağlı olarak farklı şeyler anlamına gelir. Örneğin, girişin temizlenmesi, SQL açıklama göstergeleri gibi açıkça tehlikeli metin öğelerinin kaldırılması anlamına gelebilir. Temizleme işlemi gerçekleşir ancak sonuç olarak web uygulamasına veya arka uç verilerine zarar verebilen giriş elde edilir.