Co je Azure Web Application Firewall?

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 se zjistí, aktér hrozby by mohl tyto chyby zabezpečení využít ke spuštění útoků, jako jsou následující způsoby 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 virtuální sítě Azure pomocí služby Azure Web Application Firewall. Roboti a hrozby jsou blokovány z webové aplikace; legitimní žádosti jsou povolené.

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 Azure Web Application Firewall, představuje některé z jeho důležitých funkcí:

  • spravovaná pravidla: Pravidla, která služba 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í je před špatnými roboty. Na základě systému Microsoft pro zpravodajství o hrozbách jsou detekováni škodliví 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: Azure Web Application Firewall může fungovat v jednom ze dvou režimů: Detekční režim pouze protokoluje požadavky porušující pravidlo, zatímco Režim prevence požadavky porušující pravidlo nejen protokoluje, ale také blokuje.

  • Seznamy výjimek: Bránu firewall webových aplikací Azure můžete nakonfigurovat tak, aby při kontrole požadavků ignorovala určité 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žadavku: Bránu firewall webových aplikací Azure můžete nakonfigurovat tak, aby označila žádosti, které jsou buď 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, které jsou zamezeny pomocí 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
Meziwebové skriptování 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ý poskytuje skriptu přístup k datům relace uživatele, souborům cookie a dalším citlivým informacím.
Zahrnutí místního souboru Útočník zneužije chyby zabezpečení při zpracování příkazů include serveru, nejčastěji ve skriptech PHP. Předáním speciálně nakonfigurovaného textu do příkazu include skriptu 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 přiměl ke spuštění 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 protokoly Ú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 přiměje server ke spuštění příkazů souvisejících s operačním systémem serveru. Například v systému UNIX může mít útočník spuštěný server ls, aby získal výpis adresáře.
Zahrnutí vzdálených souborů Totéž jako zahrnutí místního souboru, kromě toho, že útočník odešle serveru speciálně nakonfigurovaný text, který předává soubor z jiného serveru – tj. soubor na vzdáleném serveru řízeném útočníkem – do příkazu include skriptu.
Oprava relace Útočník zneužije chybu zabezpečení webové aplikace, která mu 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 hesla
  • Tlačítko Přihlášení

Když autorizovaný uživatel vyplní formulář a vybere 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 userPassword. Skript by pak spustil následující příkaz:

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

Pokud je například uživatelské jméno support a heslo je 1234ABCD, má proměnná sql 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 pole Heslo zůstane 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čky (--) začátek komentáře. Všechno po -- se ignoruje, 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; vážné porušení!

síťový diagram znázorňující dva pokusy o přihlášení, se službou Azure Web Application Firewall povolující autorizované přihlášení a odepření neoprávněného přihlášení.

Předchozí příklad je příklad zneužití nazývaný SQL injekce. Ú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 sanitizuje tento vstup.

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. Bez ohledu na způsob sanitizace je výsledkem vstup, který nemůže poškodit webovou aplikaci ani její data na pozadí.