19% e imazheve më të njohura të Docker nuk kanë një fjalëkalim root

Të shtunën e kaluar, më 18 maj, Jerry Gamblin nga Kenna Security kontrolluar 1000 nga imazhet më të njohura nga Docker Hub bazuar në fjalëkalimin rrënjë që përdorin. Në 19% të rasteve ishte bosh.

19% e imazheve më të njohura të Docker nuk kanë një fjalëkalim root

Sfondi me alpine

Arsyeja e mini-hulumtimit ishte Raporti i Vulnerability Talos që u shfaq në fillim të këtij muaji (TALOS-2019-0782), autorët e të cilave - falë zbulimit të Peter Adkins nga Cisco Umbrella - raportuan se imazhet Docker me shpërndarjen popullore të kontejnerëve Alpine nuk kanë një fjalëkalim rrënjësor:

“Versionet zyrtare të imazheve të Alpine Linux Docker (që nga v3.3) përmbajnë një fjalëkalim NULL për përdoruesin rrënjë. Kjo dobësi rezultoi nga një regresion i paraqitur në dhjetor 2015. Thelbi i kësaj është se sistemet e vendosura me versione problematike të Alpine Linux në një kontejner dhe duke përdorur Linux PAM ose një mekanizëm tjetër që përdor skedarin hije të sistemit si një bazë të dhënash vërtetimi mund të pranojnë një fjalëkalim NULL për përdoruesin rrënjë.

Versionet e imazheve Docker me Alpine të testuara për problemin ishin 3.3–3.9 përfshirëse, si dhe versioni më i fundit i edge.

Autorët bënë rekomandimin e mëposhtëm për përdoruesit e prekur:

"Llogaria rrënjësore duhet të çaktivizohet në mënyrë të qartë në imazhet Docker të ndërtuara nga versionet problematike të Alpine. Shfrytëzimi i mundshëm i cenueshmërisë varet nga mjedisi, pasi suksesi i tij kërkon një shërbim ose aplikacion të dërguar nga jashtë duke përdorur Linux PAM ose mekanizma të tjerë të ngjashëm."

Problemi ishte eliminohet në versionet Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 dhe edge (20190228 foto e çastit), dhe pronarëve të imazheve të prekura iu kërkua të komentonin linjën me rrënjë në /etc/shadow ose sigurohuni që paketa të mungon linux-pam.

Vazhdon me Docker Hub

Jerry Gamblin vendosi të ishte kurioz se "sa e zakonshme mund të jetë praktika e përdorimit të fjalëkalimeve null në kontejnerë". Për këtë qëllim ai shkroi një të vogël Skenari Bash, thelbi i së cilës është shumë i thjeshtë:

  • përmes një kërkese për curl në API në Docker Hub, kërkohet një listë e imazheve të Docker të pritura atje;
  • nëpërmjet jq renditet sipas fushës popularity, dhe nga rezultatet e marra, mbeten një mijë e parë;
  • për secilën prej tyre është përmbushur docker pull;
  • për çdo imazh të marrë nga Docker Hub është ekzekutuar docker run me leximin e rreshtit të parë nga skedari /etc/shadow;
  • nëse vlera e vargut është e barabartë me root:::0:::::, emri i figurës ruhet në një skedar të veçantë.

Cfare ndodhi? NË këtë skedar Kishte 194 rreshta me emrat e imazheve të njohura Docker me sisteme Linux, në të cilat përdoruesi rrënjë nuk ka një fjalëkalim të caktuar:

“Ndër emrat më të njohur në këtë listë ishin govuk/governmentpaas, hashicorp, microsoft, monsanto dhe mesosphere. Dhe kylemanna/openvpn është kontejneri më i popullarizuar në listë, statistikat e tij janë më shumë se 10 milionë tërheqje.”

Sidoqoftë, vlen të kujtojmë se ky fenomen në vetvete nuk nënkupton një cenueshmëri të drejtpërdrejtë në sigurinë e sistemeve që i përdorin ato: gjithçka varet nga mënyra se si ato përdoren saktësisht. (shih komentin nga rasti Alpin më lart). Megjithatë, ne e kemi parë "moralin e historisë" shumë herë: thjeshtësia e dukshme shpesh ka një anë negative, e cila duhet të mbahet mend gjithmonë dhe pasojat e të cilave merren parasysh në skenarët e aplikimit tuaj të teknologjisë.

PS

Lexoni edhe në blogun tonë:

Burimi: www.habr.com

Shto një koment