V 19% najbolj priljubljenih Docker slik ni gesla za root

Prejšnjo soboto, 18. maja, je Jerry Gamblin iz Kenna Security pregledal 1000 najbolj priljubljenih slik na Docker Hubu glede na uporabljeno geslo za uporabnika root. V 19% primerov je bilo to geslo prazno.

V 19% najbolj priljubljenih Docker slik ni gesla za root

Kratka zgodovina z Alpine

Vzrok za izvedeno mini-raziskavo je bil Talos Vulnerability Report, ki je izšel prej v tem mesecu (TALOS-2019-0782), avtorji katerega - zahvaljujoč odkritju Peterja Adkinsa iz Cisco Umbrella - so poročali, da Docker slike z priljubljenim distribucijo za kontejnerje Alpine nimajo gesla za root:

„Uradne različice Docker slik Alpine Linux (od v3.3 naprej) vsebujejo NULL-geslo za uporabnika root. Ta ranljivost je nastala zaradi regresije, predstavljene decembra 2015. Njena bistvo je, da sistemi, nameščeni z problematičnimi različicami Alpine Linux v kontejnerju in uporabljajo Linux PAM ali drug mehanizem, ki uporablja sistemsko datoteko shadow kot bazo podatkov za avtorizacijo, lahko sprejmejo ničelno (NULL) geslo za uporabnika root.”

Preverjene različice Docker slik z Alpine, ki so bile prizadete, so bile od 3.3 do 3.9 vključno, ter zadnja različica edge.

Avtorji so dajali naslednje priporočilo uporabnikom, ki so prizadeti:

„Račun root mora biti izrecno onemogočen v Docker slikah, zgrajenih na problematičnih različicah Alpine. Verjetna izkoriščenost ranljivosti je odvisna od okolja, saj njen uspeh zahteva izpostavljen zunanji servis ali aplikacijo, ki uporablja Linux PAM ali drug podoben mehanizem.”

Težava je bila ispravljena v Alpine različicah 3.6.5, 3.7.3, 3.8.4, 3.9.2 in edge (20190228 snapshot), in lastnikom prizadetih slik je bilo predlagano, da zakomentirajo vrstico za root v /etc/shadow ali se prepričajo, da paket linux-pam.

Zgodba z Docker Hub

Jerry Gamblin se je odločil, da bo radoveden, ‚kako razširjena bi lahko bila praksa uporabe null-gesel v kontejnerjih‘. Za to je napisal majhen Bash skripta, katerega bistvo je zelo preprosto:

  • prek curl poizvedbe do API-ja na Docker Hubu zahteva seznam tam gostujočih Docker slik;
  • prek jq ga razvrsti po polju priljubljenost, iz dobljenih rezultatov pa ostane prvih tisoč;
  • za vsako izmed njih se izvede docker pull;
  • za vsako sliko, pridobljeno z Docker Hubom, se izvede docker run s prebranjem prve vrstice iz datoteke, /etc/shadow;
  • če je vrednost vrstice enaka root:::0:::::, se ime slike shrani v posebno datoteko.

Kaj je torej nastalo? V tej datoteki se je izkazalo, da je 194 vrstic z imeni priljubljenih Docker slik z Linux sistemi, kjer uporabnik root nima nastavljenega gesla:

„Med najbolj znanimi imeni na tem seznamu so se znašli govuk/governmentpaas, hashicorp, microsoft, monsanto in mesosphere. Kylmanna/openvpn pa je najpriljubljenejši kontejner na seznamu, njegova statistika beleži več kot 10 milijonov prenosov.“

Vendar pa je treba opozoriti, da samo to dejstvo ne pomeni nujno neposredne ranljivosti v varnosti sistemov, ki jih uporabljajo: vse je odvisno od tega, kako se pravzaprav uporabljajo. (glej komentar iz primera z Alpine zgoraj). Vendar pa smo že večkrat videli „moral te zgodbe“: očitna preprostost pogosto ima tudi svojo temno stran, o kateri je vedno treba razmisliti in upoštevati posledice v svojih scenarijih uporabe tehnologije.

P.S.

Preberite tudi na našem blogu:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster