Могут ли контейнерные инструменты работать на локальном компьютере? - PullRequest
0 голосов
/ 26 сентября 2019

Я провожу тестирование безопасности программ и приложений.Часто, когда я хочу запустить инструмент, мне нужно добавить библиотеки и другие зависимости в тестируемую систему, чтобы инструмент работал правильно.Кроме того, в тестовой среде нет доступа к Интернету, что затрудняет установку этих зависимостей.

Я думал о контейнеризации нескольких инструментов, чтобы я мог поместить их в системы, которые я тестирую, и они будут иметь все свои зависимости.Я рассматриваю возможность сделать это в Docker, поэтому всякий раз, когда вы видите ссылку на контейнер, это подразумевает, что это контейнер Docker.

Некоторые из инструментов, которые я хотел бы использовать, это nmap, strace, wireshark и другие длямониторинг сетевого трафика, процессов и памяти.

Мои вопросы:

  1. Могу ли я запускать эти инструменты «локально», или потребуется сетевое подключение, как если бы оно исходило отдругая машина?
  2. Нужно ли что-либо устанавливать в тестовую систему для правильной работы контейнера?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Docker позволяет подключаться к устройствам на самом хосте , используя флаг --privileged .

Кроме того, вы можете добавить флаг --network=host, который означает, что ваш сетевой стек док-контейнера больше не изолирован от хоста .

с помощью указанных выше флагов позволит вамЗапустите ваши инструменты в Docker без дополнительных требований на хосте (кроме среды исполнения Docker + ваш контейнер Docker).

Однако это означает, что вам нужно загрузить свой контейнер Docker в хост.Обычно загрузка Docker-контейнера требует подключения к сети.Но то, что вы можете сделать, это tar-образ докера с docker save и импортировать этот tar с docker import

0 голосов
/ 26 сентября 2019

Docker - это, прежде всего, система изоляции, которая скрывает детали системы хоста от среды контейнера.Всем описанным вами инструментам необходим низкоуровневый доступ к сети хоста и пространству процессов: вам активно не нужна изоляция, которую обеспечивает здесь Docker.

Чтобы привести два конкретных примера: без специальной настройки вы можете't tcpdump сетевой интерфейс хоста, поскольку у контейнера есть собственный изолированный сетевой стек;и вы не можете strace хост-процессы, потому что контейнер имеет свое собственное пространство идентификаторов процессов и ограниченные возможности Linux, которые его запрещают.

(С точки зрения безопасности, также учитывайте, что любой, кто может запустить любой *Команда 1007 * может легко рутировать хост, и существует довольно распространенная неверная конфигурация для публикации этой возможности в сети. Вы предпочитаете не устанавливать Docker, если вы заинтересованы в защите существующей системы.)

Я бы, вероятно, поместил этот набор инструментов на USB-накопитель (если это разрешено в вашей среде) и запускал их прямо оттуда.Файл tar инструментов также будет работать, если его легче перенести.Либо встраивание их в статические двоичные файлы, либо предоставление среды chroot сделает их независимыми от того, что установлено в среде хоста, но также не помешает вам наблюдать за всеми вещами, которые вы пытаетесь наблюдать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...