GCP를..... 해킹당했습니다....?

·2022년 4월 21일
0

TIL

목록 보기
18/36

자고 일어났더니 내 GCP 프로젝트가 이상한 행동을 감지되서 중지가 되어있었다.

.....?
그리고 강의실에 왔는데, 많은 인원이 이와같은 메일을 받았다.

대충 너 해킹당했으니까 72시간내로 왜 그랬는지, 어떻게 해결했는지 안쓰면 너 그 프로젝트 못쓴다

....예?

내가 자는 사이에 받았던 메일에도 같은 내용이 적혀있었다.
깃헙같은 공유 사이트에 실수로 키를 통째로 올리지 않았니? 라는 식으로 연락이 와있었다.

왜인지 이유를 찾아봤더니 gitgub에 중요한 키들을 가려놓지 않고, 그대로 올려놓은 것이 문제였다.

지금까지는 다 가려서 올려놨는데 어제 너무 피곤해서 그냥 수정을 안하고
자기 전에도 설마 문제가 될까? 라는 마음이였는데 정말 사고가 터진 것이다.

이게 가벼운 문제가 아니라 엄청나게 큰 문제라는 이야기 또한 듣게 됐다.
구글에서 금방 쳐냈으니 다행이지, 만약 쳐내지 않고 계속 돌아가게 놔뒀더라면, 아마 사용비용이 엄청나게 부과되었을 것이라는 것.

그러니 언제나 보안관련 키는 철저하게 누구에게도 보이지 않도록 설정을 해놔야한다는 답변을 받았다.

확인을 했으니 일단 처리를 슥슥 해나갔다.

공개된 키가 있는 사용자를 삭제해버리고
깃헙에 올라가있는 레파지토리를 비공개처리를 하고 파일을 수정하려고 했더니.....

수정이 안된다.

이유는 이미 해당하는 파일이 레파지토리에 올라가있기 때문에 수정이 안먹힌다는 것.

커밋을 전으로 돌려서 수정을 한다음에 다시 하면 된다고 했지만,
그게 마음처럼 되지 않는 것 같아서 그냥 새로운 레파지토리를 만들어버렸다.

그래서 보는 파일을 깃헙에 올리지 않는 방법.

파일에는 존재해야 프로그램이 돌아가지만, 깃헙에 올리면 안되는 것과
node_modules같은 경우에는 중요하지만, 쉽게 다운로드 받을 수 있고 용량이 엄청 큰 두가지의 경우가 있다.

그럴 경우 해당하는 폴더에 아래와 같은 .gitignore 라는 파일을 생성하고
그 속에 깃헙에 올리고 싶지 않은 파일들의 이름을 적어주면 파일 이름이 등록되어있는 것에 대해서는 올라가지 않는다.

그렇지만 여기서 또다른 문제가 존재한다.


api를 사용하기 위해서는 특정 프로그램의 경우에는 유저의 고유 Key를 발급해주는 곳들이 상당히 많다.
그렇지만 이것 또한 내가 위에서 해킹당한 것처럼 불특정 누군가가 마구잡이로 사용을 할 경우에는 계정을 블락먹는다던가(...)
수많은 금액이 발생할 수 있기 때문에 그것을 가져놔야하는데.

그래서 필요한 것이 dotenv다.

이 라이브러리는 최상단에 .env 라는 형식의 파일을 생성한 후, 변수를 지정하는 것과 동일하게 할 경우 그것을 하위 파일에서 모두 사용할 수 있게 된다.

그리고 .env 파일을 .gitignore에 넣어주면 보안 장치로는 충분한 역할을 한 것이라고 볼 수 있다.

사용하는 방법은 이와 같다.

  1. .env 파일에 자기가 암호화시키고 싶은 값들을 넣는다
    1-1 ex BLACK=DARK
  2. 쓰고싶은 파일 위치에서 임포트하고 설정 파일을 불러온다.
    2-1 import * as dotenv from 'dotenv' // dotenv.config();
  3. 값을 넣어야하는 위치에 process.env.BLACK 를 넣는다.

이럴 경우 내가 담아놓은 것을 남에게 보이지 않고, 안전하게 사용할 수 있게 된다.


아래는 사용 예시다

color = DARK
color = process.env.BLACK // 두개의 의미가 같게 된다.
//
개인적으로는 const BLACK = process.env.BLACK
color = BLACK
이런 식으로 쓰는걸 선호하는 편이다.

결론

아무튼중요한 것들을 가려놓는 작업을 잘 해놔야할 것 같다...
이런 일이 또,,, 벌어질 순 없다,,,절대로


p.s nest의 경우는 자체적으로 해주는 라이브러리가 담겨져있다. 사용해보고 싶은 사람은 아래 주소를 들어가서 확인해보자
https://docs.nestjs.com/techniques/configuration

profile
물류 서비스 Backend Software Developer

0개의 댓글