Docker Forensics
Modyfikacja kontenera
Istnieją podejrzenia, że pewien kontener Docker został skompromitowany:
Możesz łatwo znaleźć modyfikacje dokonane na tym kontenerze w odniesieniu do obrazu za pomocą:
W poprzedniej komendzie C oznacza Zmienione, a A, Dodane.
Jeśli okaże się, że jakiś interesujący plik, na przykład /etc/shadow
, został zmodyfikowany, możesz go pobrać z kontenera, aby sprawdzić, czy nie ma w nim działalności złośliwej za pomocą:
Możesz również porównać go z oryginalnym uruchamiając nowy kontener i wydobywając plik z niego:
Jeśli okaże się, że został dodany podejrzany plik, możesz uzyskać dostęp do kontenera i go sprawdzić:
Modyfikacje obrazów
Kiedy otrzymasz wyeksportowany obraz dockera (prawdopodobnie w formacie .tar
), możesz użyć container-diff, aby wyodrębnić podsumowanie modyfikacji:
Następnie możesz rozpakować obraz i uzyskać dostęp do blobów, aby wyszukać podejrzane pliki, które mogłeś znaleźć w historii zmian:
Podstawowa analiza
Możesz uzyskać podstawowe informacje z obrazu uruchomionego:
Możesz również uzyskać podsumowanie historii zmian za pomocą:
Możesz również wygenerować dockerfile z obrazu za pomocą:
Zanurz się
Aby znaleźć dodane/zmodyfikowane pliki w obrazach dockerowych, można również skorzystać z narzędzia dive (pobierz je z wydań):
To pozwala Ci przeglądać różne bloki obrazów Docker i sprawdzać, które pliki zostały zmodyfikowane/dodane. Czerwony oznacza dodany, a żółty oznacza zmodyfikowany. Użyj tabulacji, aby przejść do innej widoku, a spacji, aby zwijać/otwierać foldery.
Za pomocą tego nie będziesz mógł uzyskać dostępu do zawartości różnych etapów obrazu. Aby to zrobić, będziesz musiał rozpakować każdą warstwę i uzyskać do niej dostęp. Możesz rozpakować wszystkie warstwy obrazu z katalogu, w którym obraz został rozpakowany, wykonując:
Dane uwierzytelniające z pamięci
Zauważ, że gdy uruchamiasz kontener Docker wewnątrz hosta możesz zobaczyć procesy uruchomione na kontenerze z hosta po prostu wykonując ps -ef
Dlatego (jako root) możesz wydobyć pamięć procesów z hosta i wyszukać dane uwierzytelniające tak jak w poniższym przykładzie.
Last updated