резултати от тестов на инструментите за откриване на неизправени уязвимости и за идентифициране на проблеми със сигурността в образите на изолирани контейнери Docker. Проверката показа, че в 4 от 6 известни скенера за образи Docker съществуват критични уязвимости, позволяващи на атакуващия да атакува самия скенер и да изпълни свой код в системата, в отделни случаи (например, при използване на Snyk) с права root.
За да атакува, на злонамерения потребител му е достатъчно да инициира проверка на своя Dockerfile или manifest.json, включваща специално оформени метаданни, или да постави файлове Podfile и gradlew вътре в образа. Подготовката на прототипи на експлоити за системи
, ,
и
. Най-добрата сигурност показа пакет , първоначално написан с акцент върху осигуряването на сигурност. Проблеми не бяха открити в пакета . В крайна сметка бе направен изводът, че скенерите на Docker-контейнери следва да се стартират в изолирани среди или да се използват само за проверка на собствените образи, а също така да се проявява предпазливост при свързването на такива инструменти с автоматизирани системи за непрекъсната интеграция.
В FOSSA, Snyk и WhiteSource уязвимостта бe свързана с извикването на външен пакетен мениджър за определяне на зависимости и позволи извършването на свой код чрез указанията командите touch и system в файловете и .
В Snyk и WhiteSource допълнително бяха , с организиране на пускането на системни команди при анализа на Dockerfile (например, в Snyk чрез Dockerfile можеше да се замени утилитата /bin/ls, извиквана от скенера, а в WhiteSource можеше да се вмъкне код чрез аргументи във формата „echo ‘;touch /tmp/hacked_whitesource_pip;=1.0’).
В Anchore уязвимостта чрез използването на утилита за работа с docker-образи. Експлоатацията се състоеше в добавянето в файл manifest.json на параметри от вида '"os": "$(touch hacked_anchore)"', които се вмъкват при извикването на skopeo без необходимото екраниране (бяха премахнати само символите ';&, но конструкцията '$()' се допускаше).
Същият автор проведе изследване на ефективността на откриването на неизправени уязвимости от скенери за сигурност на docker-контейнери и нивото на фалшивите сработвания (, , ). По-долу са показани резултатите от тестването на 73 образа, съдържащи известни уязвимости, както и оценка на ефективността при откриване на типични приложения в образите (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
Източник: opennet.ru
