wyniki testowania narzędzi do identyfikacji niepoprawnych podatności oraz wykrywania problemów z bezpieczeństwem w obrazach izolowanych kontenerów Docker. Kontrola wykazała, że w 4 z 6 znanych skanerów obrazów Docker występowały krytyczne podatności, umożliwiające atak na sam skaner i wykonanie własnego kodu w systemie, w niektórych przypadkach (na przykład przy użyciu Snyk) z prawami roota.
Aby zaatakować, przestępca musi jedynie zainicjować sprawdzenie swojego Dockerfile lub manifest.json, zawierającego specjalnie przygotowane metadane, lub umieścić wewnątrz obrazu pliki Podfile i gradlew. Prototypy exploitów dla systemów
, ,
i
. Najlepsze zabezpieczenia pokazał pakiet , napisany pierwotnie z myślą o zapewnieniu bezpieczeństwa. Problemy również nie zostały wykryte w pakiecie . W rezultacie stwierdzono, że skanery kontenerów Docker należy uruchamiać w izolowanych środowiskach lub używać wyłącznie do sprawdzania własnych obrazów, a także zachować ostrożność przy podłączaniu takich narzędzi do zautomatyzowanych systemów ciągłej integracji.
W FOSSA, Snyk i WhiteSource podatność była związana z wywołaniem zewnętrznego menedżera pakietów w celu wykrywania zależności i pozwalała na organizację wykonania własnego kodu przez wskazanie komend touch i system w plikach i .
W Snyk i WhiteSource dodatkowo były , z organizacją uruchamiania komend systemowych podczas analizy Dockerfile (na przykład w Snyk poprzez Dockerfile można było zastąpić narzędzie /bin/ls, wywoływane przez skaner, a w WhiteSurce można było wprowadzić kod przez argumenty w formie „echo ‘;touch /tmp/hacked_whitesource_pip;=1.0’”).
W Anchore podatność użyciem narzędzia do pracy z obrazami docker. Eksploatacja sprowadzała się do dodania do pliku manifest.json parametrów typu ‘"os": "$(touch hacked_anchore)"’, które wprowadzane były przy wywołaniu skopeo bez odpowiedniego eskalowania (przycinane były tylko znaki „;&”, ale dopuszczono konstrukcję „$()”).
Ten sam autor przeprowadził badanie skuteczności wykrywania niepoprawnych podatności przez skanery bezpieczeństwa kontenerów docker oraz poziom fałszywych alarmów (, , ). Poniżej przedstawiono wyniki testów 73 obrazów, zawierających znane podatności, a także ocenę skuteczności wykrywania standardowych aplikacji w tych obrazach (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
Źródło: opennet.ru
