Lukáš Beran
Lukáš Beran

Vítejte na mém blogu! Pokud hledáte návody, tipy a triky ze světa IT, jste tu správně. Najdete zde primárně články k produktům a službám Microsoftu, jako například operační systémy, servery, virtualizace, sítě, správa, ale také cloud. Občas přidám i nějaké další zajímavé články.

Březen 2021
PoÚtStČtSoNe
1234567
891011121314
15161718192021
22232425262728
293031 

Rubriky


Monitoring citlivých Azure AD účtů pomocí Azure Sentinel

Lukáš BeranLukáš Beran

Azure Sentinel je cloudový SIEM a SOAR. Slouží tedy pro dohled nad zákaznickým prostředím, ze kterého sbírá logy, které následně vyhodnocuje.

Různé typy identit mají obecně různou citlivost v souvislosti s rizikem zneužití. Ty nejcitlivější identity, jako jsou administrátorské účty nebo přímo emergency (break-glass) účty, by měly mít extra zabezpečení a optimálně i monitoring. Monitoring by v tomto případě sloužil k tomu, aby bezpečnostní tým v organizaci byl informován o podezřelých aktivitách na těchto vysoce citlivých účtech.

V tomto článku se podíváme na to, jak monitorovat uživatelské účty a service principals v Azure AD pomocí Azure Sentinel. Aby monitoring fungoval, je potřeba mít nasazený Azure Sentinel a aktivní datový konektor pro Azure AD. Pro monitoring zde budeme využívat specificky párování účtu k nějaké veřejné IP adrese, která bude pro použití tohoto účtu povolena. A pokud by byl detekován přístup na daný účet z jiné IP adresy, pak Sentinel vytvoří automaticky incident.

Monitoring uživatelských účtů pomocí Azure Sentinel

Monitoring uživatelských účtů v Azure AD pomocí Sentinel se skládá ze dvou částí. První částí je definice, které účty jsou citlivé a jaké jsou pro tyto účty povolené veřejné IP adresy. Druhou částí je vytvoření samotného analytického pravidla, které se bude starat o detekci a reporting.

Definici citlivých účtů bychom mohli dělat samozřejmě přímo v daném analytickém pravidle, ale to není optimální, protože při nějaké úpravě účtů nebo IP adres bychom museli editovat celé analytické pravidlo. Proto je vhodné použít nějakou „externí databázi“, v tomto případě nejlépe tzv. Watchlist.

Watchlist je seznam, který se přesně k takovým účelům používá, jelikož obsahuje záznamy typu jméno-hodnota. Je to navíc externí seznam udržovaný přímo v Sentinel workspace a cachovaný pro optimální rychlost.

Tvorba watchlistu s definicí uživatelů a IP adres

Watchlist se definuje pomocí csv souboru. Vytvoříme si tedy csv soubor, který bude obsahovat dva sloupce – User a IPAddress. Sloupec User pak bude obsahovat záznamy jednotlivých citlivých účtů definovaných ve formě Object ID v Azure AD (UserId). Každý záznam uživatele bude mít přiřazenou povolenou IP adresu nebo adresní rozsah (v CIDR formátu) ve sloupci IPAddress. Soubor bude mít tedy například takovou podobu

Tento soubor nahrajeme do Watchlists v Azure Sentinel a nastavíme mu alias jako SensitiveUsersIPs. Pomocí tohoto aliasu se následně budeme na daný watchlist odkazovat v analytickém pravidle.

Tvorba detekčního analytického pravidla

Analytické pravidlo se bude starat o samotnou detekci. Bude tedy spouštět KQL dotaz, který bude procházet záznamy z logu Azure AD a hledat, jestli některý z citlivých uživatelů nepoužívá jinou IP adresu, než která je definovaná ve watchlistu.

Samotný KQL dotaz bude vypadat následovně

Nyní můžeme vytvořit samotné analytické pravidlo. Nezapomeňte vytvořit entity mapping, aby se UserId mapovalo správně na uživatele a IP adresa správně na IP adresu kvůli dalším analýzám a entity enrichmentu.

Celé analytické pravidlo pak bude ve formátu YAML mít tuto specifikaci.

Analytické pravidlo ve formátu YAML můžete najít i na mém GitHub.

Monitoring service principals pomocí Azure Sentinel

Monitoring service principals je v principu naprosto stejný jako monitoring uživatelských účtů a skládá se opět ze dvou částí. První částí je definice, které service principals jsou citlivé a jaké mají povolené veřejné IP adresy. Druhou částí je vytvoření samotného analytického pravidla, které se bude starat o detekci a reporting.

Tvorba watchlistu s definicí service principals a IP adres

Watchlist se definuje pomocí csv souboru. Vytvoříme si tedy csv soubor, který bude obsahovat dva sloupce – ServicePrincipalId a IPAddress. Sloupec ServicePrincipalId pak bude obsahovat záznamy jednotlivých service principals definovaných ve formě Object ID v Azure AD (ServicePrincipalId). Každý záznam bude mít přiřazenou povolenou IP adresu nebo adresní rozsah (v CIDR formátu) ve sloupci IPAddress. Soubor bude mít tedy například takovou podobu

Tento soubor nahrajeme do Watchlists v Azure Sentinel a nastavíme mu alias jako SensitiveServicePrincipalsIPs.

Tvorba detekčního analytického pravidla

Analytické pravidlo se bude starat o samotnou detekci. Bude tedy spouštět KQL dotaz, který bude procházet záznamy z logu Azure AD a hledat, jestli některý ze service principals nepoužívá jinou IP adresu, než která je definovaná ve watchlistu.

Samotný KQL dotaz bude vypadat následovně

Nyní můžeme vytvořit samotné analytické pravidlo. Nezapomeňte vytvořit entity mapping, aby se IP adresa správně přiřadila na IP adresu kvůli dalším analýzám a entity enrichmentu.

Celé analytické pravidlo pak bude ve formátu YAML mít tuto specifikaci.

Analytické pravidlo ve formátu YAML můžete najít i na mém GitHub.

Mým primárním zaměřením je bezpečnost identit, zařízení a dat v cloudu pomocí služeb, technologií a nástrojů společnosti Microsoft.

Komentáře 0
Nejsou zde žádné komentáře.