mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md']
This commit is contained in:
@@ -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 <sql-server>.database.windows.net -U <server-user> -P <server-passwork
|
||||
### Postojanost
|
||||
|
||||
{{#ref}}
|
||||
../az-persistence/az-sql-persistance.md
|
||||
../az-persistence/az-sql-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user