mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-s3-a
This commit is contained in:
@@ -2,179 +2,179 @@
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Networking AWS in breve
|
||||
## AWS Networking in breve
|
||||
|
||||
Una **VPC** contiene un **network CIDR** come 10.0.0.0/16 (con la sua **routing table** e **network ACL**).
|
||||
|
||||
Questa rete VPC è suddivisa in **subnetworks**, quindi una **subnetwork** è direttamente **collegata** alla **VPC**, alla **routing table** e alla **network ACL**.
|
||||
Questa rete VPC è divisa in **subnetworks**, quindi una **subnetwork** è direttamente **collegata** alla **VPC**, alla **routing table** e alla **network ACL**.
|
||||
|
||||
Poi, le **Network Interface** collegate ai servizi (come le istanze EC2) sono **connesse** alle **subnetworks** con **security group(s)**.
|
||||
Poi, le **Network Interface** collegate a servizi (come **EC2 instances**) sono **connesse** alle **subnetworks** con **security group(s)**.
|
||||
|
||||
Di conseguenza, un **security group** limiterà le porte esposte delle interfacce di rete che lo utilizzano, **indipendentemente dalla subnetwork**. E una **network ACL** **limiterà** le porte esposte all'intera rete.
|
||||
Quindi, un **security group** limiterà le porte esposte delle **network interface** che lo usano, **indipendentemente dalla subnetwork**. E una **network ACL** **limiterà** le porte esposte per l'**intera rete**.
|
||||
|
||||
Inoltre, per **accedere a Internet**, ci sono alcune configurazioni interessanti da controllare:
|
||||
Inoltre, per poter **accedere a Internet**, ci sono alcune configurazioni interessanti da controllare:
|
||||
|
||||
- Una **subnetwork** può **auto-assegnare indirizzi IPv4 pubblici**
|
||||
- Un'**instance** creata nella rete con l'**auto-assign IPv4 addresses** può ottenerne uno
|
||||
- Un **Internet gateway** deve essere **attached** alla **VPC**
|
||||
- Puoi anche usare **Egress-only internet gateways**
|
||||
- Puoi avere anche un **NAT gateway** in una **private subnet** così è possibile **connettersi a servizi esterni** da quella private subnet, ma **non è possibile raggiungerli dall'esterno**.
|
||||
- Il NAT gateway può essere **public** (accesso a Internet) o **private** (accesso ad altre VPC)
|
||||
- Una **subnetwork** può **assegnare automaticamente indirizzi IPv4 pubblici**
|
||||
- Un'**instance** creata in una rete che **assegna automaticamente indirizzi IPv4** può ottenerne uno
|
||||
- Un **Internet gateway** deve essere **associato** alla **VPC**
|
||||
- È possibile utilizzare anche **Egress-only internet gateways**
|
||||
- Si può inoltre avere un **NAT gateway** in una **subnet privata** così è possibile **connettersi a servizi esterni** da quella subnet privata, ma **non è possibile raggiungerli dall'esterno**.
|
||||
- Il **NAT gateway** può essere **pubblico** (accesso a Internet) o **privato** (accesso ad altre VPC)
|
||||
|
||||
.png>)
|
||||
|
||||
## VPC
|
||||
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) ti permette di **lanciare risorse AWS in una rete virtuale** che hai definito. Questa rete virtuale avrà diverse subnet, Internet Gateways per accedere a Internet, ACL, Security groups, IP...
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) ti permette di **lanciare risorse AWS in una rete virtuale** che hai definito. Questa rete virtuale avrà varie subnet, Internet Gateways per l'accesso a Internet, ACL, Security group, indirizzi IP...
|
||||
|
||||
### Subnets
|
||||
|
||||
Le subnet aiutano a imporre un maggior livello di sicurezza. Il **raggruppamento logico di risorse simili** aiuta anche a mantenere una **gestione più semplice** dell'infrastruttura.
|
||||
Le Subnets aiutano a garantire un maggiore livello di sicurezza. Il **raggruppamento logico di risorse simili** aiuta anche a mantenere una **gestione più semplice** della tua infrastruttura.
|
||||
|
||||
- I CIDR validi vanno da una netmask /16 a una netmask /28.
|
||||
- Una subnet non può trovarsi in diverse availability zones contemporaneamente.
|
||||
- **AWS riserva i primi tre indirizzi IP host** di ogni subnet **per uso interno di AWS**: il primo indirizzo host usato è per il router VPC. Il secondo indirizzo è riservato per Amazon DNS e il terzo indirizzo è riservato per uso futuro.
|
||||
- Una subnet non può trovarsi in diverse Availability Zones contemporaneamente.
|
||||
- **AWS riserva i primi tre indirizzi IP host** di ogni subnet **per** **uso interno AWS**: il primo indirizzo host è utilizzato per il VPC router. Il secondo indirizzo è riservato per l'AWS DNS e il terzo indirizzo è riservato per uso futuro.
|
||||
- Si chiamano **public subnets** quelle che hanno **accesso diretto a Internet, mentre le private subnets no.**
|
||||
|
||||
### Route Tables
|
||||
|
||||
Le route tables determinano l'instradamento del traffico per una subnet all'interno di una VPC. Determinano quale traffico di rete viene inoltrato a Internet o a una connessione VPN. Di solito troverai accesso a:
|
||||
Le route tables determinano il routing del traffico per una subnet all'interno di una VPC. Determinano quale traffico di rete viene inoltrato verso Internet o verso una connessione VPN. Di solito troverai riferimenti a:
|
||||
|
||||
- VPC locale
|
||||
- Local VPC
|
||||
- NAT
|
||||
- Internet Gateways / Egress-only Internet gateways (necessari per dare a una VPC accesso a Internet).
|
||||
- Per rendere una subnet pubblica è necessario **creare** e **attaccare** un **Internet gateway** alla tua VPC.
|
||||
- Per rendere una subnet pubblica è necessario **creare** e **associare** un **Internet gateway** alla tua VPC.
|
||||
- VPC endpoints (per accedere a S3 da reti private)
|
||||
|
||||
### ACLs
|
||||
|
||||
**Network Access Control Lists (ACLs)**: le Network ACLs sono regole di firewall che controllano il traffico di rete in entrata e in uscita verso una subnet. Possono essere usate per permettere o negare traffico a indirizzi IP o intervalli specifici.
|
||||
**Network Access Control Lists (ACLs)**: Le Network ACL sono regole di firewall che controllano il traffico di rete in ingresso e in uscita verso una subnet. Possono essere usate per permettere o negare traffico verso indirizzi IP o intervalli specifici.
|
||||
|
||||
- È più frequente consentire/negare l'accesso usando i security groups, ma questo è l'unico modo per tagliare completamente reverse shells già stabilite. Una regola modificata in un security group non interrompe connessioni già stabilite.
|
||||
- Tuttavia, questo si applica all'intera subnetwork: fai attenzione quando vieti cose perché funzionalità necessarie potrebbero essere disturbate.
|
||||
- È più frequente permettere/negare l'accesso usando i security group, ma gli ACL sono l'unico modo per interrompere completamente reverse shells già stabilite. Una regola modificata in un security group non interrompe connessioni già stabilite.
|
||||
- Tuttavia, questo si applica all'intera subnetwork: fai attenzione quando vieti qualcosa perché potresti disturbare funzionalità necessarie.
|
||||
|
||||
### Security Groups
|
||||
|
||||
I security groups sono un firewall virtuale che controlla il traffico di rete in ingresso e in uscita alle istanze in una VPC. Relazione 1 SG a N istanze (di solito 1 a 1).\
|
||||
Di solito vengono usati per aprire porte pericolose sulle istanze, come la porta 22 per esempio:
|
||||
I security group sono un **firewall** virtuale che controlla il traffico di rete in ingresso e in uscita alle instance in una VPC. Relazione 1 SG a M instance (di solito 1 a 1).\
|
||||
Di solito vengono usati per aprire porte pericolose nelle instance, come la porta 22 per esempio:
|
||||
|
||||
<figure><img src="https://lh5.googleusercontent.com/LliB7eb3cYfkEyOpyw1-eYgWsn2kq1yF6uRn5VYndvOuTvDlURimYx9UvuK8F2impTLmx50mid4MdTXE-Ljt2i_rxaIfnKUdji_hFjCdU9tdoW-axng9-W4tSL71gbbjrPQ7IYY5lAdH_G3UoMRMGGGOxQ=s2048" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Elastic IP Addresses
|
||||
|
||||
An _Elastic IP address_ è un **indirizzo IPv4 statico** progettato per il cloud computing dinamico. Un Elastic IP address è allocato al tuo account AWS, e ti appartiene finché non lo rilasci. Usando un Elastic IP address, puoi mascherare il fallimento di un'istanza o di un software riassegnando rapidamente l'indirizzo a un'altra istanza nel tuo account.
|
||||
Un _Elastic IP address_ è un **indirizzo IPv4 statico** progettato per il cloud computing dinamico. Un Elastic IP address viene allocato al tuo account AWS ed è tuo finché non lo rilasci. Usando un Elastic IP address, puoi mascherare il guasto di un'instance o di un software rimappando rapidamente l'indirizzo a un'altra instance nel tuo account.
|
||||
|
||||
### Connessione tra subnet
|
||||
### Connection between subnets
|
||||
|
||||
Per impostazione predefinita, tutte le subnet hanno **l'assegnazione automatica di indirizzi IP pubblici disattivata**, ma può essere attivata.
|
||||
Per default, tutte le subnet hanno l'**assegnazione automatica di indirizzi IP pubblici disattivata**, ma può essere attivata.
|
||||
|
||||
**Una route locale all'interno di una route table abilita la comunicazione tra le subnet di una VPC.**
|
||||
**Una route locale all'interno di una route table abilita la comunicazione tra le subnet della VPC.**
|
||||
|
||||
Se stai **connettendo una subnet con un'altra subnet non puoi accedere alle subnet collegate** con l'altra subnet, devi creare connessioni direttamente con esse. **Questo vale anche per gli Internet gateways**. Non puoi passare attraverso una connessione di subnet per accedere a Internet; devi assegnare l'Internet gateway alla tua subnet.
|
||||
Se stai **collegando una subnet con un'altra subnet non puoi accedere alle subnet connesse** con quest'ultima; devi creare la connessione direttamente con esse. **Questo vale anche per gli internet gateway**. Non puoi transitare attraverso una connessione subnet per accedere a Internet; devi assegnare l'Internet gateway alla tua subnet.
|
||||
|
||||
### VPC Peering
|
||||
|
||||
VPC peering ti permette di **connettere due o più VPC tra loro**, usando IPV4 o IPV6, come se facessero parte della stessa rete.
|
||||
VPC peering permette di **connettere due o più VPC tra loro**, usando IPv4 o IPv6, come se fossero parte della stessa rete.
|
||||
|
||||
Una volta stabilita la connettività peer, **le risorse in una VPC possono accedere alle risorse nell'altra**. La connettività tra le VPC è implementata attraverso l'infrastruttura di rete esistente di AWS, quindi è altamente disponibile senza colli di bottiglia di larghezza di banda. Poiché **le connessioni peered operano come se fossero parte della stessa rete**, ci sono restrizioni riguardo ai blocchi CIDR che possono essere usati.\
|
||||
Se hai **CIDR sovrapposti o duplicati** per le tue VPC, **non potrai effettuare il peering tra le VPC**.\
|
||||
Ogni AWS VPC **comunicherà solo con il suo peer**. Per esempio, se hai una connessione di peering tra VPC 1 e VPC 2, e un'altra connessione tra VPC 2 e VPC 3 come mostrato, allora VPC 1 e 2 possono comunicare direttamente, così come VPC 2 e VPC 3, tuttavia VPC 1 e VPC 3 non potrebbero. **Non puoi instradare attraverso una VPC per raggiungerne un'altra.**
|
||||
Una volta stabilita la connettività peered, **le risorse in una VPC possono accedere alle risorse nell'altra**. La connettività tra le VPC è implementata attraverso l'infrastruttura di rete AWS esistente, quindi è altamente disponibile senza colli di bottiglia di banda. Poiché **le connessioni peered operano come se fossero parte della stessa rete**, ci sono restrizioni sui range di CIDR che possono essere usati.\
|
||||
Se hai **CIDR sovrapposti o duplicati** per le tue VPC, **non potrai peerare le VPC** tra loro.\
|
||||
Ogni AWS VPC comunicherà **solo con il suo peer**. Per esempio, se hai una connessione di peering tra VPC 1 e VPC 2, e un'altra connessione tra VPC 2 e VPC 3 come mostrato, allora VPC 1 e VPC 2 possono comunicare direttamente tra loro, così come VPC 2 e VPC 3; tuttavia, VPC 1 e VPC 3 non potrebbero. **Non puoi instradare attraverso una VPC per raggiungerne un'altra.**
|
||||
|
||||
### **VPC Flow Logs**
|
||||
|
||||
All'interno della tua VPC, potresti potenzialmente avere centinaia o addirittura migliaia di risorse che comunicano tra subnet diverse sia pubbliche che private e anche tra diverse VPC tramite connessioni di VPC peering. **I VPC Flow Logs ti permettono di catturare informazioni sul traffico IP che scorre tra le interfacce di rete delle tue risorse all'interno della tua VPC**.
|
||||
All'interno della tua VPC potresti avere centinaia o persino migliaia di risorse che comunicano tra diverse subnet sia pubbliche che private e anche tra diverse VPC tramite connessioni di VPC peering. **I VPC Flow Logs ti permettono di catturare informazioni sul traffico IP che fluisce tra le tue network interface delle risorse all'interno della tua VPC**.
|
||||
|
||||
A differenza dei log di accesso S3 e dei log di accesso CloudFront, i **dati di log generati dai VPC Flow Logs non vengono memorizzati in S3. Invece, i dati di log catturati vengono inviati a CloudWatch logs**.
|
||||
A differenza dei log di accesso S3 e dei log di accesso CloudFront, i **dati di log generati dai VPC Flow Logs non sono memorizzati in S3. Invece, i dati di log catturati vengono inviati ai CloudWatch logs**.
|
||||
|
||||
Limitazioni:
|
||||
|
||||
- Se stai eseguendo una connessione VPC peered, allora potrai vedere solo i flow logs delle VPC peered che sono all'interno dello stesso account.
|
||||
- Se stai ancora eseguendo risorse nell'ambiente EC2-Classic, purtroppo non puoi recuperare informazioni dalle loro interfacce.
|
||||
- Una volta creato un VPC Flow Log, non può essere modificato. Per alterare la configurazione del VPC Flow Log, devi cancellarlo e poi crearne uno nuovo.
|
||||
- Il seguente traffico non è monitorato né catturato dai log: traffico DHCP all'interno della VPC, traffico dalle istanze destinato all'Amazon DNS Server.
|
||||
- Qualsiasi traffico destinato all'indirizzo IP per il router predefinito della VPC e traffico da e verso i seguenti indirizzi, 169.254.169.254 che è usato per raccogliere metadata delle istanze, e 169.254.169.123 che è usato per l'Amazon Time Sync Service.
|
||||
- Traffico relativo a una licenza di attivazione Amazon Windows da un'istanza Windows.
|
||||
- Traffico tra un'interfaccia di network load balancer e un'interfaccia di endpoint network.
|
||||
- Se stai eseguendo una connessione VPC peered, potrai vedere i flow logs dei VPC peered solo se sono nello **stesso account**.
|
||||
- Se stai ancora eseguendo risorse nell'ambiente **EC2-Classic**, allora sfortunatamente non puoi recuperare informazioni dalle loro interfacce.
|
||||
- Una volta creato un VPC Flow Log, non può essere modificato. Per alterare la configurazione del VPC Flow Log, è necessario eliminarlo e poi ricrearne uno nuovo.
|
||||
- Il seguente traffico non è monitorato né catturato dai log: traffico DHCP all'interno della VPC, traffico da instance destinato al server DNS di Amazon.
|
||||
- Qualsiasi traffico destinato all'indirizzo IP del router predefinito della VPC e il traffico da e verso i seguenti indirizzi: 169.254.169.254 (usato per ottenere i metadata dell'instance) e 169.254.169.123 (usato dal Amazon Time Sync Service).
|
||||
- Traffico relativo a una licenza di attivazione Amazon Windows da un'instance Windows.
|
||||
- Traffico tra un'interfaccia di un network load balancer e un'interfaccia di rete endpoint.
|
||||
|
||||
Per ogni network interface che pubblica dati nel CloudWatch log group, verrà utilizzato uno stream di log diverso. E all'interno di ciascuno di questi stream, ci saranno gli eventi di flow log che mostrano il contenuto delle voci di log. Ognuno di questi **log cattura dati durante una finestra di circa 10-15 minuti**.
|
||||
Per ogni network interface che pubblica dati nel CloudWatch log group, verrà usato uno stream di log differente. E all'interno di ciascuno di questi stream ci saranno i dati degli eventi del flow log che mostrano il contenuto delle voci di log. Ciascuno di questi **log cattura dati durante una finestra di circa 10-15 minuti**.
|
||||
|
||||
## VPN
|
||||
|
||||
### Componenti base della VPN AWS
|
||||
### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Un Customer Gateway è una risorsa che crei in AWS per rappresentare il tuo lato di una connessione VPN.
|
||||
- È essenzialmente un dispositivo fisico o un'applicazione software sul tuo lato della connessione Site-to-Site VPN.
|
||||
- Un Customer Gateway è una risorsa che crei in AWS per rappresentare il tuo lato di una VPN connection.
|
||||
- È essenzialmente un dispositivo fisico o un'applicazione software sul tuo lato della Site-to-Site VPN connection.
|
||||
- Fornisci informazioni di routing e l'indirizzo IP pubblico del tuo dispositivo di rete (come un router o un firewall) ad AWS per creare un Customer Gateway.
|
||||
- Serve come punto di riferimento per la configurazione della connessione VPN e non comporta costi aggiuntivi.
|
||||
- Serve come riferimento per configurare la VPN connection e non comporta costi aggiuntivi.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Un Virtual Private Gateway (VPG) è il concentratore VPN sul lato Amazon della connessione Site-to-Site VPN.
|
||||
- È attachato alla tua VPC e funge da target per la tua connessione VPN.
|
||||
- VPG è l'endpoint lato AWS per la connessione VPN.
|
||||
- Un **Virtual Private Gateway (VPG)** è il concentratore VPN dal lato Amazon della Site-to-Site VPN connection.
|
||||
- È associato alla tua VPC e funge da target per la tua VPN connection.
|
||||
- VPG è l'endpoint dal lato AWS per la VPN connection.
|
||||
- Gestisce la comunicazione sicura tra la tua VPC e la tua rete on-premises.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Una Site-to-Site VPN connection connette la tua rete on-premises a una VPC attraverso un tunnel VPN sicuro IPsec.
|
||||
- Una Site-to-Site VPN connection connette la tua rete on-premises a una VPC tramite un tunnel VPN sicuro IPSec.
|
||||
- Questo tipo di connessione richiede un Customer Gateway e un Virtual Private Gateway.
|
||||
- Viene utilizzata per comunicazioni sicure, stabili e consistenti tra il tuo data center o rete e il tuo ambiente AWS.
|
||||
- È usata per comunicazioni sicure, stabili e coerenti tra il tuo data center o la tua rete e il tuo ambiente AWS.
|
||||
- Tipicamente usata per connessioni regolari e a lungo termine ed è fatturata in base alla quantità di dati trasferiti sulla connessione.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Un Client VPN endpoint è una risorsa che crei in AWS per abilitare e gestire sessioni VPN client.
|
||||
- Viene usata per permettere a singoli dispositivi (come laptop, smartphone, ecc.) di connettersi in modo sicuro a risorse AWS o alla tua rete on-premises.
|
||||
- Si differenzia dalla Site-to-Site VPN perché è progettata per client individuali invece che per connettere intere reti.
|
||||
- Con Client VPN, ogni dispositivo client usa un software client VPN per stabilire una connessione sicura.
|
||||
- Un Client VPN endpoint è una risorsa che crei in AWS per abilitare e gestire le sessioni VPN dei client.
|
||||
- È usato per permettere a singoli dispositivi (come laptop, smartphone, ecc.) di connettersi in modo sicuro alle risorse AWS o alla tua rete on-premises.
|
||||
- Si differenzia dalla Site-to-Site VPN in quanto è progettato per client individuali piuttosto che per connettere intere reti.
|
||||
- Con Client VPN, ogni dispositivo client usa un software VPN client per stabilire la connessione sicura.
|
||||
|
||||
### Site-to-Site VPN
|
||||
|
||||
**Connetti la tua rete on-premises con la tua VPC.**
|
||||
**Connect your on premisses network with your VPC.**
|
||||
|
||||
- **VPN connection**: una connessione sicura tra la tua attrezzatura on-premises e le tue VPC.
|
||||
- **VPN tunnel**: un collegamento cifrato attraverso il quale i dati possono passare dalla rete del cliente verso o da AWS.
|
||||
- **VPN connection**: Una connessione sicura tra il tuo equipaggiamento on-premises e le tue VPC.
|
||||
- **VPN tunnel**: Un link criptato attraverso il quale i dati possono transitare dalla rete del cliente verso AWS e viceversa.
|
||||
|
||||
Ogni connessione VPN include due VPN tunnels che puoi usare simultaneamente per alta disponibilità.
|
||||
Ogni VPN connection include due VPN tunnel che puoi usare simultaneamente per alta disponibilità.
|
||||
|
||||
- **Customer gateway**: una risorsa AWS che fornisce informazioni ad AWS sul tuo dispositivo customer gateway.
|
||||
- **Customer gateway device**: un dispositivo fisico o un'applicazione software sul tuo lato della connessione Site-to-Site VPN.
|
||||
- **Virtual private gateway**: il concentratore VPN sul lato Amazon della connessione Site-to-Site VPN. Usi un virtual private gateway o un transit gateway come gateway per il lato Amazon della connessione Site-to-Site VPN.
|
||||
- **Transit gateway**: un hub di transito che può essere usato per interconnettere le tue VPC e le reti on-premises. Usi un transit gateway o virtual private gateway come gateway per il lato Amazon della connessione Site-to-Site VPN.
|
||||
- **Customer gateway**: Una risorsa AWS che fornisce informazioni ad AWS sul tuo dispositivo customer gateway.
|
||||
- **Customer gateway device**: Un dispositivo fisico o un'applicazione software sul tuo lato della Site-to-Site VPN connection.
|
||||
- **Virtual private gateway**: Il concentratore VPN dal lato Amazon della Site-to-Site VPN connection. Puoi usare un virtual private gateway o un transit gateway come gateway per il lato Amazon della Site-to-Site VPN connection.
|
||||
- **Transit gateway**: Un hub di transito che può essere usato per interconnettere le tue VPC e le reti on-premises. Puoi usare un transit gateway o un virtual private gateway come gateway per il lato Amazon della Site-to-Site VPN connection.
|
||||
|
||||
#### Limitazioni
|
||||
#### Limitations
|
||||
|
||||
- Il traffico IPv6 non è supportato per le connessioni VPN su un virtual private gateway.
|
||||
- Il traffico IPv6 non è supportato per le VPN connections su un virtual private gateway.
|
||||
- Una AWS VPN connection non supporta Path MTU Discovery.
|
||||
|
||||
Inoltre, considera quanto segue quando usi Site-to-Site VPN.
|
||||
Inoltre, prendi in considerazione quanto segue quando usi Site-to-Site VPN.
|
||||
|
||||
- Quando connetti le tue VPC a una rete on-premises comune, raccomandiamo di usare blocchi CIDR non sovrapposti per le tue reti.
|
||||
- Quando colleghi le tue VPC a una rete on-premises comune, si raccomanda di usare blocchi CIDR non sovrapposti per le tue reti.
|
||||
|
||||
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
|
||||
|
||||
**Connettiti dalla tua macchina alla tua VPC**
|
||||
|
||||
#### Concetti
|
||||
#### Concepts
|
||||
|
||||
- **Client VPN endpoint:** La risorsa che crei e configuri per abilitare e gestire le sessioni VPN client. È la risorsa dove terminano tutte le sessioni Client VPN.
|
||||
- **Target network:** Un target network è la rete che associ a un Client VPN endpoint. **Una subnet di una VPC è un target network**. Associare una subnet a un Client VPN endpoint ti permette di stabilire sessioni VPN. Puoi associare più subnet a un Client VPN endpoint per alta disponibilità. Tutte le subnet devono appartenere alla stessa VPC. Ogni subnet deve appartenere a una Availability Zone diversa.
|
||||
- **Route:** Ogni Client VPN endpoint ha una route table che descrive le rotte di rete di destinazione disponibili. Ogni route nella route table specifica il percorso per il traffico verso risorse o reti specifiche.
|
||||
- **Authorization rules:** Una authorization rule **restringe gli utenti che possono accedere a una rete**. Per una rete specificata, configuri il gruppo Active Directory o identity provider (IdP) che è autorizzato. Solo gli utenti appartenenti a questo gruppo possono accedere alla rete specificata. **Di default, non ci sono authorization rules** e devi configurarle per permettere agli utenti di accedere a risorse e reti.
|
||||
- **Client:** L'utente finale che si connette al Client VPN endpoint per stabilire una sessione VPN. Gli utenti finali devono scaricare un client OpenVPN e usare il file di configurazione del Client VPN endpoint che hai creato per stabilire una sessione VPN.
|
||||
- **Client CIDR range:** Un intervallo di indirizzi IP da cui assegnare gli indirizzi IP dei client. Ogni connessione al Client VPN endpoint riceve un indirizzo IP univoco dal client CIDR range. Scegli il client CIDR range, per esempio, `10.2.0.0/16`.
|
||||
- **Client VPN endpoint:** La risorsa che crei e configuri per abilitare e gestire le sessioni VPN dei client. È la risorsa dove tutte le sessioni Client VPN terminano.
|
||||
- **Target network:** Una target network è la rete che associ a un Client VPN endpoint. **Una subnet di una VPC è una target network**. Associare una subnet a un Client VPN endpoint ti permette di stabilire sessioni VPN. Puoi associare più subnet a un Client VPN endpoint per alta disponibilità. Tutte le subnet devono appartenere alla stessa VPC. Ogni subnet deve appartenere a una Availability Zone diversa.
|
||||
- **Route**: Ogni Client VPN endpoint ha una route table che descrive le rotte di destinazione disponibili. Ogni route nella route table specifica il percorso per il traffico verso risorse o reti specifiche.
|
||||
- **Authorization rules:** Una authorization rule **restringe gli utenti che possono accedere a una rete**. Per una rete specificata, configuri il gruppo Active Directory o il gruppo dell'identity provider (IdP) che è autorizzato. Solo gli utenti appartenenti a questo gruppo possono accedere alla rete specificata. **Per default non ci sono authorization rules** e devi configurare le authorization rules per permettere agli utenti di accedere a risorse e reti.
|
||||
- **Client:** L'utente finale che si connette al Client VPN endpoint per stabilire una sessione VPN. Gli utenti finali devono scaricare un client OpenVPN e usare il file di configurazione del Client VPN endpoint che hai creato per stabilire la sessione VPN.
|
||||
- **Client CIDR range:** Un intervallo di indirizzi IP dal quale assegnare gli indirizzi IP ai client. Ogni connessione al Client VPN endpoint riceve un indirizzo IP unico dal client CIDR range. Scegli il client CIDR range, per esempio `10.2.0.0/16`.
|
||||
- **Client VPN ports:** AWS Client VPN supporta le porte 443 e 1194 sia per TCP che per UDP. Il default è la porta 443.
|
||||
- **Client VPN network interfaces:** Quando associ una subnet al tuo Client VPN endpoint, vengono create Client VPN network interfaces in quella subnet. **Il traffico inviato alla VPC dal Client VPN endpoint viene inviato tramite una Client VPN network interface**. Viene poi applicata la Source network address translation (SNAT), dove l'indirizzo IP sorgente dal client CIDR range viene tradotto nell'indirizzo IP dell'interfaccia Client VPN.
|
||||
- **Connection logging:** Puoi abilitare il connection logging per il tuo Client VPN endpoint per registrare eventi di connessione. Puoi usare queste informazioni per fare forensic, analizzare come viene usato il Client VPN endpoint o debug di problemi di connessione.
|
||||
- **Self-service portal:** Puoi abilitare un self-service portal per il tuo Client VPN endpoint. I client possono effettuare il login al portale web usando le loro credenziali e scaricare l'ultima versione del file di configurazione del Client VPN endpoint, o l'ultima versione del client fornito da AWS.
|
||||
- **Client VPN network interfaces:** Quando associ una subnet al tuo Client VPN endpoint, vengono create Client VPN network interfaces in quella subnet. **Il traffico inviato alla VPC dal Client VPN endpoint è inviato tramite una Client VPN network interface**. Viene quindi applicata la Source Network Address Translation (SNAT), dove l'indirizzo IP sorgente dal client CIDR range viene tradotto nell'indirizzo IP della Client VPN network interface.
|
||||
- **Connection logging:** Puoi abilitare il connection logging per il tuo Client VPN endpoint per registrare gli eventi di connessione. Puoi usare queste informazioni per fare forensics, analizzare come viene usato il Client VPN endpoint o debuggare problemi di connessione.
|
||||
- **Self-service portal:** Puoi abilitare un self-service portal per il tuo Client VPN endpoint. I client possono accedere al portale web usando le loro credenziali e scaricare l'ultima versione del file di configurazione del Client VPN endpoint, o l'ultima versione del client fornito da AWS.
|
||||
|
||||
#### Limitazioni
|
||||
#### Limitations
|
||||
|
||||
- **I client CIDR ranges non possono sovrapporsi con il CIDR locale** della VPC in cui si trova la subnet associata, o con qualsiasi route aggiunta manualmente alla route table del Client VPN endpoint.
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** della VPC in cui la subnet associata è situata, o con qualsiasi route aggiunta manualmente alla route table del Client VPN endpoint.
|
||||
- I client CIDR ranges devono avere una dimensione di blocco di almeno **/22** e non devono **essere maggiori di /12.**
|
||||
- Una **porzione degli indirizzi** nel client CIDR range sono usati per **supportare il modello di disponibilità** del Client VPN endpoint e non possono essere assegnati ai client. Perciò, raccomandiamo di **assegnare un blocco CIDR che contenga il doppio degli indirizzi IP necessari** per abilitare il numero massimo di connessioni simultanee che prevedi di supportare sul Client VPN endpoint.
|
||||
- Il **client CIDR range non può essere cambiato** dopo che hai creato il Client VPN endpoint.
|
||||
- Una **porzione degli indirizzi** nel client CIDR range è usata per **supportare il modello di disponibilità** del Client VPN endpoint, e non può essere assegnata ai client. Pertanto, si raccomanda di **assegnare un blocco CIDR che contenga il doppio del numero di indirizzi IP richiesti** per abilitare il numero massimo di connessioni concorrenti che prevedi di supportare sul Client VPN endpoint.
|
||||
- Il **client CIDR range non può essere cambiato** dopo aver creato il Client VPN endpoint.
|
||||
- Le **subnet** associate a un Client VPN endpoint **devono essere nella stessa VPC**.
|
||||
- Non puoi associare più subnet dalla stessa Availability Zone a un Client VPN endpoint.
|
||||
- Un Client VPN endpoint **non supporta associazioni di subnet in una VPC con tenancy dedicata**.
|
||||
- Un Client VPN endpoint **non supporta associazioni di subnet** in una VPC con tenancy dedicata (dedicated tenancy).
|
||||
- Client VPN supporta solo traffico **IPv4**.
|
||||
- Client VPN **non è** conforme agli standard Federal Information Processing Standards (**FIPS**).
|
||||
- Se l'autenticazione multi-factor (MFA) è disabilitata per il tuo Active Directory, una password utente non può essere nel seguente formato.
|
||||
- Client VPN **non** è conforme agli standard Federal Information Processing Standards (**FIPS**).
|
||||
- Se la multi-factor authentication (MFA) è disabilitata per il tuo Active Directory, una password utente non può essere nel seguente formato.
|
||||
|
||||
```
|
||||
SCRV1:<base64_encoded_string>:<base64_encoded_string>
|
||||
|
||||
@@ -6,34 +6,34 @@
|
||||
|
||||
Amazon S3 è un servizio che permette di **memorizzare grandi quantità di dati**.
|
||||
|
||||
Amazon S3 offre diverse opzioni per ottenere la **protezione** dei dati at REST. Le opzioni includono **Permessi** (Policy), **Crittografia** (Client and Server Side), **Bucket Versioning** e **MFA** **based delete**. L'**utente può abilitare** una qualsiasi di queste opzioni per ottenere la protezione dei dati. La **replicazione dei dati** è una funzionalità interna di AWS nella quale **S3 replica automaticamente ogni oggetto attraverso tutte le Availability Zones** e in questo caso l'organizzazione non deve abilitarla.
|
||||
Amazon S3 fornisce più opzioni per ottenere la **protezione** dei dati a riposo. Le opzioni includono **Permission** (Policy), **Encryption** (Client e Server Side), **Bucket Versioning** e **MFA** **based delete**. L'**utente può abilitare** una qualsiasi di queste opzioni per ottenere la protezione dei dati. La **Data replication** è una funzionalità interna di AWS in cui **S3 automaticamente replica ogni oggetto su tutte le Availability Zones** e l'organizzazione non deve abilitarla in questo caso.
|
||||
|
||||
Con permessi basati sulle risorse, puoi definire permessi separati per le sottodirectory del tuo bucket.
|
||||
Con resource-based permissions, puoi definire permessi separati per le sottodirectory del tuo bucket.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Quando Bucket Versioning è abilitato, qualsiasi azione che tenta di alterare un file genera una nuova versione del file, mantenendo anche il contenuto precedente. Di conseguenza, non sovrascrive il contenuto.
|
||||
Quando Bucket Versioning è abilitato, qualsiasi azione che tenta di alterare un file genererà una nuova versione del file, mantenendo anche il contenuto precedente. Pertanto, non sovrascriverà il contenuto.
|
||||
|
||||
Inoltre, MFA based delete impedisce che le versioni dei file nel bucket S3 vengano cancellate e impedisce anche la disabilitazione di Bucket Versioning, quindi un attaccante non sarà in grado di alterare questi file.
|
||||
Inoltre, MFA based delete impedirà che le versioni dei file nel bucket S3 vengano cancellate e impedirà la disabilitazione di Bucket Versioning, quindi un attaccante non sarà in grado di alterare questi file.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
È possibile **abilitare S3 access logging** (che di default è disabilitato) su un bucket e salvare i log in un bucket diverso per sapere chi sta accedendo al bucket (entrambi i bucket devono trovarsi nella stessa regione).
|
||||
È possibile **abilitare S3 access login** (che di default è disabilitato) su un bucket e salvare i log in un bucket diverso per sapere chi sta accedendo al bucket (entrambi i bucket devono essere nella stessa regione).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
È possibile generare un presigned URL che può generalmente essere usato per **accedere al file specificato** nel bucket. Un **presigned URL appare così**:
|
||||
È possibile generare una presigned URL che di solito può essere usata per **accedere al file specificato** nel bucket. Una **presigned URL looks like this**:
|
||||
```
|
||||
https://<bucket-name>.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa
|
||||
```
|
||||
Una presigned URL può essere **creata dalla cli usando le credenziali di un principal con accesso all'oggetto** (se l'account che usi non ha accesso, verrà creata una presigned URL più corta ma sarà inutile)
|
||||
Una presigned URL può essere **creata from the cli using credentials of a principal with access to the object** (se l'account che usi non ha accesso, verrà creata una presigned URL più corta ma sarà inutile)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> L'unica autorizzazione richiesta per generare un presigned URL è l'autorizzazione che viene concessa, quindi per il comando precedente l'unica autorizzazione richiesta dal principal è `s3:GetObject`
|
||||
>
|
||||
> È anche possibile creare presigned URL con **altre autorizzazioni**:
|
||||
> L'unico permesso richiesto per generare una presigned URL è il permesso che viene concesso, quindi per il comando precedente l'unico permesso necessario per il principal è `s3:GetObject`
|
||||
|
||||
È anche possibile creare presigned URLs con **altri permessi**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -42,99 +42,99 @@ Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
|
||||
ExpiresIn=3600
|
||||
)
|
||||
```
|
||||
### Meccanismi di crittografia S3
|
||||
### S3 Encryption Mechanisms
|
||||
|
||||
**DEK significa Data Encryption Key** ed è la chiave che viene sempre generata e usata per crittografare i dati.
|
||||
**DEK significa Data Encryption Key (chiave di crittografia dei dati)** ed è la chiave che viene sempre generata e usata per cifrare i dati.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Crittografia lato server con chiavi gestite da S3, SSE-S3</strong></summary>
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
|
||||
Questa opzione richiede una configurazione minima e tutta la gestione delle chiavi di crittografia è gestita da AWS. Tutto ciò che devi fare è **caricare i tuoi dati e S3 si occuperà di tutti gli altri aspetti**. Ad ogni bucket in un account S3 è assegnata una bucket key.
|
||||
Questa opzione richiede una configurazione minima e tutta la gestione delle chiavi di cifratura è gestita da AWS. Tutto quello che devi fare è **caricare i tuoi dati e S3 si occuperà di tutti gli altri aspetti**. A ogni bucket in un account S3 viene assegnata una bucket key.
|
||||
|
||||
- Crittografia:
|
||||
- Dati dell'oggetto + DEK in chiaro creato --> Dati cifrati (memorizzati in S3)
|
||||
- DEK in chiaro creato + S3 Master Key --> DEK cifrato (memorizzato in S3) e il testo in chiaro viene cancellato dalla memoria
|
||||
- Decrittografia:
|
||||
- DEK cifrato + S3 Master Key --> DEK in chiaro
|
||||
- DEK in chiaro + Dati cifrati --> Dati dell'oggetto
|
||||
- Encryption:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) and plain text is deleted from memory
|
||||
- Decryption:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Nota che in questo caso **la chiave è gestita da AWS** (rotazione solo ogni 3 anni). Se usi la tua chiave potrai ruotare, disabilitare e applicare controlli di accesso.
|
||||
Si noti che in questo caso **la chiave è gestita da AWS** (rotazione solo ogni 3 anni). Se usi la tua chiave potrai ruotarla, disabilitarla e applicare controlli di accesso.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Crittografia lato server con chiavi gestite da KMS, SSE-KMS</strong></summary>
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
|
||||
Questo metodo permette a S3 di usare il key management service per generare le tue data encryption keys. KMS ti dà molta più flessibilità su come le tue chiavi sono gestite. Per esempio, puoi disabilitare, ruotare e applicare controlli di accesso alla CMK, e tracciare il loro utilizzo tramite AWS Cloud Trail.
|
||||
Questo metodo permette a S3 di utilizzare il Key Management Service per generare i tuoi data encryption key. KMS ti dà una maggiore flessibilità su come le tue chiavi sono gestite. Per esempio, puoi disabilitare, ruotare e applicare controlli di accesso alla CMK, e verificare il loro utilizzo tramite AWS Cloud Trail.
|
||||
|
||||
- Crittografia:
|
||||
- S3 richiede a KMS le data keys dalla CMK
|
||||
- KMS usa una CMK per generare la coppia DEK in chiaro e DEK cifrato e le invia a S3
|
||||
- S3 usa la chiave in chiaro per cifrare i dati, memorizza i dati cifrati e la chiave cifrata e cancella dalla memoria la chiave in chiaro
|
||||
- Decrittografia:
|
||||
- Encryption:
|
||||
- S3 richiede delle data keys a KMS CMK
|
||||
- KMS usa una CMK per generare la coppia DEK plaintext e DEK encrypted e le invia a S3
|
||||
- S3 usa la DEK in plaintext per cifrare i dati, salva i dati cifrati e la chiave cifrata e cancella dalla memoria la chiave in chiaro
|
||||
- Decryption:
|
||||
- S3 chiede a KMS di decrittare la data key cifrata dell'oggetto
|
||||
- KMS decritta la data key con la CMK e la invia a S3
|
||||
- S3 decritta i dati dell'oggetto
|
||||
- KMS decripta la data key con la CMK e la invia a S3
|
||||
- S3 decripta i dati dell'oggetto
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Crittografia lato server con chiavi fornite dal cliente, SSE-C</strong></summary>
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
|
||||
Questa opzione ti dà la possibilità di fornire la tua master key che potresti già usare fuori da AWS. La chiave fornita dal cliente viene inviata insieme ai dati a S3, dove S3 eseguirà la crittografia per te.
|
||||
Questa opzione ti dà la possibilità di fornire la tua master key che potresti già usare al di fuori di AWS. La chiave fornita dal cliente verrebbe inviata con i tuoi dati a S3, dove S3 eseguirebbe la cifratura per te.
|
||||
|
||||
- Crittografia:
|
||||
- L'utente invia i dati dell'oggetto + chiave del cliente a S3
|
||||
- La chiave del cliente viene usata per cifrare i dati e i dati cifrati vengono memorizzati
|
||||
- Viene memorizzato anche un valore HMAC salato della chiave del cliente per future validazioni della chiave
|
||||
- La chiave del cliente viene cancellata dalla memoria
|
||||
- Decrittografia:
|
||||
- L'utente invia la chiave del cliente
|
||||
- La chiave viene validata contro il valore HMAC memorizzato
|
||||
- La chiave fornita dal cliente viene poi usata per decrittare i dati
|
||||
- Encryption:
|
||||
- L'utente invia i dati dell'oggetto + customer key a S3
|
||||
- La customer key viene usata per cifrare i dati e i dati cifrati vengono salvati
|
||||
- viene memorizzato anche un valore HMAC salato della customer key per future validazioni della chiave
|
||||
- la customer key viene cancellata dalla memoria
|
||||
- Decryption:
|
||||
- L'utente invia la customer key
|
||||
- La chiave viene validata confrontandola con il valore HMAC memorizzato
|
||||
- La chiave fornita dal cliente viene quindi usata per decriptare i dati
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Crittografia lato client con KMS, CSE-KMS</strong></summary>
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Analogamente a SSE-KMS, anche questo usa KMS per generare le data encryption keys. Tuttavia, in questo caso KMS viene invocato dal client e non da S3. La crittografia avviene lato client e i dati cifrati vengono poi inviati a S3 per essere memorizzati.
|
||||
Analogamente a SSE-KMS, questo utilizza il KMS per generare le data encryption key. Tuttavia, questa volta KMS viene invocato dal client e non da S3. La cifratura avviene lato client e i dati cifrati vengono poi inviati a S3 per l'archiviazione.
|
||||
|
||||
- Crittografia:
|
||||
- Encryption:
|
||||
- Il client richiede una data key a KMS
|
||||
- KMS restituisce il DEK in chiaro e il DEK cifrato con la CMK
|
||||
- KMS restituisce la DEK in plaintext e la DEK cifrata con la CMK
|
||||
- Entrambe le chiavi vengono restituite al client
|
||||
- Il client cifra i dati con il DEK in chiaro e invia a S3 i dati cifrati + il DEK cifrato (che viene salvato come metadata dei dati cifrati dentro S3)
|
||||
- Decrittografia:
|
||||
- I dati cifrati con il DEK cifrato vengono inviati al client
|
||||
- Il client chiede a KMS di decrittare la chiave cifrata usando la CMK e KMS restituisce il DEK in chiaro
|
||||
- Il client può ora decrittare i dati cifrati
|
||||
- Il client cifra i dati con la DEK in plaintext e invia a S3 i dati cifrati + la DEK cifrata (che viene salvata come metadata dei dati cifrati in S3)
|
||||
- Decryption:
|
||||
- I dati cifrati con la DEK cifrata vengono inviati al client
|
||||
- Il client chiede a KMS di decriptare la DEK cifrata usando la CMK e KMS restituisce la DEK in plaintext
|
||||
- Il client può ora decriptare i dati cifrati
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Crittografia lato client con chiavi fornite dal cliente, CSE-C</strong></summary>
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
|
||||
Con questo meccanismo puoi utilizzare le tue chiavi e usare un client AWS-SDK per cifrare i dati prima di inviarli a S3 per la memorizzazione.
|
||||
Con questo meccanismo puoi utilizzare le tue chiavi fornite e usare un client AWS-SDK per cifrare i tuoi dati prima di inviarli a S3 per l'archiviazione.
|
||||
|
||||
- Crittografia:
|
||||
- Il client genera un DEK e cifra i dati in chiaro
|
||||
- Poi, usando la propria CMK personalizzata, cifra il DEK
|
||||
- Invia i dati cifrati + DEK cifrato a S3 dove vengono memorizzati
|
||||
- Decrittografia:
|
||||
- S3 invia i dati cifrati e il DEK
|
||||
- Poiché il client possiede la CMK usata per cifrare il DEK, decritta il DEK e poi usa il DEK in chiaro per decrittare i dati
|
||||
- Encryption:
|
||||
- Il client genera una DEK e cifra i dati in chiaro
|
||||
- Poi, usando la propria CMK personalizzata, cifra la DEK
|
||||
- invia i dati cifrati + la DEK cifrata a S3 dove vengono memorizzati
|
||||
- Decryption:
|
||||
- S3 invia i dati cifrati e la DEK cifrata
|
||||
- Poiché il client possiede già la CMK usata per cifrare la DEK, la decripta e poi usa la DEK in plaintext per decriptare i dati
|
||||
|
||||
</details>
|
||||
|
||||
### **Enumerazione**
|
||||
### **Enumeration**
|
||||
|
||||
Una delle modalità principali e tradizionali per compromettere organizzazioni AWS inizia compromettendo i bucket pubblicamente accessibili. **Puoi trovare** [**strumenti di enumerazione per bucket pubblici in questa pagina**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
Uno dei modi principali, tradizionalmente, per compromettere organizzazioni AWS inizia compromettendo bucket accessibili pubblicamente. **You can find** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
```bash
|
||||
# Get buckets ACLs
|
||||
aws s3api get-bucket-acl --bucket <bucket-name>
|
||||
@@ -229,16 +229,16 @@ aws s3api put-object-acl --bucket <bucket-name> --key flag --access-control-poli
|
||||
```
|
||||
### dual-stack <a href="#dual-stack-endpoints-description" id="dual-stack-endpoints-description"></a>
|
||||
|
||||
Puoi accedere a un bucket S3 tramite un endpoint dual-stack usando un nome di endpoint in stile virtual hosted o in stile path. Questi sono utili per accedere a S3 tramite IPv6.
|
||||
Puoi accedere a un bucket S3 tramite un endpoint dual-stack usando un virtual hosted-style o un path-style endpoint name. Questi sono utili per accedere a S3 tramite IPv6.
|
||||
|
||||
Dual-stack endpoints use the following syntax:
|
||||
Gli endpoint dual-stack usano la seguente sintassi:
|
||||
|
||||
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
|
||||
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
|
||||
|
||||
### Privesc
|
||||
|
||||
In the following page you can check how to **abuse S3 permissions to escalate privileges**:
|
||||
Nella pagina seguente puoi vedere come **abuse S3 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
@@ -266,21 +266,21 @@ In the following page you can check how to **abuse S3 permissions to escalate pr
|
||||
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) era possibile memorizzare nella cache la risposta di un bucket arbitrario come se appartenesse a un altro. Questo poteva essere abusato per modificare, ad esempio, le risposte di file javascript e compromettere pagine arbitrarie che utilizzano S3 per immagazzinare codice statico.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) era possibile memorizzare nella cache la risposta di un bucket arbitrario come se appartenesse a uno diverso. Questo poteva essere abusato per modificare, ad esempio, le risposte dei file javascript e compromettere pagine arbitrarie che usano S3 per memorizzare codice statico.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena è un servizio di query interattivo che rende semplice **analizzare i dati** direttamente in Amazon Simple Storage Service (Amazon **S3**) **usando** standard **SQL**.
|
||||
Amazon Athena è un servizio di query interattivo che rende semplice l'**analisi dei dati** direttamente in Amazon Simple Storage Service (Amazon **S3**) **usando** lo standard **SQL**.
|
||||
|
||||
È necessario **preparare una tabella DB relazionale** con il formato dei contenuti che appariranno nei bucket S3 monitorati. Successivamente, Amazon Athena sarà in grado di popolare il DB dai log, così potrai eseguirvi query.
|
||||
Devi preparare una **tabella relazionale DB** con il formato dei contenuti che compariranno nei bucket S3 monitorati. Successivamente, Amazon Athena sarà in grado di popolare la tabella dai log, così potrai interrogarla.
|
||||
|
||||
Amazon Athena supporta la **possibilità di interrogare dati S3 già crittografati** e, se configurato per farlo, **Athena può anche crittografare i risultati della query che poi possono essere archiviati in S3**.
|
||||
Amazon Athena supporta la **possibilità di interrogare dati S3 già cifrati** e, se configurata per farlo, **Athena può anche cifrare i risultati della query che poi possono essere archiviati in S3**.
|
||||
|
||||
**Questa crittografia dei risultati è indipendente dai dati S3 sottostanti interrogati**, il che significa che anche se i dati S3 non sono crittografati, i risultati della query possono esserlo. Un paio di punti da tenere a mente: Amazon Athena supporta solo dati che sono stati **crittografati** con i **seguenti metodi di crittografia S3**, **SSE-S3, SSE-KMS, e CSE-KMS**.
|
||||
**Questa cifratura dei risultati è indipendente dai dati S3 sottostanti interrogati**, il che significa che anche se i dati S3 non sono cifrati, i risultati della query possono esserlo. Un paio di punti da tenere a mente: Amazon Athena supporta solo dati che sono stati **cifrati** con i **seguenti metodi di cifratura S3**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
|
||||
SSE-C e CSE-C non sono supportati. Inoltre, è importante capire che Amazon Athena eseguirà query solo su **oggetti crittografati che si trovano nella stessa regione della query stessa**. Se devi interrogare dati S3 crittografati con KMS, sono necessarie autorizzazioni specifiche per l'utente Athena per consentire l'esecuzione della query.
|
||||
SSE-C e CSE-C non sono supportati. Inoltre, è importante capire che Amazon Athena eseguirà query solo contro **oggetti cifrati che si trovano nella stessa regione della query stessa**. Se hai bisogno di interrogare dati S3 cifrati utilizzando KMS, allora sono necessarie autorizzazioni specifiche per l'utente Athena per consentire l'esecuzione della query.
|
||||
|
||||
### Enumeration
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
|
||||
Reference in New Issue
Block a user