Czy docker jest bezpieczny?

Czy docker jest bezpieczny?
M9
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:18
0

Hej,
od jakiegoś czasu zajmuje się dockerem i chciałbym się dowiedzieć czy tak właściwie jest on bezpieczny.
Chodzi mi tu głównie o wolumeny bo załóżmy że mam serwer który chciałbym udostępnić przez ldap zgodnie z wszystkim regułami które są w firmie.
Ale skoro zainstalowany jest docker to tak naprawdę nic mi to nie daje z wyjątkiem ograniczenia grupy użytkowników.
Np zwykły user nie ma dostępu do /etc/docker ale właściwie wystarczy uruchomić byle jaki kontener z wolemenem np /etc/docker:/home/test i juz mamy dostęp ( po wejściu do kontenera)
nawet lepiej możemy dać sobie pełny dostęp :/
Chodzi mi tu bardziej o wewnętrzne bezpieczeństwo czy jedynym rozwiązaniem na ten problem są serwery bez żadnych danych?

edytowany 2x, ostatnio: Michal91
AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około 2 miesiące
1

No ale przecież jak wejdziesz do kontenera, to /etc/docker będzie wskazywał na /home/test na hoście, a nie na /etc/docker na hoście, więc w czym problem?

M9
ojej masz rację chodziło mi o sytuację /etc/docker:/home/test już robię edycję
AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około 2 miesiące
0

No to jak dasz kontenerowi dostęp do /etc/docker, to czemu Cię dziwi, że on do tego będzie miał dostęp? Problem byłby, jakby kontener sam mógł sobie wziąć dostęp do /etc/docker, ale jeżeli Ty to musisz zrobić, to wszystko okej.

M9
no bo załóżmy że w firmie pracuje 100 osób i chcemy żeby do naszego hosta miało dostęp np 40 osób I teraz właściwie niezależnie od LDAP mając dostęp do dockera te 40 osób może mieć dostęp do całego hosta wystarczy że sobie zmapują wolumen. A powiedzmy że z pewnych powodów byśmy tego nie chcieli.
AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około 2 miesiące
0

No jak dla mnie próbujesz rozwiązać zły problem. Dlaczego te 40 osób ma mieć możliwość zmapowania /etc/docker do kontenera? To nie jest problem w tym, że docker to może odczytać, problem jest w tym, że ktoś odpalił dockera z tym mapowaniem i to trzeba zablokować.

M9
A czy to nie jest tak że się tego nie da zablokować ? W sensie sam docker musi mieć dostęp do root-a żeby wywoływać polecenia z kernela i cgrup bo inaczej nie miałby prawa działać
AF
Naucz się wreszcie odpowiadać w postach.
AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około 2 miesiące
0

Kontener może sobie mieć dostęp do wszystkiego, ale to użytkownik musi ten kontener odpalić z odpowiednim mapowaniem, więc jeżeli użytkownik odpalający dockera ma roota, to raczej z tym trzeba walczyć, a nie z tym, że root może wszystko. Możesz odpalić kontener dockera bez uprawnień roota? Pytam, bo nie wiem, ja zawsze odpalałem kontenery z roota i nie wiem, czy da się bez.

edytowany 1x, ostatnio: Afish
M9
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:18
0
Afish napisał(a):

Kontener może sobie mieć dostęp do wszystkiego, ale to użytkownik musi ten kontener odpalić z odpowiednim mapowaniem, więc jeżeli użytkownik odpalający dockera ma roota, to raczej z tym trzeba walczyć, a nie z tym, że root może wszystko. Możesz odpalić kontener dockera bez uprawnień roota? Pytam, bo nie wiem, ja zawsze odpalałem kontenery z roota i nie wiem, czy da się bez.

No przecież napisałem w pierwszym poście zwykły użytkownik zgodnie z polityką firmy (LDAP) czyli nie admin.

To jeszcze raz na czym polega problem
Powiedzmy że jestem zwykłym użytkownikiem i jest też administrator odpowiednio user, admin

Scenariusz:
Na hoście jest zainstalowany docker
admin i user mogą używać dockera (clienta i servera)
user nie ma dostępu do zasobów /etc/docker
admin ma dostęp do /etc/docker
admin jest przekonany że nikt nie ma dostępu do /etc/docker i nie chce żeby ktoś miał tam dostęp bo tak i już
user za pośrednictwem dockera może sobie zwiększyć uprawienia za pomocą wolumenów uruchamiając dowolny kontener z argumentem -v /etc/docker:/home/test
a następnie docker exec ... i teraz kiedy jesteśmy w konsoli kontenera wchodzimy sobie do zasobu /home/test i mamy full dostęp do hosta czyli /etc/docker i w zasadzie możemy robić wszystko co nam się podoba

Czy takie coś jest bezpiecznie?
Bo np jak na hoście są jakieś istotne pliki to można je bez problemu sobie z nimi zrobić co się chce (oczywiście to się tyczy tylko pracowników).

AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:około 2 miesiące
1

No to nie, to nie jest bezpieczne. Jeżeli możesz odpalić dockera jako użytkownik, to po prostu ogranicz selinuksem dostęp do wybranych katalogów i po sprawie. https://serverfault.com/questions/806811/how-to-disallow-the-docker-daemon-to-mount-hosts-root-file-system-into-the-cont

M9
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:18
0
Afish napisał(a):

No to nie, to nie jest bezpieczne. Jeżeli możesz odpalić dockera jako użytkownik, to po prostu ogranicz selinuksem dostęp do wybranych katalogów i po sprawie. https://serverfault.com/questions/806811/how-to-disallow-the-docker-daemon-to-mount-hosts-root-file-system-into-the-cont

Świetnie dokładnie o coś mi takiego chodziło. Dzięki!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.