mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md']
This commit is contained in:
@@ -17,7 +17,7 @@ Azure SQL, dört ana teklifi içerir:
|
||||
|
||||
**Ağ erişimi:**
|
||||
|
||||
- Kamu uç noktası (belirli ağlara erişimi sınırlayabilir).
|
||||
- Kamu uç noktası (erişimi belirli ağlarla sınırlayabilir).
|
||||
- Özel uç noktalar.
|
||||
- Alan adlarına dayalı bağlantıları kısıtlamak da mümkündür.
|
||||
- Azure hizmetlerinin erişimine izin vermek de mümkündür (örneğin, portalda Sorgu düzenleyicisini kullanmak veya bir Azure VM'nin bağlanmasına izin vermek için).
|
||||
@@ -26,20 +26,20 @@ Azure SQL, dört ana teklifi içerir:
|
||||
|
||||
- Microsoft **Entra-sadece** kimlik doğrulaması: Hizmete erişimi olacak Entra ilkelerini belirtmeniz gerekir.
|
||||
- **Hem SQL hem de Microsoft Entra** kimlik doğrulaması: Kullanıcı adı ve şifre ile birlikte geleneksel SQL kimlik doğrulaması.
|
||||
- **Sadece SQL** kimlik doğrulaması: Sadece veritabanı kullanıcıları aracılığıyla erişime izin verin.
|
||||
- **Sadece SQL** kimlik doğrulaması: Erişimi yalnızca veritabanı kullanıcıları aracılığıyla sağlamak.
|
||||
|
||||
Herhangi bir SQL kimlik doğrulamasına izin verilirse, bir yönetici kullanıcısı (kullanıcı adı + şifre) belirtilmelidir ve Entra ID kimlik doğrulaması seçilirse, en az bir yönetici erişimine sahip ilkenin de belirtilmesi gerekir.
|
||||
|
||||
**Şifreleme:**
|
||||
|
||||
- “Şeffaf veri şifrelemesi” olarak adlandırılır ve veritabanlarını, yedeklemeleri ve dinlenme halindeki günlükleri şifreler.
|
||||
- Her zamanki gibi, varsayılan olarak bir Azure yönetilen anahtar kullanılır, ancak bir müşteri yönetilen şifreleme anahtarı (CMEK) de kullanılabilir.
|
||||
- Her zamanki gibi, varsayılan olarak bir Azure yönetilen anahtar kullanılır, ancak bir müşteri yönetilen şifreleme anahtarı (CMEK) da kullanılabilir.
|
||||
**Yönetilen Kimlikler:**
|
||||
|
||||
- Sistem ve kullanıcı yönetilen MI'ler atamak mümkündür.
|
||||
- Sistem ve kullanıcı yönetilen MI'lerin atanması mümkündür.
|
||||
- Şifreleme anahtarına (CMEK kullanılıyorsa) ve veritabanlarından diğer hizmetlere erişmek için kullanılır.
|
||||
- Veritabanından erişilebilecek Azure hizmetlerinin bazı örnekleri için [bu belge sayfasına](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) bakın.
|
||||
- Birden fazla UMI atandığında, kullanılacak varsayılan olanı belirtmek mümkündür.
|
||||
- Birden fazla UMI atanmışsa, kullanılacak varsayılan olanı belirtmek mümkündür.
|
||||
- Çapraz kiracı erişimi için bir federasyonlu istemci kimliği yapılandırmak mümkündür.
|
||||
|
||||
Bir SQL veritabanından bir blob depolama içindeki bilgilere erişmek için bazı komutlar:
|
||||
@@ -70,7 +70,7 @@ GO
|
||||
**Microsoft Defender:**
|
||||
|
||||
- Potansiyel veritabanı güvenlik açıklarını azaltmak ve anormal aktiviteleri tespit etmek için faydalıdır.
|
||||
- Defender'dan kendi dersimizde bahsedeceğiz (birçok diğer Azure hizmetinde etkinleştirilebilir).
|
||||
- Defender hakkında kendi dersinde konuşacağız (birçok diğer Azure hizmetinde etkinleştirilebilir).
|
||||
|
||||
**Yedeklemeler:**
|
||||
- Yedekleme sıklığı, saklama politikalarında yönetilmektedir.
|
||||
@@ -80,7 +80,7 @@ GO
|
||||
|
||||
## Azure SQL Database
|
||||
|
||||
**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmettir (PaaS)**. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi gereksinimini ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir.
|
||||
**Azure SQL Database**, ölçeklenebilir ve güvenli ilişkisel veritabanı çözümleri sunan **tamamen yönetilen bir veritabanı platformu olarak hizmet (PaaS)**'dir. En son SQL Server teknolojileri üzerine inşa edilmiştir ve altyapı yönetimi gereksinimini ortadan kaldırarak bulut tabanlı uygulamalar için popüler bir seçim haline gelmiştir.
|
||||
|
||||
Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belirtmek gerekmektedir.
|
||||
|
||||
@@ -97,7 +97,7 @@ Bir SQL veritabanı oluşturmak için, barındırılacağı SQL sunucusunu belir
|
||||
- **Veri yedekliliği:** Seçenekler yerel, bölge, Coğrafi veya Coğrafi-Bölge yedekli.
|
||||
- **Defter:** Verilerin bütünlüğünü kriptografik olarak doğrular, herhangi bir müdahalenin tespit edilmesini sağlar. Finansal, tıbbi ve hassas verileri yöneten herhangi bir organizasyon için faydalıdır.
|
||||
|
||||
Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTUs) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil.
|
||||
Bir SQL veritabanı, **esnek Havuz**'un bir parçası olabilir. Esnek havuzlar, birden fazla veritabanını yönetmek için yapılandırılabilir hesaplama (eDTUs) ve depolama kaynaklarını paylaşarak maliyet etkin bir çözüm sunar; fiyatlandırma yalnızca tahsis edilen kaynaklara dayanır, veritabanı sayısına değil.
|
||||
|
||||
#### Azure SQL Sütun Seviyesi Güvenliği (Maskeleme) & Satır Seviyesi Güvenliği
|
||||
|
||||
@@ -105,19 +105,19 @@ Bir SQL veritabanı, **esnek Havuzun** bir parçası olabilir. Esnek havuzlar, b
|
||||
|
||||
**Dinamik Veri Maskelemesi**, maskelemeyen (bu kullanıcılar belirtilmelidir) ve yöneticiler dışındaki tüm kullanıcıları etkiler. Dinamik veri maskelemesinden muaf olan SQL kullanıcılarını belirten bir yapılandırma seçeneği vardır; **yöneticiler her zaman hariçtir**.
|
||||
|
||||
**Azure SQL Satır Seviyesi Güvenliği (RLS)**, bir kullanıcının hangi satırları görüntüleyebileceğini veya değiştirebileceğini **kontrol eden** bir özelliktir; her kullanıcının yalnızca kendileriyle ilgili verileri görmesini sağlar. Filtre veya engelleme yargıları ile güvenlik politikaları oluşturarak, organizasyonlar veritabanı düzeyinde ince ayar erişim uygulayabilirler.
|
||||
**Azure SQL Satır Seviyesi Güvenliği (RLS)**, **bir kullanıcının hangi satırları görüntüleyebileceğini veya değiştirebileceğini kontrol eden** bir özelliktir; her kullanıcının yalnızca kendileriyle ilgili verileri görmesini sağlar. Filtre veya engelleme yargıları ile güvenlik politikaları oluşturarak, organizasyonlar veritabanı düzeyinde ince ayrıntılı erişimi zorlayabilirler.
|
||||
|
||||
### Azure SQL Yönetilen Örnek
|
||||
### Azure SQL Yönetilen Örneği
|
||||
|
||||
**Azure SQL Yönetilen Örnekler**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel sanal ağ (VNet) uygulaması sunar ve yerel SQL Server müşterileri için uygun bir iş modeli sağlar.
|
||||
**Azure SQL Yönetilen Örnekleri**, daha büyük ölçekli, tüm SQL Server örneği kapsamındaki dağıtımlar içindir. En son SQL Server yerel (Enterprise Edition) Veritabanı Motoru ile neredeyse %100 uyumluluk sağlar; bu, yaygın güvenlik endişelerini ele alan yerel sanal ağ (VNet) uygulaması sunar ve yerel SQL Server müşterileri için uygun bir iş modeli sağlar.
|
||||
|
||||
### Azure SQL Sanal Makineleri
|
||||
|
||||
**Azure SQL Sanal Makineleri**, **işletim sistemini** ve SQL Server örneğini kontrol etme imkanı sunar; çünkü bir VM, SQL sunucusunu çalıştıran VM hizmetinde oluşturulacaktır.
|
||||
|
||||
Bir SQL Sanal Makinesi oluşturulduğunda, SQL sunucusunu barındıracak VM'nin **tüm ayarlarını seçmek mümkündür** (VM dersinde gösterildiği gibi).
|
||||
- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin** ona eklenmiş olabileceği, dosya paylaşımlarının bağlanabileceği anlamına gelir... bu da SQL'den VM'ye geçişi oldukça ilginç hale getirir.
|
||||
- Ayrıca, SQL'in belirli bir anahtar kasasına erişimini **sağlamak için bir uygulama kimliği ve sırrı** yapılandırmak mümkündür; bu, hassas bilgileri içerebilir.
|
||||
- Bu, VM'nin bazı VNet'lere erişeceği, **Yönetilen Kimliklerin eklenmiş olabileceği**, dosya paylaşımlarının bağlanabileceği anlamına gelir... bu da SQL'den VM'ye geçişi oldukça ilginç hale getirir.
|
||||
- Ayrıca, SQL'nin belirli bir anahtar kasasına erişmesine **izin vermek için** bir uygulama kimliği ve sırrı yapılandırmak mümkündür; bu, hassas bilgileri içerebilir.
|
||||
|
||||
Ayrıca, **otomatik SQL güncellemeleri**, **otomatik yedeklemeler**, **Entra ID kimlik doğrulaması** ve diğer SQL hizmetlerinin çoğu özelliği gibi şeyleri yapılandırmak da mümkündür.
|
||||
|
||||
@@ -209,7 +209,7 @@ az rest --method get \
|
||||
|
||||
# Get DataMaskingPolicies of a database
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Sql/servers/getstorageserver/databases/masktest/dataMaskingPolicies/Default?api-version=2021-11-01"
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/dataMaskingPolicies/Default?api-version=2021-11-01"
|
||||
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/dataMaskingPolicies/Default/rules?api-version=2021-11-01"
|
||||
@@ -258,7 +258,7 @@ Get-AzSqlVM
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
Ayrıca, veritabanındaki Dinamik Veri Maskesi ve Satır Düzeyi politikalarını listelemek istiyorsanız, sorgulayabilirsiniz:
|
||||
Ayrıca, veritabanındaki Dinamik Veri Maskeleme ve Satır Düzeyi politikalarını listelemek istiyorsanız, sorgulayabilirsiniz:
|
||||
```sql
|
||||
--Enumerates the masked columns
|
||||
SELECT
|
||||
@@ -304,7 +304,7 @@ $Connection.Close()
|
||||
|
||||
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
|
||||
```
|
||||
Veritabanına erişmek için sqlcmd de kullanabilirsiniz. Sunucunun genel bağlantılara izin verip vermediğini bilmek önemlidir `az sql server show --name <server-name> --resource-group <resource-group>`, ayrıca güvenlik duvarı kuralının IP'mizin erişimine izin verip vermediğini de kontrol etmelisiniz:
|
||||
Veritabanına erişmek için sqlcmd de kullanabilirsiniz. Sunucunun kamu bağlantılarına izin verip vermediğini bilmek önemlidir `az sql server show --name <server-name> --resource-group <resource-group>`, ayrıca güvenlik duvarı kuralının IP'mizin erişmesine izin verip vermediğini de kontrol etmelisiniz:
|
||||
```bash
|
||||
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
|
||||
```
|
||||
@@ -321,7 +321,7 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
|
||||
../az-privilege-escalation/az-sql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Sonrası Sömürü
|
||||
## Sonrası İstismar
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
|
||||
Reference in New Issue
Block a user