О преимуществах и недостатках контейнеров
10 декабря 2019
Мы не раз писали о технологии Docker, но поскольку это сложная для восприятия информация, не все понимают, для чего эта технология нужна. Давайте сегодня попробуем разобраться в сущности этой технологии с помощью образного сравнения.
Предположим, вам нужно перевезти по морю некий груз. Для перевозки вы можете купить судно – крейсер или линкор, и нанять собственную команду, которая будет им управлять. Его броня полностью изолирует ваш груз от вредоносных воздействий. А вооруженный знаниями надежный экипаж не допустит на борт ничего лишнего. Конечно, это дорогая услуга. И поскольку в порту может поместиться не так много кораблей, а грузов много, то на вход в порт выстраивается очередь или нужно его расширять.
Внутри такого корабля действует наша юрисдикция – какие законы установим, такие и действуют. Так и внутри виртуальной машины может быть развернута практически любая операционная система.
В общем, виртуальная машина – это полная изоляция от иных виртуальных машин и самой операционной системы, на которых все они запущены, непробиваемость (количество вредоносного ПО, способного перемещаться между виртуальными машинами, достаточно мало), но большая ресурсоемкость – и по месту на диске, и по необходимости выделения оперативной памяти.
Представим другой вариант – контейнеровоз. Все грузы от разных заказчиков находятся на одном корабле, все помещаются в один порт. Но если пираты взобрались на борт корабля, то контейнеры вскрываются на раз – никакой изоляции извне у них нет.
В данной аналогии море – это операционная система, она никак не ограничивает запуск приложений (будь то в виртуальной машине, контейнере Docker или непосредственно в самой операционной системе), а порт – это ресурсы компьютера, они всегда ограничены.
Виртуальная машина полностью (ну, почти) изолирует запускаемое приложение от той операционной системы, на которой она запущена. Она использует возможности этой ОС, чтобы запуститься, но запускает она не непосредственно нужное пользователю приложение, а еще одну операционную систему. И приложение запускается в уже этой операционной системе. Это дает огромные возможности, но и ресурсов требует немало – в этой ОС работает (и потребляет ресурсы) множество ненужных пользователю сервисов. Как же сделать так, чтобы нужное приложение для запуска изолировалось от основной ОС только с нужными для ее работы файлами/сервисами/данными – но ни с какими иными? Это и есть контейнер.
Еще одна аналогия контейнера. Положим, мы решили развозить грузы. Покупаем велосипед. Получаем заказ, клонируем велосипед, красим его в цвета заказчика и тюнингуем его под требования заказчика, добавляя обвес. Запускаем на выполнение заказ. Заказ выполнен – транспортное средство растворилось в воздухе. При этом условие: изнутри транспортного средства заказчик не имеет выхода наружу, для перемещения транспортное средство использует внешние ресурсы, разделяя их с другими транспортными средствами, и снаружи есть доступ ко всем файлам контейнера (но напомним, не наоборот – проходимость односторонняя!).
Это дает нам минимальные требования по ресурсам и отсутствие возможности для запущенного в контейнере приложения что-то испортить в основной системе. Но при этом он полностью уязвим для атак извне, чем и пользуются злоумышленники.
Некая группировка сканирует сеть Интернет на наличие серверов, на которых возможен запуск Docker. Обнаружив такой, злоумышленники создают контейнер на основе Alpine Linux и запускают в нем майнер криптовалюты Monero.
Интересно, что в данном случае злоумышленники атакуют не сами контейнеры – они их создают на тех системах, где имеется возможность запуска контейнеров.
Антивирусная правДА! рекомендует
Windows у вас или Линукс:
- закройте все ненужные порты для доступа снаружи;
- проверьте систему на неустановленные обновления;
- не давайте возможности пользователям работать с повышенными правами;
- используйте антивирус, он даст вам возможность проверить все контейнеры на наличие вредоносных программ. Нет необходимости устанавливать антивирус в сам контейнер. Как мы помним, снаружи контейнеры могут быть проверены на «запрещенный груз» – антивирус это сделает.
Нам важно ваше мнение
Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.
Комментарии пользователей
Альфа
16:58:52 2020-01-13
Володя
23:03:09 2020-01-06
Sasha50
14:01:39 2019-12-12
Шалтай Александр Болтай
22:43:21 2019-12-10
razgen
22:40:07 2019-12-10
Toma
22:32:24 2019-12-10
Геральт
22:25:09 2019-12-10
Masha
21:20:43 2019-12-10
Денисенко Павел Андреевич
21:17:08 2019-12-10
Советы в разделе "Dr.Web рекомендует" написаны для Windows и Линукс, а для macOS эти советы тоже подойдут?
orw_mikle
20:36:02 2019-12-10
matt1954
19:37:24 2019-12-10
anatol
18:47:05 2019-12-10
L1t1um
18:39:55 2019-12-10
admin_29
16:37:01 2019-12-10
Татьяна
16:15:42 2019-12-10
DrKV
15:18:54 2019-12-10
EvgenyZ
15:13:52 2019-12-10
Любитель пляжного футбола
14:58:46 2019-12-10
Dmur
13:45:24 2019-12-10
vinnetou
13:20:31 2019-12-10
gebrakk
12:54:22 2019-12-10
Zserg
12:37:12 2019-12-10
ClassiC
12:20:15 2019-12-10
Сам я разбираюсь поверхностно во всём - вся надежда на вас .....
I46
11:46:24 2019-12-10
Lenba
11:32:58 2019-12-10
Sergey
10:58:50 2019-12-10
Alexander
10:49:12 2019-12-10
Korney
10:39:10 2019-12-10
sgolden
10:11:04 2019-12-10
Xamanaptr
10:04:25 2019-12-10
Vlad X
09:02:34 2019-12-10
приложения правильно работать.Может лучше интернет выключить.
Стоит Dr.Web,на него надежда.
vkor
08:58:06 2019-12-10
marisha-san
08:50:21 2019-12-10
Петрашкуль
08:37:36 2019-12-10
tigra
08:30:44 2019-12-10
Неуёмный Обыватель
08:23:45 2019-12-10
maestro431
07:51:02 2019-12-10
DoctorW
07:32:03 2019-12-10
ka_s
07:22:19 2019-12-10
Пaвeл
07:13:02 2019-12-10
cruise
07:12:05 2019-12-10
Lex
06:47:43 2019-12-10
Tanya086
06:28:01 2019-12-10
Sergey
06:12:13 2019-12-10
Саня
05:42:23 2019-12-10
achemolganskiy
04:58:49 2019-12-10
Morpheus
04:52:37 2019-12-10