From 26c4e7eda3d7800968ada9084978fd968ff9ed46 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 13 Jul 2026 14:07:42 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-sql. --- .../azure-security/az-services/az-sql.md | 129 +++++++++--------- 1 file changed, 66 insertions(+), 63 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 82298ac31..98854123d 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 is 'n familie van bestuurde, veilige en intelligente produkte wat die **SQL Server-databasisengine in die Azure-wolk** gebruik. Dit beteken jy hoef nie bekommerd te wees oor die fisiese administrasie van jou bedieners nie, en jy kan fokus op die bestuur van jou data. +Azure SQL is ’n familie van bestuurde, veilige en intelligente produkte wat die **SQL Server database engine in the Azure cloud** gebruik. Dit beteken jy hoef jou nie oor die fisiese administrasie van jou servers te bekommer nie, en jy kan fokus op die bestuur van jou data. Azure SQL bestaan uit vier hoofaanbiedinge: -1. **Azure SQL Server**: 'n bediener is nodig vir die **ontplooiing en bestuur** van SQL Server-databasisse. -2. **Azure SQL Database**: Dit is 'n **volledig bestuurde databasisdiens**, wat jou toelaat om individuele databasisse in die Azure-wolk te huisves. -3. **Azure SQL Managed Instance**: Dit is vir groter skaal, hele SQL Server-instantie-geskepte ontplooiings. -4. **Azure SQL Server op Azure VMs**: Dit is die beste vir argitekture waar jy **beheer oor die bedryfstelsel** en SQL Server-instantie wil hê. +1. **Azure SQL Server**: ’n server is nodig vir die **deployment and management** van SQL Server databases. +2. **Azure SQL Database**: Dit is ’n **volledig-bestuurde database service**, wat jou toelaat om individuele databases in die Azure cloud te host. +3. **Azure SQL Managed Instance**: Dit is vir groter skaal, volledige SQL Server instance-scoped deployments. +4. **Azure SQL Server on Azure VMs**: Dit is die beste vir architectures waar jy **control over the operating system **en SQL Server instance wil hê. -### SQL Server Sekuriteitskenmerke +### SQL Server Security Features -**Netwerktoegang:** +**Network access:** -- Publieke eindpunt (kan toegang tot spesifieke netwerke beperk). -- Privaat eindpunte. -- Dit is ook moontlik om verbindings op grond van domeinnames te beperk. -- Dit is ook moontlik om Azure-dienste toe te laat om toegang te verkry (soos om die Query-redigeerder in die portaal te gebruik of om 'n Azure VM toe te laat om te verbind). +- Public endpoint (kan toegang beperk tot spesifieke networks). +- Private endpoints. +- Dit is ook moontlik om connections te beperk op grond van domain names. +- Dit is ook moontlik om Azure services toe te laat om daartoe toegang te verkry (soos om die Query editor in die portal te gebruik of om ’n Azure VM toe te laat om te connect). +- As ’n SQL Server *Allow Azure services and resources to access this server* op "Enabled" gestel het, sal Azure outomaties ’n hidden firewall rule skep wat alle network traffic van Azure af toelaat om aan die SQL Server te connect — insluitend resources van enige tenant. +- Dit beteken dat as jy geldige SQL credentials verkry, jy vanaf ’n Azure VM binne jou eie attacker‑controlled tenant aan die victim Azure SQL Server kan connect. [The MS docs explains this](https://learn.microsoft.com/en-us/azure/azure-sql/database/network-access-controls-overview?view=azuresql#allow-azure-services) -**Verifikasiemetodes:** +**Authentication Methods:** -- Microsoft **Entra-slegs** verifikasie: Jy moet die Entra-principals aandui wat toegang tot die diens sal hê. -- **Sowel SQL as Microsoft Entra** verifikasie: Tradisionele SQL-verifikasie met gebruikersnaam en wagwoord saam met Microsoft Entra. -- **Slegs SQL** verifikasie: Toegang slegs toelaat via databasisgebruikers. +- Microsoft **Entra-only** authentication: Jy moet die Entra principals aandui wat toegang tot die service sal hê. +- **Both SQL and Microsoft Entra** authentication: Tradisionele SQL authentication met username en password saam met Microsoft Entra. +- **Only SQL** authentication: Laat toegang slegs via database users toe. -Let daarop dat as enige SQL-verifikasie toegelaat word, 'n admin-gebruiker (gebruikersnaam + wagwoord) aangedui moet word, en as Entra ID-verifikasie gekies word, moet daar ook ten minste een principal met admin-toegang aangedui word. +Let daarop dat as enige SQL auth toegelaat word, moet ’n admin user (username + password) aangedui word, en as Entra ID auth gekies word, moet minstens een principal met admin access ook aangedui word. -**Enkripsie:** +**Encryption:** -- Dit word "Deursigtige data-enkripsie" genoem en dit enkripteer databasisse, rugsteun en logs in rus. -- Soos altyd, 'n Azure bestuurde sleutel word standaard gebruik, maar 'n klant bestuurde enkripsiesleutel (CMEK) kan ook gebruik word. -**Bestuurde Identiteite:** +- Dit word “Transparent data encryption” genoem en dit encrypt databases, backups, en logs at rest. +- Soos altyd word ’n Azure managed key by default gebruik, maar ’n customer managed encryption key (CMEK) kan ook gebruik word. +**Managed Identities:** -- Dit is moontlik om stelsel- en gebruiker bestuurde MI's toe te ken. -- Gebruik om toegang tot die enkripsiesleutel te verkry (is 'n CMEK gebruik) en ander dienste van die databasisse. -- Vir 'n paar voorbeelde van die Azure-dienste wat vanaf die databasis toeganklik is, kyk [hierdie bladsy van die dokumentasie](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) -- As meer as een UMI toegeken word, is dit moontlik om die standaard een aan te dui wat gebruik moet word. -- Dit is moontlik om 'n gefedereerde kliëntidentiteit vir kruis-tenant toegang te konfigureer. +- Dit is moontlik om system en user managed MIs toe te ken. +- Gebruik om toegang te verkry tot die encryption key (as ’n CMEK gebruik word) en ander services vanaf die databases. +- Vir ’n paar voorbeelde van die Azure services waartoe vanaf die database toegang verkry kan word, kyk [this page of the docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) +- As meer as een UMI toegewys is, is dit moontlik om die default een om te gebruik aan te dui. +- Dit is moontlik om ’n federated client identity vir cross-tenant access te configure. -Sommige opdragte om inligting binne 'n blob-stoor vanaf 'n SQL-databasis te verkry: +Sommige commands om info binne ’n blob storage vanaf ’n SQL database te access: ```sql -- Create a credential for the managed identity CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] @@ -69,59 +71,60 @@ GO ``` **Microsoft Defender:** -- Nuttig vir “die versagting van potensiële databasis kwesbaarhede, en die opsporing van anomale aktiwiteite” -- Ons sal oor Defender in sy eie les praat (dit kan in verskeie ander Azure dienste geaktiveer word) +- Useful for “mitigating potential database vulnerabilities, and detecting anomalous activities” +- Ons sal oor Defender in sy eie lesing praat (dit kan in verskeie ander Azure-dienste geaktiveer word) **Backups:** -- Die frekwensie van rugsteun word in die retensiebeleide bestuur. +- Backup frequency word in die retention policies bestuur. -**Verwyderde databasisse:** -- Dit is moontlik om DB's wat uit bestaande rugsteun verwyder is, te herstel. +**Deleted databases:** +- Dit is moontlik om DBs te restore wat uit bestaande backups deleted is. ## Azure SQL Database -**Azure SQL Database** is 'n **volledig bestuurde databasisplatform as 'n diens (PaaS)** wat skaalbare en veilige relationele databasisoplossings bied. Dit is gebou op die nuutste SQL Server tegnologieë en elimineer die behoefte aan infrastruktuurbestuur, wat dit 'n gewilde keuse maak vir wolk-gebaseerde toepassings. +**Azure SQL Database** is ’n **fully managed database platform as a service (PaaS)** wat scalable en secure relational database solutions bied. Dit is gebou op die nuutste SQL Server technologies en verwyder die behoefte aan infrastructure management, wat dit ’n gewilde keuse maak vir cloud-based applications. -Om 'n SQL-databasis te skep, is dit nodig om die SQL-server aan te dui waar dit gehoste sal word. +Om ’n SQL database te create, is dit nodig om die SQL server aan te dui waar dit gehost sal word. -### SQL Database Sekuriteitskenmerke +### SQL Database Security Features -- **Altijd Op Datum**: Loop op die nuutste stabiele weergawe van SQL Server en ontvang nuwe kenmerke en patches outomaties. -- **Geërfde SQL Server sekuriteitskenmerke:** -- Verifikasie (SQL en/of Entra ID) -- Toegewyde Bestuurde Identiteite -- Netwerkbeperkings -- Enkripsie -- Rugsteun +- **Always Up-to-Date**: Run op die nuutste stable version van SQL Server en ontvang nuwe features en patches automatisch. +- **Inherited SQL Server security features:** +- Authentication (SQL and/or Entra ID) +- Assigned Managed Identities +- Network restrictions +- Encryption +- Backups - … -- **Data redundansie:** Opsies is plaaslik, sone, Geo of Geo-Zone redundante. -- **Ledger:** Dit verifieer die integriteit van data cryptografies, wat verseker dat enige vervalsing opgespoor word. Nuttig vir finansiële, mediese en enige organisasie wat sensitiewe data bestuur. +- **Data redundancy:** Options is local, zone, Geo of Geo-Zone redundant. +- **Ledger:** Dit verifieer cryptographically die integrity van data, en verseker dat enige tampering gedetecteer word. Useful to financial, medical en enige organization wat sensitive data bestuur. -'n SQL-databasis kan deel wees van 'n **elastiese Poel**. Elastiese poele is 'n kostedoeltreffende oplossing vir die bestuur van verskeie databasisse deur konfigureerbare rekenaar (eDTUs) en stoorhulpbronne onder hulle te deel, met prysbepaling wat slegs gebaseer is op die hulpbronne wat toegeken is eerder as die aantal databasisse. -#### Azure SQL Kolomvlak Sekuriteit (Maskering) & Ryvlak Sekuriteit +’n SQL database could be part of ’n **elastic Pool**. Elastic pools is ’n cost-effective solution vir die bestuur van multiple databases deur configurable compute (eDTUs) en storage resources tussen hulle te share, met pricing gebaseer uitsluitlik op die resources allocated eerder as op die number of databases. -**Azure SQL se dinamiese** datamaskering is 'n kenmerk wat help om **sensitiewe inligting te beskerm deur dit** van ongemagtigde gebruikers te verberg. In plaas daarvan om die werklike data te verander, maskering dit dinamies die vertoonde data, wat verseker dat sensitiewe besonderhede soos kredietkaartnommers verborge is. +#### Azure SQL Column Level Security (Masking) & Row Level Security -Die **Dinamiese Datamaskering** raak alle gebruikers behalwe diegene wat nie gemasker is nie (hierdie gebruikers moet aangedui word) en administrateurs. Dit het die konfigurasieopsie wat spesifiseer watter SQL-gebruikers vrygestel is van dinamiese datamaskering, met **administrateurs altyd uitgesluit**. +**Azure SQL's dynamic** data masking is ’n feature wat help om **sensitive information te protect deur dit te hide** vir unauthorized users. In plaas daarvan om die actual data te alter, mask dit dynamically die displayed data, en verseker dat sensitive details soos credit card numbers obscured is. -**Azure SQL Ryvlak Sekuriteit (RLS)** is 'n kenmerk wat **beheer watter rye 'n gebruiker kan sien of wysig**, wat verseker dat elke gebruiker slegs die data sien wat relevant is vir hulle. Deur sekuriteitsbeleide met filter of blokpredikate te skep, kan organisasies fyngeweefde toegang op databasisvlak afdwing. +Die **Dynamic Data Masking** affect op alle users behalwe die ones wat unmasked is (hierdie users need to be indicated) en administrators. Dit het die configuration option wat spesifiseer watter SQL users exempt is van dynamic data masking, met **administrators altyd excluded**. -### Azure SQL Bestuurde Instansie +**Azure SQL Row Level Security (RLS)** is ’n feature wat **beheer watter rows ’n user kan view of modify**, en verseker dat elke user net die data sien wat relevant is vir hulle. Deur security policies met filter of block predicates te create, kan organizations fine-grained access op die database level enforce. -**Azure SQL Bestuurde Instansies** is vir groter skaal, hele SQL Server instansie-geskepte ontplooiings. Dit bied byna 100% kompatibiliteit met die nuutste SQL Server op-premises (Enterprise Edition) Databasis-enjin, wat 'n inheemse virtuele netwerk (VNet) implementering bied wat algemene sekuriteitskwessies aanspreek, en 'n besigheidsmodel wat gunstig is vir op-premises SQL Server kliënte. +### Azure SQL Managed Instance -### Azure SQL Virtuele Masjiene +**Azure SQL Managed Instances** is vir larger scale, entire SQL Server instance-scoped deployments. Dit provide near 100% compatibility met die latest SQL Server on-premises (Enterprise Edition) Database Engine, wat ’n native virtual network (VNet) implementation provide wat common security concerns address, en ’n business model favorable vir on-premises SQL Server customers. -**Azure SQL Virtuele Masjiene** laat jou toe om **die bedryfstelsel** en die SQL Server instansie te **beheer**, aangesien 'n VM in die VM-diens wat die SQL-server draai, geskep sal word. +### Azure SQL Virtual Machines -Wanneer 'n SQL Virtuele Masjien geskep word, is dit moontlik om **alle instellings van die VM te kies** (soos in die VM-les gewys) wat die SQL-server sal huisves. -- Dit beteken dat die VM toegang tot sommige VNet(s) sal hê, moontlik **Bestuurde Identiteite aan dit geheg** kan hê, en lêerdeelings gemonteer kan hê… wat 'n **pivoting van die SQL** na die VM baie interessant maak. -- Boonop is dit moontlik om 'n app-id en geheim te konfigureer om **die SQL toegang te gee tot 'n spesifieke sleutelkluis**, wat sensitiewe inligting kan bevat. +**Azure SQL Virtual Machines** allows om die **operating system** en die SQL Server instance te control, aangesien ’n VM in die VM service spawned sal word wat die SQL server run. -Dit is ook moontlik om dinge soos **outomatiese SQL-opdaterings**, **outomatiese rugsteun**, **Entra ID-verifikasie** en die meeste van die kenmerke van die ander SQL-dienste te konfigureer. +Wanneer ’n SQL Virtual Machine created word, is dit moontlik om **all the settings of the VM** te selected (soos in die VM lesing getoon) wat die SQL server sal host. +- Dit beteken dat die VM some VNet(s) sal access, mag **Managed Identities attached** hê, kan file shares gemounted hê… wat ’n **pivoting from the SQL** na die VM super interesting maak. +- Boonop is dit moontlik om ’n app id en secret te configure om **toelaat dat die SQL toegang kry tot ’n specific key vault**, wat sensitive info kan contain. -## Enumerasie +Dit is ook moontlik om dinge soos **automatic SQL updates**, **automatic backups**, **Entra ID authentication** en die meeste features van die ander SQL services te configure. + +## Enumeration {{#tabs}} {{#tab name="az cli"}} @@ -258,7 +261,7 @@ Get-AzSqlVM {{#endtab}} {{#endtabs}} -Boonop, as jy die Dinamiese Gegevensmaskering en Ryvlakbeleide binne die databasis wil opnoem, kan jy die volgende navraag doen: +Daarbenewens, as jy die Dynamic Data Masking en Row Level policies binne die database wil enumereer, kan jy die volgende query gebruik: ```sql --Enumerates the masked columns SELECT @@ -283,9 +286,9 @@ JOIN sys.security_predicates AS sp2 ON sp.object_id = sp2.object_id; ``` -### Verbind en voer SQL-navrae uit +### Koppel en run SQL queries -Jy kan 'n verbindsstring (wat geloofsbriewe bevat) vind van voorbeeld [enumerating an Az WebApp](az-app-services.md): +Jy kan ’n connection string (wat credentials bevat) vind uit die voorbeeld van [enumerating an Az WebApp](az-app-services.md): ```bash function invoke-sql{ param($query) @@ -304,11 +307,11 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -U kan ook sqlcmd gebruik om toegang tot die databasis te verkry. Dit is belangrik om te weet of die bediener openbare verbindings toelaat `az sql server show --name --resource-group `, en ook of die vuurmuurreël ons IP toelaat om toegang te verkry: +Jy kan ook `sqlcmd` gebruik om toegang tot die databasis te verkry. Dit is belangrik om te weet of die server openbare verbindings toelaat `az sql server show --name --resource-group `, en ook of die firewall-reël ons IP toelaat om toegang te verkry: ```bash sqlcmd -S .database.windows.net -U -P -d ``` -## Verwysings +## 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) @@ -327,7 +330,7 @@ sqlcmd -S .database.windows.net -U -P