Minulou sobotu, 18. května, Jerry Gamblin z Kenna Security 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é.

Pozadí s Alpine
Důvodem pro provedené mini-školení byl dříve zveřejněný Talos Vulnerability Report (), 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 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ý , 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 runs 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 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
