AWS 사용자가 늘어남에 따라 AWS 계정 정보를 탈취하여 남용하는 피해 사례가 발생 하고 있습니다.
탈취한 계정 정보를 사용하여 고비용의 리소스를 생성, 단기간에 엄청난 비용을 발생시키는 피해를 주기도 합니다.
AWS는 '공동 책임 모델' 에 따라 계정 관리 소홀로 인한 책임은 사용자에게 묻기 때문에, 계정에 대한 보안 설정은 사용자가 꼭 신경써야 합니다.
- 공동 책임 모델 : https://aws.amazon.com/ko/compliance/shared-responsibility-model/
이 같은 계정 보안을 위해 AWS에서는 로그인 2차 인증 개념의 멀티 팩터 인증 (MFA)를 제공합니다.
MFA는 Root 사용자와 IAM 사용자(User)에게 할당하여 인증 시 추가적인 보안이 적용될 수 있도록 구성할 수 있습니다.
이 방법은 계정 탈취로 인한 피해를 예방할 수 있는 가장 효과적이고 간단한 방법이기에, 무조건 설정하는 것이 좋습니다.
MFA에 대한 내용은 아래 링크를 참고하시기 바랍니다.
- https://aws.amazon.com/ko/blogs/tech/all-for-mfa-in-aws-environment/
만약 MFA 에 대해 알지못했거나, 설정 전 계정을 탈취 당했다면 그 사실을 빠르게 알아차리고 대처해야 합니다.
대표적인 계정 탈취에 따른 침해 사고에는 탈취한 계정으로 콘솔을 통해 로그인 후 Access Key 와 Secret Key 를 통해 전체 리전에 높은 가격의 EC2 (GPU타입) 인스턴스를 생성하여 비용적 피해를 주는 방식이 있습니다.
이러한 GPU 타입의 EC2 인스턴스는 잠깐만 사용하더라도 어마어마한 비용이 나올 수 있습니다.
만약 계정 탈취로 인해 허용되지 않은 AWS 콘솔 로그인과 EC2 인스턴스 생성에 대한 알림을 AWS 관리자가 받을 수 있게 된다면 좀 더 빠르게 대응할 수 있지 않을까요?
이런 방법을 AWS 의 EventBridge와 SNS (Simple Notification Service)를 활용해 구성을 할 수 있고 이에 대한 설정 방법을 실습해 보겠습니다.
다음은 이번 실습에서 구현하고자 하는 아키텍처 입니다.
아쉽지만 위 알림 실습은 한번 설정에 전체 리전에서 발생하는 알림을 받는게 아닌 구현한 리전에서만 받을 수 있는 단점이 있습니다.
따라서 알림이 필요한 리전이 있다면 해당 리전에 별도로 구성해야만 합니다.
(이번 실습의 경우는 버지니아 (us-east-1) 리전에서 진행하도록 하겠습니다.)
1. 알림 메일 수신을 위한 Amazon SNS 설정
1.1 Amazon SNS 콘솔 접속 후 좌측의 주제 선택 -> 표준 유형으로 주제 생성 (이름 제외 기본값으로 진행)
1.2 생성된 주제에 대한 구독 생성 -> 프로토콜 : 이메일, 엔드포인트 : AWS 관리자 이메일 입력
1.3 앞 단계에서 작성한 메일 주소로 발송된 메일의 Confirm subscription 클릭 후 구독 정상 확인
2. Amazon EventBridge 를 통한 이벤트 규칙 설정
2.1 Amazon EventBridge 콘솔 접속 후 규칙 생성
2.2 규칙에 대한 임의의 이름 설정, 나머지 항목은 기본값으로 선택한 후 다음
2.3. 위의 항목 들은 기본값으로 진행, 이벤트 패턴에서 원하는 이벤트에 대해 선택 후 다음
2.3.1 Root 콘솔 로그인에 대한 이벤트 패턴
2.3.2 IAM 사용자 콘솔 로그인에 대한 이벤트 패턴
2.3.3 EC2 인스턴스 생성에 따른 알림 설정
2.4 1단계에서 설정한 SNS 주제를 대상으로 선택 후 규칙 생성
3. 설정 결과 테스트
3.1 IAM User 로그인 시
3.2 EC2 인스턴스 시작 시
수신되는 메일의 형태가 깔끔하진 않지만 시간, 유저, IP, 인스턴스 타입 등 의 정보가 들어있기에, 이상 행위 모니터링 용도로는 충분할 듯 합니다. (JSON 형태의 메일이 보기 불편하다면 Lambda를 활용해 Parsing 할 수도 있습니다.)
*참고문서
https://aws.amazon.com/ko/premiumsupport/knowledge-center/root-user-account-eventbridge-rule/
감사합니다.
'AWS' 카테고리의 다른 글
AWS Management Console Private Access 살펴보기 (0) | 2023.05.19 |
---|---|
AWS ALB에 고정 IP 할당 (NLB + ALB) (0) | 2023.05.16 |
AWS Private Link 써보기 (0) | 2023.05.11 |
AWS Notification 소개 및 사용해보기 (0) | 2023.05.11 |
Amazon EventBridge + SNS 를 활용한 계정 침해 모니터링 - 2 (0) | 2023.04.17 |