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-ec2-
This commit is contained in:
+92
-92
@@ -1,185 +1,185 @@
|
||||
# AWS - VPC & Networking Basic Information
|
||||
# AWS - VPC & Мережі — базова інформація
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS Networking in a Nutshell
|
||||
## AWS Мережі у двох словах
|
||||
|
||||
A **VPC** містить **network CIDR** наприклад 10.0.0.0/16 (з його **routing table** та **network ACL**).
|
||||
A **VPC** містить **network CIDR**, наприклад 10.0.0.0/16 (з його **routing table** та **network ACL**).
|
||||
|
||||
Ця мережа VPC ділиться на **subnetworks**, тож **subnetwork** безпосередньо пов'язана з **VPC**, **routing table** та **network ACL**.
|
||||
Ця мережа VPC ділиться на **підмережі**, тож **підмережа** безпосередньо **пов'язана** з **VPC**, **routing table** і **network ACL**.
|
||||
|
||||
Потім, **Network Interface** підключені до сервісів (наприклад EC2 instances) **з’єднуються** з **subnetworks** з допомогою **security group(s)**.
|
||||
Далі, **Network Interface**и, приєднані до сервісів (наприклад EC2 instances), **підключені** до **підмереж** з **security group(s)**.
|
||||
|
||||
Отже, **security group** буде обмежувати відкриті порти мережевих **interfaces, що його використовують**, **незалежно від субмережі**. А **network ACL** буде **обмежувати** відкриті порти для **усієї мережі**.
|
||||
Отже, **security group** обмежує відкриті порти мережевих **інтерфейсів, які його використовують**, **незалежно від підмережі**. А **network ACL** буде **обмежувати** відкриті порти для **всієї мережі**.
|
||||
|
||||
Крім того, щоб мати **доступ до Інтернету**, є кілька цікавих налаштувань, які варто перевірити:
|
||||
Крім того, для **доступу до Інтернету** варто перевірити такі конфігурації:
|
||||
|
||||
- **subnetwork** може **автоматично призначати публічні IPv4 адреси**
|
||||
- **instance**, створений у мережі з **автоматичним призначенням IPv4 адрес**, може отримати адресу
|
||||
- **Internet gateway** має бути **підключений** до **VPC**
|
||||
- Також можна використовувати **Egress-only internet gateways**
|
||||
- Можна мати **NAT gateway** у **private subnet**, щоб було можливим **підключатися до зовнішніх сервісів** з цієї приватної subnet, але **неможливо дістатися до нього ззовні**.
|
||||
- NAT gateway може бути **public** (доступ в інтернет) або **private** (доступ до інших VPC)
|
||||
- **підмережа** може **автоматично призначати public IPv4 addresses**
|
||||
- інстанс, створений у мережі, яка **автопризначає IPv4**, може отримати такий IP
|
||||
- **Internet gateway** потрібно **прикріпити** до **VPC**
|
||||
- можна також використовувати **Egress-only internet gateways**
|
||||
- можна мати **NAT gateway** у **private subnet**, щоб з цієї приватної підмережі було можливо **підключатися до зовнішніх сервісів**, але ззовні **не можна до них дістатися**
|
||||
- NAT gateway може бути **public** (доступ до інтернету) або **private** (доступ до інших VPC)
|
||||
|
||||
.png>)
|
||||
|
||||
## VPC
|
||||
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) дозволяє вам **розгортати AWS ресурси у віртуальній мережі**, яку ви визначили. Ця віртуальна мережа матиме кілька subnet, Internet Gateways для доступу до Інтернету, ACLs, Security groups, IPs...
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) дозволяє вам **запускати AWS ресурси у віртуальній мережі**, яку ви визначили. Ця віртуальна мережа матиме кілька підмереж, Internet Gateways для доступу в Інтернет, ACL, Security groups, IP тощо.
|
||||
|
||||
### Subnets
|
||||
|
||||
Subnets допомагають забезпечити вищий рівень безпеки. **Логічне групування подібних ресурсів** також допомагає зберегти **зручність управління** вашою інфраструктурою.
|
||||
Subnets допомагають забезпечити вищий рівень безпеки. **Логічне групування подібних ресурсів** також полегшує **управління** вашою інфраструктурою.
|
||||
|
||||
- Дійсні CIDR — від /16 netmask до /28 netmask.
|
||||
- Subnet не може належати до різних availability zones одночасно.
|
||||
- **AWS резервує перші три host IP адреси** кожної subnet **для внутрішнього використання AWS**: перша адреса використовується для VPC router. Друга адреса резервується для AWS DNS, а третя адреса резервується для майбутнього використання.
|
||||
- Називаються **public subnets** ті, що мають **прямий доступ до Інтернету**, тоді як private subnets — ні.
|
||||
- Підмережа не може бути в різних Availability Zones одночасно.
|
||||
- **AWS резервує перші три host IP адреси** кожної підмережі **для внутрішнього використання AWS**: перша host адреса використовується для VPC router. Друга адреса резервується для AWS DNS, а третя адреса резервується для подальшого використання.
|
||||
- Називають **public subnets** ті, які мають **прямий доступ до Інтернету**, тоді як private subnets цього не мають.
|
||||
|
||||
### Route Tables
|
||||
|
||||
Route tables визначають маршрутизацію трафіку для subnet у межах VPC. Вони визначають, який мережевий трафік пересилається в інтернет або через VPN-з'єднання. Зазвичай ви знайдете маршрути до:
|
||||
Route tables визначають маршрутизацію трафіку для підмережі в межах VPC. Вони визначають, який мережевий трафік перенаправляється в інтернет або до VPN-з'єднання. Зазвичай ви знайдете доступ до:
|
||||
|
||||
- Local VPC
|
||||
- NAT
|
||||
- Internet Gateways / Egress-only Internet gateways (потрібні, щоб надати VPC доступ до Інтернету).
|
||||
- Щоб зробити subnet публічною, потрібно **створити** та **прикріпити** **Internet gateway** до вашого VPC.
|
||||
- VPC endpoints (щоб отримувати доступ до S3 з приватних мереж)
|
||||
- Internet Gateways / Egress-only Internet gateways (необхідні для надання VPC доступу до Інтернету).
|
||||
- Щоб зробити підмережу публічною, потрібно **створити** та **прикріпити** **Internet gateway** до вашого VPC.
|
||||
- VPC endpoints (для доступу до S3 з приватних мереж)
|
||||
|
||||
### ACLs
|
||||
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs — це правила брандмауера, що контролюють вхідний та вихідний мережевий трафік до subnet. Вони можуть використовуватися для дозволу або заборони трафіку до конкретних IP адрес або діапазонів.
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs — це правила фаєрвола, які контролюють вхідний та вихідний мережевий трафік для підмережі. Їх можна використовувати, щоб дозволити або заборонити трафік для конкретних IP-адрес або діапазонів.
|
||||
|
||||
- Найчастіше дозволи/заборони виконують за допомогою security groups, але ACLs — це єдиний спосіб повністю розірвати вже встановлені reverse shells. Зміна правила у security group не зупиняє вже встановлені з’єднання.
|
||||
- Проте це застосовується до всієї subnet — будьте обережні при забороні, оскільки необхідна функціональність може бути порушена.
|
||||
- Найчастіше для дозволу/заборони доступу використовують security groups, але ACL — це єдиний спосіб повністю розірвати вже встановлені reverse shells. Змінене правило в security group не припиняє вже встановлені з'єднання.
|
||||
- Однак це застосовується до цілої підмережі — будьте обережні при забороні чогось, оскільки необхідна функціональність може бути порушена.
|
||||
|
||||
### Security Groups
|
||||
|
||||
Security groups — це віртуальний **брандмауер**, який контролює вхідний та вихідний мережевий **трафік до instances** у VPC. Відношення 1 SG до M instances (зазвичай 1 до 1).\
|
||||
Зазвичай використовується для відкриття небезпечних портів на інстансах, наприклад порт 22:
|
||||
Security groups — це віртуальний **фаєрвол**, який контролює вхідний та вихідний мережевий **трафік до інстансів** у VPC. Відношення: 1 SG до M інстансів (зазвичай 1 до 1).\
|
||||
Зазвичай це використовують для відкриття небезпечних портів на інстансах, наприклад порт 22:
|
||||
|
||||
<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 адреса**, призначена для динамічних обчислювальних середовищ у хмарі. Elastic IP адреса виділяється вашому AWS акаунту і належить вам, поки ви її не звільните. Використовуючи Elastic IP, ви можете приховати збій інстансу або софту шляхом швидкого перепризначення адреси іншому інстансу у вашому акаунті.
|
||||
_Elastic IP address_ — це **статична IPv4 адреса**, призначена для динамічних хмарних обчислень. Elastic IP адреса виділяється для вашого AWS аккаунта і є вашою, поки ви її не звільните. Використовуючи Elastic IP, ви можете маскувати збій інстансу або програмного забезпечення шляхом швидкого перенаправлення адреси на інший інстанс у вашому акаунті.
|
||||
|
||||
### Connection between subnets
|
||||
### Зв'язок між підмережами
|
||||
|
||||
За замовчуванням у всіх subnets **автоматичне призначення публічних IP адрес вимкнено**, але його можна ввімкнути.
|
||||
За замовчуванням, у всіх підмережах **автоматичне призначення public IP адрес вимкнено**, але його можна увімкнути.
|
||||
|
||||
**Локальний маршрут у route table дозволяє зв’язок між VPC subnets.**
|
||||
**Локальний маршрут у route table дозволяє зв'язок між підмережами VPC.**
|
||||
|
||||
Якщо ви **з'єднуєте subnet з іншою subnet, ви не зможете отримати доступ до subnet, з'єднаних з тією іншою subnet**, потрібно створювати з’єднання безпосередньо з ними. **Це також стосується Internet gateways.** Ви не можете пройти через з’єднання між subnet, щоб потрапити в інтернет — потрібно призначити internet gateway вашій subnet.
|
||||
Якщо ви **підключаєте підмережу до іншої підмережі**, ви не матимете доступу до підмереж, які підключені до тієї іншої підмережі — потрібно створити з'єднання з ними безпосередньо. **Це також стосується internet gateways**. Ви не можете пройти через підключення підмережі, щоб дістатися до інтернету; потрібно призначити internet gateway своїй підмережі.
|
||||
|
||||
### VPC Peering
|
||||
|
||||
VPC peering дозволяє **з'єднати дві або більше VPC між собою**, використовуючи IPv4 або IPv6, так ніби вони були частиною однієї мережі.
|
||||
VPC peering дозволяє **з'єднувати дві або більше VPC**, використовуючи IPV4 або IPV6, ніби вони є частиною однієї мережі.
|
||||
|
||||
Після встановлення peer-з’єднання **ресурси в одній VPC можуть отримувати доступ до ресурсів в іншій**. З’єднання між VPC реалізується через існуючу інфраструктуру мережі AWS, тому воно високо доступне і без вузьких місць по пропускній здатності. Оскільки **peered connections працюють так, ніби вони частина однієї мережі**, існують обмеження щодо CIDR-блоків, які можна використовувати.\
|
||||
Якщо у вас **перекриваються або дублюються CIDR** діапазони для ваших VPC, тоді **ви не зможете з'єднати ці VPC через peering**.\
|
||||
Кожна AWS VPC буде **комунікувати лише зі своїм peer**. Наприклад, якщо у вас є peering між VPC 1 та VPC 2, і ще один між VPC 2 та VPC 3, то VPC 1 та VPC 2 можуть безпосередньо спілкуватися, як і VPC 2 та VPC 3, проте VPC 1 та VPC 3 не зможуть. **Ви не можете маршрутизувати через одну VPC, щоб дістатися до іншої.**
|
||||
Після встановлення peer-з'єднання **ресурси в одній VPC можуть отримувати доступ до ресурсів в іншій**. З'єднання між VPC реалізовано через існуючу інфраструктуру мережі AWS, тому воно є високодоступним без вузьких місць пропускної здатності. Оскільки **peered connections працюють ніби як частина однієї мережі**, існують обмеження щодо діапазонів CIDR, які можна використовувати.\
|
||||
Якщо у вас **перекриваються або дублюються CIDR** для ваших VPC, то **ви не зможете їх з'єднати через peering**.\
|
||||
Кожна AWS VPC **може спілкуватися лише зі своїм peer**. Наприклад, якщо у вас є peering між VPC 1 і VPC 2, і інше з'єднання між VPC 2 і VPC 3, то VPC 1 і VPC 2 можуть спілкуватися безпосередньо, як і VPC 2 і VPC 3, але VPC 1 і VPC 3 не можуть. **Ви не можете маршрутизувати через одну VPC, щоб потрапити до іншої.**
|
||||
|
||||
### **VPC Flow Logs**
|
||||
|
||||
У межах вашої VPC потенційно може бути сотні або навіть тисячі ресурсів, що обмінюються трафіком між різними subnets — як публічними, так і приватними — а також між різними VPC через VPC peering connections. **VPC Flow Logs дозволяють захоплювати інформацію про IP трафік, що проходить між мережевими інтерфейсами ваших ресурсів у VPC**.
|
||||
У межах вашої VPC потенційно може бути сотні або навіть тисячі ресурсів, що спілкуються між різними підмережами як публічними, так і приватними, а також між різними VPC через VPC peering connections. **VPC Flow Logs дозволяють захоплювати інформацію про IP-трафік, який проходить між мережевими інтерфейсами ваших ресурсів у VPC**.
|
||||
|
||||
На відміну від S3 access logs і CloudFront access logs, **логові дані, згенеровані VPC Flow Logs, не зберігаються в S3. Замість цього дані надсилаються до CloudWatch logs**.
|
||||
На відміну від S3 access logs і CloudFront access logs, **лог-дані, згенеровані VPC Flow Logs, не зберігаються в S3. Замість цього захоплені лог-дані відправляються в CloudWatch logs**.
|
||||
|
||||
Обмеження:
|
||||
|
||||
- Якщо ви використовуєте VPC peered connection, то ви зможете бачити flow logs peered VPC лише в межах одного акаунту.
|
||||
- Якщо ви все ще використовуєте ресурси у середовищі EC2-Classic, то, на жаль, ви не зможете отримати інформацію з їх інтерфейсів.
|
||||
- Після створення VPC Flow Log його не можна змінити. Щоб змінити конфігурацію, потрібно видалити його і створити заново.
|
||||
- Наступний трафік не контролюється і не захоплюється логами: DHCP трафік у межах VPC, трафік від інстансів, призначений для Amazon DNS Server.
|
||||
- Будь-який трафік, призначений IP-адресі для VPC default router, та трафік до і з наступних адрес: 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.
|
||||
- Якщо ви використовуєте VPC peered connection, то ви зможете бачити flow logs peered VPC лише в межах того ж акаунта.
|
||||
- Якщо у вас ще працюють ресурси у середовищі EC2-Classic, то, на жаль, ви не зможете отримати інформацію з їх інтерфейсів.
|
||||
- Після створення VPC Flow Log його не можна змінити. Щоб змінити конфігурацію VPC Flow Log, потрібно видалити його й створити заново.
|
||||
- Наступний трафік не моніториться і не захоплюється логами: DHCP трафік в межах VPC, трафік від інстансів, спрямований до Amazon DNS Server.
|
||||
- Будь-який трафік, спрямований до IP-адреси VPC default router, та трафік до/від адрес 169.254.169.254 (використовується для збору instance metadata) і 169.254.169.123 (використовується для Amazon Time Sync Service), не захоплюються.
|
||||
- Трафік, пов'язаний з активацією ліцензії Amazon Windows з Windows інстансу.
|
||||
- Трафік між інтерфейсом network load balancer та інтерфейсом endpoint network interface.
|
||||
|
||||
Для кожного network interface, що публікує дані в CloudWatch log group, буде використовуватись окремий log stream. І в кожному з цих потоків будуть flow log event дані, які показують вміст записів логів. Кожен з цих **логів захоплює дані у вікні приблизно 10–15 хвилин**.
|
||||
Для кожного network interface, який публікує дані до CloudWatch log group, буде використовуватися окремий log stream. І в кожному з цих стрімів будуть події flow log, що показують вміст записів логів. Кожен із цих **логів захоплює дані протягом вікна приблизно 10–15 хвилин**.
|
||||
|
||||
## VPN
|
||||
|
||||
### Basic AWS VPN Components
|
||||
### Основні компоненти AWS VPN
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Customer Gateway — ресурс, який ви створюєте в AWS, щоб представляти ваш бік VPN-з'єднання.
|
||||
- Це, по суті, фізичний пристрій або програмний додаток на вашому боці Site-to-Site VPN з'єднання.
|
||||
- Ви надаєте інформацію про маршрутизацію і публічну IP-адресу вашого мережевого пристрою (наприклад роутера або фаєрвола) в AWS для створення Customer Gateway.
|
||||
- Служить як точка посилання для налаштування VPN-з'єднання і не несе додаткових витрат.
|
||||
- Customer Gateway — це ресурс, який ви створюєте в AWS, щоб представляти вашу сторону VPN-з'єднання.
|
||||
- По суті це фізичний пристрій або програмний додаток на вашій стороні Site-to-Site VPN connection.
|
||||
- Ви надаєте інформацію маршрутизації та public IP-адресу вашого мережевого пристрою (наприклад маршрутизатора або фаєрволу) в AWS для створення Customer Gateway.
|
||||
- Служить орієнтиром для налаштування VPN-з'єднання і не тягне за собою додаткових витрат.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Virtual Private Gateway (VPG) — це VPN-концентратор на стороні Amazon для Site-to-Site VPN з'єднання.
|
||||
- Він прикріплюється до вашого VPC і служить як ціль для вашого VPN-з'єднання.
|
||||
- VPG — це AWS-ендпоінт для VPN-з'єднання.
|
||||
- Він обробляє захищене спілкування між вашим VPC і вашою on-premises мережею.
|
||||
- Virtual Private Gateway (VPG) — це VPN-концентратор на стороні Amazon для Site-to-Site VPN connection.
|
||||
- Він приєднаний до вашого VPC і слугує ціллю для вашого VPN-з'єднання.
|
||||
- VPG — це endpoint AWS для VPN-з'єднання.
|
||||
- Він обробляє безпечну комунікацію між вашим VPC і вашим on-premises мережевим середовищем.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Site-to-Site VPN connection з'єднує вашу on-premises мережу з VPC через захищений IPsec VPN тунель.
|
||||
- Для цього типу з'єднання потрібні Customer Gateway і Virtual Private Gateway.
|
||||
- Використовується для безпечного, стабільного та послідовного спілкування між вашим дата-центром або мережею і вашим AWS середовищем.
|
||||
- Зазвичай використовується для регулярних, довготривалих з'єднань і тарифікується на основі обсягу даних, що передаються через з'єднання.
|
||||
- Для цього типу з'єднання потрібні Customer Gateway та Virtual Private Gateway.
|
||||
- Використовується для безпечного, стійкого та стабільного зв'язку між вашим дата-центром або мережею і вашим AWS середовищем.
|
||||
- Зазвичай використовується для постійних, довготривалих з'єднань і тарифікується на основі кількості даних, переданих через з'єднання.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Client VPN endpoint — ресурс, який ви створюєте в AWS для дозволу і управління клієнтськими VPN сесіями.
|
||||
- Використовується для дозволу окремим пристроям (наприклад ноутбукам, смартфонам тощо) безпечно підключатися до AWS ресурсів або вашої on-premises мережі.
|
||||
- Відрізняється від Site-to-Site VPN тим, що призначений для індивідуальних клієнтів, а не для з'єднання цілих мереж.
|
||||
- Кожен клієнтський пристрій використовує VPN client software для встановлення безпечного з'єднання.
|
||||
- Client VPN endpoint — це ресурс, який ви створюєте в AWS для дозволу та керування client VPN сесіями.
|
||||
- Використовується для дозволу індивідуальним пристроям (наприклад ноутбукам, смартфонам тощо) безпечно підключатися до AWS ресурсів або вашої on-premises мережі.
|
||||
- Відрізняється від Site-to-Site VPN тим, що призначений для окремих клієнтів, а не для з'єднання цілих мереж.
|
||||
- З Client VPN кожен клієнтський пристрій використовує VPN client software для встановлення захищеного з'єднання.
|
||||
|
||||
### Site-to-Site VPN
|
||||
|
||||
**З'єднує вашу on premisses мережу з вашим VPC.**
|
||||
**З'єднує вашу on-premises мережу з вашим VPC.**
|
||||
|
||||
- **VPN connection**: Захищене з'єднання між вашим on-premises обладнанням і вашими VPC.
|
||||
- **VPN tunnel**: Зашифрований канал, через який дані можуть передаватися від клієнтської мережі до AWS або навпаки.
|
||||
- **VPN tunnel**: Зашифроване посилання, через яке дані можуть проходити з мережі клієнта до або з AWS.
|
||||
|
||||
Кожне VPN-з'єднання включає два VPN tunnels, які можна використовувати одночасно для забезпечення високої доступності.
|
||||
Кожне VPN-з'єднання включає два VPN тунелі, які ви можете використовувати одночасно для високої доступності.
|
||||
|
||||
- **Customer gateway**: Ресурс AWS, який надає AWS інформацію про ваш customer gateway device.
|
||||
- **Customer gateway device**: Фізичний пристрій або програмний додаток на вашому боці Site-to-Site VPN з'єднання.
|
||||
- **Virtual private gateway**: VPN-концентратор на стороні Amazon для Site-to-Site VPN з'єднання. Ви використовуєте virtual private gateway або transit gateway як шлюз на стороні Amazon для Site-to-Site VPN з'єднання.
|
||||
- **Transit gateway**: Транзитний хаб, який може використовуватися для взаємозв'язку ваших VPC і on-premises мереж. Ви використовуєте transit gateway або virtual private gateway як шлюз на стороні Amazon для Site-to-Site VPN з'єднання.
|
||||
- **Customer gateway device**: Фізичний пристрій або програмний додаток на вашій стороні Site-to-Site VPN connection.
|
||||
- **Virtual private gateway**: VPN-концентратор на стороні Amazon для Site-to-Site VPN connection. Ви використовуєте virtual private gateway або transit gateway як gateway для сторони Amazon у Site-to-Site VPN connection.
|
||||
- **Transit gateway**: Транзитний хаб, який можна використовувати для з'єднання ваших VPC і on-premises мереж. Ви використовуєте transit gateway або virtual private gateway як gateway для сторони Amazon у Site-to-Site VPN connection.
|
||||
|
||||
#### Limitations
|
||||
#### Обмеження
|
||||
|
||||
- IPv6 трафік не підтримується для VPN з'єднань на virtual private gateway.
|
||||
- IPv6 трафік не підтримується для VPN-з'єднань на virtual private gateway.
|
||||
- AWS VPN connection не підтримує Path MTU Discovery.
|
||||
|
||||
Крім того, врахуйте наступне при використанні Site-to-Site VPN.
|
||||
|
||||
- При підключенні ваших VPC до спільної on-premises мережі рекомендується використовувати неперекривні CIDR блоки для ваших мереж.
|
||||
- При підключенні ваших VPC до спільної on-premises мережі рекомендується використовувати не перекриваючі CIDR блоки для ваших мереж.
|
||||
|
||||
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
|
||||
|
||||
**Підключення з вашого пристрою до вашого VPC**
|
||||
**Підключення з вашого пристрою до VPC**
|
||||
|
||||
#### Concepts
|
||||
#### Концепції
|
||||
|
||||
- **Client VPN endpoint:** Ресурс, який ви створюєте і конфігуруєте для дозволу та управління клієнтськими VPN сесіями. Це ресурс, на якому завершуються всі клієнтські VPN сесії.
|
||||
- **Target network:** Target network — це мережа, яку ви асоціюєте з Client VPN endpoint. **Subnet із VPC є target network**. Асигнування subnet до Client VPN endpoint дозволяє встановлювати VPN сесії. Ви можете асоціювати кілька subnet з Client VPN endpoint для високої доступності. Всі subnets повинні бути з одного VPC. Кожна subnet повинна належати різній Availability Zone.
|
||||
- **Route**: Кожен Client VPN endpoint має route table, що описує доступні маршрути призначення мереж. Кожен маршрут у таблиці маршрутизації визначає шлях для трафіку до конкретних ресурсів або мереж.
|
||||
- **Authorization rules:** Правило авторизації **обмежує користувачів, які можуть отримати доступ до мережі**. Для певної мережі ви налаштовуєте Active Directory або identity provider (IdP) групу, якій дозволено доступ. Лише користувачі, що належать до цієї групи, можуть отримати доступ до вказаної мережі. **За замовчуванням немає authorization rules** і вам потрібно їх налаштувати, щоб дозволити користувачам доступ до ресурсів і мереж.
|
||||
- **Client:** Кінцевий користувач, який підключається до Client VPN endpoint для встановлення VPN сесії. Кінцеві користувачі повинні завантажити OpenVPN client і використовувати Client VPN configuration file, який ви створили, щоб встановити VPN сесію.
|
||||
- **Client CIDR range:** Діапазон IP адрес, з якого призначаються IP адреси клієнтів. Кожне з'єднання з 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**. Потім застосовується Source network address translation (SNAT), де вихідна IP адреса з client CIDR range транслюється у IP адресу Client VPN network interface.
|
||||
- **Connection logging:** Ви можете увімкнути logging з'єднань для вашого Client VPN endpoint, щоб логувати події підключення. Ви можете використовувати цю інформацію для проведення судово-експертних розслідувань, аналізу того, як використовується ваш Client VPN endpoint, або відлагодження проблем зі з'єднанням.
|
||||
- **Self-service portal:** Ви можете увімкнути self-service portal для вашого Client VPN endpoint. Клієнти можуть увійти в веб-портал за допомогою своїх облікових даних і завантажити останню версію Client VPN endpoint configuration file або останню версію клієнта, наданого AWS.
|
||||
- **Client VPN endpoint:** Ресурс, який ви створюєте і конфігуруєте для дозволу та керування client VPN сесіями. Це ресурс, де завершуються всі client VPN сесії.
|
||||
- **Target network:** Target network — це мережа, яку ви асоціюєте з Client VPN endpoint. **Підмережа з VPC є target network**. Асоціація підмережі з Client VPN endpoint дозволяє встановлювати VPN сесії. Ви можете асоціювати кілька підмереж з Client VPN endpoint для високої доступності. Всі підмережі мають бути з одного VPC. Кожна підмережа має належати до різної Availability Zone.
|
||||
- **Route**: Кожен Client VPN endpoint має route table, який описує доступні маршрути до мереж призначення. Кожний маршрут у таблиці маршрутів визначає шлях для трафіку до конкретних ресурсів або мереж.
|
||||
- **Authorization rules:** Правило авторизації **обмежує користувачів, які можуть отримати доступ до мережі**. Для певної мережі ви конфігуруєте Active Directory або групу identity provider (IdP), якій дозволено доступ. Тільки користувачі, що належать до цієї групи, можуть отримати доступ до вказаної мережі. **За замовчуванням правил авторизації немає**, і вам потрібно налаштувати їх, щоб дозволити користувачам доступ до ресурсів і мереж.
|
||||
- **Client:** Кінцевий користувач, який підключається до Client VPN endpoint для встановлення VPN сесії. Кінцевим користувачам потрібно завантажити OpenVPN client і використовувати конфігураційний файл Client VPN endpoint, який ви створили, для встановлення VPN сесії.
|
||||
- **Client CIDR range:** Діапазон IP-адрес, з якого призначаються IP-адреси клієнтам. Кожне з'єднання з 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:** Коли ви асоціюєте підмережу з вашим Client VPN endpoint, AWS створює Client VPN network interfaces в цій підмережі. **Трафік, який надходить до VPC з Client VPN endpoint, надсилається через Client VPN network interface**. Потім застосовується Source Network Address Translation (SNAT), де вихідна IP-адреса з client CIDR range транслюється в IP-адресу Client VPN network interface.
|
||||
- **Connection logging:** Ви можете увімкнути connection logging для вашого Client VPN endpoint, щоб логувати події підключення. Ви можете використовувати цю інформацію для проведення судово-технічного аналізу, аналізу використання Client VPN endpoint або відлагодження проблем підключення.
|
||||
- **Self-service portal:** Ви можете увімкнути self-service portal для вашого Client VPN endpoint. Клієнти можуть увійти в веб-портал за своїми обліковими даними і завантажити останню версію конфігураційного файлу Client VPN endpoint або останню версію клієнта, надану AWS.
|
||||
|
||||
#### Limitations
|
||||
#### Обмеження
|
||||
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** VPC, в якому знаходиться асоційована subnet, або будь-які маршрути, додані вручну до route table Client VPN endpoint.
|
||||
- Client CIDR ranges повинні мати розмір блоку принаймні **/22** і **не більше ніж /12.**
|
||||
- **Частина адрес** у client CIDR range використовується для **підтримки моделі доступності** Client VPN endpoint і не може бути призначена клієнтам. Тому рекомендується **призначити CIDR блок, що містить вдвічі більше IP адрес, ніж потрібно**, щоб підтримати максимальну кількість одночасних з'єднань, які ви плануєте.
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** VPC, в якій знаходиться асоційована підмережа, або з будь-якими маршрутами, доданими вручну до route table Client VPN endpoint.
|
||||
- Client CIDR ranges мають мати розмір блоку не менше **/22** і не бути більшими за **/12.**
|
||||
- **Частина адрес** в client CIDR range використовується для **підтримки моделі доступності** Client VPN endpoint і не може бути призначена клієнтам. Тому рекомендується **призначити CIDR блок, який містить у два рази більше IP-адрес, ніж потрібно**, щоб підтримати максимальну кількість одночасних з'єднань, яку ви плануєте.
|
||||
- **client CIDR range не можна змінити** після створення Client VPN endpoint.
|
||||
- **subnets**, асоційовані з Client VPN endpoint, **повинні бути в одному VPC**.
|
||||
- Ви **не можете асоціювати кілька subnets з однієї Availability Zone з Client VPN endpoint**.
|
||||
- Client VPN endpoint **не підтримує асоціації subnet у VPC з dedicated tenancy**.
|
||||
- **Підмережі**, асоційовані з Client VPN endpoint, **повинні бути в одному VPC**.
|
||||
- Ви **не можете асоціювати кілька підмереж з одного Availability Zone з Client VPN endpoint**.
|
||||
- Client VPN endpoint **не підтримує асоціації підмереж у VPC з dedicated tenancy**.
|
||||
- Client VPN підтримує лише **IPv4** трафік.
|
||||
- Client VPN **не є сумісним** з Federal Information Processing Standards (**FIPS**).
|
||||
- Якщо багатофакторна аутентифікація (MFA) вимкнена для вашого Active Directory, пароль користувача не може мати такий формат.
|
||||
- Якщо multi-factor authentication (MFA) відключено для вашого Active Directory, пароль користувача не може мати такий формат.
|
||||
|
||||
```
|
||||
SCRV1:<base64_encoded_string>:<base64_encoded_string>
|
||||
```
|
||||
|
||||
- Self-service portal **не доступний** для клієнтів, які автентифікуються за допомогою mutual authentication.
|
||||
- Self-service portal **не доступний для клієнтів, які автентифікуються з використанням mutual authentication**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,21 +4,21 @@
|
||||
|
||||
## S3
|
||||
|
||||
Amazon S3 — це сервіс, який дозволяє вам **зберігати великі обсяги даних**.
|
||||
Amazon S3 — сервіс, який дозволяє вам **зберігати великі обсяги даних**.
|
||||
|
||||
Amazon S3 надає кілька опцій для забезпечення **protection** даних у стані спокою (at REST). До опцій належать **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** та **MFA** **based delete**. **Користувач може ввімкнути** будь-яку з цих опцій для захисту даних. **Data replication** — це вбудована функція AWS, коли **S3 автоматично реплікує кожен об’єкт по всіх Availability Zones**, і організації не потрібно додатково її вмикати.
|
||||
Amazon S3 пропонує кілька варіантів для забезпечення **захисту** даних у стані спокою (at REST). Варіанти включають **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** та **MFA** **based delete**. **User can enable** будь-який із цих варіантів для досягнення захисту даних. **Data replication** — це внутрішня можливість AWS, коли **S3 автоматично реплікує кожний об'єкт по всіх Availability Zones**, і організації в цьому випадку не потрібно її вмикати.
|
||||
|
||||
За допомогою дозволів на основі ресурсів (resource-based permissions) ви можете окремо визначати дозволи для піддиректорій вашого bucket.
|
||||
За допомогою resource-based permissions ви можете окремо визначати дозволи для підкаталогів вашого bucket.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Коли bucket versioning увімкнено, будь-яка дія, яка намагається змінити файл всередині файлу, створить нову версію файлу, також зберігаючи попередній вміст. Тому його вміст не буде перезаписано.
|
||||
Коли Bucket Versioning увімкнено, будь-яка дія, яка намагається змінити файл, створює нову версію файлу, зберігаючи також попередній вміст. Отже, вміст не перезаписується.
|
||||
|
||||
Крім того, MFA based delete запобіжить видаленню версій файлів у S3 bucket та вимкненню Bucket Versioning, тому зловмисник не зможе змінити ці файли.
|
||||
Крім того, MFA based delete завадить видаленню версій файлів у S3 bucket і запобіжить вимкненню Bucket Versioning, тож attacker не зможе змінити ці файли.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
Можна **увімкнути S3 access login** (за замовчуванням вимкнено) для певного bucket і зберігати логи в іншому bucket, щоб знати, хто отримує доступ до bucket (обидва bucket повинні бути в одному регіоні).
|
||||
Можна **увімкнути S3 access login** (за замовчуванням вимкнено) для певного bucket і зберігати логи в іншому bucket, щоб знати, хто отримує доступ до bucket (обидва bucket мають бути в одному регіоні).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
@@ -26,14 +26,14 @@ Amazon S3 надає кілька опцій для забезпечення **p
|
||||
```
|
||||
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** (якщо account, який ви використовуєте, не має доступу, буде створено коротший presigned URL, але він буде марним)
|
||||
Presigned URL можна **створити з cli, використовуючи облікові дані principal, який має доступ до об'єкта** (якщо акаунт, який ви використовуєте, не має доступу, буде створено коротший presigned URL, але він буде марним)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Єдиним необхідним дозволом для генерації presigned URL є дозвіл, що надається, тому для попередньої команди єдиний дозвіл, необхідний principal — `s3:GetObject`
|
||||
> Єдиний необхідний дозвіл для створення попередньо підписаного URL — це дозвіл, що надається, тому для попередньої команди єдиний дозвіл, потрібний принципалу, — `s3:GetObject`
|
||||
|
||||
Також можна створювати presigned URLs з **іншими дозволами**:
|
||||
Також можливо створювати попередньо підписані URL з **іншими дозволами**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -42,38 +42,38 @@ Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
|
||||
ExpiresIn=3600
|
||||
)
|
||||
```
|
||||
### S3 Encryption Mechanisms
|
||||
### Механізми шифрування S3
|
||||
|
||||
**DEK означає ключ шифрування даних (Data Encryption Key)** — це ключ, який завжди генерується і використовується для шифрування даних.
|
||||
**DEK означає Data Encryption Key** і це ключ, який завжди генерується і використовується для шифрування даних.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
<summary><strong>Серверне шифрування з керованими S3 ключами, SSE-S3</strong></summary>
|
||||
|
||||
Цей варіант вимагає мінімальної конфігурації, і все управління використовуваними ключами шифрування здійснюється AWS. Все, що потрібно — завантажити ваші дані, і S3 обробить усі інші аспекти. Кожному bucket в S3-акаунті призначено bucket key.
|
||||
Цей варіант вимагає мінімальної конфігурації — все управління ключами шифрування здійснюється AWS. Все, що потрібно зробити — це **завантажити дані, і S3 потурбується про решту**. Кожному bucket в обліковому записі S3 призначається bucket key.
|
||||
|
||||
- Encryption:
|
||||
- Шифрування:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) and plain text is deleted from memory
|
||||
- Decryption:
|
||||
- Розшифрування:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Зверніть увагу, що в цьому випадку **ключ керується AWS** (ротація лише раз на 3 роки). Якщо ви використовуєте власний ключ, ви зможете виконувати ротацію, вимикати та застосовувати контролі доступу.
|
||||
Зверніть увагу, що в цьому випадку **ключ управляється AWS** (ротація лише раз на 3 роки). Якщо ви використовуєте власний ключ, ви зможете виконувати ротацію, вимикати та застосовувати контроль доступу.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
<summary><strong>Серверне шифрування з KMS керованими ключами, SSE-KMS</strong></summary>
|
||||
|
||||
Цей метод дозволяє S3 використовувати Key Management Service для генерації ваших data encryption keys. KMS дає значно більшу гнучкість у керуванні ключами. Наприклад, ви можете відключати, обертати (rotate) та застосовувати контролі доступу до CMK, а також відстежувати їх використання за допомогою AWS Cloud Trail.
|
||||
Цей метод дозволяє S3 використовувати Key Management Service для генерації ваших data encryption keys. KMS дає значно більшу гнучкість у тому, як керуються ключі. Наприклад, ви можете відключати, обертати та застосовувати контроль доступу до CMK, а також відстежувати їх використання за допомогою AWS Cloud Trail.
|
||||
|
||||
- Encryption:
|
||||
- Шифрування:
|
||||
- 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
|
||||
- Decryption:
|
||||
- S3 uses the plaintext 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
|
||||
@@ -82,16 +82,16 @@ ExpiresIn=3600
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
<summary><strong>Серверне шифрування з ключами, наданими клієнтом, SSE-C</strong></summary>
|
||||
|
||||
Цей варіант дає змогу надати власний master key, який ви, можливо, вже використовуєте поза AWS. Ваш customer-provided key буде відправлений разом із даними до S3, де S3 виконуватиме шифрування за вас.
|
||||
Ця опція дає можливість надати власний master key, який ви, можливо, вже використовуєте поза AWS. Ваш ключ, наданий клієнтом, надсилається разом з даними до S3, де S3 виконує шифрування.
|
||||
|
||||
- Encryption:
|
||||
- Шифрування:
|
||||
- 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
|
||||
- Decryption:
|
||||
- Розшифрування:
|
||||
- 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
|
||||
@@ -100,16 +100,16 @@ ExpiresIn=3600
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
<summary><strong>Клієнтське шифрування з KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Аналогічно до SSE-KMS, цей метод також використовує Key Management Service для генерації data encryption keys. Однак цього разу KMS викликається клієнтом, а не S3. Шифрування відбувається на боці клієнта, після чого зашифровані дані відправляються до S3 для зберігання.
|
||||
Аналогічно до SSE-KMS, цей підхід також використовує KMS для генерації data encryption keys. Однак цього разу виклик до KMS робить клієнт, а не S3. Шифрування відбувається на стороні клієнта, після чого зашифровані дані відправляються до S3 для зберігання.
|
||||
|
||||
- Encryption:
|
||||
- Шифрування:
|
||||
- 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)
|
||||
- Decryption:
|
||||
- Розшифрування:
|
||||
- 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
|
||||
@@ -118,23 +118,23 @@ ExpiresIn=3600
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
<summary><strong>Клієнтське шифрування з ключами, наданими клієнтом, CSE-C</strong></summary>
|
||||
|
||||
За допомогою цього механізму ви можете використовувати власні ключі і AWS-SDK клієнт для шифрування даних перед відправкою їх до S3 для зберігання.
|
||||
За цією схемою ви можете використовувати власні ключі й застосувати AWS-SDK клієнт для шифрування даних перед відправкою в S3.
|
||||
|
||||
- Encryption:
|
||||
- Шифрування:
|
||||
- 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
|
||||
- Decryption:
|
||||
- Розшифрування:
|
||||
- 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 orgs починається з компрометації публічно доступних buckets. **You can find** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
Один із традиційних основних шляхів компрометації AWS організацій починається з отримання доступу до публічно доступних бакетів. **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,7 +229,7 @@ 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 бакета через 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 використовують наступний синтаксис:
|
||||
|
||||
@@ -238,7 +238,7 @@ Dual-stack endpoints використовують наступний синта
|
||||
|
||||
### Privesc
|
||||
|
||||
На наступній сторінці ви можете дізнатися, як **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
|
||||
@@ -266,21 +266,21 @@ Dual-stack endpoints використовують наступний синта
|
||||
|
||||
### 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) було можливо кешувати відповідь довільного бакета так, ніби вона належала іншому. Це могло б бути використано для зміни, наприклад, відповідей javascript-файлів і компрометації довільних сторінок, які використовують S3 для зберігання статичного коду.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) було можливо кешувати response довільного bucket так, ніби він належав іншому. Це могло бути використано для зміни, наприклад, javascript file responses і скомпрометувати довільні сторінки, що використовують S3 для зберігання статичного коду.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena — це інтерактивний сервіс запитів, який полегшує **аналіз даних** безпосередньо в Amazon Simple Storage Service (Amazon **S3**) **за допомогою** стандартного **SQL**.
|
||||
Amazon Athena — це інтерактивний сервіс запитів, який полегшує **аналіз даних** безпосередньо в Amazon Simple Storage Service (Amazon **S3**) **з використанням** стандартного **SQL**.
|
||||
|
||||
Потрібно **підготувати реляційну DB-таблицю** з форматом вмісту, який буде з'являтися в моніторованих S3 бакетах. Після цього Amazon Athena зможе заповнювати таблицю з логів, щоб ви могли її опитувати.
|
||||
Потрібно **підготувати таблицю реляційної БД** з форматом вмісту, який буде з'являтися в відстежуваних S3 buckets. І тоді Amazon Athena зможе наповнити БД з логів, щоб ви могли виконувати запити.
|
||||
|
||||
Amazon Athena підтримує **можливість виконувати запити до S3-даних, які вже зашифровані**, і, якщо налаштовано відповідним чином, **Athena також може шифрувати результати запиту, які потім можна зберігати в S3**.
|
||||
Amazon Athena підтримує **можливість запитувати дані S3, які вже зашифровані**, і якщо налаштовано, **Athena також може зашифрувати результати запиту, які потім можуть зберігатися в 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 і CSE-C не підтримуються. Крім того, важливо розуміти, що Amazon Athena виконуватиме запити лише до **зашифрованих об'єктів, які знаходяться в тому ж регіоні, що й сам запит**. Якщо потрібно виконати запит до S3-даних, зашифрованих за допомогою KMS, користувачу Athena потрібні спеціальні дозволи для виконання такого запиту.
|
||||
SSE-C та CSE-C не підтримуються. Крім того, важливо розуміти, що Amazon Athena виконуватиме запити лише проти **зашифрованих об'єктів, які знаходяться в тому ж регіоні, що й сам запит**. Якщо вам потрібно запитувати дані S3, зашифровані з використанням KMS, то користувачеві Athena потрібні конкретні дозволи, щоб виконати такий запит.
|
||||
|
||||
### Перерахування
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
|
||||
Reference in New Issue
Block a user