AWS - CloudWatch Enum
Вивчайте та практикуйте взлом AWS: Школа взлому HackTricks AWS Red Team Expert (ARTE)
Вивчайте та практикуйте взлом GCP:
Школа взлому HackTricks GCP Red Team Expert (GRTE)
CloudWatch
CloudWatch збирає моніторингові та операційні дані у вигляді журналів/метрик/подій, надаючи єдиний погляд на ресурси AWS, додатки та сервіси. Події CloudWatch Log мають обмеження розміру 256 КБ на кожний рядок журналу. Це може встановлювати високороздільні тривоги, візуалізувати журнали та метрики поруч, виконувати автоматизовані дії, усувати проблеми та виявляти інсайти для оптимізації додатків.
Наприклад, ви можете моніторити журнали з 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.
Статистика
Статистика - це математичні обчислення, які виконуються над даними метрик для їх підсумку протягом часу. Загальні статистики включають середнє, суму, мінімум, максимум та SampleCount.
Приклад: Розрахунок середнього використання ЦП за період однієї години.
Одиниці
Одиниці - це тип вимірювання, пов'язаний з метрикою. Одиниці допомагають надати контекст та значення даним метрики. Загальні одиниці включають відсоток, байти, секунди, кількість.
Приклад: CPUUtilization може бути виміряно в відсотках, тоді як NetworkIn може бути виміряно в байтах.
Особливості CloudWatch
Інформаційна панель
Інформаційні панелі 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, які можуть вказувати на порушення безпеки або проблему з додатком.
Правила Insight та Керовані правила Insight
Правила Insight дозволяють виявляти тенденції, виявляти піки або інші цікаві патерни у ваших даних метрик за допомогою потужних математичних виразів, щоб визначити умови, за яких слід вживати дії. Ці правила можуть допомогти виявити аномалії або незвичайні поведінки в продуктивності та використанні ресурсів.
Керовані правила Insight - це попередньо налаштовані правила Insight, надані AWS. Вони призначені для моніторингу конкретних послуг AWS або загальних випадків використання та можуть бути увімкнені без докладної конфігурації.
Приклад використання:
Моніторинг продуктивності RDS: Увімкнення керованого правила Insight для Amazon RDS, яке моніторить ключові показники продуктивності, такі як використання ЦП, використання пам'яті та введення/виведення даних на диск. Якщо які-небудь з цих метрик перевищують безпечні операційні пороги, правило може спрацювати сповіщення або автоматизовану дію для зменшення наслідків.
Журнали CloudWatch
Дозволяє агрегувати та моніторити журнали з додатків та систем з послуг AWS (включаючи CloudTrail) та з додатків/систем (CloudWatch Agent може бути встановлений на хості). Журнали можуть бути збережені нескінченно (залежно від налаштувань групи журналів) та експортовані.
Елементи:
| Група журналів | Колекція потоків журналів, які мають однакові налаштування зберігання, моніторинг
Моніторинг та події CloudWatch
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
У журнальній групі є багато потоків. У потоці є багато подій. І всередині кожного потоку події гарантовано будуть впорядковані.
Перелік
Післяексплуатація / Ухилення
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
Правила Insight використовуються для виявлення аномалій, оптимізації продуктивності та ефективного управління ресурсами. Видаляючи існуючі правила Insight, зловмисник може позбутися критичних можливостей моніторингу, залишаючи систему сліпою до проблем продуктивності та загроз безпеці. Крім того, зловмисник може створювати або змінювати правила Insight для генерації неправдивих даних або приховування зловмисних дій, що може призвести до неправильної діагностики та неадекватних відповідей від команди операторів.
Потенційний вплив: Утруднення виявлення та реагування на проблеми з продуктивністю та аномаліями, неправильне прийняття рішень та можливість приховування зловмисних дій або відмов системи.
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). Це може нарушити політики контролю доступу вашої організації на основі тегів.
Потенційний вплив: Розрив політик контролю доступу на основі тегів.
Посилання
Вивчайте та практикуйте взлом AWS: Навчання HackTricks AWS Red Team Expert (ARTE)
Вивчайте та практикуйте взлом GCP:
Навчання HackTricks GCP Red Team Expert (GRTE)
Last updated