Gyakorlat – A biztonság kezelése

Befejeződött

Miután az Azure SQL Database biztonságossá tette a hálózatkezelési, hitelesítési és adatvédelmi szinteket, az utolsó lépés annak megértése, hogyan fogja folyamatosan kezelni a biztonságot. A biztonság kezelése magában foglalja a naplózást, a monitorozást és az adatbesorolást.

Naplózás

A naplózás segíthet a jogszabályi megfelelőség fenntartásában és az adatbázison végzett tevékenység megértésében, valamint az esetleges biztonsági problémákat jelző rendellenességek feltárásában. Ebben a gyakorlatban a kiszolgáló szintjén fog naplózást beállítani, bár az az adatbázis szintjén is rendelkezésre áll.

Az SQL Server-naplózás alternatívája az Azure SQL Database-ben az Azure SQL-naplózás. Ez az SQL Server-naplózásra épül, és ahogyan az SQL Server, ez is támogatja a naplózási műveletcsoportokat és műveleteket. A naplózási funkció nyomon követi az adatbázis- és kiszolgálóeseményeket, és eseményeket ír egy naplóba az Azure Storage-ban, a Log Analyticsben vagy egy Azure Event Hubsban. Ha egy Azure Blob Storage-fiókra irányítja, az eredményeket XEvents-fájlokban tárolhatja és elemezheti. A Log Analytics használatával lehetővé teszi, hogy a naplókat a Kusto lekérdezési nyelvvel (KQL) kérdezze le, és kihasználja a naplózási Log Analytics-irányítópultok előnyeit.

Naplózás konfigurálása

Az SQL Database üzembe helyezésének korábbi gyakorlatában a naplózást kiszolgálószinten állította be, de az adatbázis szintjén is elérhető. Egy későbbi gyakorlatban látni fogja, hogyan férhet hozzá az Azure Blob Storage-ba, a KQL-nek és a Log Analytics-irányítópultokra küldött fájlokhoz, és hogyan használhatja fel azokat.

A Log Analytics-munkaterület beállításához hajtsa végre az alábbi lépéseket:

  1. Az Azure Portal keresősávján adja meg a Log Analytics kifejezést, majd válassza ki a Log Analytics-munkaterületeket az eredmények közül. Megjelenik a Log Analytics-munkaterületek panel.

  2. Select Create. Megjelenik a Log Analytics-munkaterület létrehozása menü.

  3. Az Alapszintű beállítások lapon adja meg az alábbi értékeket minden beállításhoz.

    Setting Érték
    Projekt részletei
    Előfizetés Concierge-előfizetés
    Erőforráscsoport A legördülő listában válassza a [Tesztkörnyezeti erőforráscsoport] lehetőséget
    Példány részletei
    Név Adja meg az azuresql-la értéket
    Region Válasszon ki egy Önhöz legközelebb eső helyet az alábbi listából

    Az ingyenes tesztkörnyezetben az Azure globális régióinak egy részében hozhat létre erőforrásokat. Az erőforrások létrehozásakor válasszon ki egy régiót az alábbi listából:

    • West US 2
    • South Central US
    • Central US
    • East US
    • West Europe
    • Délkelet-Ázsia
    • Japan East
    • Dél-Brazília
    • Australia Southeast
    • Central India
  4. Válassza a Véleményezés + létrehozás lehetőséget, várja meg, amíg a bemenetek érvényesítve vannak, majd válassza a Létrehozás lehetőséget. Várja meg az erőforrás üzembe helyezését.

  5. Válassza az Erőforrás megnyitása lehetőséget. Megjelenik a Log Analytics-munkaterület Áttekintés panelje.

  6. Az Azure Portalon nyissa meg az AdventureWorks-adatbázist .

  7. A menü Biztonság területén válassza a Naplózás lehetőséget. Tekintse át a beállításokat.

    A naplózást kiszolgálószinten is alkalmazhatja, amely az Azure SQL Database logikai kiszolgálóján belüli összes adatbázisra vonatkozik. Ha az adatbázis szintjén is alkalmazza a naplózást (amelyet ebben a leckében fog elvégezni), mindkét naplózás párhuzamosan történik; az egyik nem bírálja felül a másikat.

  8. Válassza ki a dia kapcsolót az Azure SQL-naplózás engedélyezéséhez.

  9. Jelölje be a Tároló jelölőnégyzetet, majd töltse ki a szükséges mezőket:

    • Előfizetés esetén a legördülő listából válassza ki a Concierge-előfizetést.
    • Tárfiók esetén a legördülő listából válassza ki a kezdő fiókotsql, majd egy véletlenszerű betűkből és számokból álló sztringet.
    • Hagyja meg a Tárolóhitelesítés típusát alapértelmezett tárelérési kulcsként .

    A sql tárfiók XEvent-naplófájlok gyűjtésére szolgál, amelyeket a rendszer blobfájlok gyűjteményeként ment egy sqldbauditlogs nevű tárolóban. Egy későbbi tevékenység során áttekintheti a tárolót, hogy megtudja, miben különböznek a naplófájlok a Log Analyticstől.

    Tipp.

    Ha nem lát tárfiókokat, hozzon létre egy új fiókot. Előfordulhat, hogy néhány perc múlva frissítenie kell a lapot, mielőtt megjelenik.

    Ha az éles környezet naplózására készül, érdemes lehet külön tárfiókot létrehoznia az auditnaplókhoz.

  10. Válassza a Speciális tulajdonságok lehetőséget a szakasz kibontásához és a következő konfigurációelemek beállításához:

    • Adatmegőrzéshez (napok) írja be a 7 értéket
    • A Storage hozzáférési kulcs esetében válassza az Elsődleges lehetőséget.

    Megjegyzés:

    Ha nem látja a Speciális tulajdonságokat, válassza a Mentés lehetőséget a parancssávon, majd ismételje meg a lap konfigurációs utasításait.

  11. Jelölje be a Log Analytics jelölőnégyzetet, és töltse ki a szükséges mezőket:

    • Előfizetés esetén válassza ki a Concierge-előfizetést a legördülő listából.
    • A Log Analytics esetében válassza ki a gyakorlat korábbi részében létrehozott Log Analytics-munkaterületet (asuresql-la).
  12. Válassza a Mentés parancsot.

    A konfiguráció feldolgozása eltarthat néhány percig.

Engedélyezte a naplózást egy tárfiók és egy Azure Log Analytics-munkaterület esetében. Később részletesebben is megismerheti az Azure SQL naplózási képességeit. Látni fogja, hogyan tekintheti meg a modul során végzett összes módosítást az auditnaplók elemzésével, és néhány további érdekes felhasználási lehetőséggel is megismerkedhet.

Az Azure SQL Database-hez készült Ledger

A főkönyv funkció illetéktelen hozzáférés-bizonyítékokat és titkosítási bizonyítékokat biztosít az adatbázis adatintegritási képességeiről. Ez a bizonyíték segíthet egyszerűsíteni a naplózási folyamatot.

A Ledger segít megvédeni az adatokat minden támadótól vagy magas jogosultságú felhasználótól, beleértve az adatbázis-rendszergazdákat (DBA-kat), a rendszergazdákat és a felhőbeli rendszergazdákat. A hagyományos főkönyvekhez hasonlóan a funkció megőrzi az előzményadatokat. Ha egy tranzakció egy főkönyvtáblában módosítja az adatokat, az esemény kriptográfiai sha-256 kivonatolással történik egy Merkle-fa adatstruktúrával, amely létrehoz egy gyökérkivonatot, amely a tranzakció összes sorát jelöli. Az adatbázis-folyamatok tranzakciói ezután az SHA-256-ot is kivonatolják egy Merkle-fa adatstruktúrán keresztül. Az eredmény egy blokkot formázó gyökérkivonat. A blokk ezután sha-256 kivonatot ad át a blokk gyökérkivonatán, valamint az előző blokk gyökérkivonatát a kivonatfüggvény bemeneteként. Ez a kivonatolás blokkláncot képez. Ha egy sor frissül az adatbázisban, az előző érték megmarad és védett lesz egy előzménytáblában. A Ledger egy krónikát biztosít az adatbázison végzett összes módosításról az idő függvényében.

A főkönyv funkció két formában jelenik meg a táblákban:

  • Frissíthető főkönyvtáblák, amelyek lehetővé teszik a táblák sorainak frissítését és törlését
  • Csak hozzáfűző főkönyvtáblák, amelyek csak a táblák beszúrását teszik lehetővé

Mind az frissíthető főkönyvtáblák, mind a csak hozzáfűző főkönyvtáblák illetéktelen hozzáférést és digitális kriminalisztikai képességeket biztosítanak.

Gyakorlat az Azure SQL Database-hez készült ledger használatával

Az Azure SQL Database létrehozásához használt gyakorlatban hozzáadtunk egy nevű myLedgerDatabase adatbázist, és létrehoztunk egy táblát.Account.Balance Ebben a gyakorlatban adatokat szúrunk be, frissítjük az adatokat, és lekérdezzük az előzménytáblát és a főkönyv nézeteit, hogy megtekintsük a nyomon követést és a táblák közötti kapcsolatot.

  1. Nyissa meg az SSMS-t, és csatlakozzon az Azure SQL Database logikai kiszolgálóhoz.

  2. Kattintson a jobb gombbal az myLedgerDatabase adatbázisra, majd válassza az Új lekérdezés lehetőséget.

  3. Szúrja be a nevet Nick Jones új ügyfélként 50 USD nyitó egyenleggel.

    INSERT INTO [Account].[Balance]
    VALUES (1, 'Jones', 'Nick', 50);
    
  4. Szúrja be a neveket John Smith, Joe Smithés Mary Michaels új ügyfelekként 500,30 usd, illetve 200 usd nyitóegyenleggel.

    INSERT INTO [Account].[Balance]
    VALUES (2, 'Smith', 'John', 500),
    (3, 'Smith', 'Joe', 30),
    (4, 'Michaels', 'Mary', 200);
    
  5. Tekintse meg az [Account].[Balance] frissíthető főkönyvtáblát, és adja meg a táblához hozzáadott GENERATED ALWAYS oszlopokat. Válassza az Execute (Végrehajtás) lehetőséget a lekérdezés futtatásához.

    SELECT [CustomerID]
       ,[LastName]
       ,[FirstName]
       ,[Balance]
       ,[ledger_start_transaction_id]
       ,[ledger_end_transaction_id]
       ,[ledger_start_sequence_number]
       ,[ledger_end_sequence_number]
     FROM [Account].[Balance];  
    

    Az eredmények ablakban először a T-SQL-parancsok által beszúrt értékeket, valamint az adatsorrendi célokra használt rendszer metaadatait fogja látni.

    • Az ledger_start_transaction_id oszlop megjegyzi az adatokat beszúró tranzakcióhoz társított egyedi tranzakcióazonosítót. Mivel John, Joeés Mary ugyanazzal a tranzakcióval lettek beszúrva, ugyanazzal a tranzakcióazonosítóval rendelkeznek.
    • Az ledger_start_sequence_number oszlop megjegyzi a tranzakció által beszúrt értékek sorrendjét.
  6. Frissítse Nickaz egyenleget a helyről 50 a .-ra 100.

    UPDATE [Account].[Balance] SET [Balance] = 100
    WHERE [CustomerID] = 1;
    
  7. Tekintse meg a [Account].[Balance] főkönyv nézetet és a tranzakciónapló rendszernézetét a módosításokat végrehajtott felhasználók azonosításához. Válassza a Végrehajtás lehetőséget a lekérdezés futtatásához.

     SELECT
     t.[commit_time] AS [CommitTime] 
     , t.[principal_name] AS [UserName]
     , l.[CustomerID]
     , l.[LastName]
     , l.[FirstName]
     , l.[Balance]
     , l.[ledger_operation_type_desc] AS Operation
     FROM [Account].[Balance_Ledger] l
     JOIN sys.database_ledger_transactions t
     ON t.transaction_id = l.ledger_transaction_id
     ORDER BY t.commit_time DESC;
    

    NickA fiók egyenlege sikeresen frissült a frissíthető főkönyv táblában a következőre 100: .
    A főkönyv nézet azt mutatja, hogy a főkönyvtábla DELETE frissítése az eredeti sorból 50áll. Az egyenleg egy új sor megfelelőjével INSERT , amely 100 a következőhöz tartozó Nickúj egyenleget jeleníti meg: .

Figyelés

A biztonság monitorozásának és kezelésének két aspektusa van:

  • Az Azure-szint
  • Az adatbázis vagy a kiszolgáló szintje

Az Azure-ban olyan eszközöket alkalmazhat, mint a tevékenységnaplók és a szerepköralapú hozzáférés-vezérlés naplózása.

Az Azure SQL Database-ben konfigurálhatja az Azure SQL-naplózást, és dinamikus felügyeleti nézeteket, metrikákat és riasztásokat alkalmazhat a biztonsággal kapcsolatos események monitorozásához. Lehetővé teszi például sys.event_log a sikertelen és sikeres kapcsolatok, valamint a tűzfal által blokkolt kapcsolatok számának nyomon követését.

A Microsoft azt javasolja, hogy konfigurálja a Felhőhöz készült Microsoft Defender, beleértve az Advanced Threat Protection riasztásainak beállítását is. Ezeket a biztonsági elemeket a következő szakaszban és gyakorlatban tárgyaljuk. Végül a Felhőhöz készült Microsoft Defender használatával monitorozhat, kezelhet és fogadhat javaslatokat az Azure-tulajdonban lévő összes erőforrásra.

Adatfelderítés és -besorolás

A Data Discovery & Classification szolgáltatás egy új információvédelmi paradigmát hoz létre az Azure SQL Database-hez. A szolgáltatás rendeltetése nem csupán az adatbázis, hanem az adatok védelme. Ez az alapelv a következőkre terjed ki:

  • A besorolandó bizalmas adatok felderítése és javaslatai
  • Címkék állandó hozzáadása oszlopokhoz metaadat-attribútumok használatával
  • Bizalmas adathozzáférés naplózása és lekérdezése

Az Azure SQL az SQL Information Protection-szabályzatot és a Microsoft Information Protection-szabályzatot is kínálja az adatbesorolásban, és a követelményeknek megfelelően választhat ezek közül a szabályzatok közül.

A portálnézet csak az Azure SQL-hez érhető el, de az SQL Server is támogat egy hasonló szolgáltatás egy varázslón keresztül az SQL Server Management Studióban.

További információ: Adatfelderítés és -besorolás.

Microsoft Defender for Cloud

Felhőhöz készült Microsoft Defender a speciális SQL-biztonsági képességek egységes csomagja. Segítségével egyetlen helyen engedélyezhető és kezelhető két fő képesség:

  • Vulnerability Assessment
  • Advanced Threat Protection

Vulnerability Assessment

A legmagasabb szinten az SQL Sebezhetőségi felmérés egy ellenőrzési szolgáltatás, amely betekintést nyújt a biztonsági állapotba, és végrehajtható lépéseket biztosít a lehetséges problémák megoldásához. Ha periodikusan ismétlődő vizsgálatokat konfigurál, engedélyezi a szolgáltatás számára, hogy hétnaponta megvizsgálja az adatbázisokat, és biztonsági réseket keressen. Emellett dönthet úgy, hogy ezeket a jelentéseket elküldi a rendszergazdáknak, az előfizetés tulajdonosainak, vagy bárki másnak, akit értesíteni kell a változásokról. Ennek a szolgáltatásnak a működéséhez meg kell adnia egy tárfiókot, ahol az eredmények lesznek tárolva.

Advanced Threat Protection

Az Advanced Threat Protection segítségével a rendellenes tevékenységekre vonatkozó biztonsági riasztásokon keresztül észlelheti a lehetséges fenyegetéseket azok fellépésekor, és reagálhat azokra. Az Advanced Threat Protection fejlett monitorozási és gépi tanulási technológiákat alkalmaz annak észlelésére, hogy a következő fenyegetések bármelyike előfordult-e:

  • SQL-injektálás
  • SQL-injektálásos biztonsági rés
  • Adatkiszivárgás
  • Nem biztonságos művelet
  • Találgatásos támadási kísérlet
  • Rendellenes ügyfél-bejelentkezés

A következő két gyakorlatban megismerkedhet azokkal a képességekkel és forgatókönyvekkel, amelyek Felhőhöz készült Microsoft Defender, és általában az Azure SQL lehetővé teszi és véd azokkal szemben.

Sorszintű biztonság

A sorszintű biztonság lehetővé teszi a csoporttagság vagy a végrehajtási környezet használatát az adatbázistábla soraihoz való hozzáférés szabályozásához.

A sorszintű biztonság (RLS) segít az adatsor-hozzáférés korlátozásainak megvalósításában. Gondoskodhat például arról, hogy a dolgozók csak azokat az adatsorokat érjék el, amelyek a részlegükhöz kapcsolódnak. Egy másik példa az ügyfelek adathozzáférésének korlátozása csak a vállalatuk számára releváns adatokra.

A hozzáférés-korlátozási logika az adatbázis szintjén található, nem pedig egy másik alkalmazásréteg adataitól. Az adatbázisrendszer minden alkalommal alkalmazza a hozzáférési korlátozásokat, amikor az adathozzáférést bármilyen szintről megkísérlik. Ez megbízhatóbbá és robusztusabbá teszi a biztonsági rendszert a biztonsági rendszer felületének csökkentésével.

Az RLS kétféle biztonsági predikátumot támogat.

  • A szűrési predikátumok csendesen szűrik az olvasási műveletekhez elérhető sorokat (Standard kiadás LECT, UPDATE és DELETE)
  • A blokk predikátumok kifejezetten blokkolják az írási műveleteket (AFTER IN Standard kiadás RT, AFTER UPDATE, BEFORE UPDATE, BEFORE DELETE), amelyek megsértik a predikátumot

Tudáspróba

1.

Az alábbi módszerek melyikét használhatja biztonsághoz kapcsolódó események figyelésére az Azure SQL Database-ben?