mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-s3-a
This commit is contained in:
+103
-103
@@ -1,185 +1,185 @@
|
||||
# AWS - VPC & Βασικές Πληροφορίες Δικτύωσης
|
||||
# AWS - VPC & Networking Basic Information
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS Δικτύωση με λίγα λόγια
|
||||
## AWS Networking in a Nutshell
|
||||
|
||||
Μια **VPC** περιέχει ένα **network CIDR** όπως 10.0.0.0/16 (με τον **routing table** και το **network ACL** της).
|
||||
A **VPC** contains a **network CIDR** like 10.0.0.0/16 (with its **routing table** and **network ACL**).
|
||||
|
||||
Αυτό το δίκτυο VPC διαιρείται σε **subnetworks**, οπότε ένα **subnetwork** σχετίζεται άμεσα με την **VPC**, τον **routing table** και το **network ACL**.
|
||||
This VPC network is divided in **subnetworks**, so a **subnetwork** is directly **related** with the **VPC**, **routing** **table** and **network ACL**.
|
||||
|
||||
Στη συνέχεια, **Network Interface** που είναι συνδεδεμένα σε υπηρεσίες (π.χ. EC2 instances) **συνδέονται** με τα **subnetworks** με **security group(s)**.
|
||||
Then, **Network Interface**s attached to services (like EC2 instances) are **connected** to the **subnetworks** with **security group(s)**.
|
||||
|
||||
Επομένως, ένα **security group** θα περιορίσει τις εκτεθειμένες πόρτες των network **interfaces που το χρησιμοποιούν**, **ανεξάρτητα από το subnetwork**. Και ένα **network ACL** θα **περιορίσει** τις εκτεθειμένες πόρτες για ολόκληρο το δίκτυο.
|
||||
Therefore, a **security group** will limit the exposed ports of the network **interfaces using it**, **independently of the subnetwork**. And a **network ACL** will **limit** the exposed ports to to the **whole network**.
|
||||
|
||||
Επιπλέον, για να έχετε **πρόσβαση στο Internet**, υπάρχουν μερικές σημαντικές ρυθμίσεις που πρέπει να ελέγξετε:
|
||||
Moreover, in order to **access Internet**, there are some interesting configurations to check:
|
||||
|
||||
- Ένα **subnetwork** μπορεί να **αναθέτει αυτόματα public IPv4 addresses**
|
||||
- Μια **instance** που δημιουργείται σε δίκτυο με αυτόματη ανάθεση IPv4 μπορεί να λάβει μία
|
||||
- Ένα **Internet gateway** πρέπει να είναι **attached** στην **VPC**
|
||||
- Μπορείτε επίσης να χρησιμοποιήσετε **Egress-only internet gateways**
|
||||
- Μπορείτε επίσης να έχετε ένα **NAT gateway** σε ένα **private subnet** ώστε να είναι δυνατή η **σύνδεση με εξωτερικές υπηρεσίες** από αυτό το private subnet, αλλά **δεν είναι δυνατό να προσεγγιστεί από το εξωτερικό**.
|
||||
- Το NAT gateway μπορεί να είναι **public** (πρόσβαση στο internet) ή **private** (πρόσβαση σε άλλες VPCs)
|
||||
- A **subnetwork** can **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) σας επιτρέπει να ** εκκινήσετε πόρους AWS σε ένα εικονικό δίκτυο** που έχετε ορίσει. Αυτό το εικονικό δίκτυο θα έχει διάφορα subnets, Internet Gateways για πρόσβαση στο Internet, ACLs, Security groups, IPs...
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) enables you to **launch AWS resources into a virtual network** that you've defined. This virtual network will have several subnets, Internet Gateways to access Internet, ACLs, Security groups, IPs...
|
||||
|
||||
### Subnets
|
||||
|
||||
Τα subnets βοηθούν στην επιβολή μεγαλύτερου επιπέδου ασφάλειας. Η **λογική ομαδοποίηση παρόμοιων πόρων** βοηθά επίσης στη διατήρηση της **ευκολίας διαχείρισης** σε όλη την υποδομή σας.
|
||||
Subnets helps to enforce a greater level of security. **Logical grouping of similar resources** also helps you to maintain an **ease of management** across your infrastructure.
|
||||
|
||||
- Έγκυρα CIDR είναι από /16 netmask έως /28 netmask.
|
||||
- Ένα subnet δεν μπορεί να βρίσκεται σε διαφορετικές availability zones ταυτόχρονα.
|
||||
- **Η AWS κρατάει τις πρώτες τρεις host IP διευθύνσεις** κάθε subnet **για** **εσωτερική χρήση από την AWS**: η πρώτη host διεύθυνση χρησιμοποιείται για τον VPC router. Η δεύτερη είναι δεσμευμένη για το AWS DNS και η τρίτη είναι δεσμευμένη για μελλοντική χρήση.
|
||||
- Τα subnets που έχουν **άμεση πρόσβαση στο Internet** ονομάζονται **public subnets**, ενώ τα υπόλοιπα είναι **private subnets**.
|
||||
- Valid CIDR are from a /16 netmask to a /28 netmask.
|
||||
- A subnet cannot be in different availability zones at the same time.
|
||||
- **AWS reserves the first three host IP addresses** of each subnet **for** **internal AWS usage**: the first host address used is for the VPC router. The second address is reserved for AWS DNS and the third address is reserved for future use.
|
||||
- It's called **public subnets** to those that have **direct access to the Internet, whereas private subnets do not.**
|
||||
|
||||
### Route Tables
|
||||
|
||||
Οι route tables καθορίζουν τη δρομολόγηση της κυκλοφορίας για ένα subnet μέσα σε μια VPC. Καθορίζουν ποια δικτυακή κίνηση προωθείται στο internet ή σε μια VPN σύνδεση. Συνήθως θα βρείτε πρόσβαση σε:
|
||||
Route tables determine the traffic routing for a subnet within a VPC. They determine which network traffic is forwarded to the internet or to a VPN connection. You will usually find access to the:
|
||||
|
||||
- Το local VPC
|
||||
- Local VPC
|
||||
- NAT
|
||||
- Internet Gateways / Egress-only Internet gateways (ανάγκαιο για να δώσετε σε μια VPC πρόσβαση στο Internet).
|
||||
- Για να κάνετε ένα subnet public πρέπει να **δημιουργήσετε** και να **συνδέσετε** ένα **Internet gateway** στην VPC σας.
|
||||
- VPC endpoints (για πρόσβαση σε S3 από ιδιωτικά δίκτυα)
|
||||
- Internet Gateways / Egress-only Internet gateways (needed to give a VPC access to the Internet).
|
||||
- In order to make a subnet public you need to **create** and **attach** an **Internet gateway** to your VPC.
|
||||
- VPC endpoints (to access S3 from private networks)
|
||||
|
||||
### ACLs
|
||||
|
||||
**Network Access Control Lists (ACLs)**: Τα Network ACLs είναι κανόνες firewall που ελέγχουν την εισερχόμενη και εξερχόμενη δικτυακή κίνηση σε ένα subnet. Μπορούν να χρησιμοποιηθούν για να επιτρέψουν ή να απορρίψουν κίνηση σε συγκεκριμένες IP διευθύνσεις ή εύρη.
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs are firewall rules that control incoming and outgoing network traffic to a subnet. They can be used to allow or deny traffic to specific IP addresses or ranges.
|
||||
|
||||
- Συχνότερα επιτρέπεται/απορρίπτεται η πρόσβαση χρησιμοποιώντας security groups, αλλά αυτός είναι ο μόνος τρόπος για να κόψετε πλήρως ήδη εγκατεστημένα reverse shells. Μια τροποποιημένη ρύθμιση σε ένα security group δεν σταματά ήδη εγκατεστημένες συνδέσεις.
|
||||
- Ωστόσο, αυτό εφαρμόζεται σε ολόκληρο το subnetwork — προσοχή όταν απαγορεύετε πράγματα γιατί μπορεί να διαταραχθεί λειτουργικότητα που είναι απαραίτητη.
|
||||
- It’s most frequent to allow/deny access using security groups, but this is only way to completely cut established reverse shells. A modified rule in a security groups doesn’t stop already established connections
|
||||
- However, this apply to the whole subnetwork be careful when forbidding stuff because needed functionality might be disturbed
|
||||
|
||||
### Security Groups
|
||||
|
||||
Τα security groups είναι ένα εικονικό **firewall** που ελέγχει την εισερχόμενη και εξερχόμενη δικτυακή **κίνηση προς instances** σε μια VPC. Σχέση 1 SG προς M instances (συνήθως 1 προς 1).\
|
||||
Συνήθως αυτό χρησιμοποιείται για να ανοίξουν επικίνδυνες πόρτες σε instances, όπως η πόρτα 22 για παράδειγμα:
|
||||
Security groups are a virtual **firewall** that control inbound and outbound network **traffic to instances** in a VPC. Relation 1 SG to M instances (usually 1 to 1).\
|
||||
Usually this is used to open dangerous ports in instances, such as port 22 for example:
|
||||
|
||||
<figure><img src="https://lh5.googleusercontent.com/LliB7eb3cYfkEyOpyw1-eYgWsn2kq1yF6uRn5VYndvOuTvDlURimYx9UvuK8F2impTLmx50mid4MdTXE-Ljt2i_rxaIfnKUdji_hFjCdU9tdoW-axng9-W4tSL71gbbjrPQ7IYY5lAdH_G3UoMRMGGGOxQ=s2048" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Elastic IP Addresses
|
||||
|
||||
Μια _Elastic IP address_ είναι μια **στατική IPv4 διεύθυνση** σχεδιασμένη για δυναμικό cloud computing. Μια Elastic IP διεύθυνση εκχωρείται στον AWS λογαριασμό σας και είναι δική σας μέχρι να την απελευθερώσετε. Χρησιμοποιώντας μια Elastic IP μπορείτε να καλύψετε την αποτυχία ενός instance ή λογισμικού επαναχαρακτηρίζοντας γρήγορα τη διεύθυνση σε άλλο instance στον λογαριασμό σας.
|
||||
An _Elastic IP address_ is a **static IPv4 address** designed for dynamic cloud computing. An Elastic IP address is allocated to your AWS account, and is yours until you release it. By using an Elastic IP address, you can mask the failure of an instance or software by rapidly remapping the address to another instance in your account.
|
||||
|
||||
### Σύνδεση μεταξύ subnets
|
||||
### Connection between subnets
|
||||
|
||||
Εξ ορισμού, όλα τα subnets έχουν **απενεργοποιημένη την αυτόματη ανάθεση public IP addresses**, αλλά μπορεί να ενεργοποιηθεί.
|
||||
By default, all subnets have the **automatic assigned of public IP addresses turned off** but it can be turned on.
|
||||
|
||||
**Μια τοπική διαδρομή μέσα σε ένα route table επιτρέπει επικοινωνία μεταξύ των subnets της VPC.**
|
||||
**A local route within a route table enables communication between VPC subnets.**
|
||||
|
||||
Εάν **συνδέετε ένα subnet με ένα διαφορετικό subnet** δεν μπορείτε να έχετε πρόσβαση στα subnets που είναι συνδεδεμένα με το άλλο subnet — πρέπει να δημιουργήσετε σύνδεση απευθείας με αυτά. **Αυτό ισχύει επίσης για τα internet gateways**. Δεν μπορείτε να περάσετε μέσω μιας σύνδεσης subnet για να αποκτήσετε πρόσβαση στο internet· χρειάζεται να αναθέσετε το internet gateway στο subnet σας.
|
||||
If you are **connection a subnet with a different subnet you cannot access the subnets connected** with the other subnet, you need to create connection with them directly. **This also applies to internet gateways**. You cannot go through a subnet connection to access internet, you need to assign the internet gateway to your subnet.
|
||||
|
||||
### VPC Peering
|
||||
|
||||
Η VPC peering σας επιτρέπει να **συνδέσετε δύο ή περισσότερες VPCs μεταξύ τους**, χρησιμοποιώντας IPv4 ή IPv6, σαν να ήταν μέρος του ίδιου δικτύου.
|
||||
VPC peering allows you to **connect two or more VPCs together**, using IPV4 or IPV6, as if they were a part of the same network.
|
||||
|
||||
Μόλις εγκαθιδρυθεί η σύνδεση peering, **πόροι σε μία VPC μπορούν να έχουν πρόσβαση σε πόρους της άλλης**. Η συνδεσιμότητα μεταξύ των VPCs υλοποιείται μέσω της υπάρχουσας υποδομής δικτύου της AWS, και επομένως είναι υψηλά διαθέσιμη χωρίς σημεία συμφόρησης στο bandwidth. Εφόσον **οι peered συνδέσεις λειτουργούν σαν να είναι μέρος του ίδιου δικτύου**, υπάρχουν περιορισμοί στα CIDR block ranges που μπορείτε να χρησιμοποιήσετε.\
|
||||
Εάν έχετε **επικαλυπτόμενα ή διπλότυπα CIDR** ranges για τις VPC σας, τότε **δεν θα μπορείτε να κάνετε peering μεταξύ τους**.\
|
||||
Κάθε AWS VPC θα **επικοινωνεί μόνο με τον peer της**. Για παράδειγμα, αν έχετε peering μεταξύ VPC 1 και VPC 2, και άλλη σύνδεση μεταξύ VPC 2 και VPC 3 όπως φαίνεται, τότε η VPC 1 και 2 μπορούν να επικοινωνούν άμεσα μεταξύ τους, όπως και οι VPC 2 και 3, ωστόσο η VPC 1 και 3 δεν μπορούν. **Δεν μπορείτε να δρομολογήσετε μέσω μιας VPC για να φτάσετε σε άλλη.**
|
||||
Once the peer connectivity is established, **resources in one VPC can access resources in the other**. The connectivity between the VPCs is implemented through the existing AWS network infrastructure, and so it is highly available with no bandwidth bottleneck. As **peered connections operate as if they were part of the same network**, there are restrictions when it comes to your CIDR block ranges that can be used.\
|
||||
If you have **overlapping or duplicate CIDR** ranges for your VPC, then **you'll not be able to peer the VPCs** together.\
|
||||
Each AWS VPC will **only communicate with its peer**. As an example, if you have a peering connection between VPC 1 and VPC 2, and another connection between VPC 2 and VPC 3 as shown, then VPC 1 and 2 could communicate with each other directly, as can VPC 2 and VPC 3, however, VPC 1 and VPC 3 could not. **You can't route through one VPC to get to another.**
|
||||
|
||||
### **VPC Flow Logs**
|
||||
|
||||
Μέσα στην VPC σας, ενδέχεται να έχετε εκατοντάδες ή και χιλιάδες πόρους που επικοινωνούν μεταξύ διαφορετικών subnets, τόσο public όσο και private, και επίσης μεταξύ διαφορετικών VPCs μέσω VPC peering συνδέσεων. **Τα VPC Flow Logs σας επιτρέπουν να καταγράψετε πληροφορίες IP κυκλοφορίας που ρέει μεταξύ των network interfaces των πόρων σας μέσα στην VPC**.
|
||||
Within your VPC, you could potentially have hundreds or even thousands of resources all communicating between different subnets both public and private and also between different VPCs through VPC peering connections. **VPC Flow Logs allow you to capture IP traffic information that flows between your network interfaces of your resources within your VPC**.
|
||||
|
||||
Σε αντίθεση με τα S3 access logs και τα CloudFront access logs, τα **log δεδομένα που παράγονται από τα VPC Flow Logs δεν αποθηκεύονται σε S3. Αντίθετα, τα δεδομένα αποστέλλονται στα CloudWatch logs**.
|
||||
Unlike S3 access logs and CloudFront access logs, the **log data generated by VPC Flow Logs is not stored in S3. Instead, the log data captured is sent to CloudWatch logs**.
|
||||
|
||||
Περιορισμοί:
|
||||
Limitations:
|
||||
|
||||
- Εάν εκτελείτε μια VPC peered σύνδεση, τότε θα μπορείτε να δείτε flow logs των peered VPCs μόνο εάν είναι στον ίδιο λογαριασμό.
|
||||
- Εάν εξακολουθείτε να εκτελείτε πόρους στο EC2-Classic περιβάλλον, δεν μπορείτε να ανακτήσετε πληροφορίες από τα interfaces τους.
|
||||
- Μόλις δημιουργηθεί ένα VPC Flow Log, δεν μπορεί να αλλάξει. Για να τροποποιήσετε τη διαμόρφωση, πρέπει να το διαγράψετε και να δημιουργήσετε νέο.
|
||||
- Η ακόλουθη κίνηση δεν παρακολουθείται και δεν καταγράφεται από τα logs: DHCP κίνηση εντός της VPC, κίνηση από instances προοριζόμενη για τον Amazon DNS Server.
|
||||
- Οποιαδήποτε κίνηση προορίζεται για την IP διεύθυνση του default router της VPC και κίνηση προς και από τις διευθύνσεις 169.254.169.254 (χρησιμοποιείται για συλλογή instance metadata) και 169.254.169.123 (χρησιμοποιείται για το Amazon Time Sync Service) δεν καταγράφεται.
|
||||
- Κίνηση που σχετίζεται με άδεια ενεργοποίησης Amazon Windows από ένα Windows instance.
|
||||
- Κίνηση μεταξύ ενός network load balancer interface και ενός endpoint network interface.
|
||||
- If you are running a VPC peered connection, then you'll only be able to see flow logs of peered VPCs that are within the same account.
|
||||
- If you are still running resources within the EC2-Classic environment, then unfortunately you are not able to retrieve information from their interfaces
|
||||
- Once a VPC Flow Log has been created, it cannot be changed. To alter the VPC Flow Log configuration, you need to delete it and then recreate a new one.
|
||||
- The following traffic is not monitored and captured by the logs. DHCP traffic within the VPC, traffic from instances destined for the Amazon DNS Server.
|
||||
- Any traffic destined to the IP address for the VPC default router and traffic to and from the following addresses, 169.254.169.254 which is used for gathering instance metadata, and 169.254.169.123 which is used for the Amazon Time Sync Service.
|
||||
- Traffic relating to an Amazon Windows activation license from a Windows instance
|
||||
- Traffic between a network load balancer interface and an endpoint network interface
|
||||
|
||||
Για κάθε network interface που δημοσιεύει δεδομένα στο CloudWatch log group, θα χρησιμοποιηθεί διαφορετικό log stream. Και μέσα σε κάθε ένα από αυτά τα streams θα υπάρχουν τα flow log event δεδομένα που δείχνουν το περιεχόμενο των εγγραφών. Κάθε ένα από αυτά τα **logs καταγράφει δεδομένα σε ένα παράθυρο περίπου 10 έως 15 λεπτών**.
|
||||
For every network interface that publishes data to the CloudWatch log group, it will use a different log stream. And within each of these streams, there will be the flow log event data that shows the content of the log entries. Each of these **logs captures data during a window of approximately 10 to 15 minutes**.
|
||||
|
||||
## VPN
|
||||
|
||||
### Βασικά Στοιχεία AWS VPN
|
||||
### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Ένα Customer Gateway είναι ένας πόρος που δημιουργείτε στην AWS για να αντιπροσωπεύει την πλευρά σας μιας VPN σύνδεσης.
|
||||
- Είναι ουσιαστικά μια φυσική συσκευή ή εφαρμογή λογισμικού στην πλευρά σας της Site-to-Site VPN σύνδεσης.
|
||||
- Παρέχετε πληροφορίες δρομολόγησης και τη δημόσια IP διεύθυνση της δικτυακής σας συσκευής (όπως router ή firewall) στην AWS για να δημιουργήσετε ένα Customer Gateway.
|
||||
- Λειτουργεί ως σημείο αναφοράς για τη ρύθμιση της VPN σύνδεσης και δεν επιφέρει επιπλέον χρεώσεις.
|
||||
- A Customer Gateway is a resource that you create in AWS to represent your side of a VPN connection.
|
||||
- It is essentially a physical device or software application on your side of the Site-to-Site VPN connection.
|
||||
- You provide routing information and the public IP address of your network device (such as a router or a firewall) to AWS to create a Customer Gateway.
|
||||
- It serves as a reference point for setting up the VPN connection and doesn't incur additional charges.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Ένα Virtual Private Gateway (VPG) είναι ο VPN concentrator στην πλευρά της Amazon της Site-to-Site VPN σύνδεσης.
|
||||
- Είναι προσαρτημένο στην VPC σας και λειτουργεί ως ο στόχος για τη VPN σύνδεση.
|
||||
- Το VPG είναι το AWS-side endpoint για τη VPN σύνδεση.
|
||||
- Χειρίζεται την ασφαλή επικοινωνία μεταξύ της VPC σας και του on-premises δικτύου σας.
|
||||
- A Virtual Private Gateway (VPG) is the VPN concentrator on the Amazon side of the Site-to-Site VPN connection.
|
||||
- It is attached to your VPC and serves as the target for your VPN connection.
|
||||
- VPG is the AWS side endpoint for the VPN connection.
|
||||
- It handles the secure communication between your VPC and your on-premises network.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Μια Site-to-Site VPN σύνδεση συνδέει το on-premises δίκτυό σας με μια VPC μέσω ενός ασφαλούς IPsec VPN tunnel.
|
||||
- Αυτός ο τύπος σύνδεσης απαιτεί ένα Customer Gateway και ένα Virtual Private Gateway.
|
||||
- Χρησιμοποιείται για ασφαλή, σταθερή και συνεπή επικοινωνία μεταξύ του data center ή δικτύου σας και του AWS περιβάλλοντός σας.
|
||||
- Συνήθως χρησιμοποιείται για τακτικές, μακροχρόνιες συνδέσεις και χρεώνεται βάσει της ποσότητας δεδομένων που μεταφέρονται.
|
||||
- A Site-to-Site VPN connection connects your on-premises network to a VPC through a secure, IPsec VPN tunnel.
|
||||
- This type of connection requires a Customer Gateway and a Virtual Private Gateway.
|
||||
- It's used for secure, stable, and consistent communication between your data center or network and your AWS environment.
|
||||
- Typically used for regular, long-term connections and is billed based on the amount of data transferred over the connection.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Ένα Client VPN endpoint είναι ένας πόρος που δημιουργείτε στην AWS για να ενεργοποιήσετε και να διαχειριστείτε client VPN συνεδρίες.
|
||||
- Χρησιμοποιείται για να επιτρέψει σε μεμονωμένες συσκευές (όπως laptops, smartphones κ.λπ.) να συνδεθούν με ασφάλεια σε AWS πόρους ή στο on-premises δίκτυό σας.
|
||||
- Διαφέρει από το Site-to-Site VPN καθώς προορίζεται για μεμονωμένους clients και όχι για σύνδεση ολόκληρων δικτύων.
|
||||
- Με το Client VPN, κάθε συσκευή client χρησιμοποιεί λογισμικό VPN client για να δημιουργήσει ασφαλή σύνδεση.
|
||||
- A Client VPN endpoint is a resource that you create in AWS to enable and manage client VPN sessions.
|
||||
- It is used for allowing individual devices (like laptops, smartphones, etc.) to securely connect to AWS resources or your on-premises network.
|
||||
- It differs from Site-to-Site VPN in that it is designed for individual clients rather than connecting entire networks.
|
||||
- With Client VPN, each client device uses a VPN client software to establish a secure connection.
|
||||
|
||||
### Site-to-Site VPN
|
||||
|
||||
**Συνδέστε το on-premises δίκτυό σας με την VPC.**
|
||||
**Connect your on premisses network with your VPC.**
|
||||
|
||||
- **VPN connection**: Μια ασφαλής σύνδεση μεταξύ του on-premises εξοπλισμού σας και των VPCs σας.
|
||||
- **VPN tunnel**: Ένας κρυπτογραφημένος σύνδεσμος όπου δεδομένα μπορούν να περάσουν από το customer network προς/από την AWS.
|
||||
- **VPN connection**: A secure connection between your on-premises equipment and your VPCs.
|
||||
- **VPN tunnel**: An encrypted link where data can pass from the customer network to or from AWS.
|
||||
|
||||
Κάθε VPN σύνδεση περιλαμβάνει δύο VPN tunnels τα οποία μπορείτε να χρησιμοποιείτε ταυτόχρονα για υψηλή διαθεσιμότητα.
|
||||
Each VPN connection includes two VPN tunnels which you can simultaneously use for high availability.
|
||||
|
||||
- **Customer gateway**: Ένας πόρος AWS που παρέχει πληροφορίες στην AWS για τη συσκευή customer gateway.
|
||||
- **Customer gateway device**: Μια φυσική συσκευή ή εφαρμογή λογισμικού στην πλευρά σας της Site-to-Site VPN σύνδεσης.
|
||||
- **Virtual private gateway**: Ο VPN concentrator στην πλευρά της Amazon της Site-to-Site VPN σύνδεσης. Χρησιμοποιείτε virtual private gateway ή transit gateway ως την είσοδο για την Amazon πλευρά της Site-to-Site σύνδεσης.
|
||||
- **Transit gateway**: Ένας transit hub που μπορεί να χρησιμοποιηθεί για να διασυνδέσει τις VPCs και τα on-premises δίκτυά σας. Χρησιμοποιείτε transit gateway ή virtual private gateway ως gateway για την Amazon πλευρά της Site-to-Site VPN σύνδεσης.
|
||||
- **Customer gateway**: An AWS resource which provides information to AWS about your customer gateway device.
|
||||
- **Customer gateway device**: A physical device or software application on your side of the Site-to-Site VPN connection.
|
||||
- **Virtual private gateway**: The VPN concentrator on the Amazon side of the Site-to-Site VPN connection. You use a virtual private gateway or a transit gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
|
||||
- **Transit gateway**: A transit hub that can be used to interconnect your VPCs and on-premises networks. You use a transit gateway or virtual private gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
|
||||
|
||||
#### Περιορισμοί
|
||||
#### Limitations
|
||||
|
||||
- Η κίνηση IPv6 δεν υποστηρίζεται για VPN συνδέσεις σε virtual private gateway.
|
||||
- Μια AWS VPN σύνδεση δεν υποστηρίζει Path MTU Discovery.
|
||||
- IPv6 traffic is not supported for VPN connections on a virtual private gateway.
|
||||
- An AWS VPN connection does not support Path MTU Discovery.
|
||||
|
||||
Επιπλέον, λάβετε υπόψη τα ακόλουθα όταν χρησιμοποιείτε Site-to-Site VPN.
|
||||
In addition, take the following into consideration when you use Site-to-Site VPN.
|
||||
|
||||
- Όταν συνδέετε τις VPCs σας σε ένα κοινό on-premises δίκτυο, συνιστάται να χρησιμοποιείτε μη επικαλυπτόμενα CIDR blocks για τα δίκτυά σας.
|
||||
- When connecting your VPCs to a common on-premises network, we recommend that you use non-overlapping CIDR blocks for your networks.
|
||||
|
||||
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
|
||||
|
||||
**Συνδεθείτε από τον υπολογιστή σας στην VPC**
|
||||
**Connect from your machine to your VPC**
|
||||
|
||||
#### Έννοιες
|
||||
#### Concepts
|
||||
|
||||
- **Client VPN endpoint:** Ο πόρος που δημιουργείτε και διαμορφώνετε για να επιτρέψετε και να διαχειριστείτε client VPN συνεδρίες. Είναι ο πόρος όπου τερματίζονται όλες οι client VPN συνεδρίες.
|
||||
- **Target network:** Ένα target network είναι το δίκτυο που συσχετίζετε με ένα Client VPN endpoint. **Ένα subnet από μια VPC είναι target network**. Η συσχέτιση ενός subnet με ένα Client VPN endpoint σας επιτρέπει να δημιουργείτε VPN συνεδρίες. Μπορείτε να συσχετίσετε πολλαπλά subnets με ένα Client VPN endpoint για υψηλή διαθεσιμότητα. Όλα τα subnets πρέπει να ανήκουν στην ίδια VPC. Κάθε subnet πρέπει να ανήκει σε διαφορετικό Availability Zone.
|
||||
- **Route**: Κάθε Client VPN endpoint έχει ένα route table που περιγράφει τις διαθέσιμες διαδρομές προορισμού δικτύου. Κάθε διαδρομή στον route table καθορίζει τη διαδρομή για την κίνηση προς συγκεκριμένους πόρους ή δίκτυα.
|
||||
- **Authorization rules:** Ένας κανόνας εξουσιοδότησης **περιορίζει τους χρήστες που μπορούν να έχουν πρόσβαση σε ένα δίκτυο**. Για ένα συγκεκριμένο δίκτυο, ρυθμίζετε την Active Directory ή την ομάδα παρόχου ταυτότητας (IdP) που επιτρέπεται η πρόσβαση. Μόνο χρήστες που ανήκουν σε αυτήν την ομάδα μπορούν να έχουν πρόσβαση στο συγκεκριμένο δίκτυο. **Από προεπιλογή, δεν υπάρχουν κανόνες εξουσιοδότησης** και πρέπει να ρυθμίσετε κανόνες εξουσιοδότησης για να ενεργοποιήσετε την πρόσβαση των χρηστών σε πόρους και δίκτυα.
|
||||
- **Client:** Ο τελικός χρήστης που συνδέεται στο Client VPN endpoint για να δημιουργήσει μια VPN συνεδρία. Οι τελικοί χρήστες πρέπει να κατεβάσουν έναν OpenVPN client και να χρησιμοποιήσουν το Client VPN configuration αρχείο που δημιουργήσατε για να δημιουργήσουν τη σύνδεση.
|
||||
- **Client CIDR range:** Ένα εύρος IP διευθύνσεων από το οποίο εκχωρούνται διευθύνσεις IP στους clients. Κάθε σύνδεση στο Client VPN endpoint ανατίθεται μια μοναδική IP διεύθυνση από το client CIDR range. Επιλέγετε το client CIDR range, για παράδειγμα, `10.2.0.0/16`.
|
||||
- **Client VPN ports:** Το AWS Client VPN υποστηρίζει τις θύρες 443 και 1194 για TCP και UDP. Η προεπιλογή είναι η θύρα 443.
|
||||
- **Client VPN network interfaces:** Όταν συσχετίζετε ένα subnet με το Client VPN endpoint, δημιουργούμε Client VPN network interfaces σε αυτό το subnet. **Η κίνηση που αποστέλλεται στην VPC από το Client VPN endpoint προωθείται μέσω ενός Client VPN network interface**. Εφαρμόζεται then Source network address translation (SNAT), όπου η source IP διεύθυνση από το client CIDR range μεταφράζεται στην IP διεύθυνση του Client VPN network interface.
|
||||
- **Connection logging:** Μπορείτε να ενεργοποιήσετε connection logging για το Client VPN endpoint σας για να καταγράφετε γεγονότα σύνδεσης. Μπορείτε να χρησιμοποιήσετε αυτές τις πληροφορίες για forensics, να αναλύσετε πώς χρησιμοποιείται το Client VPN endpoint ή να αποσφαλματώσετε προβλήματα σύνδεσης.
|
||||
- **Self-service portal:** Μπορείτε να ενεργοποιήσετε ένα self-service portal για το Client VPN endpoint σας. Οι clients μπορούν να συνδεθούν στο web-based portal με τα διαπιστευτήριά τους και να κατεβάσουν την πιο πρόσφατη έκδοση του Client VPN endpoint configuration αρχείου, ή την πιο πρόσφατη έκδοση του AWS παρεχόμενου client.
|
||||
- **Client VPN endpoint:** The resource that you create and configure to enable and manage client VPN sessions. It is the resource where all client VPN sessions are terminated.
|
||||
- **Target network:** A target network is the network that you associate with a Client VPN endpoint. **A subnet from a VPC is a target network**. Associating a subnet with a Client VPN endpoint enables you to establish VPN sessions. You can associate multiple subnets with a Client VPN endpoint for high availability. All subnets must be from the same VPC. Each subnet must belong to a different Availability Zone.
|
||||
- **Route**: Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.
|
||||
- **Authorization rules:** An authorization rule **restricts the users who can access a network**. For a specified network, you configure the Active Directory or identity provider (IdP) group that is allowed access. Only users belonging to this group can access the specified network. **By default, there are no authorization rules** and you must configure authorization rules to enable users to access resources and networks.
|
||||
- **Client:** The end user connecting to the Client VPN endpoint to establish a VPN session. End users need to download an OpenVPN client and use the Client VPN configuration file that you created to establish a VPN session.
|
||||
- **Client CIDR range:** An IP address range from which to assign client IP addresses. Each connection to the Client VPN endpoint is assigned a unique IP address from the client CIDR range. You choose the client CIDR range, for example, `10.2.0.0/16`.
|
||||
- **Client VPN ports:** AWS Client VPN supports ports 443 and 1194 for both TCP and UDP. The default is port 443.
|
||||
- **Client VPN network interfaces:** When you associate a subnet with your Client VPN endpoint, we create Client VPN network interfaces in that subnet. **Traffic that's sent to the VPC from the Client VPN endpoint is sent through a Client VPN network interface**. Source network address translation (SNAT) is then applied, where the source IP address from the client CIDR range is translated to the Client VPN network interface IP address.
|
||||
- **Connection logging:** You can enable connection logging for your Client VPN endpoint to log connection events. You can use this information to run forensics, analyze how your Client VPN endpoint is being used, or debug connection issues.
|
||||
- **Self-service portal:** You can enable a self-service portal for your Client VPN endpoint. Clients can log into the web-based portal using their credentials and download the latest version of the Client VPN endpoint configuration file, or the latest version of the AWS provided client.
|
||||
|
||||
#### Περιορισμοί
|
||||
#### Limitations
|
||||
|
||||
- **Client CIDR ranges δεν μπορούν να επικαλύπτονται με το local CIDR** της VPC στην οποία βρίσκεται το σχετιζόμενο subnet, ή με οποιεσδήποτε διαδρομές που έχουν προστεθεί χειροκίνητα στον route table του Client VPN endpoint.
|
||||
- Τα Client CIDR ranges πρέπει να έχουν μέγεθος μπλοκ τουλάχιστον **/22** και να **μην είναι μεγαλύτερα από /12**.
|
||||
- Μια **πλευρά των διευθύνσεων** στο client CIDR range χρησιμοποιείται για να **υποστηρίξει το μοντέλο διαθεσιμότητας** του Client VPN endpoint και δεν μπορεί να ανατεθεί σε clients. Επομένως, συνιστούμε να **αναθέσετε ένα CIDR block που περιέχει διπλάσιο αριθμό IP διευθύνσεων από όσες απαιτούνται** για να υποστηρίξετε τον μέγιστο αριθμό ταυτόχρονων συνδέσεων που σκοπεύετε να υποστηρίξετε.
|
||||
- Το **client CIDR range δεν μπορεί να αλλάξει** μετά τη δημιουργία του Client VPN endpoint.
|
||||
- Τα **subnets** που σχετίζονται με ένα Client VPN endpoint **πρέπει να είναι στην ίδια VPC**.
|
||||
- Δεν μπορείτε να συσχετίσετε πολλαπλά subnets από το ίδιο Availability Zone με ένα Client VPN endpoint.
|
||||
- Ένα Client VPN endpoint **δεν υποστηρίζει subnet associations σε dedicated tenancy VPC**.
|
||||
- Το Client VPN υποστηρίζει μόνο **IPv4** κίνηση.
|
||||
- Το Client VPN **δεν είναι** compliant με Federal Information Processing Standards (**FIPS**).
|
||||
- Εάν το multi-factor authentication (MFA) είναι απενεργοποιημένο για το Active Directory σας, ένας κωδικός χρήστη δεν μπορεί να έχει τη μορφή:
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** of the VPC in which the associated subnet is located, or any routes manually added to the Client VPN endpoint's route table.
|
||||
- Client CIDR ranges must have a block size of at **least /22** and must **not be greater than /12.**
|
||||
- A **portion of the addresses** in the client CIDR range are used to **support the availability** model of the Client VPN endpoint, and cannot be assigned to clients. Therefore, we recommend that you **assign a CIDR block that contains twice the number of IP addresses that are required** to enable the maximum number of concurrent connections that you plan to support on the Client VPN endpoint.
|
||||
- The **client CIDR range cannot be changed** after you create the Client VPN endpoint.
|
||||
- The **subnets** associated with a Client VPN endpoint **must be in the same VPC**.
|
||||
- You **cannot associate multiple subnets from the same Availability Zone with a Client VPN endpoint**.
|
||||
- A Client VPN endpoint **does not support subnet associations in a dedicated tenancy VPC**.
|
||||
- Client VPN supports **IPv4** traffic only.
|
||||
- Client VPN is **not** Federal Information Processing Standards (**FIPS**) **compliant**.
|
||||
- If multi-factor authentication (MFA) is disabled for your Active Directory, a user password cannot be in the following format.
|
||||
|
||||
```
|
||||
SCRV1:<base64_encoded_string>:<base64_encoded_string>
|
||||
```
|
||||
|
||||
- Το self-service portal **δεν είναι διαθέσιμο για clients που αυθεντικοποιούνται χρησιμοποιώντας mutual authentication**.
|
||||
- The self-service portal is **not available for clients that authenticate using mutual authentication**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,36 +4,36 @@
|
||||
|
||||
## S3
|
||||
|
||||
Amazon S3 is a service that allows you **αποθηκεύετε μεγάλα ποσά δεδομένων**.
|
||||
Amazon S3 είναι μια υπηρεσία που σας επιτρέπει να **αποθηκεύετε μεγάλα ποσά δεδομένων**.
|
||||
|
||||
Amazon S3 provides multiple options to achieve the **προστασία** of data at REST. The options include **Δικαιώματα** (Policy), **Κρυπτογράφηση** (Client-side και Server-side), **Bucket Versioning** and **MFA** **based delete**. The **user can enable** any of these options to achieve data protection. **Αντιγραφή δεδομένων** is an internal facility by AWS where **S3 automatically replicates each object across all the Availability Zones** and the organization need not enable it in this case.
|
||||
Amazon S3 παρέχει πολλαπλές επιλογές για να επιτύχετε την **προστασία** των δεδομένων σε κατάσταση at rest. Οι επιλογές περιλαμβάνουν **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** και ο οργανισμός δεν χρειάζεται να την ενεργοποιήσει σε αυτή την περίπτωση.
|
||||
|
||||
With resource-based permissions, you can define permissions for sub-directories of your bucket separately.
|
||||
Με resource-based permissions, μπορείτε να ορίσετε permissions για υπο-φακέλους (sub-directories) του bucket σας ξεχωριστά.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
When bucket versioning is enabled, any action that tries to alter a file inside a file will generate a new version of the file, keeping also the previous content of the same. Therefore, it won't overwrite its content.
|
||||
Όταν το Bucket Versioning είναι ενεργοποιημένο, κάθε ενέργεια που προσπαθεί να τροποποιήσει ένα αρχείο μέσα σε ένα bucket θα δημιουργήσει μια νέα έκδοση του αρχείου, διατηρώντας επίσης και το προηγούμενο περιεχόμενο. Επομένως, δεν θα αντικαταστήσει το περιεχόμενο.
|
||||
|
||||
Moreover, MFA based delete will prevent versions of file in the S3 bucket from being deleted and also Bucket Versioning from being disabled, so an attacker won't be able to alter these files.
|
||||
Επιπλέον, το MFA based delete θα εμποδίσει τη διαγραφή εκδόσεων αρχείων στο S3 bucket και επίσης την απενεργοποίηση του Bucket Versioning, έτσι ένας attacker δεν θα μπορεί να τροποποιήσει αυτά τα αρχεία.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
It's possible to **ενεργοποιήσετε το S3 access login** (which by default is disabled) to some bucket and save the logs in a different bucket to know who is accessing the bucket (both buckets must be in the same region).
|
||||
Είναι δυνατόν να **ενεργοποιήσετε S3 access logging** (που από προεπιλογή είναι απενεργοποιημένο) για κάποιο bucket και να αποθηκεύσετε τα logs σε διαφορετικό bucket για να γνωρίζετε ποιος προσπελαύνει το bucket (και τα δύο buckets πρέπει να βρίσκονται στην ίδια region).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
It's possible to generate a presigned URL that can usually be used to **να αποκτήσετε πρόσβαση στο συγκεκριμένο αρχείο** in the bucket. A **presigned URL looks like this**:
|
||||
Είναι δυνατόν να δημιουργηθεί ένα 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 μπορεί να **δημιουργηθεί από το cli χρησιμοποιώντας credentials ενός principal με πρόσβαση στο object** (αν ο λογαριασμός που χρησιμοποιείτε δεν έχει πρόσβαση, θα δημιουργηθεί ένα presigned URL βραχύτερης διάρκειας αλλά θα είναι άχρηστο)
|
||||
Ένα presigned URL μπορεί να **δημιουργηθεί από το cli χρησιμοποιώντας credentials ενός principal που έχει πρόσβαση στο object** (αν ο account που χρησιμοποιείτε δεν έχει πρόσβαση, θα δημιουργηθεί ένα συντομότερο presigned URL αλλά θα είναι άχρηστο)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Η μόνη απαραίτητη άδεια για να δημιουργηθεί ένα presigned URL είναι η άδεια που χορηγείται, οπότε για την προηγούμενη εντολή η μόνη άδεια που χρειάζεται ο principal είναι `s3:GetObject`
|
||||
|
||||
Είναι επίσης δυνατό να δημιουργηθούν presigned URLs με **άλλες άδειες**:
|
||||
> Η μόνη απαραίτητη άδεια για τη δημιουργία ενός presigned URL είναι η άδεια που παρέχεται, οπότε για την προηγούμενη εντολή η μόνη άδεια που χρειάζεται ο principal είναι `s3:GetObject`
|
||||
>
|
||||
> Επίσης είναι δυνατό να δημιουργηθούν presigned URLs με **άλλες άδειες**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -44,22 +44,22 @@ ExpiresIn=3600
|
||||
```
|
||||
### S3 Encryption Mechanisms
|
||||
|
||||
**DEK σημαίνει Data Encryption Key** και είναι το κλειδί που πάντα δημιουργείται και χρησιμοποιείται για την κρυπτογράφηση των δεδομένων.
|
||||
**DEK σημαίνει Κλειδί Κρυπτογράφησης Δεδομένων** και είναι το κλειδί που πάντα δημιουργείται και χρησιμοποιείται για την κρυπτογράφηση των δεδομένων.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
|
||||
Αυτή η επιλογή απαιτεί ελάχιστη διαμόρφωση και όλη η διαχείριση των κλειδιών κρυπτογράφησης γίνεται από την AWS. Το μόνο που χρειάζεται να κάνετε είναι να **ανεβάσετε τα δεδομένα σας και το S3 θα χειριστεί όλα τα υπόλοιπα**. Σε κάθε bucket σε έναν λογαριασμό S3 ανατίθεται ένα bucket key.
|
||||
Αυτή η επιλογή απαιτεί ελάχιστη διαμόρφωση και όλη η διαχείριση των κλειδιών κρυπτογράφησης γίνεται από την AWS. Το μόνο που χρειάζεται να κάνετε είναι να **ανεβάσετε τα δεδομένα σας και το S3 θα χειριστεί όλα τα υπόλοιπα**. Σε κάθε bucket σε λογαριασμό S3 ανατίθεται ένα bucket key.
|
||||
|
||||
- Encryption:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (αποθηκεύεται στο S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (αποθηκεύεται στο S3) και το plaintext διαγράφεται από τη μνήμη
|
||||
- Decryption:
|
||||
- Κρυπτογράφηση:
|
||||
- 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
|
||||
- Αποκρυπτογράφηση:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Παρακαλώ σημειώστε ότι σε αυτή την περίπτωση **το κλειδί διαχειρίζεται από την AWS** (rotation μόνο κάθε 3 χρόνια). Εάν χρησιμοποιήσετε το δικό σας κλειδί θα μπορείτε να πραγματοποιείτε rotation, να το απενεργοποιείτε και να εφαρμόζετε έλεγχο πρόσβασης.
|
||||
Please, note that in this case **the key is managed by AWS** (rotation only every 3 years). If you use your own key you willbe able to rotate, disable and apply access control.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -67,16 +67,16 @@ ExpiresIn=3600
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
|
||||
Αυτή η μέθοδος επιτρέπει στο S3 να χρησιμοποιήσει το Key Management Service για να δημιουργήσει τα data encryption keys σας. Το KMS σας δίνει πολύ μεγαλύτερη ευελιξία στο πώς διαχειρίζεται τα κλειδιά σας. Για παράδειγμα, μπορείτε να απενεργοποιήσετε, να κάνετε rotation και να εφαρμόσετε ελέγχους πρόσβασης στο CMK, καθώς και να παρακολουθείτε τη χρήση τους μέσω του AWS Cloud Trail.
|
||||
Αυτή η μέθοδος επιτρέπει στο S3 να χρησιμοποιεί την υπηρεσία διαχείρισης κλειδιών για να δημιουργήσει τα data encryption keys σας. Το KMS σας δίνει πολύ μεγαλύτερη ευελιξία στο πώς διαχειρίζεστε τα κλειδιά σας. Για παράδειγμα, μπορείτε να απενεργοποιήσετε, να περιστρέψετε και να εφαρμόσετε κανόνες πρόσβασης στο CMK, καθώς και να παρακολουθείτε τη χρήση τους μέσω του AWS Cloud Trail.
|
||||
|
||||
- Encryption:
|
||||
- S3 ζητά από το KMS data keys από το CMK
|
||||
- KMS χρησιμοποιεί ένα CMK για να δημιουργήσει το ζεύγος plaintext DEK και encrypted DEK και τα στέλνει στο S3
|
||||
- S3 χρησιμοποιεί το plaintext key για να κρυπτογραφήσει τα δεδομένα, αποθηκεύει τα encrypted data και το encrypted key και διαγράφει από τη μνήμη το plaintext key
|
||||
- Decryption:
|
||||
- S3 ζητά από το KMS να αποκρυπτογραφήσει το encrypted data key του αντικειμένου
|
||||
- KMS αποκρυπτογραφεί το data key με το CMK και το στέλνει πίσω στο S3
|
||||
- S3 αποκρυπτογραφεί τα object data
|
||||
- Κρυπτογράφηση:
|
||||
- S3 request data keys from KMS CMK
|
||||
- KMS uses a CMK to generate the pair DEK plaintext and DEK encrypted and send them to S£
|
||||
- S3 uses the paintext key to encrypt the data, store the encrypted data and the encrypted key and deletes from memory the plain text key
|
||||
- Αποκρυπτογράφηση:
|
||||
- S3 ask to KMS to decrypt the encrypted data key of the object
|
||||
- KMS decrypt the data key with the CMK and send it back to S3
|
||||
- S3 decrypts the object data
|
||||
|
||||
</details>
|
||||
|
||||
@@ -84,17 +84,17 @@ ExpiresIn=3600
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
|
||||
Αυτή η επιλογή σας δίνει τη δυνατότητα να παρέχετε το δικό σας master key που μπορεί ήδη να χρησιμοποιείτε εκτός AWS. Το customer-provided key θα αποστέλλεται μαζί με τα δεδομένα σας στο S3, όπου το S3 θα πραγματοποιεί την κρυπτογράφηση για εσάς.
|
||||
Αυτή η επιλογή σας δίνει τη δυνατότητα να παρέχετε το δικό σας master key που ίσως χρησιμοποιείτε ήδη εκτός AWS. Το customer-provided key θα αποστέλλεται μαζί με τα δεδομένα σας στο S3, όπου το S3 θα εκτελεί την κρυπτογράφηση για εσάς.
|
||||
|
||||
- Encryption:
|
||||
- Ο χρήστης στέλνει το object data + Customer key στο S3
|
||||
- Το customer key χρησιμοποιείται για να κρυπτογραφήσει τα δεδομένα και τα encrypted data αποθηκεύονται
|
||||
- Επίσης αποθηκεύεται μια salted HMAC τιμή του customer key για μελλοντική επαλήθευση κλειδιού
|
||||
- Το customer key διαγράφεται από τη μνήμη
|
||||
- Decryption:
|
||||
- Ο χρήστης στέλνει το customer key
|
||||
- Το κλειδί επαληθεύεται έναντι της αποθηκευμένης HMAC τιμής
|
||||
- Το customer provided key χρησιμοποιείται στη συνέχεια για να αποκρυπτογραφήσει τα δεδομένα
|
||||
- Κρυπτογράφηση:
|
||||
- The user sends the object data + Customer key to S3
|
||||
- The customer key is used to encrypt the data and the encrypted data is stored
|
||||
- a salted HMAC value of the customer key is stored also for future key validation
|
||||
- the customer key is deleted from memory
|
||||
- Αποκρυπτογράφηση:
|
||||
- The user send the customer key
|
||||
- The key is validated against the HMAC value stored
|
||||
- The customer provided key is then used to decrypt the data
|
||||
|
||||
</details>
|
||||
|
||||
@@ -102,17 +102,17 @@ ExpiresIn=3600
|
||||
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Παρόμοια με το SSE-KMS, αυτό επίσης χρησιμοποιεί το Key Management Service για να δημιουργήσει τα data encryption keys σας. Ωστόσο, αυτή τη φορά το KMS καλείται από τον client και όχι από το S3. Η κρυπτογράφηση γίνεται στο client και τα κρυπτογραφημένα δεδομένα αποστέλλονται στο S3 για αποθήκευση.
|
||||
Παρομοίως με το SSE-KMS, και αυτή η μέθοδος χρησιμοποιεί την υπηρεσία διαχείρισης κλειδιών για να δημιουργήσει τα data encryption keys σας. Ωστόσο, αυτή τη φορά το KMS καλείται από τον client και όχι από το S3. Η κρυπτογράφηση γίνεται στην πλευρά του client και τα κρυπτογραφημένα δεδομένα αποστέλλονται μετά στο S3 για αποθήκευση.
|
||||
|
||||
- Encryption:
|
||||
- Ο client ζητά ένα data key από το KMS
|
||||
- Το KMS επιστρέφει το plaintext DEK και το encrypted DEK με το CMK
|
||||
- Και τα δύο κλειδιά επιστρέφονται στον client
|
||||
- Ο client κρυπτογραφεί τα δεδομένα με το plaintext DEK και στέλνει στο S3 τα encrypted data + το encrypted DEK (που αποθηκεύεται ως metadata των encrypted data μέσα στο S3)
|
||||
- Decryption:
|
||||
- Τα encrypted data μαζί με το encrypted DEK αποστέλλονται στον client
|
||||
- Ο client ζητά από το KMS να αποκρυπτογραφήσει το encrypted key χρησιμοποιώντας το CMK και το KMS επιστρέφει το plaintext DEK
|
||||
- Ο client μπορεί τώρα να αποκρυπτογραφήσει τα encrypted data
|
||||
- Κρυπτογράφηση:
|
||||
- Client request for a data key to KMS
|
||||
- KMS returns the plaintext DEK and the encrypted DEK with the CMK
|
||||
- Both keys are sent back
|
||||
- The client then encrypts the data with the plaintext DEK and send to S3 the encrypted data + the encrypted DEK (which is saved as metadata of the encrypted data inside S3)
|
||||
- Αποκρυπτογράφηση:
|
||||
- The encrypted data with the encrypted DEK is sent to the client
|
||||
- The client asks KMS to decrypt the encrypted key using the CMK and KMS sends back the plaintext DEK
|
||||
- The client can now decrypt the encrypted data
|
||||
|
||||
</details>
|
||||
|
||||
@@ -120,21 +120,21 @@ ExpiresIn=3600
|
||||
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
|
||||
Χρησιμοποιώντας αυτόν τον μηχανισμό, μπορείτε να χρησιμοποιήσετε τα δικά σας παρεχόμενα κλειδιά και έναν AWS-SDK client για να κρυπτογραφήσετε τα δεδομένα σας πριν τα στείλετε στο S3 για αποθήκευση.
|
||||
Με αυτόν τον μηχανισμό, μπορείτε να χρησιμοποιήσετε τα δικά σας keys και να αξιοποιήσετε έναν AWS-SDK client για να κρυπτογραφήσετε τα δεδομένα πριν τα στείλετε στο S3 για αποθήκευση.
|
||||
|
||||
- Encryption:
|
||||
- Ο client δημιουργεί ένα DEK και κρυπτογραφεί τα plaintext δεδομένα
|
||||
- Έπειτα, χρησιμοποιώντας το δικό του custom CMK το κρυπτογραφεί το DEK
|
||||
- Υποβάλλει τα encrypted data + encrypted DEK στο S3 όπου αποθηκεύονται
|
||||
- Decryption:
|
||||
- Το S3 στέλνει τα encrypted data και το encrypted DEK
|
||||
- Εφόσον ο client έχει ήδη το CMK που χρησιμοποιήθηκε για την κρυπτογράφηση του DEK, αποκρυπτογραφεί το DEK και στη συνέχεια χρησιμοποιεί το plaintext DEK για να αποκρυπτογραφήσει τα δεδομένα
|
||||
- Κρυπτογράφηση:
|
||||
- The client generates a DEK and encrypts the plaintext data
|
||||
- Then, using it's own custom CMK it encrypts the DEK
|
||||
- submit the encrypted data + encrypted DEK to S3 where it's stored
|
||||
- Αποκρυπτογράφηση:
|
||||
- S3 sends the encrypted data and DEK
|
||||
- As the client already has the CMK used to encrypt the DEK, it decrypts the DEK and then uses the plaintext DEK to decrypt the data
|
||||
|
||||
</details>
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
Ένας από τους παραδοσιακούς κύριους τρόπους συμβιβασμού οργανισμών AWS ξεκινά με τον συμβιβασμό publicly accessible buckets. **Μπορείτε να βρείτε [public buckets enumerators in this page](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.
|
||||
Μία από τις παραδοσιακές κύριες μεθόδους για τον συμβιβασμό οργανισμών AWS ξεκινάει από τον συμβιβασμό δημόσια προσβάσιμων buckets. **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,9 +229,9 @@ 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>
|
||||
|
||||
Μπορείτε να προσπελάσετε ένα S3 bucket μέσω ενός dual-stack endpoint χρησιμοποιώντας είτε ένα virtual hosted-style είτε ένα path-style όνομα endpoint. Αυτά είναι χρήσιμα για πρόσβαση στο S3 μέσω IPv6.
|
||||
Μπορείτε να αποκτήσετε πρόσβαση σε ένα S3 bucket μέσω ενός dual-stack endpoint χρησιμοποιώντας ένα virtual hosted-style ή ένα path-style endpoint name. Αυτά είναι χρήσιμα για πρόσβαση στο S3 μέσω IPv6.
|
||||
|
||||
Dual-stack endpoints use the following syntax:
|
||||
Dual-stack endpoints χρησιμοποιούν την εξής σύνταξη:
|
||||
|
||||
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
|
||||
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
|
||||
@@ -262,23 +262,23 @@ Dual-stack endpoints use the following syntax:
|
||||
../aws-persistence/aws-s3-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Other S3 vulns
|
||||
## Άλλες ευπάθειες S3
|
||||
|
||||
### 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) ήταν δυνατό να αποθηκευτεί στην cache η απόκριση ενός τυχαίου bucket σαν να ανήκε σε διαφορετικό. Αυτό θα μπορούσε να χρησιμοποιηθεί για να αλλάξει, για παράδειγμα, τις απαντήσεις αρχείων javascript και να compromise arbitrary pages που χρησιμοποιούν το S3 για την αποθήκευση στατικού κώδικα.
|
||||
[**Σύμφωνα με αυτή την έρευνα**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) ήταν δυνατό να αποθηκευτεί στην cache η απάντηση ενός αυθαίρετου bucket σαν να ανήκε σε άλλο. Αυτό θα μπορούσε να είχε χρησιμοποιηθεί για να τροποποιηθούν, για παράδειγμα, οι απαντήσεις σε αρχεία javascript και να συμβιβαστούν οποιεσδήποτε σελίδες που χρησιμοποιούν το S3 για αποθήκευση στατικού κώδικα.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Το Amazon Athena είναι μια διαδραστική υπηρεσία ερωτημάτων που καθιστά εύκολη την **ανάλυση δεδομένων** απευθείας στο Amazon Simple Storage Service (Amazon **S3**) **χρησιμοποιώντας** standard **SQL**.
|
||||
Amazon Athena είναι μια διαδραστική υπηρεσία ερωτημάτων που κάνει εύκολο το να αναλύσετε δεδομένα απευθείας στο Amazon Simple Storage Service (Amazon **S3**) χρησιμοποιώντας το πρότυπο **SQL**.
|
||||
|
||||
Πρέπει να **ετοιμάσετε έναν σχεσιακό πίνακα DB** με τη μορφή του περιεχομένου που θα εμφανίζεται στα παρακολουθούμενα S3 buckets. Στη συνέχεια, το Amazon Athena θα μπορεί να συμπληρώσει τη DB από τα logs, ώστε να μπορείτε να εκτελέσετε ερωτήματα.
|
||||
Πρέπει να **προετοιμάσετε έναν πίνακα relational DB** με τη μορφή του περιεχομένου που θα εμφανίζεται στα S3 buckets που παρακολουθούνται. Έπειτα, το Amazon Athena θα μπορεί να γεμίσει τη βάση δεδομένων από τα logs, ώστε να μπορείτε να εκτελείτε ερωτήματα.
|
||||
|
||||
Το Amazon Athena υποστηρίζει τη **δυνατότητα να κάνετε query σε δεδομένα S3 που είναι ήδη κρυπτογραφημένα** και, εάν ρυθμιστεί έτσι, **το Athena μπορεί επίσης να κρυπτογραφήσει τα αποτελέσματα του ερωτήματος τα οποία μπορούν στη συνέχεια να αποθηκευτούν στο S3**.
|
||||
Amazon Athena υποστηρίζει τη δυνατότητα να εκτελεί queries σε δεδομένα S3 που είναι ήδη κρυπτογραφημένα και, αν διαμορφωθεί κατάλληλα, το Athena μπορεί επίσης να κρυπτογραφήσει τα αποτελέσματα του query, τα οποία μπορούν στη συνέχεια να αποθηκευτούν στο S3.
|
||||
|
||||
**Αυτή η κρυπτογράφηση των αποτελεσμάτων είναι ανεξάρτητη από τα υποκείμενα δεδομένα S3 που ερωτώνται**, πράγμα που σημαίνει ότι ακόμα και αν τα δεδομένα S3 δεν είναι κρυπτογραφημένα, τα αποτελέσματα του ερωτήματος μπορούν να είναι κρυπτογραφημένα. Μερικά σημεία που πρέπει να έχετε υπόψη είναι ότι το Amazon Athena υποστηρίζει μόνο δεδομένα που έχουν **κρυπτογραφηθεί** με τις **εξής μεθόδους κρυπτογράφησης S3**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
**Αυτή η κρυπτογράφηση των αποτελεσμάτων είναι ανεξάρτητη από τα υποκείμενα δεδομένα S3 που ερωτήθηκαν**, που σημαίνει ότι ακόμα και αν τα δεδομένα S3 δεν είναι κρυπτογραφημένα, τα αποτελέσματα των ερωτημάτων μπορούν να κρυπτογραφηθούν. Μερικά σημεία που πρέπει να γνωρίζετε είναι ότι το Amazon Athena υποστηρίζει μόνο δεδομένα που έχουν **κρυπτογραφηθεί** με τις **εξής μεθόδους κρυπτογράφησης S3**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
|
||||
SSE-C and CSE-C are not supported. Επιπλέον, είναι σημαντικό να κατανοήσετε ότι το Amazon Athena θα εκτελεί ερωτήματα μόνο σε **κρυπτογραφημένα αντικείμενα που βρίσκονται στην ίδια region με το ίδιο το ερώτημα**. Εάν χρειάζεται να εκτελέσετε query σε δεδομένα S3 που έχουν κρυπτογραφηθεί χρησιμοποιώντας KMS, τότε απαιτούνται συγκεκριμένα permissions από τον χρήστη του Athena για να του επιτραπεί η εκτέλεση του ερωτήματος.
|
||||
SSE-C και CSE-C δεν υποστηρίζονται. Επιπλέον, είναι σημαντικό να κατανοήσετε ότι το Amazon Athena θα εκτελεί ερωτήματα μόνο σε **κρυπτογραφημένα αντικείμενα που βρίσκονται στην ίδια region με το ίδιο το query**. Εάν χρειάζεται να κάνετε query σε δεδομένα S3 που έχουν κρυπτογραφηθεί χρησιμοποιώντας KMS, τότε απαιτούνται συγκεκριμένα permissions από τον χρήστη του Athena για να μπορέσει να εκτελέσει το query.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user