From 1dd840ad84dee665e6ea53f1fde0a7117c2854b9 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 01:02:12 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md'] --- .../azure-security/az-services/az-sql.md | 55 ++++++++++++++----- 1 file changed, 40 insertions(+), 15 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 b3b1115a7..37a663f51 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -8,10 +8,10 @@ Azure SQL è una famiglia di prodotti gestiti, sicuri e intelligenti che utilizz Azure SQL consiste in quattro offerte principali: -1. **Azure SQL Server**: Un server è necessario per il **deployment e la gestione** dei database SQL Server. +1. **Azure SQL Server**: È necessario un server per il **deployment e la gestione** dei database SQL Server. 2. **Azure SQL Database**: Questo è un **servizio di database completamente gestito**, che ti consente di ospitare database individuali nel cloud Azure. 3. **Azure SQL Managed Instance**: Questo è per implementazioni su larga scala, a livello di intera istanza SQL Server. -4. **Azure SQL Server su Azure VMs**: Questo è il migliore per architetture in cui desideri **controllo sul sistema operativo** e sull'istanza SQL Server. +4. **Azure SQL Server su Azure VMs**: Questo è migliore per architetture in cui desideri **controllo sul sistema operativo** e sull'istanza SQL Server. ### Caratteristiche di Sicurezza di SQL Server @@ -20,7 +20,7 @@ Azure SQL consiste in quattro offerte principali: - Endpoint pubblico (può limitare l'accesso a reti specifiche). - Endpoint privati. - È anche possibile limitare le connessioni in base ai nomi di dominio. -- È anche possibile consentire ai servizi Azure di accedervi (come per utilizzare l'editor di query nel portale o per consentire a una VM Azure di connettersi). +- È anche possibile consentire ai servizi Azure di accedervi (come utilizzare l'editor di query nel portale o consentire a una VM Azure di connettersi). **Metodi di autenticazione:** @@ -28,24 +28,49 @@ Azure SQL consiste in quattro offerte principali: - Autenticazione **sia SQL che Microsoft Entra**: Autenticazione SQL tradizionale con nome utente e password insieme a Microsoft Entra. - Autenticazione **solo SQL**: Consente l'accesso solo tramite utenti del database. -Nota che se è consentita qualsiasi autenticazione SQL, è necessario indicare un utente admin (nome utente + password) e se è selezionata l'autenticazione Entra ID è anche necessario indicare almeno un principio con accesso admin. +Nota che se è consentita qualsiasi autenticazione SQL, è necessario indicare un utente admin (nome utente + password) e se viene selezionata l'autenticazione Entra ID è anche necessario indicare almeno un principio con accesso admin. **Crittografia:** - Si chiama “Crittografia dei dati trasparente” e crittografa database, backup e log a riposo. - Come sempre, viene utilizzata per impostazione predefinita una chiave gestita da Azure, ma potrebbe essere utilizzata anche una chiave di crittografia gestita dal cliente (CMEK). - **Identità Gestite:** - È possibile assegnare identità gestite di sistema e utente. - Utilizzate per accedere alla chiave di crittografia (se viene utilizzata una CMEK) e ad altri servizi dai database. +- Per alcuni esempi dei servizi Azure che possono essere accessibili dal database, controlla [questa pagina della documentazione](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) - Se viene assegnata più di una UMI, è possibile indicare quella predefinita da utilizzare. - È possibile configurare un'identità client federata per l'accesso cross-tenant. +Alcuni comandi per accedere alle informazioni all'interno di uno storage blob da un database 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:** -- Utile per “mitigare potenziali vulnerabilità del database e rilevare attività anomale”. -- Parleremo di Defender in una lezione a parte (può essere abilitato in diversi altri servizi Azure). +- Utile per “mitigare potenziali vulnerabilità del database e rilevare attività anomale” +- Parleremo di Defender in una lezione a parte (può essere abilitato in diversi altri servizi Azure) **Backup:** - La frequenza dei backup è gestita nelle politiche di retention. @@ -55,7 +80,7 @@ Nota che se è consentita qualsiasi autenticazione SQL, è necessario indicare u ## Azure SQL Database -**Azure SQL Database** è una **piattaforma di database completamente gestita come servizio (PaaS)** che fornisce soluzioni di database relazionali scalabili e sicure. È costruita sulle ultime tecnologie SQL Server ed elimina la necessità di gestione dell'infrastruttura, rendendola una scelta popolare per le applicazioni basate su cloud. +**Azure SQL Database** è una **piattaforma di database completamente gestita come servizio (PaaS)** che fornisce soluzioni di database relazionali scalabili e sicure. È costruita sulle ultime tecnologie di SQL Server ed elimina la necessità di gestione dell'infrastruttura, rendendola una scelta popolare per le applicazioni basate su cloud. Per creare un database SQL è necessario indicare il server SQL dove sarà ospitato. @@ -72,23 +97,23 @@ Per creare un database SQL è necessario indicare il server SQL dove sarà ospit - **Ridondanza dei dati:** Le opzioni sono locale, zona, Geo o Geo-Zona ridondante. - **Registro:** Verifica crittograficamente l'integrità dei dati, assicurando che qualsiasi manomissione venga rilevata. Utile per finanziarie, mediche e qualsiasi organizzazione che gestisce dati sensibili. -Un database SQL potrebbe far parte di un **pool elastico**. I pool elastici sono una soluzione economica per gestire più database condividendo risorse di calcolo configurabili (eDTUs) e di archiviazione tra di essi, con prezzi basati esclusivamente sulle risorse allocate piuttosto che sul numero di database. +Un database SQL potrebbe far parte di un **elastic Pool**. Gli elastic pool sono una soluzione economica per gestire più database condividendo risorse di calcolo (eDTUs) e di archiviazione configurabili tra di loro, con prezzi basati esclusivamente sulle risorse allocate piuttosto che sul numero di database. #### Sicurezza a Livello di Colonna (Mascheramento) e Sicurezza a Livello di Riga di Azure SQL -Il **mascheramento dei dati dinamico** di Azure SQL è una funzionalità che aiuta a **proteggere le informazioni sensibili nascondendole** agli utenti non autorizzati. Invece di alterare i dati reali, maschera dinamicamente i dati visualizzati, assicurando che dettagli sensibili come i numeri di carta di credito siano oscurati. +Il **mascheramento dei dati dinamico** di Azure SQL è una funzionalità che aiuta a **proteggere informazioni sensibili nascondendole** agli utenti non autorizzati. Invece di alterare i dati reali, maschera dinamicamente i dati visualizzati, assicurando che dettagli sensibili come i numeri di carta di credito siano oscurati. -Il **Mascheramento dei Dati Dinamico** influisce su tutti gli utenti tranne quelli che sono non mascherati (questi utenti devono essere indicati) e sugli amministratori. Ha l'opzione di configurazione che specifica quali utenti SQL sono esenti dal mascheramento dei dati dinamico, con **amministratori sempre esclusi**. +Il **Mascheramento dei Dati Dinamico** si applica a tutti gli utenti tranne a quelli che sono non mascherati (questi utenti devono essere indicati) e agli amministratori. Ha l'opzione di configurazione che specifica quali utenti SQL sono esenti dal mascheramento dinamico dei dati, con **amministratori sempre esclusi**. -La **Sicurezza a Livello di Riga (RLS)** di Azure SQL è una funzionalità che **controlla quali righe un utente può visualizzare o modificare**, assicurando che ogni utente veda solo i dati a lui pertinenti. Creando politiche di sicurezza con filtri o predicati di blocco, le organizzazioni possono applicare un accesso dettagliato a livello di database. +La **Sicurezza a Livello di Riga di Azure SQL (RLS)** è una funzionalità che **controlla quali righe un utente può visualizzare o modificare**, assicurando che ogni utente veda solo i dati rilevanti per lui. Creando politiche di sicurezza con filtri o predicati di blocco, le organizzazioni possono applicare un accesso dettagliato a livello di database. ### Azure SQL Managed Instance -Le **Azure SQL Managed Instances** sono per implementazioni su larga scala, a livello di intera istanza SQL Server. Forniscono quasi il 100% di compatibilità con l'ultima versione di SQL Server on-premises (Enterprise Edition) Database Engine, che offre un'implementazione nativa della rete virtuale (VNet) che affronta le comuni preoccupazioni di sicurezza, e un modello di business favorevole per i clienti SQL Server on-premises. +Le **Azure SQL Managed Instances** sono per distribuzioni su larga scala, a livello di intera istanza di SQL Server. Forniscono una compatibilità quasi totale con l'ultima versione del motore di database SQL Server on-premises (Enterprise Edition), che offre un'implementazione nativa della rete virtuale (VNet) che affronta comuni preoccupazioni di sicurezza, e un modello di business favorevole per i clienti di SQL Server on-premises. ### Azure SQL Virtual Machines -Le **Azure SQL Virtual Machines** consentono di **controllare il sistema operativo** e l'istanza SQL Server, poiché una VM verrà avviata nel servizio VM che esegue il server SQL. +Le **Azure SQL Virtual Machines** consentono di **controllare il sistema operativo** e l'istanza di SQL Server, poiché una VM verrà avviata nel servizio VM che esegue il server SQL. Quando viene creata una macchina virtuale SQL, è possibile **selezionare tutte le impostazioni della VM** (come mostrato nella lezione sulla VM) che ospiterà il server SQL. - Questo significa che la VM accederà a alcune VNet, potrebbe avere **Identità Gestite collegate** ad essa, potrebbe avere condivisioni di file montate… rendendo un **pivoting dal SQL** alla VM molto interessante. @@ -305,7 +330,7 @@ sqlcmd -S .database.windows.net -U -P