Noat. transl.: It ûnderwerp fan Docker-feiligens is miskien ien fan 'e ivige yn' e moderne IT-wrâld. Dêrom presintearje wy sûnder fierdere útlis in oersetting fan 'e folgjende seleksje fan relevante oanbefellings. As jo al ynteressearre west hawwe yn dit probleem, sille in protte fan jo bekend wêze. Wy hawwe de kolleksje sels oanfolle mei in list mei nuttige nutsbedriuwen en ferskate boarnen foar fierdere stúdzje fan it probleem.

Ik bring jo oandacht in hantlieding foar it garandearjen fan Docker-feiligens. Feedback is wolkom, om't dit mear in kolleksje is fan úttreksels út ferskate boarnen, en net allegear binne yngeand besjoen. De oanbefellings binne ferdield yn trije kategoryen:
- Needsaaklike maatregels binnen it bestjoeringssysteem fan de host by it wurkjen mei Docker;
- Ynstruksjes yn ferbân mei de build konfiguraasje triem en it meitsjen fan konteners;
- Feiligens ark dy't kinne yntegrearje mei Docker Enterprise spesifike funksjes.
De gids is basearre op in ferskaat oan boarnen, wêrfan in protte hjirûnder steane. It is net wiidweidich, mar it beslacht alle basisen. Oanfoljende ynformaasje is te finen yn 'e CIS-testbeskriuwing (keppele oan' e ein fan dizze hantlieding), lykas ek yn 'e Docker-dokumintaasje.
Docker Feiligens Benchmark
kontrolearret jo Docker automatysk tsjin de meast foarkommende bêste praktiken. It skript is in goede heuristyske feiligens test, mar it moat net wurde beskôge as in wiidweidich analyse ark.
Host OS
Fansels kin in Docker-kontener net feilich wêze, útsein as it hostsysteem sels feilich is. Dêrom is it needsaaklik om bêste praktiken te folgjen yn befeiliging fan bestjoeringssysteem. Derneist soe it ferstannich wêze om neist de folgjende oanbefellings in kwetsberensanalyse út te fieren.
Audit regels
Meitsje en brûk kontrôleregels foar Docker-relatearre bestannen mei auditctl. Jo kinne bygelyks tafoegje -w /usr/bin/dockerd -k docker к /etc/audit.rules en de kontrôletsjinst opnij starte.
FIPS-modus
It ynskeakeljen fan FIPS-modus twingt kryptografyske ark om te wikseljen nei FIPS-listige algoritmen (Amerikaansk - ca. oerset.), sa foldogge oan federale en yndustry regeljouwing en easken. As it host OS FIPS-modus stipet, kinne jo it ynskeakelje troch de folgjende kommando's út te fieren:
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="fips=1 /g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg && rebootJo moatte ek FIPS ynskeakelje yn Docker Engine:
mkdir -p /etc/systemd/system/docker.service.d 2>&1; echo -e "[Service]n Environment="DOCKER_FIPS=1"" > /etc/systemd/system/docker.service.d/fips-module.conf; systemctl daemon-reload; systemctl restart dockerFoar mear ynformaasje, sjoch de dokumintaasje и .
Docker Secrets
Fertroulike gegevens moatte wurde bewarre as geheimen. Jo kinne de oerienkommende tsjinst begjinne mei it kommando docker-tsjinst meitsje:
docker service create --label com.docker.ucp.access.label=/prod --name nginx --publish 443 --secret source=orcabank_prod_mobile.ca.pem.v1,target=ca.pem nginxFoar details, sjoch .
Docker-konfiguraasjetriem
De folgjende ynstellings kinne wurde tafoege oan it konfiguraasjetriem /etc/docker/daemon.json:
-
"icc":false- skeakelet kommunikaasje tusken konteners út om ûnnedige ynformaasjelekkage te foarkommen. -
log-level: "info"- vangt alle logs útsein debuggen. { "log-driver": "syslog", "log-opts": { "syslog-address": "udp://1.2.3.4:1111" } }- makket logging op ôfstân mooglik en stjoert se troch nei it opjûne adres. Wurket allinich as de syslog-daemon rint. TCP en UDP wurde akseptearre as opsjes. It is ek mooglik om te ferbinen foar elke spesifike kontener. Foar dit doel wurdt in spesjale flagge ynsteld as Docker wurdt lansearre (
--log-opt syslog-address=ADDRESS).-
"userns-remap": "Your_User"- foarkomt eskalaasje fan privileezjes troch it isolearjen fan de nammeromte foar in spesifike brûker.
Transport Layer Security
Allinich brûkers mei tagong ta TLS-kliïnt-credentials moatte kinne ferbine mei de Docker-daemon (as tagong op ôfstân fereaske is).
Autorisaasje plugins
Beslute hokker brûkers meie útfiere hokker kommando's, en meitsje in passende autorisaasje-plugin foar Docker. Start dan de Docker-daemon en foegje de plugin deroan ta:
dockerd --authorization-plugin=PLUGIN_IDOm mear te learen oer it meitsjen fan autorisaasje-plugins, sjoch .
Daemon opsjes
De Docker-daemon rint mei in standert set parameters.
-
--live-restore- dizze parameter helpt te ferminderjen kontener downtime as it systeem wurdt ôfsletten of opnij opstarte. It wurdt makliker om se te patchjen of te aktualisearjen mei minimale downtime; -
--userland-proxy=false- as hairpin NAT's beskikber of brûkt binne, wurdt de proxy yn brûkersromte in oerstallige tsjinst, dy't allinich it oantal mooglike oanfalvektoren fergruttet; -
--no-new-privileges- foarkomt dat konteners ekstra privileezjes krije mei suid of sguid; -
--seccomp-profile /path/to/profile- as jo jo eigen seccomp-profyl hawwe, kinne jo it tapasse mei dizze flagge. Jo kinne mear leare oer Secomp en Docker .
Container en build triem konfiguraasje
It meitsjen fan in brûker
Soargje derfoar dat in brûker is oanmakke foar de kontener en útfiere it ûnder dy brûker (NET útfiere de kontener as root).
Tagong op ôfstân
Skeakelje tagong op ôfstân ta de daemon út. As jo it noch nedich hawwe, beskermje it dan mei sertifikaten.
Isolearje de brûkersnammeromte
It is foaral wichtich om te soargjen dat de brûkersnammeromte yn Docker is isolearre, om't it standert wurdt dield mei de hostnammeromte. Yn guon gefallen kin dit brûkt wurde om privileezjes te eskalearjen of sels te ûntkommen bûten de kontener. Jo kinne de brûkersnammeromte isolearje troch it konfiguraasjebestân te bewurkjen (lykas hjirboppe beskreaun yn 'e seksje Docker-konfiguraasjetriem). De ekstra fermelding fan dit probleem hjir is te tankjen oan it belang.
Sûnens Tsjek
Healthcheck is in krêftich ark wêrmei jo de yntegriteit fan in kontener kinne kontrolearje. It is konfigureare yn 'e Dockerfile mei de ynstruksjes HEALTHCHECK. Healthchecks kinne jo derfoar soargje dat de kontener goed wurket. Yn it foarbyld hjirûnder jout de sûnenskontrôle 0 werom as de tsjinner rint en 1 as it del is:
HEALTHCHECK CMD curl --fail http://localhost || exit 1SELinux
As SELinux stipe troch it host-bestjoeringssysteem, SE-belied oanmeitsje of ymportearjeLinux en Docker útfiere yn daemonmodus mei SE ynskeakeleLinux:
docker daemon --selinux-enableYn dit gefal kinne Docker-konteners wurde lansearre mei befeiligingsynstellingen, bygelyks:
docker run --interactive --tty --security-opt label=level:TopSecret centos /bin/bashNetwurkynterfaces
Standert harket Docker op alle netwurkynterfaces. Sûnt yn de measte gefallen ferkear wurdt ferwachte op mar ien fan harren, dizze oanpak fergruttet ûnnedich it risiko fan oanfal. Dêrom kinne jo by it starten fan in kontener syn havens bine oan spesifike ynterfaces op 'e host:
docker run --detach --publish 10.2.3.4:49153:80 nginxCached ferzjes fan ôfbyldings
As jo ôfbyldings downloade, soargje derfoar dat de lokale cache oerienkomt mei de ynhâld fan it repository. Oars kinne jo einigje mei in ferâldere ferzje fan 'e ôfbylding of in ôfbylding dy't kwetsberens befettet.
Netwurk brêge
Standert netwurk model docker0, is kwetsber foar oanfallen lykas ARP-spoofing en MAC-oerstreaming. Om dit probleem op te lossen, meitsje in netwurkbrêge neffens jo spesifikaasjes lykas beskreaun .
Docker socket warskôging
Nea in Docker-socket trochstjoere yn in kontener. Oars sil de kontener Docker-kommando's kinne útfiere en dêrom kommunisearje mei en kontrolearje it bestjoeringssysteem fan de host. Doch dat net.
Docker Enterprise konfigurearje
Docker Trust
Docker Trust lit jo kaaien generearje dy't kinne wurde brûkt om de kryptografyske yntegriteit fan ôfbyldings te ferifiearjen. Docker Trust-kaaien kinne brûkt wurde om Docker-ôfbyldings te ûndertekenjen mei privee kaaien, dy't wurde ferifiearre troch publike kaaien op 'e notaristsjinner. Oanfoljende ynformaasje - . Docker Trust yn Enterprise Engine ynskeakelje wurdt detaillearre yn .
Kwetsberens skennen
Docker Enterprise hat in ynboude kwetsberensscanner wêrmei jo in CVE-database kinne downloade foar offline skennen fan kwetsberens yn ôfbyldings. Regelmjittich scannen fan ôfbyldings helpt se feiliger te meitsjen: de brûker krijt fuortendaliks warskôgingen oer fûne kwetsberens. Foar mear ynformaasje oer hoe't dit kin dien wurde, sjoch .
Noat. transl.: D'r binne ek Open Source-scanners foar kwetsberens yn Docker-ôfbyldings, foarbylden dêrfan kinne fûn wurde oan 'e ein fan it materiaal.
LDAP en UCP yntegraasje
Universal Control Plane kin wurde yntegrearre mei LDAP. It resultaat sil in ferienfâldige autentikaasjesysteem wêze dat ûnnedige duplikaasje foarkomt. Jo kinne mear oer dit lêze yn it artikel .
Oare materialen
Mear ynformaasje oer bêste praktiken foar Docker-feiligens is te finen op . Wy riede ek oan te downloaden .
Oersetter bonus
As in logyske oanfolling op dit artikel, wy publisearje in list fan 10 Populêre Open Source Utilities foar Docker Security. It waard liend fan (troch Bill Doerrfeld fan Doerrfeld.io).
NB: Lês mear oer in protte fan 'e projekten neamd hjir yn it artikel "".
- is in skript al neamd oan it begjin fan it artikel dat Docker-konteners kontrolearret foar neilibjen fan mienskiplike feiligenspraktiken.

- — is wierskynlik it populêrste hulpprogramma foar statyske analyze fan kwetsberheden yn in kontener. It brûkt ferskate CVE-kwetsberensdatabases (ynklusyf trackers fan liedende Linux-distribúsjes lykas Red Hat, Debian, Ubuntu). It biedt in API foar ûntwikkelders en maklike funksjonaliteitsútwreiding (troch it tafoegjen fan "bestjoerders"). It wurdt brûkt yn it populêre iepenbiere kontenerôfbyldingsregister (fergelykber mei Docker Hub) - Quay.io.
- is in oplossing foar it garandearjen fan netwurkfeiligens op kernelnivo, basearre op BPF-netwurkpakketfiltertechnology.
- - in hulpprogramma foar it analysearjen fan de ynhâld fan bylden foar de oanwêzigens fan feiligens kwetsberens basearre op CVE. Dêrnjonken kinne jo oanpast belied tapasse (basearre op ferskate gegevens ynklusyf wite / swarte listen, triemynhâld, ensfh.) Om de feiligens fan konteners te beoardieljen.
- - in hiel ekosysteem foar it meitsjen en ûnderhâlden fan feiligensbelied op ferskate platfoarms. Biedt in hulpprogramma om konteners te kontrolearjen
oscap-docker. - - in hulpprogramma foar it scannen fan Docker-konteners foar kwetsberens, Trojans, firussen en malware. De CVE-databases omfetsje ôfhinklikheidskontrôles fan OWASP, de Red Hat Oval-database, en de Exploit Database eksploitaasjebewarring.
- - in ramt foar it ûndertekenjen fan Docker-ôfbyldings, oarspronklik makke by Docker Inc (en dan oerdroegen foar ûntwikkeling nei CNCF). It gebrûk makket it mooglik om rollen te delegearjen en ferantwurdlikheden te fersprieden ûnder konteners, en ek de kryptografyske yntegriteit fan ôfbyldings te ferifiearjen.
- - API foar metadata, ûntworpen om ynterne feiligensbelied te behearjen. As foarbyld lit it jo de prestaasjes fan kontenerfeiligensscanners ferbetterje. Shopify brûkt dizze API om metadata te behearjen oer syn 500 ôfbyldings.
- — in Kubernetes-hulpprogramma dat systeemgedrach kontrolearret: aktiviteit yn konteners, op hosts en op it netwurk. It lit jo trochgeande ynfrastruktuerkontrôles, anomaliedeteksje en warskôgings foar alle systeemopropen konfigurearje. Linux.
- is in oar ark foar statyske analyze fan Docker-containerôfbyldings. Hjirmei kinne jo "sjogge" yn ôfbyldingsbestannen, de nedige gegevens sammelje, it nedige belied tapasse, ensfh.
In oare goede kolleksje fan praktyske oanbefellings oer hoe't jo Docker feiliger meitsje kinne wurde fûn yn Aqua Security bedriuw. In protte fan har tips oerlaapje mei de hjirboppe al neamde, mar d'r binne oaren. Bygelyks, de auteurs suggerearje it organisearjen fan tafersjoch fan aktiviteit yn konteners en jouwe oan wêrop omtinken moat wurde by it brûken fan Docker Swarm.
Foar dyjingen dy't wolle dûke yn dit ûnderwerp yn mear detail, it waard publisearre ferline jier. boek"», wêrfan fragminten frij beskikber binne .
Ta beslút, foar in praktyske ynlieding ta guon aspekten fan Docker-feiligens: Seccomp-profilen en it gebrûk fan mooglikheden Linux-kernen yn konteners - jo kinne troch de oerienkommende gean laboratoarium wurk oan * - sjoch de seksje "Feiligens".

* Oer dizze boarne sels wy twa jier lyn, en yn novimber 2018, barde him in tige nijsgjirrich (út in feiligens eachpunt) ferhaal. Koartsein, de spesjalisten fan CyberArk Software Ltd. slagge it te hacken: om de mooglikheid te berikken om kommando's bûten konteners út te fieren, d.w.s. op it hostsysteem. In perfekte yllustraasje fan it feiligensprobleem yn Docker, is it net? Lês oer alle details fan wat der bard is .
PS fan oersetter
Lês ek op ús blog:
- «";
- «";
- «";
- «";
- «";
- «".
Boarne: www.habr.com

