19% najlepszych obrazów platformy Docker nie ma hasła roota

W ostatnią sobotę, 18 maja, Jerry Gamblin z Kenna Security sprawdzony 1000 najpopularniejszych obrazów z Docker Hub na podstawie hasła root, którego używają. W 19% przypadków było ono puste.

19% najlepszych obrazów platformy Docker nie ma hasła roota

Tło z alpejskim

Powodem mini-badania był raport o lukach w zabezpieczeniach Talos, który ukazał się na początku tego miesiąca (TALOS-2019-0782), którego autorzy – dzięki odkryciu Petera Adkinsa z Cisco Umbrella – podali, że obrazy Dockera z popularną dystrybucją kontenerów Alpine nie posiadają hasła roota:

„Oficjalne wersje obrazów Dockera Alpine Linux (od wersji 3.3) zawierają hasło NULL dla użytkownika root. Luka ta wynika z regresji wprowadzonej w grudniu 2015 roku. Istotą tego jest to, że systemy wdrożone z problematycznymi wersjami Alpine Linux w kontenerze i korzystające z Linux PAM lub innego mechanizmu korzystającego z systemowego pliku cienia jako bazy danych uwierzytelniającej, mogą akceptować hasło NULL dla użytkownika root.

Wersje obrazów Docker z Alpine przetestowane pod kątem problemu to 3.3–3.9 włącznie, a także najnowsza wersja Edge.

Autorzy przedstawili następujące zalecenia dla użytkowników, których to dotyczy:

„Konto root musi zostać wyraźnie wyłączone w obrazach Docker zbudowanych z problematycznych wersji Alpine. Prawdopodobne wykorzystanie luki zależy od środowiska, ponieważ jego powodzenie wymaga przesłanej zewnętrznie usługi lub aplikacji korzystającej z Linux PAM lub innego podobnego mechanizmu.

Problem był wyłączony w wersjach Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 i Edge (migawka 20190228), a właściciele obrazów, których dotyczy problem, zostali poproszeni o skomentowanie linii z rootem w /etc/shadow lub upewnij się, że brakuje paczki linux-pam.

Kontynuacja z Docker Hub

Jerry Gamblin postanowił zainteresować się „jak powszechną może być praktyka używania haseł zerowych w kontenerach”. W tym celu napisał mały Skrypt Basha, którego istota jest bardzo prosta:

  • poprzez żądanie zwijania do interfejsu API w Docker Hub żądana jest lista hostowanych tam obrazów Docker;
  • przez jq jest sortowane według pól popularity, a z uzyskanych wyników pozostaje pierwszy tysiąc;
  • dla każdego z nich jest to spełnione docker pull;
  • dla każdego obrazu otrzymanego z Docker Hub docker run z odczytaniem pierwszej linii z pliku /etc/shadow;
  • jeśli wartość ciągu jest równa root:::0:::::, nazwa obrazu zostanie zapisana w osobnym pliku.

Co się stało? W ten plik Były 194 linie z nazwami popularnych obrazów Dockera z systemami Linux, w których użytkownik root nie ma ustawionego hasła:

„Wśród najbardziej znanych nazw na tej liście znalazły się govuk/governmentpaas, hashicorp, Microsoft, monsanto i mesosfera. A kylemanna/openvpn to najpopularniejszy kontener na liście, jego statystyki obejmują ponad 10 milionów pobrań.”

Warto jednak przypomnieć, że zjawisko to samo w sobie nie oznacza bezpośredniej luki w bezpieczeństwie systemów, które je wykorzystują: wszystko zależy od tego, jak dokładnie są one wykorzystywane (patrz komentarz do sprawy Alpine powyżej). Jednak wielokrotnie widzieliśmy „morał z tej historii”: pozorna prostota często ma wadę, o której zawsze należy pamiętać i której konsekwencje należy brać pod uwagę w scenariuszach zastosowań technologii.

PS

Przeczytaj także na naszym blogu:

Źródło: www.habr.com

Dodaj komentarz