[ TIL ] RECOVER_YOUR_DATA : RDS 해킹 일지

2024. 11. 13. 23:15·[TIL]

📌 개요

어느 날, 배포해놨었던 프로젝트의 서버가 난데없이 죽어있길래 부랴부랴 로그를 살펴보니..

 

DB의 스키마를 찾지 못한다는 로그를 발견 할 수 있었습니다..

 

 

제가 직접 건들지 않는이상 database 는 절대 발생 할 수 없는 로그인데 무슨일인가 DB 를 확인해봤으나 웬걸... 

사용되고 있던 스키마는 통째로 없어지고 아래와 같은

RECOVER_YOUR_DATA 의 스키마와 함께 RECOVER_YOUR_DATA 테이블이 생성되어 있는것을 마주할 수 있었습니다😂

 

테이블 내의 데이터를 확인해보면 더욱 난감할 수 밖에 없었습니다.

 

'All your data is backed up. 
You must pay 0.0105 BTC to bc1q307y2v8aujqwrej8m9v998yj0m242km989t8d2 
In 48 hours, your data will be publicly disclosed and deleted. 

(more information: go to http://2fix.info/mysql)'
'After payment send mail to us: dzen+23ote@onionmail.org and we will provide a link for you to download your data. 
Your DBCODE is: 23OTE'

 

너의 모든 데이터는 백업되었다. 0.0105 비트코인을 지불해야만한다.
(그렇지 않다면) 너의 데이터는 모두 공개가 되고 삭제가 될 것이다.

결제 후 이메일을 날린다면 너의 데이터를 다시 다운 받을 수 있는 링크를 제공해주겠다!

 

 

0.0105 BTC 는 처음 보는 단위라 검색해보니.. 130만원 가량을 요구 하는 것 이었음을.. (돈 없어요..)

 

 

📌 수많은 침투가 보여졌던 IP 와 접속 시도들 

 

AWS 의 RDS 내에서도 로그를 볼 수 있습니다. 

아래와 같이 데이터베이스 - 로그 및 이벤트 탭으로 들어가면 해당 데이터베이스의 로그들이 나열 되어 있는 모습을 볼 수 있습니다.

 

error 와 관련된 수많은 파일들이 생겨서 펼쳐본 결과,

아래와 같은 로그들을 확인 할 수 있었습니다.

 

 

IPv4 를 모두 허용으로 열어놨었기에, 피해가 발생한 듯 보입니다ㅜ

특정 IP 주소(185.59.221.158)에서 약 1~3초에 걸쳐서 지속적으로 비밀번호 대입을 시도한 것으로 보아 brute-force 와 같이 수많은 비밀번호 조합을 시도하여 공격한 듯으로 추정됩니다. 

 

 

 

 

 

 

📌 나의 허점

해킹을 당하고 저의 RDS 관리를 돌아보니,, 참 많은 보안적 허점을 열어두고 사용을 했었다는 것을 반성하게 되었습니다. 혹시 여러분들은 아래의 내용 중 몇개에 해당하시나요?

 

만일 퍼블릭 엑세스를 허용해준 RDS 기준 2가지가 충족되었다면, 굉장히 큰 위험에 놓여있다고 생각하셔도 될 것 같습니다..! 

 

1. RDS 퍼블릭 엑세스 허용

 

2. 거의 다 허용해줬던 인바운드 규칙

 

3. username 을 mysql 기준 기본값 root 사용

 

4. 포트번호를 mysql 기준 기본값 3306 사용

 

5. 다소 쉬운 비밀번호

 

 

❓ 해결 방안

만일 해당 정보가 실서비스를 운영하여 중요한 정보를 내포하고 있었거나, 방대한 양의 데이터가 보관되어 있었다면.. 아찔했을 뻔 했으나, 주기적으로 dump 파일로 데이터를 보관해놨던 습관덕에 데이터 복구작업은 손쉽게 이루어질 수 있었습니다.

( 백업 습관은.. 항상 들여놓도록 합시다..! ) 

 

문제는 해당 상황이 다시 발생하지 않도록 위 5가지에서 다양한 변경을 이루었어야 합니다.

 

 

 

 

🔍 1. RDS 퍼블릭 엑세스 허용 여부 판단하기

먼저, RDS의 퍼블릭 엑세스 허용이 되어있는지 확인 하셔야합니다.

 

사실 2024년 기준, RDS 의 퍼블릭 엑세스를 허용해준다면, 과금이 진행되기 때문에 많은 분들이 인지하고 있을 것 이라 생각합니다. 다만 저는 EC2 서버가 1대가 아닌 여러대로 구성되어 있기 때문에 불가피하게 RDS 퍼블릭 엑세스는 유지할 수 밖에 없습니다,

 

DB 인스턴스 수정탭에서 수정 가능합니다

 

 

 

🔍 2.  퍼블릭 엑세스를 허용해줬다면, 인바운드 규칙 고려하기

다음은 인바운드 규칙에서 특정 IP 만 허용하도록 설정해준다면, 더욱 좋을 것 같습니다

 

 

 

 

🔍 3. username 을 기본값으로 root 로 사용하지 않기 ( 생성 시 변경 불가능 )

RDS 를 처음 생성하면 root 계정을 마스터로 사용할 것인지 설정 할 수 있는데, root 를 그대로 쓰는 것 보다, 특정 계정을 master 로 설정하던지. (이것은 생성할 때 이후로는 변경이 불가합니다!)

 

혹은 추가적인 계정을 생성하여, 권한을 주는 방법을 이용하면 좋을 것 같습니다.

 

 

 

🔍 4. 포트번호를 기본값 3306 포트 사용하지 않기

마찬가지로, 해커들은 기본값으로 설정해둔 보안 초짜들을 노리기 때문에.. 아마 root 와 3306 을 타겟층으로 삼을 것 입니다.

따라서 DB 인스턴스 수정탭 에서 마찬가지로 포트번호를 변경하시면 좋습니다. 

 

 

🔍 5. 비밀번호 어렵게 변경하기

마지막으로 가장 반성해야 할 부분인데, 저의 비밀번호는 너무 쉬웠던 경향이 있었습니다.ㅜ (사실 비밀번호만 어려웠어도 해킹 가능성은 현저하게 낮았을 것 같습니다...! ) 

DB 인스턴스 수정탭 에서 비밀번호를 변경하여 영/대소문, 숫자, 특수문자를 적절히 설정하여 비밀번호를 설정한다면 해커가 감히 뚫어볼 시도는 못할 것이라 예상합니다.

 

 

 

 

🔥 이것 또한 경험이다..! 

 

사실, 배포를 하게 되면서 해커와의 조우는 거의 처음이라 생소하게 느껴졌는데, 이번기회에 뼈저린 해킹을 당해보니, 더욱 바짝차리고 보안에 대한 신경을 써야겠다는 큰 배움을 얻을 수 있었습니다.

 

다들 배포 환경에서 해커들 조심하세요..!!! 

 

 

이상, 해당 포스팅을 읽어주셔서 감사합니다 :-) 🙇‍♀️🙇‍♂️

 

 

📚참고자료 및 출처

 

'[TIL]' 카테고리의 다른 글

트러블슈팅 - OpenFeign과 @Configuration: 빈 등록의 함정과 FeignContext의 이해  (0) 2025.10.17
TIL - CDC로 향하는 가는 첫 번째 과정(1) : OracleDB 트랜잭션 로그(Redo log)를 읽어서 Kafka에 적재하기  (0) 2025.01.10
Kubernetes 분산 서버에 의한 Oauth2 소셜 인증 실패 및 극복 방법 (sticky session service 추가)  (2) 2024.10.13
JWT 보안성 강화시키기 (Access Token, Refresh Token -RTR, BlackList 그리고 Redis)  (0) 2024.10.02
ELK 에 대해서 알아보자! ( ElasticSearch - Logstash - Kibana )  (2) 2024.09.22
'[TIL]' 카테고리의 다른 글
  • 트러블슈팅 - OpenFeign과 @Configuration: 빈 등록의 함정과 FeignContext의 이해
  • TIL - CDC로 향하는 가는 첫 번째 과정(1) : OracleDB 트랜잭션 로그(Redo log)를 읽어서 Kafka에 적재하기
  • Kubernetes 분산 서버에 의한 Oauth2 소셜 인증 실패 및 극복 방법 (sticky session service 추가)
  • JWT 보안성 강화시키기 (Access Token, Refresh Token -RTR, BlackList 그리고 Redis)
7.06com
7.06com
우당탕탕 코딩하기
  • 7.06com
    우당탕탕 개발자의 이야기
    7.06com
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • [Spring] (7)
      • [JAVA] (3)
      • [디자인패턴] (1)
      • [TIL] (8)
      • [CI,CD] (5)
      • [협업] (1)
      • [Database] (5)
      • [CS] (3)
      • [코딩테스트] (15)
      • [알고리즘] (0)
      • [후기-회고] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
7.06com
[ TIL ] RECOVER_YOUR_DATA : RDS 해킹 일지
상단으로

티스토리툴바