Detekce nových hrozeb pomocí služby Microsoft Sentinel se službou Azure Web Application Firewall

Webové aplikace čelí častým škodlivým útokům, které využívají dobře známé chyby zabezpečení, jako jsou injektáž kódu a útoky procházení cest. Tyto útoky jsou obtížné zabránit v kódu aplikace, protože vyžadují konstantní údržbu, opravy a monitorování na několika úrovních architektury aplikace. Řešení firewallu webových aplikací (WAF) může poskytovat rychlejší a centralizované zabezpečení tím, že opraví známé ohrožení zabezpečení pro všechny webové aplikace a ne každý z nich jednotlivě zabezpečí. Azure Web Application Firewall je nativní cloudová služba, která chrání webové aplikace před běžnými technikami hackingu webu. Můžete ho rychle nasadit, abyste získali úplný přehled o provozu webových aplikací a blokovali škodlivé webové útoky.

Integrací Azure WAF se službou Microsoft Sentinel (cloudové nativní řešení SIEM ) můžete automatizovat detekci a reakci na hrozby, incidenty a výstrahy a ušetřit čas a úsilí při aktualizaci zásad WAF. V tomto článku se dozvíte, jak vytvářet analytická pravidla a detekce v Microsoft Sentinelu pro útoky, jako je injektáž kódu.

Dotazy detekce pro útoky webových aplikací

Úložiště GitHub pro zabezpečení sítě Azure obsahuje následující předem připravené dotazy, které můžete použít k vytváření analytických pravidel v Microsoft Sentinelu. Tato analytická pravidla pomáhají s automatizovanou detekcí a reakcí na útoky, jako jsou injektáž kódu, procházení cest a útoky na základě skeneru.

  • Útoky prostřednictvím injektáže kódu (Application Gateway a Front Door WAF)

    Útok prostřednictvím injektáže kódu je typ kybernetického útoku, který zahrnuje vložení škodlivého kódu do aplikace. Aplikace pak interpretuje nebo spouští kód, který ovlivňuje výkon a funkci aplikace.

  • Útoky procházení cest (Application Gateway a Front Door WAF)

    Útok na procházení cest je typ kyberútoku, který zahrnuje manipulaci s cestami k souborům aplikace pro přístup k souborům a adresářům uloženým mimo webovou kořenovou složku. Útočník může pomocí speciálních znakových sekvencí, například …/ nebo …\, přesunout hierarchii adresářů a získat přístup k citlivým nebo důvěrným datům, jako jsou konfigurační soubory, zdrojový kód nebo systémové soubory.

  • Útoky založené na skeneru (WAF služby Application Gateway)

    Webový útok založený na skeneru je typ kybernetického útoku, který zahrnuje použití skeneru ohrožení zabezpečení webu k vyhledání a zneužití slabých míst zabezpečení ve webových aplikacích. Skener ohrožení zabezpečení webu je nástroj, který automaticky prohledává běžné chyby zabezpečení webových aplikací, jako je injektáž SQL, XSS, CSRF a procházení cest. Útočník může pomocí skeneru identifikovat ohrožené cíle a spustit útoky, aby je ohrožoval.

Nastavení analytických pravidel ve službě Sentinel pro útoky webových aplikací

K nastavení analytických pravidel se vyžadují následující požadavky:

  • Pracovní WAF a pracovní prostor služby Log Analytics, který je nakonfigurovaný tak, aby přijímal protokoly z příslušné brány Aplikace Azure nebo služby Azure Front Door. Další informace najdete v protokolech prostředků pro Azure Web Application Firewall.
  • Microsoft Sentinel by navíc měl být povolený pro pracovní prostor služby Log Analytics, který se tady používá. Další informace najdete v tématu Rychlý start: Onboarding Microsoft Sentinelu.

Pomocí následujících kroků nakonfigurujte analytické pravidlo ve službě Sentinel.

  1. Přejděte na Microsoft Sentinel a vyberte kartu Analýza . Vyberte Vytvořit a pak vyberte Pravidlo naplánovaného dotazu. Screenshot showing creating a scheduled query rule.

    Taktiky a techniky, které jsou zde k dispozici, jsou pouze informativní a pocházejí ze znalostní báze MITRE Attack Knowledgebase. Jedná se o znalostní báze nežádoucí taktiky a technik založených na pozorováních z reálného světa.

  2. K nastavení úrovně závažnosti pro tento incident můžete použít průvodce analytickým pravidlem. Vzhledem k tomu, že se jedná o závažné útoky, je vybrána vysoká závažnost.

    Screenshot showing the analytics rule wizard.

  3. Na stránce Nastavit logiku pravidla zadejte následující předem připravený dotaz injektáže kódu: Tento dotaz najdete v úložišti GitHub služby Azure Network Security. Podobně můžete použít jakýkoli jiný dotaz, který je k dispozici v úložišti, k vytvoření analytických pravidel a zjištění příslušných vzorů útoku.

     let Threshold = 3; 
    
     AzureDiagnostics
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Matched"
     | where Message has "Injection" or Message has "File Inclusion"
     | where ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or ruleGroup_s ==    "REQUEST-931-APPLICATION-ATTACK-RFI" or ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or    ruleGroup_s == "REQUEST-933-APPLICATION-ATTACK-PHP" or ruleGroup_s ==    "REQUEST-942-APPLICATION-ATTACK-SQLI" or ruleGroup_s == "REQUEST-921-PROTOCOL-ATTACK" or ruleGroup_s    == "REQUEST-941-APPLICATION-ATTACK-XSS"
     | project transactionId_g, hostname_s, requestUri_s, TimeGenerated, clientIp_s, Message,    details_message_s, details_data_s
     | join kind = inner(
    
     AzureDiagnostics
    
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Blocked") on transactionId_g
     | extend Uri = strcat(hostname_s,requestUri_s)
     | summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), TransactionID = make_set   (transactionId_g,100), Message = make_set(Message,100), Detail_Message = make_set(details_message_s,   100), Detail_Data = make_set(details_data_s,100), Total_TransactionId = dcount(transactionId_g) by    clientIp_s, Uri, action_s
     | where Total_TransactionId >= Threshold
    

    Screenshot showing the rule query.

    Poznámka:

    Před vytvořením tohoto analytického pravidla je důležité zajistit, aby protokoly WAF už byly v pracovním prostoru služby Log Analytics. Jinak Sentinel nerozpozná některé sloupce v dotazu a budete muset přidat další vstup, například | extend action_s = column_ifexists(“action_s”, “”), transactionId_g = column_ifexists(“transactionId_g”, “”) pro každý sloupec, který zobrazí chybu. Tento vstup vytvoří názvy sloupců ručně a přiřadí jim hodnoty null. Pokud chcete tento krok přeskočit, nejprve odešlete protokoly WAF do pracovního prostoru.

  4. Na stránce Incident Nastavení povolte vytváření incidentů z výstrah aktivovaných tímto analytickým pravidlem. Seskupení výstrah je možné nakonfigurovat podle potřeby.

  5. Volitelně můžete do incidentu v případě potřeby přidat libovolnou automatizovanou reakci. Podrobnější informace o konfiguraci automatizovaných odpovědí najdete v tématu Automatizované zjišťování a reakce pro Azure WAF s Microsoft Sentinelem .

  6. Nakonec na kartě Revize a vytvoření vyberte Uložit.

Toto analytické pravidlo umožňuje službě Sentinel vytvořit incident na základě protokolů WAF, které zaznamenávají všechny útoky prostřednictvím injektáže kódu. Azure WAF tyto útoky ve výchozím nastavení blokuje, ale vytvoření incidentu poskytuje další podporu analytikům zabezpečení, aby reagoval na budoucí hrozby.

Analytická pravidla ve službě Sentinel můžete nakonfigurovat pro různé útoky webových aplikací pomocí předem připravených dotazů detekce dostupných v úložišti Azure Network Security Na GitHubu. Tyto dotazy se přidají přímo do šablon detekce služby Sentinel. Po přidání budou tyto dotazy přímo dostupné v části Šablony analytických pravidel služby Sentinel.

Další kroky