DevSecOps Talks – Telegram
DevSecOps Talks
7.44K subscribers
85 photos
94 files
1.23K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Привет!

Можно встретить много вопросов на тему «Как мне стать … (подставить нужное)?», т.к. не всегда понятно, за что браться в первую очередь в нашем мире, полном информации.

Есть интересный вариант пути развития по теме «Web Security Researcher». Он включает в себя несколько Tiers, которые кратко (по сравнению с тем, что приводится в статье – очень (!) кратко) описаны ниже:

🍭 Tier 1: Основы – HTTP, сети, программирование, Bash и Linux
🍭 Tier 2: Использование доступных online ресурсов для обучения и практики, например OWASP Top 10, изучение книг по анализу web – приложений
🍭 Tier 3: Применение полученных навыков на Hack The Box, RootMe, Try Hack Me и т.д.
🍭 Tier 4: «Оттачивание навыков», чтение более сложной литературы по тематике
🍭 Tier 5: Продолжения развития навыков, полученных на предыдущих этапах

Подборка, в первую очередь, привлекла количеством интереснейших материалов, на которые ссылаются ее авторы – от простого «30 дней Python» до «HTTP Desync Attacks.». Возможно, это пригодится и вам!
Привет!

Вышло обновление Connaisseur до версии 2.X.Xинструмента для контроля подписей образов контейнеров. По этой теме мы уже писали ранее (Cosign, Connaisseur)

Одним из самых интересных нововведений стала оптимизация поддержки проверки подписей образов, реализованных разными механизмами:
🍭 Notary
🍭 Docker Content Trust
🍭 Cosign и т.д.

Кроме того, добавили multi key support и скорректировали документацию. Простой use case, где это может пригодится: например, вы используете Cosign для подписи собственных образов, в то время как требуется контролировать подписи образов из Docker Hub, часть которых подписана при помощи Docker Content Trust. Все это можно реализовать при помощи Connaisseur.

Если же вам интересна тематика подписи образов контейнеров и хочется чуть больше деталей – крайне рекомендуем почитать статью «Создание и проверка подписей образов контейнеров: Интеграция Notary V1 и Connaisseur в Kubernetes» на Habr. Емко и по существу! ☺️
Всем привет!

В этом году ежегодная конференция All Day DevOps пройдет уже очень и очень скоро, а именно – 28 октября! Регистрация, как обычно, бесплатная и доступна по ссылке к самому мероприятию.

Основные tracks в этом году:
🍭 CI/CD – continuous everything
🍭 Modern Infrastructure
🍭 DevSecOps
🍭 Cultural Transformation
🍭 Site Reliability Engineering
🍭 Government

Приятно видеть, что секции посвящены не только технологиям, но и формированию культуры и практик управления, без которых никакая автоматизация не заработает «в полную силу»
Всем привет!

Еще один 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 😊
Привет!

Хорошая статья на тему Namespaces и Cgroups в *nix-based системах для начинающих.

В начале приводится краткое определение терминов:
🍭 Namespaces – возможность «разделения» ресурсов таким образом, что один набор процессов видит одну группу ресурсов, а второй набор – иную группу. Еще проще – при помощи Namespace можно изолировать процессы друг от друга
🍭 Cgroups – возможность управления CPU, памятью, I/O, сетевыми возможностями и т.д.

Дальше приводится краткое описание различных «видов» namespace (User, PID, Network и т.д.) и возможностей Cgroups (Limits, Prioritization, Accounting и т.д.)

Есть наглядные диаграммы, демонстрирующие принципы работы и небольшие примеры создания сущностей ☺️
Всем привет!

ArgoCD – достаточно популярный инструмент для автоматизации Continuous Deployment, CD. В статье приводится пример того, как некорректная конфигурация приводит к проблемам с безопасностью.

Все достаточно просто – злоумышленник воспользовался доступным извне Argo Dashboard для того, чтобы создать собственный Workflow: YAML, описывающий что и с чем необходимо сделать. Пример – создание контейнера с сryptominer.

Означает ли это, что ArgoCD лучше не использовать? Скорее это означает что все надо корректно настраивать и обращать внимание на практики по информационной безопасности, разрабатываемые, в том числе и maintener’ами проекта
Всем привет!

Недавно команда 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 идентифицировал попытки проникновения"

Надеемся, что проект получит развитие и количество лабораторных работ будет увеличиваться!
Всем привет!

Вышел новый 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 по приведённой ссылке.
Всех с пятницей!

Устали от всех этих деплоев, контейнеров, бесконечных обновлений гитлаба и, прости господи, кубернетиса? Тогда сегодня, специально для вас мы представляем вашему вниманию настоящее возвращение к истокам!

А какие "истоки" могут быть более приятные, чем сборка собственного компьютера из комплектующих, закручивание винтиков со всей любовью и подключение многочисленных шлейфиков? Уж если не это, то что тогда?

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

Брось девопс, открой бизнес, собирай компьютеры!
Всем привет!

Все мы понемногу становимся YAML-разработчиками. Отчасти – шутка, отчасти – правда!

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

Вариантов много, главное – найти максимально удобный для себя. А поиск этого лишнего или, наоборот, недостающего пробела в большом manifest – бесценно ☺️
Привет!

Просто и крайне удобный инструмент для идентификации default passwordsChangeme!

В настоящее время поддерживается:
🍭 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)
Всем привет!

У 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 и их продукция!
Привет!

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 для того, чтобы быстро ознакомиться с ключевыми тезисами.
Привет!

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.
Привет!

Отрицательный опыт – тоже опыт! Есть интересные подборки с 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. Всех с пятницей! Отличных выходных!
Всем привет!

Veracode сделал общедоступными часть своих интерактивных курсов по обучению безопасной разработке!

Доступно несколько базовых направлений:
🍭 Base Terminal
🍭 Juice Shop
🍭 Python AppSec
🍭 React

Если Вас интересует интерактивное обучение, то можно обратить внимание на проекты Kontra (о котором мы писали тут) и Codebashing от Checkmarx (если платная и бесплатная версия).

Также ребята сделали удобное сравнение между платной и бесплатной версией своего продукта (доступно по ссылке). Согласно сравнительной табличке Community Edition является Forever Free 😊
Всем привет!

Еще один cheatsheet на тему Docker security, на этот раз от GitGuardian!

Об этом есть множество аналогичных материалов, подборка от GitGuardian не стала исключением и состоит из знакомого перечня рекомендаций:
🍭 Корректное использование tags
🍭 Назначение default user
🍭 Исключение plain text секретов из ENV
🍭 Контроль доступа к docker daemon
🍭 Управление linux capabilities
🍭 Контроль файловой системы, возможностей на чтение/запись в определенные директории и другое

Что отличает рекомендации GitGuardian и почему стоит на них взглянуть? Крайне удобная схема, где все рекомендации собраны воедино. Можно использовать в качестве шпаргалки, когда надо посмотреть "а не забыл ли я что?" ☺️
Всем привет!

Рано или поздно вам придется столкнуться с 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-рекомендации, разборы «не типовых» сценариев, которые могут привести к указанной ошибке
Привет!

Статья, посвященная 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.
Всем привет!

Пока мы морально готовимся к «рабочим выходным», миримся с ушедшим бабьим летом и промокаем под постоянными дождями, наступила пятница!
И в этот день судьба решила порадовать нас и подарить чудесный солнечный день!
А мы порадуем вас интересной фичей - от команды хорошо знакомого нам 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
Kubernetes cloud native operations report 06.21.pdf
3.6 MB
Всем привет!

В приложении отчет от Canonical«Kubernetes and cloud native operations report 2021». Он содержит много интересной статистической информации на основе ответов 1200 респондентов.

Например:
🍭 Использование cloud (public, hybrid, private)
🍭 Информация о количестве кластеров
🍭 Использование виртуализации и/или bare metal
🍭 Helm-chart, насколько часто их используют
🍭 Основные опасения при работе с оркестраторами и многое другое!

Много цифр, мало «воды», рекомендуем к ознакомлению! ☺️