diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index 1b25ff668..632de2ff5 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -10,7 +10,7 @@ Azure SQL se sastoji od četiri glavne ponude: 1. **Azure SQL Server**: Server je potreban za **implementaciju i upravljanje** SQL Server bazama podataka. 2. **Azure SQL Database**: Ovo je **potpuno upravljana usluga baze podataka**, koja vam omogućava da hostujete pojedinačne baze podataka u Azure cloud-u. -3. **Azure SQL Managed Instance**: Ovo je za veće, celokupne SQL Server instance. +3. **Azure SQL Managed Instance**: Ovo je za veće, celokupne implementacije SQL Server instance. 4. **Azure SQL Server na Azure VMs**: Ovo je najbolje za arhitekture gde želite **kontrolu nad operativnim sistemom** i SQL Server instancom. ### SQL Server Bezbednosne Karakteristike @@ -19,8 +19,8 @@ Azure SQL se sastoji od četiri glavne ponude: - Javni krajnji tačka (može ograničiti pristup na specifične mreže). - Privatne krajnje tačke. -- Takođe je moguće ograničiti veze na osnovu imena domena. -- Takođe je moguće dozvoliti Azure uslugama da mu pristupaju (kao što je korišćenje Query editora u portalu ili dozvoliti Azure VM-u da se poveže). +- Takođe je moguće ograničiti konekcije na osnovu imena domena. +- Takođe je moguće dozvoliti Azure uslugama da mu pristupe (kao što je korišćenje Query editora u portalu ili dozvoliti Azure VM-u da se poveže). **Metode autentifikacije:** @@ -32,68 +32,94 @@ Napomena da ako je bilo koja SQL autentifikacija dozvoljena, potrebno je navesti **Enkripcija:** -- Zove se “Transparent data encryption” i enkriptuje baze podataka, rezervne kopije i logove u mirovanju. +- Zove se “Transparentna enkripcija podataka” i enkriptuje baze podataka, rezervne kopije i logove u mirovanju. - Kao i uvek, podrazumevano se koristi Azure upravljani ključ, ali se može koristiti i ključ za enkripciju koji upravlja kupac (CMEK). **Upravljane identitete:** - Moguće je dodeliti sistemske i korisnički upravljane MI. - Koristi se za pristup ključu za enkripciju (ako se koristi CMEK) i drugim uslugama iz baza podataka. -- Ako je dodeljeno više od jednog UMI, moguće je navesti podrazumevani koji će se koristiti. -- Moguće je konfigurisati federisani identitet klijenta za pristup između zakupaca. +- Za neke primere Azure usluga koje se mogu pristupiti iz baze podataka, proverite [ovu stranicu dokumenata](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) +- Ako je dodeljeno više od jednog UMI, moguće je navesti podrazumevanu koju koristiti. +- Moguće je konfigurisati federisanu identitet klijenta za pristup između zakupaca. +Neki komandi za pristup informacijama unutar blob skladišta iz SQL baze podataka: +```sql +-- Create a credential for the managed identity +CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] +WITH IDENTITY = 'Managed Identity'; +GO + +-- Create an external data source pointing to the blob storage to access +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://testsqlidentity.blob.core.windows.net/sqlcontainer', +CREDENTIAL = ManagedIdentityCredential +); +GO + +-- Read a file from ths storage and return it +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` **Microsoft Defender:** - Korisno za “ublažavanje potencijalnih ranjivosti baze podataka i otkrivanje anomalnih aktivnosti” -- O tome ćemo govoriti u svojoj lekciji (može se omogućiti u nekoliko drugih Azure usluga) +- O Defenderu ćemo govoriti u svojoj lekciji (može se omogućiti u nekoliko drugih Azure usluga) -**Rezervne kopije:** -- Učestalost rezervnih kopija se upravlja u politikama zadržavanja. +**Backup-ovi:** +- Učestalost backup-a se upravlja u politikama zadržavanja. **Obrisane baze podataka:** -- Moguće je obnoviti DB-ove koji su obrisani iz postojećih rezervnih kopija. +- Moguće je obnoviti DB-ove koji su obrisani iz postojećih backup-a. ## Azure SQL Database -**Azure SQL Database** je **potpuno upravljana platforma baze podataka kao usluga (PaaS)** koja pruža skalabilna i sigurna rešenja za relacione baze podataka. Izgrađena je na najnovijim SQL Server tehnologijama i eliminiše potrebu za upravljanjem infrastrukturom, što je čini popularnim izborom za aplikacije zasnovane na cloud-u. +**Azure SQL Database** je **potpuno upravljana platforma za baze podataka kao uslugu (PaaS)** koja pruža skalabilna i sigurna rešenja za relacione baze podataka. Izgrađena je na najnovijim SQL Server tehnologijama i eliminiše potrebu za upravljanjem infrastrukturom, što je čini popularnim izborom za aplikacije zasnovane na oblaku. -Da biste kreirali SQL bazu podataka, potrebno je navesti SQL server na kojem će biti hostovana. +Da bi se kreirala SQL baza podataka, potrebno je naznačiti SQL server na kojem će biti hostovana. -### SQL Database Bezbednosne Karakteristike +### SQL Database Security Features - **Uvek ažurirano**: Radi na najnovijoj stabilnoj verziji SQL Server-a i automatski prima nove funkcije i zakrpe. -- **Nasleđene SQL Server bezbednosne karakteristike:** +- **Nasleđene sigurnosne funkcije SQL Server-a:** - Autentifikacija (SQL i/ili Entra ID) -- Dodeljeni upravljani identiteti +- Dodeljene upravljane identitete - Mrežna ograničenja - Enkripcija -- Rezervne kopije +- Backup-ovi - … - **Redundancija podataka:** Opcije su lokalne, zonalne, Geo ili Geo-Zona redundantne. -- **Knjiga:** Kriptografski verifikuje integritet podataka, osiguravajući da se svako manipulisanje otkrije. Korisno za finansijske, medicinske i bilo koju organizaciju koja upravlja osetljivim podacima. +- **Knjiga:** Kriptografski verifikuje integritet podataka, osiguravajući da se svako neovlašćeno menjanje otkrije. Korisno za finansijske, medicinske i svaku organizaciju koja upravlja osetljivim podacima. -SQL baza podataka može biti deo **elastic Pool**. Elastic pool-ovi su isplativo rešenje za upravljanje više baza podataka deljenjem konfigurisivih računarskih (eDTUs) i skladišnih resursa među njima, sa cenama zasnovanim isključivo na dodeljenim resursima, a ne na broju baza podataka. +SQL baza podataka može biti deo **elastičnog bazena**. Elastični bazeni su isplativo rešenje za upravljanje više baza podataka deljenjem konfigurisivih računarskih (eDTUs) i skladišnih resursa među njima, pri čemu se cena zasniva isključivo na dodeljenim resursima, a ne na broju baza podataka. -#### Azure SQL Bezbednost na nivou kolona (Maskiranje) & Bezbednost na nivou redova +#### Azure SQL Column Level Security (Masking) & Row Level Security -**Dinamičko** maskiranje podataka Azure SQL je funkcija koja pomaže **zaštiti osetljivih informacija skrivajući ih** od neovlašćenih korisnika. Umesto da menja stvarne podatke, dinamički maskira prikazane podatke, osiguravajući da su osetljivi detalji poput brojeva kreditnih kartica zamagljeni. +**Dinamičko** maskiranje podataka **Azure SQL** je funkcija koja pomaže **u zaštiti osetljivih informacija skrivajući ih** od neovlašćenih korisnika. Umesto da menja stvarne podatke, dinamički maskira prikazane podatke, osiguravajući da su osetljivi detalji poput brojeva kreditnih kartica zamagljeni. -**Dinamičko maskiranje podataka** utiče na sve korisnike osim onih koji su nemaskirani (ti korisnici moraju biti navedeni) i administratore. Ima opciju konfiguracije koja specificira koji SQL korisnici su izuzeti od dinamičkog maskiranja podataka, pri čemu su **administratori uvek isključeni**. +**Dinamičko maskiranje podataka** utiče na sve korisnike osim onih koji su nemaskirani (ti korisnici moraju biti naznačeni) i administratore. Ima opciju konfiguracije koja specificira koji SQL korisnici su izuzeti od dinamičkog maskiranja podataka, pri čemu su **administratori uvek isključeni**. -**Azure SQL Bezbednost na nivou redova (RLS)** je funkcija koja **kontroliše koje redove korisnik može da vidi ili menja**, osiguravajući da svaki korisnik vidi samo podatke relevantne za njega. Kreiranjem bezbednosnih politika sa filterima ili blok predikatom, organizacije mogu primeniti fino podešenu kontrolu pristupa na nivou baze podataka. +**Azure SQL Row Level Security (RLS)** je funkcija koja **kontroliše koje redove korisnik može da vidi ili menja**, osiguravajući da svaki korisnik vidi samo podatke relevantne za njega. Kreiranjem sigurnosnih politika sa filtrima ili blok predikatom, organizacije mogu primeniti preciznu kontrolu pristupa na nivou baze podataka. ### Azure SQL Managed Instance -**Azure SQL Managed Instances** su za veće, celokupne SQL Server instance. Pruža skoro 100% kompatibilnost sa najnovijim SQL Server on-premises (Enterprise Edition) Database Engine, koji pruža nativnu implementaciju virtuelne mreže (VNet) koja rešava uobičajene bezbednosne brige, i poslovni model povoljan za on-premises SQL Server kupce. +**Azure SQL Managed Instances** su za veće razmere, celokupne implementacije SQL Server instance. Pruža skoro 100% kompatibilnost sa najnovijim SQL Server-om na lokaciji (Enterprise Edition) Database Engine, koji pruža nativnu implementaciju virtuelne mreže (VNet) koja rešava uobičajene sigurnosne probleme, i poslovni model povoljan za kupce SQL Server-a na lokaciji. -### Azure SQL Virtuelne Mašine +### Azure SQL Virtual Machines -**Azure SQL Virtuelne Mašine** omogućavaju **kontrolu operativnog sistema** i SQL Server instance, jer će VM biti pokrenut u VM usluzi koja pokreće SQL server. +**Azure SQL Virtual Machines** omogućava **kontrolu operativnog sistema** i SQL Server instance, jer će VM biti pokrenut u VM servisu koji pokreće SQL server. -Kada se kreira SQL Virtuelna Mašina, moguće je **izabrati sve postavke VM-a** (kao što je prikazano u lekciji o VM-ima) koji će hostovati SQL server. -- To znači da će VM pristupati nekim VNet-ovima, može imati **priključene upravljane identitete**, može imati montirane deljene foldere… što čini **pivotiranje sa SQL** na VM veoma zanimljivim. +Kada se kreira SQL Virtual Machine, moguće je **izabrati sve postavke VM-a** (kao što je prikazano u lekciji o VM-ima) koji će hostovati SQL server. +- To znači da će VM pristupati nekim VNet-ovima, može imati **pridružene upravljane identitete**, može imati montirane deljene foldere… što čini **pivotiranje sa SQL** na VM veoma zanimljivim. - Štaviše, moguće je konfigurisati ID aplikacije i tajnu da **omogući SQL-u pristup određenom ključnom trezoru**, koji može sadržati osetljive informacije. -Takođe je moguće konfigurisati stvari poput **automatskih SQL ažuriranja**, **automatskih rezervnih kopija**, **Entra ID autentifikacije** i većine funkcija drugih SQL usluga. +Takođe je moguće konfigurisati stvari poput **automatskih SQL ažuriranja**, **automatskih backup-a**, **Entra ID autentifikacije** i većine funkcija drugih SQL usluga. ## Enumeration @@ -304,7 +330,7 @@ sqlcmd -S .database.windows.net -U -P