AWS - CloudWatch Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
CloudWatch збирає моніторингові та операційні дані у формі журналів/метрик/подій, надаючи уніфікований огляд ресурсів AWS, додатків та сервісів. Подія журналу CloudWatch має обмеження розміру 256KB на кожен рядок журналу. Він може встановлювати сигнали високої роздільної здатності, візуалізувати журнали та метрики поруч, виконувати автоматизовані дії, усувати проблеми та виявляти інсайти для оптимізації додатків.
Ви можете моніторити, наприклад, журнали з CloudTrail. Події, які моніторяться:
Зміни в групах безпеки та NACL
Запуск, зупинка, перезавантаження та завершення роботи EC2 інстансів
Зміни в політиках безпеки в IAM та S3
Невдалі спроби входу до консолі управління AWS
Виклики API, які призвели до невдалої авторизації
Фільтри для пошуку в CloudWatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Простір імен - це контейнер для метрик CloudWatch. Він допомагає категоризувати та ізолювати метрики, спрощуючи їх управління та аналіз.
Приклади: AWS/EC2 для метрик, пов'язаних з EC2, AWS/RDS для метрик RDS.
Метрики - це точки даних, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
Приклад: CPUUtilization, NetworkIn, DiskReadOps.
Виміри - це пари ключ-значення, які є частиною метрик. Вони допомагають унікально ідентифікувати метрику та надають додатковий контекст, при цьому 30 - це максимальна кількість вимірів, які можуть бути асоційовані з метрикою. Виміри також дозволяють фільтрувати та агрегувати метрики на основі конкретних атрибутів.
Приклад: Для EC2 інстансів виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
Статистика - це математичні обчислення, виконані над даними метрик для їх узагальнення з часом. Загальні статистичні показники включають середнє, суму, мінімум, максимум та кількість вибірок.
Приклад: Обчислення середнього використання ЦП за період в одну годину.
Одиниці - це тип вимірювання, пов'язаний з метрикою. Одиниці допомагають надати контекст і значення даним метрик. Загальні одиниці включають відсотки, байти, секунди, кількість.
Приклад: CPUUtilization може вимірюватися в відсотках, тоді як NetworkIn може вимірюватися в байтах.
Панелі CloudWatch надають настроювані перегляди ваших метрик AWS CloudWatch. Можна створювати та налаштовувати панелі для візуалізації даних та моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
Ключові функції:
Віджети: Будівельні блоки панелей, включаючи графіки, текст, сигнали та інше.
Налаштування: Макет та вміст можуть бути налаштовані відповідно до конкретних потреб моніторингу.
Приклад використання:
Одна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи EC2 інстанси, бази даних RDS та кошики S3.
Потоки метрик в AWS CloudWatch дозволяють вам безперервно транслювати метрики CloudWatch до обраного вами місця призначення в майже реальному часі. Це особливо корисно для розширеного моніторингу, аналітики та користувацьких панелей, використовуючи інструменти поза AWS.
Дані метрик всередині потоків метрик відносяться до фактичних вимірювань або точок даних, які транслюються. Ці точки даних представляють різні метрики, такі як використання ЦП, використання пам'яті тощо, для ресурсів AWS.
Приклад використання:
Надсилання реальних метрик до стороннього сервісу моніторингу для розширеного аналізу.
Архівування метрик у кошику Amazon S3 для довгострокового зберігання та відповідності.
Сигнали CloudWatch моніторять ваші метрики та виконують дії на основі попередньо визначених порогів. Коли метрика перевищує поріг, сигнал може виконати одну або кілька дій, таких як надсилання сповіщень через SNS, активація політики автоматичного масштабування або виконання функції AWS Lambda.
Ключові компоненти:
Поріг: Значення, при якому сигнал спрацьовує.
Періоди оцінки: Кількість періодів, протягом яких дані оцінюються.
Точки даних для сигналу: Кількість періодів з досягнутим порогом, необхідна для активації сигналу.
Дії: Що відбувається, коли стан сигналу активується (наприклад, сповіщення через SNS).
Приклад використання:
Моніторинг використання ЦП інстанса EC2 та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
Детектори аномалій використовують машинне навчання для автоматичного виявлення аномалій у ваших метриках. Ви можете застосувати виявлення аномалій до будь-якої метрики CloudWatch, щоб виявити відхилення від нормальних патернів, які можуть вказувати на проблеми.
Ключові компоненти:
Навчання моделі: CloudWatch використовує історичні дані для навчання моделі та встановлення того, як виглядає нормальна поведінка.
Діапазон виявлення аномалій: Візуальне представлення очікуваного діапазону значень для метрики.
Приклад використання:
Виявлення незвичайних патернів використання ЦП в інстансі EC2, які можуть вказувати на порушення безпеки або проблему з додатком.
Правила інсайту дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи потужні математичні вирази для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичайну поведінку у продуктивності та використанні ваших ресурсів.
Керовані правила інсайту - це попередньо налаштовані правила інсайту, надані AWS. Вони призначені для моніторингу конкретних сервісів AWS або загальних випадків використання та можуть бути активовані без необхідності детальної конфігурації.
Приклад використання:
Моніторинг продуктивності RDS: Активуйте кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може активувати сповіщення або автоматизовану дію пом'якшення.
Дозволяє агрегувати та моніторити журнали з додатків та систем з сервісів AWS (включаючи CloudTrail) та з додатків/систем (CloudWatch Agent може бути встановлений на хост). Журнали можуть зберігатися безстроково (залежно від налаштувань групи журналів) і можуть бути експортовані.
Елементи:
Група журналів | Колекція потоків журналів, які мають однакові налаштування зберігання, моніторингу та контролю доступу |
Потік журналу | Послідовність журнальних подій, які мають одне джерело |
Фільтри підписки | Визначають шаблон фільтра, який відповідає подіям у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda |
CloudWatch базовий агрегує дані кожні 5 хвилин ( деталізований робить це кожну 1 хвилину). Після агрегації він перевіряє пороги сигналів на випадок, якщо потрібно активувати один. У цьому випадку CloudWatch може бути готовий надіслати подію та виконати деякі автоматичні дії (функції AWS Lambda, теми SNS, черги SQS, потоки Kinesis)
Ви можете встановити агенти всередині своїх машин/контейнерів, щоб автоматично надсилати журнали назад до CloudWatch.
Створіть роль та прикріпіть її до інстансу з дозволами, що дозволяють CloudWatch збирати дані з інстансів, крім взаємодії з AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Завантажте та встановіть агент на інстанс EC2 (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). Ви можете завантажити його зсередини EC2 або встановити автоматично, використовуючи AWS Systems Manager, вибравши пакет AWS-ConfigureAWSPackage
Налаштуйте та запустіть агент CloudWatch
Група журналів має багато потоків. Потік має багато подій. І всередині кожного потоку події гарантовано будуть в порядку.
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Зловмисник з цими правами може суттєво підірвати інфраструктуру моніторингу та сповіщення організації. Видаляючи існуючі тривоги, зловмисник може вимкнути критично важливі сповіщення, які повідомляють адміністраторів про критичні проблеми з продуктивністю, порушення безпеки або операційні збої. Крім того, створюючи або модифікуючи метричні тривоги, зловмисник також може вводити адміністраторів в оману з допомогою хибних сповіщень або заглушати законні тривоги, ефективно маскуючи злочинні дії та запобігаючи своєчасним реакціям на реальні інциденти.
Крім того, з правом cloudwatch:PutCompositeAlarm
зловмисник зможе створити цикл або петлю складних тривог, де складна тривога A залежить від складної тривоги B, а складна тривога B також залежить від складної тривоги A. У цьому сценарії неможливо видалити будь-яку складну тривогу, яка є частиною циклу, оскільки завжди залишається складна тривога, яка залежить від тієї тривоги, яку ви хочете видалити.
Наступний приклад показує, як зробити сигналізацію метрики неефективною:
Ця сигналізація метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, оцінює метрику кожні 300 секунд і вимагає 6 періодів оцінки (всього 30 хвилин). Якщо середнє використання ЦП перевищує 60% принаймні в 4 з цих періодів, сигналізація спрацює і надішле сповіщення на вказану тему SNS.
Змінивши поріг на більше ніж 99%, встановивши період на 10 секунд, періоди оцінки на 8640 (оскільки 8640 періодів по 10 секунд дорівнює 1 дню), і точки даних для сигналізації на 8640, буде необхідно, щоб використання ЦП перевищувало 99% кожні 10 секунд протягом всього 24-годинного періоду, щоб спрацювала сигналізація.
Потенційний вплив: Відсутність сповіщень про критичні події, потенційні непомічені проблеми, хибні сповіщення, придушення справжніх сповіщень і потенційно пропущені виявлення реальних інцидентів.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або ініціювання автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що потенційно може викликати плутанину і неправильне реагування на інциденти.
Крім того, зловмисник з відповідними правами може маніпулювати станами тривоги, маючи можливість створювати хибні тривоги, щоб відволікати і плутати адміністраторів, або приглушувати справжні тривоги, щоб приховати триваючі шкідливі дії або критичні збої системи.
Якщо ви використовуєте SetAlarmState
на складній тривозі, складна тривога не гарантує повернення до свого фактичного стану. Вона повертається до свого фактичного стану лише після зміни стану будь-якої з її дочірніх тривог. Вона також переоцінюється, якщо ви оновлюєте її конфігурацію.
Потенційний вплив: Відсутність сповіщень про критичні події, потенційні непомічені проблеми, хибні сповіщення, придушення справжніх сповіщень і потенційно пропущені виявлення реальних інцидентів.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Зловмисник зможе скомпрометувати можливість виявлення та реагування на незвичайні патерни або аномалії в метрик даних. Видаляючи існуючі детектори аномалій, зловмисник може відключити критичні механізми сповіщення; а створюючи або модифікуючи їх, він зможе або неправильно налаштувати, або створити хибнопозитивні сповіщення, щоб відволікти або перевантажити моніторинг.
Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує і не сповіщає про жодні релевантні дані протягом цього періоду.
Потенційний вплив: Прямий ефект у виявленні незвичних патернів або загроз безпеці.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Зловмисник зможе скомпрометувати можливості моніторингу та візуалізації організації, створюючи, змінюючи або видаляючи її інформаційні панелі. Ці дозволи можуть бути використані для видалення критичної видимості продуктивності та стану систем, зміни інформаційних панелей для відображення неправильних даних або приховування шкідливих дій.
Потенційний вплив: Втрата видимості моніторингу та оманлива інформація.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критичні можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку операційної команди.
Потенційний вплив: Важкість виявлення та реагування на проблеми з продуктивністю та аномалії, помилкове прийняття рішень та потенційне приховування злочинних дій або збоїв системи.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Вимкнувши критично важливі правила інсайтів, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, може бути можливим генерувати хибні дані, створювати шум або приховувати злочинну діяльність.
Потенційний вплив: Плутанина серед команди операцій, що призводить до затримки у відповідях на реальні проблеми та непотрібних дій на основі хибних сповіщень.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Зловмисник з правами cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
зможе створювати та видаляти потоки даних метрик, що компрометує безпеку, моніторинг та цілісність даних:
Створення шкідливих потоків: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць.
Маніпуляція ресурсами: Створення нових потоків метрик з надмірними даними може створити багато шуму, викликаючи неправильні сповіщення, маскуючи справжні проблеми.
Порушення моніторингу: Видаляючи потоки метрик, зловмисники порушать безперервний потік моніторингових даних. Таким чином, їхні шкідливі дії будуть ефективно приховані.
Аналогічно, з правом cloudwatch:PutMetricData
буде можливим додавати дані до потоку метрик. Це може призвести до DoS через кількість неналежних даних, що додаються, роблячи його абсолютно непотрібним.
Приклад додавання даних, що відповідають 70% використання ЦП на даному EC2 екземплярі:
Потенційний вплив: Порушення потоку даних моніторингу, що впливає на виявлення аномалій та інцидентів, маніпуляцію ресурсами та збільшення витрат через створення надмірних потоків метрик.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Зловмисник контролював би потік даних метрик, що підлягають впливу (кожен потік даних, якщо немає обмежень на ресурси). З дозволом cloudwatch:StopMetricStreams
зловмисники могли б приховати свої злочинні дії, зупинивши критично важливі потоки метрик.
Потенційний вплив: Порушення потоку даних моніторингу, що вплине на виявлення аномалій та інцидентів.
cloudwatch:TagResource
, cloudwatch:UntagResource
Зловмисник зможе додавати, змінювати або видаляти теги з ресурсів CloudWatch (в даний час лише тривоги та правила Contributor Insights). Це може порушити політики контролю доступу вашої організації на основі тегів.
Потенційний вплив: Порушення політик контролю доступу на основі тегів.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)