들어가며
침해대응 훈련의 일환으로 사내 구성원을 대상으로 피싱메일 훈련을 실시한다. 외부 도메인으로 부터 다량의 메일 전송이 필요하며, 외부 요인으로 스팸차단, 지연 발송 등의 영향을 최소화하는 것을 목적으로 한다. 이와 같은 필요로 AWS SES를 도입하여 서비스를 구축하는 과정을 기록한다.
고려사항
구축 전 고려한 내용과 부합하는 내용은 다음과 같다.
- 실제 공격과 유사성
- 실제 공격 시 지메일을 이용하는 경우는 많지 않다. 공격자의 도메인을 준비하고, 랜딩 페이지에서 크리덴셜을 수집하여, 정상 도메인으로 리다이렉션까지 수행한다.
- 스팸 분류에 지장받지 않고 전달 가능성 높이기
- 도메인 별 평판 모니터링이 전달 가능성에 영향을 끼치므로, SPF, DKIM 인증 옵션을 사용하여 도메인을 인증하고 평판 관리를 쉽게 한다.
- 빠른 전송 시스템 구축
- AWS 클라우드에서는 몇 번의 클릭 만으로 설정할 수 있다. 다만, 도메인 인증 및 샌드박스의 프로덕션 액세스를 신청할 때 최대 72시간 정도 소요될 수 있다.
- 메일 전송을 트리거하기 위해 악성메일 훈련에 사용하는 Gophish 프레임워크를 적용한다. SES와 SMTP로 연동 하여 온프렘+서버리스 인프라를 구축할 수 있다.
- 과금 최소화
- 운영중인 온프레미스 환경과 적절히 결합하여 과금 발생을 최소화한다.
준비
메일을 송신할 도메인을 준비한다. 이 글에서 도메인 발급 절차는 생략하였다. 필자는 가비아에서 도메인을 발급받았으며, Route53 네임서버 정보를 등록한 상태이다. 자세한 과정은 이전 포스트를 참고한다.
[Security/Cloud Computing] - [AWS] Route 53 서비스에 가비아 도메인 연결하기
AWS SES?
SES는 Simple Email Service의 약자로 AWS의 이메일 전송 서비스이다. 마케팅, 트랜잭션의 목적으로 대량의 메일을 전송하는 데 적합한 서비스이다. 과금은 메일을 전송한 양에 따라 발생한다.
등록 방법
- AWS 계정을 발급하고, SES를 검색하여 '시작하기' 메뉴로 접근한다.
- 두가진 전송 타입을 선택할 수 있다.
- 도메인
- 자신이 소유한 도메인을 송신 주소로 하여 메일을 전송한다.
- 도메인 소유자임을 증명하기 위해 DNS 서버의 필드 값으로 검증한다
- 도메인
- 이메일
- 자신이 소유한 이메일(외부메일) 주소를 송신 주소로 하여 메일을 전송한다.
- 메일 소유자임을 증명하기 위해 메일로 전송되는 본인 확인 메일의 링크를 통해 검증한다.
DKIM 등록
Amazon SES 서비스를 이용하면 도메인이 등록된 서버에서 메일을 전송하는 것이 아닌 AWS 서버에서 메일을 전송하는 것이 된다. 두 개의 서버가 다르기 때문에 메일 수신 측에서 의심스러운 메일로 판단할 수 있다. 구글의 경우 메일의 신뢰도를 의심하여 스팸처리 하거나 발송을 지연시킬 수 있다. 이와 같은 이유로 신뢰성 확인을 위해 DKIM 설정이 필요하다.
"전송 도메인 확인" 메뉴에 접근하여 CNAME 레코드를 확인하고 관리하고 있는 DNS 서비스에서 값을 입력한다. 필자의 경우 네임서버는 Route53을 통해 관리하고 있으므로 Route53에서 입력해 주었다. 각 DNS 서비스 제공자별로 설정 화면에서 적용할 수 있다.
샌드박스(메일 발송 제한)해제 신청
SES 최초 등록 시 샌드박스 환경에서 동작하며, 권한에 따라 허용된 도메인으로만 전송할 수 있으며, 일일 발송 메일 개수가 200개로 제한된다. 이 제한을 해제 하기 위해 '프로덕션 액세스 요청'을 진행한다. 내용에는 메일 수신자 목록을 어떻게 획득할 것인지, 반송된 메일의 처리 계획 등을 상세하게 기재해서 고객센터에 요청하면 담당자가 1~3일 정도 검토 후에 승인 또는 추가 요청 회신을 받을 수 있다.
다음 포스트에서 이어 진행한다.
'Security > Cloud Computing' 카테고리의 다른 글
[AWS] SES 샌드박스 해제 신청기 (0) | 2024.04.30 |
---|---|
[AWS] zoho 메일 서비스와 Gophish로 침해대응(악성메일) 훈련 진행기 2 (0) | 2024.04.22 |
AWS 계정 ID는 민감정보일까 (0) | 2024.04.09 |
[Podman] 컨테이너로 PostgreSQL + pgAdmin 구동하기 (0) | 2024.03.05 |
[AWS] S3 정적 웹 사이트 호스팅 버킷 Route53 도메인 설정 (0) | 2024.02.13 |