19% de la supraj bildoj de Docker ne havas radikan pasvorton

Lastan sabaton, la 18-an de majo, Jerry Gamblin de Kenna Security kontrolita 1000 el la plej popularaj bildoj de Docker Hub bazitaj sur la radika pasvorto, kiun ili uzas. En 19% de kazoj ĝi estis malplena.

19% de la supraj bildoj de Docker ne havas radikan pasvorton

Fono kun Alpa

La kialo de la mini-esploro estis la Talos Vulnerability Report, kiu aperis pli frue ĉi-monate (TALOS-2019-0782), kies aŭtoroj - danke al la malkovro de Peter Adkins de Cisco Umbrella - raportis, ke Docker-bildoj kun la populara Alpa ujo-distribuo ne havas radikan pasvorton:

"Oficialaj versioj de Alpine Linux Docker-bildoj (ekde v3.3) enhavas NULL-pasvorton por la radika uzanto. Tiu vundebleco rezultiĝis el regreso lanĉita en decembro 2015. La esenco de ĉi tio estas, ke sistemoj deplojitaj kun problemaj versioj de Alpine Linukso en ujo kaj uzantaj Linukson PAM aŭ alian mekanismon, kiu uzas la sisteman ombrodosieron kiel aŭtentikigdatumbazon, povas akcepti NULL-pasvorton por la radika uzanto.

La versioj de Docker-bildoj kun Alpine testitaj pri la problemo estis 3.3–3.9 inkluzivaj, same kiel la plej nova eldono de eĝo.

La aŭtoroj faris la sekvan rekomendon por tuŝitaj uzantoj:

"La radika konto devas esti eksplicite malŝaltita en Docker-bildoj konstruitaj el problemaj versioj de Alpine. La verŝajna ekspluato de la vundebleco dependas de la medio, ĉar ĝia sukceso postulas eksteren plusendita servon aŭ aplikaĵon uzantan Linukson PAM aŭ alian similan mekanismon."

La problemo estis eliminita en Alpaj versioj 3.6.5, 3.7.3, 3.8.4, 3.9.2 kaj rando (20190228 momentfoto), kaj posedantoj de tuŝitaj bildoj estis petitaj komenti la linion kun radiko en /etc/shadow aŭ certigu, ke la pako mankas linux-pam.

Daŭrigita kun Docker Hub

Jerry Gamblin decidis esti scivolema pri "kiel ofta la praktiko uzi nulajn pasvortojn en ujoj povus esti." Por tio li skribis malgrandan Bash-skripto, kies esenco estas tre simpla:

  • per bukla peto al la API en Docker Hub, listo de Docker-bildoj tie gastigitaj estas petita;
  • per jq ĝi estas ordigita laŭ kampo popularity, kaj el la rezultoj akiritaj, la unua milo restas;
  • por ĉiu el ili ĝi estas plenumita docker pull;
  • por ĉiu bildo ricevita de Docker Hub estas ekzekutita docker run kun legado de la unua linio el la dosiero /etc/shadow;
  • se la valoro de la ŝnuro estas egala al root:::0:::::, la nomo de la bildo estas konservita en aparta dosiero.

Kio okazis? EN ĉi tiu dosiero Ekzistis 194 linioj kun la nomoj de popularaj Docker-bildoj kun Linukso-sistemoj, en kiuj la radika uzanto ne havas pasvorton agordita:

"Inter la plej konataj nomoj en ĉi tiu listo estis govuk/governmentpaas, hashicorp, microsoft, monsanto kaj mezosfero. Kaj kylemanna/openvpn estas la plej populara ujo en la listo, ĝiaj statistikoj nombras pli ol 10 milionojn da tiroj."

Tamen memorindas, ke ĉi tiu fenomeno en si mem ne signifas rektan vundeblecon en la sekureco de la sistemoj, kiuj uzas ilin: ĉio dependas de kiel ĝuste ili estas uzataj. (vidu komenton de la Alpa kazo supre). Tamen, ni vidis la "moralon de la rakonto" multajn fojojn: ŝajna simpleco ofte havas malavantaĝon, kiun oni devas ĉiam memori kaj kies konsekvencoj estas konsiderataj en viaj teknologiaj aplikaj scenaroj.

PS

Legu ankaŭ en nia blogo:

fonto: www.habr.com

Aldoni komenton