새소식

기타

DB를 털리다.

  • -

피곤한 월요일, 여느 때와 같이 일을 하다 잠깐 쉬는 시간에 내 사이트는 잘 돌아가고 있나 들어가보았는데

?

메인페이지에서 500 에러가 발생하고 있었다.

경험상 잘 돌아가던 사이트의 메인페이지에서 에러가 발생하는 경우는 보통 db 연결에 장애가 생겨 그런 경우가 대부분이었어서 '뭐지 db가 꺼졌나?', 'cloudflare 연결한게 원인인가? 아닌데.. db는 ip로 연결해서 별 관련 없는데..' 하는 생각을 하며 서버에 접속을 해보았다.

흐으음... db는 안 내려갔고... 이상이 없는데? redis가 내려갔나? redis도 정상적인데....

원인을 찾지 못하고 애꿎은 서버 로그만 뒤적이고 있었다.

?

?

?

All your data is backed up. You must pay 0.0100 BTC to bc1qwvthsvr7agkmn36qxxn4ju2qe6mur37s453w43nl In 48 hours, your data will be publicly disclosed and deleted. (more information: go to https://해킹범.사이트)
After payment send mail to us: rambler+29eqk@xxx.org and we will provide a link for you to download your data. Your DBCODE is: 29EQK

해킹범이 내 데이터를 인질로 잡고 0.01 비트코인을 요구하고 있는 걸 알게 되었다. 근데 그게 얼마지?...

?

비트코인이 1억이면... 0.01 비트코인이면...

내가 120만원이 어디있어

애초에 천 원 한 장도 줄 생각 없었지만 120만원이라니 택도 없는 가격이었다.

아.. 해커도 먹고 살기 팍팍하구나...

그건 그렇고 어디서 털린거지?

이전 회사에서 열심히 구른 후 보안과 관련된 부분은 잘 준수하고 있다 생각했는데도 털려버리니 당황스러웠다.

인젝션인가? 아닌데... 잘 막아뒀는데...

브루트포스인가? 아닌데... 서버가 나약해서 못 버텼을텐데...

깃허브에 올라간 적이 있나? 아닌데... 그런 기본적인 실수를 했을리가...

grok한테 물어볼때 코드에 노출이 됐나? 머스크형이 ai로 수집한 데이터를 판매한다고?.... 그럴....수도 있겠는데?!

mysql 서버 로그는 해킹범이 싹 지워버려 확인도 못하고 여러가지 추측만 난무하던 차에 문득 든 생각!

postgresql은 안 털렸나?!

이전에 공부용으로 프로젝트를 진행하고 바꾸기 귀찮아서 올려둔 psql 서버가 생각 나 로그를 조회해봤다.

아아... psql좌.... 무슨 싸움을 하고 계셨던 겁니까...

psql 서버도 공격이 있었다!!!! 하지만 피해는 발생하지 않았다.

왜지? 무슨 차이지?

끝나지 않는 의문을 갖고 여기저기 뒤적뒤적 거리던 중

?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

설마 누가 내 서버를 해킹하겠어~ 하는 안일한 생각으로 설정한 비밀번호를 발견하게 되었다.

기본 3306 포트를 사용하면서 mysql 서버 root 계정의 비밀번호를 mysql로 하는 배짱 좋은 과거의 나를 마주하자 어이가 없어 헛웃음이 나왔다.

그래도 원인은 찾았으니 기존 mysql 서버는 보내주고 기존과 다른 포트, 비밀번호로 설정한 db를 새로 올려 서비스를 다시 정상적으로 운영할 수 있게 되었다.

 

 

이번 사태를 통해 느낀 점은 크게 3가지이다.

  1. 백업은 필수로 해야겠다.
  2. 아무리 작은 서비스라도 운영중인 서비스가 장애가 생겼을때 신속히 대처하려면 모니터링 툴을 사용해야겠구나
  3. 2000개 가량의 데이터를 날리게 되어 아주 귀찮아졌지만 덕분에 보안에 더 신경을 쓰게 되었으니 럭키비키다.

과거의 안일했던 나는 보내주고 더 성장하게 된 것 같아 오히려 기분이 좋았다.

 

 

그리하여 다음 포스팅은 그라파나를 사용한 php 서버 모니터링에 관한 글이 될 것 같다.

끝!

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.