AWS GuardDuty, Maice, Inspector

kimchigood·2022년 10월 4일
0

CASS Study

목록 보기
1/1


DOIK 스터디에 이어 참여한 CASS(CloudNet@ AWS Security Study) Study에서 발표한 내용을 정리해 보았다.

평소에 잘 신경쓰지 않는 보안영역에 대해 전체적으로 학습할 수 있었고, 고수님들의 경험발표도 들을 수 있는 정말 유익한 스터디..!

GuardDuty, Macie, Inspector

사실 현업에서 AWS를 쓰지 않기도 하지만, 이런 보안툴은 처음 들어봤다.
GuardDuty, Maice, Inspector는 AWS Security 서비스 중 Detect 영역에 속한다.

말 그대로 Dectecting 까지만 해주고, 이후 조치는 사용자가 AWS Lamda 등을 활용해서 해줘야한다. 그럼 하나씩 살펴보자.

1. GuardDuty

  • AWS Account, EC2 Workload, 컨테이너 어플리케이션 및 S3 모니터링
  • 기계학습을 통한 이상탐지, 네트워크 모니터링 및 악성파일 검색
  • AWS CloudTrail, VPC, EKS, DNS의 로그 분석

1.1 실습

1.1.1 GuardDuty 설정

실습은 AWS에서 제공하는 실습 내용이다.

a. Open the GuardDuty console at https://console.aws.amazon.com/guardduty
b. In the navigation pane, choose Settings.
c. On the Settings page, under Sample findings, choose Generate sample findings.

d. In the navigation pane, choose Findings. The sample findings are displayed on the Current findings page with the prefix [SAMPLE].

GuardDuty 설정은 매우 간단하다. 활성화를 시켜주면 끝이다. 샘플 테스트를 위해서 Setting 메뉴에서 Generate sample findings 를 눌러주면 findings 샘플이 생성된다.
각 샘플을 들어가보면 꽤나 자세하게 설명들이 나온다.

1.1.2 CloudWatch 연동

실제로 AWS를 운영할 때 GuardDuty Dashboard를 매번 찾아가서 확인하는 것은 비효율적일 것이다. Alert을 활성화 하여, GuardDuty에서 탐지된 취약점을 받아보자.

a. SNS Topic 생성 및 구독(매우 간단하므로 실습내용에서는 제외한다.)
b. CloudWatch 규칙생성 (GuardDuty, Event Type: GuardDuty Finding)

c. Input Path, Template 설정 (SNS로 보낼 변수와 메일 템플릿을 세팅해준다.)
d. Settings > Generate sample findings 를 클릭하여, SNS 연동이 되는지 확인한다.

c-1. Input Path

{
  "severity": "$.detail.severity",
  "Finding_ID": "$.detail.id",
  "Finding_Type": "$.detail.type",
  "region": "$.region",
  "Finding_description": "$.detail.description"
}

c-2. Input Template


"You have a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region."
"Finding Description:"
"<Finding_description>. "
"For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"

1.1.3 S3 Export

GuardDuty의 내용을 S3로 내보낼 수 도 있다.

기존 생성되어 있는 S3 또는 새로운 S3와 연동하면 되는데, KMS 설정만 잘 해주면 내보내기 세팅도 잘 된다.

{
"Sid": "AllowGuardDutyKey",
"Effect": "Allow",
"Principal": {
"Service": "guardduty.amazonaws.com"
},
"Action": "kms:GenerateDataKey",
"Resource": "arn:aws:kms:$Region:$AccountId:key/$KMSKeyId",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "$ACCOUNT_ID",
"aws:SourceArn": "arn:aws:guardduty:$Region:$AccountId:detector/$SourceDetectorID"	
}
}

$SourceDetectorID : GuardDuty의 ID이다. Overview 탭에서 확인가능


2. Macie

  • 완전관리형 데이터 보안 및 데이터 프라이버시 서비스
  • 기계 학습 및 패턴 일치를 활용하여 S3의 민감 데이터를 검색하고 보호
  • Amazon EventBridge, Step Function 등과 연동
  • HIPAA, GDPR 등의 규정 준수 가능

GuardDuty에서도 S3를 검사하는데, Macie와의 차이점은 GuardDuty는 S3에 접근하는 사용자, 지리적 위치, API 등을 검사하고, Macie는 S3의 내용물 자체를 검사하는 것이다.

2.1 실습

매우 간단하다 Macie를 활성화 시키고, 샘플을 생성하면 끝이다.

2.1.1 Macie 활성화

2.1.2 Sample 생성

Macie Dashboard에서 취약점을 하나씩 눌러보면, 자세히 설명이 나온다.


3. Inspector

  • AWS 리소스에 대한 취약점 점검 도구
  • EC2, ECR 취약점 점검
  • SW, Network 취약점 발견 및 심각도 수정지침 제공

Inspector는 셋 중에 가장 익숙한 Detecting 도구이다. EC2 또는 ECR의 이미지를 스캔하여 취약점을 발견한다. 흔히들 말하는 IDS의 일종으로 보면 될 것 같다.

3.1 실습

3.1.1 Inspector 활성화

3.1.2 IAM Role 생성

Inspector가 EC2를 스캔하기 위해서는 AmazonSSMManagedInstanceCore 정책 추가가 필요하다.

Systems Manager 관리형 인스턴스의 인스턴스 프로파일을 생성하려면(콘솔)
1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
2. 탐색 창에서 역할(Roles)을 선택한 후 역할 생성(Create role)을 선택합니다.
3. 신뢰할 수 있는 엔터티 유형(Trusted entity type)에 AWS 서비스을 선택합니다.
4. 사용 사례(Use case)에서 EC2를 선택한 후 다음(Next)을 선택합니다.
5. 권한 추가(Add permissions) 페이지에서 다음을 수행합니다.
- 검색(Search) 필드를 사용하여 AmazonSSMManagedInstanceCore 정책을 찾습니다. 이름 옆의 확인란을 선택합니다.

3.1.3 EC2, ECR 생성


EC2 생성 시 Advanced detail 항목에서 위에서 추가한 AmazonSSMManagedInstanceCore IAM intance profile을 세팅한다.

ECR의 경우 생성 시 Advanced 항목에서 scan을 활성화 해준다.
EC2와 ECR이 위와 같이 생성되면, Inspector 대시보드에서 결과 확인이 가능하다.

TL;DR

Amazon GuardDuty, Macie, Inspector는 취약점 Detecting 도구이며, 각각 목표가 다르다. Detecting 이후 조치는 사용자가 해줘야한다.

개인적으로 Cloud에서 이런 보안도구들은 우선 활성화 시켜놓는게 좋다고 생각한다. 조금만 금전을 투자하면 보안사고를 그나마 미연에 방지할 수 있으니까 말이다.

profile
Shout out to Kubernetes⎈

0개의 댓글