# 도커 데몬
- /var/run/docker.sock 열지 말기
- 열어야 된다면 TLS 적용하기
- 컨테이너 간 통신 비활성화
- 도커 컨테이너를 생성하면 기본적으로 docker0 브릿지 네트워크에 연결됨
- 이를 비활성화하고, 같은 프로젝트 내 컨테이너 간 통신은 수동으로 네트워크 생성하여 사용
# 이미지
- 검증된 이미지만 사용 / 작은(alpine 기반) 이미지 사용
- 작은 크기의 이미지는 용량 감소를 위해 적은 OS 패키지를 사용하므로 공격 가능한 표면도 줄어듦
- 대신 이 경우는 필요한 기능 추가를 위해 패키지 설치할 때 더 잘 알아봐야 할 듯
- 이미지 자주 재빌드
- base 이미지, 빌드 시 설치한 패키지 버전 업데이트 등
- 이미지 취약점 스캔 (docker scout)
- dockerfile lint 툴 사용하면 도커파일도 체크 가능
# 컨테이너
- 안 쓰는 포트 열지 말 것
- privileged 모드 쓰지 말 것
- container breakout 발생 가능
- drop capabilities 사용
- 기본적으로 도커는 리눅스 기능을 많이 사용. 필요한 기능만 추가해서 사용 추천
- DoS 공격 방지를 위해 자원 한계치 명시하기
- 기본적으로 도커는 호스트 자원을 다 가져다 쓸 수 있음
(Docker Desktop을 쓰는 맥이나 윈도우의 경우에는 가상 머신 설정 최대치로 제한되긴 함)
- 컨테이너 내부 유저 권한을 root가 아닌 일반 유저로 설정
- 필요한 경우가 아니라면 fs는 read-only로 설정하여 컨테이너에서 호스트로 쓰기 작업 제한
제가 주의깊게 본 내용은 이정도이지만 본문에는 훨씬 더 많은 내용이 있으니 도커 컨테이너를 자주 사용하시는 분이라면 본문을 읽어보시는 것을 추천드립니다.
https://spacelift.io/blog/docker-security
추가로, Naver Deview 2020에도 컨테이너 보안 관련 세션이 있어서 같이 첨부합니다.
https://deview.kr/2020/sessions/391