Gyakorlat – Adatbesorolás, dinamikus adatmaszkolás és SQL-naplózás

Befejeződött

Ebben a gyakorlatban a modulban tanultak kombinálásával haladhat végig egy forgatókönyvön. Megtanulhat új adatbesorolásokat és dinamikus adatmaszkokat felvenni, majd megismerkedhet az adatbesorolásra megjelölt oszlopokat megtekinteni próbáló felhasználók auditálásának különböző módszereivel. Ez a gyakorlat egyesíti a biztonság kezelésével kapcsolatos modulban már megismert fogalmakat.

Adatbesorolás és maszkolás konfigurálása

  1. Lépjen az Azure SQL Database-példányhoz (nem a logikai kiszolgálóhoz) az Azure Portalon.

  2. A bal oldali panel Biztonság területén válassza az Adatfelderítés és -besorolás lehetőséget.

  3. Válassza a Besorolás lapot, majd a Besorolás hozzáadása lehetőséget.

    Screenshot of how to add a new classification.

    Az előző gyakorlatban már felvette az összes javasolt oszlopbesorolást. Ebben a lépésben manuálisan vehet fel egy esetleg bizalmas oszlopot a besorolt oszlopok listájára.

  4. A SalesLT-ügyfél táblában a Data Discovery > Besorolás azonosítva FirstName és LastName besorolva van, de nem MiddleName. Vegye fel most azt is a legördülő lista használatával, és a Besorolás hozzáadása lehetőséggel.

    Screenshot of how to add a name-related classification for MiddleName.

  5. Válassza a Mentés parancsot.

  6. A besorolás sikeres hozzáadásának megerősítéséhez tekintse meg az Áttekintés lapot, és győződjön meg arról, hogy MiddleName most már megjelenik a SalesLT-séma besorolt oszlopainak listájában.

  7. Válassza a bal oldali panelen az Áttekintés lehetőséget, így visszatérhet az adatbázis áttekintéséhez.

    A Dinamikus adatmaszkolás (DDM) az Azure SQL-ben és az SQL Serverben is elérhető. A DDM azzal korlátozza az adatok elérhetőségét, hogy a jogosulatlan felhasználók számára az SQL Server szintjén maszkolja a bizalmas adatokat, nem pedig az alkalmazás szintjén, ahol ezeket a szabályokat kódolni kellene. Az Azure SQL javaslatokat tesz a maszkolandó elemekre, de manuálisan is vehet fel maszkokat.

    A következő lépésekben maszkolja az FirstNameelőző lépésben áttekintett oszlopokat MiddleNameés LastName oszlopokat.

  8. Az Azure Portalon nyissa meg az Azure SQL Database-t. A bal oldali panel Biztonság területén válassza a Dinamikus adatmaszkolás, majd a Maszk hozzáadása lehetőséget.

  9. A legördülő listákban válassza ki a SalesLT-sémát, az Ügyfél táblát és a FirstName oszlopot. Áttekintheti a maszkolási lehetőségeket, de ehhez a példához megfelelnek az alapértelmezett beállítások. A maszkolási szabály hozzáadásához válassza a Hozzáadás lehetőséget.

    Screenshot of how to add First Name mask.

  10. Ismételje meg a fenti lépéseket a tábla MiddleName és LastName oszlopával is.

    Most három, az itt láthatókhoz hasonló maszkolási szabállyal rendelkezik:

    Screenshot of how to review all masking rules.

  11. Válassza a Mentés parancsot.

  12. Válassza a bal oldali panelen az Áttekintés lehetőséget, így visszatérhet az adatbázis áttekintéséhez.

Besorolt és maszkolt adatok kiolvasása

Ezután szimulálni fog valakit, aki lekérdezi a besorolt oszlopokat, és működés közben megvizsgálja a dinamikus adatmaszkolást.

  1. Nyissa meg az SQL Server Management Studiót (SSMS).

  2. Ha új lekérdezést szeretne létrehozni az AdventureWorks-adatbázisban, kattintson a jobb gombbal az adatbázisra, majd válassza az Új lekérdezés lehetőséget.

  3. Futtassa az alábbi lekérdezést, amely a besorolt adatokat, és egyes esetekben a maszkolt adatokhoz megjelölt oszlopokat adja vissza. Válassza a Végrehajtás lehetőséget a lekérdezés futtatásához.

    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    

    Az eredményben az első 10 névnek kell megjelennie, maszkolás nélkül. Miért? Azért, mert Ön ennek a logikai Azure SQL Database-kiszolgálónak a rendszergazdája.

    Screenshot of SQL query results with no mask.

  4. A következő lekérdezésben létrehoz egy új felhasználót, és az előző lekérdezést futtatja felhasználóként. Az EXECUTE AS parancsot is használni fogja Bob megszemélyesítésére. EXECUTE AS Egy utasítás futtatásakor a munkamenet végrehajtási környezete a bejelentkezésre vagy a felhasználóra vált. Ez azt jelenti, hogy az engedélyeket a rendszer a parancsot végrehajtó személy (ebben az esetben Ön) helyett a bejelentkezéssel vagy a EXECUTE AS felhasználóval ellenőrzi. REVERT ezután a bejelentkezés vagy a felhasználó megszemélyesítésének leállítására szolgál.

    A következő parancsok első néhány részét felismerheti, mert azok az előző gyakorlat ismétlései. Hozzon létre egy új lekérdezést a következő parancsokkal, majd válassza a Végrehajtás lehetőséget a lekérdezés futtatásához és az eredmények megfigyeléséhez.

    -- Create a new SQL user and give them a password
    CREATE USER Bob WITH PASSWORD = 'c0mpl3xPassword!';
    
    -- Until you run the following two lines, Bob has no access to read or write data
    ALTER ROLE db_datareader ADD MEMBER Bob;
    ALTER ROLE db_datawriter ADD MEMBER Bob;
    
    -- Execute as our new, low-privilege user, Bob
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;
    

    Az eredményben most is az első 10 névnek kell megjelennie, de maszkolva. Bob nem kapott hozzáférést ezeknek az adatoknak a maszkolás nélküli formájához.

    Screenshot of SQL query results with mask.

    Mi a teendő, ha Bobnak valamilyen okból hozzá kell férnie ezekhez a nevekhez, és engedélyt is kap rá?

    A maszkolásból kizárt felhasználókat módosíthatja az Azure Portalon a Biztonság alatti Dinamikus adatmaszkolás panelen, de T-SQL használatával is.

  5. Kattintson a jobb gombbal az AdventureWorks adatbázisra, és válassza az Új lekérdezés lehetőséget, majd adja meg a következő lekérdezést, hogy Bob maszkolás nélkül lekérdezhesse a nevek eredményeit. Válassza a Végrehajtás lehetőséget a lekérdezés futtatásához.

    GRANT UNMASK TO Bob;  
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;  
    

    Az eredményben a teljes neveknek kell megjelenniük.

    Screenshot of SQL query results with no mask.

  6. A felhasználó maszkolási jogosultságait is elvesztheti, és az alábbi T-SQL-parancsok új lekérdezésben való futtatásával megerősítheti ezt a műveletet:

    -- Remove unmasking privilege
    REVOKE UNMASK TO Bob;  
    
    -- Execute as Bob
    EXECUTE AS USER = 'Bob';
    SELECT TOP 10 FirstName, MiddleName, LastName
    FROM SalesLT.Customer;
    REVERT;  
    

    Az eredményben a maszkolt neveknek kell megjelenniük.

    Screenshot of SQL query results with mask.

Auditnaplók áttekintése az SSMS-ben

Rendszergazdaként nyilván szeretné átlátni és naplózni, hogy ki fér hozzá az adatbázisokhoz, azokon belül is a besorolt adatokhoz. A következőkben az Azure-blobtárolóba küldött naplófájlokat ismerheti meg. Az első teendője a naplófájlok egyesítése, ha a naplók több fájlra is kiterjednek. Ezt az SSMS-ben az alábbi lépésekben teheti meg:

  1. Válassza a Fájl>Megnyitás>Naplófájlok egyesítése lehetőséget.

    Screenshot of how to open audit files.

  2. Válassza a Hozzáadás lehetőséget.

    Screenshot of how to add a new file.

  3. Válassza a Hozzáadás az Azure Blob Storage-ból, majd a Csatlakozás lehetőséget.

    Screenshot of how to add from Azure Blob storage.

  4. Jelentkezzen be az Azure-ba a modulhoz használt fiókkal.

    Screenshot of how to sign in to Azure.

  5. Válassza ki az előfizetést, a tárfiókot és azt a blobtárolót, amelyet az auditnaplók tárolásához megadott. A tárfiók nevének kezdete sql. A tároló neve sqldbauditlogs lesz. Ha nincs ilyen nevű tároló, létrehozott egy másik tárfiókot a naplózáshoz; használja helyette.

  6. Válassza ki az Azure SQL Database logikai kiszolgálót és az adatbázist AdventureWorks . Győződjön meg arról, hogy a From time korábbi, mint amikor elindította a gyakorlatokat. Kattintson az OK gombra.

  7. A megerősítő ablak tudatja, hogy hány fájl letöltése és egyesítése van folyamatban. Kattintson az OK gombra.

  8. Tekintse át a fájlokat, majd válassza az OK gombot még egyszer.

    Ekkor az összes auditnapló megjelenik. Keresse meg azt a részt, ahol a maszkolást tesztelte Bobbal. Ennek a lista alján kell szerepelnie.

  9. Válassza ki az utasítást, majd tekintse át az adatokat a részletek panelen. Az egyik olyan lekérdezésnél például, amellyel Bob a besorolt adatokat próbálta megtekinteni, a data_sensitivity_information mező alatt láthatja, hogy az adatok titkosak.

  10. Kattintson duplán a data_sensitivity_information értékére a Részletek panelen. Megnyílik egy előugró ablak, amelyen az adatok jobban olvashatók.

    Íme egy példa arra, hogy mit láthat a következő alatt data_sensitivity_information:

    <sensitivity_attributes max_rank="20" max_rank_desc="Medium"><sensitivity_attribute label="Confidential - GDPR" label_id="bf91e08c-f4f0-478a-b016-23422b2a65ff" information_type="Name" information_type_id="57845286-7598-22f5-3422-15b24aeb125e" rank="20" rank_desc="Medium"/></sensitivity_attributes>
    

    Ezt az egyesített fájlt aztán XEL-fájlba, CSV-fájlba vagy egy táblába is exportálhatja a további elemzéshez. A kiterjesztett eseményfájlokat az Azure PowerShell használatával is lekérdezheti.

Auditnaplók áttekintése az Azure Portalon

Az auditnaplók elemzésének módját Ön választhatja meg. Ez a szakasz a biztonsági naplók Azure Portalon, a Log Analytics használatával végzett lekérdezését mutatja be.

  1. Az Azure Portalon nyissa meg az adatbázist AdventureWorks . A bal oldali panel Biztonság területén válassza a Naplózás lehetőséget, majd válassza a Naplók megtekintése gombot a tálcán.

    Most már látnia kell az eseményrekordok lekérdezését, a Lekérdezésszerkesztő futtatható beállításait (T-SQL-lekérdezések futtatása a portálon keresztül), a Log Analytics beállításait, az irányítópult megtekintését stb.

    Screenshot of how to view audit records.

    Nyugodtan körülnézhet, hogy megértse, mik a lehetőségek.

  2. Select Log Analytics. Előfordulhat, hogy a Log Analytics gomb eléréséhez a Frissítés lehetőséget kell választania. Ha megjelenik az Első lépések képernyő, válassza az OK lehetőséget. Ezzel egy lekérdezésszerkesztőt nyit meg, de ez nem T-SQL-szerkesztő. Ebben a nézetben a Kusto lekérdezési nyelv (KQL) használatával kérdezheti le a naplókat, amely úgy készült, hogy könnyen használható és érthető legyen az SQL-szakértők számára.

    Az alapértelmezett lekérdezés az SQLSecurityAuditEvents kategóriát kérdezi le. Bár ezt a kategóriát használhatja most a biztonsággal kapcsolatos incidensek megtekintéséhez, ez az eszköz más Azure-naplók és -kategóriák lekérdezésére is használható a Log Analyticsben. Ebben a lépésben azokat az utasításokat vizsgálhatja meg, amelyekkel Bob bizalmas adatokhoz próbált hozzáférni. Az SSMS-ben látott információk lekéréséhez bontsa ki a sor részleteit a > gomb kiválasztásával.

    Az eredmények megjelenéséig eltelhet néhány perc. A lekérdezést a Futtatás lehetőség ismételt kiválasztásával frissítheti.

    Ez a gyakorlat nem mutatja be részletesen a naplók KQL-lekérdezését, de a korábbi hivatkozások között sok forrást találhat, ha később ezt is tovább szeretné gyakorolni.

    A következő lépésben azt fogja látni, hogy az SQL-biztonság egy irányítópultot készített a Log Analytics alapján, hogy figyelni és elemezni tudja a naplókat és más SQL-tevékenységeket. A Naplórekordok panelre úgy térhet vissza, hogy a jobb felső sarokban található × választásával bezárja a Log Analytics lekérdezési ablakát.

  3. Válassza az Irányítópult megtekintése lehetőséget.

    Screenshot of the log analytics dashboard.

    Egy áttekintő irányítópult jelenik meg.

  4. További részletek megtekintéséhez válassza az Azure SQL – Hozzáférés bizalmas adatokhoz lehetőséget.

    Előfordulhat, hogy három-öt percet várnia kell, és a Frissítés lehetőséget kell választania ahhoz, hogy itt elemek jelenjenek meg.

    Ezen részletes információk alapján a következőket állapíthatja meg:

    • Hány lekérdezést fér hozzá bizalmas adatokhoz.
    • Milyen típusú és bizalmasságú adatokhoz férnek hozzá.
    • Mely rendszerbiztonsági tagok férnek hozzá a bizalmas adatokhoz.
    • Milyen IP-címekről férnek hozzá bizalmas adatokhoz.

    Vizsgálja meg az itt elérhető információkat, és hogy hogyan elemezheti a használatot ezzel az eszközzel. Ezek közül is választhat, és megtekintheti a kapcsolódó naplókat a Log Analyticsben.

  5. Ha végzett, zárja be az Azure SQL – Hozzáférés bizalmas adatokhoz panelt a jobb felső sarkában található × választásával.

  6. A naplózási irányítópult áttekintési paneljén válassza az Azure SQL – Biztonsági Elemzések lehetőséget.

    Ez az irányítópult további naplózási információkat jelenít meg, amelyek segítenek az adatbázis-tevékenység megértésében és a rendellenességek feltárásában. Szánjon néhány percet az itteni lehetőségek tanulmányozására és részletezésére.

Az Azure SQL-szolgáltatásokra vonatkozó megállapítások megtekintése mellett az Azure-ban való használat lehetővé teszi, hogy Felhőhöz készült Microsoft Defender segítségével monitorozza, kezelje és megválaszolja a teljes Azure-tulajdonban felmerülő problémákat. Ha szeretné áttekinteni, hogy mi érhető el az Azure SQL-Felhőhöz készült Defender kívül, az Azure Portalon kereshet és választhat Felhőhöz készült Microsoft Defender. A hozzáférése az előfizetés szintjétől függően korlátozott lehet.