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 메트릭의 컨테이너입니다. 메트릭을 분류하고 격리하는 데 도움이 되어 관리 및 분석이 더 쉬워집니다.
예시: EC2 관련 메트릭의 경우 AWS/EC2, RDS 메트릭의 경우 AWS/RDS.
메트릭은 AWS 리소스의 성능 또는 활용도를 나타내는 시간에 따라 수집된 데이터 포인트입니다. 메트릭은 AWS 서비스, 사용자 정의 애플리케이션 또는 타사 통합에서 수집할 수 있습니다.
예시: CPUUtilization, NetworkIn, DiskReadOps.
차원은 메트릭의 일부인 키-값 쌍입니다. 메트릭을 고유하게 식별하고 추가 컨텍스트를 제공하는 데 도움이 되며, 메트릭에 연결할 수 있는 차원의 최대 수는 30입니다. 차원은 특정 속성을 기반으로 메트릭을 필터링하고 집계하는 것도 허용합니다.
예시: EC2 인스턴스의 경우 차원에는 InstanceId, InstanceType 및 AvailabilityZone이 포함될 수 있습니다.
통계는 메트릭 데이터에 대해 수행되는 수학적 계산으로, 시간에 따라 요약합니다. 일반적인 통계에는 평균, 합계, 최소, 최대 및 샘플 수가 포함됩니다.
예시: 1시간 동안의 평균 CPU 활용도 계산.
단위는 메트릭과 관련된 측정 유형입니다. 단위는 메트릭 데이터에 컨텍스트와 의미를 제공하는 데 도움이 됩니다. 일반적인 단위에는 백분율, 바이트, 초, 수가 포함됩니다.
예시: CPUUtilization은 백분율로 측정될 수 있으며, NetworkIn은 바이트로 측정될 수 있습니다.
CloudWatch 대시보드는 AWS CloudWatch 메트릭의 사용자 정의 뷰를 제공합니다. 다양한 AWS 서비스의 여러 메트릭을 결합하여 단일 뷰에서 데이터를 시각화하고 리소스를 모니터링하기 위해 대시보드를 생성하고 구성할 수 있습니다.
주요 기능:
위젯: 그래프, 텍스트, 알람 등을 포함한 대시보드의 구성 요소.
사용자 정의: 특정 모니터링 요구에 맞게 레이아웃 및 내용을 사용자 정의할 수 있습니다.
예시 사용 사례:
EC2 인스턴스, RDS 데이터베이스 및 S3 버킷을 포함한 전체 AWS 환경의 주요 메트릭을 보여주는 단일 대시보드.
AWS CloudWatch의 메트릭 스트림은 CloudWatch 메트릭을 선택한 대상으로 거의 실시간으로 지속적으로 스트리밍할 수 있게 해줍니다. 이는 AWS 외부의 도구를 사용하여 고급 모니터링, 분석 및 사용자 정의 대시보드에 특히 유용합니다.
메트릭 데이터는 메트릭 스트림 내에서 스트리밍되는 실제 측정값 또는 데이터 포인트를 나타냅니다. 이러한 데이터 포인트는 AWS 리소스의 CPU 활용도, 메모리 사용량 등 다양한 메트릭을 나타냅니다.
예시 사용 사례:
고급 분석을 위해 실시간 메트릭을 타사 모니터링 서비스로 전송.
장기 저장 및 규정 준수를 위해 Amazon S3 버킷에 메트릭 아카이브.
CloudWatch 알람은 메트릭을 모니터링하고 미리 정의된 임계값에 따라 작업을 수행합니다. 메트릭이 임계값을 초과하면 알람은 SNS를 통한 알림 전송, 자동 확장 정책 트리거 또는 AWS Lambda 함수 실행과 같은 하나 이상의 작업을 수행할 수 있습니다.
주요 구성 요소:
임계값: 알람이 트리거되는 값.
평가 기간: 데이터가 평가되는 기간의 수.
알람을 위한 데이터 포인트: 알람을 트리거하는 데 필요한 임계값에 도달한 기간의 수.
작업: 알람 상태가 트리거될 때 발생하는 일(예: SNS를 통한 알림).
예시 사용 사례:
EC2 인스턴스의 CPU 활용도를 모니터링하고 5분 연속으로 80%를 초과하면 SNS를 통해 알림을 전송.
이상 탐지기는 기계 학습을 사용하여 메트릭의 이상을 자동으로 감지합니다. 정상 패턴에서의 편차를 식별하기 위해 모든 CloudWatch 메트릭에 이상 탐지를 적용할 수 있습니다.
주요 구성 요소:
모델 훈련: CloudWatch는 과거 데이터를 사용하여 모델을 훈련하고 정상 동작이 어떻게 보이는지를 설정합니다.
이상 탐지 밴드: 메트릭의 예상 값 범위를 시각적으로 나타냅니다.
예시 사용 사례:
보안 침해 또는 애플리케이션 문제를 나타낼 수 있는 EC2 인스턴스의 비정상적인 CPU 활용도 패턴 감지.
인사이트 규칙은 메트릭 데이터에서 트렌드를 식별하고, 스파이크 또는 기타 관심 패턴을 감지할 수 있게 해주는 강력한 수학적 표현을 사용하여 작업이 수행될 조건을 정의합니다. 이러한 규칙은 리소스 성능 및 활용도에서 이상이나 비정상적인 행동을 식별하는 데 도움이 될 수 있습니다.
관리형 인사이트 규칙은 AWS에서 제공하는 미리 구성된 인사이트 규칙입니다. 특정 AWS 서비스 또는 일반 사용 사례를 모니터링하도록 설계되었으며, 세부 구성 없이 활성화할 수 있습니다.
예시 사용 사례:
RDS 성능 모니터링: CPU 활용도, 메모리 사용량 및 디스크 I/O와 같은 주요 성능 지표를 모니터링하는 Amazon RDS에 대한 관리형 인사이트 규칙을 활성화합니다. 이러한 메트릭 중 하나라도 안전한 운영 임계값을 초과하면 규칙이 경고 또는 자동 완화 작업을 트리거할 수 있습니다.
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 Agent를 구성하고 시작합니다.
로그 그룹에는 많은 스트림이 있습니다. 스트림에는 많은 이벤트가 있습니다. 각 스트림 내에서 이벤트는 순서대로 보장됩니다.
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
이 권한을 가진 공격자는 조직의 모니터링 및 경고 인프라를 심각하게 저해할 수 있습니다. 기존 경고를 삭제함으로써, 공격자는 관리자에게 중요한 성능 문제, 보안 침해 또는 운영 실패를 알리는 중요한 경고를 비활성화할 수 있습니다. 또한, 메트릭 경고를 생성하거나 수정함으로써, 공격자는 잘못된 경고로 관리자를 오도하거나 정당한 경고를 무시하여 악의적인 활동을 효과적으로 숨기고 실제 사건에 대한 적시 대응을 방지할 수 있습니다.
또한, cloudwatch:PutCompositeAlarm
권한을 통해 공격자는 복합 경고 A가 복합 경고 B에 의존하고 복합 경고 B도 복합 경고 A에 의존하는 복합 경고의 루프 또는 사이클을 생성할 수 있습니다. 이 시나리오에서는 사이클의 일부인 복합 경고를 삭제할 수 없으며, 삭제하려는 경고에 의존하는 복합 경고가 항상 존재하기 때문입니다.
다음 예시는 메트릭 알람을 비효율적으로 만드는 방법을 보여줍니다:
이 메트릭 알람은 특정 EC2 인스턴스의 평균 CPU 사용률을 모니터링하고, 메트릭을 300초마다 평가하며, 6개의 평가 기간(총 30분)을 요구합니다. 평균 CPU 사용률이 이 기간 중 최소 4회 60%를 초과하면 알람이 트리거되고 지정된 SNS 주제로 알림이 전송됩니다.
임계값을 99% 이상으로 수정하고, 기간을 10초로 설정하며, 평가 기간을 8640으로 설정하고(8640개의 10초 기간은 1일에 해당), 알람에 대한 데이터 포인트도 8640으로 설정하면, CPU 사용률이 24시간 동안 매 10초마다 99%를 초과해야 알람이 트리거됩니다.
잠재적 영향: 중요한 이벤트에 대한 알림 부족, 잠재적인 미탐지 문제, 잘못된 경고, 진정한 경고 억제 및 실제 사건의 탐지를 놓칠 가능성.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
경고 작업을 삭제함으로써 공격자는 경고 상태에 도달했을 때 관리자에게 알리거나 자동 확장 활동을 트리거하는 등의 중요한 알림과 자동 응답이 발생하지 않도록 할 수 있습니다. 경고 작업을 부적절하게 활성화하거나 재활성화하는 것도 이전에 비활성화된 작업을 다시 활성화하거나 어떤 작업이 트리거되는지를 수정함으로써 예기치 않은 행동을 초래할 수 있으며, 이는 사건 대응에서 혼란과 잘못된 방향으로 이어질 수 있습니다.
또한, 권한이 있는 공격자는 경고 상태를 조작할 수 있으며, 관리자를 방해하고 혼란스럽게 하기 위해 잘못된 경고를 생성하거나, 진행 중인 악의적인 활동이나 중요한 시스템 실패를 숨기기 위해 진정한 경고를 무시할 수 있습니다.
**SetAlarmState
**를 복합 경고에 사용하면 복합 경고가 실제 상태로 돌아올 것이라고 보장되지 않습니다. 자식 경고 중 하나라도 상태가 변경될 때만 실제 상태로 돌아갑니다. 구성 업데이트 시에도 재평가됩니다.
잠재적 영향: 중요한 이벤트에 대한 알림 부족, 잠재적인 미탐지 문제, 잘못된 경고, 진정한 경고 억제 및 실제 사건의 탐지를 놓칠 가능성.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
공격자는 메트릭 데이터에서 비정상적인 패턴이나 이상을 탐지하고 대응하는 능력을 손상시킬 수 있습니다. 기존의 이상 탐지기를 삭제함으로써, 공격자는 중요한 경고 메커니즘을 비활성화할 수 있으며, 이를 생성하거나 수정함으로써 모니터링을 방해하거나 압도하기 위해 잘못 구성하거나 잘못된 긍정 결과를 생성할 수 있습니다.
다음 예제는 메트릭 이상 탐지기를 비효율적으로 만드는 방법을 보여줍니다. 이 메트릭 이상 탐지기는 특정 EC2 인스턴스의 평균 CPU 사용률을 모니터링하며, 원하는 시간 범위와 함께 “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를 초래할 수 있으며, 메트릭 스트림을 완전히 쓸모없게 만들 수 있습니다.
EC2 인스턴스에서 70% CPU 사용량에 해당하는 데이터를 추가하는 예:
잠재적 영향: 모니터링 데이터 흐름의 중단, 이상 및 사건 탐지에 영향, 자원 조작 및 과도한 메트릭 스트림 생성으로 인한 비용 증가.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
공격자는 영향을 받는 메트릭 데이터 스트림의 흐름을 제어할 수 있습니다(자원 제한이 없으면 모든 데이터 스트림). 권한 **cloudwatch:StopMetricStreams
**를 통해 공격자는 중요한 메트릭 스트림을 중지시켜 자신의 악의적인 활동을 숨길 수 있습니다.
잠재적 영향: 모니터링 데이터 흐름의 중단으로 인해 이상 및 사건 탐지에 영향을 미칠 수 있습니다.
cloudwatch:TagResource
, cloudwatch:UntagResource
공격자는 CloudWatch 리소스(현재는 알람 및 Contributor Insights 규칙만 해당)에서 태그를 추가, 수정 또는 제거할 수 있습니다. 이는 태그를 기반으로 한 조직의 접근 제어 정책을 방해할 수 있습니다.
잠재적 영향: 태그 기반 접근 제어 정책의 중단.
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)