19 % najlepších obrázkov Dockeru nemá heslo root

Minulú sobotu, 18. mája, Jerry Gamblin z Kenna Security skontrolované 1000 najpopulárnejších obrázkov z Docker Hub podľa hesla, ktoré používajú pre používateľa root. V 19 % prípadov sa ukázalo, že je prázdny.

19 % najlepších obrázkov Dockeru nemá heslo root

Pozadie s alpským

Dôvodom miništúdie bola správa o zraniteľnosti Talos, ktorá sa objavila začiatkom tohto mesiaca (TALOS-2019-0782), ktorej autori – vďaka objavu Petra Adkinsa z Cisco Umbrella – oznámili, že obrázky Docker s populárnou kontajnerovou distribúciou Alpine nemajú heslo root:

„Oficiálne verzie obrazov Alpine Linux Docker (od verzie 3.3) obsahujú heslo NULL pre používateľa root. Táto zraniteľnosť sa objavila v dôsledku regresie predstavenej v decembri 2015. Jeho podstata spočíva v skutočnosti, že systémy nasadené s problematickými verziami Alpine Linuxu v kontajneri a používajúce Linux PAM alebo iný mechanizmus, ktorý používa systémový tieňový súbor ako databázu na autentifikáciu, môžu akceptovať nulové (NULL) heslo pre užívateľa root.

Verzie obrázkov Alpine Docker testované na problém boli 3.3-3.9 vrátane, ako aj najnovšie vydanie edge.

Autori poskytli dotknutým používateľom nasledujúce odporúčania:

„Účet root musí byť explicitne zakázaný v obrazoch Docker vytvorených z problematických verzií Alpine. Pravdepodobné využitie zraniteľnosti závisí od prostredia, pretože jej úspech si vyžaduje externe preposlanú službu alebo aplikáciu využívajúcu Linux PAM alebo iný podobný mechanizmus.

Problém bol eliminovaný vo verziách Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 a edge (snímka 20190228) a majitelia dotknutých obrázkov boli požiadaní, aby okomentovali riadok s rootom v /etc/shadow alebo sa uistite, že balík chýba linux-pam.

Pokračovanie z Docker Hub

Jerry Gamblin sa rozhodol opýtať sa, „aká bežná môže byť prax používania nulových hesiel v kontajneroch“. K tomu napísal malý bash skript, ktorého podstata je veľmi jednoduchá:

  • prostredníctvom požiadavky curl na API v Docker Hub sa požaduje zoznam obrázkov Docker, ktoré sú tam hosťované;
  • cez jq sa triedi podľa poľa popularitya zo získaných výsledkov zostáva prvých tisíc;
  • pre každého z nich, docker pull;
  • za každý obrázok prijatý z Docker Hub, docker run čítanie prvého riadku zo súboru /etc/shadow;
  • ak sa hodnota reťazca rovná root:::0:::::, názov snímky sa uloží do samostatného súboru.

Čo sa stalo? IN tento súbor bolo 194 riadkov s názvami populárnych obrazov Docker so systémami Linux, v ktorých používateľ root nemá nastavené heslo:

„Medzi najznámejšie mená na tomto zozname boli govuk/governmentpaas, hashicorp, microsoft, monsanto a mesosphere. A kylemanna/openvpn je najobľúbenejší kontajner na zozname s viac ako 10 miliónmi ťahov.“

Je však potrebné pripomenúť, že tento jav sám o sebe neznamená priamu zraniteľnosť v bezpečnosti systémov, ktoré ich používajú: všetko závisí od toho, ako presne sa používajú. (pozri komentár z prípadu Alpine vyššie). „Morálku tohto príbehu“ sme však už videli mnohokrát: zdanlivá jednoduchosť má často aj nevýhodu, na ktorú by ste si mali vždy pamätať a brať do úvahy jej dôsledky vo vašich scenároch používania technológie.

PS

Prečítajte si aj na našom blogu:

Zdroj: hab.com

Pridať komentár