Come Audire le Azioni Amministrative nel Tuo Oracle RDS e EC2
Prefazione
Amazon Relational Database Service (Amazon RDS) è un servizio web che semplifica l’impostazione, il funzionamento e la scalabilità di un database relazionale nel Cloud AWS. Fornisce capacità ridimensionabile ed economica per un database relazionale conforme agli standard del settore e gestisce i comuni compiti di amministrazione dei database.
DataSunrise è un Partner Tecnologico Avanzato AWS certificato per la competenza nella Sicurezza nella Protezione dei Dati e Crittografia insieme ad altre qualifiche validate da AWS. DataSunrise può funzionare on-premises, su un’istanza EC2 o come cluster su più istanze EC2, in una macchina virtuale o su hardware dedicato. La DataSunrise Data and Database Security Suite (DataSunrise) per tutti i tipi di Amazon RDS funge da firewall applicativo per database (DAF) agendo come un elemento intermedio per tutte le sessioni, query e comandi da qualsiasi client verso l’istanza Amazon RDS. E poiché DataSunrise è un software e non una soluzione SaaS, è sua responsabilità configurare e impostare l’istanza DataSunrise correttamente.
L’obiettivo principale di questo articolo è introdurre l’approccio su come audire l’attività degli account privilegiati. Vedremo come configurare DataSunrise per audire l’attività di DBA in Oracle RDS. Tuttavia, tutti i passaggi generali si applicano a qualsiasi istanza Amazon RDS.
Panoramica di Oracle RDS e prerequisiti
Come probabilmente sa, Amazon RDS supporta l’accesso ai database utilizzando qualsiasi applicazione client SQL standard e non consente accesso diretto all’host con SSH ecc. Questa architettura non permette di installare agenti di database in Amazon RDS e la limita nell’uso di potenti privilegi DBA come SYSDBA. Amazon RDS utilizza un modello di responsabilità condivisa che esclude l’intervento umano diretto sulla piattaforma di elaborazione. Tuttavia, con Amazon RDS è possibile svolgere i propri compiti in modi leggermente diversi e unificati. Per esempio, il DBA può accedere ai log del database o fare il backup delle istanze Amazon RDS con snapshot utilizzando AWS Management Console, AWS CLI o RDS API. Dall’altro lato, Lei non è in grado di accedere ad Amazon RDS utilizzando connessioni SSH o RDP per attività legate al database o al Sistema Operativo (e probabilmente dannose). Si ricordi quindi che avendo il ruolo IAM richiesto, può modificare e gestire l’istanza Amazon RDS per soddisfare i requisiti del suo sistema senza collegarsi a Amazon RDS via SSH/RDP.
Un aspetto importante è quello relativo ai privilegi/ruoli tipo SYSDBA di Oracle. Il ruolo SYSDBA è designato solo per l’utente RDSADMIN (AWS usa l’utente OS “rdshm”), la password RDSADMIN è sconosciuta. Inoltre, con Oracle RDS non può conoscere la password dell’utente SYS. Tutto questo significa che:
- non può connettersi al suo Oracle RDS usando RDSADMIN o l’utente SYS;
- gli utenti del suo database non possono ottenere il ruolo SYSDBA o altri potenti ruoli di Oracle Database;
- non può connettersi in remoto all’istanza Oracle RDS usando SYSDBA o altri potenti ruoli di Oracle Database.
Questi privilegi limitati proteggono e tutelano ogni singola istanza RDS. Oracle RDS crea per Lei un utente DBA limitato (ad es. utente “admin” di default) così può connettersi all’istanza Oracle RDS usando questo utente. Successivamente può creare un altro utente e questo nuovo utente non avrà più privilegi di quanti ne abbia l’utente “admin”. Ancora, questo è correlato al modello di responsabilità condivisa nella gestione su AWS. Il team di Amazon RDS ha fissato questa linea rossa che Lei non può attraversare.
Lasceremo da parte l’impostazione di Oracle RDS dallo scopo di questo articolo e per continuare con i passi successivi avrà bisogno di un’istanza Oracle RDS attiva e funzionante e speriamo possa avviare un nuovo Oracle RDS o dispone già di accesso a un’istanza Oracle RDS esistente. Se Lei desidera sapere best practice per eseguire Oracle RDS, consulti la documentazione AWS.
Nella sezione successiva vedremo cosa è disponibile per audire l’attività del DBA.
Attività del DBA su Oracle RDS e opzioni di audit
Le limitazioni delle istanze RDS sollevano molte domande su come audire azioni specifiche del DBA come ALTER SYSTEM, CREATE USER, DROP DATABASE ecc. E come può audire quegli utenti interni RDS come RDSADMIN? Bene, rivediamo tutte le opzioni disponibili.
- Può visualizzare l’attività interna RDS usando File di Log del Database Amazon RDSPuò visualizzare, scaricare e monitorare i log del database usando la console Amazon RDS, l’interfaccia a riga di comando AWS (AWS CLI), o l’API Amazon RDSAPI Amazon RDS. Amazon fornisce il servizio di Recupero Puntuale e afferma che RDS carica i log delle transazioni per le istanze DB su Amazon S3 ogni 5 minuti. Quindi i File di Log del Database e il servizio CloudTrail la aiutano ad analizzare l’attività dell’utente RDSADMIN insieme a ulteriori informazioni sugli eventi di Oracle RDS. Tutte queste opzioni sono valide finché ha bisogno di monitoraggio e allerta delle transazioni in tempo reale.
- Con le istanze DAF eseguite su VMs EC2 separate può audire tutte le sessioni e le query eseguite sulla sua istanza Amazon RDS. Lo scopo delle istanze DAF è di diventare il suo guardiano del database e poiché ha bisogno di monitorare l’attività del DBA vedremo questa opzione nel dettaglio. Le istanze DataSunrise su box EC2 sono in grado di monitorare e proteggere l’attività di rete per Amazon RDS.
Panoramica di DataSunrise su AWS e prerequisiti
Configurare e impostare istanze DataSunrise sicure coinvolge diversi passaggi importanti. Per preparare la sua istanza DataSunrise sicura nell’ambiente AWS segua i passaggi descritti nel nostro documento DataSunrise AWS Security Best Practices. Per menzionare alcuni passaggi, sono i seguenti:
- assegnare ruoli IAM adeguati alle sue istanze EC2 con istanze DataSunrise;
- creare e assegnare uno o più gruppi di sicurezza VPC alla sua istanza Amazon RDS e alle istanze EC2 che ospitano il software DataSunrise;
- utilizzare password sicure e uniche per ogni account.
L’architettura seguente consiste in un’istanza di database (RDS o su istanza EC2) dietro DAF, un database di archiviazione audit separato (RDS o su istanza EC2), e un’istanza DataSunrise che funge da server proxy per le connessioni degli utenti.
Come opzione DataSunrise fornisce script CloudFormation per il deploy su AWS soluzioni di sicurezza dei database sicure ed economiche. A seguito della creazione della sua istanza Amazon RDS, questi script automatizzano tutti i compiti richiesti per il deploy di istanze EC2, installando DataSunrise su queste istanze EC2, impostando Amazon Load Balancer così come la creazione di tutte le altre risorse AWS necessarie. Salteremo l’opzione CloudFormation e continueremo con uno scenario di istanza EC2 singola. Abbiamo preparato video su come installare l’istanza DataSunrise, guardi uno dei video e segua i passaggi richiesti:
- Installazione di DataSunrise su Linux https://www.youtube.com/watch?v=FWoGY2qc0F8
- Installazione di DataSunrise su Windows https://www.youtube.com/watch?v=wKlFUdUUbSE
Alla fine del processo di installazione la sua istanza DataSunrise dovrebbe essere accessibile dal suo browser Web. Avrà bisogno di un’istanza DataSunrise attiva e funzionante così potrà accedere alla sua console Web dell’istanza DataSunrise con i privilegi richiesti.
Il prossimo prerequisito è la Configurazione del Database che dovrebbe creare nell’istanza DataSunrise per avviare un proxy per Amazon RDS. Faccia riferimento a Guida Utente DataSunrise, sezione “3.1 Creazione di un Profilo del Database Destino e di un Proxy” e sezione “5.1.6 Creazione di Utenti del Database Necessari per Ottenere i Metadati del Database”. Poiché DataSunrise in modalità proxy agisce come elemento intermedio intercettando tutti i pacchetti TCP non-AWS verso l’istanza Amazon RDS, può usare la stessa porta standard del Database Oracle 1521 poiché l’istanza DataSunrise è in esecuzione su un’altra istanza EC2. Infine, si assicuri che la sua istanza Amazon RDS non sia disponibile da nessun altro IP / nome non-AWS e porta se non tramite l’istanza DataSunrise. Tutti questi passaggi garantiranno che tutte le sue applicazioni client possano accedere alla sua istanza Oracle RDS solo attraverso la sua istanza DataSunrise.
Configurazione di DataSunrise per audire il DBA
Come accennato in precedenza, alla creazione del suo Oracle RDS riceve un account DBA limitato e la sua password, per default Oracle RDS offre l’utente “admin” del database per accedere alla sua istanza. E come ricorda, Amazon RDS disabilita il privilegio SYSDBA per Lei. E questo restringe l’area potenziale di minacce fatte all’istanza Amazon RDS. Se il suo Oracle RDS è accessibile dalla sua macchina desktop provi a connettersi al suo Oracle RDS come SYSDBA per verificare che sia vero, veda un esempio qui sotto.
Vedrà che nessun SYSDBA, SYOPER, o altri privilegi SYS – correlati sono disponibili in Oracle RDS sia usando TCP che SSH.
Pertanto dovrà prendersi cura di audire le connessioni di rete – connessioni remote usando lo strumento giusto come DataSunrise DAF. Configureremo l’istanza DataSunrise per catturare qualsiasi tipo di azione che il suo DBA può eseguire a distanza sull’istanza Amazon RDS.
Sommario dei passaggi successivi
Per audire le azioni del DBA eseguiremo i seguenti passaggi:
- Identificare i suoi nomi utenti / account DBA. DataSunrise mantiene gli Utenti del Database sotto il suo menu Configurazione. Se ha più di un DBA allora crei un nuovo Gruppo di Utenti del Database sotto Configurazione → Utenti del Database. Nel nostro esempio useremo il DBA chiamato “admin” generato dall’istanza del nostro Oracle RDS.
- Usando Configurazione → Gruppi di Oggetti crea una nuova voce e aggiungi un singolo elemento con l’espressione regolare “.*”.
- Crea una nuova Regola di Audit per includere l’Utente del Database e il Gruppo di Query per Audire l’attività del DBA.
- Controllare l’attività del DBA nell’istanza DataSunrise
1. Identificare e configurare il suo DBA utenti in DataSunrise
Procediamo con tutti questi passaggi. Prima sotto Configurazione → Utenti del Database controlliamo che l’utente “admin” sia conosciuto dalla nostra istanza DataSunrise. Se DataSunrise non ne ha uno, crei manualmente l’utente “admin”. Se ha varie istanze Oracle RDS e lo stesso nome utente “admin” del DBA usato, può scegliere <Any> Istanza. Non dimentichi di fare clic sul pulsante Save per salvare le impostazioni su ogni pagina.
Nell’immagine sopra abbiamo creato l’utente ADMIN e lo abbiamo incluso nel gruppo del team DBA. Se ha creato più utenti DBA per favore aggiunga li nel gruppo Utenti del Team DBA Oracle nell’istanza DataSunrise.
2. Configurare un nuovo Gruppo di Query
Secondo passo – creeremo il nostro nuovoGruppo di Query “AnyQuery” e aggiungeremo solo un elemento “.*” nell’elemento Query. Prego, veda le impostazioni nell’immagine sotto.
Quando crea una nuova Query per il Gruppo di Query (veda il pulsante “Aggiungi” sull’immagine) per favore controlli nella casella di “Espressione Regolare”.
A questo punto abbiamo “UTENTE ADMIN” del database, il gruppo Utenti del Team DBA Oracle registrato nell’istanza DataSunrise e il nostro gruppo di query “AnyQuery” con un’query che ha il modello di espressione regolare “.*” per corrispondere a qualsiasi query. Per metà siamo arrivati.
3. Creare e configurare una nuova Regola di Audit
Successivamente creeremo una nuova Regola di Audit con il nome “Oracle: query admin” usando ciò che abbiamo creato nell’istanza DataSunrise. Si prega di aprire la Console Web e inserire Audit → Regole. Faccia clic su Crea per creare le nuove regole. Si prega di vedere i dettagli sulle immagini sotto.
Utilizzeremo Filtra Dichiarazioni e il tab Gruppo di Query sulla pagina per collegare la nostra regola con le rispettive impostazioni che abbiamo fatto in precedenza, veda i dettagli nelle immagini seguenti.
Quando seleziona il Gruppo di Utenti del Team DBA Oracle per il parametro di sessione Gruppo Utenti DB fa in modo che DataSunrise intercetti qualsiasi sessione da qualsiasi IP / host che ha un nome utente nella lista del “Gruppo Utenti del Team DBA Oracle”. Quando aggiunge un altro utente di database alla lista Gruppo Utenti del Team DBA Oracle questa regola controllerà automaticamente il nuovo utente in questa regola. E poiché utilizza il tab Gruppo di Query sulla pagina dellaRegola di Audit e seleziona “AnyQuery” lì, allora DataSunrise controllerà qualsiasi espressione o query che il suo team DBA eseguirà attraverso l’istanza DataSunrise. Più avanti vedrà questi eventi sotto Audit → Tracce Transazionali.
Inoltre e opzionalmente può inviare i dettagli degli eventi audit a un SIEM esterno usando il protocollo Syslog o inviare alert ad altri sistemi esterni (SMTP/email, Jira, ZenDesk, messaggerie istantanee). Per configurare la connessione col server compatibile Syslog si prega di navigare a Configurazione → Impostazioni Syslog e configurare le impostazioni necessarie su quella pagina. Veda “7.7 Impostazioni Syslog (Gruppi CEF)” e “10.6 Impostazioni Integrazione Syslog” nella nostra Guida Utente per maggiori dettagli. Per inviare avvisi a destinatari diversi da Syslog, aggiungere nuovi elementi ai Sottoscrittori (Console Web: Configurazione → Sottoscrittori → Aggiungi Server… Aggiungi voce di menu Sottoscrittore). Può trovare maggiori informazioni sui Sottoscrittori nella sezione “7.5 Impostazioni Sottoscrittori” della Guida Utente DataSunrise. Più tardi potrà usare impostazioni Syslog e/o Sottoscrittori nelle sue regole DataSunrise (veda la prima immagine sopra); per favore veda le sezioni corrispondenti nelle Guide Utente e Amministrativa di DataSunrise. Quando configurate possa selezionare i suoi elementi Syslog e Sottoscrittore sulla sua Regola di Audit. Non dimentichi di fare clic sul pulsante Save sulla pagina Regole di Audit per salvare le nuove impostazioni.
In questo modo abbiamo selezionato i tipi di query che dobbiamo audire (e probabilmente notificare alcune persone con alert) per l’istanza specifica Amazon RDS o varie istanze se scegli l’elemento “<ANY>” nel riquadro a discesa Istanza sulla pagina della regola. Ci sono diverse opzioni per saltare l’auditing delle query tipiche come gli strumenti DBMS, per maggiori informazioni vedere sezione “6.4.2 Filtro Gruppo di Query” nella Guida Utente DataSunrise in connessione al parametro della regole Skip Gruppo di Query.
4. Controllare l’attività del DBA nell’istanza DataSunrise
Per verificare che la nostra nuova Regola di Audit catturi le query eseguiremo le query CREATE USER e DROP USER usando lo strumento Oracle SQL Developer. Ci connetteremo all’istanza Oracle RDS attraverso l’istanza DataSunrise.
Dopodiché possiamo controllare Tracce Transazionali sull’istanza DataSunrise.
Poiché abbiamo impostato Log Event in Storage opzione sulla nostra Regola di Audit, possiamo trovare questi eventi su
pagina Audit → Tracce Transazionali sulla console Web della nostra istanza DataSunrise.
Note sull’istanza EC2 con un’istanza di Database Oracle
Ci sono alcune considerazioni sull’uso delle istanze di database su istanze Amazon EC2 insieme a DataSunrise. Dal momento che configura queste istanze, potrebbe per qualche ragione permettere connessioni locali (SSH, RDP ecc.) o connessioni remote (TCP del database) che potrebbero bypassare l’istanza DataSunrise (o il suo Load Balancer). Tutte queste connessioni devono essere strettamente limitate per garantire un livello massimo di sicurezza e gestione. Nella sua VPC raccomandiamo di implementare rigide regole usando i Gruppi di Sicurezza e le ACL di Rete. L’obiettivo di tutte queste restrizioni dovrebbe essere eliminare l’accesso diretto alla sua istanza di database da qualsiasi IP o rete, ma solo l’istanza DataSunrise sulla sua istanza EC2 sulla porta del database.
I passaggi successivi può vedere nella sezione “Configurazione delle impostazioni di DataSunrise” di questo articolo. E poiché probabilmente sta ancora pensando a come audire i suoi ruoli SYSDBA (e simili) potenzialmente dannosi daremo uno sguardo alle capacità di audit di DataSunrise per aiutarla con ciò.
A partire da DataSunrise 6.2, può includere parametri di sessione nelle condizioni di Filtro Sessioni. Si prega di vedere sotto la nostra Regola di Audit con la condizione di audire SYSDBA e privilegi simili in aggiunta al “Gruppo Utenti del Team DBA Oracle” nel gruppo Utenti del Database . Presupponiamo di aver configurato la nostra istanza DataSunrise per proteggere Oracle Database in esecuzione su istanza EC2 e non ci sia altro modo di connettersi al server di database, ma solo attraverso l’istanza DataSunrise in modalità proxy.
Poiché il nostro DAF protegge Oracle Database su EC2, allora proveremo a connetterci ad Oracle attraverso il proxy DataSunrise. Nelle immagini sotto ci connettiamo al database usando Oracle SQL Developer tramite l’istanza DataSunrise e usiamo il nome utente “sys” e il ruolo SYSDBA. Impostiamo che questo è consentito nella nostra istanza di Database Oracle. Veda il risultato del test di connessione nell’immagine seguente.
Se il test passa con stato Successo, possiamo provare ad eseguire alcune query nello stesso modo in cui abbiamo fatto in precedenza nella sezione “Configurazione di DataSunrise per audire il DBA” di questo articolo. Oracle SQL Developer eseguirà le query attraverso l’istanza DataSunrise. Poi sulla console Web DataSunrise possiamo controllare Audit → Traccia Transazionale o Tracce di Sessione per vedere tutte le query e le sessioni dell’utente “sys”. La nostra Regola di Audit cattura l’utente del database “sys” nonostante che quell’utente particolare non sia nella lista del “Gruppo Utenti del Team DBA Oracle” che abbiamo creato in precedenza nell’istanza DataSunrise. Quando apriamo Audit → Traccia di Sessione e un particolare elemento vedremo che l’istanza DataSunrise salva dettagli sui ruoli del database Oracle così come altre informazioni utili.
In questo modo abbiamo configurato l’istanza DataSunrise per audire qualsiasi attività del DBA inclusi SYSDBA e privilegi di sistema simili che Oracle Database ha.
Conclusione
Abbiamo visto che Oracle RDS richiede meno sforzo per proteggere l’istanza del database Oracle e audire l’attività del DBA. Su istanze EC2 richiede di “rimboccarsi le maniche” e impostare parametri di sessione e grazie a DataSunrise versione 6.2 può audire i ruoli integrati di Oracle Database. Per maggiori informazioni si prega di consultare la Guida Utente DataSunrise e i riferimenti allegati.
Riferimenti
Panoramica di Amazon RDS
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.html
DataSunrise Inc. e AWS
https://www.datasunrise.com/datasunrise-security-amazon-rds/
Panoramica di File di Log di Database Amazon RDS
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html
Servizio AWS Point-In-Time Recovery
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html
Best Practice di Sicurezza AWS DataSunrise
https://www.datasunrise.com/documentation/ds-aws-security-best-practices/
DataSunrise supporta AWS CloudFormation
https://www.datasunrise.com/professional-info/aws-market-commercial/
DataSunrise su AWS Marketplace
https://aws.amazon.com/marketplace/seller-profile?id=880a5857-74c1-44ea-a978-094093c08788
Manuale Oracle Database su Privilegi di Sistema SYSDBA e SYSOPER
https://docs.oracle.com/database/121/ADMQS/GUID-2033E766-8FE6-4FBA-97E0-2607B083FA2C.htm#ADMQS12004
Guida Utente DataSunrise
https://www.datasunrise.com/documentation/user-guide-download/