AWS Abuse report 메일이 날라왔다...

청포도봉봉이·2023년 10월 25일
1

AWS

목록 보기
12/14
post-thumbnail

개요

AWS EC2를 통해 CI/CD 서버를 구축하여 개인 프로젝트를 띄워놓고 사용하고 있다.
어느날 AWS Abuse라는 계정에서 메일이 하나 날라왔다.

여러가지의 내용이 있었고 아래와 같이 날라왔다.

Hello,

We've received a report(s) that your AWS resource(s)

AWS ID: 818253203293    Region: ap-northeast-2    EC2 Instance Id: i-0433fa73dd1006a22
AWS ID: 818253203293    Region: ap-northeast-2    Network Interface Id: eni-070b5bd6864709d26


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.

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.

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.
* Log Extract:
<<<

Logfile entries (time is CE(S)T):
Fri Sep 22 02:44:13 2023: user: root service: ssh target: 37.228.155.4 source: 13.125.216.166
Fri Sep 22 02:44:12 2023: user: root service: ssh target: 37.228.159.143 source: 13.125.216.166
Fri Sep 22 02:42:02 2023: user: root service: ssh target: 85.158.176.24 source: 13.125.216.166
Fri Sep 22 02:41:47 2023: user: root service: ssh target: 77.75.252.31 source: 13.125.216.166
Fri Sep 22 02:41:00 2023: user: sahil service: ssh target: 77.75.251.47 source: 13.125.216.166
Fri Sep 22 02:40:58 2023: user: sahil service: ssh target: 178.250.14.173 source: 13.125.216.166


>>>
* Comments:
<<<
An attempt to brute-force account passwords over SSH/FTP by a machine in your domain or in your network has been detected. Attached are the host who attacks and time / date of activity. Please take the necessary action(s) to stop this activity immediately. If you have any questions please reply to this email.

Host of attacker: 13.125.216.166 => ec2-13-125-216-166.ap-northeast-2.compute.amazonaws.com => amazonaws.com
Responsible email contacts: abuse@amazonaws.com
Attacked hosts in our Network: 77.75.252.31, 178.250.14.65, 77.75.251.47, 178.250.14.173, 37.228.155.4, 37.228.159.143, 85.158.176.24, 37.228.156.231
Hello,

We have not received a response regarding the abuse report implicating resources on your account. To mitigate the abuse, we have taken the following steps:

Blocked outbound TCP traffic to port 22, 222, 2222 and 22222

AWS Account ID: 818253203293
Implicated Resource(s): i-0433fa73dd1006a22
Region(s): ap-northeast-2
Reported Activity: Intrusion Attempts
Abuse Time: 22 Sep 2023 12:34:57 GMT

대충 요약을 하자면..

  1. 내 EC2 인스턴스에 SSH로 누군가 여러번 접속하려는 시도가 있었다.
  2. 보안 상 위험하니 메일 링크에 있는 AWS 보안 관련 문서를 읽어보고 적용하고 답장을 보내줘라
  3. 메일에 답장을 하지 않아 포트 22, 222, 2222 및 22222에 대한 아웃바운드 TCP 트래픽이 차단시켰다.

업무가 바쁜 시기라서.. 추석 기간에 확인을 하였다..




문제 발생

내 CI/CD 서버의 플로우는

  1. CI 서버에서 jenkins를 이용한 gradle 빌드
  2. 빌드된 jar파일 Docker image로 빌드
  3. Docker image를 DockerHub로 push
  4. SSH를 통해 CD서버에서 DockerHub에 올라간 image pull
  5. pull 받은 image 컨테이너 실행

하지만.. 포트 22번에 대한 아웃바운드 TCP 트래픽이 차단되었다는건 결국 SSH를 통해 CD서버에서 Docker 관련 script를 실행할 수 없다는 것이였다..




해결 과정

이대로 가만히 있을 수 없지 어떻게든 해결하기 위해서 메일을 보냈다.

I want to allow the ssh port connection of the another ec2 instance of 5x.xxx.xx.xxx but I can't connect even if I set the outbound rule in the security group, is there any way?

Hello,

Thank you for writing back, At this time, the AWS Trust & Safety team does not provide technical support.

The AWS Developer Forums allow customers to seek help from other experienced AWS developers as well as our technical engineers. Our AWS support engineers are able to review your account and provide technical assistance 24 hours a day.

You can access the 24 hour Developer Forums and post your question, at the following URL:

https://repost.aws/

Additionally, you can go through our Documentation, White Papers and Best Practice Guides at the following URL:

http://aws.amazon.com/resources/

Regards,
AWS Trust & Safety

요약하자면 ...

  1. 나는 CD서버에 대한 SSH 포트를 허용해주고 싶어 어떻게 해야돼..?
  2. 우리는 기술 지원을 안해주고 링크에 있는 AWS 개발 포럼에 한번 물어봐~

그래서 개발 포럼에 글을 올렸다..

올렸는데? 계정 및 결제 지원 사례에서 케이스를 열어 문의하란다

어쩔 수 없지...

AWS Support에 지원 사례를 등록 하고 추석이 지난 뒤 답신을 받았다..

조사 결과, 고객님께서 직접 담당팀에 문의한 내용이 확인 되었으며 담당팀은 해당 인스턴스 데이터를 스냅샷으로 복원하여 새로 생성하는 방법을 권장 하였습니다. 

Amazon EC2 인스턴스 복원: https://docs.aws.amazon.com/ko_kr/aws-backup/latest/devguide/restoring-ec2.html 

인스턴스 스냅샷을 이용해 복원하라고 한다.

하지만 나는 백업 옵션을 설정하지 않았었고 AWS AMI를 이용해 해결을 했다.




AWS AMI로 해결

AWS AMI란?

AMI(Amazon Machine Image)는 EC2 인스턴스의 기본 구성 요소로 사용되는 이미지다. AMI는 인스턴스를 시작할 때 사용되며, 운영 체제, 애플리케이션 소프트웨어, 데이터 및 설정 등의 모든 정보가 포함된다. AMI를 사용하면 동일한 구성으로 여러 개의 인스턴스를 시작할 수 있으며, 이미지로부터 새로운 인스턴스를 생성하는 데 필요한 모든 정보가 포함되어 있다.

따라서 AWS AMI는 사용 중인 인스턴스에 대한 모든 정보를 이미지로 복제한다고 생각하면 될거 같다.

AMI 생성 방법

AWS EC2 접속 -> 이미지로 만들 인스턴스 선택 -> 작업 -> 이미지 및 템플릿 -> 이미지 생성

이미지 이름: 이미지 이름 작성
이미지 설명: 이미지 설명 작성
인스턴스 볼륨: 그대로 두었습니다.

위와 같이 설정 후 이미지 생성

이미지 - AMI 메뉴에서 생성된 이미지 선택 후 AMI로 인스턴스 시작 버튼 클릭

키 페어도 기존 AWS 키 페어를 선택해줬습니다.

보안 그룹은 최초에 보안 그룹 생성으로 되어있다. 저는 기존에 AMI로 만든 인스턴스의 보안 그룹을 그대로 따라가기 위해 기존 보안 그룹 선택을 했습니다.

AMI로 인스턴스 시작을 누르면 위와 같은 화면들이 나오는데 복제한 인스턴스의 설정과 똑같은걸 확인할 수 있다.

이렇게 설정 후 인스턴스 시작을 눌러준다.

위와 같이 생성되었고 실행까지 되는걸 확인 할 수 있다.

Free tier 주의할 점

인스턴스가 2개가 실행되어 있을때 Free tier 무료 범위를 넘을 수 있다.

따라서 무조건 인스턴스 중지가 아닌 인스턴스 종료를 통해 Free tier 과금을 막을 수 있도록 하자

새로운 인스턴스에 접속해보자

ssh를 통해 새로운 인스턴스에 접속을 했더니 접속이 안되었다.
저는 인스턴스 설정을 통해 ID, PW로 접속할 수 있게 설정해 놓았었는데 권한 인증 alert창이 계속 떴다.
그래서 AWS 브라우저를 통해 접속을 해보았다.

EC2 인스턴스 root 계정 설정법, private key 파일 없이 로그인 하는 방법

접속 후

sudo vi /etc/ssh/sshd_config

에서 비밀번호 접속 및 root 로그인 설정을 확인해 보았다.

40번 라인의 root 계정 접속은 허용되어 있는데
65번 라인의 Password 인증은 no로 바뀌어 있었다.

그래서 yes로 수정 후 putty를 통해 다시 접속해 보았다.

vim 화면에서 라인을 보는 linux 명령어는 :set number 입니다.

이렇게 한 후 putty로 접속 시도를 해보았다.

성공적이였다!

하지만 jenkins에서 Publish over SSH를 통해 Test Configuration 를 했는데 실패하였다..

뭐가 문젠지 잘 모르겠어서

Jenkins 빌드, DockerHub push 후 배포 서버에서 application 실행 방법

  • 위 링크의 배포 서버와의 ssh 연결 설정 내용을 보면 된다.

위의 링크 내용에 따라 ssh key를 새로 생성하여 다시 연결해주었고 CI, CD서버 인스턴스 재부팅 후

Passphrase에서 혹시 몰라 CD서버의 비밀번호를 다시 입력해주었고

다시 Test Configuration 해보았는데 성공했다!

그 후에 Build도 성공하고 DockerHub push도 정상적이였고 CD 서버에서의 script도 정상적으로 작동하였다.




profile
서버 백엔드 개발자

0개의 댓글