19% најпопуларнијих Доцкер слика нема роот лозинку
Прошле суботе, 18. маја, Јерри Гамблин из Кенна Сецурити проверено 1000 најпопуларнијих слика са Доцкер Хуб-а на основу роот лозинке коју користе. У 19% случајева био је празан.
Позадина са Алпине
Повод за мини истраживање био је Извештај о рањивости Талоса који се појавио раније овог месеца (ТАЛОС-2019-0782), чији су аутори - захваљујући открићу Петера Адкинса из Цисцо Умбрелла - известили да Доцкер слике са популарном дистрибуцијом контејнера Алпине немају роот лозинку:
„Званичне верзије Алпине Линук Доцкер слика (од в3.3) садрже НУЛЛ лозинку за роот корисника. Ова рањивост је резултат регресије уведене у децембру 2015. Суштина овога је да системи који су распоређени са проблематичним верзијама Алпине Линук-а у контејнеру и који користе Линук ПАМ или други механизам који користи системску датотеку сенке као базу података за аутентификацију могу прихватити НУЛЛ лозинку за роот корисника.
Верзије Доцкер слика са Алпине-ом које су тестиране за проблем биле су 3.3–3.9 укључујући, као и најновије издање едге.
Аутори су дали следећу препоруку за погођене кориснике:
„Основни налог мора бити експлицитно онемогућен у Доцкер сликама направљеним од проблематичних верзија Алпине-а. Вероватна експлоатација рањивости зависи од окружења, јер њен успех захтева екстерно прослеђену услугу или апликацију која користи Линук ПАМ или други сличан механизам."
Проблем је био елиминисан у Алпине верзијама 3.6.5, 3.7.3, 3.8.4, 3.9.2 и едге (20190228 снимак), а власници погођених слика су замољени да коментаришу линију са роот у /etc/shadow или проверите да ли пакет недостаје linux-pam.
Настављено са Доцкер Хуб-ом
Џери Гамблин је одлучио да буде радознао „колико је уобичајена пракса коришћења нултих лозинки у контејнерима“. У ту сврху написао је малу Басх скрипта, чија је суштина врло једноставна:
преко цурл захтева за АПИ у Доцкер Хуб-у, тражи се листа Доцкер слика које се тамо налазе;
преко јк се сортира по пољу popularity, а од добијених резултата остаје прва хиљада;
за сваког од њих је испуњено docker pull;
за сваку слику примљену од Доцкер Хуб-а се извршава docker run са читањем првог реда из датотеке /etc/shadow;
ако је вредност низа једнака root:::0:::::, назив слике се чува у посебној датотеци.
Шта се десило? ИН Овај фајл Било је 194 реда са именима популарних Доцкер слика са Линук системима, у којима роот корисник нема постављену лозинку:
„Међу најпознатијим именима на овој листи били су говук/говернментпаас, хасхицорп, мицрософт, монсанто и месоспхере. А килеманна/опенвпн је најпопуларнији контејнер на листи, његова статистика има више од 10 милиона повлачења.”
Међутим, вреди подсетити да овај феномен сам по себи не значи директну рањивост у безбедности система који их користе: све зависи од тога како се тачно користе (погледајте коментар из случаја Алпине изнад). Међутим, видели смо „морал приче“ много пута: привидна једноставност често има негативну страну, коју увек морате запамтити и чије последице треба узети у обзир у вашим сценаријима примене технологије.