‫Co sądzisz o obrazach pozbawionych zniekształceń?
‫Czy to dobry kompromis między rozmiarem a bezpieczeństwem?
‫Powiedziałbym, że jeśli potrafisz robić obrazy
‫pozbawione zniekształceń, a to, co rozumiemy przez
‫to, zmienia się.
‫Wydaje mi się, że obrazy pozbawione
‫zniekształceń są skomplikowane. Wydaje mi się, że powiedzenie rysunków
‫może być łatwiejszym sposobem na powiedzenie tego. Ale słusznie jest powiedzieć obraz
‫pozbawiony zniekształceń, co oznacza, że nie ma podstawowego systemu
‫pakietów. Nie ma apt. Nie ma mniam.
‫Nie ma tych wszystkich różnych poleceń, które,
‫jak zakładasz, znajdują się w kontenerze, jeśli używasz
‫jednego z oficjalnych obrazów. Chodzi o to, że obrazy
‫pozbawione zniekształceń nie są bardzo częste z dwóch powodów.
‫Po pierwsze, większość programów
‫potrzebuje wszystkich tych rzeczy, aby działać.
‫Potrzebują zależności pakietów apt.
‫Potrzebują własnych
‫otwartych bibliotek SSL. Potrzebują różnego rodzaju rzeczy oprócz programu, który
‫tam jest, prawda.
‫To dziś większość aplikacji.
‫Golang, C, niektóre inne języki mogą budować pojedyncze
‫pliki binarne, które w zasadzie mają wszystko,
‫czego potrzebują do uruchomienia, inne
‫niż jądro. Te rzeczy
‫są technicznie w stanie usunąć wszystko poniżej.
‫Wszystkie warstwy i twój obraz mogą zniknąć.
‫Nie widzę ich jeszcze dużo na wolności, ponieważ nie
‫współpracuję z Google, Netflix i ogromnymi zespołami ludzi,
‫którzy są w tym bardzo profesjonalni.
‫Dwa powody tego są następujące: po pierwsze, musisz
‫mieć język, który go obsługuje, i musisz mieć zespół,
‫który rozumie, jak poprawnie je zbudować.
‫Następnie naprawdę musisz być dobry w rozwiązywaniu problemów i działaniu
‫kontenerów w przestrzeniach nazw.
‫Ponieważ w minutach, w których obraz bez destrukcji działa w
‫kontenerze, a Ty masz problem, nie możesz nawet na
‫niego powalić.
‫Nie ma muszli. Nie możesz się w to wciągnąć.
‫Nie możesz na to patrzeć. Tak więc teraz
‫twoje oprzyrządowanie jest ograniczone i musisz zacząć szukać innych
‫sposobów połączenia swojego oprzyrządowania z tymi pojemnikami.
‫To istnieje. Istnieją takie rzeczy, które
‫mogą to dla ciebie zrobić, ale w dużej mierze zależy to od twoich umiejętności
‫pod względem sposobu radzenia sobie z przestrzeniami nazw.
‫Jak wskoczyć jako wózek boczny do działającego
‫kontenera w jego przestrzeni nazw z wiersza poleceń bez
‫korzystania z Dockera?
‫Tego rodzaju problemy narastają, gdy masz do czynienia
‫z rozwiązywaniem problemów lub monitorowaniem i konserwacją
‫systemu, gdy masz obrazy pozbawione zniekształceń.
‫Dla wszystkich, z którymi pracuję, zaczynając od
‫kontenerów, ich pierwszych projektów w
‫kontenerach, nie wspominam o tych rzeczach, ponieważ rozmiar jest tylko rozmiarem.
‫Zawsze możesz dodać więcej miejsca na dysku do serwera, prawda.
‫Nie ma powodu, aby cały zespół biegał w kółko, ucząc
‫się wszelkiego rodzaju nowych narzędzi i innych rzeczy, abyś mógł mieć
‫mniej miejsca na dysku na serwerze.
‫Osobiście nie dbam o rozmiar.
‫Bezpieczeństwo to kwestia teoretyczna.
‫Teoretycznie wszystkie te rzeczy usuwane z
‫obrazu kontenera mogą zwiększyć
‫jego bezpieczeństwo. Porozmawiajmy jednak na wolności.
‫Ile możliwości ma ktoś, aby zadzierać z
‫innymi narzędziami w twoim kontenerze poza
‫twoją aplikacją? Powiedzmy, że cURL ma w sobie lukę,
‫ale twoja aplikacja nie używa cURL.
‫Tak się składa, że jest na obrazie.
‫Jak ktoś może uzyskać do tego dostęp, prawda?
‫Będą musieli przebić się przez twoją aplikację.
‫Twoja aplikacja musi mieć exploita.
‫Następnie teoretycznie mogliby uruchomić polecenie cURL w
‫kontenerze, prawda. Więc tak
‫naprawdę chodzi o te pozbawione destrukcji rzeczy -
‫teoretyczne bonusy bezpieczeństwa, jeśli nie zawierają innych aplikacji.
‫Rzeczywistość jest jednak taka, że po zbudowaniu
‫statycznego pliku binarnego dołączasz już wiele bibliotek, które
‫mogą być podatne na ataki, takie jak
‫otwarte SSL, które jest powszechnym sposobem łączenia aplikacji z
‫zabezpieczeniami SSL.
‫Cóż, jeśli ma to lukę i statycznie wbudujesz ją
‫w swoją aplikację, nadal istnieje.
‫To po prostu nie jest osobny plik w kontenerze.
‫Jest w twojej aplikacji w jednym pliku binarnym.
‫W rzeczywistości utrudnia to skanowanie bezpieczeństwa,
‫ponieważ teraz każdy skaner, którego znam, nie złapie
‫tego otwartego pliku binarnego SSL, jeśli
‫jest wbudowany. Wiele z tych rzeczy jest teoretycznych.
‫Nie popycham zespołów do
‫teoretycznych zabezpieczeń. Patrzę bardziej na to,
‫co dzieje się na wolności, prawda.
‫Demony Dockerów zostają ujawnione.
‫Kubernetes nie ma odpowiedniego uwierzytelnienia, więc
‫zostaje ujawniony. To są prawdziwe
‫problemy, które widzę, to, na czym koncentrują się
‫rzeczy, o których ciągle słyszymy w wiadomościach,
‫że ludzie są atakowani, prawda. Tego rodzaju rzeczy z
‫teoretycznym bezpieczeństwem usuwania plików z obrazów.
‫To tylko więcej w dziedzinie teoretycznej.
‫To nie jest powód, aby tego nie robić.
‫Podobnie jak ta lista, wszystko na tej
‫liście, zrobiłbym pierwszy, zanim zacznę iść tą
‫trudną drogą.
‫Uważam, że obrazy pozbawione zniekształceń są stosunkowo trudne.
‫Chyba że jesteś już programistą Go, a już cały twój
‫zespół jest naprawdę dobry w przestrzeniach nazw, a także w
‫komendach Docker i tym podobnych.
‫Nie mam na myśli zwykłych poleceń Dockera.
‫Mam na myśli skomplikowane rzeczy, które pomagają na przykład w rozwiązywaniu problemów
‫z pojemnikami, które nie mają w sobie powłok.
‫To świetne pytanie.
‫Cały czas się pojawia.
‫Wszyscy pytają mnie o to podczas dyskusji na temat bezpieczeństwa,
‫ponieważ jest to popularny temat. Ale nie ma go nawet w
‫mojej pierwszej dziesiątce.
‫Mam nadzieję że to pomogło.