AWS - CloudWatch Enum
CloudWatch
CloudWatch збирає моніторингові та операційні дані у формі журналів/метрик/подій, надаючи уніфікований огляд ресурсів AWS, додатків та сервісів. Подія журналу CloudWatch має обмеження розміру 256KB на кожен рядок журналу. Він може встановлювати сигнали високої роздільної здатності, візуалізувати журнали та метрики поруч, виконувати автоматизовані дії, усувати проблеми та виявляти інсайти для оптимізації додатків.
Ви можете моніторити, наприклад, журнали з CloudTrail. Події, які моніторяться:
Зміни в групах безпеки та NACL
Запуск, зупинка, перезавантаження та завершення роботи EC2 інстансів
Зміни в політиках безпеки в IAM та S3
Невдалі спроби входу до консолі управління AWS
Виклики API, які призвели до невдалої авторизації
Фільтри для пошуку в CloudWatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Key concepts
Namespaces
Простір імен - це контейнер для метрик CloudWatch. Він допомагає категоризувати та ізолювати метрики, спрощуючи їх управління та аналіз.
Приклади: AWS/EC2 для метрик, пов'язаних з EC2, AWS/RDS для метрик RDS.
Metrics
Метрики - це точки даних, зібрані з часом, які представляють продуктивність або використання ресурсів AWS. Метрики можуть бути зібрані з сервісів AWS, користувацьких додатків або інтеграцій сторонніх розробників.
Приклад: CPUUtilization, NetworkIn, DiskReadOps.
Dimensions
Виміри - це пари ключ-значення, які є частиною метрик. Вони допомагають унікально ідентифікувати метрику та надають додатковий контекст, при цьому 30 - це максимальна кількість вимірів, які можуть бути асоційовані з метрикою. Виміри також дозволяють фільтрувати та агрегувати метрики на основі конкретних атрибутів.
Приклад: Для EC2 інстансів виміри можуть включати InstanceId, InstanceType та AvailabilityZone.
Statistics
Статистика - це математичні обчислення, виконані над даними метрик для їх узагальнення з часом. Загальні статистичні показники включають середнє, суму, мінімум, максимум та кількість вибірок.
Приклад: Обчислення середнього використання ЦП за період в одну годину.
Units
Одиниці - це тип вимірювання, пов'язаний з метрикою. Одиниці допомагають надати контекст і значення даним метрик. Загальні одиниці включають відсотки, байти, секунди, кількість.
Приклад: CPUUtilization може вимірюватися в відсотках, тоді як NetworkIn може вимірюватися в байтах.
CloudWatch Features
Dashboard
CloudWatch Dashboards надають настроювані перегляди ваших метрик AWS CloudWatch. Можна створювати та налаштовувати інформаційні панелі для візуалізації даних та моніторингу ресурсів в одному огляді, поєднуючи різні метрики з різних сервісів AWS.
Ключові функції:
Віджети: Будівельні блоки інформаційних панелей, включаючи графіки, текст, сигнали та інше.
Налаштування: Макет та вміст можуть бути налаштовані відповідно до конкретних потреб моніторингу.
Приклад використання:
Одна інформаційна панель, що показує ключові метрики для вашого всього середовища AWS, включаючи EC2 інстанси, бази даних RDS та S3 контейнери.
Metric Stream and Metric Data
Metric Streams в AWS CloudWatch дозволяють вам безперервно транслювати метрики CloudWatch до обраного вами місця призначення в майже реальному часі. Це особливо корисно для розширеного моніторингу, аналітики та користувацьких інформаційних панелей з використанням інструментів поза AWS.
Дані метрик всередині Metric Streams відносяться до фактичних вимірювань або точок даних, які транслюються. Ці точки даних представляють різні метрики, такі як використання ЦП, використання пам'яті тощо, для ресурсів AWS.
Приклад використання:
Надсилання реальних метрик до стороннього сервісу моніторингу для розширеного аналізу.
Архівування метрик в контейнері Amazon S3 для довгострокового зберігання та відповідності.
Alarm
CloudWatch Alarms моніторять ваші метрики та виконують дії на основі попередньо визначених порогів. Коли метрика перевищує поріг, сигнал може виконати одну або кілька дій, таких як надсилання сповіщень через SNS, активація політики автоматичного масштабування або виконання функції AWS Lambda.
Ключові компоненти:
Поріг: Значення, при якому сигнал спрацьовує.
Періоди оцінки: Кількість періодів, протягом яких дані оцінюються.
Точки даних для сигналу: Кількість періодів з досягнутим порогом, необхідна для активації сигналу.
Дії: Що відбувається, коли спрацьовує стан сигналу (наприклад, сповіщення через SNS).
Приклад використання:
Моніторинг використання ЦП EC2 інстанса та надсилання сповіщення через SNS, якщо воно перевищує 80% протягом 5 послідовних хвилин.
Anomaly Detectors
Anomaly Detectors використовують машинне навчання для автоматичного виявлення аномалій у ваших метриках. Ви можете застосувати виявлення аномалій до будь-якої метрики CloudWatch, щоб виявити відхилення від нормальних патернів, які можуть вказувати на проблеми.
Ключові компоненти:
Навчання моделі: CloudWatch використовує історичні дані для навчання моделі та встановлення того, як виглядає нормальна поведінка.
Діапазон виявлення аномалій: Візуальне представлення очікуваного діапазону значень для метрики.
Приклад використання:
Виявлення незвичайних патернів використання ЦП в EC2 інстансі, які можуть вказувати на порушення безпеки або проблему з додатком.
Insight Rules and Managed Insight Rules
Insight Rules дозволяють вам виявляти тенденції, виявляти сплески або інші патерни інтересу у ваших даних метрик, використовуючи потужні математичні вирази для визначення умов, за яких повинні бути вжиті дії. Ці правила можуть допомогти вам виявити аномалії або незвичайну поведінку у продуктивності та використанні ваших ресурсів.
Managed Insight Rules - це попередньо налаштовані правила виявлення, надані AWS. Вони призначені для моніторингу конкретних сервісів AWS або загальних випадків використання та можуть бути активовані без необхідності детальної конфігурації.
Приклад використання:
Моніторинг продуктивності RDS: Увімкніть кероване правило виявлення для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та диск I/O. Якщо будь-яка з цих метрик перевищує безпечні операційні пороги, правило може активувати сповіщення або автоматизовану дію пом'якшення.
CloudWatch Logs
Дозволяє агрегувати та моніторити журнали з додатків та систем з сервісів AWS (включаючи CloudTrail) та з додатків/систем (CloudWatch Agent може бути встановлений на хост). Журнали можуть зберігатися безстроково (залежно від налаштувань групи журналів) і можуть бути експортовані.
Елементи:
CloudWatch Monitoring & Events
CloudWatch базовий агрегує дані кожні 5 хвилин ( детальний робить це кожну 1 хвилину). Після агрегації він перевіряє пороги сигналів на випадок, якщо потрібно активувати один. У цьому випадку CloudWatch може бути готовий надіслати подію та виконати деякі автоматичні дії (функції AWS Lambda, теми SNS, черги SQS, потоки Kinesis)
Agent Installation
Ви можете встановити агенти всередині ваших машин/контейнерів, щоб автоматично надсилати журнали назад до 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
Група журналів має багато потоків. Потік має багато подій. І всередині кожного потоку події гарантовано будуть в порядку.
Enumeration
Post-Exploitation / Bypass
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
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
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Видаляючи дії сповіщення, зловмисник може запобігти спрацьовуванню критичних сповіщень і автоматизованих відповідей, коли досягається стан тривоги, наприклад, сповіщення адміністраторів або запуск автоматичного масштабування. Неправильне увімкнення або повторне увімкнення дій сповіщення також може призвести до несподіваних поведінок, або шляхом повторної активації раніше вимкнених дій, або шляхом зміни того, які дії спрацьовують, що може викликати плутанину і неправильне реагування на інциденти.
Крім того, зловмисник з відповідними правами може маніпулювати станами тривоги, маючи можливість створювати хибні тривоги, щоб відволікати і плутати адміністраторів, або приглушувати справжні тривоги, щоб приховати триваючі шкідливі дії або критичні збої системи.
Якщо ви використовуєте
SetAlarmState
на складній тривозі, складна тривога не гарантує повернення до свого фактичного стану. Вона повертається до свого фактичного стану лише після зміни стану будь-якої з її дочірніх тривог. Вона також переоцінюється, якщо ви оновлюєте її конфігурацію.
Потенційний вплив: Відсутність сповіщень про критичні події, потенційні непомічені проблеми, хибні сповіщення, подавлення справжніх сповіщень і потенційно пропущені виявлення реальних інцидентів.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Зловмисник зможе скомпрометувати можливість виявлення та реагування на незвичайні патерни або аномалії в метрик даних. Видаляючи існуючі детектори аномалій, зловмисник може відключити критичні механізми сповіщення; а створюючи або модифікуючи їх, він зможе або неправильно налаштувати, або створити хибнопозитивні сповіщення, щоб відволікти або перевантажити моніторинг.
Наступний приклад показує, як зробити детектор аномалій метрики неефективним. Цей детектор аномалій метрики моніторить середнє використання ЦП конкретного EC2 екземпляра, і просто додавши параметр “ExcludedTimeRanges” з бажаним часовим діапазоном, буде достатньо, щоб забезпечити, що детектор аномалій не аналізує або не сповіщає про жодні релевантні дані протягом цього періоду.
Потенційний вплив: Прямий ефект у виявленні незвичних патернів або загроз безпеці.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Зловмисник зможе скомпрометувати можливості моніторингу та візуалізації організації, створюючи, змінюючи або видаляючи її інформаційні панелі. Ці дозволи можуть бути використані для видалення критичної видимості продуктивності та стану систем, зміни інформаційних панелей для відображення неправильних даних або приховування шкідливих дій.
Потенційний вплив: Втрата видимості моніторингу та оманлива інформація.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Правила інсайту використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила інсайту, зловмисник може усунути критичні можливості моніторингу, залишаючи систему сліпою до проблем з продуктивністю та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила інсайту, щоб генерувати оманливі дані або приховувати злочинні дії, що призводить до неправильних діагностик і неналежних реакцій з боку команди операцій.
Потенційний вплив: Важкість виявлення та реагування на проблеми з продуктивністю та аномалії, помилкове прийняття рішень та потенційне приховування злочинних дій або збоїв системи.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Вимкнувши критично важливі правила інсайтів, зловмисник може ефективно осліпити організацію щодо ключових показників продуктивності та безпеки. Навпаки, увімкнувши або налаштувавши оманливі правила, можна створити хибні дані, створити шум або приховати злочинну діяльність.
Потенційний вплив: Плутанина серед команди операцій, що призводить до затримки у відповідях на реальні проблеми та непотрібних дій на основі хибних сповіщень.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Зловмисник з правами cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
зможе створювати та видаляти потоки даних метрик, що компрометує безпеку, моніторинг та цілісність даних:
Створення шкідливих потоків: Створення потоків метрик для відправки чутливих даних до несанкціонованих місць.
Маніпуляція ресурсами: Створення нових потоків метрик з надмірними даними може створити багато шуму, викликаючи неправильні сповіщення, маскуючи справжні проблеми.
Порушення моніторингу: Видаляючи потоки метрик, зловмисники порушать безперервний потік моніторингових даних. Таким чином, їхні шкідливі дії будуть ефективно приховані.
Аналогічно, з правом cloudwatch:PutMetricData
буде можливим додавати дані до потоку метрик. Це може призвести до DoS через кількість неправильних даних, що додаються, роблячи його абсолютно непотрібним.
Приклад додавання даних, що відповідають 70% використання ЦП на даному EC2 екземплярі:
Потенційний вплив: Порушення потоку даних моніторингу, що впливає на виявлення аномалій та інцидентів, маніпуляцію ресурсами та збільшення витрат через створення надмірних потоків метрик.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Зловмисник контролював би потік даних метрик, що підлягають впливу (кожен потік даних, якщо немає обмежень на ресурси). З дозволом cloudwatch:StopMetricStreams
зловмисники могли б приховати свої злочинні дії, зупинивши критично важливі потоки метрик.
Потенційний вплив: Порушення потоку даних моніторингу, що вплине на виявлення аномалій та інцидентів.
cloudwatch:TagResource
, cloudwatch:UntagResource
cloudwatch:TagResource
, cloudwatch:UntagResource
Зловмисник зможе додавати, змінювати або видаляти теги з ресурсів CloudWatch (в даний час лише тривоги та правила Contributor Insights). Це може порушити політики контролю доступу вашої організації на основі тегів.
Потенційний вплив: Порушення політик контролю доступу на основі тегів.
Посилання
Last updated