ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

DevSecOps Talks

DevSecOps Talks

Открыть в Telegram

Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"

Больше
8 074
Подписчики
+624 часа
+67 дней
+3630 дней
Архив постов
Привет! Отличная статья про написание Custom Scheduler для Kubernetes! В начале статьи описаны концепты Scheduling: 🍭 После запроса о создании pod попадает в Scheduling Queue 🍭 Далее pod надо назначить на node, это делается в 2 этапа: Scheduling и Binding 🍭 Scheduling происходит в несколько этапов. Сперва «отсекаются» nodes, которые не подходят для запуска pod (например, из-за taints). Далее оставшиеся (подходящие) nodes ранжируются (фильтруются) с целью выбор единственной 🍭 Binding – взаимодействие с Kubelet выбранной node, постановка задачи на создание pod Изменение приоритетов scheduling может быть осуществлено при помощи plugins, которые могут видоизменять процесс на разных этапах (см. картинку в статье). Общий набор plugins, которые используются в процессе scheduling описывается в profile (грубо говоря, описываем, как и что надо делать, на каком этапе). Вторая часть статьи посвящена созданию собственного plugin’a – “NetworkTraffic”, его настройке и последующему использованию в качестве «основного» механизма scheduling. Принцип простой - выбираем node на основе анализа сетевого трафика! Много кода, конфигураций и примеров! Очень наглядно и понятно объясняет концепт принятия решения о том, где именно следует запустить pod

Всем привет! В приложении отчет от Canonical – «Kubernetes and cloud native operations report 2021». Он содержит много интересной статистической информации на основе ответов 1200 респондентов. Например: 🍭 Использование cloud (public, hybrid, private) 🍭 Информация о количестве кластеров 🍭 Использование виртуализации и/или bare metal 🍭 Helm-chart, насколько часто их используют 🍭 Основные опасения при работе с оркестраторами и многое другое! Много цифр, мало «воды», рекомендуем к ознакомлению! ☺️

Всем привет! Пока мы морально готовимся к «рабочим выходным», миримся с ушедшим бабьим летом и промокаем под постоянными дождями, наступила пятница! И в этот день судьба решила порадовать нас и подарить чудесный солнечный день! А мы порадуем вас интересной фичей - от команды хорошо знакомого нам GitHub. GitHub Actions! Фича, по сути, не совсем новая, но для GitHub это эдакий свой взгляд на реализацию CI/CD. Как бы ни напрашивалось сравнение с GitLab CI, подход к реализации у GitHub получился иной. 🍩 Фича представляет из себя отдельный каталог в репозитории с набором YML манифестов, каждый из которых описывает какое то действие этапа сборки. Например action для test или merge коммита в мастер ветку. 🍩 Для начала работы не требуется никаких настроек или интеграций. Достаточно создать каталог .github/workflows, в котором будут размещены job манифесты 🍩 Actions могут быть особенно полезны в облачных инфраструктурах, так как описание абсолютно всех этапов и триггеров сборок могут быть размещены в одном репозитории, который клонируется, например в CodeCommit 🍩 В целом комплекс очень напоминает большие плейбуки Ansible с кросс ссылками друг на друга. Возможность создания подобных конструкций поможет создавать большие workflow с множеством различных trigger и специфичных jobs для разных event. Отдельного упоминания заслуживает marketplace вендора, в котором собран набор манифестов часто используемых Actions, а так же возможность писать собственные action’ы и шарить их с комьюнити. Ссылка как всегда ниже, приятного ознакомления! 👇 https://github.com/features/actions

Привет! Статья, посвященная Autoscaling (динамической адаптации вычислительных ресурсов, таких как CPU и RAM в зависимости от потребностей и эффективности работы приложения). Autoscaling может работать как для увеличения ресурсов, так и для их сокращения, чтобы оптимизировать работу кластера. Рассматривается несколько видов, доступных в Kubernetes: 🍭 Horizontal Pod Autoscaler (HPA): управление количеством pods, например, в replicas, scale out 🍭 Vertical Pod Autoscaler (VPA): управление мощностями существующих сущностей, scale up 🍭 Cluster Autoscaler: управление вычислительными мощностями кластера, если их недостаточно для корректного функционирования нагрузок Принцип работы Autoscaler достаточно прост: создается Kubernetes API Resource и Controller. Controller взаимодействует с Metrics API Server и принимает решение о необходимости масштабирования, если оно требуется В завершении статьи приводится небольшая инструкция, в которой показано, как это можно настроить на примере HPA. Написано очень доступно, с диаграммами и объяснением каждого концепта «на пальцах». Для Ops-специалистов, скорее всего, не будет ничего нового, а для Sec, которым интересно погрузиться – вполне. Тем более, что ранее мы уже писали об интересном способе использования VPA для формирования Req/Lim для CPU и RAM с использованием Goldilocks.

Всем привет! Рано или поздно вам придется столкнуться с CrashLoopBackOff… Иногда понять в чем причина не всегда просто и можно воспользоваться рекомендациями из статьи. Ребята выделили наиболее частые причины, которые приводят к указанному состоянию: 🍭 Insufficient resource – недостаток ресурсов, из-за которого контейнер не может запуститься 🍭 Locked file – файл был заблокирован другим контейнером 🍭 Locked database – база данных используется (заблокирована) другим контейнером 🍭 Failed reference – что-то внутри контейнера ссылается на скрипты/исполняемые файлы, которые отсутствуют в контейнере 🍭 Setup error – некорректная настройка init-container 🍭 Config loading error – невозможно загрузить требуемую конфигурацию 🍭 Misconfigurations – некорректные настройки системы 🍭 Connection issues – DNS или kube-DNS не может «связаться» со сторонним сервисом 🍭 Deploying failed services – попытка deploy сервиса/приложения, которое уже находится в статусе «failed» (например, из-за невозможности доступа к иным сервисам) Помимо самих причин в статье представлены debug-рекомендации, разборы «не типовых» сценариев, которые могут привести к указанной ошибке

Всем привет! Еще один cheatsheet на тему Docker security, на этот раз от GitGuardian! Об этом есть множество аналогичных материалов, подборка от GitGuardian не стала исключением и состоит из знакомого перечня рекомендаций: 🍭 Корректное использование tags 🍭 Назначение default user 🍭 Исключение plain text секретов из ENV 🍭 Контроль доступа к docker daemon 🍭 Управление linux capabilities 🍭 Контроль файловой системы, возможностей на чтение/запись в определенные директории и другое Что отличает рекомендации GitGuardian и почему стоит на них взглянуть? Крайне удобная схема, где все рекомендации собраны воедино. Можно использовать в качестве шпаргалки, когда надо посмотреть "а не забыл ли я что?" ☺️

Всем привет! Veracode сделал общедоступными часть своих интерактивных курсов по обучению безопасной разработке! Доступно несколько базовых направлений: 🍭 Base Terminal 🍭 Juice Shop 🍭 Python AppSec 🍭 React Если Вас интересует интерактивное обучение, то можно обратить внимание на проекты Kontra (о котором мы писали тут) и Codebashing от Checkmarx (если платная и бесплатная версия). Также ребята сделали удобное сравнение между платной и бесплатной версией своего продукта (доступно по ссылке). Согласно сравнительной табличке Community Edition является Forever Free 😊

Привет! Отрицательный опыт – тоже опыт! Есть интересные подборки с anti-pattern, в которых описано как делать НЕ стоит и почему это так. В статье приведены 10 anti-pattern для Kubernetes deployment: 🍭 Размещать конфигурацию внутри образа контейнера 🍭 НЕ использовать Helm или иные templating-решения 🍭 Deploy в определенном порядке (приложения не должны «падать», если их зависимости еще «не готовы») 🍭 Deploy без указания Lim/Req для CPU и RAM 🍭 Использование образов с тэгом «latest» в продуктивных средах 🍭 Deploy обновлений через «убийство» pod (что влечет image pull, более корректный путь – через модификацию конфигурации, что приведет к обновлению с сохранением управления версионности) 🍭 Использование продуктивных и тестовых сущностей в одном кластере 🍭 НЕ использовать blue/green и/или canary deployment для обновления критичных приложений (rolling updates не всегда достаточны) 🍭 Отсутствие метрик для анализа успешности deployment 🍭 Cloud vendor lock-in: «привязка» к облачным услугам (корректный путь – создание сущностей таким образом, чтобы их можно было легко «переносить» между различными средами) Почему тот или иной anti-pattern попал в перечень неплохо расписано в самой статье и с примерами (оценка Medium на время чтения статьи ~ 22 минуты) P.S. Всех с пятницей! Отличных выходных!

Привет! Aqua Enterprise получила большое обновление. Главное в версии 6.5 — фича под названием Advanced malware protection. Она добавляет новые функции встроенному антивирусу, такие как: 🍏 Защита в реальном времени для хостов и контейнеров. 🍏 Обнаружение вредоносов в файлах, буфере обмена и реестре Windows. 🍏 Обнаружение и предотвращение file-less атак. 🍏 Новые виджеты для главного дэшборда :) Помимо этого, обновление содержит: 🍏 Новые фильтры для журналов аудита. 🍏 Поддержку установки в среде k3s. 🍏 Возможность настройки отдельных Enforcers (ранее настраивать можно было только Enforcer groups). 🍏 Поддержку интеграции с GitHub Container Registry. 🍏 Jenkins плагин теперь поддерживает сканирование с использованием Podman. 🍏 Aqua Starboard теперь по умолчанию деплоится вместе с KubeEnforcer-ами. 🍏 Появились новые команды для API и ряд других нововведений. Апгрейд на версию 6.5 поддерживается для версий 6.2, 6.0 и 5.3.

Привет! Syft – полезная утилита, которая позволяет сгенерировать Software Bill of Materials (SBOM) для образов контейнеров - перечень компонентов, из которых "состоит" ПО и образ. Реализована поддержка пакетов и библиотек для APK, DEB, RPM, Ruby Bundles, Python Wheel/Egg/requirements.txt, JavaScript NPM/Yarn, Java JAR/EAR/WAR, Jenkins plugins JPI/HPI, Go modules. Присутствует нативная интеграция с другим продуктом Anchore – Grype (сканер уязвимостей для образов контейнеров). И, как обычно, поддержка большого количества output форматов: json, text, cyclonedx, spdx, spdx-json, table. Кстати, недавно (11 октября) прошла конференция, посвященная безопасности Supply Chain – Supply Chain Security Con. Записей докладов пока нет, но можно скачать keynotes для того, чтобы быстро ознакомиться с ключевыми тезисами.

Всем привет! У HashiCorp есть множество крутых обучающих и методических материалов, посвященных их продуктам. Теперь получить к ним доступ стало еще проще, ведь Hashi сделали свой аналог «awesome» и собрали всю информацию о HashiCorp Learning Resources Reference Guide в одной статье! В перечне материалов есть такие ресурсы, как: 🍭 Официальная документация (Boundary, Consul, Cloud Platform, Nomad, Packer, Sentinel, Terraform, Vagrant, Vault) 🍭 HashiCrop Learn (теория + лабораторные работы) 🍭 YouTube (очень много вебинаров по тому, как использовать решения компании, с примерами) 🍭 Blogs (официальный блог Hashi, блог ребят на Medium) 🍭 HashiConf Hands-on Labs (наборы лабораторных работ) 🍭 Technical Examples (общедоступные наработки команды) и не только! На наш взгляд сохранить эту закладку – просто must, если вас интересует HashiCorp и их продукция!

Привет! Просто и крайне удобный инструмент для идентификации default passwords – Changeme! В настоящее время поддерживается: 🍭 http/https 🍭 mssql 🍭 mysql 🍭 postgres 🍭 ssh, ssh w/key 🍭 snmp 🍭 mongodb 🍭 ftp Файлы с идентифицируемыми credentials хранятся отдельно от кода, что упрощает процесс добавления «своих». Пример для MySQL и Postgres (все описано в виде yaml). Есть небольшая Wiki, где описаны и продемонстрированы примеры использования утилиты с указанием определенных ключей (Basic Scan, Target Specification, Overriding Ports, Proxy, Multiple Ports)

Всем привет! Все мы понемногу становимся YAML-разработчиками. Отчасти – шутка, отчасти – правда! Для того, чтобы разобраться что к чему и оптимизировать деятельность по созданию YAML-файлов можно воспользоваться рекомендациями, приведенными в статье: 🍭 В начале пути пишите YAML-файлы «в ручную», без использования «генераторов». Это поможет разобраться в структуре, а также соответствует принципам декларативного подхода описания сущностей 🍭 Используйте «квази-генераторы», с использование kubectl, --dry-run=client и -o yaml > %filename%. Будет некоторая избыточность, но вы уже знаете как и что поправить 🍭 Используйте… средства автоматизации для обработки YAML-файлов! Например, yq (идеологический аналог jq, но только для YAML). Инструмент позволит оптимизировать рутинные действия. Но, как и при работе с любым инструментом сперва необходимо освоить его 🍭 Что делать, если раньше использовали compose и есть потребность «переезда» на K8S manifest? Тут может помочь kompose. Да, скорее всего потребуется доработка результатов, но проблема «чистого листа» будет решена, а время – сэкономлено 🍭 И самый hardcore-вариант! Если вы владеете языками программирования, то можно писать конфигурационные файлы K8S прямо на «родном диалекте» с использованием CDK8S! Вариантов много, главное – найти максимально удобный для себя. А поиск этого лишнего или, наоборот, недостающего пробела в большом manifest – бесценно ☺️

Всех с пятницей! Устали от всех этих деплоев, контейнеров, бесконечных обновлений гитлаба и, прости господи, кубернетиса? Тогда сегодня, специально для вас мы представляем вашему вниманию настоящее возвращение к истокам! А какие "истоки" могут быть более приятные, чем сборка собственного компьютера из комплектующих, закручивание винтиков со всей любовью и подключение многочисленных шлейфиков? Уж если не это, то что тогда? Встречайте сегодняшнего гостя: Симулятор сборки ПК! Забудьте на вечер про девопс, ведь тут есть: 🍬 топовые процессоры 🍬 быстрая память 🍬 жирнейшие диски 🍬 водяное охлаждение 🍬 дорогущая графика 🍬 и огромное количество винтиков Брось девопс, открой бизнес, собирай компьютеры!

Всем привет! Вышел новый release Trivy, v0.20.0! Главным новшеством, на наш взгляд, является миграция на новую JSON-схему. Подробнее об изменениях схемы можно почитать тут. Возможно, потребуется адаптация/изменение существующего parser. Кроме этого обновление содержит большое количество изменений и нововведений. Добавлено/улучшено/изменено (детали описаны в changelog): 🍭 Egg/Wheel/requirements.txt для Python. Для requirements пока что поддерживается только «==» 🍭 Gemspec для Ruby 🍭 Package.json для Node.js 🍭 packages.config для NuGet 🍭 В генерируемый отчет добавлено предоставление информации об используемых лицензиях (Alpine и RHEL-based образов, а также для Python, Ruby и Node.js) И многое другое, включая bugfixes. Подробнее можно почитать в changelog по приведённой ссылке.

Всем привет! Недавно команда Falco выпустила ряд интерактивных лабораторных работ, которые позволят познакомиться с решением поближе. В настоящее время доступны следующие лабораторные работы: 🍭 Lab 1 - Introduction to Falco 🍭 Lab 2 - Falco forensics in K8s 🍭 Lab 3 - Falcosidekick: Threat Response Engine 🍭 Lab 4 - Falco Custom Rules (пока находится в работе) Все лабораторные бесплатны и занимают немного времени (15-20 минут). Пример содержания первой лабораторной работы: "В этой лабораторной работе вы изучите основы Falco и как его использовать для идентификации аномалий в контейнере. Вы будете в ролях как атакующего, так и ИБ-специалиста, что позволит убедиться в том, что Falco идентифицировал попытки проникновения" Надеемся, что проект получит развитие и количество лабораторных работ будет увеличиваться!

Всем привет! ArgoCD – достаточно популярный инструмент для автоматизации Continuous Deployment, CD. В статье приводится пример того, как некорректная конфигурация приводит к проблемам с безопасностью. Все достаточно просто – злоумышленник воспользовался доступным извне Argo Dashboard для того, чтобы создать собственный Workflow: YAML, описывающий что и с чем необходимо сделать. Пример – создание контейнера с сryptominer. Означает ли это, что ArgoCD лучше не использовать? Скорее это означает что все надо корректно настраивать и обращать внимание на практики по информационной безопасности, разрабатываемые, в том числе и maintener’ами проекта

Привет! Хорошая статья на тему Namespaces и Cgroups в *nix-based системах для начинающих. В начале приводится краткое определение терминов: 🍭 Namespaces – возможность «разделения» ресурсов таким образом, что один набор процессов видит одну группу ресурсов, а второй набор – иную группу. Еще проще – при помощи Namespace можно изолировать процессы друг от друга 🍭 Cgroups – возможность управления CPU, памятью, I/O, сетевыми возможностями и т.д. Дальше приводится краткое описание различных «видов» namespace (User, PID, Network и т.д.) и возможностей Cgroups (Limits, Prioritization, Accounting и т.д.) Есть наглядные диаграммы, демонстрирующие принципы работы и небольшие примеры создания сущностей ☺️

Всем привет! Еще один Admission Webhook, который вместе с политиками, написанными на OPA, позволяет анализировать запускаемые сущности на предмет соответствия политикам ИБ (в том числе преднастроенным) для принятия решения о возможности ее (сущности) создания. Это MagTape! Перечень доступных политик «из коробки» (отдельно – описание политик): 🍭 Liveness Probe (Check ID: MT1001) 🍭 Readiness Probe (Check ID: MT1002) 🍭 Resource Limits (Check ID: MT1003) 🍭 Resource Requests (Check ID: MT1004) 🍭 Pod Disruption Budget (Check ID: MT1005) 🍭 Istio Port Name/Number Mismatch (Check ID: MT1006) 🍭 Singleton Pods (Check ID: MT1007) 🍭 Host Port (Check ID: MT1008) 🍭 emptyDir Volume (Check ID: MT1009) 🍭 Host Path (Check ID: MT1010) 🍭 Privileged Pod Security Context (Check ID: MT2001) 🍭 Node Port Range (Check ID: MT2002) Из интересного – позволяет генерировать K8S Events (через MAGTAPE_K8S_EVENTS_ENABLED = TRUE) и отправлять уведомления в Slack (native интеграция). Из важного (!) ⚡️ – требует прав Cluster Admin. До конца непонятно, чем это отличается от связки OPA/GateKeeper с большим количеством политик, которые можно найти в различных repo. Возможно, что именно native интеграцией со Slack 😊

Всем привет! В этом году ежегодная конференция All Day DevOps пройдет уже очень и очень скоро, а именно – 28 октября! Регистрация, как обычно, бесплатная и доступна по ссылке к самому мероприятию. Основные tracks в этом году: 🍭 CI/CD – continuous everything 🍭 Modern Infrastructure 🍭 DevSecOps 🍭 Cultural Transformation 🍭 Site Reliability Engineering 🍭 Government Приятно видеть, что секции посвящены не только технологиям, но и формированию культуры и практик управления, без которых никакая автоматизация не заработает «в полную силу»