From a4f8666c738b4dd4b20626c43f97eaefacc3ad26 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 13 Jul 2026 14:07:28 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-sql. --- .../azure-security/az-services/az-sql.md | 125 +++++++++--------- 1 file changed, 64 insertions(+), 61 deletions(-) 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 f54f38a53..987cdaf40 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -4,45 +4,47 @@ ## Azure SQL -Azure SQL je porodica upravljanih, sigurnih i inteligentnih proizvoda koji koriste **SQL Server bazu podataka u Azure cloud-u**. To znači da ne morate brinuti o fizičkoj administraciji vaših servera, a možete se fokusirati na upravljanje vašim podacima. +Azure SQL je porodica upravljanih, bezbednih i inteligentnih proizvoda koji koriste **SQL Server database engine u Azure cloud-u**. To znači da ne morate da brinete o fizičkoj administraciji svojih servera, i možete da se fokusirate na upravljanje svojim podacima. 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 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. +1. **Azure SQL Server**: Server je potreban za **deployment i management** SQL Server baza podataka. +2. **Azure SQL Database**: Ovo je **fully-managed database service**, koja vam omogućava da hostujete pojedinačne baze podataka u Azure cloud-u. +3. **Azure SQL Managed Instance**: Ovo je za veće sisteme, celokupne SQL Server instance-scoped deployments. +4. **Azure SQL Server on Azure VMs**: Ovo je najbolje za arhitekture gde želite **control over the operating system **i SQL Server instancu. -### SQL Server Bezbednosne Karakteristike +### SQL Server Security Features -**Mrežni pristup:** +**Network access:** -- 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 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). +- Public endpoint (može da ograniči pristup na određene mreže). +- Private endpoints. +- Takođe je moguće ograničiti konekcije na osnovu domain names. +- Takođe je moguće dozvoliti Azure services da pristupe (na primer, da bi se koristio Query editor u portalu ili da bi se omogućilo Azure VM-u da se poveže). +- Ako je na SQL Server-u podešeno *Allow Azure services and resources to access this server* na "Enabled", Azure će automatski kreirati skriveno firewall pravilo koje dozvoljava sav network traffic koji dolazi iz Azure da se poveže na SQL Server — uključujući resurse iz bilo kog tenant-a. +- To znači da, ako dobijete validne SQL credentials, možete da se povežete na žrtvin Azure SQL Server sa Azure VM-a unutar sopstvenog tenant-a pod kontrolom napadača. [MS docs to objašnjavaju](https://learn.microsoft.com/en-us/azure/azure-sql/database/network-access-controls-overview?view=azuresql#allow-azure-services) -**Metode autentifikacije:** +**Authentication Methods:** -- Microsoft **Entra-only** autentifikacija: Potrebno je naznačiti Entra principe koji će imati pristup usluzi. -- **Obe SQL i Microsoft Entra** autentifikacije: Tradicionalna SQL autentifikacija sa korisničkim imenom i lozinkom uz Microsoft Entra. -- **Samo SQL** autentifikacija: Dozvoliti pristup samo putem korisnika baze podataka. +- Microsoft **Entra-only** authentication: Morate da navedete Entra principals koji će imati pristup servisu. +- **Both SQL and Microsoft Entra** authentication: Tradicionalna SQL autentikacija sa username i password, zajedno sa Microsoft Entra. +- **Only SQL** authentication: Dozvoljava pristup samo preko database users. -Napomena da ako je bilo koja SQL autentifikacija dozvoljena, potrebno je naznačiti admin korisnika (korisničko ime + lozinka) i ako je izabrana Entra ID autentifikacija, takođe je potrebno naznačiti barem jednog principa sa admin pristupom. +Imajte na umu da, ako je dozvoljena bilo koja SQL auth, mora da bude naveden admin user (username + password), a ako je izabran Entra ID auth, takođe je potrebno navesti bar jedan principal sa admin access. -**Enkripcija:** +**Encryption:** -- 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:** +- Zove se “Transparent data encryption” i enkriptuje databases, backups i logs at rest. +- Kao i uvek, po default-u se koristi Azure managed key, ali može da se koristi i customer managed encryption key (CMEK). +**Managed Identities:** -- Moguće je dodeliti sistemske i korisnički upravljane MIs. -- Koristi se za pristup ključu za enkripciju (ako se koristi CMEK) i drugim uslugama iz baza podataka. -- 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 naznačiti podrazumevanu koju koristiti. -- Moguće je konfigurisati federisanu identitet klijenta za pristup između zakupaca. +- Moguće je dodeliti system i user managed MIs. +- Koriste se za pristup encryption key-u (ako se koristi CMEK) i drugim servisima iz baza podataka. +- Za neke primere Azure servisa kojima može da se pristupi iz baze pogledajte [ovu stranicu docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) +- Ako je dodeljeno više od jednog UMI-ja, moguće je navesti koji je defaultni za korišćenje. +- Moguće je konfiguristi federated client identity za cross-tenant access. -Neki komandi za pristup informacijama unutar blob storage-a iz SQL baze podataka: +Neke komande za pristup info unutar blob storage iz SQL baze: ```sql -- Create a credential for the managed identity CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] @@ -69,57 +71,58 @@ GO ``` **Microsoft Defender:** -- Korisno za “ublažavanje potencijalnih ranjivosti baze podataka i otkrivanje anomalnih aktivnosti” -- O Defenderu ćemo govoriti u svojoj lekciji (može se omogućiti u nekoliko drugih Azure usluga) +- Korisno za “mitigating potential database vulnerabilities, and detecting anomalous activities” +- Pričaćemo o Defender-u u posebnoj lekciji (može da bude omogućen u nekoliko drugih Azure servisa) -**Backup-ovi:** -- Učestalost backup-a se upravlja u politikama zadržavanja. +**Backups:** +- Frekvencija backup-a se upravlja u retention policies. -**Obrisane baze podataka:** -- Moguće je obnoviti DB-ove koji su obrisani iz postojećih backup-a. +**Deleted databases:** +- Moguće je restore-ovati DBs koje su obrisane iz postojećih backup-a. ## Azure SQL Database -**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. +**Azure SQL Database** je **fully managed database platform as a service (PaaS)** koja pruža skalabilna i bezbedna relacijska database rešenja. Izgrađena je na najnovijim SQL Server tehnologijama i eliminiše potrebu za infrastructure management-om, što je čini popularnim izborom za cloud-based aplikacije. -Da bi se kreirala SQL baza podataka, potrebno je naznačiti SQL server na kojem će biti hostovana. +Da bi se kreirala SQL database potrebno je navesti SQL server na kojem će biti hostovana. ### SQL Database Security Features -- **Uvek ažurirano**: Radi na najnovijoj stabilnoj verziji SQL Server-a i automatski prima nove funkcije i zakrpe. -- **Nasleđene sigurnosne funkcije SQL Server-a:** -- Autentifikacija (SQL i/ili Entra ID) -- Dodeljene upravljane identitete -- Ograničenja mreže -- Enkripcija -- Backup-ovi +- **Always Up-to-Date**: Radi na najnovijoj stabilnoj verziji SQL Server-a i automatski prima nove features i patches. +- **Inherited SQL Server security features:** +- Authentication (SQL and/or Entra ID) +- Assigned Managed Identities +- Network restrictions +- Encryption +- Backups - … -- **Redundancija podataka:** Opcije su lokalne, zonalne, Geo ili Geo-Zona redundantne. -- **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. +- **Data redundancy:** Opcije su local, zone, Geo ili Geo-Zone redundant. +- **Ledger:** Kriptografski verifikuje integritet podataka, obezbeđujući da se svako tampering otkrije. Korisno za finansijske, medicinske i bilo koje organization koje upravlja sensitive data. -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. + +SQL database može biti deo **elastic Pool**. Elastic pools su cost-effective rešenje za upravljanje više databases deljenjem configurable compute (eDTUs) i storage resources među njima, uz cenu zasnovanu isključivo na dodeljenim resursima, a ne na broju databases. #### Azure SQL Column Level Security (Masking) & Row Level Security -**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. +**Azure SQL's dynamic** data masking je feature koji pomaže da **zaštiti sensitive information tako što je skriva** od unauthorized users. Umesto menjanja stvarnih podataka, on dinamički maskira prikazane podatke, obezbeđujući da se osetljivi detalji kao što su brojevi kreditnih kartica prikriju. -**Dinamičko maskiranje podataka** utiče na sve korisnike osim onih koji su otkriveni (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**. +**Dynamic Data Masking** utiče na sve users osim onih koji su unmasked (ovi users moraju biti navedeni) i administrators. Ima konfiguracionu opciju koja određuje koji SQL users su izuzeti iz dynamic data masking, pri čemu su **administrators uvek isključeni**. -**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 Row Level Security (RLS)** je feature koji **kontroliše koje rows user može da vidi ili menja**, obezbeđujući da svaki user vidi samo podatke relevantne za njega. Kreiranjem security policies sa filter ili block predicates, organization mogu da primene fine-grained access na nivou database. ### Azure SQL Managed Instance -**Azure SQL Managed Instances** su za veće razmere, 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 sigurnosne probleme, i poslovni model povoljan za on-premises SQL Server korisnike. +**Azure SQL Managed Instances** su za veće scale, kompletne SQL Server instance-scoped deployments. Pruža skoro 100% kompatibilnost sa najnovijim SQL Server on-premises (Enterprise Edition) Database Engine-om, što obezbeđuje native virtual network (VNet) implementation koja rešava uobičajene security concerns, i business model povoljan za on-premises SQL Server customers. ### Azure SQL Virtual Machines -**Azure SQL Virtual Machines** omogućavaju **kontrolu operativnog sistema** i SQL Server instance, jer će VM biti pokrenut u VM servisu koji pokreće SQL server. +**Azure SQL Virtual Machines** omogućavaju da se **kontroliše operating system** i SQL Server instance, jer će VM biti spawn-ovan u VM servisu koji pokreće SQL server. -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. +Kada se kreira SQL Virtual Machine moguće je **izabrati sve settings VM-a** (kao što je prikazano u lekciji o VM-u) koji će hostovati SQL server. +- To znači da će VM pristupati nekim VNet(s), može imati **Managed Identities attached** na njega, može imati montirane file shares… što čini **pivoting from the SQL** ka VM-u super interesantnim. +- Pored toga, moguće je konfigurisati app id i secret da bi se **omogućilo SQL-u da pristupi određenom key vault-u**, koji može sadržati sensitive info. -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. +Takođe je moguće konfigurisati stvari kao što su **automatic SQL updates**, **automatic backups**, **Entra ID authentication** i većinu features drugih SQL servisa. ## Enumeration @@ -258,7 +261,7 @@ Get-AzSqlVM {{#endtab}} {{#endtabs}} -Pored toga, ako želite da enumerišete Dynamic Data Masking i Row Level politike unutar baze podataka, možete izvršiti upit: +Dodatno, ako želite da enumerišete Dynamic Data Masking i Row Level policies unutar baze podataka, možete da izvršite upit: ```sql --Enumerates the masked columns SELECT @@ -283,9 +286,9 @@ JOIN sys.security_predicates AS sp2 ON sp.object_id = sp2.object_id; ``` -### Povezivanje i izvršavanje SQL upita +### Povezivanje i pokretanje SQL upita -Možete pronaći string za povezivanje (koji sadrži akreditive) iz primera [enumerating an Az WebApp](az-app-services.md): +Možete pronaći connection string (koji sadrži credentials) iz primera [enumerating an Az WebApp](az-app-services.md): ```bash function invoke-sql{ param($query) @@ -304,30 +307,30 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -Možete takođe koristiti sqlcmd za pristup bazi podataka. Važno je znati da li server dozvoljava javne konekcije `az sql server show --name --resource-group `, kao i da li pravilo vatrozida dozvoljava našem IP-u pristup: +Takođe možete da koristite sqlcmd za pristup bazi podataka. Važno je znati da li server dozvoljava javne konekcije `az sql server show --name --resource-group `, kao i da li firewall rule dopušta da naš IP pristupi: ```bash sqlcmd -S .database.windows.net -U -P -d ``` -## Reference +## References - [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql) -## Eskalacija privilegija +## Privilege Escalation {{#ref}} ../az-privilege-escalation/az-sql-privesc.md {{#endref}} -## Post Eksploatacija +## Post Exploitation {{#ref}} ../az-post-exploitation/az-sql-post-exploitation.md {{#endref}} -### Postojanost +### Persistence {{#ref}} ../az-persistence/az-sql-persistence.md