
컨테이너 보안 이해하기
이 문서는 OWASP Docker Top 10입니다. 현재 작업 진행 중입니다.
이 문서는 안전한 컨테이너 환경을 구축하기 위한 가장 중요한 10가지 보안 핵심 사항을 설명합니다. 처음부터 시작한다면 사양서로 사용할 수 있으며, 대신 이 작업을 대행해 줄 외부 업체에 전달할 수도 있습니다.
또한 기존 설치 환경을 감사하거나 보안을 강화하는 데에도 사용할 수 있지만, 특히 이런 경우 보안에 대해 아주 일찍 고민하기 시작해야 합니다. 가장 좋은 시기는 설계 단계입니다. 나중에는 이미 내린 결정 중 일부를 변경하기 어려워지거나 비용(금전적 또는 시간적 측면)이 많이 들 수 있습니다.
문서의 이름이 OWASP Top 10과 유사하지만, 상당히 다릅니다. 첫째, OWASP Top 10처럼 수집된 데이터에 기반한 위험에 관한 것이 아닙니다. 둘째, 여기 제시된 10가지 핵심 사항은 (사전 예방적) 통제 항목과 유사합니다.
이 가이드는 개발자, 감사자, 아키텍트, 시스템 및 네트워크 엔지니어를 위한 것입니다. 위에서 언급했듯이 외부 업체에 계약서에 공식적인 기술 요구 사항을 추가하기 위해 이 가이드를 활용할 수도 있습니다. 정보 보안 책임자도 기본 보안 요구 사항과 그 이상을 충족하기 위해 관심을 가질 만합니다.
이 10가지 핵심 사항은 주로(이 문단 아래에서 설명) 시스템 및 네트워크 보안과 시스템 및 네트워크 아키텍처에 관한 것입니다. 개발자로서 이러한 분야의 전문가가 될 필요는 없습니다. 바로 이 가이드가 그 역할을 합니다. 하지만 위에서 언급했듯이 이러한 사항을 조기에 고민하고 해결하기 시작하는 것이 가장 좋습니다. 그냥 바로 구축을 시작하지 마십시오.
핵심 사항 중 하나를 오해해서는 안 됩니다. 패치 관리는 기술적 사항이 아닙니다. 이는 관리 프로세스입니다. 마지막으로, 컨테이너화에 대해 크게 우려하지 않았던 기술 또는 정보 보안 관리자를 위해 이 문서는 관련된 위험에 대한 통찰력도 제공합니다.
Docker 환경에서의 보안은 종종 잘못 이해되는 경우가 많았습니다. 위협이 무엇인지에 대해서는 매우 논쟁이 많은 주제였고 지금도 그렇습니다. 따라서 Docker Top 10 핵심 사항을 다루기 전에, 이 문서의 앞부분에서 위협을 모델링합니다. 이는 보안 영향력을 이해하는 데 도움이 될 뿐만 아니라 작업의 우선순위를 정하는 능력도 제공합니다.
CONTRIBUTING.md를 참조하십시오. 미해결 사항에 대한 기여를 쉽게 하기 위해 해당 dev 브랜치(D06_dev, D07_dev, ...)에 PR을 제출해 주십시오.
Docker와 docker-compose가 설치되어 있다면 직접 PDF 버전을 빌드할 수 있습니다.
docker-compose run --rm build
이 저장소에서는 자주 업데이트되지 않습니다. 그렇지 않으면 이 저장소가 복잡해지기 때문입니다.
이 프로젝트의 이름에 "Docker"라는 단어가 포함되어 있지만, 약간의 추상화를 통해 다른 컨테이너 솔루션에도 사용할 수 있습니다. Docker는 현재 가장 널리 사용되는 솔루션이므로, 현재는 심층적인 세부 사항이 Docker에 초점을 맞추고 있습니다. 이는 나중에 변경될 수 있습니다.
서버에서 3개 이상의 컨테이너를 실행한다면 아마도 오케스트레이션 솔루션을 사용하여 이를 관리하고 있을 것입니다. 그러한 도구의 특정 보안 함정은 현재 이 문서의 범위를 벗어납니다. 이 가이드가 수동으로 관리되는 하나 또는 몇 개의 컨테이너에만 관한 것이라는 의미는 아닙니다. 오히려 그 반대입니다. 즉, 이러한 오케스트레이션 환경에서 컨테이너와 해당 네트워킹 및 호스트 시스템을 살펴보는 것이지, 예를 들어 쿠버네티스, 스웜, 랜처 또는 OKD/OpenShift 의 특별한 함정에 관한 것이 아니라는 뜻입니다.
솔직히 우리 인간에게 숫자 10은 귀에 쏙 들어옵니다. 그리고 모든 것을 종합하면서 이 10가지가 가장 중요하다고 여겨졌습니다.