V 19 % nejpopulárnějších Docker obrazů chybí heslo pro root

Minulou sobotu, 18. května, Jerry Gamblin z Kenna Security zkoumal 1000 nejpopulárnějších obrazů na Docker Hub za použití jejich hesla pro uživatele root. V 19 % případů bylo prázdné.

V 19 % nejpopulárnějších Docker obrazů chybí heslo pro root

Pozadí s Alpine

Důvodem pro provedené mini-školení byl dříve zveřejněný Talos Vulnerability Report (TALOS-2019-0782), jehož autoři — díky nálezu Petera Adkinse z Cisco Umbrella — uvedli, že Docker obrazy s populárním distribucí kontejnerů Alpine nemají heslo pro root:

"Oficiální verze Docker obrazů Alpine Linux (od v3.3) obsahují NULL heslo pro uživatele root. Tato zranitelnost vznikla v důsledku regrese představené v prosinci 2015. Spočívá v tom, že systémy nasazené s problematickými verzemi Alpine Linux v kontejneru a používající Linux PAM nebo jiný mechanismus, který využívá systémový soubor shadow jako databázi pro autentizaci, mohou akceptovat nulové (NULL) heslo pro uživatele root."

Otestované verze Docker obrazů s Alpine zahrnovaly 3.3—3.9 včetně a také nejnovější release edge.

Autoři poskytli následující doporučení pro uživatele, kteří jsou vystaveni problému:

"Účet root by měl být výslovně vypnutý v Docker obrazech postavených na základě problematických verzí Alpine. Pravděpodobná exploatace zranitelnosti závisí na prostředí, protože její úspěch vyžaduje vystavenou službu nebo aplikaci, která používá Linux PAM nebo jiný podobný mechanismus."

Problém byl odstraněna v Alpine verzích 3.6.5, 3.7.3, 3.8.4, 3.9.2 a edge (20190228 snapshot), a majitelům obrazů náchylných k němu bylo doporučeno zakomentovat řádek s root v /etc/shadow nebo se ujistit o absenci balíčku linux-pam.

Pokračování z Docker Hub

Jerry Gamblin se rozhodl prozkoumat, "jak rozšířená může být praxe používání nulových hesel v kontejnerech". K tomu napsal malý Bash skript, jehož podstata je celkem jednoduchá:

  • přes curl dotaz na API v Docker Hub se žádá o seznam umístěných Docker obrazů;
  • přes jq se třídí podle pole popularity, a z získaných výsledků zůstává prvních tisíc;
  • pro každý z nich se provádí docker pull;
  • pro každý získaný obraz z Docker Hub se provádí docker run s přečtením prvního řádku z souboru /etc/shadow;
  • pokud hodnota řádku byla rovna root:::0:::::, název obrazu se uloží do samostatného souboru.

Co tedy vzniklo? V tomto souboru ukázalo se 194 řetězců s názvy populárních Docker obrazů s Linuxovými systémy, kde root uživatel nemá nastavené heslo:

„Mezi nejznámějšími jmény v tomto seznamu se objevily govuk/governmentpaas, hashicorp, microsoft, monsanto a mesosphere. A kylemanna/openvpn je nejoblíbenější kontejner v seznamu, jeho statistika zahrnuje více než 10 milionů stažení.“

Je však třeba připomenout, že samotný tento jev neznamená přímou zranitelnost bezpečnosti systémů, které je využívají: vše závisí také na tom, jak přesně jsou používány. (viz komentář k případu s Alpine výše). Nicméně „morálka tohoto příběhu“ jsme již viděli mnohokrát: viditelná jednoduchost často skrývá i druhou stranu, kterou je vždy nutné mít na paměti a jejíž následky je třeba zohlednit ve svých scénářích použití technologie.

P.S.

Přečtěte si také náš blog:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster