About Zoltan Istvanffy

Microsoft Cloud Solution Architect

Azure Information Protection (Microsoft Purview) scanner licenszelési kérdés

Mikor ügyfelekkel beszélgetek információvédelem, Azure Information Protection (új nevén Microsoft Purview) témakörről, szinte mindig előjön a földi fileshare-ek kérdése: lehet-e az onprem rendszereken tárolt adatokat kategorizálni és esetleg automatikusan labellel ellátni?

A jó hír, hogy lehet. A rosszabbik, hogy minden felhasználónak E5-ös licensz kell hozzá (ez igy nem teljesen igaz, nemsoká kifejtem), ez sokszor az ügyfelek kedvét szegi, tehát érdemes tisztázni ennek a technikai és licenszelési hátterét.

Tehát, mi kell hozzá hogy egy földi fileshare-en tárolt dokumentumokat automatikusan kategorizálni és labelezni lehessen?

  • Microsoft Purview scanner bekonfigurálva
  • Megfelelő licensz

Amikor a scanner labelez egy dokumentumot, a file tulajdonosának rendelkeznie kell Azure Information Protection P2 licensszel. Ha valaki a fileshareben létrehoz egy új dokumentumot, amire alkalmazódik a label, akkor is kell az AIP P2 licensz. Mivel gyakorlatilag mindenki hozhat létre dokumentumokat, amiket ilyen vagy olyan okokból automatikusal labelezni kell, nagyjából mondhatjuk hogy szinte az összes felhasználót licenszelni kell AIP P2-re.

Ezt persze lehet szofisztikálni, előzetes felméréssel, hány owner lehet a meglévő fileokon illetve hogy kik használják a fileshare-t és rájuk szűkíteni a licenszelést.

Licenszelési oldalról sokszor elhangzik a fent emlitett “E5 kell hozzá”. Szerencsére nem feltétlenül. Az automatikus labelezéshez szükséges AIP P2-t az alábbi módokon is beszerezhetjük:

  • Azure Information Protection P2 mint standalone előfiezetés, kb 5 euró/hó/fő
  • M365 E5 Information Protection & Governance addonként (meglévő E3-as liceszek mellé vehető) kb. 7 euró/hó/fő
  • Enterprise Mobility + Security E5 előfizetés, kb 15 euró/hó/fő
  • illetve a “nagy” M365 E5 csomagban is megtalálható

A fenti számok csak tájákoztató jellegűek, illetve a többi licensztípussal más szolgáltatásokat is használhatunk.

Network Policy Server – Event viewer log üres

Egy kis on-premise topic.

A Microsoft Network Policy Server elég jól logol alapesetben az Event Viewerben:

Előfordult azonban, hogy bár a kliensek használták az NPS-t, logok nem kerültek be az eventviewerben. Első körben ellenőriztem az NPS propertiesben, hogy be van-e kapcsolva a logolás:

Végül admin paranccsorból kierőltetve, megjelentek a logok:

auditpol /set /subcategory:”Network Policy Server” /success:enable /failure:enable

A logolás állapotát le tudjuk kérdezni:

auditpol /get /subcategory:”Network Policy Server”

Tanúsítvány visszavonás, egyszerűen

Egyre több helyen alkalmazzák, hogy a Wifi/VPN hitelesítés nem név/jelszó párossal (esetleg valamilyen MFA megoldással kombinálva) történik, hanem felhasználói tanúsítványokkal. Nagyon üdvözlendő! 🙂

Sok esetben viszont a “lifecycle” kezelése nincs átgondolva és megoldva. Azaz: a tanúsítványkiadás megy GPO-ból/Intune-ból, mint a karikacsapás, de hogyan kezeljük a visszavonást? Security szempontból mindenképpen érdemes a távozó dolgozó kiállított tanúsítványait visszavonni, nem csak az Active Directory accountját letiltani stb.

Az alábbi példában bemutatom, hogyan lehet a Certificate Authority felületéről és Powershellből célzottan tanúsítványt visszavonni. Fontos hangsúlyozni, hogy ez egy user decomission process része kell legyen!

Tanúsítvány visszavonása CA konzolból:

Jelentkezzünk be a CA szerverre és indítsuk el a Certificate Authority konzolt. Az Issued Certificate résznél találjuk az összes kiállított tanúsítványt (akár több ezer is lehet)

Az egyes felhasználó számára kiállított tanúsítványokat a View/Filter opcióval tudjuk leszűrni.

Állítsuk össze a szűrési feltételt:

Field: Issued Common Name

Operation: =

Value: a kívánt felhasználó AD-ben szereplő neve (pl. Kovács László)

Megkapjuk az összes, számára kiállított tanúsítványt:

Ezután a tanúsítványon jobb klikkel kiválaszthatjuk a Revoke Certificate opciót:

Megadhatjuk a Reason Code-ot:

Az egyes kódok jelentése:

  • KeyCompromise. The private key that is associated with the certificate is compromised and is in the possession of an unauthorized individual—for example, if a portable computer is stolen or a smart card is lost.
  • ■ CACompromise. The smart card or disk on which the CA’s private key is stored is compromised and is in the possession of an unauthorized individual. When a certificate manager revokes a CA’s certificate, all certificates issued by that CA are considered revoked.
  • ■ AffiliationChanged. An individual is terminated or has resigned from an organization. It is not necessary to revoke a certificate when an individual changes departments unless your security policy requires that each departmental CA should issue certificates to the individuals in that department.
  • ■ Superseded. A new certificate must be issued if a smart card fails or the legal name of a user has changed. The new certificate supersedes the previous certificate, which must be revoked.
  • ■ CessationOfOperation. If your organization decommissions a CA, use this revocation code to revoke the CA’s certificate. Do not revoke the certificate if the CA publishes CRLs for the currently issued certificates but does not issue new certificates.
  • ■ CertificateHold. A temporary revocation that indicates that a CA will not vouch for a certificate at a specific time. After a certificate is revoked by using CertificateHold, you can later unrevoke the certificate.

Tanúsítvány visszavonása Powershell segítségével

Ha egy felhasználónak több kiállított tanúsítványa van, a fenti konzolos megoldás fárasztó lehet. Itt tudjuk segítségül hívni a Powershellt.

Elérhető egy powershell csomag, amivel különböző PKI feladatokat tudunk elvégezni (https://www.powershellgallery.com/packages/PSPKI/3.7.2)

A telepítése egyszerű, a CA szerverre telepítsük fel admin powershellből:

Install-Module -Name PSPKI

Importáljuk be:

Import-Module PSPKI

Futtassuk le a lekérdezést, hogy pl. Kovács Lászlónak milyen kiadott tanúsítványai vannak:

Get-CertificationAuthority | Get-Issuedrequest -Filter “CommonName -eq Kovács László”

Ehhez már könnyen hozzá tudjuk fűzni a parancsot hogy vonja vissza a tanúsítványokat, “Certificate Hold” indoklással:

Get-CertificationAuthority | Get-Issuedrequest -Filter “CommonName -eq Kovács László” | Revoke-Certificate -Reason “CerfificateHold”

CRL publikálása

A tanúsítványok visszavonása után ne felejtsünk el új CRL-t publikálni:

(Megjegyzés: sok visszavont tanúsítvány esetén a CRL mérete túl nagy lehet, ami egyes szolgáltatásoknál gondot okoz (pl. időtúllépés a CRL letöltése során). Ezért érdemes figyelni rá, hogy időnként a már nem szükséges visszavont elemeket töröljük a Certificate Authority adatbázisából)

Always-on VPN IPSec policy Intune-ból

Aki már konfigurált AOVPN-t, az tudja, hogy illik az IPsec beállításokat az alapértelmezettnél erősebbé tenni.

Az alapértelmezett IPSec értékek a következők:

  • Encryption: 3DES
  • Authentication/Integrity: SHA-1
  • Key Size: DH Group 2 (1024 bit)

A javasolt beállítások:

  • Encryption: AES128
  • Authentication/Integrity: SHA-256
  • Key Size: DH Group 14 (2048 bit)

A VPN szerver oldalon ezt powershell paranccsal tudjuk módosítani:

Set-VpnServerConfiguration -CustomPolicy -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES128 -DHGroup Group14 -EncryptionMethod AES128 -IntegrityCheckMethod SHA256 -PFSgroup PFS2048 -SALifeTimeSeconds 28800 -MMSALifeTimeSeconds 86400 -SADataSizeForRenegotiationKilobytes 1024000

Utána szükséges a Remote Access service-t újraindítani:

Restart-Service RemoteAccess -PassThru

Ezzel a szerveroldali beállítások elkészültek. Szükséges viszont hogy a kliens oldalon is megegyezzenek az IPSec konfigurációk, itt is segítségül hívhatjuk a powershellt:

$connection = “[connection name]”
Set-VpnConnectionIPsecConfiguration -ConnectionName $connection -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES128 -DHGroup Group14 -EncryptionMethod AES128 -IntegrityCheckMethod SHA256 -PFSgroup PFS2048 -Force

Hogy néz ki mindez, ha Intune-ból akarjuk kiküldeni az IPSec policyt? Nos, elsőre nem feltétlenül egyértelmű, hogy a fenti parancsban definiált értékek hol vannak az Intune policyban:

Hogy ne kelljen sokat keresgélni, tesztelgetni, itt egy működő beállítás:

IKE Security Association Parameters

  • Encryption algorithm: AES-128
  • Integrity check algorithm: SHA2-256
  • Diffie-Hellman group: 14

Child Security Association Parameters

  • Cipher transform algorithm: CBC-AES-128
  • Authentication transform alorithm: HMAC-SHA256-128
  • Perfect forward secrecy (PFS) group: Use parent Diffie-Hellman group

Elavult böngészők szűrése

Az IT-securityben nagy hangsúlyt fektetünk rá, hogy az operációs rendszerek/alkalmazások naprakészek legyenek. Ugyanez vonatkozik a böngészőkre is, elemi érdek, hogy mindig a biztonsági frissítésekkel ellátott verziót használjuk, a céges erőforrások eléréséhez (OWA, Sharepoint Online stb).

Lásd CIS Control 9.1 “Ensure only fully supported browsers and email clients are allowed to execute in the enterprise, only using the latest version of browsers and email clients provided through the vendor.”

Eddig az elmélet, de a gyakorlatban hogyan tudjuk kikényszeríteni, hogy valóban csak “friss” böngészővel lehessen az erőforrásokat elérni?

Ebben segit az Azure AD Conditional Acces és Defender for Cloud Apps szolgáltatás. Lássuk, hogyan lehet letiltani az “outdated” browser használatát.

Megjegyzés: outdated browsernek számít az aktuális főverzió -2. Tehát ha pl. az Edge a 109-es verziónál jár, akkor támogatott a 109, 108 és 107 főverzió.

Először is, szükség lesz a kívánt erőforrás (OWA, Sharepoint stb) továbbirányítására a Defender for Cloud Apps-ba.

Conditonal Access

Készítsünk egy Conditional Access policy-t, az alábbi beállításokkal:

Defender for Cloud Apps Access Policy

A Cloud Apps-ban hozzunk létre egy Access Policyt:

Az User agent tag értéke legyen egyenlő az Outdated browser kategóriával illetve az Action legyen Block értéken. Természeseten más filtereket is hozzáadhatunk (user group stb.)

Tesztelés

Tesztelésként telepítettem egy Firefox 98-at és megpróbálkoztam egy böngészős Teams bejelentkezéssel. A Defender for Cloud Apps blokkolta is az elérést, ahogy vártuk:

A fenti tiltást nemcsak böngészőre, de akár operációs rendszerre is alkalmazható:

Összefoglalás

Ahogy a fentiekből látható, könnyen biztosíthatjuk, hogy naprakész böngészőkből legyen elérhető az erőforrás (ne feledjük, hogy nemcsak beépített MS szolgáltatásokat tudunk így védeni, az Azure AD Application Proxy segítségével akár 3rd party vagy on-prem alkalmazásokat is).

Break-glass account monitorozása

Fontos szerepe van a break-glass accountoknak, hogy legyen “visszaállási” lehetőségünk hibás konfiguráció (pl. kizártuk magunkat a tenantból Conditional Access policyval) vagy szolgáltatás kiesés esetén. Személyes élmény 2018-ból, mikor nagyjából napig nem működött az Azure MFA, így bejelentkezni sem tudtam az admin accounttal 🙂

Erre a veszélyre reflektálva sok szervezet használ már break-glass accountot. Mielőtt rátérnénk a security vonatkozásokra, nézzük át gyorsan az ajánlásokat az accounttal kapcsolatban:

  • a break-glass account az Azure AD-ban létrehozott entitás legyen; ne használjuk syncelt vagy federált accountot.
  • ne legyen személyhez kapcsolva
  • Ha használunk a breakglasshoz MFA-t, ne legyen valaki személy telefonja, emailcíme stb; a legjobb egy dedikált FIDO2 security key, biztos helyre elzárva
  • az accountra ne vonatkozzon semmilyen Conditional Access policy, illetve egyéb más security policy
  • Azure AD Identity Protectionban állítsuk permanent Global Administratorra, ne csak Eligible-re

Monitorozás

Security szempontból elengedhetetlen, hogy monitorozzuk ennek az accountnak a használatát. Hiszen nincs személyhez kötve, nincs MFA sem hozzá, így kritikus hogy lássuk az aktivitását. Ebben tud segiteni a Microsoft Sentinel.

A monitorozáshoz szükséges előfeltételek:

  • Microsoft Sentinel és Log Analytics Workspace
  • Azure AD P1 vagy P2 licensz a sign-in logok exportálásához
  • Break-glass account
  • Break-glass account Object ID

Feltételezzük, hogy a Sentinel már be van állítva, rátérhetünk a konnektor konfigurálásra.

Sentinel konnektor konfigurálása

Navigáljunk el a Sentinel portálra, majd a Data Connectors közül válasszuk ki az Azure Active Directory konnektort:

Az Audit és Sign-in logokat válasszuk ki:

A konnektor státuszát és a loggyűjtést tudjuk ellenőrzni a tulajdonságlapon:

Analytic rule elkészítése

Készítünk egy rule-t, ami incidenst generál ha a break-glass accounttal aktivitás történne.

Navigáljunk el a Sentinel portálon az Analytics részre és válasszuk a Create scheduled query rule opciót.

Adjunk nevet és leírást a szabálynak, a Tactics résznél válasszuk ki az Initial Access és Credential Access lehetőségeket, a Severity legyen High értéken.

A Set rule logic résznél egy Kusto lekérdézést kell definiálnunk:

SigninLogs
| project UserId,UserPrincipalName, Location, SourceSystem, TimeGenerated, IPAddress
| where UserId == 'object-id'
| extend AccountCustomEntity = UserPrincipalName
| extend IPCustomEntity = IPAddress
| extend HostCustomEntity = SourceSystem

Az UserID-hoz tartoztó object-id-t megtaláljuk az Azure Active Directoryban a break-glass account tulajdonságlapján.

A lekérdést állítsuk be 5 percenkéntire.

Az Incident setting résznél állitsuk be hogy generálódjon incidens

Ellenőrzés

A beállítások után érdemes leellenőrizni, hogy valóban működik-e az incidensgenerálás. Ehhez jelentkezzünk be a break-glass accounttal és nézzük, megjelenik-e a Sentinel alert.

Összefoglalás

Az break-glass account megléte nagyon fontos, de ugyanúgy kiemelt szerepet kap a monitorozása is. A fentiek alapján ez könnyen beállítható.

Defender External Attack Surface Management – a külső nézet

Amikor az IT-securityben gondolkodunk, nem szabad elfelejteni a külső támadási felületet (external attack surface), ahonnan a szervezet támadható. A támadási felületbe tartozhat egy internetre publikált weboldal, egy nem támogatott és esetleg sérülékenységet tartalmazó PHP-kód.

A külső támadási felület felmérését általában erre szakosodott cégekkel szokták megvizsgáltatni a vállalatok. Ez egyrész drága is lehet, illetve sokszor csak egy pillanatképet kapunk az aktuális problémákról.

Defender EASM

Az EASM folyamatosan felfedezi és feltérképezi digitális támadási felületet, hogy külső nézőpontot adjon az online infrastruktúráról. Ez a vizibilitás segithet az IT szakembereknek hogy azonositsák és elháritsák a kockázatokat.

A Defender EASM a Microsoft-infrastruktúra feltérképezési technológiai részét használja az online infrastruktúrához kapcsolódó eszközök felfedezésére, a technológia aktívan szkennel, hogy további betekintést nyerjen és felderítse a gyenge pontokat.

Az alábbi erőforrásokat képes felhasználni a felderitéshez:

  • Domains
  • Hostnames
  • Web Pages
  • IP Blocks
  • IP Addresses
  • ASNs
  • SSL Certificates
  • WHOIS Contacts

Licenszelés: az első 30 napig ingyenes, utána 0,011 USD/asset/nap. Assesnek számit a domain/host/IP cimek stb

EASM beállitása

A használatához szükségünk lesz egy Azure előfizetésre és egy resouce group-ra. Fontos tudni, hogy jelenleg EASM-instancet csak az alábbi régiókban tudunk létrehozni:

  • southcentralus
  • westus3
  • eastus
  • eastasia
  • swedencentral
  • australiaeast
  • japaneast

Navigáljunk el a https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Easm%2Fworkspaces portálra és válasszuk a Create opciót és hozzuk létre az instace-t.

A deployment végeztével az Overview fülön kezdhetjük el a beállitást. Rákereshetünk egy létező vállalatra vagy a “Create custom attack surface” gombbal definiálhatunk egyedi beállitásokat. A példa kedvéért mi egy custom konfigurációt készitünk.

Itt meg kell adnunk a Seed-eket, azaz információkat, amikre a discovery process lefuthat. Ezek lehetnek domainek, IP-tartományok, email kontaktok (pl. office@cegnev.hu) stb. Válasszuk a domaint és irjuk be a kivánt értéket.

Végül mentsük el a konfigot. A leltározási folyamat 24-48 órát vehet igénybe

A discover folyamat igy néz ki:

EASM használata

A leltár felépülte után az Overview oldalon egy áttekintést kapunk

Az Attack Surface Priorities szekció összefoglalja a különböző megfigyelt problémákat. A képen látható 2 medium és 5 low severity találat.

Az egyes találatokra kattintva láthatjuk az érintett IP-ket/hostokat. Jelen esetben egy Django projectnél azonositott egy SQL-injection sebezhetőséget, a hozzátartozó CVE advisory-val és a remediation lépésekkel (Django frissités ajánlott)

Inventory

Az inventoryban láthatjuk a felderitett elemeket. Az asseteket törölhetjük, módosithatjuk

Security Posture dashboard

A security posture mutat különböző értékeket, pl CVE exposure, domainek adminiszrációjával (hol vannak a domainek regisztrálva), az internet felől elérhető nyitott portokat

GDPR Compliance dashboard

A felderitett asseteket megvizsgálja GDPR megfelelőség szempontjából. A dashboard részei a következők:

  • Website by status
  • SSL Certificate Posture
  • SSL Certificate Expiration
  • Sites with SHA 1 / SHA256
  • P11 Posture
  • Login posture
  • Cookie posture

OWASP Top 10 dashboard

Ezen a dashboardon láthatjuk az OWASP által definiált legkritikusabb security ajánlásokat.

  • Broken access control
  • Cryptographic failure
  • Injection
  • Insecure design
  • Security misconfiguration
  • Vulnerable and outdated components
  • Identification and authentication failures
  • Software and data integrity failures
  • Security logging and monitoring
  • Server-side request forgery

Összefoglalás

A Defender EASM egy nagyon hasznos eszköz arra, hogy security szemszögből “kintről”, az internetről is felfedezzük a security hiányosságokat, problémákat. Az assetek számára érdemes odafigyelni, mert bár darabonként nem drága, de többezer tételnél már növelheti az Azure költséget.

Legacy authentication protokollok

Egyre közeleg a dátum, mikor a Microsoft végleg kivezeti a basic authenticationt az Exchange Online elérésében (2023.március 31.)

Az M365 adminok ezt többé-kevésbé tudják, és meg is teszik a szükséges lépéseket. Viszont sokszor jön a kérdés, mik is ezek a legacy protokollok és mi használja őket?

Az Azure Active Directoryban sign-in logban leszűrve ezeket látjuk, mint legacy protocols:

Legacy protocols:

  • Authenticated SMTP – POP és IMAP kliensek használják levélküldésre
  • Autodiscover – Outlook és Exhange Active Sync kliensek használják a mailboxok megkeresésére az Exchange Online-ban, pl Windows Mail és egyéb mobilalkalmazások
  • Exchange ActiveSync (EAS) – Postafiók elérés Exchane Online-ban
  • Exchange Online PowerShell – Exchange Online elérése Powershellből
  • Exchange Web Services (EWS) – úgynevezett programming interface amit az Outlook, Outlook for Mac, és 3rd party alkalmazások használnak
  • IMAP4 – IMAP4 email kliensek használják, pl Thunderbird vagy Apple Mail
  • MAPI over HTTP (MAPI/HTTP) – Outlook 2010/2013 kliensek használják.
  • Offline Address Book (OAB) – Outlook használja az address list letöltésére
  • Outlook Anywhere (RPC over HTTP) – Outlook 2016 használja
  • Outlook Service – Windows 10-ben lévő Mail and Calendar app használja
  • POP3 – POP3 kliensek használják
  • Other clients – minden más protokoll ami legacy módon működik

A POP/IMAP/Remote Powershell már kapott Oauth 2.0 támogatást, ezek továbbra is használhatók.

Microsoft Sentinel – ingyenes konnektorok

Ügyfelekkel való konzultáció során szinte mindig elhangzik a kérdés: melyek az ingyenes Sentinel-konnektorok? Tudjuk őket definiálni, de vannak olyan ingyenes konnektorok, amik tartalmaznak fizetős elemeket is.

Ingyenes adatforrások:

  • Azure AD Identity Protection
  • Azure Activity Logs
  • Office 365
  • Microsoft Defender for Cloud
  • Microsoft Defender for IoT
  • Microsoft 365 Defender
  • Microsoft Defender for Endpoint
  • Microsoft Defender for Identity
  • Microsoft Defender for Cloud Apps

Fontos tisztázni: a data connector bekötése mindig ingyenes. A logfileok esetén csak az Azure Acive Directory és O365 audit logok ingyenesek. A többi logforrásnál csak az alert és incidens generálás és néhány aktivitás ingyenes.

Nézzük egyenként a data connectorokat:

Azure AD Identity Protection:

Előfeltétel: Azure AD Premium 2 licensz

Ingyenes adattipus: Security Alert (IPC)

Azure Activity:

Ingyenes adattipus: minden tipus

Office 365

Ingyenes adattipus: Sharepoint, Exchange és Teams activity

Defender for Cloud:

Ingyenes adattipusok: Security Alert

Defender for IoT:

Ingyenes adattipus: Security Alert

Microsoft M365 Defender:

Ingyenes adattipus: Security Alert és Security Incident

Figyelem: a többi adatbetöltés már számolódik a Sentinel költségbe!

Defender for Endpoint:

Ingyenes adattipus: Security Alert (MDATP)

Defender for Identity:

Ingyenes adattipus: Security Alert (AATP)

Defender for Cloud Apps:

Ingyenes adattipus: Security Alert (Defender for Cloud App)

A Cloud Discovery logok bekapcsolása szintén számolódik a Sentinelben

Összefoglalva:

Mint látjuk, a Microsoft Sentinelt költséghatékony módon tudjuk használni arra hogy az O365 és Azure Activity logokat gyűjtsük és a különböző Microsoft termékekből érkező alerteket is fogadjuk.