19% populārāko Docker attēlu nav paroles saknes lietotājam

Pagājušajā sestdienā, 18. maijā, Jerry Gamblin no Kenna Security pārbaudīja 1000 populārākos attēlus no Docker Hub, lai noskaidrotu, kāds ir paroli lietotājam root. 19% gadījumos tā izrādījās tukša.

19% populārāko Docker attēlu nav paroles saknes lietotājam

Vēsture ar Alpine

Pētījuma iemesls bija šī mēneša sākumā publicētais Talos Vulnerability Report (TALOS-2019-0782) ar autoru — pateicoties Peter Adkins no Cisco Umbrella — kurš paziņoja, ka Docker attēli ar populāro konteineru distribūciju Alpine nav paroli lietotājam root:

«Oficiālās Docker attēlu versijas Alpine Linux (sākot no v3.3) satur NULL- paroli lietotājam root. Šī ievainojamība radās regresijas rezultātā, kas tika ieviesta 2015. gada decembrī. Tās būtība ir tāda, ka sistēmas, kas izvietotas ar problemātiskām versijām Alpine Linux konteineros un izmanto Linux PAM vai citu mehānismu, kas izmanto sistēmas failu shadow kā autentifikācijas datubāzi, var pieņemt nulles (NULL) paroli lietotājam root».

Problēmu IT risināšanā identificētās Docker attēlu versijas ar Alpine bija 3.3—3.9, kā arī jaunākā edge versija.

Autori deva šādu ieteikumu lietotājiem, kas saskaras ar šo problēmu:

«Lietotāja konts root ir skaidri jāizslēdz Docker attēlos, kas veidoti, pamatojoties uz problemātiskām versijām Alpine. Ievainojamības potenciālā izmantošana ir atkarīga no vides, jo tās panākumiem nepieciešama pakalpojuma vai lietojumprogrammas pieejamība, kas izmanto Linux PAM vai līdzīgu mehānismu».

Problēma bija ir novērsta Alpine versijās 3.6.5, 3.7.3, 3.8.4, 3.9.2 un edge (20190228 snapshot), un attēlu īpašniekiem, kas saskaras ar šo problēmu, tika ieteikts izkomentēt rindu ar root /etc/shadow vai pārliecināties, ka nav instalēts linux-pam.

Turpinājums ar Docker Hub

Jerry Gamblin nolēma pievērst uzmanību, «cik plaši var izplatīt praksi izmantot nulles paroles konteineros». Tāpēc viņš uzrakstīja nelielu Bash skripts, kura būtība ir vienkārša:

  • izmantojot curl pieprasījumu uz API Docker Hub, tiek pieprasīts tā attēlu saraksts;
  • izmantojot jq, tas tiek kārtots pēc lauka popularity, un no iegūtajiem rezultātiem paliek pirmais tūkstotis;
  • katram no tiem tiek izpildīts docker pull;
  • katram iegūtajam Docker attēlam tiek izpildīts $ docker-compose up ar pirmās rindas lasīšanu no faila /etc/shadow;
  • ja rindu vērtība bija vienāda ar root:::0:::::, attēla nosaukums tiek saglabāts atsevišķā failā.

Ko tad mēs ieguvām? Šajā failā izrādījās, ka 194 rindas ar populāru Docker attēlu nosaukumiem ar Linux sistēmām, kur root lietotājam nav iestatīta parole:

«Starptautiski pazīstamākie nosaukumi šajā sarakstā ir govuk/governmentpaas, hashicorp, microsoft, monsanto un mesosphere. Savukārt kylemanna/openvpn ir vispopulārākais konteiners sarakstā, tā statistika pārsniedz 10 miljonus lejupielāžu».

Tomēr jāpiebilst, ka pats šis fenomens nenozīmē tiešu sistēmu drošības ievainojamību, kas tos izmanto: viss ir atkarīgs arī no tā, kā tie tiek pielietoti. (skat. iepriekš minēto komentāru par Alpine). Tomēr «morāle šai pasakai» jau ir redzēta daudzkārt: acīmredzamā vienkāršība bieži vien slēpj arī otras puses, par kurām vienmēr jāatceras un kuru sekas jāņem vērā savās tehnoloģiju pielietošanas scenārijos.

P.S.

Lasiet arī mūsu emuāra rakstos:

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster