mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-01 15:35:51 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
|
||||
## **CloudTrail**
|
||||
|
||||
AWS CloudTrail **реєструє та моніторить активність у вашому середовищі AWS**. Він захоплює детальні **журнали подій**, включаючи, хто що зробив, коли і звідки, для всіх взаємодій з ресурсами AWS. Це забезпечує слід змін і дій, допомагаючи в аналізі безпеки, аудиті відповідності та відстеженні змін ресурсів. CloudTrail є важливим для розуміння поведінки користувачів і ресурсів, покращення безпеки та забезпечення відповідності регуляторним вимогам.
|
||||
AWS CloudTrail **реєструє та моніторить активність у вашому середовищі AWS**. Він захоплює детальні **журнали подій**, включаючи хто, що, коли і звідки, для всіх взаємодій з ресурсами AWS. Це забезпечує слід змін і дій, допомагаючи в аналізі безпеки, аудиті відповідності та відстеженні змін ресурсів. CloudTrail є важливим для розуміння поведінки користувачів і ресурсів, покращення безпекових позицій і забезпечення відповідності регуляторним вимогам.
|
||||
|
||||
Кожна зафіксована подія містить:
|
||||
|
||||
- Ім'я викликаного API: `eventName`
|
||||
- Викликаний сервіс: `eventSource`
|
||||
- Назву викликаного API: `eventName`
|
||||
- Викликану службу: `eventSource`
|
||||
- Час: `eventTime`
|
||||
- IP-адреса: `SourceIPAddress`
|
||||
- IP-адресу: `SourceIPAddress`
|
||||
- Метод агента: `userAgent`. Приклади:
|
||||
- Signing.amazonaws.com - З AWS Management Console
|
||||
- console.amazonaws.com - Кореневий користувач облікового запису
|
||||
@@ -24,12 +24,12 @@ AWS CloudTrail **реєструє та моніторить активність
|
||||
CloudTrail дозволяє використовувати **цілісність файлів журналів, щоб мати можливість перевірити, що ваші файли журналів залишилися незмінними** з моменту їх доставки вам. Він створює SHA-256 хеш журналів у файлі дайджесту. SHA-256 хеш нових журналів створюється щогодини.\
|
||||
При створенні Trail селектори подій дозволять вам вказати, які події реєструвати: управлінські, дані або події аналітики.
|
||||
|
||||
Журнали зберігаються в кошику S3. За замовчуванням використовується шифрування на стороні сервера (SSE-S3), тому AWS розшифрує вміст для людей, які мають до нього доступ, але для додаткової безпеки ви можете використовувати SSE з KMS та вашими власними ключами.
|
||||
Журнали зберігаються в кошику S3. За замовчуванням використовується шифрування на стороні сервера (SSE-S3), тому AWS розшифрує вміст для людей, які мають до нього доступ, але для додаткової безпеки ви можете використовувати SSE з KMS і своїми ключами.
|
||||
|
||||
Журнали зберігаються в **кошику S3 з таким форматом імені**:
|
||||
|
||||
- **`BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD`**
|
||||
- Ім'я кошика: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
- Де BucketName: **`aws-cloudtrail-logs-<accountid>-<random>`**
|
||||
- Приклад: **`aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/`**
|
||||
|
||||
У кожній папці кожен журнал матиме **ім'я, що відповідає цьому формату**: **`AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz`**
|
||||
@@ -48,14 +48,14 @@ CloudTrail дозволяє використовувати **цілісніст
|
||||
- Застосуйте дозволи до цільового кошика S3, дозволяючи доступ між обліковими записами для CloudTrail і дозволяючи кожному обліковому запису AWS, який потребує доступу
|
||||
- Створіть новий Trail в інших облікових записах AWS і виберіть використання створеного кошика на етапі 1
|
||||
|
||||
Однак, навіть якщо ви можете зберігати всі журнали в одному кошику S3, ви не можете агрегувати журнали CloudTrail з кількох облікових записів у журнали CloudWatch, що належать одному обліковому запису AWS.
|
||||
Однак, навіть якщо ви можете зберігати всі журнали в одному кошику S3, ви не можете агрегувати журнали CloudTrail з кількох облікових записів у журнали CloudWatch, що належать до одного облікового запису AWS.
|
||||
|
||||
> [!CAUTION]
|
||||
> Пам'ятайте, що обліковий запис може мати **різні Trails** з CloudTrail **увімкненими**, зберігаючи однакові (або різні) журнали в різних кошиках.
|
||||
|
||||
### CloudTrail з усіх облікових записів організації в 1
|
||||
|
||||
При створенні CloudTrail можливо вказати активувати cloudtrail для всіх облікових записів в організації та отримати журнали в лише 1 кошик:
|
||||
При створенні CloudTrail можливо вказати активувати CloudTrail для всіх облікових записів в організації та отримати журнали в лише 1 кошик:
|
||||
|
||||
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -83,23 +83,23 @@ aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [-
|
||||
|
||||
### Інсайти
|
||||
|
||||
**CloudTrail Insights** автоматично **аналізує** події управління записами з трас CloudTrail і **сповіщає** вас про **незвичайну активність**. Наприклад, якщо спостерігається збільшення подій `TerminateInstance`, що відрізняється від встановлених базових значень, ви побачите це як подію Insight. Ці події роблять **знаходження та реагування на незвичайну API-активність легшими** ніж будь-коли.
|
||||
**CloudTrail Insights** автоматично **аналізує** події управління записами з трас CloudTrail і **сповіщає** вас про **незвичайну активність**. Наприклад, якщо є збільшення подій `TerminateInstance`, яке відрізняється від встановлених базових значень, ви побачите це як подію Insight. Ці події роблять **знаходження та реагування на незвичайну API-активність легшими** ніж будь-коли.
|
||||
|
||||
Інсайти зберігаються в тому ж бакеті, що й логи CloudTrail: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
|
||||
|
||||
### Безпека
|
||||
|
||||
| Цілісність файлів логів CloudTrail | <ul><li>Перевірити, чи не були змінені логи (модифіковані або видалені)</li><li><p>Використовує файли дайджесту (створює хеш для кожного файлу)</p><ul><li>SHA-256 хешування</li><li>SHA-256 з RSA для цифрового підпису</li><li>приватний ключ, що належить Amazon</li></ul></li><li>Створення файлу дайджесту займає 1 годину (виконується щогодини)</li></ul> |
|
||||
| Назва контролю | Деталі реалізації |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Зупинити несанкціонований доступ | <ul><li><p>Використовуйте політики IAM та політики бакетів S3</p><ul><li>команда безпеки —> адміністраторський доступ</li><li>аудитори —> доступ лише для читання</li></ul></li><li>Використовуйте SSE-S3/SSE-KMS для шифрування логів</li></ul> |
|
||||
| Запобігти видаленню файлів логів | <ul><li>Обмежити доступ до видалення за допомогою IAM та політик бакетів</li><li>Налаштувати S3 MFA видалення</li><li>Перевірити за допомогою валідації файлів логів</li></ul> |
|
||||
| Цілісність файлів логів CloudTrail | <ul><li>Перевірити, чи логи були підроблені (змінені або видалені)</li><li><p>Використовує файли дайджесту (створює хеш для кожного файлу)</p><ul><li>SHA-256 хешування</li><li>SHA-256 з RSA для цифрового підпису</li><li>приватний ключ належить Amazon</li></ul></li><li>Створення файлу дайджесту займає 1 годину (здійснюється щогодини)</li></ul> |
|
||||
| Зупинити несанкціонований доступ | <ul><li><p>Використовуйте політики IAM та політики бакетів S3</p><ul><li>команда безпеки —> адміністраторський доступ</li><li>аудитори —> доступ лише для читання</li></ul></li><li>Використовуйте SSE-S3/SSE-KMS для шифрування логів</li></ul> |
|
||||
| Запобігти видаленню файлів логів | <ul><li>Обмежити доступ до видалення за допомогою IAM та політик бакетів</li><li>Налаштувати S3 MFA видалення</li><li>Перевірити за допомогою валідації файлів логів</li></ul> |
|
||||
|
||||
## Консультант доступу
|
||||
## Консультант з доступу
|
||||
|
||||
AWS Access Advisor спирається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Access Advisor використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Access Advisor може визначити, які сервіси AWS використовував IAM-користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
|
||||
AWS Access Advisor покладається на останні 400 днів логів AWS **CloudTrail для збору своїх інсайтів**. CloudTrail фіксує історію викликів API AWS та пов'язаних подій, що відбулися в обліковому записі AWS. Консультант з доступу використовує ці дані, щоб **показати, коли сервіси востаннє використовувалися**. Аналізуючи логи CloudTrail, Консультант з доступу може визначити, які сервіси AWS використовував IAM-користувач або роль і коли цей доступ відбувався. Це допомагає адміністраторам AWS приймати обґрунтовані рішення щодо **удосконалення дозволів**, оскільки вони можуть виявити сервіси, які не використовувалися протягом тривалого часу, і потенційно зменшити надто широкі дозволи на основі реальних патернів використання.
|
||||
|
||||
> [!TIP]
|
||||
> Отже, Access Advisor інформує про **необхідні дозволи, що надаються користувачам**, щоб адміністратор міг їх видалити
|
||||
> Отже, Консультант з доступу інформує про **необхідні дозволи, які надаються користувачам**, щоб адміністратор міг їх видалити
|
||||
|
||||
<figure><img src="../../../../images/image (78).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -150,13 +150,13 @@ https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript
|
||||
|
||||
Honeytokens створюються для **виявлення ексфільтрації чутливої інформації**. У випадку з AWS, це **ключі AWS, використання яких контролюється**, якщо щось викликає дію з цим ключем, то хтось, напевно, вкрали цей ключ.
|
||||
|
||||
Однак Honeytokens, такі як ті, що створені [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren), або використовують впізнаване ім'я облікового запису, або використовують один і той же ідентифікатор облікового запису AWS для всіх своїх клієнтів. Тому, якщо ви можете отримати ім'я облікового запису та/або ідентифікатор облікового запису без того, щоб Cloudtrail створював будь-який журнал, **ви могли б дізнатися, чи є ключ honeytoken чи ні**.
|
||||
Однак Honeytokens, такі як ті, що створені [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren), або використовують впізнаване ім'я облікового запису, або використовують один і той же ідентифікатор облікового запису AWS для всіх своїх клієнтів. Тому, якщо ви зможете отримати ім'я облікового запису та/або ідентифікатор облікового запису без того, щоб Cloudtrail створив будь-який журнал, **ви зможете дізнатися, чи є ключ honeytoken чи ні**.
|
||||
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) має деякі правила для виявлення, чи належить ключ до [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
|
||||
|
||||
- Якщо **`canarytokens.org`** з'являється в імені ролі або ідентифікатор облікового запису **`534261010715`** з'являється в повідомленні про помилку.
|
||||
- Тестуючи їх нещодавно, вони використовують обліковий запис **`717712589309`** і все ще мають рядок **`canarytokens.com`** в імені.
|
||||
- Якщо **`SpaceCrab`** з'являється в імені ролі в повідомленні про помилку.
|
||||
- Якщо **`canarytokens.org`** з'являється в назві ролі або ідентифікатор облікового запису **`534261010715`** з'являється в повідомленні про помилку.
|
||||
- Тестуючи їх нещодавно, вони використовують обліковий запис **`717712589309`** і все ще мають рядок **`canarytokens.com`** в назві.
|
||||
- Якщо **`SpaceCrab`** з'являється в назві ролі в повідомленні про помилку.
|
||||
- **SpaceSiren** використовує **uuid** для генерації імен користувачів: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
|
||||
- Якщо **ім'я виглядає як випадково згенероване**, є висока ймовірність, що це HoneyToken.
|
||||
|
||||
@@ -189,11 +189,11 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
|
||||
|
||||
Справа в тому, що вихід покаже вам помилку, що вказує на ідентифікатор облікового запису та ім'я облікового запису, тому **ви зможете побачити, чи це Honeytoken**.
|
||||
|
||||
#### AWS сервіси без журналів
|
||||
#### Служби AWS без журналів
|
||||
|
||||
У минулому існували деякі **AWS сервіси, які не надсилають журнали до CloudTrail** (знайдіть [список тут](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Деякі з цих сервісів **відповідають** з **помилкою**, що містить **ARN ключової ролі**, якщо хтось несанкціонований (ключ Honeytoken) намагається отримати до них доступ.
|
||||
У минулому існували деякі **служби AWS, які не надсилають журнали до CloudTrail** (знайдіть [список тут](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html)). Деякі з цих служб **відповідатимуть** з **помилкою**, що містить **ARN ключової ролі**, якщо хтось несанкціонований (ключ Honeytoken) намагатиметься отримати до них доступ.
|
||||
|
||||
Таким чином, **зловмисник може отримати ARN ключа, не викликаючи жодного журналу**. У ARN зловмисник може побачити **ідентифікатор облікового запису AWS та ім'я**, легко дізнатися ідентифікатори облікових записів компаній HoneyToken, тому таким чином зловмисник може визначити, чи є токен HoneyToken.
|
||||
Таким чином, **зловмисник може отримати ARN ключа, не викликавши жодного журналу**. У ARN зловмисник може побачити **ідентифікатор облікового запису AWS та ім'я**, легко дізнатися ідентифікатор облікового запису та імена компаній HoneyToken, тому таким чином зловмисник може визначити, чи є токен HoneyToken.
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -204,7 +204,7 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
|
||||
|
||||
### Доступ до третьої інфраструктури
|
||||
|
||||
Деякі сервіси AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **Kubernetes** кластери (EKS). Користувач, **який безпосередньо спілкується з цими сервісами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
|
||||
Деякі служби AWS **створюють певну інфраструктуру**, таку як **Бази даних** або **кластери Kubernetes** (EKS). Користувач, **який безпосередньо спілкується з цими службами** (наприклад, API Kubernetes), **не використовуватиме API AWS**, тому CloudTrail не зможе побачити цю комунікацію.
|
||||
|
||||
Отже, користувач з доступом до EKS, який виявив URL API EKS, може згенерувати токен локально і **спілкуватися з API-сервісом без виявлення Cloudtrail**.
|
||||
|
||||
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
|
||||
# Remove all selectors (stop Insights)
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
|
||||
```
|
||||
У першому прикладі одиничний селектор подій надається у вигляді масиву JSON з єдиним об'єктом. `"ReadWriteType": "ReadOnly"` вказує на те, що **селектор подій повинен захоплювати лише події тільки для читання** (тому CloudTrail insights **не буде перевіряти події запису**, наприклад).
|
||||
У першому прикладі одиничний селектор події надається у вигляді масиву JSON з єдиним об'єктом. `"ReadWriteType": "ReadOnly"` вказує на те, що **селектор подій повинен захоплювати лише події тільки для читання** (тому CloudTrail insights **не буде перевіряти події запису**, наприклад).
|
||||
|
||||
Ви можете налаштувати селектор подій відповідно до ваших конкретних вимог.
|
||||
|
||||
@@ -256,7 +256,7 @@ aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration
|
||||
#### Ransomware S3
|
||||
|
||||
Ви можете **згенерувати асиметричний ключ** і змусити **CloudTrail зашифрувати дані** цим ключем і **видалити приватний ключ**, щоб вміст CloudTrail не можна було відновити.\
|
||||
Це, по суті, **S3-KMS ransomware**, пояснене в:
|
||||
Це в основному **S3-KMS ransomware**, пояснене в:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-post-exploitation/aws-s3-post-exploitation.md
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
Ви можете моніторити, наприклад, журнали з CloudTrail. Події, які моніторяться:
|
||||
|
||||
- Зміни в групах безпеки та NACL
|
||||
- Запуск, зупинка, перезавантаження та завершення роботи EC2 екземплярів
|
||||
- Запуск, зупинка, перезавантаження та завершення роботи EC2 інстансів
|
||||
- Зміни в політиках безпеки в IAM та S3
|
||||
- Невдалі спроби входу до консолі управління AWS
|
||||
- Виклики API, які призвели до невдалої авторизації
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
### Метрики
|
||||
|
||||
Метрики - це точки даних, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
|
||||
Метрики - це дані, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
|
||||
|
||||
- **Приклад**: CPUUtilization, NetworkIn, DiskReadOps.
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
|
||||
Виміри - це пари ключ-значення, які є частиною метрик. Вони допомагають унікально ідентифікувати метрику та надають додатковий контекст, при цьому 30 - це максимальна кількість вимірів, які можуть бути асоційовані з метрикою. Виміри також дозволяють фільтрувати та агрегувати метрики на основі конкретних атрибутів.
|
||||
|
||||
- **Приклад**: Для екземплярів EC2 виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
|
||||
- **Приклад**: Для EC2 інстансів виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
|
||||
|
||||
### Статистика
|
||||
|
||||
Статистика - це математичні обчислення, виконані над даними метрик для їх узагальнення з часом. Загальні статистики включають Середнє, Суму, Мінімум, Максимум та Кількість зразків.
|
||||
|
||||
- **Приклад**: Обчислення середнього використання ЦП за період в одну годину.
|
||||
- **Приклад**: Обчислення середнього використання CPU за період в одну годину.
|
||||
|
||||
### Одиниці
|
||||
|
||||
@@ -51,9 +51,9 @@
|
||||
|
||||
## Функції CloudWatch
|
||||
|
||||
### Панель приладів
|
||||
### Панель
|
||||
|
||||
**Панелі приладів CloudWatch** надають настроювані **перегляди ваших метрик AWS CloudWatch**. Можна створювати та налаштовувати панелі для візуалізації даних і моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
|
||||
**Панелі CloudWatch** надають настроювані **перегляди ваших метрик AWS CloudWatch**. Можна створювати та налаштовувати панелі для візуалізації даних і моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
|
||||
|
||||
**Ключові функції**:
|
||||
|
||||
@@ -62,18 +62,18 @@
|
||||
|
||||
**Приклад використання**:
|
||||
|
||||
- Одна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи екземпляри EC2, бази даних RDS та кошики S3.
|
||||
- Одна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи EC2 інстанси, бази даних RDS та S3 контейнери.
|
||||
|
||||
### Потік метрик та дані метрик
|
||||
|
||||
**Потоки метрик** в AWS CloudWatch дозволяють вам безперервно передавати метрики CloudWatch до обраного вами місця призначення в майже реальному часі. Це особливо корисно для розширеного моніторингу, аналітики та користувацьких панелей, використовуючи інструменти поза AWS.
|
||||
|
||||
**Дані метрик** всередині потоків метрик відносяться до фактичних вимірювань або точок даних, які передаються. Ці точки даних представляють різні метрики, такі як використання ЦП, використання пам'яті тощо, для ресурсів AWS.
|
||||
**Дані метрик** всередині Потоків метрик відносяться до фактичних вимірювань або даних, які передаються. Ці дані представляють різні метрики, такі як використання CPU, використання пам'яті тощо, для ресурсів AWS.
|
||||
|
||||
**Приклад використання**:
|
||||
|
||||
- Надсилання метрик в реальному часі до служби моніторингу третьої сторони для розширеного аналізу.
|
||||
- Архівування метрик у кошику Amazon S3 для довгострокового зберігання та відповідності.
|
||||
- Надсилання реальних метрик до стороннього сервісу моніторингу для розширеного аналізу.
|
||||
- Архівування метрик у контейнері Amazon S3 для довгострокового зберігання та відповідності.
|
||||
|
||||
### Алерт
|
||||
|
||||
@@ -83,12 +83,12 @@
|
||||
|
||||
- **Поріг**: Значення, при якому спрацьовує алерт.
|
||||
- **Періоди оцінки**: Кількість періодів, протягом яких дані оцінюються.
|
||||
- **Точки даних для алерту**: Кількість періодів з досягнутим порогом, необхідна для спрацьовування алерту.
|
||||
- **Дані для алерту**: Кількість періодів з досягнутим порогом, необхідна для активації алерту.
|
||||
- **Дії**: Що відбувається, коли спрацьовує стан алерту (наприклад, сповіщення через SNS).
|
||||
|
||||
**Приклад використання**:
|
||||
|
||||
- Моніторинг використання ЦП екземпляра EC2 та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
|
||||
- Моніторинг використання CPU EC2 інстанса та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
|
||||
|
||||
### Виявлення аномалій
|
||||
|
||||
@@ -101,41 +101,41 @@
|
||||
|
||||
**Приклад використання**:
|
||||
|
||||
- Виявлення незвичайних патернів використання ЦП в екземплярі EC2, які можуть вказувати на порушення безпеки або проблему з додатком.
|
||||
- Виявлення незвичних патернів використання CPU в EC2 інстансі, які можуть вказувати на порушення безпеки або проблему з додатком.
|
||||
|
||||
### Правила інсайту та керовані правила інсайту
|
||||
|
||||
**Правила інсайту** дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи **потужні математичні вирази** для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичайну поведінку у продуктивності та використанні ваших ресурсів.
|
||||
**Правила інсайту** дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи **потужні математичні вирази** для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичну поведінку у продуктивності та використанні ваших ресурсів.
|
||||
|
||||
**Керовані правила інсайту** - це попередньо налаштовані **правила інсайту, надані AWS**. Вони призначені для моніторингу конкретних сервісів AWS або загальних випадків використання та можуть бути активовані без необхідності детальної конфігурації.
|
||||
|
||||
**Приклад використання**:
|
||||
|
||||
- Моніторинг продуктивності RDS: Увімкніть кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може спровокувати сповіщення або автоматизовану дію з пом'якшення.
|
||||
- Моніторинг продуктивності RDS: Увімкніть кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання CPU, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може активувати сповіщення або автоматизовану дію пом'якшення.
|
||||
|
||||
### Журнали CloudWatch <a href="#cloudwatch-logs" id="cloudwatch-logs"></a>
|
||||
|
||||
Дозволяє **агрегувати та моніторити журнали з додатків** та систем з **сервісів AWS** (включаючи CloudTrail) та **з додатків/систем** (**CloudWatch Agent** може бути встановлений на хост). Журнали можуть **зберігатися безстроково** (залежно від налаштувань групи журналів) і можуть бути експортовані.
|
||||
|
||||
**Елементи**:
|
||||
|
||||
| **Група журналів** | **Збірка потоків журналів**, які мають однакові налаштування зберігання, моніторингу та контролю доступу |
|
||||
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Потік журналів** | Послідовність **журнальних подій**, які мають **одне джерело** |
|
||||
| **Фільтри підписки** | Визначають **шаблон фільтра, який відповідає подіям** у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda |
|
||||
| Термін | Визначення |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Група журналів** | **Збірка потоків журналів**, які мають однакові налаштування зберігання, моніторингу та контролю доступу |
|
||||
| **Потік журналів** | Послідовність **журнальних подій**, які мають **одне джерело** |
|
||||
| **Фільтри підписки** | Визначають **шаблон фільтра, який відповідає подіям** у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda |
|
||||
|
||||
### Моніторинг та події CloudWatch
|
||||
|
||||
CloudWatch **базовий** агрегує дані **кожні 5 хвилин** ( **детальний** - **кожну 1 хвилину**). Після агрегації він **перевіряє пороги алертів** на випадок, якщо потрібно спровокувати один.\
|
||||
CloudWatch **базовий** агрегує дані **кожні 5 хвилин** ( **детальний** - **кожну 1 хвилину**). Після агрегації він **перевіряє пороги алертів**, щоб визначити, чи потрібно активувати один.\
|
||||
У цьому випадку CloudWatch може бути готовий надіслати подію та виконати деякі автоматичні дії (функції AWS lambda, теми SNS, черги SQS, потоки Kinesis)
|
||||
|
||||
### Встановлення агента
|
||||
|
||||
Ви можете встановити агентів всередині своїх машин/контейнерів, щоб автоматично надсилати журнали назад до CloudWatch.
|
||||
|
||||
- **Створіть** **роль** та **прикріпіть** її до **екземпляра** з дозволами, що дозволяють CloudWatch збирати дані з екземплярів, крім взаємодії з менеджером систем AWS SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
|
||||
- **Завантажте** та **встановіть** **агент** на екземпляр EC2 ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Ви можете завантажити його зсередини EC2 або встановити автоматично, використовуючи AWS System Manager, вибравши пакет AWS-ConfigureAWSPackage
|
||||
- **Налаштуйте** та **запустіть** агент CloudWatch
|
||||
- **Створіть** **роль** та **прикріпіть** її до **інстанса** з дозволами, що дозволяють CloudWatch збирати дані з інстансів, а також взаємодіяти з AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
|
||||
- **Завантажте** та **встановіть** **агент** на EC2 інстанс ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Ви можете завантажити його зсередини EC2 або встановити автоматично, використовуючи AWS Systems Manager, вибравши пакет AWS-ConfigureAWSPackage
|
||||
- **Налаштуйте** та **запустіть** CloudWatch Agent
|
||||
|
||||
Група журналів має багато потоків. Потік має багато подій. І всередині кожного потоку події гарантовано будуть в порядку.
|
||||
|
||||
@@ -212,22 +212,22 @@ aws events describe-event-source --name <name>aws events list-replays
|
||||
aws events list-api-destinations
|
||||
aws events list-event-buses
|
||||
```
|
||||
## Пост-експлуатація / Обхід
|
||||
## Post-Exploitation / Bypass
|
||||
|
||||
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
|
||||
|
||||
Зловмисник з цими правами може суттєво підірвати інфраструктуру моніторингу та сповіщення організації. Видаляючи існуючі тривоги, зловмисник може вимкнути критично важливі сповіщення, які повідомляють адміністраторів про критичні проблеми з продуктивністю, порушення безпеки або операційні збої. Крім того, створюючи або змінюючи метрики тривог, зловмисник також може вводити адміністраторів в оману хибними сповіщеннями або заглушати законні тривоги, ефективно маскуючи злочинні дії та запобігаючи своєчасним реакціям на реальні інциденти.
|
||||
Зловмисник з цими дозволами може суттєво підірвати інфраструктуру моніторингу та сповіщення організації. Видаляючи існуючі тривоги, зловмисник може вимкнути критично важливі сповіщення, які повідомляють адміністраторів про критичні проблеми з продуктивністю, порушення безпеки або збої в роботі. Крім того, створюючи або модифікуючи метрики тривог, зловмисник також може вводити адміністраторів в оману хибними сповіщеннями або заглушати законні тривоги, ефективно маскуючи злочинні дії та запобігаючи своєчасним реакціям на реальні інциденти.
|
||||
|
||||
Крім того, з правом **`cloudwatch:PutCompositeAlarm`** зловмисник зможе створити цикл або петлю складних тривог, де складна тривога A залежить від складної тривоги B, а складна тривога B також залежить від складної тривоги A. У цьому сценарії неможливо видалити будь-яку складну тривогу, яка є частиною циклу, оскільки завжди залишається складна тривога, яка залежить від тієї тривоги, яку ви хочете видалити.
|
||||
Крім того, з дозволом **`cloudwatch:PutCompositeAlarm`** зловмисник зможе створити цикл складних тривог, де складна тривога A залежить від складної тривоги B, а складна тривога B також залежить від складної тривоги A. У цьому сценарії неможливо видалити будь-яку складну тривогу, яка є частиною циклу, оскільки завжди залишається складна тривога, яка залежить від тієї тривоги, яку ви хочете видалити.
|
||||
```bash
|
||||
aws cloudwatch put-metric-alarm --cli-input-json <value> | --alarm-name <value> --comparison-operator <value> --evaluation-periods <value> [--datapoints-to-alarm <value>] [--threshold <value>] [--alarm-description <value>] [--alarm-actions <value>] [--metric-name <value>] [--namespace <value>] [--statistic <value>] [--dimensions <value>] [--period <value>]
|
||||
aws cloudwatch delete-alarms --alarm-names <value>
|
||||
aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--no-actions-enabled | --actions-enabled [--alarm-actions <value>] [--insufficient-data-actions <value>] [--ok-actions <value>] ]
|
||||
```
|
||||
Наступний приклад показує, як зробити метрику тривоги неефективною:
|
||||
Наступний приклад показує, як зробити метрику сигналізації неефективною:
|
||||
|
||||
- Ця метрика тривоги моніторить середнє використання ЦП конкретного EC2 екземпляра, оцінює метрику кожні 300 секунд і вимагає 6 періодів оцінки (всього 30 хвилин). Якщо середнє використання ЦП перевищує 60% принаймні в 4 з цих періодів, тривога спрацює і надішле сповіщення на вказану тему SNS.
|
||||
- Змінивши поріг на більше ніж 99%, встановивши період на 10 секунд, періоди оцінки на 8640 (оскільки 8640 періодів по 10 секунд дорівнює 1 дню), і точки даних для тривоги на 8640, буде необхідно, щоб використання ЦП перевищувало 99% кожні 10 секунд протягом всього 24-годинного періоду, щоб спрацювала тривога.
|
||||
- Ця метрика сигналізації контролює середнє використання ЦП конкретного EC2 екземпляра, оцінює метрику кожні 300 секунд і вимагає 6 періодів оцінки (всього 30 хвилин). Якщо середнє використання ЦП перевищує 60% принаймні в 4 з цих періодів, сигналізація спрацює і надішле сповіщення на вказану тему SNS.
|
||||
- Змінивши поріг на більше ніж 99%, встановивши період на 10 секунд, періоди оцінки на 8640 (оскільки 8640 періодів по 10 секунд дорівнюють 1 дню), і точки даних для сигналізації на 8640, буде необхідно, щоб використання ЦП перевищувало 99% кожні 10 секунд протягом всього 24-годинного періоду, щоб спрацювала сигналізація.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Alarm" }}
|
||||
@@ -254,7 +254,7 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
|
||||
```
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Модифікований сигнал тривоги" }}
|
||||
{{#tab name="Modified Metric Alarm" }}
|
||||
```json
|
||||
{
|
||||
"Namespace": "AWS/EC2",
|
||||
@@ -283,7 +283,7 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
|
||||
|
||||
### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions` , `cloudwatch:SetAlarmState`**
|
||||
|
||||
Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або запуск автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що може викликати плутанину і неправильне реагування на інциденти.
|
||||
Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або ініціювання автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що може викликати плутанину і неправильне реагування на інциденти.
|
||||
|
||||
Крім того, зловмисник з відповідними правами може маніпулювати станами тривоги, маючи можливість створювати хибні тривоги, щоб відволікати і плутати адміністраторів, або приглушувати справжні тривоги, щоб приховати триваючі шкідливі дії або критичні збої системи.
|
||||
|
||||
@@ -297,12 +297,12 @@ aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM |
|
||||
|
||||
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
|
||||
|
||||
Зловмисник зможе скомпрометувати здатність виявлення та реагування на незвичайні патерни або аномалії в метрик даних. Видаляючи існуючі детектори аномалій, зловмисник може відключити критичні механізми сповіщення; а створюючи або модифікуючи їх, він зможе або неправильно налаштувати, або створити хибнопозитивні сповіщення, щоб відволікти або перевантажити моніторинг.
|
||||
Зловмисник зможе скомпрометувати можливість виявлення та реагування на незвичайні патерни або аномалії в метриках даних. Видаляючи існуючі детектори аномалій, зловмисник може відключити критичні механізми сповіщення; а створюючи або модифікуючи їх, він зможе або неправильно налаштувати, або створити хибнопозитивні сповіщення, щоб відволікти або перевантажити моніторинг.
|
||||
```bash
|
||||
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
|
||||
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
|
||||
```
|
||||
Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує або не сповіщає про будь-які релевантні дані протягом цього періоду.
|
||||
Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує або не сповіщає про жодні релевантні дані протягом цього періоду.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Anomaly Detector" }}
|
||||
@@ -355,7 +355,7 @@ aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <val
|
||||
|
||||
### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`**
|
||||
|
||||
Зловмисник зможе скомпрометувати можливості моніторингу та візуалізації організації, створюючи, модифікуючи або видаляючи її інформаційні панелі. Ці дозволи можуть бути використані для видалення критичної видимості продуктивності та стану систем, зміни інформаційних панелей для відображення некоректних даних або приховування шкідливих дій.
|
||||
Зловмисник зможе скомпрометувати можливості моніторингу та візуалізації організації, створюючи, модифікуючи або видаляючи її інформаційні панелі. Ці дозволи можуть бути використані для видалення критичної видимості продуктивності та стану систем, зміни інформаційних панелей для відображення неправильних даних або приховування злочинних дій.
|
||||
```bash
|
||||
aws cloudwatch delete-dashboards --dashboard-names <value>
|
||||
aws cloudwatch put-dashboard --dashboard-name <value> --dashboard-body <value>
|
||||
@@ -364,7 +364,7 @@ aws cloudwatch put-dashboard --dashboard-name <value> --dashboard-body <value>
|
||||
|
||||
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule` ,`cloudwatch:PutManagedInsightRule`**
|
||||
|
||||
Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критично важливі можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку операційної команди.
|
||||
Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критичні можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку операційної команди.
|
||||
```bash
|
||||
aws cloudwatch delete-insight-rules --rule-names <value>
|
||||
aws cloudwatch put-insight-rule --rule-name <value> --rule-definition <value> [--rule-state <value>]
|
||||
@@ -374,18 +374,18 @@ aws cloudwatch put-managed-insight-rules --managed-rules <value>
|
||||
|
||||
### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`**
|
||||
|
||||
Вимкнувши критично важливі правила інсайтів, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, можна створити хибні дані, створити шум або приховати злочинну діяльність.
|
||||
Вимкнувши критично важливі правила моніторингу, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, можна створити хибні дані, створити шум або приховати злочинну діяльність.
|
||||
```bash
|
||||
aws cloudwatch disable-insight-rules --rule-names <value>
|
||||
aws cloudwatch enable-insight-rules --rule-names <value>
|
||||
```
|
||||
**Потенційний вплив**: Плутанина серед команди операцій, що призводить до затримки у відповідях на реальні проблеми та непотрібних дій на основі хибних сповіщень.
|
||||
**Потенційний вплив**: Плутанина серед команди операцій, що призводить до затримок у реагуванні на реальні проблеми та непотрібних дій на основі хибних сповіщень.
|
||||
|
||||
### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`**
|
||||
|
||||
Зловмисник з правами **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** зможе створювати та видаляти потоки даних метрик, що компрометує безпеку, моніторинг та цілісність даних:
|
||||
|
||||
- **Створення шкідливих потоків**: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць.
|
||||
- **Створення шкідливих потоків**: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць призначення.
|
||||
- **Маніпуляція ресурсами**: Створення нових потоків метрик з надмірними даними може створити багато шуму, викликаючи неправильні сповіщення, маскуючи справжні проблеми.
|
||||
- **Порушення моніторингу**: Видаляючи потоки метрик, зловмисники порушать безперервний потік моніторингових даних. Таким чином, їхні шкідливі дії будуть ефективно приховані.
|
||||
|
||||
@@ -417,7 +417,7 @@ aws cloudwatch start-metric-streams --names <value>
|
||||
aws cloudwatch tag-resource --resource-arn <value> --tags <value>
|
||||
aws cloudwatch untag-resource --resource-arn <value> --tag-keys <value>
|
||||
```
|
||||
**Потенційний вплив**: Порушення політик доступу на основі тегів.
|
||||
**Потенційний вплив**: Порушення політик контролю доступу на основі тегів.
|
||||
|
||||
## Посилання
|
||||
|
||||
|
||||
Reference in New Issue
Block a user