19% от най-добрите изображения на Docker нямат root парола

Миналата събота, 18 май, Джери Гамблин от Kenna Security проверено 1000 от най-популярните изображения от Docker Hub въз основа на root паролата, която използват. В 19% от случаите е било празно.

19% от най-добрите изображения на Docker нямат root парола

Фон с алпийски

Причината за мини-изследването беше докладът за уязвимостта на Talos, който се появи по-рано този месец (ТАЛОС-2019-0782), чиито автори - благодарение на откритието на Питър Адкинс от Cisco Umbrella - съобщиха, че изображенията на Docker с популярната дистрибуция на контейнери Alpine нямат root парола:

„Официалните версии на Alpine Linux Docker изображения (от v3.3) съдържат NULL парола за root потребителя. Тази уязвимост е резултат от регресия, въведена през декември 2015 г. Същността на това е, че системите, внедрени с проблемни версии на Alpine Linux в контейнер и използващи Linux PAM или друг механизъм, който използва системния shadow файл като база данни за удостоверяване, могат да приемат NULL парола за root потребителя.

Версиите на Docker изображения с Alpine, тествани за проблема, бяха 3.3–3.9 включително, както и последната версия на edge.

Авторите направиха следната препоръка за засегнатите потребители:

„Руут акаунтът трябва да бъде изрично деактивиран в Docker изображения, създадени от проблемни версии на Alpine. Вероятното използване на уязвимостта зависи от средата, тъй като нейният успех изисква външно препратена услуга или приложение, използващо Linux PAM или друг подобен механизъм."

Проблемът беше елиминиран във версии на Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 и edge (моментна снимка 20190228) и собствениците на засегнатите изображения бяха помолени да коментират реда с root в /etc/shadow или се уверете, че пакетът липсва linux-pam.

Продължава с Docker Hub

Джери Гамблин реши да бъде любопитен за това „колко обичайна може да бъде практиката за използване на нулеви пароли в контейнери“. За целта той написа малък bash скрипт, чиято същност е много проста:

  • чрез curl заявка към API в Docker Hub се изисква списък с Docker изображения, хоствани там;
  • чрез jq се сортира по поле popularity, а от получените резултати остава първата хиляда;
  • за всеки от тях е изпълнено docker pull;
  • за всяко изображение, получено от Docker Hub, се изпълнява docker run с четене на първия ред от файла /etc/shadow;
  • ако стойността на низа е равна на root:::0:::::, името на изображението се записва в отделен файл.

Какво стана? IN този файл Имаше 194 реда с имена на популярни Docker изображения с Linux системи, в които root потребителят няма зададена парола:

„Сред най-известните имена в този списък бяха govuk/governmentpaas, hashicorp, microsoft, monsanto и mesosphere. А kylemanna/openvpn е най-популярният контейнер в списъка, статистиката му възлиза на повече от 10 милиона тегления.“

Струва си да припомним обаче, че това явление само по себе си не означава пряка уязвимост в сигурността на системите, които ги използват: всичко зависи от това как точно се използват (вижте коментара от случая Alpine по-горе). Виждали сме обаче „морала на историята“ много пъти: привидната простота често има обратна страна, която винаги трябва да се помни и последствията от която да се вземат предвид в сценариите за технологично приложение.

PS

Прочетете също в нашия блог:

Източник: www.habr.com

Добавяне на нов коментар