Уязвимости в скенерите за сигурност на образи на Docker-контейнери

Публикувани резултати от тестов на инструментите за откриване на неизправени уязвимости и за идентифициране на проблеми със сигурността в образите на изолирани контейнери Docker. Проверката показа, че в 4 от 6 известни скенера за образи Docker съществуват критични уязвимости, позволяващи на атакуващия да атакува самия скенер и да изпълни свой код в системата, в отделни случаи (например, при използване на Snyk) с права root.

За да атакува, на злонамерения потребител му е достатъчно да инициира проверка на своя Dockerfile или manifest.json, включваща специално оформени метаданни, или да постави файлове Podfile и gradlew вътре в образа. Подготовката на прототипи на експлоити бе успешна за системи
WhiteSource, Snyk,
Fossa и
Anchore. Най-добрата сигурност показа пакет Clair, първоначално написан с акцент върху осигуряването на сигурност. Проблеми не бяха открити в пакета Trivy. В крайна сметка бе направен изводът, че скенерите на Docker-контейнери следва да се стартират в изолирани среди или да се използват само за проверка на собствените образи, а също така да се проявява предпазливост при свързването на такива инструменти с автоматизирани системи за непрекъсната интеграция.

В FOSSA, Snyk и WhiteSource уязвимостта бe свързана с извикването на външен пакетен мениджър за определяне на зависимости и позволи извършването на свой код чрез указанията командите touch и system в файловете gradlew и Podfile.

В Snyk и WhiteSource допълнително бяха намерени уязвимост, свързани с организиране на пускането на системни команди при анализа на Dockerfile (например, в Snyk чрез Dockerfile можеше да се замени утилитата /bin/ls, извиквана от скенера, а в WhiteSource можеше да се вмъкне код чрез аргументи във формата „echo ‘;touch /tmp/hacked_whitesource_pip;=1.0’).

В Anchore уязвимостта бе причинена чрез използването на утилита skopeo за работа с docker-образи. Експлоатацията се състоеше в добавянето в файл manifest.json на параметри от вида '"os": "$(touch hacked_anchore)"', които се вмъкват при извикването на skopeo без необходимото екраниране (бяха премахнати само символите ';&, но конструкцията '$()' се допускаше).

Същият автор проведе изследване на ефективността на откриването на неизправени уязвимости от скенери за сигурност на docker-контейнери и нивото на фалшивите сработвания (част 1, част 2, част 3). По-долу са показани резултатите от тестването на 73 образа, съдържащи известни уязвимости, както и оценка на ефективността при откриване на типични приложения в образите (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).

Уязвимости в скенерите за сигурност на образи на Docker-контейнери

Уязвимости в скенерите за сигурност на образи на Docker-контейнери

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster