- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`ID: docker-best-practices/no-new-privileges
Language: YAML
Severity: Warning
Category: Security
CWE: 732
This rule aims to prevent privilege escalation vulnerabilities in Docker Compose configurations by ensuring that the no-new-privileges
security option is enabled. Privilege escalation occurs when a container can gain additional rights beyond its intended permissions, potentially compromising the host system or other containers.
Enabling no-new-privileges: true
in the security_opt
section of a service ensures that processes inside the container cannot gain new privileges via setuid or setgid binaries. This restriction helps maintain a secure environment by limiting the container’s ability to perform unauthorized actions, reducing the attack surface.
To comply with this rule, ensure that your Docker images use the no-new-privileges
directive like below.
security_opt:
- no-new-privileges:true
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
read_only: true
security_opt:
- no-new-privileges: false
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
read_only: true
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
security_opt:
- no-new-privileges: true
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py