Co je Firewall webových aplikací Azure?

Dokončeno

Tady se seznámíte se základy služby Azure Web Application Firewall. Tento přehled vám pomůže vyhodnotit, jestli je Firewall webových aplikací Azure užitečným nástrojem pro přidání do celkové strategie zabezpečení sítě společnosti Contoso.

Přehled služby Azure Web Application Firewall

Můžete si myslet, že uživatelé se zlými úmysly nebudou obtěžovat vaše webové aplikace. Testy ale ukázaly, že roboti nebo aktéři se zlými úmysly testují nové webové aplikace v řádu minut od nasazení. Pokud umístíte aplikaci na web, předpokládejme, že aktéři hrozeb aplikaci otestují téměř okamžitě. Můžete také předpokládat, že tyto sondy budou pokračovat po celou dobu životnosti aplikace.

Většina škodlivých testů webových aplikací kontroluje přítomnost jedné nebo více běžných chyb zabezpečení. Pokud zjistíte, objekt actor hrozby může tyto chyby zabezpečení použít ke spuštění útoků, jako jsou následující zneužití:

  • Injektáž SQL
  • Skriptování mezi weby
  • Zahrnutí místních a vzdálených souborů
  • Záplavy HTTP/HTTPS
  • Útoky škodlivých robotů

Běžným úkolem vývojového cyklu webové aplikace je psaní kódu za účelem uzavření nejběžnějších bezpečnostních otvorů. Psaní bezpečnostního kódu vyžaduje čas, odborné znalosti a testování.

Azure Web Application Firewall je služba Azure, která poskytuje centralizovanou ochranu webových aplikací hostovaných v Azure. Azure Web Application Firewall chrání webové aplikace před běžnými hrozbami, jako je injektáž SQL a skriptování mezi weby.

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

Firewall webových aplikací Azure můžete nasadit během několika minut. Vaše webové aplikace okamžitě získají účinnou ochranu před známými hrozbami, a to vše bez psaní jediného řádku bezpečnostního kódu.

Klíčové funkce služby Azure Web Application Firewall

Abychom vám pomohli vyhodnotit Bránu firewall webových aplikací Azure, tady jsou některé z jeho důležitých funkcí:

  • Spravovaná pravidla: Pravidla, která Azure Web Application Firewall používá k detekci a prevenci běžných zneužití, se vytvářejí, spravují a aktualizují bezpečnostní tým Microsoftu. Pokud se pravidlo změní nebo se změní sada pravidel (viz následující popis), Microsoft automaticky a bezproblémově aktualizuje firewall webových aplikací Azure.

    Poznámka:

    Spravovaná pravidla nabízená službou Azure Web Application Firewall nemůžete upravovat ani odstraňovat. Pokud je ale určité pravidlo pro vaše prostředí problematické (například blokuje legitimní provoz do vaší webové aplikace), můžete vytvořit vyloučení nebo zakázat pravidlo nebo sadu pravidel. Můžete také vytvořit vlastní pravidla pro přepsání výchozího chování.

  • Pravidla robota: Pravidla robota identifikují vhodné roboty a chrání před špatnými roboty. Na základě analýzy hrozeb Microsoftu se detekují chybní roboti.

  • Vlastní pravidla: Pokud spravovaná pravidla nabízená službou Azure Web Application Firewall nepokrývají konkrétní hrozbu pro vaši webovou aplikaci, můžete vytvořit vlastní pravidlo.

  • Režimy: Firewall webových aplikací Azure může fungovat v jednom ze dvou režimů: režim detekce protokoluje pouze požadavky, které porušují pravidlo, zatímco režim prevence blokuje požadavky, které porušují pravidlo.

  • Seznamy vyloučení: Bránu firewall webových aplikací Azure můžete nakonfigurovat tak, aby při kontrole požadavků ignorovala konkrétní atributy.

  • Zásady: Sadu spravovaných pravidel, vlastních pravidel, vyloučení a dalších nastavení firewallu webových aplikací Azure můžete kombinovat do jednoho prvku označovaného jako zásady firewallu webových aplikací Azure. Tuto zásadu pak můžete použít pro více webových aplikací pro snadnou správu a údržbu.

  • Omezení velikosti požadavků: Bránu firewall webových aplikací Azure můžete nakonfigurovat tak, aby označila požadavky, které jsou příliš malé nebo příliš velké.

  • Upozornění: Azure Web Application Firewall se integruje se službou Azure Monitor. Tato integrace poskytuje výstrahy téměř v reálném čase, když WAF detekuje hrozbu.

Běžné útoky brání službě Azure Web Application Firewall

Následující tabulka popisuje nejběžnější typy škodlivých hrozeb, proti kterým pomáhá Azure Web Application Firewall chránit.

Hrozba Popis
Skriptování mezi weby Aktér hrozeb používá webovou aplikaci k odeslání škodlivého kódu do webového prohlížeče jiného uživatele. Prohlížeč spustí kód, který skript získá přístup k datům relace uživatele, souborům cookie a dalším citlivým informacím.
Zahrnutí místních souborů Útočník zneužije chyby zabezpečení při zpracování include příkazů serveru, nejčastěji ve skriptech PHP. Předáním speciálně nakonfigurovaného textu do příkazu skriptu include může útočník obsahovat soubory, které jsou místně přítomné na serveru. Útočník pak může mít přístup k citlivým informacím a spouštět příkazy serveru.
Injektáž PHP Útočník vloží text speciálně nakonfigurovaný tak, aby server oklamat spuštěním příkazů PHP. Tyto příkazy umožňují útočníkovi spustit místní nebo vzdálený kód PHP. Útočník pak může mít přístup k citlivým datům a spouštět příkazy na serveru.
Útoky na protokol Útočník vloží speciálně nakonfigurovaný text do hlavičky požadavku HTTP/HTTPS. V závislosti na konkrétním textu vloženém do hlavičky může útočník oklamat server tak, aby zobrazoval citlivá data nebo spustil kód.
Vzdálené spuštění příkazu Útočník chytá server do spouštění příkazů přidružených k operačnímu systému serveru. V systému systém UNIX může být například spuštěný serverls, aby získal výpis adresáře.
Zahrnutí vzdálených souborů Totéž jako zahrnutí místního souboru s výjimkou toho, že útočník odešle server speciálně nakonfigurovaný text, který předává vzdálený soubor – tj. soubor na vzdáleném serveru řízeném útočníkem – do příkazu skriptu include .
Fixace relace Útočník zneužije chybu zabezpečení webové aplikace, která útočníkovi umožňuje získat platné ID relace. Útočník oklame uživatele do ověřování nové relace s tímto ID. Útočník pak tuto uživatelsky ověřenou relaci unesl.
Injektáž SQL Do pole webového formuláře útočník vloží (nebo vloží) text speciálně nakonfigurovaný tak, aby server oklamat spuštěním příkazů SQL. Tyto příkazy umožňují útočníkovi přistupovat k citlivým datům, vkládat, aktualizovat nebo odstraňovat data nebo spouštět operace SQL.

Všechna zneužití uvedená v předchozí tabulce jsou možná pouze v případech, kdy server důvěřuje vstupu, který obdrží. Psaní kódu, který kontroluje a sanitizuje pouze tyto zneužití, by bylo obtížné a časově náročné. V předchozí tabulce je reprezentována pouze malá část možných zneužití webové aplikace. Služba Azure Web Application Firewall je navržená tak, aby zabránila těmto útokům a mnoha dalším akcím.

Sanitizace vstupu

Hrozby, kterým čelí moderní webové aplikace, jsou různé a sofistikované. Ve většině případů je však možné, že webová aplikace implicitně důvěřuje vstupu, který přijímá.

Představte si například webový formulář, který umožňuje autorizovanému uživateli webové aplikace přihlásit se k účtu uživatele. Formulář se skládá pouze ze tří prvků:

  • Textové pole Uživatelské jméno
  • Textové pole Heslo
  • Tlačítko Přihlásit se

Když autorizovaný uživatel vyplní formulář a vybere možnost Přihlásit se, skript webové aplikace uloží uživatelské jméno a heslo do proměnných. Předpokládejme, že tyto proměnné jsou pojmenované userName a userPasswordv uvedeném pořadí. Skript by pak spustil následující příkaz:

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

Pokud je support například uživatelské jméno a heslo 1234ABCDje , sql má proměnná následující hodnotu:

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

Webová aplikace spustí tento příkaz SQL. Pokud se záznam vrátí z dotazu, webová aplikace uživatele přihlásí.

Teď předpokládejme, že útočník zadá admin'-- do pole Uživatelské jméno a nechá pole Heslo prázdné. V tomto případě je to výsledný příkaz SQL:

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

V mnoha systémech SQL označí dvojitá pomlčka (--) začátek komentáře. Všechno po -- ignorování, takže předchozí příkaz je ekvivalentní následujícímu kódu:

SELECT * FROM users WHERE username='admin'

Za předpokladu, že existuje uživatel s názvem admin, tento příkaz přihlásí útočníka jako uživatele správce, což je vážné porušení zabezpečení.

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

Předchozí příklad je instance zneužití nazývaného injektáž SQL. Útočníci můžou využít injektáž SQL a další zneužití ve webových aplikacích, které důvěřují všem vstupům.

Azure Web Application Firewall vytváří překážku nedůvěryhodné mezi webovou aplikací a jejím uživatelským vstupem. Firewall webových aplikací Azure předpokládá, že veškerý vstup je potenciálně škodlivý, takže tento vstup sanitizuje .

Sanitizace vstupu znamená různé věci v závislosti na kontextu. Například sanitizace vstupu může znamenat odebrání jasně nebezpečných textových prvků, jako jsou indikátory komentáře SQL. K sanitizaci však dochází, výsledkem je vstup, který nemůže poškodit webovou aplikaci nebo její back-endová data.