Новый вектор атаки позволяет злоумышленникам использовать Docker API, чтобы спрятать вредоносное ПО на атакованной системе и даже удаленное выполнить вредоносный код.

Proof-of-concept данной атаки был разработан сотрудниками Aqua Security, а впервые техника была продемонстрирована Сэжи Дулче (Sagie Dulce) – старшим исследователем компании – на проходящей сейчас в Лас-Вегасе конференции Black Hat.

Атака работает на любом установленном Docker, который предоставляет свой API через TCP. До недавнего времени это было настройкой по умолчанию для компьютеров с Docker для Windows – приложения, которое используется разработчиками, чтобы создавать и тестировать контейнерные приложения.

«Эндшпиль атаки – это постоянное удаленное выполнение вредоносного кода в сети компании», — сказал Дулче, — «При этом практически невозможно обнаружить вредоносную активность на хост-машине средствами установленного на нем защитного решения».

Атака проходит в несколько этапов. На первом использующего Docker для Windows разработчика заманивают на веб-страницу злоумышленников, где размещен специально подготовленный JavaScript. Помимо прочего, этот скрипт может обходить правило ограничения домена, использующееся в современных браузерах для защиты данных.

По словам Дулче, только ограниченный набор HTTP-методов, включая GET, HEAD и POST, может использоваться в рамках этого правила. Однако исследователь не только использовал команду API, которая не нарушила правило, но также загрузила на хост-машину контейнер Docker, который использовал репозиторий Git в качестве C&C.

«Возможности этого контейнера ограничены», — комментирует Дулче, — «Что вам действительно нужно, это доступ ко всему Docker API, чтобы получить возможность запускать любой контейнер по вашему выбору как привилегированный с расширенным доступом к хосту или виртуальной машине.

Чтобы этого добиться, исследователи Aqua Security создали технику под названием «Host Rebinding Attack». Она похожа на DNS Rebinding Attack, в ходе которой злоумышленник компрометирует DNS, чтобы обмануть браузер и не подпасть под правило ограничения домена. Техника Host Rebinding Attack направлена на разработанный Microsoft протокол разрешения доменный имен и достигает аналогичной цели, но на этот раз через виртуальный интерфейс, поэтому атаку внутри сети нельзя обнаружить. В результате, как пояснил Сэжи Дулче, контейнер запускается внутри виртуальной машины жертвы, выполняя приготовленный злоумышленником произвольный код.

На следующем шаге атаки необходимо создать то, что Дулче назвал «теневой контейнер». Он позволяет вредоносному контейнеру оставаться внутри виртуальной машины после ее перезагрузки. «Если жертва перезапустит хост-машину или Docker для Windows, атакующий потеряет контроль. Чтобы избежать этих проблем, мы предлагаем технику, которую назвали «атакой на теневой контейнер». С ее помощью мы смогли добиться постоянного и незаметного присутствия в системе».

В рамках атаки злоумышленник пишет скрипт отключения контейнера, который сохраняет состояние атаки. По словам Дулче, в результате получается своеобразный пинг-понг между сохранением состояния атаки в теневом контейнере и ее восстановлением в виртуальную машину. Когда перезапускается Docker, сам по себе или в результате перезагрузки хост-машины, запускается контейнер злоумышленника, в котором сохранен скрипт атаки. В результате злоумышленник обеспечивает себе постоянное присутствие в системе, может исследовать сетевое окружение и загружать вредоносное ПО

Дулче и его коллега Майкл Черны (Michael Cherny), глава исследовательского отдела Aqua Security, добавили, что уведомили Docker об обнаруженном векторе атаки. Компания подтвердила наличие проблемы и сообщила, что она связана с предоставлением удаленного доступа к демону Docker через TCP/HTTP. После этого компания изменила конфигурацию «по умолчанию» для всех новых версий своего ПО для Windows.

Категории: Главное, Уязвимости, Хакеры