DevOps FM
4.94K subscribers
641 photos
12 videos
10 files
756 links
♾️ Канал для тех, кто живёт DevOps и системным администрированием.

Новости, статьи, best practices, инструменты и чилл-аут контент. Cloud Native, Docker, Kubernetes, CI/CD, БД, мониторинг etc.

По вопросам — к Ладе @b_vls
Download Telegram
Всем DevOps! 🖖

Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!

Часть 1

▪️ Kube-bench
Репозиторий:
https://github.com/aquasecurity/kube-bench

Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.

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

Quick start

• Внутри контейнера:
docker run - pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest - version 1.18

• Внутри Kubernetes-кластера:
kubectl apply -f https://github.com/aquasecurity/kube-bench/blob/main/job.yaml

▪️ Kube-hunter
Репозиторий:
https://github.com/aquasecurity/kube-hunter

Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.

Quick start

• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
pip install kube-hunter

• На машине в кластере:
docker run -it — rm — network host aquasec/kube-hunter

• В поде внутри кластера:
kubectl create -f https://github.com/aquasecurity/kube-hunter/blob/main/job.yaml

▪️ Kubeaudit
Репозиторий:
https://github.com/Shopify/kubeaudit

Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.

Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.

Quick start

• Через Homebrew:
brew install kubeaudit

• Через Helm:
helm upgrade — install kubeaudit secureCodeBox/kubeaudit

▪️ Kube-scan
Репозиторий:
https://github.com/octarinesec/kube-scan

С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.

Quick start

kubectl apply -f https://raw.githubusercontent.com/octarinesec/kube-scan/master/kube-scan.yaml
kubectl port-forward --namespace kube-scan svc/kube-scan-ui 8080:80

Затем установите для браузера значение http://localhost:8080

▪️ Kubesec
Репозиторий:
https://github.com/controlplaneio/kubesec

Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.

Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.

Quick start

• Docker Container:
docker.io/kubesec/kubesec:v2 https://hub.docker.com/r/kubesec/kubesec/tags

• Linux/MacOS/Win binary: https://github.com/controlplaneio/kubesec/releases

• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook

• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec

Пример использования командной строки:
kubesec scan k8s-deployment.yaml

#open_source
🔥13👍41
Часть 2

▪️ Kube-score
Репозиторий:
https://github.com/zegl/kube-score

Kube-score выполняет статический анализ кода для всех определений объектов Kubernetes. Результатом является список рекомендаций о том, что можно улучшить, чтобы сделать приложение более безопасным и отказоустойчивым.

Онлайн-демо

Quick start

• Docker:
docker pull zegl/kube-score

• Homebrew:
brew install kube-score

• Krew:
kubectl krew install score

Полный список проверок см. в README_CHECKS.md

▪️ KubiScan
Репозиторий:
https://github.com/cyberark/KubiScan

KubiScan сканирует кластеры Kubernetes на наличие рискованных разрешений в модели разрешений управления доступом на основе ролей (RBAC) Kubernetes. KubiScan может сканировать поды, содержащие токены привилегированных сервисных учетных записей, которые можно использовать для атак с целью повышения привилегий или для компрометации кластера.

Quick start

Установка:
- alias kubiscan='python3 https://github.com/cyberark/KubiScan/blob/master/KubiScan.py 

Примеры

• Поиск подов с привилегированной учетной записью:
kubiscan -rp

• Проверка наличия этой учетной записи в списке рискованных:
kubiscan -rs

• Поиск всех правил, которые есть в этой учетной записи службы:
kubiscan -aaes “risky-sa” -ns “default” -k “ServiceAccount”

▪️ Krane
Репозиторий:
https://github.com/Shopify/krane

Krane — это инструмент командной строки, написанный на Ruby. Krane — простой инструмент для статического анализа Kubernetes RBAC. Он выявляет потенциальные риски безопасности в конструкции RBAC K8 и дает предложения по их снижению. Панель управления Krane отображает текущее состояние безопасности RBAC и позволяет перемещаться по определению.

Quick start

Установка:
gem install krane

Затем:
krane deploy <app’s namespace> <kube context>

▪️ Illuminatio
Репозиторий:
https://github.com/inovex/illuminatio

Illuminatio — утилита для автоматического тестирования сетевых политик Kubernetes. Просто запустите illuminatio clean run, и illuminatio просканирует ваш кластер Kubernetes на наличие сетевых политик, создаст соответствующие тестовые примеры и выполнит их, чтобы определить, действуют ли политики.

Quick start

Установка:
pip3 install illuminatio

Или через плагин Kubectl:
-> ln -s $(which illuminatio) /usr/local/bin/kubectl-illuminatio
-> kubectl plugin list — name-only | grep illuminatio

Можно проверять:
illuminatio clean run

▪️ Kubei
Репозиторий:
https://github.com/Erezf-p/kubei

В кластере Kubernetes Kubei используется для анализа непосредственных угроз. Большая часть Kubei написана на языке программирования Go.

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

Quick start

Для развертывания Kubei в кластере:
kubectl apply -f https://raw.githubusercontent.com/Portshift/kubei/master/deploy/kubei.yaml

Затем перенаправьте порты в веб-приложение Kubei:
kubectl -n kubei port-forward $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’) 8080

В браузере перейдите по адресу http://localhost:8080/view/ и нажмите «GO», чтобы запустить сканирование.

Чтобы проверить состояние Kubei и ход текущего сканирования, выполните следующую команду:
kubectl -n kubei logs $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’)

Обновите страницу (http://localhost:8080/view/), чтобы обновить результаты.

#open_source
🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Всем DevOps! 🖖

Очень вероятно, что вам знаком этот инструмент (все-таки 38k звездочек на GitHub), но кажется не лишним рассказать про него еще раз :)

diveopen-source инструмент для изучения образа Docker, содержимого слоев и поиска способов уменьшить размер образа Docker/OCI.

Чтобы проанализировать образ Docker, просто запустите dive с тегом / id / digest образа:

dive <your-image-tag>

Или вы можете использовать dive напрямую с помощью команды docker:

alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>

# for example
dive nginx:latest

Или вы можете создать свой образ и сразу приступить к его анализу:

dive build -t <some-tag>

💻 Ссылка на GitHub

#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥101
Всем DevOps! 🖖

Уверены, что вы знакомы с Kubernetes (его еще называют k8s). У Kubernetes много плюсов, но есть один существенный минус — кластер Kubernetes немного сложен в настройке и требует значительных ресурсов, что затрудняет развертывание на локальной машине для обучения или разработки. В общем, не всегда возможно перейти на полноценный k8s. К счастью, на этот случай есть более легкое решение в виде k3s.

Про него и пойдет речь в сегодняшних постах. Разумеется, потом оформим все части в одну подборку 😉

Из истории k3s

Во время создания Rio (одна из разработок для kubernetes от Rancher Labs), разработчик Даррен Шепард был разочарован, что для тестирования постоянно требовалось запускать новый кластер Kubernetes. Он знал, что это занимает много времени и, если он сможет запускать кластер быстрее, то сможет выделять больше времени на написание кода и новые фичи. Даррен был хорошо знаком с исходным кодом Kubernetes и начал его разбирать, удаляя все ненужные компоненты, чтобы обеспечить быстрый запуск.

В 2019 году компания Rancher Labs объявила о запуске нового open source-проекта k3s, который представлял собой легкий и простой в установке дистрибутив k8s, предназначенный для разработчиков, ищущих способ запуска Kubernetes на платформах с ограниченными ресурсами.

Чтобы адаптировать Kubernetes к слабому железу, Rancher Labs:

• Удалили старый и неиспользуемый код. По словам разработчиков из кода было вырезано порядка 1000 строк;

• Вместо Docker использовали conteinerd;

• Добавили поддержку Kine, в качестве хранилища по умолчанию;

• Удалили драйвера облачных провайдеров.

*️⃣1/4: продолжение следует :)

#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥7🌚2