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

Kratka zgodovina z Alpine
Vzrok za izvedeno mini-raziskavo je bil Talos Vulnerability Report, ki je izšel prej v tem mesecu (), 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 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 , 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 runs 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 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
