SSL/TLS

###Сертификаты X.509 Термин X.509 представляет собой название стандарта Международного союза электросвязи (International Telecommunication Union, ITU), в котором описаны эти сертификаты. Сертификат представляет собой элемент структурированных данных, содержащий информацию о его владельце, а также открытый ключ шифрования, предназначенный для обмена информацией с его владельцем. Этот открытый ключ входит в пару «открытый/секретный ключ».

Docker. Сетевая безопасность контейнеров

Идея заключается в ограничении входящего/исходящего сетевого трафика контейнера только заданными пунктами назначения. Например, рассмотрим разбитое на микросервисы приложение для электронной коммерции. Один из его микросервисов, допустим, может отвечать за поиск товаров: получать поисковые запросы от конечных пользователей и производить поиск в базе товаров. Контейнерам, составляющим этот сервис, вовсе не требуется обмениваться информацией, скажем, с платежным шлюзом. Прежде чем заниматься нюансами того, как реализуется защита контейнеров брандмауэрами, вспомним устройство семиуровневой сетевой модели и проследим путь IP-пакетов по сети.

Docker. Нарушение изоляции контейнеров

### Проблема 1. Выполнение контейнеров по умолчанию от имени суперпользователя Если в образе контейнера не прописан не суперпользователь или не указано, что нужно запускать не от имени пользователя по умолчанию, то по умол- чанию контейнер будет выполняться от имени суперпользователя. И, как легко убедиться (если вы не настроили пространства имен пользователей), он окажется суперпользователем не только внутри контейнера, но и на хост-компьютере. **Решение**

Виртуальная машина Firecracker

Dиртуальные машины медленно запускаются, вследствие чего плохо подходят для краткосрочных рабочих заданий, обычно выполняемых в контейнерах. Но что, если бы существовала чрезвычайно быстро запускающаяся виртуальная ма- шина? Firecracker (https://oreil.ly/ZkPef) — виртуальная машина, предлагающая одновременно и надежную изоляцию с помощью гипервизора без совместно используемого ядра, и время загрузки порядка 100 миллисекунд, что под- ходит для контейнеров намного лучше. У нее есть еще одно преимущество: благодаря (насколько я понимаю, постепенному) принятию на вооружение в AWS, для сервисов Lambda и Fargate, она сейчас проходит полноценную проверку в условиях промышленной эксплуатации. Firecracker запускается так быстро благодаря тому, что его создатели убрали из нее всю обычно включаемую в ядро функциональность, которая не требуется в контейнере. Один из самых медленных этапов загрузки системы — подсчет имеющихся устройств, но контейнеризованные приложения редко используют большое количество устройств. В основном время экономится за счет минимальной модели устройств, из которой исключены все устройства, за исключением необходимых. Firecracker работает в пользовательском пространстве и задействует API REST для настройки работы гостевых систем под управлением VMM Firecracker. Для гостевых операционных систем применяется аппаратная виртуализация на основе KVM, поэтому вы не сможете запустить ее в, скажем, гостевой ОС Type 2 на ноутбуке, если ваше сочетание аппаратного и программного обеспечения не поддерживает вложенную виртуализацию.

Docker. Усиление изоляции контейнеров

Представьте, что у вас есть две части рабочей нагрузки, которые не должны мешать друг другу. Один из вариантов — изолировать их так, чтобы они не знали о существовании друг друга; фактически именно это делают кон- тейнеры и виртуальные машины. Другой подход — ограничить доступные им действия, поэтому даже если одна из них знает о существовании другой, то просто ничем не может повлиять на нее. Изоляция приложений таким образом, что им доступна лишь часть ресурсов, называется помещением в «песочницу» (sandboxing). Контейнер, в котором запускается приложение, играет, по сути, роль «пе- сочницы». При каждом запуске контейнера известно, какой код приложения будет выполняться внутри него. В случае взлома приложения злоумыш- ленник может попытаться запустить код, поведение которого выходит за нормальные для этого приложения рамки. Механизм «песочницы» по- зволяет ограничить разрешаемые данному коду действия, таким образом ограничивая возможности злоумышленника повлиять на систему. Сначала мы рассмотрим механизм seccomp. ### Механизм seccomp