🔙뒤로가기
도커의 주요 보안 이슈
도커와 같은 컨테이너 기반 시스템에서 발생할 수 있는 주요 보안 이슈는 다음과 같다.
- 컨테이너 사이의 격리: 컨테이너는 호스트 시스템에서 독립적으로 동작하도록 설계되었지만, 완전한 격리가 보장되지는 않는다. 컨테이너가 호스트 시스템에 접근하거나 다른 컨테이너와 데이터를 공유할 수 있는 상황이 발생하면, 보안 문제가 될 수 있다.
- 도커 이미지의 안전성: 도커 이미지는 애플리케이션을 실행하는 데 필요한 코드와 라이브러리를 담고 있다. 이러한 이미지가 신뢰할 수 있는 소스에서 제공되지 않았거나, 악성 코드를 포함하고 있을 경우 보안 위협이 될 수 있다.
- 컨테이너에서 사용하는 리소스 제한: 컨테이너가 사용할 수 있는 리소스(CPU, 메모리 등)를 제한하지 않으면, 컨테이너가 호스트 시스템의 리소스를 과도하게 사용하거나, 다른 컨테이너의 작업을 방해하는 문제가 발생할 수 있다.
- 컨테이너 관리 권한: 도커 컨테이너를 관리하는 사용자가 root 권한을 갖고 있을 경우, 컨테이너 내부에서 악의적인 활동을 수행할 가능성이 있다.
도커 보안 최적화 방법
- 최소 권한 원칙을 따르자: 도커 컨테이너를 실행하는 사용자에게 필요 이상의 권한을 부여하지 않아야 한다. 가능한 한 컨테이너의 권한을 제한하여, 보안 위협을 최소화하도록 한다.
- 신뢰할 수 있는 이미지만 사용하라: 도커 이미지는 신뢰할 수 있는 소스에서만 가져와야 한다. Docker Hub나 기타 레지스트리에서 이미지를 다운로드 할 때는 해당 이미지의 출처를 확인하고, 필요하다면 이미지를 스캔하여 악성 코드가 포함되어 있지 않은지 검사해야 다.
- 컨테이너 격리 강화: 컨테이너의 네트워크 격리를 강화하고, 컨테이너 간에 데이터를 공유하지 않도록 설정하며, 컨테이너가 호스트 시스템에 접근할 수 없도록 제한한다.
- 컨테이너 리소스 제한: 컨테이너가 사용할 수 있는 리소스를 제한하여, 컨테이너가 시스템 자원을 과도하게 사용하는 것을 방지한다. 도커는 CPU, 메모리, 네트워크 대역폭 등 다양한 리소스에 대해 제한을 설정할 수 있는 기능을 제공한다.
- 컨테이너 보안 모니터링 및 로깅: 컨테이너의 작동 상태를 지속적으로 모니터링하고, 로그를 수집하여 보안 사고를 빠르게 감지하고 대응할 수 있도록 한다.
- 도커 보안 벤치마크 준수: 도커 보안 벤치마크는 도커를 안전하게 사용하기 위한 베스트 프랙티스를 제공한다. 이러한 벤치마크를 준수함으로써 보안을 강화할 수 있다.