Eelmisel laupäeval, 18. mail, viis Jerry Gamblin Kenna Security 1000 populaarseimat pilti Docker Hub'is, et tuvastada nende kasutatavad root'i paroolid. 19% juhtudest osutus see tühi olevaks.

Alpine taust
Uurimuse läbiviimise põhjuseks sai varem sel kuul ilmunud Talos Vulnerability Report (), mille autorid — tänu Peter Adkins'i avastusele Cisco Umbrella's — teatasid, et Docker-pildid, mis kasutavad populaarset konteineridistributsiooni Alpine, ei oma root'i jaoks parooli:
„Ametlikud Alpine Linux'i Docker-pildid (alates v3.3) sisaldavad NULL-parooli kasutaja root jaoks. See haavatavus tekkis tulemusena regressioonist, mis esitati detsembris 2015. See seisneb selles, et probleemsete versioonidega Alpine Linux'is konteineris käivitatud süsteemid, mis kasutavad Linux PAM'i või muud mehhanismi, mis võtab kasutusele süsteemi failide shadow autentimiseks, võivad aktsepteerida NULL-parooli kasutaja root jaoks.”
Probleemsete versioonidega Docker-pildid Alpine'i kohta loeti versioone 3.3—3.9 (kaasa arvatud) ning viimane edge väljaanne.
Autorid soovitasid kasutajatele, kes on probleemile vastuvõtlikud:
„Root-konto peab olema Docker-piltides, mis on loodud probleemsetel Alpine'i versioonidel, selgelt keelatud. Haavatavuse ärakasutamine sõltub keskkonnast, kuna selle edukuseks on vajalik avalik serv või rakendus, mis kasutab Linux PAM-i või sarnast mehhanismi.“
Probleem oli Alpine versioonides 3.6.5, 3.7.3, 3.8.4, 3.9.2 ja edge (20190228 snapshot), ning neid mõjutavate piltide omanikele soovitati kommenteerida ridu, mis sisaldavad root-i /etc/shadow või veenduda, et paketti ei ole linux-pam.
Jätkub Docker Hub'is
Jerry Gamblin soovis teada, kui levinud praktika null-paroolide kasutamine konteinerites võib olla. Selleks kirjutas ta väikese , mille olemus on üsna lihtne:
- curl-päringuga Docker Hubi API-le küsitakse loetelu seal hostitud Docker-piltidest;
- jal kasutades jq, sorteeritakse see „popularity“ välja;
, ja saadud tulemustest jääb alles esimene tuhat;igaühe puhul täidetakse - igalt saadud Docker Hub'i pildilt loetakse
docker pull; - esimese rea failist
docker runkui rea väärtus osutus võrdseks/etc/shadow; - если значение строки оказалось равным
root:::0:::::, kujutise nimi salvestatakse eraldi faili.
Mida siis saadi? Failis „Selle nimekirja seas olid tuntumad nimed nagu govuk/governmentpaas, hashicorp, microsoft, monsanto ja mesosphere. Ja kylemanna/openvpn on nimekirja kõige populaarsem konteiner, mille statistika ulatub üle 10 miljoni allalaadimise.“
Siiski tasub meeles pidada, et see nähtus ei tähenda iseenesest süsteemide, mis neid kasutavad, otsest turvaauku: kõik sõltub sellest, kuidas neid täpselt rakendatakse
(vt kommentaar ülaltoodud Alpine juhtumi kohta) . Siiski, „selle muinasjutu õpetus“ on meile tuttav juba korduvalt: nähtav lihtsus omab sageli ka varjupoolt, millest tuleb alati teadlik olla ja mille tagajärgi tehnoloogia kasutusstsenaariumites arvesse võtta.Statistika Docker Hubis olevate põhiliste operatsioonisüsteemide kohta
P.S.
Lugege ka meie blogist:
- «»;
- «»;
- «»;
- «».
Allikas: habr.com
