, Изучение безопасности Kubernetes

Изучение безопасности Kubernetes

Кайчжэ Хуанг

Пранджал Джумде

 

Первая публикация на английском языке: Июль 2020

Ссылка на продукт: 1080720

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

При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-83921-650-3

www.packtpub.com

2020-08-27

 Состав исполнителей

Автор
Кайчжэ Хуанг
Пранджал Джумде
Редактор ввода в эксплуатацию
Вайджин Борича
Редактор приобретения
Мита Раджани
Редактор разработки содержимого
Роуми Диас
Главный редактор
Эйрун Нэйдар
Технический редактор
Сарвеш Джайант
Литературный редактор
Safis Editing
Координатор проекта
Нейл Дмелло
Корректор
Safis Editing
Составитель указателя
Рикха Наир
Технолог
Эйпарна Бхагат

 Вводное слово

Если вы пока не применяли Kubernetes, это вскоре произойдёт.

Kubernetes не просто де факто единственная проблема для запуска соременных, основанных на службах приложениях. По мере того как производители быстро овладевают им, он также становится основной Операционной системой самого облака. Основная причина для этого успеха состоит в том, что Kubernetes является мощным, многосторонним и разработанным с учётом жизненных циклов современного программного обеспечения. С дрогой стороны, Kubernetes также и сложная зверюга. Прошли те времена, когда запуск программного обеспечения означал управление процессами на одном сервере. Теперь вам требуется иметь дело с контейнерами, работающими в кластерах, которые могут достигать размеров тысяч машин, к которым имеют доступ многие разработчики, организованные в группы с различными обязанностями.

Безопасность традиционно была важной областью внимания при запуске программных приложений, причём будь они большими или малыми. Однако резкое увеличение сложности и дополнительные степени своюоды делают безопасность Kubernetes ещё более критически важной и сложной!

Без всяких сомнений, безопасность является одной из наиболее важных сторон запущенных в промышленном варианте приложений Kubernetes. Правильная методология безопасности Kubernetes, помимо прочего, включает защиту контейнера через сканирование образов, обеспечение соблюдения принципа наименьших привилегий, защиту модулей во время выполнения и сегментирование сетевой среды. Всё это происходит при сборе достаточных сведений, чтобы понять когда возникает некая угроза и какой радиус поражения появился после неё.

С этим сложно справляться и это требует значительной подготовки. Один из моментов, который мне более всего нравится в Open Sourse, состоит в том, что всё что вам требуется для самостоятельного обучения доступно вам в нескольких форумах: в документации, руководствах, резервных каналах, конференциях. Kubernetes, с этой точки зрения, не является исключением. Его гигантское сообщество создало большой объём контента и вы несомненно можете пользоваться им дабы стать экспертом. В качестве альтернативы, изучив эту книгу вы можете стать экспертом по безопасности Kubernetes, воспользовавшись мудростью двух опытных операторов, которые живут и дышат безопасностью Kubernetes и делали это годами.

Эта книга спокойно проведёт вас, начиная с введения в лежащие в основе Kubernetes основные понятия на высоком уровне, влоть до погружения в более сложные и тонкие аспекты защиты промышленного кластера. Она сделает это просто осваиваемым, даже если вы не являетесь экспертом, но в то же время , предоставит полезные сведения даже когда у вас имеется опыт работы в этой области. Читая её, я особенно оценил вопросы в конце каждой главы, в которых вы можете проверить то что вы изучили. Также мне понравился раздел ссылок, показывающий где ещё вы можете получать дополнительные сведения.

Основав Sysdig, одну из ведущих компаний в области безопасности Kubernetes, я считаю себя достаточно хорошо осведомлённым в этом вопросе. В то же самое время, авторы этой книги, это люди, к которым я обращаюсь в случае, когда чо- то выходит за рамки моей кометентности или когда я хочу узнать нечто новое. Вы не будете разочарованы, если сделаете то же самое.

Приятного чтения.

Лорис Деджоанни

Основатель и Главный технический директор Sysdig

 Об авторах

Кайчжэ Хуанг является исследователем безопасности в Sysdiag, где он исследует как защищать Kubernetes и контейнеры от атак в диапазоне от веб атак к атакам ядра. Кайчжэ один из сопровождающих Falco, некого проекта CNCF инкубационного уровня и первоначальным автором множества проектов с открытым исходным кодом, таких как kube-psp-advisor. Прежде чем присоединиться к Sysdiag, в качестве сотрудника Stackrox, Кайчжэ помог построить конвейер определения данных, проведения исследований безопасности, а также инновационных регистраций на основе обучения машин. Первоначально, в качестве главного инженера безопасности Oracle он помогал в построении продуктов безопасности: Database Vault, Database Privilege Analyzer и Database Assessment Tool. Кайчжэ владеет степенью магистра в области информационной безопасности Университета Карнеги- Меллона.

Я хочу поблагодарить свою любимую жену, Мелоди, а также членов моей семьи - без вашей поддержки и молитв я бы не смог завершить эту книгу. Спасибо моему управляющему, Оумеру, за предоставленную мне возможность и свободу исследовать и вводить новшества. Спасибо моим коллегам по Sysdiag, вы всегда вдохновляли меня. Спасибо тебе, Пранджал, - без твоей приверженности я бы не смог этого сделать. Спасибо всем в моей издательской команде. Спасибо моей собаке Эмме, которая помогала мне расслабляться во время написания.

Пранджал Джумде является старшим инженером по безопасности Brave Inc. В сфере безопасности он работал над различными сторонами безопасности, такими как безопасность браузера, безопасность ОС/ ядра, DevSecOps, безопасность веб приложений, восстановлению вредоносного программного обеспечения, автоматизация безопасности и разработка средств безопасности/ конфиденциальности. До прихода в Brive в качестве сотрудника DevSecOps, Пранджал помогал в разработке выявления и принудительного применения функциональных возможностей для платформы обнаружения времени выполнения. Он также работал в Apple и Adobe, в которых он занимался разработкой функциональных возможностей для упрочнения различных платформ. Пранджал владеет степенью магистра в области информационной безопасности Университета Карнеги- Меллона. Он также представлял свои исследования на различных конференциях, таких как ACM CCS и BSides SF/Delhi.

Я бы хотел поблагодарить своего соавтора, Кайчжэ, за всё его доверие мне. Без его поддержки и приверженности завершить эту книгу было бы невозможно. Семья является самой сильной поддержкой, которую может получить кто бы то ни было - без такой поддержки меня эта книга не стала бы возможной. Особая благодарность моей жене Свете за её терпение, поощрение и поддержку. Отдельное спасибо всей редакции за всю их помощь.

 Рецензент

Мадху Эйкула является исследователем безопасности естественных облачных решений и интенсивным опытом в облачных решениях, контейнерах, Kubernetes и автоматизации безопасности. Он часто выступает и обучается на конференциях по безопасности по всему миру, включая конференции DEFCON, BlackHat, USENIX, GitHub, OWASP Appsec, AllDayDevOps, DevSecCon, Nullcon и c0c0n. Его исследования выявили уязвимости в более чем 200 компаниях и продуктах, включая Google, Microsof, AT&T, Wordpress, Ntop и Adobe. Он является соавтором Security Automation with Ansible 2, которая перечисляется Red Hat в качестве технического ресурса. Мадху является активным членом сообществ по международной безопасности, DevOps и облачным технологиям, а также владеет отраслевыми сертификатами, такими как OSCP и CKA.

 www.PacktPub.com

 Предисловие

Растущие сложность и масштабируемость приложений из реальной жизни приводят к переходу с монолитной архитектуры к архитектуре микрослужб. Kubernetes де факто превратился основной платформой оркестрации для разработки микрослужб. Будучи дружественной пользователю платформой, Kubernetes допускает различные конфигурации для их подгонки под различные варианты использования, что превращает его в первичный выбор для большинства инженеров DevOps. Присутствующие открытость и высокая степень настраивамости Kubernetes повышают его сложность. Растущая сложность приводит к ошибкам в настройках и проблемам с безопасностью, которые, когда вы с ними сталкиваетесь, могут оказывать существенное экономическое воздействие на организацию. Если вы планируете применять Kubernetes в своей организации, эта книга для вас.

В этой книге вы изучите как сделать безопасным ваш кластер Kubernetes. В первых двух главах вы получите краткое введение в Kubernetes (мы ожидаем, что вы обладаете неким базовым пониманием Kubernetes, прежде чем вы начнёте). Затем мы обсудим настройки по умолчанию различных компонентов и объектов Kubernetes.Зачастую настройки по безопасности Kubernetes не обладают безопасностью. Мы обсудим различные способы настройки верной вашего кластера чтобы гарантировать его безопасность. Мы окунёмся глубже в изучение различных встроенных механизмов безопасности, таких как контроллеры доступа, контекст безопасности и сетевые политики, которые предоставляются Kubernetes в помощь безопасности вашего кластера. Также мы обсудим некоторые инструменты с открытым исходным кодом, которые дополняют имеющиеся инструментальные средства Kubernetes на предмет улучшения безопасности вашего кластера. Наконец, мы рассмотрим некоторые образцы из реальной практики атак и уязвимостей в кластерах Kubernetes и обсудим как упрочить ваш кластер для препятствия таким атакам.

Мы надеемся, что при помощи этой книги вы окажетесь способными безопасно развёртывать сложные приложения в своих кластерах Kubernetes. Kubernetes развивается быстро. При помощи приводимых нами примеров, мы надеемся, вы обучитесь правильной настройке своей среды.

 Для кого эта книга

Эта книга для профессионалов DevOps/ DevSecOps, которые начали приспосабливать Kubernetes в качестве своей основной платформы развёртывания/ оркестрации и обладают базовыми сведениями относительно Kubernetes. Эта книга таже предназначениа тем разработчикам, которые хотели бы изучить как обезопасить и упрочить кластер Kubernetes.

 Что охватывает эта книга

Глава 1. Архитектура Kubernetes, выступает введением в основные компоненты Kubernetes и объекты Kubernetes.

Глава 2. Построение сетевой среды Kubernetes, является введением в сетевую модель Kubernetes и глубже погружается во взаимодействие между микрослужбами.

Глава 3. Моделирование угроз, обсуждает важные средства, агенты угроз в Kubernete, а также как проводить моделирование угроз для развёрнутых в Kubernetes приложений.

Глава 4. Применение принципов наименьших угроз в Kubernetes, рассматривает механизмыуправления безоасностьб в Kubernetes, которые способствуют в реализации принципа наименьших полномочий в двух областях: наименьшие полномочия субъектов Kubernetes и наименьшие полномочия рабочих нагрузок Kubernetes.

Глава 5. Настройка границ безопасности Kubernetes, обсуждает домены безопасности и границы безопасности в кластерах Kubernetes. Кроме того, предлагает введение в механизмы управления безопасностью для усиления границ безопасности.

Глава 6. Защита компонентов кластера, рассматривает самые чувствительные настройки компонентов kube-bench, такие как kube-apiserver kubelet и тому подобные. представляет введение в kube-bench в помощь идентификации неверных настроек в кластерах Kubernetes.

Глава 7. Аутентификация, авторизация и контроль доступа, рассматривает механизмы аутентификации и авторизации в Kubernetes. Также представляет популярные в Kubernetes контроллеры доступа.

Глава 8. Безопасность Подов Kubernetes, обсуждает упрочение образов при помощи CIS Docker Benchmark. Также представляет контексты безопасности Kubernetes, политики безопасности Подов и kube-psp-advisor, который помогает при выработке политик безопасности Подов.

Глава 9. Сканирование образа в конвейерах DevOps, представляет основные понятия образов контейнеров и уязвимостей. Также служит введением в инструмент сканирования образов Anchore Engine и то, как он может интегрирован в конвейеры DeOps.

Глава 10. Мониторинг и управление в реальном времени ресурсами кластера Kubernetes , служит введением во встроенные механизмы, такие как запрос/ ограничение ресурсов и LimitRanger. Также представляет встроенные инструменты, таки е как Инструментальная панель Kubernetes и сервер измерений, а также инструменты мониторинга сторонних разработчиков, такие как Prometheus и инструментарий визуализации данных с названием Grafana.

Глава 11. Глубокая оборона, глубже обсуждает различные относящиеся к защите темы, такие как аудит Kubernetes, высокая доступность Kubernetes, управление секретами, выявление аномалий и расследование.

Глава 12. Анализ и выявление атак криптомайнинга, представляет все основные понятия атак криптовалют и криптомайнинга. Затем обсуждаются некоторые способы выявления атак криптомайнинга при помощи инструментов с открытым исходным кодом, такие как Prometheus и Falco.

Глава 13. Обучение по CVE Kubernetes, рассматривает четаре широко известные CVE Kubernetes и некоторые соответствующие смягчающие стратегии. Она также служит введением в инструмент с открытым исходным кодом kube-hunter, который способствует выявлению известных уязвимостей Kubernetes.

 Как получить от этой книги больше пользы

Прежде чем приступать к этой книге, мы ожидаем что вы обладаете базовыми понятиями относительно Kubernetes. При чтении этой книги мы ожидаем, что вы рассмотрите Kubernetes с типом мышления безопасности. Эта книга обладает большим числом римеров упрочения и защиты настроек и компонентов рабочих нагрузок Kubernetes. Помимо того что вы попробуете эти примеры, вы также должны рассуждать относительно того как эти примеры соответствуют различным вариантам применения. Мы обсудим в этой книге как применять различные инструменты с открытым исходным кодом. Мы надеемся, что вы потратите больше времени для того чтобы разобраться с функциональными особенностями, предоставляемыми каждым из инструментов. Глубокое погружение в различные предоставляемые этими инструментами свойства, поможет вам понимать как настраивать каждый инструмент для различных средств:

Таблица 0-1. Средства Kubernetes
Обсудаемое в этой книге программное обеспечение Необходимая ОС

Kubernetes 1.14.3

Linux или macOS

Ancore 0.6.1

Linux или macOS

Prometeus 2.17.0

Linux или macOS

Sysdig Inspect 0.5.0

Linux или macOS

Kube-hunter 0.3.1

Linux или macOS

Minikube v1.10.1

Linux или macOS

Falco 0.20.0

Linux или macOS

Grafana 7.0.1

Linux или macOS

Kube-bench 0.3.0

Linux или macOS

kube-psp-advisor 1.8.0

Linux или macOS

Если вы применяете цифровую версию этой книги, мы предлагаем вам набирать весь код самостоятельно или применять код через репозиторий GitHub (ссылка доступна в следующем разделе). Поступая так, это поможет вам избежать все потенциальные ошибки, связанные с копированием/ вставкой кода.

 Загрузка примеров кода

Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.

Вы можете загрузить эти файлы с кодом выполнив следующие шаги:

  1. Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.

  2. Переместите указатель мыши на закладку SUPPORT в верхней части.

  3. Кликните по Code Downloads & Errata.

  4. Введите название книги в блок Search.

  5. Выберите книгу для которой вы ищете для загрузки файлы исходного кода.

  6. В ниспадающем меню выберите где вы приобрели эту книгу.

  7. Кликните по Code Download.

После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:

  1. WinRAR / 7-Zip для Windows

  2. Zipeg / iZip / UnRarX для Mac

  3. 7-Zip / PeaZip для Linux

Весь код в единой упаковке также размещён на GitHub. В случае обновления этого кода, он также будет обновлён и в обозначенном репозитории GitHub.

У нас также имеются и прочие упаковки кодов из нашего богатого каталога книг и видео- материалов , доступными в GitHub. Ознакомьтесь с ним!

 Код в действии

Видео кода в действии для этой книги можно просмотреть по ссылке: https://bit.ly/2YZKCJX.

 Загрузка цветных изображений этой книги

Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: http://www.packtpub.com/sites/default/files/downloads/9781839216503_ColorImages.pdf.

 Соглашения

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

Код в тексте Указывает на код в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом: "Этот атрибу также доступен в PodSecurityContext, который имеет воздействие на уровне Пола".

Блок кода записываются следующим образом:


{
   "filename": "/tmp/minerd2",
   "gid": 0,
   "linkdest": null,
}
 	   

Когда мы желаем привлечь ваше внимание к определённой части кода в блоке, соответствующие строки или элементы выделяются жирным шрифтом:


{
"scans": {
"Fortinet": {
"detected": true,
}
}
 	   

Всякая командная строка ввода или вывода отображается так:


$ kubectl get pods -n insecure-nginx
 	   

Жирным шрифтом отображаются новые термины или важные слова, которые вы видите на экране. Скажем, появляющиеся в тексте слова в меню или блоках диалогов. Вот некий пример: "Этот снимок экрана показывает загруженность ЦПУ Пода мониторинга insecure-nginx со стороны Prometheus и Grafana".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Разделы

В этой книге вы будете находить отдельные часто повторяющиеся заголовки (Приготовление, Как это сделать..., Как это работает..., Также ознакомьтесь... и Дополнительно). Чтобы получить чёткие инструкции как выполнить определённый рецепт, применяйте эти разделы следующим образом:

Приготовление

Этот раздел сообщит вам что ожидает данный раздел и описывает как настроить всё необходимое для данного рецепта и выполнить предварительные настройки.

Как это сделать...

Данный раздел содержит все шаги, которые следует осуществить в нём.

Как это работает...

Этот раздел обычно размещает подробное объяснение того что происходило в предыдущем разделе.

Также ознакомьтесь...

В этом разделе содержится дополнительная информация о данном рецепте чтобы вы получили больше сведений о самом рецепте.

Дополнительно

Данный раздел предоставляет полезные ссылки на прочую полезную для обсуждаемого рецепта информацию.

 Обратная связь с читателями

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кодов примеров
Опечатки
Незаконное тиражирование
Вопросы
Часть 1. Введение в Kubernetes
Глава 1. Архитектура Kubernetes
Восход Docker и тенденция микрослужб
Состояние принятия Kubernetes
Кластеры Kubernetes
Компоненты Kubernetes
Интерфейсы Kubernetes
Сетевой интерфейс контейнера
Интерфейс хранилища контейнера
Интерфейс времени исполнения контейнера
Объекты Kubernetes
Поды
Развёртывания
Службы
Наборы реплик
Тома
Пространства имён
Учётные записи служб
Политики сетевой среды
Политики безопасности Подов
Разновидности Kubernetes
Minikube
K3s
OpenShift
Сопоставление OpenShift и Kubernetes
Именование
Безопасность
Стоимость
Kubernetes и поставщики облачных решений
Kubernetes как служба
Kops
Зачем беспокоиться о безопасности Kubernetes
Выводы
Вопросы
Последующее чтение
Глава 2. Построение сетевой среды Kubernetes
Обзор сетевой модели Kubernetes
Проблемы совместного применения порта
Сетевая модель Kubernetes
Взаимодействие внутри Пода
Пространства имён Linux и контейнер паузы
За рамками сетевого взаимодействия
Взаимодействие между Подами
Служба Kubernetes
kube-proxy
Режим посредника пространства пользователя
Режим посредника iptables
Режим посредника IPVS
Введение в службу Kubernetes
Выявление службы
Типы служб
Ingress для маршрутизации внешних запросов
Введение в CNI и подключаемые модули CNI
Спецификация CNI и подключаемые модули
Calico
Сворачиваемся
Выводы
Вопросы
Последующее чтение
Глава 3. Моделирование угроз
Введение в моделирование угроз
Взаимодействие компонентов
Злоумышленники в средах Kubernetes
Угрозы в кластерах Kubernetes
Приложения моделирования угроз в Kubernetes
Выводы
Вопросы
Последующее чтение
Глава 4. Применение принципа наименьших прав в Kubernetes
Принцип наименьших прав
Модель авторизации
Премии принципа наименьших прав
Наименьшие права субъектов Kubernetes
Введение в RBAC
Учётные записи служб, пользователи и группы
Роль
Привязка роли
Пространства имён Kubernetes
Создание пространства имён
Обёртывание наименьшими полномочиями субъектов Kubernetes
Наименьшие права для рабочих нагрузок Kubernetes
Наименьшие права для доступа к ресурсам системы
Контекст безопасности
Политика безопасности пода
Контроль ограничения ресурса
Обёртывание наименьшими правами для доступа к ресурсам системы
Наименьшие права для доступа к сетевым ресурсам
Наименьшие права для доступа к ресурсам приложения
Выводы
Вопросы
Последующее чтение
Глава 5. Настройка границ безопасности Kubernetes
Введение в границы безопасности
Сопоставление границ безопасности и границ доверия
Домены безопасности Kubernetes
Логические элементы Kubernetes в качестве границ безопасности
Границы безопасности на уровне самой системы
Пространства имён Linux в качестве границ безопасности
Возможности Linux как границы безопасности
Обёртывание границ безопасности на уровне самой системы
Границы безопасности на сетевом уровне
Сетевые политики
Выводы
Вопросы
Последующее чтение
Часть 2. Безопасность развёртывания и кластеров Kubernetes
Глава 6. Защита компонентов кластера
Защита kube-apiserver
Защита kubelet
Защита etcd
Защита kube-scheduler
Защита kube-controller-manager
Защита CoreDNS
Эталонное тестирование конфигурации безопасности кластера
Выводы
Вопросы
Последующее чтение
Глава 7. Аутентификация, авторизация и контроль доступа
Запрос рабочего потока в Kubernetes
Аутентификация Kubernetes
Сертификаты клиента
Статические маркеры
Базовая аутентификация
Маркеры самораскрутки
Маркеры учётных записей служб
Маркеры особых веб точек входа
Посредник аутентификации
Заимствование прав пользователя
Авторизация Kubernetes
Атрибуты запроса
Режимы авторизации
Узел
ABAC
RBAC
Особые веб точки входа
Контроллеры доступа
AlwaysPullImages
EventRateLimit
LimitRanger
NodeRestriction
PersistentVolumeClaimResize
PodSecurityPolicy
SecurityContextDeny
ServiceAccount
MutatingAdmissionWebhook и ValidatingAdmissionWebhook
Введение в OPA
Выводы
Вопросы
Последующее чтение
Глава 8. Безопасность Подов Kubernetes
Укрепление образов контейнеров
Образы контейнеров и Dockerfles
Эталонное тестирование CIS Docker
Настройка атрибутов безопасности Подов
Установка пространств имён для Подов
Контекст безопасности для контейнеров
Контекст безопасности для Подов
Профили AppArmor
Сила PodSecurityPolicy
Основы PodSecurityPolicy
Консунтальт PodSecurityPolicy Kubernetes
Выводы
Вопросы
Последующее чтение
Глава 9. Сканирование образа в конвейерах DevOps
Представление образов контейнеров и уязвимости
Образы контейнера
Выявление известных уязвимостей
Сканирование образов Anchore Engine
Введение в Anchore Engine
Сканирование образов с помощью anchore-cli
Внедрение сканирования образов в конвейер CI/CD
Сканирование на этапе сборки
Сканирование на этапе развёртывания
Сканирование на этапе времени исполнения
Выводы
Вопросы
Последующее чтение
Глава 10. Мониторинг и управление в реальном времени ресурсами кластера Kubernetes
Мониторинг и управление в реальном времени в монолитных средах
Управление ресурсами в Kubernetes
Запрос ресурсов и ограничения
Пространство имён квот ресурса
LimitRanger
Мониторинг ресурсами в Kubernetes
Встроенные мониторы
Инструменты мониторинга сторонних разрабочиков
Prometheus и Grafana
Выводы
Вопросы
Последующее чтение
Глава 11. Глубокая оборона
Введение в аудит Kubernetes
Политика аудита Kubernetes
Настройка основы аудита
Включение высокой доступности в кластере Kubernetes
Включение высокой доступности рабочих нагрузок Kubernetes
Включение высокой доступности компонентов Kubernetes
Включение высокой доступности облачной инфраструктуры
Управление секретами при помощи Vault
Наладка Vault
Предоставление секретов и их ротация
Выявление аномалий при помощи Falco
Обзор Falco
Создание правил Falco для выявления аномалий
Проведение расследования с помощью Sysdig Inspect и CRIU
Применение CRIU для сбора данных
Использование Sysdig и Sysdig Inspect
Выводы
Вопросы
Последующее чтение
Часть 3. Обучение на ошибках и ловушках
Глава 12. Анализ и выявление атак криптомайнинга
Анализ атак криптомайнинга
Введение в атаки криптомайнинга
Атаки криптомайнинга в кластере Kubernetes Tesla
Graboid - атака крипто- червя
Пройденные уроки
Выявление атак криптомайнинга
Мониторинг использования ЦПУ
Выявление сетевого обменас пулом майнинга
Выявление запущенных процесов криптомайнинга
Проверка цифровой подписи
Защита от атак
Защита предоставления кластера Kubernetes
Защита самой сборки
Защита развёртывания
Защита времени исполнения
Выводы
Вопросы
Последующее чтение
Глава 13. Обучение по CVE Kubernetes
Проблема обходного пути в kubectl cp – CVE-2019-11246
Стратегия смягчения последствий
Проблемы DoS в синтаксическом разборе JSON - CVE-2019-1002100
Стратегия смягчения последствий
Проблема эскалации привилегий в синтаксическом разборе роли - CVE-2019-11247
Стратегия смягчения последствий
Сканирование на предмет известных уязвимостец при помощи kube-hunter
Выводы
Вопросы
Последующее чтение
Аттестация
Глава 1
Глава 2
Глава 3
Глава 4
Глава 5
Глава 6
Глава 7
Глава 8
Глава 9
Глава 10
Глава 11
Глава 12
Глава 13
Указатель