[AWS] EC2 Abuse Report 대응 및 해결 방법 - AWS EC2 Instance Connect
얼마 전 EC2 사용 중인 메일 계정으로 Abuse Report 메일을 하나 받았다.
AWS Abuse Report 이메일의 내용을 요약하자면 AWS에서 사용 중인 EC2 인스턴스에 권한 없이 접근하려고 여러 시도가 있었고 해당 행동을 중지하도록 조치하고 메일을 회신해 달라는 내용이었다.
EC2 Abuse Report 대응 및 대처 방법을 알아보고 어떻게 해결했는지 공유하고자 한다.
결론만 이야기하면 결국은 EC2 인스턴스를 삭제하고 다시 생성했다.
자세하게 내용을 뜯어보자.
1. Abuse Report 내용
Hello,
We've received a report(s) that your AWS resource(s)
AWS ID: ************ Region: ********* EC2 Instance Id: i-***************
has been implicated in activity which resembles attempts to access remote hosts on the internet without authorization. Activity of this nature is forbidden in the AWS Acceptable Use Policy (https://aws.amazon.com/aup/). We've included the original report below for your review.
해석해 보면 내가 사용 중인 EC2 인스턴스에 권한 없이 접근(access)하려는 활동이 있었다고 한다.
Please take action to stop the reported activity and reply directly to this email with details of the corrective actions you have taken. If you do not consider the activity described in these reports to be abusive, please reply to this email with details of your use case.
이런 권한 없이 접근하려는 활동을 중지하도록 조치하고 메일을 회신 달라고 한다.
좀 찾아봤더니 1~2일 내로 답장을 해야 하고 그렇지 않으면 인스턴스를 중단할 수도 있다고 한다.
If you're unaware of this activity, it's possible that your environment has been compromised by an external attacker, or a vulnerability is allowing your machine to be used in a way that it was not intended.
We are unable to assist you with troubleshooting or technical inquiries. However, for guidance on securing your instance, we recommend reviewing the following resources:
문제를 해결하거나 기술적인 문의는 도와줄 수는 없단다....😅
대신에 가이드 URL 몇 개를 받았다.
Amazon EC2 Security Groups User Guide
- Linux
- Windows
Tips for Securing EC2 Instances
- Linux
- Windows
AWS Security Best Practices
https://d1.awsstatic.com/whitepapers/Security/AWS_Security_Best_Practices.pdf
Developer Forums
https://forums.aws.amazon.com/index.jspa
Premium Support one-on-one assistance
https://console.aws.amazon.com/support/home#/case/create?issueType=technical
프리미엄 지원 패키지를 이용하면 1대 1 문의가 가능한 것 같다...😂
메일에 보면 어떤 IP/PORT로부터 공격을 받고 있는지와
어떤 인스턴스에 공격을 했는지에 대한 정보도 함께 보내준다.
It appears the instance(s) may be compromised and triggered an attack. It is advisable to update all applications and ensure the most current patches are applied.
It is recommended that no ports be open to the public (0.0.0.0/0 or ::0). Opening ports with vulnerable applications can cause abusive behavior.
인스턴스가 손상되었을 수 있으니 모든 applicaiton을 업데이트하고 최신 패치를 적용하라고 안내해주고 있다.
그리고 포트를 public으로 전체 공개하는 것도 좋지 않다고 한다.
어쨌든 내 인스턴스가 공격을 받았고 현재 모든 트래픽을 차단했다고 한다.
다시 사용하려면 위 내용을 조치하고 메일을 회신해서 확인되면 차단을 풀어준다고 한다.
2. 해결
당연히 내가 한 행동들이 아니었고 공격받은 EC2 인스턴스는 개발 서버용으로 사용 중인 인스턴스여서
운영 중인 서비스에는 영향은 없었지만 사용은 해야 하기에 해결은 해야 했다.
이런 사태가 왜 벌어졌을까 하고 EC2 관련 설정들을 보다가
보안 그룹의 인바운드 규칙이 이상하다는 것을 알게 되었다.
초반에 만든 보안 그룹이어서 전체 트래픽에 대해 접근이 허용되어 있었다.
처음에 이것저것 만져본다고 했던 게 이런 사태를... 🙄
우선 보안 그룹을 수정해서 전체 트래픽 허용 인바운드 규칙을 제거했고 그 외 사용하지 않는 규칙들도 제거했다.
SSH 접속에 대한 제한도 필요할 것 같아 22번 포트에 대해서 AWS Instance Connect만 연결되도록 IP를 제한했다.
AWS Instance Connect가 사용하는 IP 대역은 아래 URL로 확인할 수 있다.
https://ip-ranges.amazonaws.com/ip-ranges.json
service값이 EC2_INSTANCE_CONNECT이면서
region이 내가 사용하는 있는 리전인 ip_prefix 값을 확인한다.
해당 IP만 연결되도록 보안 그룹을 전부 수정했고 공격받지 않은 인스턴스들도 전부 수정했다.
3. 이메일 회신
EC2 인스턴스에 모든 트래픽이 열려 있었고 의도하지 않았으며 조치를 취했다는 내용으로 이메일 회신했다.
Hello
I've checked the abuse report in your mail.
AWS ID: ************ Area: *************** EC2 Instance ID: ***************
The instance was open for all traffic, and I didn't mean it and didn't recognize it.
We modified the inbound rules of the security group to prevent all traffic from coming in.
Port 22 for SSH connection is also limited to IP band so that only AWS Instance Connect is connected.
Other instances currently in use have also been restricted to connect to AWS Instance Connect only.
We are paying attention to the security of creating and using IAM user accounts in AWS accounts using MFA.
If you can check and determine that action has been taken, I would appreciate it if you could unblock the network.
Please let me know if you need any other measures.
Thank you.
다행히 차단 해제되었고 앞으로도 모니터링해준다고 한다.
Hello,
We recently received a request to remove blocking on your AWS account and/or your resources(s). These blocks were previously applied because we detected abusive activity originating from your resource(s).
At this time, we have lifted these blocks We will continue to monitor this case closely.
Thank you for your prompt action.
Regards,
AWS Trust & Safety
4. 또다시 Abuse Report
전부 해결된 줄 알았지만... 결국 또 공격당했다.
그냥 맘 편히 삭제하고 인스턴스 새로 생성했다.
슬픈 결말🤣
EC2 인스턴스를 새로 생성했지만 완전 헛수고를 한건 아니었다.
AWS Instance Connect의 IP대역대를 적용하여 그 외 IP로부터의 접근은 차단할 수 있었고,
보안에 대해 더 많은 생각을 하게 되었다.
주식투자에 관심이 있으세요?
제가 매일 사용하는 주식 앱, '디핏'을 추천해 드립니다.
이 앱으로 종목정보를 빠르게 파악하는 데 도움이 됩니다.
'개발 이야기 > AWS (Amazon Web Services)' 카테고리의 다른 글
댓글
이 글 공유하기
다른 글
-
[AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)
[AWS] EC2 NGINX에 무료 SSL/TLS 적용하고 HTTPS로 리다이렉트(Redirect) 하기 - Let's Encrypt (Certbot)
2024.01.16 -
[AWS] EC2 NGINX 설치하고 Config설정 및 배포하기
[AWS] EC2 NGINX 설치하고 Config설정 및 배포하기
2024.01.16 -
[AWS] EC2에서 Node.js, npm, yarn 패키지 설치하는 방법 (nvm)
[AWS] EC2에서 Node.js, npm, yarn 패키지 설치하는 방법 (nvm)
2023.12.06 -
[AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)
[AWS] EC2 무료 SSL/TLS(HTTPS)적용 방법 (Apache Tomcat, Spring Boot 내장 Tomcat 적용) - Let's Encrypt (Certbot)
2023.11.02