banner

banner

all your data is backed up. 해킹을 당했다.

기타
2024.09.23. by   sanam

해킹 당했다.

최근 블로그 플랫폼을 beta 버전으로 운영해보고 있다. 그런데 오늘 아침, 페이지에 접속이 되지 않는 문제를 발견했다. 왜 그럴까.. 스프링 앱을 실행시키면 가용 메모리가 간당간당 한 사실을 알고 있었기에, 메모리가 부족해서 그럴거라 생각했다.

하지만 아니었다. 문제는 DB 였다. 스프링앱에서 DB 에 접근이 되지 않고 있었다. 그래서 DB에 접속했는데 ... 오마이갓.. all your data is backed up 라는 무서운 이름의 테이블이 있는게 아닌가...

그렇다 난 해킹 당했다.

왜 당했나?

최근 불가피한 일 때문에 DB 의 EC2 를 private subnet에서 public subnet 으로 옮겼다. 이 때 접근 가능한 inbound 를 모든 ip 로 할당했었다. 그리고 DB 의 root 유저의 password 가 너무 쉬웠다.

즉, public ip 만 알고있다면 누구나 손 쉽게 해킹할 수 있는 상태였다.

그리고 해커는 aws 의 ip 를 어느정도 알고있는거같다. 그렇다. 그냥 랜덤으로 ip + 3306 포트 + 쉬운 password 를 무한정 돌리는 나쁜쉐리한테 걸린거다.

복구

사실 데이터 private subnet 에서 public subnet 으로 옮긴 날 이미 백업을 해놨었다. 그렇기에 잃어버린 데이터는 고작 게시글 2개다.

데이터의 백업과 복구에 대해서는 새로운 게시글을 작성하도록 하겠다.

대비

당했으니 이제 대비를 해야한다.

  1. DB EC2 의 Inbound Rule 을 Spring 이 실행 중인 EC2 의 IP 로 제한한다.
    1. 접근 가능한 port 는 mysql(3306)과 ssh(22)
  2. mysql root / user 의 password 를 어렵게. random generated 하면 된다.

마지막으로, 데이터 백업 스크립트도 작성하고 스케줄링을 통해 스크립트를 실행하도록 만들려고 한다. 이건 다음에 하고 게시글로 작성하면 좋을거같다.

정리

게시글 2개를 잃고, 좋은 경험을 하게 됐다. 해커에게 감사한 마음을 전한다. 근데 0.4 비트코인은 너무 심한거 아니냐?

0