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 Log Event має обмеження розміру 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 Dashboards надають настроювані перегляди ваших метрик AWS CloudWatch. Можна створювати та налаштовувати інформаційні панелі для візуалізації даних та моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
Ключові функції:
Віджети: Будівельні блоки інформаційних панелей, включаючи графіки, текст, алерти та інше.
Налаштування: Макет та вміст можуть бути налаштовані відповідно до конкретних потреб моніторингу.
Приклад використання:
Одна інформаційна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи екземпляри EC2, бази даних RDS та кошики S3.
Metric Streams в AWS CloudWatch дозволяють вам безперервно транслювати метрики CloudWatch до обраного вами місця призначення в майже реальному часі. Це особливо корисно для розширеного моніторингу, аналітики та користувацьких інформаційних панелей за допомогою інструментів поза AWS.
Дані метрик всередині Metric Streams відносяться до фактичних вимірювань або точок даних, які транслюються. Ці точки даних представляють різні метрики, такі як використання ЦП, використання пам'яті тощо, для ресурсів AWS.
Приклад використання:
Відправка реальних метрик до стороннього сервісу моніторингу для розширеного аналізу.
Архівування метрик у кошику Amazon S3 для довгострокового зберігання та відповідності.
CloudWatch Alarms моніторять ваші метрики та виконують дії на основі попередньо визначених порогів. Коли метрика перевищує поріг, сигналізація може виконати одну або кілька дій, таких як надсилання сповіщень через SNS, активація політики автоматичного масштабування або виконання функції AWS Lambda.
Ключові компоненти:
Поріг: Значення, при якому спрацьовує сигналізація.
Періоди оцінки: Кількість періодів, протягом яких дані оцінюються.
Точки даних для сигналізації: Кількість періодів з досягнутим порогом, необхідна для активації сигналізації.
Дії: Що відбувається, коли спрацьовує стан сигналізації (наприклад, сповіщення через SNS).
Приклад використання:
Моніторинг використання ЦП екземпляра EC2 та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
Anomaly Detectors використовують машинне навчання для автоматичного виявлення аномалій у ваших метриках. Ви можете застосувати виявлення аномалій до будь-якої метрики CloudWatch, щоб виявити відхилення від нормальних патернів, які можуть вказувати на проблеми.
Ключові компоненти:
Навчання моделі: CloudWatch використовує історичні дані для навчання моделі та встановлення того, як виглядає нормальна поведінка.
Діапазон виявлення аномалій: Візуальне представлення очікуваного діапазону значень для метрики.
Приклад використання:
Виявлення незвичайних патернів використання ЦП в екземплярі EC2, які можуть вказувати на порушення безпеки або проблему з додатком.
Insight Rules дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи потужні математичні вирази для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичайну поведінку у продуктивності та використанні ваших ресурсів.
Managed Insight Rules - це попередньо налаштовані правила інсайту, надані AWS. Вони призначені для моніторингу конкретних сервісів AWS або загальних випадків використання та можуть бути активовані без необхідності детальної конфігурації.
Приклад використання:
Моніторинг продуктивності RDS: Активуйте кероване правило інсайту для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та дисковий ввід/вивід. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може активувати сповіщення або автоматизовану дію пом'якшення.
Дозволяє агрегувати та моніторити журнали з додатків та систем з сервісів AWS (включаючи CloudTrail) та з додатків/систем (CloudWatch Agent може бути встановлений на хост). Журнали можуть зберігатися безстроково (залежно від налаштувань групи журналів) і можуть бути експортовані.
Елементи:
Група журналів
Колекція потоків журналів, які мають однакові налаштування зберігання, моніторингу та контролю доступу
Потік журналу
Послідовність журнальних подій, які мають одне джерело
Фільтри підписки
Визначають шаблон фільтра, який відповідає подіям у певній групі журналів, надсилають їх до потоку Kinesis Data Firehose, потоку Kinesis або функції Lambda
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). Ви можете завантажити його зсередини EC2 або встановити автоматично за допомогою AWS System Manager, вибравши пакет AWS-ConfigureAWSPackage
Налаштуйте та запустіть CloudWatch Agent
Група журналів має багато потоків. Потік має багато подій. І всередині кожного потоку події гарантовано будуть в порядку.
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)