본문 바로가기
[Project] CafeHub

[CafeHub] 배포 및 이슈 기록 - 눈물의 해킹

by heosj 2024. 1. 10.

배포 과정

  1. AWS EC2 인스턴스 생성 및 pem 키 발급
  2. 보안그룹 추가 → DB, Front, Back
  3. Git Bash로 SSH 사용
  4. 각종 패키지 설치
  5. Docker, Git, MariaDB, NodeJS 설치
  6. SpringBoot war 파일, React Build 폴더 저장할 Git 레포지토리 생성 → Clone하여 사용
  7. SpringBoot
    1. 데이터베이스 관련 프로퍼티 수정
    2. OriginPatterns 설정
    3. war 파일 저장 후 git push
    4. 파일 업로드용 volumn 설정 및 파일 저장 경로 변경
    5. DockerFile 생성 후 이미지 빌드하여 컨테이너 생성 및 실행
  8. React
    1. Build 폴더 생성 후 git push
    2. App 실행을 위한 serve 설치 후 build 실행

 


배포 이슈

Cors 에러 발생

  • "*"을 사용하여 모든 Origin을 허용하도록 설정했을 때, Cors 에러가 발생하였음, 보안상의 이유로 막혔을 것이라 예상
  • 필요한 3000, 8080 포트만 허용하도록 설정하여 해결 

 

AWS DB 서버 해킹

To recover your lost Database and avoid leaking it: Send us 0.06 Bitcoin (BTC) to our Bitcoin address 1BLYhUDmnmVPVjcTWgc6gFT6DCYwbVieUD and contact us by Email with your Server IP or Domain name and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers. Backups that we have right now: wefish . If we dont receive your payment in the next 10 Days, we will make your database public or use them otherwise. | 1BLYhUDmnmVPVjcTWgc6gFT6DCYwbVieUD | contact@sqldb.to
  • 프로젝트 마감 당일 새벽, 팀원에게 서버가 끊겼나는 연락을 받고 확인하기 위해 bash를  열었다가 발견했다
  • 데이터베이스 서버를 해킹 당해 "너의 데이터를 모두 백업 했으니, 비트코인을 보내주면 데이트 유출은 막아주겠다" 라는 내용이 남겨져 있고, 우리의 소중한 데이터는 모두 삭제되어 있었다
  • 결과물을 보여주기 위한 임시 데이터만 담겨져 있었기 때문에 그나마 다행이였지만, 실제 서비스를 운영 중이였다면 정말 끔찍했을 것이다
  • 해킹을 쉽게 당한 이유는 MariaDB의 유저네임과 포트번호를 디폴트 값으로 사용했으며, 매우 단순한 비밀번호를 사용했기 때문이라고 생각한다
  • 팀원들과 상의하여 기존의 인스턴스를 삭제하고 새로 생성하고, 데이터 베이스의 유저네임을 변경하고 비밀번호를 강화하여 다시 배포를 하게 됨
  • 데이터 백업본을 가지고 있었기 때문에 다행이라고 생각했고, DB 보안에 관심을 갖게 되는 계기가 되었다