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 f6e20c7b1..9e48ae763 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -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 .database.windows.net -U -P