Docker Security

AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (GRTE)

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рдПрдВ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рдореБрджрд╛рдп рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИред рдЖрдЬ рд╣реА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рдореВрд▓ рдбреЙрдХрд░ рдЗрдВрдЬрди рд╕реБрд░рдХреНрд╖рд╛

рдбреЙрдХрд░ рдЗрдВрдЬрди рдиреЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рд╕реАрдЧреНрд░реБрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖рдорддрд╛рдПрдБ рдЫреЛрдбрд╝рдиреЗ, рд╕реЗрдХреЙрдореНрдк, рдФрд░ SELinux/AppArmor рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдХрдВрдЯреЗрдирд░ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдПрдХ рдСрде рдкреНрд▓рдЧрдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдбреЙрдХрд░ рдЗрдВрдЬрди рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдВрдЪ

рдбреЙрдХрд░ рдЗрдВрдЬрди рдХреЛ рдпрд╛ рддреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ HTTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреВрд░рд╕реНрде рд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд░рд╕реНрде рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП, рдЧреЛрдкрдиреАрдпрддрд╛, рдЕрдЦрдВрдбрддрд╛, рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTTPS рдФрд░ TLS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдбреЙрдХрд░ рдЗрдВрдЬрди, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, unix:///var/run/docker.sock рдкрд░ рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ рдкрд░ рд╕реБрдирддрд╛ рд╣реИред рдпреВрдмрдВрдЯреВ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдбреЙрдХрд░ рдХреА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдХрд▓реНрдк /etc/default/docker рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдбреЙрдХрд░ API рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рдкрд╣реБрдВрдЪ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛрдбрд╝рдХрд░ рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рдПрдХ HTTP рд╕реЙрдХреЗрдЯ рдкрд░ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ:

DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
sudo service docker restart

рд╣рд╛рд▓рд╛рдВрдХрд┐, HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Docker рдбреЗрдорди рдХреЛ рдЕрдиреБрд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рд╣реИред HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рдЙрддреНрддрдо рд╣реИред рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ:

  1. рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдХреА рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

  2. рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреА рдкрд╣рдЪрд╛рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдВред

рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рдХреА рд╕реБрд░рдХреНрд╖рд╛

рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рдХреЛ рдирд┐рдЬреА рдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Docker рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдЧреНрд░рд╣рдг рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • Docker Hub: Docker рд╕реЗ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗрд╡рд╛ред

  • Docker Registry: рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

  • Docker Trusted Registry: Docker рдХрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рд╕реНрддрд╛рд╡, рдЬрд┐рд╕рдореЗрдВ рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ LDAP рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рд╡реЗрд╢ рд╣реИред

рдЗрдореЗрдЬ рд╕реНрдХреИрдирд┐рдВрдЧ

рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рддреЛ рдЖрдзрд╛рд░ рдЗрдореЗрдЬ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдзрд╛рд░ рдЗрдореЗрдЬ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред Docker рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдиреМрдЯрд┐рд▓рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЦреЛрдЬреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдиреМрдЯрд┐рд▓рд╕ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рд▓реЗрдпрд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдЦреЛрдЬреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрдврд╝реЗрдВ.

  • docker scan

docker scan рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рд╡рд┐рджрд┐рдд Docker рдЗрдореЗрдЬреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдпрд╛ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, hello-world рдЗрдореЗрдЬ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:

docker scan hello-world

Testing hello-world...

Organization:      docker-desktop-test
Package manager:   linux
Project name:      docker-image|hello-world
Docker image:      hello-world
Licenses:          enabled

тЬУ Tested 0 dependencies for known issues, no vulnerable paths found.

Note that we do not currently have vulnerability data for your image.
trivy -q -f json <container_name>:<tag>
snyk container test <image> --json-file-output=<output file> --severity-threshold=high
clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5

Docker рдЫрд╡рд┐ рд╕рд╛рдЗрдирд┐рдВрдЧ

Docker рдЫрд╡рд┐ рд╕рд╛рдЗрдирд┐рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ:

  • Docker рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдиреЛрдЯрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ The Update Framework (TUF) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЫрд╡рд┐ рд╕рд╛рдЗрдирд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, Notary рдФрд░ TUF рджреЗрдЦреЗрдВред

  • Docker рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, export DOCKER_CONTENT_TRUST=1 рд╕реЗрдЯ рдХрд░реЗрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ Docker рд╕рдВрд╕реНрдХрд░рдг 1.10 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИред

  • рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рд╕рд╛рдЗрди рдХреА рдЧрдИ рдЫрд╡рд┐рдпрд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЫрд╡рд┐ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдФрд░ рдЯреИрдЧрд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде Docker рднреА рдЙрдиреНрдирдд рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП Yubikey рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред

  • рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЕрд╕рд╛рдЗрди рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ "рдиреЛ рдЯреНрд░рд╕реНрдЯ рдбреЗрдЯрд╛ рдлреЙрд░ рд▓реЗрдЯреЗрд╕реНрдЯ" рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

  • рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рдж рдЫрд╡рд┐ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Docker рдЫрд╡рд┐ рдХреЛ рд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреБрдВрдЬреА рдХрд╛ рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬ рдкреВрдЫрддрд╛ рд╣реИред

рдЕрдкрдиреА рдирд┐рдЬреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private

Docker рд╣реЛрд╕реНрдЯ рдмрджрд▓рддреЗ рд╕рдордп, рд╕рдВрдЪрдп рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреБрдВрдЬреА рдХреЛ рд╕рдВрдЪрд╛рд▓рди рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред


Trickest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рд╢реНрд╡ рдХреЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рд╕рдореБрджрд╛рдп рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдирд┐рд░реНрдорд┐рдд рдХрд░реЗрдВред рдЖрдЬ рд╣реА рдкрд╣реБрдВрдЪреЗрдВ:

рдХрдВрдЯреЗрдирд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдВ

рдХрдВрдЯреЗрдирд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рднрд╛рдЬрди рд╕реБрд╡рд┐рдзрд╛рдПрдВ

рдХрдВрдЯреЗрдирд░реАрдХреГрдд рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдЙрдирдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛рди рд╣реИ:

рдиреЗрдорд╕реНрдкреЗрд╕

  • рдЙрджреНрджреЗрд╢реНрдп: рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ, рдиреЗрдЯрд╡рд░реНрдХ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Docker рдореЗрдВ, рдиреЗрдорд╕реНрдкреЗрд╕ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдореЗрдЬрд╝рдмрд╛рди рдФрд░ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рд░рдЦрддреЗ рд╣реИрдВред

  • unshare рдХрд╛ рдЙрдкрдпреЛрдЧ: рдирдП рдиреЗрдорд╕реНрдкреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП unshare рдХрдорд╛рдВрдб (рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рд╕рдХреЙрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрд▓рдЧрд╛рд╡ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Kubernetes рдЗрд╕реЗ рдирд┐рд╣рд╛рдпрдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ, Docker рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред

  • рд╕реАрдорд╛: рдирдП рдиреЗрдорд╕реНрдкреЗрд╕ рдмрдирд╛рдиреЗ рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореЗрдЬрд╝рдмрд╛рди рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реМрдЯрдиреЗ рджреЗрддрд╛ рд╣реИред рдореЗрдЬрд╝рдмрд╛рди рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП, рдЖрдорддреМрд░ рдкрд░, nsenter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдЬрд╝рдмрд╛рди рдХреЗ /proc рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдирд┐рдпрдВрддреНрд░рдг рд╕рдореВрд╣ (CGroups)

  • рдХрд╛рд░реНрдп: рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рд╕реБрд░рдХреНрд╖рд╛ рдкрд╣рд▓реВ: CGroups рд╕реНрд╡рдпрдВ рдЕрд▓рдЧрд╛рд╡ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ release_agent рд╕реБрд╡рд┐рдзрд╛, рдЬреЛ рдЕрдЧрд░ рдЧрд▓рддреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реЛ, рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрд╖рдорддрд╛ рдЫреЛрдбрд╝реЗрдВ

  • рдорд╣рддреНрд╡: рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред

  • рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛: рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд░реВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд░рдиреЗ рдХреА рд╕реАрдорд╛ рд▓рдЧрд╛рддреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рддреА рд╣реИ, рддреЛ рдЖрд╡рд╢реНрдпрдХ рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕рдХреЙрд▓ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдпреЗ рд╣реИрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛ рдЕрдиреНрдп рдХреНрд╖рдорддрд╛рдПрдБ рдЫреЛрдбрд╝ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдмрдЪреА рд╣реИрдВ:

Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep

Seccomp

рдпрд╣ рдбреЙрдХрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрдпреВрд░ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕рдХреЙрд▓реНрд╕ рдХреЛ рдФрд░ рднреА рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЙрдХрд░ Seccomp рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ: https://github.com/moby/moby/blob/master/profiles/seccomp/default.json

AppArmor

рдбреЙрдХрд░ рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/moby/moby/tree/master/profiles/apparmor

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрд╖рдорддрд╛рдПрдБ, рд╕рд┐рд╕рдХреЙрд▓реНрд╕, рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХрдо рд╣реЛ...

рдиреЗрдорд╕реНрдкреЗрд╕

рдиреЗрдорд╕реНрдкреЗрд╕ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдПрдХ рд╕реЗрдЯ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬрдмрдХрд┐ рджреВрд╕рд░реЗ рд╕реЗрдЯ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдПрдХ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдиреЗрдорд╕реНрдкреЗрд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡реЗ рдиреЗрдорд╕реНрдкреЗрд╕ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЙрдХрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╡рд┐рд▓рдпрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗ:

  • pid рдиреЗрдорд╕реНрдкреЗрд╕

  • рдорд╛рдЙрдВрдЯ рдиреЗрдорд╕реНрдкреЗрд╕

  • рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕

  • ipc рдиреЗрдорд╕реНрдкреЗрд╕

  • UTS рдиреЗрдорд╕реНрдкреЗрд╕

рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

Namespaces

cgroups

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╕реБрд╡рд┐рдзрд╛ cgroups рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдЬреИрд╕реЗ cpu, рдореЗрдореЛрд░реА, рдЖрдИрдУ, рдиреЗрдЯрд╡рд░реНрдХ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдбреЙрдХрд░ cgroup рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрднрд╡ рд╣реЛред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ рдЬрд┐рд╕реЗ рдпреВрдЬрд╝рд░ рд╕реНрдкреЗрд╕ рдореЗрдореЛрд░реА рдХреЛ 500m рддрдХ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд░реНрдиреЗрд▓ рдореЗрдореЛрд░реА рдХреЛ 50m рддрдХ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, cpu рд╢реЗрдпрд░ рдХреЛ 512, blkioweight рдХреЛ 400 рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред CPU рд╢реЗрдпрд░ рдПрдХ рдЕрдиреБрдкрд╛рдд рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХрд╛ CPU рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 1024 рд╣реИ рдФрд░ 0 рдФрд░ 1024 рдХреЗ рдмреАрдЪ рд░реЗрдВрдЬ рд╣реИред рдпрджрд┐ рддреАрди рдХрдВрдЯреЗрдирд░реНрд╕ рдХрд╛ CPU рд╢реЗрдпрд░ 1024 рд╣реИ, рддреЛ рд╣рд░ рдХрдВрдЯреЗрдирд░ CPU рд╕рдВрд╕рд╛рдзрди рд╕рдВрдШрд░реНрд╖ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ 33% рддрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред blkio-weight рдПрдХ рдЕрдиреБрдкрд╛рдд рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХрд╛ IO рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 500 рд╣реИ рдФрд░ 10 рдФрд░ 1000 рдХреЗ рдмреАрдЪ рд░реЗрдВрдЬ рд╣реИред

docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash

рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдХрд╛ cgroup рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

docker run -dt --rm denial sleep 1234 #Run a large sleep inside a Debian container
ps -ef | grep 1234 #Get info about the sleep process
ls -l /proc/<PID>/ns #Get the Group and the namespaces (some may be uniq to the hosts and some may be shred with it)

For more information check:

CGroups

рдпреЛрдЧреНрдпрддрд╛рдПрдБ

рдпреЛрдЧреНрдпрддрд╛рдПрдБ рдореВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛ рдпреЛрдЧреНрдпрддрд╛рдПрдБ рдЕрдиреБрдордд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЙрди рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред Docker рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдпреЛрдЧреНрдпрддрд╛ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛред

рдЬрдм рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИ рдЬреЛ рд╕рдВрдХреНрд╖реЗрдкрдг рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреА рдереА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдпреЛрдЧреНрдпрддрд╛рдПрдБред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рди рд╣реЛ:

Linux Capabilities

рдбреЙрдХрд░ рдореЗрдВ Seccomp

рдпрд╣ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдбреЙрдХрд░ рдХреЛ рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕рдХреЙрд▓реНрд╕ рдХреЛ:

Seccomp

рдбреЙрдХрд░ рдореЗрдВ AppArmor

AppArmor рдПрдХ рдХрд░реНрдиреЗрд▓ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕реАрдорд┐рдд рд╕реЗрдЯ рдореЗрдВ рдкреНрд░рддрд┐-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред:

AppArmor

рдбреЙрдХрд░ рдореЗрдВ SELinux

  • рд▓реЗрдмрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: SELinux рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд▓реЗрдмрд▓ рд╕реМрдВрдкрддрд╛ рд╣реИред

  • рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЗрдмрд▓ рдХреНрдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдиреНрдп рд▓реЗрдмрд▓реЛрдВ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ред

  • рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЗрдмрд▓: рдЬрдм рдХрдВрдЯреЗрдирд░ рдЗрдВрдЬрди рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдпрдд: рдПрдХ рд╕реАрдорд┐рдд SELinux рд▓реЗрдмрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдпрдд: container_tред

  • рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдмрд▓рд┐рдВрдЧ: рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпрдд: container_file_t рд▓реЗрдмрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рдиреАрддрд┐ рдирд┐рдпрдо: SELinux рдиреАрддрд┐ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ container_t рд▓реЗрдмрд▓ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдХреЗрд╡рд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ (рдкрдврд╝рдирд╛, рд▓рд┐рдЦрдирд╛, рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди) рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ container_file_t рд▓реЗрдмрд▓ рд╕реЗ рд▓реЗрдмрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рддрдВрддреНрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реЛрддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдХреЗрд╡рд▓ рдЙрд╕реА рд▓реЗрдмрд▓ рд╡рд╛рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреА рд╕реАрдорд╛ рд▓рдЧрд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдРрд╕реА рдХреНрд╖рддрд┐ рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рдВрднрд╛рд╡рд┐рдд рдиреБрдХрд╕рд╛рди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред

SELinux

AuthZ рдФрд░ AuthN

рдбреЙрдХрд░ рдореЗрдВ, рдПрдХ рдЕрдзрд┐рдХреГрддрд┐ рдкреНрд▓рдЧрдЗрди рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдпрд╛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдирд┐рд░реНрдгрдп рджреЛ рдореБрдЦреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдВрджрд░реНрдн: рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдХреМрди рд╣реИрдВ рдФрд░ рд╡реЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

  • рдХрдорд╛рдВрдб рд╕рдВрджрд░реНрдн: рдпрд╣ рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред

рдпреЗ рд╕рдВрджрд░реНрдн рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕реЗ рд╡реИрдз рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХреГрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдбреЙрдХрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИрдпреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

AuthZ& AuthN - Docker Access Authorization Plugin

рдХрдВрдЯреЗрдирд░ рд╕реЗ рдбреЙрд╕

рдпрджрд┐ рдЖрдк рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реАрдорд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдХрдВрдЯреЗрдирд░ рдореЗрдЬрд╝рдмрд╛рди рдХреЛ рдбреЙрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рд╡рд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

  • CPU рдбреЙрд╕

# stress-ng
sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t 5m

# While loop
docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :; done'
  • рдмреИрдВрдбрд╡рд┐рдбреНрде рдбреАрдУрдПрд╕

nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444; done

рджрд┐рд▓рдЪрд╕реНрдк Docker рдлреНрд▓реИрдЧ

--privileged рдлреНрд▓реИрдЧ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдкрд░ рдЖрдк рдпрд╣ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ --privileged рдлреНрд▓реИрдЧ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ:

Docker --privileged

--security-opt

no-new-privileges

рдпрджрд┐ рдЖрдк рдПрдХ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЧрд▓рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ suid рдмрд╛рдЗрдирд░реА рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдиреНрдирдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд┐рд╕рд╕реЗ рдЙрд╕реЗ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

no-new-privileges рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЙрдиреНрдирддрд┐ рдХреЛ рд░реЛрдХреЗрдЧрд╛ред

docker run -it --security-opt=no-new-privileges:true nonewpriv

рдЕрдиреНрдп

#You can manually add/drop capabilities with
--cap-add
--cap-drop

# You can manually disable seccomp in docker with
--security-opt seccomp=unconfined

# You can manually disable seccomp in docker with
--security-opt apparmor=unconfined

# You can manually disable selinux in docker with
--security-opt label:disable

рдЕрдзрд┐рдХ --security-opt рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░реЗрдВ: https://docs.docker.com/engine/reference/run/#security-configuration

рдЕрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рдорд▓реЗ

рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди: рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕

рдбреЙрдХрд░ рдЗрдореЗрдЬ рдореЗрдВ рд╕реАрдзреЗ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ docker inspect рдпрд╛ exec рдЬреИрд╕реЗ рдХрдорд╛рдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдЯреЗрдирд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЖрдкрдХреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреА рд╣реИрдВред

рдбреЙрдХрд░ рд╡реЙрд▓реНрдпреВрдореНрд╕ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдпреЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, docker inspect рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рддрдХ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ exec рдкрд╣реБрдВрдЪ рд░рдЦреЗ рд╣реИрдВ, рд░рд╣рд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЙрдХрд░ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрдореЗрдЬ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд░рд╣рд╕реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, BuildKit рдПрдХ рдХреБрд╢рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рд░реНрдорд╛рдг рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

BuildKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рддреАрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ: export DOCKER_BUILDKIT=1

  2. рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рд▓рдЧрд╛рдХрд░: DOCKER_BUILDKIT=1 docker build .

  3. рдбреЙрдХрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдирд╛: { "features": { "buildkit": true } }, рдЗрд╕рдХреЗ рдмрд╛рдж рдбреЙрдХрд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред

BuildKit рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --secret рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд░рд╣рд╕реНрдп рдЗрдореЗрдЬ рдирд┐рд░реНрдорд╛рдг рдХреИрд╢ рдпрд╛ рдЕрдВрддрд┐рдо рдЗрдореЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:

docker build --secret my_key=my_value ,src=path/to/my_secret_file .

рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, Docker Compose рдФрд░ Kubernetes рдордЬрдмреВрдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред Docker Compose рдПрдХ secrets рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЧреЛрдкрдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ docker-compose.yml рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

version: "3.7"
services:
my_service:
image: centos:7
entrypoint: "cat /run/secrets/my_secret"
secrets:
- my_secret
secrets:
my_secret:
file: ./my_secret_file.txt

рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди Docker Compose рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдПрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреБрдмрд░рдиреЗрдЯреНрд╕ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ, рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Helm-Secrets рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдмрд░рдиреЗрдЯреНрд╕ рдХрд╛ рд░реЛрд▓ рдЖрдзрд╛рд░рд┐рдд рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг (RBAC) рд░рд╣рд╕реНрдп рдкреНрд░рдмрдВрдзрди рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ Docker Enterprise рдХреЗ рд╕рдорд╛рдиред

gVisor

gVisor рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд░реНрдиреЗрд▓ рд╣реИ, рдЬреЛ рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рд╕рд░реНрдлреЗрд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ Open Container Initiative (OCI) рд░рдирдЯрд╛рдЗрдо runsc рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╣реЛрд╕реНрдЯ рдХрд░реНрдиреЗрд▓ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд▓рдЧрд╛рд╡ рд╕реАрдорд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред runsc рд░рдирдЯрд╛рдЗрдо Docker рдФрд░ Kubernetes рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдирд╛ рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Kata Containers

Kata Containers рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рд╣реИ рдЬреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рд▓реНрдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреА рддрд░рд╣ рдЕрдиреБрднрд╡ рдФрд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрдд рдХрд╛рд░реНрдпрднрд╛рд░ рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╛рд░рд╛рдВрд╢ рдпреБрдХреНрддрд┐рдпрд╛рдБ

  • --privileged рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ рдорд╛рдЙрдВрдЯ рди рдХрд░реЗрдВред рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ рдХрдВрдЯреЗрдирд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣реЛрд╕реНрдЯ рдХреЗ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд▓реЗрдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, --privileged рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ред

  • рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рди рдЪрд▓рд╛рдПрдВред рдПрдХ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрдорд╕реНрдкреЗрд╕** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред** рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд░реВрдЯ рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрдорд╛рд░реНрдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ, рд▓рд┐рдирдХреНрд╕ рдиреЗрдорд╕реНрдкреЗрд╕, рдХреНрд╖рдорддрд╛рдПрдБ, рдФрд░ рд╕реАрдЧреНрд░реБрдкреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рд▓реНрдХреЗ рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИред

  • рд╕рднреА рдХреНрд╖рдорддрд╛рдПрдБ рдЫреЛрдбрд╝реЗрдВ (--cap-drop=all) рдФрд░ рдХреЗрд╡рд▓ рд╡рд╣реА рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (--cap-add=...)ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрднрд╛рд░реЛрдВ рдХреЛ рдХреЛрдИ рднреА рдХреНрд╖рдорддрд╛рдПрдБ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдорд▓реЗ рдХреА рджрд╛рдпрд░рд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

  • тАЬno-new-privilegesтАЭ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП suid рдмрд╛рдЗрдирд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

  • рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд╛рдПрдБ рдорд╢реАрди рдХреЛ рдбреАрдирд╛рдЗрд▓ рдСрдл рд╕рд░реНрд╡рд┐рд╕ рд╣рдорд▓реЛрдВ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦ рд╕рдХрддреА рд╣реИрдВред

  • рд╕реЗрдХреНрдХреЙрдореНрдк, AppArmor (рдпрд╛ SELinux) рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдпрдо рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рд╕рд┐рд╕рдХреЙрд▓реНрд╕ рдХреЛ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдХрд░рддреЗ рд╣реИрдВред

  • рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╛ рдЙрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрдкрдиреА рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рдПрдВред рдмреИрдХрдбреЛрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рди рд▓реЗрдВ рдпрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реВрдЯ рдХреБрдВрдЬреА, рдкрд╛рд╕рдлреНрд░реЗрдЬ рдХреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рдбреЙрдХрд░ рдХреЗ рдкрд╛рд╕ UCP рдХреЗ рд╕рд╛рде рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред

  • рдЕрдкрдиреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирдГ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣реЛрд╕реНрдЯ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред

  • рдЕрдкрдиреЗ рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХрд╛рд░реА рдХреЛ рдкрд╣реБрдВрдЪрдирд╛ рдХрдард┐рди рд╣реЛред

  • рдпрджрд┐ рдЖрдк рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛред

  • рдЕрдкрдиреЗ Dockerfile рдореЗрдВ ADD рдХреА рдмрдЬрд╛рдп COPY рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред ADD рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред COPY рдХреЗ рдкрд╛рд╕ рдпреЗ рдХреНрд╖рдорддрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВред рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ, ADD рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рджреВрд░рд╕реНрде рдпреВрдЖрд░рдПрд▓ рдФрд░ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдорд┐рдд рди рд╣реЛрдВред

  • рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

  • рдХрдВрдЯреЗрдирд░ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рд░рдЦреЗрдВ

Docker Breakout / Privilege Escalation

рдпрджрд┐ рдЖрдк рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЙрдХрд░ рд╕рдореВрд╣ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рдЖрдк рднрд╛рдЧрдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

Docker Breakout / Privilege Escalation

Docker Authentication Plugin Bypass

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЙрдХрд░ рд╕рдореВрд╣ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣реБрдВрдЪ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдПрдХ рдбреЙрдХрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

AuthZ& AuthN - Docker Access Authorization Plugin

Docker рдХреЛ рдордЬрдмреВрдд рдмрдирд╛рдирд╛

  • рдЙрдкрдХрд░рдг docker-bench-security рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ Docker рдХрдВрдЯреЗрдирд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдХреА рджрд░реНрдЬрдиреЛрдВ рд╕рд╛рдорд╛рдиреНрдп рд╢реНрд░реЗрд╖реНрда-рдкреНрд░рдерд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпреЗ рд╕рднреА рдЯреЗрд╕реНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИрдВ, рдФрд░ CIS Docker Benchmark v1.3.1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдЖрдкрдХреЛ рдЙрдкрдХрд░рдг рдХреЛ рдбреЙрдХрд░ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред README рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВ: https://github.com/docker/docker-bench-security.

рд╕рдВрджрд░реНрдн

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated