안녕하세요 서후아빠입니다. ^_^
이번 세션은 Amazon GuardDuty에 대해서 업무적으로 필요한 최소한의 개념에 대해서 간단히 정리해 보았습니다.
GuardDuty는 탐지기능(차단하지 않음)이 주 기능이며, 탐지된 정보를 Detective에서 분석 및 차단되도록 설정하거나 Lambda를 통하여 자동화 되도록 설정이 필요합니다.
개요
AWS에서 발생하는 데이터 및 AWS 환경에 대해서 분석/처리하여 지속적으로 모니터링하면서 예기치 않게 발생하는 잠재적 무단 활동과 악의적 활동을 탐지합니다.
모든 리전에서 활성화를 권장하며, CloudTrail, VPC Flow Log, DNS Log 등은 활성화하지 않고도 사용할 수 있습니다.
동작 원리
AWS 환경의 권한 Escalation : 노출된 자격 증명 사용 및 악의적인 IP 주소 또는 도메인 문제로 인한 이상한 징후의 접근 및 활동 |
용어
구분 | 내용 | 비고 | ||
Accounts | Administrator 계정 : 자신과 Member의 GuardDuty 구성과 모니터링 가능 - Member 초대하여 GuardDuty 활성화하고 자신의 계정에 연결 - Member 계정은 Max 5,000개 Member 계정 : 자신의 GuardDuty 구성과 모니터링 가능 - 1개의 Administrator에 대해서만 수락 가능 |
AWS Organizations 통한 초대/수락 가능 | ||
Detector | GuardDuty 서비스를 나타내는 객체 Region 종속 (리전별 고유한 32자 영숫자 ID) |
|||
데이터 원본 | 머신 러닝 적용하여 수집 (별도로 로그 활성화 하지 않더라도 수집은 가능하나, 세부적인 분석을 위해서 활성화 하는 것을 권고) | |||
결과 | 발견된 잠재적인 보안 문제 | |||
억제 규칙 | 몇 가지 속성을 고유하게 조합하여 결과 범위 제한 Administrator 계정의 규칙은 Member 계정으로 상속, Member 계정은 적용된 규칙 수정 불가능 |
차단 기능 없음 | ||
Trusted IP lists, Threat IP lists | import(txt, csv, stix 등) 지원 | 차단 기능 없음 |
위협 탐지
탐지 방법
구분 | 내용 | 비고 | ||
알려진 위협 | 내/외부 위협정보 소스 활용 - AWS Security, Commercial feeds, Open source feeds, 고객 제공 정보 등 |
|||
알려지지 않은 위협 | 비정상 탐지(Anomaly detection) - 조건 : 7~14일 정도의 학습기간 후, 행동 기준선 설정 - 일상적이지 않은 행위 탐지 : 패턴조사, 변화폭, 머신 러닝(M/L) 기반 분류 - R&D 노력으로 탐지 모델 개발, 테스트, 튜닝 및 검증 |
탐지 유형 : 정찰(시그니처 기반), 인스턴스 침해(행위 기반), Account 침해
위협 탐지 결과
탐지 결과 형식 (ex : DNS 결과 EC2가 비트코인 관련 도메인과 통신하고 있음)
ThreatPurpose | : | ResourceTypeAffected | / | ThreatFamilyName | . | DetectionMechanism | ! | Artifact |
CryptoCurrency | EC2 | BitcoinTool | B | DNS |
탐지 결과 세부 정보
구분 | 내용 | 비고 |
Overview | 찾기 유형, Finding ID, 심각도(Severity), Region, Count, Account ID, Resource ID, 생성/업데이트 일시 | |
Resource affected | 영향 받는 리소스 세부 정보 (리소스 역할, 리소스 유형) | |
Action | 결과에 따른 활동 유형에 대한 세부 정보 - network_connection : 원격 호스트~EC2간 네트워크 트래픽 교환 의미 (방향, 프로토콜, 로컬IP, 차단여부) - port_probe : 원격 호스트가 EC2 열린 포트 탐색 의미 (로컬IP, 차단여부) - DNS_request : EC2가 도메인 이름을 쿼리했다 의미 (프로토콜, 차단여부) - AWS_API_Call : API 호출 의미 (API명, 사용자 Agent, 오류 코드, 서비스 이름) |
|
Actor or Target | Actor : 의심스러운 활동을 하는 resource (resource 세부 정보) Target : Actor가 의심스러운 활동한 resource (IP, 도메인) |
|
Additional information | 위협 목록 이름, Sample, Archived, 비정상, 비정상 Protocol | |
Evidence(증거) | DNS로그 기반으로 한 검색 결과 (위협 세부 정보, 위협 이름) | |
이상 동작 | 이상 API, 비정상적인 행동 (계정), 비정상적인 동작 (사용자ID) |
탐지 결과 유형
구분 | 내용 | 비고 | ||
종류 | EC2 결과, S3 결과, IAM 결과, K8S 결과, 폐기된 결과 | |||
예시 | Trojan:EC2/DropPoint - 코드 의미 : EC2 인스턴스가 맬웨어를 통해 캡처된 자격 증명 및 기타 도난 데이터를 보관하고 있는 것으로 알려진 원격 호스트의 IP 주소와 통신을 시도하는 중 - 기본 심각도 : Medium - 데이터 원본 : VPC 흐름 로그 |
결과 관리
필터링하여 설정 : 억제 규칙, 신뢰할 수 있는 IP 목록, 위협 목록
- Amazon Athena에서 확인하면 유용
1) IAM 키 유출 의심되는 경우 : CloudTrail 확인
2) EC2가 맬웨어에 감염되어 스팸 메일 발송 의심 : VPC Flow Log 확인하여 SMTP 통신 확인
- EC2 변경 모니터링 방안 : Trend Micro Deep Security(Agent 방식)를 통하여 변경 모니터링 가능
90일 보관, 90일 이전 결과는 S3로 내보내기
CloudWatch Events(=EventBridge) 이용한 자동 알림, Lambda, AWS Chatbot을 이용한 Slack 자동 알림
자동화
탐지 결과를 CloudWatch or EventBridge로 전달
Lambda 트리거 발동하여 동작, 사용자에게 탐지 결과 및 Lambda 동작 알림
통합적인 침해 사고 대응 전략
참고 URL
GuardDuty 모든 Region 일괄 활성화 : https://dev.classmethod.jp/articles/set-guardduty-all-region/
AWS 참고 URL
위협 탐지 결과 유형 : https://docs.aws.amazon.com/ko_kr/guardduty/latest/ug/guardduty_finding-types-active.html
CloudTrail Log 쿼리 : https://docs.aws.amazon.com/ko_kr/athena/latest/ug/cloudtrail-logs.html
VPC Flow Log 쿼리 : https://docs.aws.amazon.com/ko_kr/athena/latest/ug/vpc-flow-logs.html
'Security' 카테고리의 다른 글
[이론] Amazon Detective 기본 개념 (0) | 2022.08.23 |
---|---|
[실습] Amazon GuardDuty 실습하기 (EventBridge, SNS, CloudWatch 구성) (0) | 2022.08.18 |
[실습] AWS Secrets Manager 실습하기 (Lambda를 이용한 RDS 비밀번호 자동 변경) (0) | 2022.08.08 |
[이론] AWS Secrets Manager 기본 개념 (0) | 2022.08.08 |
[실습] AWS WAF 구성하기 (0) | 2022.08.05 |