저번주 세운 목표는 github actions을 이용한 CI/CD파이프라인 구축이었다. 이번주도 다행히 목표로 한것들을 초과 달성할 수 있었다.
이번주에 했던 내용들을 살펴보면 세개로 분류할 수 있을 것 같다.
- CI/CD 파이프라인 구축
- 운영체제 공부
- JWT 취약점 보완하기
이번주 진행했던 내용들을 돌아보면서 어떤 점들이 좋았는지 복기해본다.
github actions를 이용한 CI/CD파이프라인 구축
CI는 github actions에서 제공해주는 gradle-build-action 액션을 이용해서 비교적 편하게 빌드와 테스트 파이프라인을 구축할 수 있었다. CD는 훨씬 더 어려울 것이라 생각하고 5일 정도 시간이 걸릴 것으로 예상했다.
하지만 CD 역시 잘 만들어 놓은 액션이 존재했다.(아래 action사용)
https://github.com/marketplace/actions/build-and-push-docker-images
위 액션을 사용해 github runner에서 도커 이미지를 빌드하고 도커허브로 푸쉬해주는 파이프라인을 하루만에 구축할 수 있었다.
어떤점이 작업속도를 높이는데 도움을 주었나 고민해보았는데, 이전과 다르게 CD는 따로 private레포를 만들어 스파이크 솔루션을 도출해보려고 노력했던 것 같다.
CD파이프라인을 구축하기 위해 먼저 내 프로젝트와 동일한 의존성을 가지는 스프링 부트 프로젝트를 설치하고, private 레포지토리에서 부담없이 문제가 될 것 같은 부분들을 고쳐보면서 계속 PR을 날리면서 빠르게 피드백을 받을 수 있었다.
다음에도 기술적인 과제가 생기면 작은 실험을 할 수 있는 레포지토리를 따로 생성해 마음껏 실험해보도록 하자.
운영체제 공부
월요일날 두들린 CTO분과 커피챗을 할 기회가 있었는데, 개발자분들과 커피챗을 할때마다 듣는말은 컴퓨터 자체를 잘 아는게 먼저라는 조언을 해주셨다. 나동빈의 운영체제 강의를 완강해보았는데, 이해가 되지않는 부분들이 생겨서 제대로 된 강의나 책을 보는게 좋겠다는 생각이 들었다.
석태님이 반효경 교수님의 운영체제 강의를 추천해주셨는데, 그 전에 반교수님의 책을 먼저 보는게 좋을것 같아서 운영체제와 정보기술의 원리라는 책을 주문했다.
다음주는 하루에 60페이지 내외로 챕터를 읽어나가보도록 하자.
JWT 취약점 보완하기
MSA가 유행하면서 JWT를 사용하는 곳이 많고, 내 프로젝트에서도 토큰 기반 인증방식을 이용하였다. JWT을 사용할 때 어떤 부분에 주의를 기울여야 하는지 찾아보았는데, JWT에서 이러한 취약점이 존재한다고 한다.
1. 짧고 간단한 secret값을 사용했을 시 Brute Force공격에 취약하다.
2. JWT는 decoding이 쉬운편이기 때문에 탈취당했을 경우를 생각해서 민감한 정보를 넣으면 안된다.
3. 토큰 헤더에 algorithm을 none으로 넣으면 쉽게 뚫릴 수 있다.
JWT에 알고리즘은 이미 적용을 했기 때문에 1, 2번에 해당하는 문제점들을 어떻게 해결할 지 고민해보았다.
다음주 계획
보안문제는 백엔드 개발자의 책임과도 밀접하게 관련이 있으므로 다음주에는 JWT 취약점들을 해결해보려고 한다. 아래와 같은 작업을 진행할 계획이다.
- secret 값을 길고 복잡한 값으로 사용하기
- JWT에 최소한의 유저정보만 기입하기
- 탈취당했을 경우를 대비해서 만료시간을 짧게 설정하고 만료시 refresh Token을 이용해 액세스토큰을 재발급하기.
'주간회고' 카테고리의 다른 글
| 4월 4주차 주간회고 (0) | 2023.04.23 |
|---|---|
| 4월 3주차 주간회고 (0) | 2023.04.16 |
| 4월 1주차 주간회고 (0) | 2023.04.02 |
| 3월 4주차 주간회고 (0) | 2023.03.26 |
| 3월 3주차 주간회고 (0) | 2023.03.19 |