mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md']
This commit is contained in:
@@ -9,9 +9,9 @@ Azure SQL to rodzina zarządzanych, bezpiecznych i inteligentnych produktów, kt
|
||||
Azure SQL składa się z czterech głównych ofert:
|
||||
|
||||
1. **Azure SQL Server**: Serwer jest potrzebny do **wdrażania i zarządzania** bazami danych SQL Server.
|
||||
2. **Azure SQL Database**: To **w pełni zarządzana usługa bazy danych**, która pozwala na hostowanie indywidualnych baz danych w chmurze Azure.
|
||||
2. **Azure SQL Database**: To **w pełni zarządzana usługa bazy danych**, która pozwala na hostowanie pojedynczych baz danych w chmurze Azure.
|
||||
3. **Azure SQL Managed Instance**: To rozwiązanie dla większych wdrożeń w skali całej instancji SQL Server.
|
||||
4. **Azure SQL Server na maszynach wirtualnych Azure**: To najlepsze rozwiązanie dla architektur, w których chcesz **kontrolować system operacyjny** i instancję SQL Server.
|
||||
4. **Azure SQL Server na maszynach wirtualnych Azure**: To najlepsze rozwiązanie dla architektur, w których chcesz **mieć kontrolę nad systemem operacyjnym** i instancją SQL Server.
|
||||
|
||||
### Funkcje zabezpieczeń SQL Server
|
||||
|
||||
@@ -28,7 +28,7 @@ Azure SQL składa się z czterech głównych ofert:
|
||||
- **Uwierzytelnianie zarówno SQL, jak i Microsoft Entra**: Tradycyjne uwierzytelnianie SQL z nazwą użytkownika i hasłem obok Microsoft Entra.
|
||||
- **Tylko uwierzytelnianie SQL**: Zezwala tylko na dostęp za pośrednictwem użytkowników bazy danych.
|
||||
|
||||
Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL, należy wskazać użytkownika administracyjnego (nazwa użytkownika + hasło), a jeśli wybrano uwierzytelnianie Entra ID, należy również wskazać przynajmniej jednego użytkownika z dostępem administracyjnym.
|
||||
Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL, należy wskazać użytkownika administracyjnego (nazwa użytkownika + hasło), a jeśli wybrano uwierzytelnianie Entra ID, należy również wskazać przynajmniej jednego zasadę z dostępem administracyjnym.
|
||||
|
||||
**Szyfrowanie:**
|
||||
|
||||
@@ -36,15 +36,41 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
|
||||
- Jak zawsze, domyślnie używany jest zarządzany klucz Azure, ale można również użyć klucza szyfrowania zarządzanego przez klienta (CMEK).
|
||||
**Zarządzane tożsamości:**
|
||||
|
||||
- Możliwe jest przypisanie systemowych i użytkownikowych zarządzanych tożsamości.
|
||||
- Możliwe jest przypisanie zarządzanych tożsamości systemowych i użytkowników.
|
||||
- Używane do uzyskiwania dostępu do klucza szyfrowania (jeśli używany jest CMEK) i innych usług z baz danych.
|
||||
- Aby zobaczyć przykłady usług Azure, które można uzyskać z bazy danych, sprawdź [tę stronę dokumentacji](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql).
|
||||
- Jeśli przypisano więcej niż jedną UMI, możliwe jest wskazanie domyślnej do użycia.
|
||||
- Możliwe jest skonfigurowanie tożsamości klienta federacyjnego do dostępu między tenantami.
|
||||
|
||||
Niektóre polecenia do uzyskiwania informacji wewnątrz magazynu blob z bazy danych SQL:
|
||||
```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:**
|
||||
|
||||
- Przydatny do „łagodzenia potencjalnych luk w bazach danych i wykrywania anomalii”
|
||||
- Porozmawiamy o Defenderze w osobnej lekcji (może być włączony w kilku innych usługach Azure)
|
||||
- Przydatny do „łagodzenia potencjalnych luk w bazach danych oraz wykrywania anomalii”
|
||||
- Porozmawiamy o Defenderze w osobnej lekcji (można go włączyć w kilku innych usługach Azure)
|
||||
|
||||
**Kopie zapasowe:**
|
||||
- Częstotliwość tworzenia kopii zapasowych jest zarządzana w politykach retencji.
|
||||
@@ -54,48 +80,48 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
|
||||
|
||||
## Azure SQL Database
|
||||
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma bazy danych jako usługa (PaaS)**, która zapewnia skalowalne i bezpieczne rozwiązania relacyjnych baz danych. Zbudowana jest na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma baz danych jako usługa (PaaS)**, która oferuje skalowalne i bezpieczne rozwiązania relacyjnych baz danych. Jest zbudowana na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
|
||||
Aby utworzyć bazę danych SQL, należy wskazać serwer SQL, na którym będzie hostowana.
|
||||
|
||||
### Funkcje zabezpieczeń bazy danych SQL
|
||||
|
||||
- **Zawsze aktualna**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje i poprawki.
|
||||
- **Zawsze aktualna**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje oraz poprawki.
|
||||
- **Dziedziczone funkcje zabezpieczeń SQL Server:**
|
||||
- Uwierzytelnianie (SQL i/lub Entra ID)
|
||||
- Przypisane zarządzane tożsamości
|
||||
- Przypisane tożsamości zarządzane
|
||||
- Ograniczenia sieciowe
|
||||
- Szyfrowanie
|
||||
- Kopie zapasowe
|
||||
- …
|
||||
- **Redundancja danych:** Opcje to lokalna, strefowa, geograficzna lub geograficzno-strefowa.
|
||||
- **Redundancja danych:** Opcje to lokalna, strefowa, Geo lub Geo-Zone redundant.
|
||||
- **Księga:** Kryptograficznie weryfikuje integralność danych, zapewniając, że wszelkie manipulacje są wykrywane. Przydatne dla finansów, medycyny i każdej organizacji zarządzającej wrażliwymi danymi.
|
||||
|
||||
Baza danych SQL może być częścią **elastycznego zbioru**. Elastyczne zbiory to opłacalne rozwiązanie do zarządzania wieloma bazami danych poprzez dzielenie konfigurowalnych zasobów obliczeniowych (eDTUs) i pamięci masowej między nimi, z ceną opartą wyłącznie na przydzielonych zasobach, a nie na liczbie baz danych.
|
||||
Baza danych SQL może być częścią **elastycznego zbioru**. Elastyczne zbiory to opłacalne rozwiązanie do zarządzania wieloma bazami danych poprzez dzielenie konfigurowalnych zasobów obliczeniowych (eDTUs) i pamięci masowej, z ceną opartą wyłącznie na przydzielonych zasobach, a nie na liczbie baz danych.
|
||||
|
||||
#### Azure SQL Column Level Security (Maskowanie) & Row Level Security
|
||||
#### Azure SQL Column Level Security (Masking) & Row Level Security
|
||||
|
||||
**Dynamiczne** maskowanie danych Azure SQL to funkcja, która pomaga **chronić wrażliwe informacje, ukrywając je** przed nieautoryzowanymi użytkownikami. Zamiast zmieniać rzeczywiste dane, dynamicznie maskuje wyświetlane dane, zapewniając, że wrażliwe szczegóły, takie jak numery kart kredytowych, są ukryte.
|
||||
**Dynamiczne** maskowanie danych w **Azure SQL** to funkcja, która pomaga **chronić wrażliwe informacje, ukrywając je** przed nieautoryzowanymi użytkownikami. Zamiast zmieniać rzeczywiste dane, dynamicznie maskuje wyświetlane dane, zapewniając, że wrażliwe szczegóły, takie jak numery kart kredytowych, są zasłonięte.
|
||||
|
||||
**Dynamiczne maskowanie danych** dotyczy wszystkich użytkowników, z wyjątkiem tych, którzy są odmaskowani (ci użytkownicy muszą być wskazani) oraz administratorów. Posiada opcję konfiguracji, która określa, którzy użytkownicy SQL są zwolnieni z dynamicznego maskowania danych, przy czym **administratorzy są zawsze wyłączeni**.
|
||||
|
||||
**Azure SQL Row Level Security (RLS)** to funkcja, która **kontroluje, które wiersze użytkownik może przeglądać lub modyfikować**, zapewniając, że każdy użytkownik widzi tylko dane istotne dla niego. Tworząc polityki zabezpieczeń z filtrami lub predykatami blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
|
||||
**Azure SQL Row Level Security (RLS)** to funkcja, która **kontroluje, które wiersze użytkownik może przeglądać lub modyfikować**, zapewniając, że każdy użytkownik widzi tylko dane istotne dla niego. Tworząc polityki zabezpieczeń z predykatami filtrującymi lub blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instances** są przeznaczone dla większych wdrożeń w skali całej instancji SQL Server. Zapewnia niemal 100% zgodności z najnowszym SQL Server w wersji lokalnej (edycja Enterprise), co zapewnia natywną implementację sieci wirtualnej (VNet), która odpowiada na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
**Azure SQL Managed Instances** są przeznaczone do większych wdrożeń w skali całej instancji SQL Server. Oferuje niemal 100% zgodności z najnowszym silnikiem bazy danych SQL Server w wersji lokalnej (Enterprise Edition), który zapewnia natywną implementację wirtualnej sieci (VNet), odpowiadającą na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Virtual Machines** pozwala na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ maszyna wirtualna będzie uruchamiana w usłudze VM działającej na serwerze SQL.
|
||||
**Azure SQL Virtual Machines** pozwala na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ VM będzie uruchamiana w usłudze VM działającej na serwerze SQL.
|
||||
|
||||
Gdy tworzona jest maszyna wirtualna SQL, możliwe jest **wybranie wszystkich ustawień VM** (jak pokazano w lekcji o VM), które będą hostować serwer SQL.
|
||||
- Oznacza to, że VM będzie uzyskiwać dostęp do niektórych VNet(ów), może mieć **przypisane zarządzane tożsamości**, może mieć zamontowane udziały plików… co czyni **przechodzenie z SQL** do VM bardzo interesującym.
|
||||
- Ponadto możliwe jest skonfigurowanie identyfikatora aplikacji i sekretu, aby **zezwolić SQL na dostęp do konkretnego skarbca kluczy**, który może zawierać wrażliwe informacje.
|
||||
- Oznacza to, że VM będzie miała dostęp do niektórych VNet(ów), może mieć **przypisane tożsamości zarządzane**, może mieć zamontowane udziały plików… co czyni **przechodzenie z SQL** do VM bardzo interesującym.
|
||||
- Ponadto możliwe jest skonfigurowanie identyfikatora aplikacji i sekretu, aby **umożliwić SQL dostęp do konkretnego skarbca kluczy**, który może zawierać wrażliwe informacje.
|
||||
|
||||
Możliwe jest również skonfigurowanie takich rzeczy jak **automatyczne aktualizacje SQL**, **automatyczne kopie zapasowe**, **uwierzytelnianie Entra ID** i większość funkcji innych usług SQL.
|
||||
Możliwe jest również skonfigurowanie takich rzeczy jak **automatyczne aktualizacje SQL**, **automatyczne kopie zapasowe**, **uwierzytelnianie Entra ID** oraz większość funkcji innych usług SQL.
|
||||
|
||||
## Enumeration
|
||||
## Enumeracja
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
@@ -304,7 +330,7 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
|
||||
### Utrzymywanie
|
||||
|
||||
{{#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