AWS - GuardDuty Enum

HackTricks 지원

GuardDuty

문서에 따르면 GuardDuty는 머신 러닝, 이상 징후 감지, 네트워크 모니터링 및 악성 파일 탐지를 결합하여 AWS의 워크로드 및 데이터를 보호하는 데 도움을 주기 위해 AWS 및 선도적인 타사 소스를 사용합니다. GuardDuty는 AWS CloudTrail 이벤트 로그, Amazon Virtual Private Cloud (VPC) Flow Logs, Amazon Elastic Kubernetes Service (EKS) 감사 및 시스템 레벨 로그, DNS 쿼리 로그 등 다양한 AWS 데이터 소스에서 수십억 건의 이벤트를 분석할 수 있습니다.

Amazon GuardDuty는 귀하의 계정 내에서 이상 활동을 식별하고 해당 활동의 보안 관련성을 분석하며 호출된 문맥을 제공합니다. 이를 통해 응답자는 추가 조사에 시간을 할애해야 하는지 여부를 결정할 수 있습니다.

경고는 GuardDuty 콘솔(90일) 및 CloudWatch Events에 나타납니다.

사용자가 GuardDuty를 비활성화하면 AWS 환경을 모니터링하지 않게 되며 새로운 결과를 생성하지 않습니다. 그리고 기존 결과가 손실됩니다. 그냥 중지하면 기존 결과는 유지됩니다.

결과 예시

  • 정찰: 공격자에 의한 정찰을 시사하는 활동, 예를 들어 이상한 API 활동, 의심스러운 데이터베이스 로그인 시도, intra-VPC 포트 스캐닝, 이상한 실패한 로그인 요청 패턴, 또는 알려진 악의적 IP에서의 포트 프로빙 등이 포함됩니다.

  • 인스턴스 침투: 인스턴스 침투를 나타내는 활동, 예를 들어 암호화폐 채굴, 백도어 명령 및 제어 (C&C) 활동, 도메인 생성 알고리즘 (DGA)를 사용하는 악성 코드, 외부 서비스 거부 활동, 이상한 높은 네트워크 트래픽 양, 이상한 네트워크 프로토콜, 알려진 악의적 IP와의 외부 인스턴스 통신, 외부 IP 주소에서 사용된 임시 Amazon EC2 자격 증명, DNS를 사용한 데이터 유출이 포함됩니다.

  • 계정 침투: 계정 침투를 나타내는 일반적인 패턴에는 이상한 지리적 위치 또는 익명 프록시에서의 API 호출, AWS CloudTrail 로깅 비활성화 시도, 계정 암호 정책을 약화시키는 변경, 이상한 지역에서의 인스턴스 또는 인프라 배포, 자격 증명 도난, 의심스러운 데이터베이스 로그인 활동, 알려진 악의적 IP 주소에서의 API 호출이 포함됩니다.

  • 버킷 침투: 버킷 침투를 나타내는 활동, 예를 들어 자격 증명 남용을 나타내는 의심스러운 데이터 액세스 패턴, 원격 호스트에서의 이상한 Amazon S3 API 활동, 알려진 악의적 IP 주소에서의 무단 S3 액세스, 사용자의 이전 버킷 액세스 기록이 없는 S3 버킷에서 데이터를 검색하기 위한 API 호출 또는 이상한 위치에서 호출된 경우가 포함됩니다. Amazon GuardDuty는 모든 Amazon S3 버킷에서 의심스러운 활동을 감지하기 위해 AWS CloudTrail S3 데이터 이벤트(GetObject, ListObjects, DeleteObject 등)를 지속적으로 모니터링하고 분석합니다.

결과 정보

결과 요약:

  • 결과 유형

  • 심각도: 7-8.9 높음, 4-6.9 중간, 01-3.9 낮음

  • 지역

  • 계정 ID

  • 리소스 ID

  • 감지 시간

  • 사용된 위협 목록

본문에는 다음 정보가 포함되어 있습니다:

  • 영향을 받는 리소스

  • 조치

  • 실행자: IP 주소, 포트 및 도메인

  • 추가 정보

모든 결과

GuardDuty 결과 목록에 액세스: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

다중 계정

초대를 통해

다른 계정을 다른 AWS GuardDuty 계정으로 초대하여 모든 계정이 동일한 GuardDuty에서 모니터링되도록 할 수 있습니다. 마스터 계정은 회원 계정을 초대하고 그런 다음 회원 계정의 대표자가 초대를 수락해야 합니다.

조직을 통해

조직 내에서 GuardDuty 위임 관리자로 지정할 수 있습니다. 조직 관리 계정만이 위임 관리자를 지정할 수 있습니다.

위임 관리자로 지정된 계정은 GuardDuty 관리자 계정이 되며, 지정된 AWS 지역에서 GuardDuty가 자동으로 활성화되며 해당 지역 내의 모든 계정에 대해 GuardDuty를 활성화하고 관리할 수 있는 권한을 갖습니다. 조직 내의 다른 계정은 이 위임 관리자 계정과 관련된 GuardDuty 회원 계정으로 볼 수 있고 추가할 수 있습니다.

열거

# Get Org config
aws guardduty list-organization-admin-accounts #Get Delegated Administrator
aws guardduty describe-organization-configuration --detector-id <id>

# Check external invitations
aws guardduty list-invitations
aws guardduty get-invitations-count

# Detector Information
aws guardduty list-detectors # 1 detector per account with GuardDuty
aws guardduty get-detector --detector-id <id> # Get detector info
aws guardduty get-master-account --detector-id <id>

# Get filters
aws guardduty list-filters --detector-id <id> # Check filters
aws guardduty get-filter --detector-id <id> --filter-name <name>

# Findings
aws guardduty list-findings --detector-id <id> # List findings
aws guardduty get-findings --detector-id <id> --finding-ids <id> # Get details about the finding
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>

# Get trusted IP addresses
aws guardduty list-ip-sets --detector-id <id>
aws guardduty get-ip-set --detector-id <id>

# Member accounts of the current AWS GuardDuty master account
aws guardduty list-members --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>

# Continuously export its findings to an Amazon S3 bucket
aws guardduty list-publishing-destinations --detector-id <id>

# Intelligence sets that you have uploaded to GuardDuty
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>

GuardDuty 우회

일반적인 지침

사용할 자격 증명의 동작에 대해 가능한 한 많은 정보를 파악하십시오:

  • 사용된 시간

  • 위치

  • 사용자 에이전트 / 서비스 (awscli, 웹 콘솔, 람다 등에서 사용될 수 있음)

  • 정기적으로 사용되는 권한

이 정보를 바탕으로 액세스를 사용하기 위해 동일한 시나리오를 최대한 재현하십시오:

  • 사용자 또는 사용자에 의해 액세스된 역할인 경우, 동일한 시간대에 동일한 지리적 위치(가능하면 동일한 ISP 및 IP)에서 사용하려고 하십시오.

  • 서비스에 의해 사용되는 역할인 경우, 동일한 지역에 동일한 서비스를 생성하고 동일한 시간대에 해당 서비스를 사용하십시오.

  • 항상 이 주체가 사용한 동일한 권한을 사용하려고 하십시오.

  • 다른 권한을 사용하거나 권한을 남용해야 하는 경우(예: 1,000,000개의 클라우드 트레일 로그 파일 다운로드), 이를 천천히하고 AWS와의 상호 작용을 최소화하십시오(awscli는 때로 쓰기 API 이전에 여러 읽기 API를 호출할 수 있음).

GuardDuty 우회

guardduty:UpdateDetector

이 권한을 사용하면 경보를 트리거하지 않도록 GuardDuty를 비활성화할 수 있습니다.

aws guardduty update-detector --detector-id <detector-id> --no-enable
aws guardduty update-detector --detector-id <detector-id> --data-sources S3Logs={Enable=false}

guardduty:CreateFilter

이 권한을 가진 공격자는 발견물을 자동으로 보관하기 위해 필터를 사용할 수 있습니다:

aws guardduty create-filter  --detector-id <detector-id> --name <filter-name> --finding-criteria file:///tmp/criteria.json --action ARCHIVE

iam:PutRolePolicy, (guardduty:CreateIPSet|guardduty:UpdateIPSet)

이전 권한을 가진 공격자는 GuardDuty의 신뢰하는 IP 목록을 수정하여 자신의 IP 주소를 추가하고 경고를 생성하지 않도록 할 수 있습니다.

aws guardduty update-ip-set --detector-id <detector-id> --activate --ip-set-id <ip-set-id> --location https://some-bucket.s3-eu-west-1.amazonaws.com/attacker.csv

guardduty:DeletePublishingDestination

공격자는 경보를 방지하기 위해 목적지를 제거할 수 있습니다:

aws guardduty delete-publishing-destination --detector-id <detector-id> --destination-id <dest-id>

이 게시 대상을 삭제해도 GuardDuty 콘솔 내에서 발견물의 생성 또는 가시성에는 영향을 미치지 않습니다. GuardDuty는 여전히 AWS 환경에서 이벤트를 분석하고 의심스러운 또는 예상치 못한 동작을 식별하고 발견물을 생성할 것입니다.

특정 발견물 우회 예제

GuardDuty 발견물이 수십 개 있음을 유의하십시오. 그러나 Red Teamer로서 그 중 일부만이 영향을 미칠 것이며, 더 좋은 점은 https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html에서 각각의 완전한 문서를 확인할 수 있으므로 어떠한 조치를 취하기 전에 확인해보세요.

여기에 특정 GuardDuty 발견물 우회 예제 몇 가지가 있습니다:

GuardDuty는 일반적인 침투 테스트 도구에서의 AWS API 요청을 감지하고 PenTest 발견물을 트리거합니다. API 요청에서 전달된 사용자 에이전트 이름에 의해 감지됩니다. 따라서 사용자 에이전트를 수정애서 공격을 감지하지 못하도록 할 수 있습니다.

이를 방지하기 위해 botocore 패키지의 session.py 스크립트에서 검색하여 사용자 에이전트를 수정하거나, Burp Suite를 AWS CLI 프록시로 설정하고 MitM을 사용하여 사용자 에이전트를 변경하거나 Ubuntu, Mac 또는 Windows와 같은 OS를 사용하여 이 경고가 트리거되지 않도록 할 수 있습니다.

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

메타데이터 서비스에서 EC2 자격 증명을 추출하고 AWS 환경 외부에서 사용하는 경우 UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS 경고가 활성화됩니다. 반대. 반면 EC2 인스턴스에서 이러한 자격 증명을 사용하는 경우 UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS 경고가 트리거됩니다. 그러나 동일한 계정 내 다른 침해된 EC2 인스턴스에서 자격 증명을 사용하는 경우 감지되지 않으며 경고가 발생하지 않습니다.

딑스필트된 자격, 발견된 기계 내부에서 사용하여 이 경고를 트리거하지 않도록 하세요.

참고 자료

HackTricks 지원

Last updated