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-ec2-
This commit is contained in:
@@ -1,185 +1,185 @@
|
||||
# AWS - VPC i osnovne informacije o umrežavanju
|
||||
# AWS - VPC & Networking Osnovne informacije
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS Networking in a Nutshell
|
||||
## AWS Networking ukratko
|
||||
|
||||
A **VPC** sadrži **network CIDR** kao 10.0.0.0/16 (sa svojim **routing table** i **network ACL**).
|
||||
|
||||
Ova VPC mreža je podeljena na **subnetworks**, tako da je **subnetwork** direktno **povezan** sa **VPC**, **routing** **table** i **network ACL**.
|
||||
|
||||
Zatim, **Network Interface**-i prikačeni na servise (kao EC2 instance) su **povezani** sa **subnetworks** uz pomoć **security group(s)**.
|
||||
Zatim, **Network Interface**-i prikačeni servisima (kao EC2 instances) su **povezani** sa **subnetworks** koristeći **security group(s)**.
|
||||
|
||||
Dakle, **security group** će ograničiti izložene portove za network **interfaces koji je koriste**, **nezavisno od subnetwork-a**. A **network ACL** će **ograničiti** izložene portove za **celu mrežu**.
|
||||
Dakle, **security group** će ograničiti izložene portove mrežnih **interfejsa koji je koriste**, **nezavisno od subneta**. A **network ACL** će **ograničiti** izložene portove za celu mrežu.
|
||||
|
||||
Štaviše, da biste imali **pristup Internetu**, postoje neke važne konfiguracije koje treba proveriti:
|
||||
Pored toga, da biste imali **pristup Internetu**, postoje neke zanimljive konfiguracije koje treba proveriti:
|
||||
|
||||
- **subnetwork** može **auto-assign public IPv4 addresses**
|
||||
- **instance** kreirana u mreži koja **auto-assign IPv4 addresses može dobiti jednu**
|
||||
- **Internet gateway** mora biti **attached** na **VPC**
|
||||
- Takođe možete koristiti **Egress-only internet gateways**
|
||||
- Možete imati i **NAT gateway** u **private subnet** tako da je moguće **povezivanje sa eksternim servisima** iz te private subnet, ali **nije moguće pristupiti njima iz spolja**.
|
||||
- NAT gateway može biti **public** (pristup internetu) ili **private** (pristup drugim VPC-ovima)
|
||||
- A **subnetwork** može **auto-assign public IPv4 addresses**
|
||||
- An **instance** created in the network that **auto-assign IPv4 addresses can get one**
|
||||
- An **Internet gateway** need to be **attached** to the **VPC**
|
||||
- You could also use **Egress-only internet gateways**
|
||||
- You could also have a **NAT gateway** in a **private subnet** so it's possible to **connect to external services** from that private subnet, but it's **not possible to reach them from the outside**.
|
||||
- The NAT gateway can be **public** (access to the internet) or **private** (access to other VPCs)
|
||||
|
||||
.png>)
|
||||
|
||||
## VPC
|
||||
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) omogućava vam da **pokrenete AWS resurse u virtuelnoj mreži koju ste definisali**. Ova virtuelna mreža će imati nekoliko subnet-ova, Internet Gateways za pristup Internetu, ACL-ove, Security groups, IP adrese...
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) omogućava vam da **pokrenete AWS resources u virtuelnoj mreži** koju ste definisali. Ta virtuelna mreža će imati više subneta, Internet Gateways za pristup Internetu, ACLs, Security groups, IP-ove...
|
||||
|
||||
### Subnets
|
||||
|
||||
Subnets pomažu da se sprovede viši nivo bezbednosti. **Logičko grupisanje sličnih resursa** takođe pomaže u održavanju **jednostavnijeg upravljanja** čitavom infrastrukturom.
|
||||
Subnets pomažu da se uvede viši nivo bezbednosti. **Logičko grupisanje sličnih resursa** takođe olakšava **upravljanje** vašom infrastrukturom.
|
||||
|
||||
- Valid CIDR su od /16 netmaska do /28 netmaska.
|
||||
- Subnet ne može biti u različitim availability zonama istovremeno.
|
||||
- **AWS rezerviše prva tri host IP-a** svakog subnet-a **za internu AWS upotrebu**: prva host adresa se koristi za VPC router. Druga adresa je rezervisana za AWS DNS, a treća adresa je rezervisana za buduću upotrebu.
|
||||
- Nazivaju se **public subnets** oni koji imaju **direktan pristup Internetu, dok private subnets nemaju.**
|
||||
- Valid CIDR su od /16 netmask do /28 netmask.
|
||||
- A subnet ne može biti u različitim Availability Zones u isto vreme.
|
||||
- **AWS rezerviše prva tri host IP adrese** svakog subneta **za internu AWS upotrebu**: prva host adresa se koristi za VPC router. Druga adresa je rezervisana za AWS DNS, a treća adresa je rezervisana za buduću upotrebu.
|
||||
- Nazivaju se **public subnets** oni koji imaju **direktan pristup Internetu, dok private subnets to nemaju.**
|
||||
|
||||
### Route Tables
|
||||
|
||||
Route tables određuju rutiranje saobraćaja za subnet unutar VPC-a. One određuju koji mrežni saobraćaj se prosleđuje ka internetu ili ka VPN konekciji. Obično ćete naći pristup za:
|
||||
Route tables određuju rutiranje saobraćaja za subnet unutar VPC-a. One određuju koji mrežni saobraćaj se prosleđuje ka internetu ili ka VPN konekciji. Obično ćete naći pristup:
|
||||
|
||||
- Lokalni VPC
|
||||
- Local VPC
|
||||
- NAT
|
||||
- Internet Gateways / Egress-only Internet gateways (potrebni da bi VPC imao pristup Internetu).
|
||||
- Da biste subnet učinili javnim, potrebno je **kreirati** i **prikačiti** **Internet gateway** svom VPC-u.
|
||||
- Da biste učinili subnet javnim, potrebno je da **kreirate** i **prikačite** **Internet gateway** na vaš VPC.
|
||||
- VPC endpoints (za pristup S3 iz privatnih mreža)
|
||||
|
||||
### ACLs
|
||||
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs su firewall pravila koja kontrolišu dolazni i odlazni mrežni saobraćaj ka subnet-u. Mogu se koristiti za dopuštanje ili odbijanje saobraćaja do specifičnih IP adresa ili opsega.
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs su pravila firewalla koja kontrolišu dolazni i odlazni mrežni saobraćaj ka subnetu. Mogu se koristiti za dozvoljavanje ili odbijanje saobraćaja ka određenim IP adresama ili opsezima.
|
||||
|
||||
- Najčešće se dozvoljava/odbija pristup koristeći security groups, ali ACL je jedini način da potpuno prekinete već uspostavljene reverse shell-ove. Izmenjeno pravilo u security group ne prekida već uspostavljene konekcije.
|
||||
- Međutim, ovo se odnosi na ceo subnetwork — pazite pri zabranjivanju jer bi moglo poremetiti potrebnu funkcionalnost.
|
||||
- Najčešće se pristup dozvoljava/odbija koristeći security groups, ali ovo je jedini način da se u potpunosti prekine već uspostavljen reverse shells. Izmenjeno pravilo u security groups ne zaustavlja već uspostavljene konekcije
|
||||
- Međutim, ovo se odnosi na ceo subnet — budite oprezni prilikom zabrane jer potrebna funkcionalnost može biti poremećena
|
||||
|
||||
### Security Groups
|
||||
|
||||
Security groups su virtuelni **firewall** koji kontrolišu inbound i outbound mrežni **saobraćaj ka instancama** u VPC-u. Veza obično 1 SG na više instanci (često 1:1).\
|
||||
Obično se koriste za otvaranje opasnih portova na instancama, kao na primer port 22:
|
||||
Security groups su virtuelni **firewall** koji kontrolišu inbound i outbound mrežni **saobraćaj ka instance** u VPC-u. Relacija 1 SG prema M instances (obično 1 prema 1).\
|
||||
Obično se koriste za otvaranje opasnih portova na instancama, kao što je npr. port 22:
|
||||
|
||||
<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_ je **statička IPv4 adresa** dizajnirana za dinamičko cloud računarstvo. Elastic IP adresa je alocirana vašem AWS nalogu i vaša je dok je ne oslobodite. Korišćenjem Elastic IP adrese možete maskirati grešku instance ili softvera tako što ćete brzo premapirati adresu na drugu instancu u svom nalogu.
|
||||
An _Elastic IP address_ je **statička IPv4 adresa** dizajnirana za dinamičko cloud computing okruženje. Elastic IP adresa se alocira vašem AWS account-u i vaša je dok je ne oslobodite. Korišćenjem Elastic IP adrese možete prikriti pad instance ili softvera brzo premapiranjem adrese na drugu instancu na vašem account-u.
|
||||
|
||||
### Connection between subnets
|
||||
|
||||
Po default-u, svim subnet-ovima je **automatsko dodeljivanje javnih IP adresa isključeno**, ali se može uključiti.
|
||||
Po defaultu, svi subnets imaju **automatsko dodeljivanje javnih IP adresa isključeno**, ali se to može uključiti.
|
||||
|
||||
**Lokalna ruta unutar routing table omogućava komunikaciju između VPC subnet-ova.**
|
||||
**A local route within a route table enables communication between VPC subnets.**
|
||||
|
||||
Ako povezujete subnet sa drugim subnet-om, **ne možete pristupiti subnet-ovima koji su povezani sa tim drugim subnet-om preko te veze**, potrebno je da direktno kreirate konekciju sa njima. **Ovo važi i za internet gateways.** Ne možete proći kroz vezu između subnet-ova da biste došli do interneta — morate dodeliti internet gateway svom subnet-u.
|
||||
Ako **povezujete subnet sa drugim subnetom, ne možete automatski pristupiti subnetima povezanima sa tim drugim subnetom**, potrebno je da kreirate veze direktno sa njima. **Ovo se takođe odnosi na Internet gateways**. Ne možete ići kroz vezu između subneta da biste pristupili internetu, morate dodeliti Internet gateway svom subnetu.
|
||||
|
||||
### VPC Peering
|
||||
|
||||
VPC peering vam omogućava da **povežete dva ili više VPC-ova zajedno**, koristeći IPv4 ili IPv6, kao da su deo iste mreže.
|
||||
VPC peering vam omogućava da **povežete dva ili više VPC-a zajedno**, koristeći IPV4 ili IPV6, kao da su deo iste mreže.
|
||||
|
||||
Kada je peer konekcija uspostavljena, **resursi u jednom VPC-u mogu pristupati resursima u drugom**. Konektivnost između VPC-ova je implementirana preko postojeće AWS mrežne infrastrukture, pa je visoko dostupna bez zagušenja propusnog opsega. Pošto **peered konekcije funkcionišu kao da su deo iste mreže**, postoje ograničenja vezana za CIDR opsege koje možete koristiti.\
|
||||
Ako imate **preklapajuće ili duplirane CIDR** opsege za vaše VPC-ove, onda **nećete moći da peer-ujete VPC-ove**.\
|
||||
Svaki AWS VPC će **komunicirati samo sa svojim peer-om**. Na primer, ako imate peering vezu između VPC 1 i VPC 2, i drugu vezu između VPC 2 i VPC 3, onda VPC 1 i VPC 2 mogu međusobno komunicirati, kao i VPC 2 i VPC 3, ali VPC 1 i VPC 3 ne mogu. **Ne možete rutirati kroz jedan VPC da biste došli do drugog.**
|
||||
Kada je peering uspostavljen, **resursi u jednom VPC-u mogu pristupiti resursima u drugom**. Konektivnost između VPC-a se realizuje kroz postojeću AWS mrežnu infrastrukturu, tako da je visoko dostupna bez uskog grla u propusnosti. Kako **peered konekcije funkcionišu kao da su deo iste mreže**, postoje ograničenja u pogledu CIDR opsega koje možete koristiti.\
|
||||
Ako imate **preklapajuće ili identične CIDR** opsege za vaše VPC-e, onda **nećete moći da peeer-ujete VPC-e**.\
|
||||
Svaki AWS VPC će **komunicirati samo sa svojim peer-om**. Na primer, ako imate peering konekciju između VPC 1 i VPC 2, i drugu konekciju između VPC 2 i VPC 3, onda VPC 1 i VPC 2 mogu komunicirati direktno, kao i VPC 2 i VPC 3, međutim, VPC 1 i VPC 3 ne bi mogli. **Ne možete rutirati kroz jedan VPC da biste došli do drugog.**
|
||||
|
||||
### **VPC Flow Logs**
|
||||
|
||||
Unutar vašeg VPC-a, potencijalno možete imati stotine ili čak hiljade resursa koji međusobno komuniciraju između različitih subnet-ova, javnih i privatnih, kao i između različitih VPC-ova preko VPC peering konekcija. **VPC Flow Logs omogućavaju vam da zabeležite informacije o IP saobraćaju koje protiče između network interfaces vaših resursa unutar VPC-a**.
|
||||
Unutar vašeg VPC-a, možete imati stotine ili čak hiljade resursa koji međusobno komuniciraju između različitih subneta, javnih i privatnih, kao i između različitih VPC-a putem VPC peering konekcija. **VPC Flow Logs vam omogućavaju da zabeležite IP saobraćajne informacije koje protiču između mrežnih interfejsa vaših resursa unutar VPC-a**.
|
||||
|
||||
Za razliku od S3 access logs i CloudFront access logs, **log podaci generisani od strane VPC Flow Logs se ne čuvaju u S3. Umesto toga, zabeleženi log podaci se šalju u CloudWatch logs**.
|
||||
Za razliku od S3 access logs i CloudFront access logs, **log podaci generisani od strane VPC Flow Logs se ne čuvaju u S3. Umesto toga, podaci iz flow log-ova se šalju u CloudWatch logs**.
|
||||
|
||||
Ograničenja:
|
||||
|
||||
- Ako imate VPC peered konekciju, moći ćete da vidite flow logs samo za peered VPC-ove koji su u istom nalogu.
|
||||
- Ako još uvek koristite resurse u EC2-Classic okruženju, nažalost ne možete dobiti informacije sa njihovih interfejsa.
|
||||
- Jednom kada je VPC Flow Log kreiran, ne može se menjati. Da biste izmenili konfiguraciju VPC Flow Log-a, morate ga obrisati i kreirati novi.
|
||||
- Sledeći saobraćaj nije monitorisan i nije zabeležen u logovima: DHCP saobraćaj unutar VPC-a, saobraćaj sa instanci koji je namenjen Amazon DNS serveru.
|
||||
- Bilo koji saobraćaj namenjen IP adresi za podrazumevani VPC router i saobraćaj ka i sa sledećih adresa: 169.254.169.254 (koja se koristi za prikupljanje instance metadata), i 169.254.169.123 (koja se koristi za Amazon Time Sync Service).
|
||||
- Saobraćaj vezan za Amazon Windows activation license sa Windows instance.
|
||||
- Saobraćaj između network load balancer interfejsa i endpoint network interfejsa.
|
||||
- Ako imate VPC peered konekciju, moći ćete da vidite flow logs peered VPC-ova samo ako su u istom account-u.
|
||||
- Ako još uvek imate resurse u EC2-Classic okruženju, nažalost ne možete dohvatiti informacije sa njihovih interfejsa
|
||||
- Kada se VPC Flow Log kreira, ne može se promeniti. Da biste izmenili konfiguraciju VPC Flow Log-a, morate ga obrisati i ponovo kreirati novi.
|
||||
- Sledeći saobraćaj nije monitorisan i nije zabeležen logovima: DHCP saobraćaj unutar VPC-a, saobraćaj sa instanci koji je namenjen Amazon DNS serveru.
|
||||
- Bilo koji saobraćaj namenjen IP adresi za VPC default router i saobraćaj ka i od sledećih adresa: 169.254.169.254 koji se koristi za prikupljanje instance metadata, i 169.254.169.123 koji se koristi za Amazon Time Sync Service.
|
||||
- Saobraćaj vezan za Amazon Windows activation license sa Windows instance
|
||||
- Saobraćaj između network load balancer interfejsa i endpoint network interfejsa
|
||||
|
||||
Za svaki network interface koji objavljuje podatke u CloudWatch log grupu, koristiće se različit log stream. Unutar svakog od ovih stream-ova biće flow log event podaci koji prikazuju sadržaj log unosa. Svaki od ovih **log-ova beleži podatke tokom prozora od približno 10 do 15 minuta**.
|
||||
Za svaki network interface koji objavljuje podatke u CloudWatch log group, koristiće se različit log stream. I unutar svakog od tih stream-ova biće flow log event podaci koji prikazuju sadržaj log unosa. Svaki od ovih **logova beleži podatke tokom prozora od približno 10 do 15 minuta**.
|
||||
|
||||
## VPN
|
||||
|
||||
### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Customer Gateway je resurs koji kreirate u AWS da predstavlja vašu stranu VPN konekcije.
|
||||
- To je ustvari fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN konekcije.
|
||||
- Dajete informacije o rutiranju i javnu IP adresu vašeg mrežnog uređaja (kao što je ruter ili firewall) AWS-u da biste kreirali Customer Gateway.
|
||||
- A Customer Gateway je resource koji kreirate u AWS da predstavlja vašu stranu VPN konekcije.
|
||||
- To je suštinski fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN konekcije.
|
||||
- Dajete routing informacije i javnu IP adresu vašeg mrežnog uređaja (kao što je router ili firewall) AWS-u da biste kreirali Customer Gateway.
|
||||
- Služi kao referentna tačka za postavljanje VPN konekcije i ne naplaćuje dodatne troškove.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Virtual Private Gateway (VPG) je VPN koncentrator na Amazon strani Site-to-Site VPN konekcije.
|
||||
- Prikačen je na vaš VPC i služi kao cilj za vašu VPN konekciju.
|
||||
- A Virtual Private Gateway (VPG) je VPN koncentrator na Amazon strani Site-to-Site VPN konekcije.
|
||||
- On je prikačen za vaš VPC i služi kao cilj za vašu VPN konekciju.
|
||||
- VPG je AWS strana endpoint-a za VPN konekciju.
|
||||
- Rukuje sigurnom komunikacijom između vašeg VPC-a i vaše on-premises mreže.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Site-to-Site VPN konekcija povezuje vašu on-premises mrežu sa VPC-om kroz siguran, IPsec VPN tunel.
|
||||
- A Site-to-Site VPN connection povezuje vašu on-premises mrežu sa VPC-om kroz sigurni IPsec VPN tunel.
|
||||
- Ovaj tip konekcije zahteva Customer Gateway i Virtual Private Gateway.
|
||||
- Koristi se za sigurnu, stabilnu i konzistentnu komunikaciju između vašeg data centra ili mreže i vašeg AWS okruženja.
|
||||
- Obično se koristi za redovne, dugoročne konekcije i naplaćuje se na osnovu količine podataka prenetih preko konekcije.
|
||||
- Koristi se za sigurnu, stabilnu i doslednu komunikaciju između vašeg data centra ili mreže i vašeg AWS okruženja.
|
||||
- Obično se koristi za redovne, dugoročne konekcije i naplaćuje se na osnovu količine podataka prenesenih preko konekcije.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Client VPN endpoint je resurs koji kreirate u AWS da omogućite i upravljate client VPN sesijama.
|
||||
- Koristi se za omogućavanje pojedinačnih uređaja (kao laptopovi, telefoni, itd.) da se bezbedno povežu na AWS resurse ili vašu on-premises mrežu.
|
||||
- A Client VPN endpoint je resource koji kreirate u AWS da omogućite i upravljate client VPN sesijama.
|
||||
- Koristi se za omogućavanje da pojedinačni uređaji (kao laptopovi, smartfoni itd.) bezbedno povežu AWS resurse ili vašu on-premises mrežu.
|
||||
- Razlikuje se od Site-to-Site VPN po tome što je dizajniran za pojedinačne klijente, a ne za povezivanje celih mreža.
|
||||
- Sa Client VPN, svaki klijentski uređaj koristi VPN klijent softver da uspostavi sigurnu konekciju.
|
||||
- Sa Client VPN-om, svaki klijentski uređaj koristi VPN client softver da uspostavi sigurnu konekciju.
|
||||
|
||||
### Site-to-Site VPN
|
||||
|
||||
**Povežite vašu on-premises mrežu sa vašim VPC-om.**
|
||||
|
||||
- **VPN connection**: Sigurna konekcija između vaše on-premises opreme i vaših VPC-ova.
|
||||
- **VPN tunnel**: Enkriptovani link kroz koji podaci mogu prolaziti između customer mreže i AWS-a.
|
||||
- **VPN connection**: Sigurna konekcija između vaše on-premises opreme i vaših VPC-a.
|
||||
- **VPN tunnel**: Enkriptovani link kroz koji podaci mogu prolaziti sa customer mreže ka ili od AWS-a.
|
||||
|
||||
Svaka VPN konekcija uključuje dva VPN tunela koja možete istovremeno koristiti za visoku dostupnost.
|
||||
Svaka VPN konekcija uključuje dva VPN tunela koje možete istovremeno koristiti za visok nivo dostupnosti.
|
||||
|
||||
- **Customer gateway**: AWS resurs koji pruža informacije AWS-u o vašem customer gateway uređaju.
|
||||
- **Customer gateway**: AWS resource koji daje informacije AWS-u o vašem customer gateway uređaju.
|
||||
- **Customer gateway device**: Fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN konekcije.
|
||||
- **Virtual private gateway**: VPN koncentrator na Amazon strani Site-to-Site VPN konekcije. Koristite virtual private gateway ili transit gateway kao gateway za Amazon stranu Site-to-Site VPN konekcije.
|
||||
- **Transit gateway**: Transit hub koji se može koristiti za međuvezu vaših VPC-ova i on-premises mreža. Koristite transit gateway ili virtual private gateway kao gateway za Amazon stranu Site-to-Site VPN konekcije.
|
||||
- **Transit gateway**: Transit hub koji se može koristiti za međupovezivanje vaših VPC-a i on-premises mreža. Koristite transit gateway ili virtual private gateway kao gateway za Amazon stranu Site-to-Site VPN konekcije.
|
||||
|
||||
#### Limitations
|
||||
|
||||
- IPv6 saobraćaj nije podržan za VPN konekcije na virtual private gateway.
|
||||
- IPv6 traffic nije podržan za VPN konekcije na virtual private gateway.
|
||||
- AWS VPN konekcija ne podržava Path MTU Discovery.
|
||||
|
||||
Pored toga, uzmite u obzir sledeće kada koristite Site-to-Site VPN.
|
||||
|
||||
- Kada povezujete vaše VPC-ove sa zajedničkom on-premises mrežom, preporučujemo da koristite ne-preklapajuće CIDR blokove za vaše mreže.
|
||||
- Kada povezujete vaše VPC-e sa zajedničkom on-premises mrežom, preporučujemo da koristite nepreklapajuće CIDR blokove za vaše mreže.
|
||||
|
||||
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
|
||||
|
||||
**Povežite se sa vaše mašine na vaš VPC**
|
||||
**Povezivanje sa vaše mašine na vaš VPC**
|
||||
|
||||
#### Concepts
|
||||
|
||||
- **Client VPN endpoint:** Resurs koji kreirate i konfigurišete da omogućite i upravljate client VPN sesijama. To je resurs na kojem se sve client VPN sesije završavaju.
|
||||
- **Target network:** Target network je mreža koju povezujete sa Client VPN endpoint-om. **Subnet iz VPC-a je target network**. Povezivanje subnet-a sa Client VPN endpoint-om omogućava uspostavljanje VPN sesija. Možete povezati više subnet-ova sa Client VPN endpoint-om radi visoke dostupnosti. Svi subnet-ovi moraju biti iz istog VPC-a. Svaki subnet mora pripadati različitoj Availability Zone.
|
||||
- **Route**: Svaki Client VPN endpoint ima routing table koji opisuje dostupne destinacione mreže. Svaka ruta u routing table-u specificira put za saobraćaj do specifičnih resursa ili mreža.
|
||||
- **Authorization rules:** Authorization rule **ograničava korisnike koji mogu pristupiti mreži**. Za specificiranu mrežu konfigurišete Active Directory ili identity provider (IdP) grupu koja ima pristup. Samo korisnici koji pripadaju toj grupi mogu pristupiti specificiranoj mreži. **Po default-u nema authorization rules** i morate ih konfigurisati da biste omogućili korisnicima pristup resursima i mrežama.
|
||||
- **Client:** Krajnji korisnik koji se povezuje na Client VPN endpoint da uspostavi VPN sesiju. Krajnji korisnici moraju preuzeti OpenVPN klijent i koristiti Client VPN konfiguracioni fajl koji ste kreirali da uspostave VPN sesiju.
|
||||
- **Client CIDR range:** IP opseg iz kojeg se dodeljuju klijentske IP adrese. Svaka konekcija ka Client VPN endpoint-u dodeljuje se jedinstvena IP adresa iz client CIDR range-a. Birate client CIDR range, na primer, `10.2.0.0/16`.
|
||||
- **Client VPN endpoint:** Resource koji kreirate i konfigurišete da omogućite i upravljate client VPN sesijama. To je resource gde se sve client VPN sesije završavaju.
|
||||
- **Target network:** Target network je mreža koju povežete sa Client VPN endpoint-om. **Subnet iz VPC-a je target network**. Povezivanje subneta sa Client VPN endpoint-om omogućava vam da uspostavite VPN sesije. Možete povezati više subneta sa Client VPN endpoint-om radi visoke dostupnosti. Svi subnetsi moraju biti iz istog VPC-a. Svaki subnet mora pripadati različitom Availability Zone.
|
||||
- **Route**: Svaki Client VPN endpoint ima route table koji opisuje dostupne destinacijske mrežne rute. Svaka ruta u route table-u specificira put za saobraćaj do određenih resursa ili mreža.
|
||||
- **Authorization rules:** Authorization rule **ograničava korisnike koji mogu pristupiti mreži**. Za određenu mrežu konfigurišete Active Directory ili identity provider (IdP) grupu kojoj je dozvoljen pristup. Samo korisnici koji pripadaju toj grupi mogu pristupiti naznačenoj mreži. **Po defaultu nema authorization rules** i morate konfigurisati authorization rules da biste omogućili korisnicima pristup resursima i mrežama.
|
||||
- **Client:** Krajnji korisnik koji se povezuje na Client VPN endpoint da uspostavi VPN sesiju. Krajnji korisnici treba da preuzmu OpenVPN client i koriste Client VPN konfiguracioni fajl koji ste kreirali da uspostave VPN sesiju.
|
||||
- **Client CIDR range:** IP adresni opseg iz kojeg se dodeljuju client IP adrese. Svaka konekcija do Client VPN endpoint-a dobija jedinstvenu IP adresu iz client CIDR range-a. Birate client CIDR range, na primer, `10.2.0.0/16`.
|
||||
- **Client VPN ports:** AWS Client VPN podržava portove 443 i 1194 za TCP i UDP. Default je port 443.
|
||||
- **Client VPN network interfaces:** Kada povežete subnet sa vašim Client VPN endpoint-om, kreiramo Client VPN network interfaces u tom subnet-u. **Saobraćaj koji se šalje iz Client VPN endpoint-a prema VPC-u ide kroz Client VPN network interface**. Primenjuje se Source network address translation (SNAT), gde se source IP adresa iz client CIDR range-a prevodi u IP adresu Client VPN network interface-a.
|
||||
- **Connection logging:** Možete omogućiti connection logging za vaš Client VPN endpoint da beležite događaje povezanosti. Ove informacije možete koristiti za forenziku, analizu kako se Client VPN endpoint koristi, ili debug povezivanja.
|
||||
- **Self-service portal:** Možete omogućiti self-service portal za vaš Client VPN endpoint. Klijenti mogu da se prijave na web portal koristeći svoje kredencijale i preuzmu najnoviju verziju Client VPN endpoint konfiguracionog fajla, ili najnoviju verziju AWS obezbeđenog klijenta.
|
||||
- **Client VPN network interfaces:** Kada povežete subnet sa vašim Client VPN endpoint-om, mi kreiramo Client VPN network interfaces u tom subnetu. **Saobraćaj koji se šalje u VPC sa Client VPN endpoint-a se šalje kroz Client VPN network interface**. Zatim se primenjuje Source network address translation (SNAT), gde se source IP adresa iz client CIDR range-a prevodi na Client VPN network interface IP adresu.
|
||||
- **Connection logging:** Možete omogućiti connection logging za vaš Client VPN endpoint da logujete događaje konekcije. Možete koristiti ove informacije za forenzičku analizu, analiziranje korišćenja vašeg Client VPN endpoint-a ili za debug problema sa konekcijom.
|
||||
- **Self-service portal:** Možete omogućiti self-service portal za vaš Client VPN endpoint. Klijenti se mogu prijaviti na web-based portal koristeći svoje akreditive i preuzeti najnoviju verziju Client VPN endpoint konfiguracionog fajla, ili najnoviju verziju AWS-providovanog klijenta.
|
||||
|
||||
#### Limitations
|
||||
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** VPC-a u kojem je povezani subnet, niti sa bilo kojim rutama koje su ručno dodate u routing table Client VPN endpoint-a.
|
||||
- Client CIDR ranges moraju imati veličinu bloka od najmanje **/22** i ne smeju biti veći od **/12**.
|
||||
- **Deo adresa** u client CIDR range-u koristi se za **podršku availability modelu** Client VPN endpoint-a i ne mogu se dodeliti klijentima. Stoga preporučujemo da **dodelite CIDR blok koji sadrži dvostruko više IP adresa od broja koji vam je potreban** da omogućite maksimalan broj istovremenih konekcija koje planirate da podržite na Client VPN endpoint-u.
|
||||
- **Client CIDR range se ne može promeniti** nakon kreiranja Client VPN endpoint-a.
|
||||
- **Subnet-ovi** povezani sa Client VPN endpoint-om **moraju biti u istom VPC-u**.
|
||||
- Ne možete povezati više subnet-ova iz iste Availability Zone sa Client VPN endpoint-om.
|
||||
- **Client CIDR ranges ne smeju da se preklapaju sa lokalnim CIDR-om** VPC-a u kome se nalazi pridruženi subnet, niti sa bilo kojim rutama ručno dodatim u route table Client VPN endpoint-a.
|
||||
- Client CIDR ranges moraju imati veličinu bloka od **najmanje /22** i ne smeju biti **veći od /12.**
|
||||
- **Deo adresa** u client CIDR range-u se koristi da **podrži model dostupnosti** Client VPN endpoint-a, i ne mogu se dodeliti klijentima. Stoga preporučujemo da **dodelite CIDR blok koji sadrži dva puta veći broj IP adresa nego što vam je potrebno** da biste omogućili maksimalan broj istovremenih konekcija koje planirate da podržite na Client VPN endpoint-u.
|
||||
- **Client CIDR range ne može biti promenjen** nakon što kreirate Client VPN endpoint.
|
||||
- **Subnetsi** pridruženi Client VPN endpoint-u **moraju biti u istom VPC-u**.
|
||||
- Ne možete pridružiti više subneta iz iste Availability Zone sa Client VPN endpoint-om.
|
||||
- Client VPN endpoint **ne podržava subnet associations u dedicated tenancy VPC-u**.
|
||||
- Client VPN podržava samo **IPv4** saobraćaj.
|
||||
- Client VPN **nije** u skladu sa Federal Information Processing Standards (**FIPS**).
|
||||
- Client VPN **nije** Federal Information Processing Standards (**FIPS**) **kompatibilan**.
|
||||
- Ako je multi-factor authentication (MFA) onemogućen za vaš Active Directory, korisnička lozinka ne može biti u sledećem formatu.
|
||||
|
||||
```
|
||||
SCRV1:<base64_encoded_string>:<base64_encoded_string>
|
||||
```
|
||||
|
||||
- Self-service portal **nije dostupan za klijente koji autentifikuju koristeći mutual authentication**.
|
||||
- Self-service portal **nije dostupan za klijente koji se autentifikuju koristeći mutual authentication**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,36 +4,36 @@
|
||||
|
||||
## S3
|
||||
|
||||
Amazon S3 je servis koji vam omogućava da **skladištite velike količine podataka**.
|
||||
Amazon S3 је сервис који вам омогућава да **чувате велике количине података**.
|
||||
|
||||
Amazon S3 nudi više opcija za postizanje **zaštite** podataka u mirovanju (at REST). Opcije uključuju **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** i **MFA** **based delete**. **Korisnik može omogućiti** bilo koju od ovih opcija za zaštitu podataka. **Data replication** je interna funkcija AWS-a gde **S3 automatski replicira svaki objekat preko svih Availability Zones** i organizacija u tom slučaju ne mora to dodatno omogućavati.
|
||||
Amazon S3 пружа више опција за постизање **заштите** података у миру. Опције укључују **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** и **MFA** **based delete**. **Корисник може да омогући** било коју од ових опција да обезбеди заштиту података. **Data replication** је интерна функција AWS-а где **S3 automatically replicates each object across all the Availability Zones** и организација не мора да је омогући.
|
||||
|
||||
Sa resource-based permissions možete zasebno definisati dozvole za pod-direktorijume u vašem bucket-u.
|
||||
With resource-based permissions, можете посебно дефинисати дозволе за поддиректоријуме вашег bucket-а.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Kada je bucket versioning omogućen, svaka akcija koja pokuša da izmeni fajl će generisati novu verziju fajla, pri čemu se zadržava i prethodni sadržaj. Dakle, sadržaj neće biti prepisan.
|
||||
Када је bucket versioning омогућен, свака акција која покушава да измени фајл ће генерисати нову верзију фајла, при чему ће бити сачуван и претходни садржај. Дакле, садржај неће бити преписан.
|
||||
|
||||
Pored toga, MFA based delete će sprečiti brisanje verzija fajlova u S3 bucket-u i onemogućiti isključivanje Bucket Versioning-a, tako da napadač neće moći da menja te fajlove.
|
||||
Поред тога, MFA based delete ће спречити да верзије фајлова у S3 bucket-у буду избрисане и такође спречити онемогућавање Bucket Versioning-а, па нападач неће моћи да измени те фајлове.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
Moguće je **omogućiti S3 access login** (što je po defaultu onemogućeno) za neki bucket i sačuvati logove u drugom bucket-u kako biste znali ko pristupa bucket-u (oba bucketa moraju biti u istoj regiji).
|
||||
Могуће је **enable S3 access login** (што је по подразумеваној вредности онемогућено) за неки bucket и сачувати логове у другом bucket-у да бисте знали ко приступа bucket-у (оба bucket-а морају бити у истом региону).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
Moguće je generisati presigned URL koji se obično može koristiti za **pristup navedenom fajlu** u bucket-u. **Presigned URL izgleda ovako**:
|
||||
Могуће је генерисати presigned URL који се обично може користити да **приступи одређеном фајлу** у bucket-у. presigned URL изгледа овако:
|
||||
```
|
||||
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
|
||||
```
|
||||
Presigned URL se može **kreirati iz cli koristeći kredencijale principala koji ima pristup objektu** (ako nalog koji koristite nema pristup, biće kreiran kraći presigned URL, ali će biti beskoristan)
|
||||
Presigned URL može biti **kreiran iz cli koristeći credentials principala koji ima pristup objektu** (ako account koji koristite nema pristup, biće kreiran kraći presigned URL, ali će biti beskoristan)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Jedina potrebna permisija za generisanje presigned URL je permisija koja se dodeljuje, tako da je za prethodnu komandu jedina permisija koja je potrebna principal-u `s3:GetObject`
|
||||
> Jedina potrebna dozvola za generisanje presigned URL-a je dozvola koja se dodeljuje, tako da je za prethodnu komandu jedina dozvola koja je potrebna principal-u `s3:GetObject`
|
||||
|
||||
Takođe je moguće kreirati presigned URLs sa **drugim permisijama**:
|
||||
Takođe je moguće kreirati presigned URL-ove sa **drugim dozvolama**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -42,24 +42,24 @@ Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
|
||||
ExpiresIn=3600
|
||||
)
|
||||
```
|
||||
### S3 Mekanizmi enkripcije
|
||||
### S3 Encryption Mechanisms
|
||||
|
||||
**DEK znači Data Encryption Key (ključ za enkripciju podataka)** i predstavlja ključ koji se uvek generiše i koristi za enkripciju podataka.
|
||||
**DEK means Data Encryption Key** i predstavlja ključ koji se uvek generiše i koristi za enkripciju podataka.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
|
||||
Ova opcija zahteva minimalnu konfiguraciju i celo upravljanje ključevima za enkripciju obavlja AWS. Sve što treba da uradite je da **upload-ujete podatke i S3 će se pobrinuti za sve ostalo**. Svakom bucket-u u S3 nalogu dodeljuje se bucket key.
|
||||
Ova opcija zahteva minimalnu konfiguraciju i celo upravljanje ključevima za enkripciju vrši AWS. Sve što treba da uradite je da **otpremite svoje podatke i S3 će se pobrinuti za sve ostalo**. Svakom bucket-u na S3 nalogu dodeljuje se bucket key.
|
||||
|
||||
- Encryption:
|
||||
- Object Data + kreirani plaintext DEK --> Encrypted data (smešteno u S3)
|
||||
- Kreirani plaintext DEK + S3 Master Key --> Encrypted DEK (smešteno u S3) i plain text se briše iz memorije
|
||||
- Decryption:
|
||||
- Enkripcija:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) i nešifrovani ključ se briše iz memorije
|
||||
- Dekripcija:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Imajte na umu da je u ovom slučaju **ključ pod upravljanjem AWS-a** (rotacija samo na svakih 3 godine). Ako koristite sopstveni ključ, moći ćete da ga rotirate, onemogućite i primenite kontrolu pristupa.
|
||||
Napomena: u ovom slučaju **ključ je upravljan od strane AWS** (rotacija samo na 3 godine). Ako koristite sopstveni ključ moći ćete da ga rotirate, onemogućite i primenite kontrolu pristupa.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -67,16 +67,16 @@ Imajte na umu da je u ovom slučaju **ključ pod upravljanjem AWS-a** (rotacija
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
|
||||
Ova metoda omogućava S3 da koristi Key Management Service za generisanje vaših data encryption ključeva. KMS vam daje znatno veću fleksibilnost u načinu upravljanja ključevima. Na primer, možete onemogućiti, rotirati i primeniti kontrole pristupa na CMK, kao i revidirati njihovu upotrebu koristeći AWS Cloud Trail.
|
||||
Ova metoda omogućava S3 da koristi key management service za generisanje vaših DEK-ova. KMS vam daje znatno veću fleksibilnost u načinu kako se vaši ključevi upravljaju. Na primer, možete onemogućiti, rotirati i primeniti kontrole pristupa CMK‑u, i pratiti njihovu upotrebu koristeći AWS Cloud Trail.
|
||||
|
||||
- Encryption:
|
||||
- S3 zahteva data keys od KMS CMK
|
||||
- KMS koristi CMK da generiše par: DEK u nešifrovanom obliku i DEK šifrovan, i šalje ih S3
|
||||
- S3 koristi plaintext ključ da enkriptuje podatke, skladišti encrypted data i encrypted key i briše plaintext ključ iz memorije
|
||||
- Decryption:
|
||||
- S3 zahteva od KMS da dešifruje encrypted data key objekta
|
||||
- KMS dešifruje data key koristeći CMK i vraća ga S3
|
||||
- S3 dešifruje object data
|
||||
- Enkripcija:
|
||||
- S3 traži data keys od KMS CMK
|
||||
- KMS koristi CMK da generiše par: plaintext DEK i enkriptovani DEK i šalje ih S3
|
||||
- S3 koristi plaintext ključ da enkriptuje podatke, čuva enkriptovane podatke i enkriptovani ključ i briše iz memorije plaintext ključ
|
||||
- Dekripcija:
|
||||
- S3 traži od KMS da dekriptuje enkriptovani data key objekta
|
||||
- KMS dekriptuje data key pomoću CMK i vraća ga S3
|
||||
- S3 dekriptuje podatak objekta
|
||||
|
||||
</details>
|
||||
|
||||
@@ -84,17 +84,17 @@ Ova metoda omogućava S3 da koristi Key Management Service za generisanje vaših
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
|
||||
Ova opcija vam daje mogućnost da obezbedite sopstveni master ključ koji možda već koristite van AWS-a. Vaš customer-provided key bi bio poslat zajedno sa podacima u S3, gde bi S3 obavio enkripciju za vas.
|
||||
Ova opcija vam daje mogućnost da obezbedite sopstveni master ključ koji već možete koristiti van AWS. Vaš ključ koji obezbeđuje korisnik biće poslat zajedno sa podacima na S3, gde će S3 izvršiti enkripciju za vas.
|
||||
|
||||
- Encryption:
|
||||
- Korisnik šalje object data + customer key S3
|
||||
- Customer key se koristi za enkripciju podataka i encrypted data se skladišti
|
||||
- Takođe se čuva salted HMAC vrednost customer key-a za buduću validaciju ključa
|
||||
- Enkripcija:
|
||||
- Korisnik šalje object data + Customer key na S3
|
||||
- Customer key se koristi za enkripciju podataka i enkriptovani podaci se čuvaju
|
||||
- Saltovana HMAC vrednost customer key-a se takođe čuva za buduću validaciju ključa
|
||||
- Customer key se briše iz memorije
|
||||
- Decryption:
|
||||
- Korisnik pošalje customer key
|
||||
- Ključ se validira naspram HMAC vrednosti koja je sačuvana
|
||||
- Customer-provided key se koristi za dekripciju podataka
|
||||
- Dekripcija:
|
||||
- Korisnik šalje customer key
|
||||
- Ključ se validira pomoću sačuvane HMAC vrednosti
|
||||
- Customer provided key se koristi za dekriptovanje podataka
|
||||
|
||||
</details>
|
||||
|
||||
@@ -102,17 +102,17 @@ Ova opcija vam daje mogućnost da obezbedite sopstveni master ključ koji možda
|
||||
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Slično SSE-KMS, i ovde se koristi Key Management Service za generisanje data encryption ključeva. Međutim, ovaj put se KMS poziva sa klijentske strane, a ne S3. Enkripcija se vrši na klijent strani, a zatim se šifrovani podaci šalju u S3 na čuvanje.
|
||||
Slično SSE-KMS, i ovo koristi key management service za generisanje vaših data encryption key-ova. Međutim, ovoga puta se KMS poziva preko klijenta, a ne S3. Enkripcija se onda vrši na strani klijenta i enkriptovani podaci se šalju na S3 na čuvanje.
|
||||
|
||||
- Encryption:
|
||||
- Enkripcija:
|
||||
- Klijent zahteva data key od KMS
|
||||
- KMS vraća plaintext DEK i encrypted DEK šifrovan CMK-om
|
||||
- Obe verzije ključa se vraćaju klijentu
|
||||
- Klijent enkriptuje podatke sa plaintext DEK i šalje S3 encrypted data + encrypted DEK (koji se čuva kao metadata encrypted data unutar S3)
|
||||
- Decryption:
|
||||
- Šifrovani podaci sa encrypted DEK se šalju klijentu
|
||||
- Klijent traži od KMS da dešifruje encrypted key koristeći CMK i KMS vraća plaintext DEK
|
||||
- Klijent sada može da dešifruje encrypted data
|
||||
- KMS vraća plaintext DEK i enkriptovani DEK sa CMK
|
||||
- Obe vrednosti se vraćaju klijentu
|
||||
- Klijent enkriptuje podatke plaintext DEK-om i šalje S3 enkriptovane podatke + enkriptovani DEK (koji se čuva kao metadata enkriptovanih podataka u S3)
|
||||
- Dekripcija:
|
||||
- Enkriptovani podaci sa enkriptovanim DEK-om se šalju klijentu
|
||||
- Klijent traži od KMS da dekriptuje enkriptovani ključ koristeći CMK i KMS vraća plaintext DEK
|
||||
- Klijent sada može da dekriptuje enkriptovane podatke
|
||||
|
||||
</details>
|
||||
|
||||
@@ -120,21 +120,21 @@ Slično SSE-KMS, i ovde se koristi Key Management Service za generisanje data en
|
||||
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
|
||||
Korišćenjem ovog mehanizma možete iskoristiti sopstvene ključeve i koristiti AWS-SDK klijent da enkriptuje podatke pre slanja u S3.
|
||||
Korišćenjem ovog mehanizma, možete koristiti sopstvene ključeve i AWS-SDK klijent da enkriptujete podatke pre slanja na S3 za skladištenje.
|
||||
|
||||
- Encryption:
|
||||
- Enkripcija:
|
||||
- Klijent generiše DEK i enkriptuje plaintext podatke
|
||||
- Zatim, koristeći sopstveni custom CMK, enkriptuje DEK
|
||||
- Podnosi encrypted data + encrypted DEK u S3 gde se skladišti
|
||||
- Decryption:
|
||||
- S3 šalje encrypted data i DEK
|
||||
- Pošto klijent već poseduje CMK koji je korišćen za enkripciju DEK-a, dešifruje DEK i zatim koristi plaintext DEK da dešifruje podatke
|
||||
- Zatim, koristeći svoj custom CMK, enkriptuje DEK
|
||||
- Pošalje enkriptovane podatke + enkriptovani DEK na S3 gde se čuvaju
|
||||
- Dekripcija:
|
||||
- S3 šalje enkriptovane podatke i DEK
|
||||
- Pošto klijent već ima CMK koji je korišćen za enkripciju DEK-a, dekriptuje DEK i zatim koristi plaintext DEK da dekriptuje podatke
|
||||
|
||||
</details>
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
Jedan od tradicionalnih glavnih načina kompromitovanja AWS organizacija počinje kompromitovanjem javno dostupnih buckets. **Možete pronaći** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
Jedan od tradicionalnih glavnih načina kompromitovanja AWS organizacija počinje kompromitovanjem javno dostupnih bucket-a. **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,22 +229,22 @@ 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>
|
||||
|
||||
Možete pristupiti S3 bucketu preko dual-stack endpoint-a koristeći virtual hosted-style ili path-style ime endpointa. Ovo je korisno za pristup S3 preko IPv6.
|
||||
Do S3 bucket-a možete pristupiti preko dual-stack endpointa koristeći virtual hosted-style ili path-style naziv endpointa. Ovo je korisno za pristup S3 preko IPv6.
|
||||
|
||||
Dual-stack endpoints koriste sledeću sintaksu:
|
||||
Dual-stack endpointi koriste sledeću sintaksu:
|
||||
|
||||
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
|
||||
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
|
||||
|
||||
### Privesc
|
||||
|
||||
Na sledećoj stranici možete videti kako da **abuse S3 permissions to escalate privileges**:
|
||||
In the following page you can check how to **abuse S3 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Neautentifikovan pristup
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum/README.md
|
||||
@@ -262,25 +262,25 @@ Na sledećoj stranici možete videti kako da **abuse S3 permissions to escalate
|
||||
../aws-persistence/aws-s3-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Ostale S3 ranjivosti
|
||||
## Other S3 vulns
|
||||
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**Prema ovom istraživanju**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) bilo je moguće keširati odgovor proizvoljnog bucketa kao da pripada drugom. Ovo je moglo biti iskorišćeno za izmenu, na primer, odgovora javascript fajlova i kompromitovanje proizvoljnih stranica koje koriste S3 za čuvanje statičkog koda.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) bilo je moguće keširati odgovor proizvoljnog bucketa kao da pripada drugom. Ovo je moglo biti zloupotrebljeno da, na primer, promeni odgovore javascript fajlova i kompromituje proizvoljne stranice koje koriste S3 za čuvanje statičkog koda.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena je interaktivni servis za upite koji olakšava analizu podataka direktno u Amazon Simple Storage Service (Amazon **S3**) koristeći standardni **SQL**.
|
||||
Amazon Athena je interaktivni query servis koji olakšava **analizu podataka** direktno u Amazon Simple Storage Service (Amazon **S3**) **koristeći** standardni **SQL**.
|
||||
|
||||
Potrebno je **pripremiti relacijsku DB tabelu** sa formatom sadržaja koji će se pojaviti u bucket-ima koji se prate. Nakon toga, Amazon Athena će moći da popuni DB iz logova, tako da možete izvršavati upite.
|
||||
Potrebno je **pripremiti tabelu relacione baze podataka (DB)** sa formatom sadržaja koji će se pojavljivati u nadgledanim S3 bucket-ovima. Zatim će Amazon Athena moći da popuni bazu iz logova, tako da možete izvršavati upite.
|
||||
|
||||
Amazon Athena podržava **mogućnost da upitizuje S3 podatke koji su već enkriptovani** i ako je konfigurisano tako, **Athena može takođe enkriptovati rezultate upita koji se potom mogu skladištiti u S3**.
|
||||
Athena podržava **mogućnost izvršavanja upita nad S3 podacima koji su već enkriptovani**, i ako je tako konfigurisana, **Athena može takođe enkriptovati rezultate upita koji se potom mogu skladištiti u S3**.
|
||||
|
||||
**Ova enkripcija rezultata je nezavisna od osnovnih S3 podataka koji se upituju**, što znači da čak i ako S3 podaci nisu enkriptovani, rezultati upita mogu biti enkriptovani. Nekoliko važnih napomena: Amazon Athena podržava samo podatke koji su **enkriptovani** sledećim S3 metodama enkripcije, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
**Ovo enkriptovanje rezultata je nezavisno od osnovnih S3 podataka nad kojima se vrši upit**, što znači da čak i ako S3 podaci nisu enkriptovani, rezultati upita mogu biti enkriptovani. Važno je znati da Amazon Athena podržava samo podatke koji su **enkriptovani** korišćenjem sledećih metoda enkripcije S3: **SSE-S3, SSE-KMS, i CSE-KMS**.
|
||||
|
||||
SSE-C i CSE-C nisu podržani. Pored toga, važno je razumeti da Amazon Athena pokreće upite samo protiv **enkriptovanih objekata koji se nalaze u istoj regiji kao i sam upit**. Ako treba da upitujete S3 podatke koji su enkriptovani korišćenjem KMS, onda su od strane Athena korisnika potrebne specifične dozvole da bi mogli izvršiti upit.
|
||||
SSE-C i CSE-C nisu podržani. Pored toga, važno je razumeti da Amazon Athena izvršava upite samo nad **enkriptovanim objektima koji su u istoj regiji kao i sam upit**. Ako treba da izvršite upit nad S3 podacima koji su enkriptovani korišćenjem KMS, tada su potrebne specifične permisije za Athena korisnika da bi mogao da izvrši upit.
|
||||
|
||||
### Enumeracija
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
|
||||
Reference in New Issue
Block a user