DevSecOps Talks
6.61K subscribers
61 photos
73 files
988 links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Совместим ли GitOps с Database Rollback?

Всем привет!

GitOps – прекрасный подход, который позволяет реализовать декларативное управление состоянием программного обеспечения.

Реализовали новую функциональность? Не проблема. Операторы Kubernetes синхронизируют изменения и автоматически применят их в кластере. Что-то пошло не так? Не проблема. Всегда можно «откатиться на предыдущий commit и разбираться что пошло не так».

В теории все очень классно, но что можно наблюдать на практике? Для stateless приложений такой подход может работать очень хорошо, а что делать с stateful?

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

Именно этой проблеме посвящена статья. Авторы разбирают:
🍭 Up и Down- миграции, возможную проблематику их реализации
🍭 Возможности ArgoCD по реализации миграций, нюансы работы с rollback
🍭 Использование Atlas Operator для управление схемой (schema) БД, включая rollbacks

В статье очень много интересных теоретических аспектов, связанных с работой баз данных. Кроме того, можно не читать статью, а посмотреть видео с прошедшего KubeCon (оно доступно в начале статьи).
SAST: руководство для начинающих!

Всем привет!

Сегодня хотим поделиться с вами обзорной статьей про Static Application Security Testing. Сперва Автор кратко описывает что это такое, зачем оно нужно и почему это важно.

Далее – переходит к самому интересному, а именно – способам анализа, которые могут быть «под капотом» у анализатора

Рассматривается следующее:
🍭 «Grep»-техника (она же pattern-matching)
🍭 Control Flow Analysis
🍭 Data Flow Analysis
🍭 Taint Analysis

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

Помимо этого, есть краткое описание Enterprise и Open Source сканеров с указанием типов анализа, которые они поддерживают.

Завершают статью рекомендации о том, с чего можно начать реализацию практики статического анализа, как можно «бороться» с False Positive. И, конечно же, не обошлось без возможных областей использования машинного обучения для рассматриваемых задач.

В итоге получилось очень хорошее руководство для новичков, которые только начинают свой путь в SAST 😊
Service Mesh: DIY

Здрасссссьте Всем привет!

Хотели разобраться в том, что такое Service Mesh? Тогда эти статьи (раз, два) могут вам понравиться. В них Автор предлагает создать свою собственную реализацию!

Конечно не для production ready окружений, но для обучающих целей точно сойдет!

Предлагается пройти вот такой путь:
🍭 Создание http-client и http-server
🍭 Реализация proxy для перехвата requests и responses
🍭 Добавление созданных сущностей в Deployment
🍭 Автоматизация предыдущего шага с использованием собственного Admission Controller

Указанные шаги Автор реализует с использованием Golang. Код, пояснения и примеры, ссылки на конфигурационные файлы и используемый инструментарий – все это есть в статье для воспроизведения

P.S. А если не хочется читать статью, то все необходимое собрано в этом GitHub Repo 😊
Штурвал - community версия

Всем привет!

Не можем остаться в стороне и не поделиться интересной новостью. Лаборатория Числитель выпустила community версию своей платформы контейнерной оркестрации - Штурвал.

В community версии есть:
🍭бесплатная лицензия с неограниченным сроком действия
🍭полный функционал, сопоставимый с коммерческой редакцией продукта
🍭управление до 10 воркерами любой конфигурации

И важные ссылки:
🍭форма для получения лицензионного ключа
🍭чат community в Телеграм
Kubernetes Endpoints: что это и зачем?

Всем привет!

Endpoints играют важную роль в «жизни» Kubernetes – они помогают «связывать» Service с Pod для корректной работы приложений.

Но что это такое и как это работает изнутри? Если вам интересно разобраться, то эта статья может быть вам полезна.

Автор рассматривает:
🍭 Что такое Endpoint и как они работают (создание Service, создание Endpoint, обновление Endpoint)
🍭 Структура Endpoint с пояснениями
🍭 EndpointSlice, их роль, назначение и принцип работы

В завершении статьи приводится демонстрация на примере простого Deployment и его Service, в котором рассматриваются описанные в статье сущности.
Mend Renovate: автоматическое обновление зависимостей

Всем привет!

Mend Renovate – решение, которое позволяет идентифицировать устаревшие версии используемых библиотек и предлагает варианты по обновлению.

По умолчанию Renovate поддерживает более 90 пакетных менеджеров, включающих в себя как языки программирования, так и средства автоматизации управления ИТ-инфраструктурой.

Алгоритм работы весьма прямолинейный:
🍭 Сканирование репозиториев для идентификации пакетов и зависимостей
Проверка на наличие более свежей версии
🍭 Открытие PR (MR) на обновление с дополнительной информацией (Age, Adoption, Passing, Confidence)

Познакомиться с его работой поближе можно в статье. В ней Автор использует Renovate для управления Helm Charts. Описаны все шаги – от подключения GitHub Repo до создания PR на обновление Chart.

Renovate доступен в нескольких вариантах: CLI (open source), Community и Enterprise. О разнице и ограничениях разных вариантов можно прочесть вот тут.

И, конечно же, больше подробностей можно узнать в документации на решение, доступной по ссылке.
Анализируем CVE

Всем привет!

Вроде нет ничего в мире ИБ более «знакомого», чем CVE (разве что КЦД 😊). Про них часто говорят, их разбирают и анализируют.

Однако, бывают случаи, когда надо просто и понятно объяснить, что это такое. Например, разработчику ПО, которого мы просим обновить библиотеку, чтобы устранить CVE-XXX-YYYY.

В статье от SNYK как раз содержится такой необходимый набор:
🍭 Получение информации о CVE
🍭 Анализ уровня критичности CVE
🍭 Изучение CWE, характерных для CVE. Разница между CVE и CWE
🍭 Возможность эксплуатации CVE
🍭 Стратегии по устранению уязвимости

Каждый блок разбирается на конкретной уязвимости, а именно: CVE-2020-8203 (prototype pollution в Lodash).

В итоге получается очень неплохой минималистичный обзор, позволяющий быстро ввести кого-либо в курс дела.
ZTRA.pdf
8.5 MB
Zero Trust Reference Architecture для Kubernetes

Всем привет!

В приложении – электронная книга (~ 68 страниц), в которой описана Zero Trust архитектура, которую Авторы предлагают реализовать в Kubernetes.

Для этого они предлагают использовать:
🍭 Emissary-ingress. Защита доступа извне
🍭 Linkerd. Контроль взаимодействия сервисов внутри
🍭 Cert-Manager. Управление множеством сертификатов, которые понадобятся
🍭 Polaris. Контроль политик и выполнения их требований

Само повествование линейно – от того, что такое Zero Trust и основных терминов, до погружения в предлагаемые технологии.

Авторы описывают почему они выбрали именно такой набор, приводят общее описание функционала и способы настройки для того, чтобы собрать все «воедино».

P.S. Кстати, все приложения, конфигурационные файлы и т.д., используемые в книге, можно найти в GitHub Repo (ссылка на него есть в книге 😊).
Минималистичное обучение по уязвимостям

Всем привет!

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

Например:
🍭OWASP Top 10, Web (куда без него)
🍭Logging and Monitoring
🍭Buffer Overflows
🍭Host Header Poisoning

Из плюсов подборка достаточно большая, материал подается просто и наглядно. Из минусов – только теория.

Как вариант, материал может пригодиться для вводных курсов специалистов,которые только начинают свое погружение в этот увлекательный мир.

Или для быстрого и краткого ознакомления с темой, чтобы «быть в курсе».
Snyk_SOOS_Report_2024.pdf
8 MB
The State of Open Source

Всем привет!

В приложении можно найти небольшой отчет (~ 12 страниц) от команды SNYK, посвященный вопросам безопасности Open Source.

Внутри есть информация о:
🍭 Отслеживании зависимостей (прямые, транзитивные)
🍭 Частоте изменений кодовой базы
🍭 Используемых практиках анализа кода и зависимостей
🍭 Случаях, связанных с Supply Chain Security
🍭 Соблюдении SLA и не только

Минимум текста, максимум графики и данные за 2023 и 2024 год.

В целом – достаточно хороший и информативный отчет, который можно быстро изучить.
Все любят Policy as Code, но не все любят Rego

Всем привет!

Policy as Code крайне удобный подход к управлению доступом, анализу выполнения корпоративных требований.

Он декларативен, его можно автоматизировать, конфигурационные файлы можно хранить в git, возможности (практически) безграничны.

Однако, есть и нюансы. В статье Автор описывает несколько примеров, связанных с Open Policy Language (OPA) и Zanzibar.

Если обобщить, то получается следующее:
🍭 Сложность. Написать базовые политики крайне просто, а что-то «поинтереснее» - уже сложно
🍭 Порог входа. Написание политик требует технических навыков
🍭 Дополнительные знания. Для корректной работы с Rego или Zanzibar потребуется изучить «еще одну область знаний»
🍭 Масштабируемость. При увеличении количества политик их тестирование и поиск ошибок в них становится затруднительным

В качестве решения Автор предлагает использовать абстракции более высокого уровня и low-code интерфейсы. Например, Permit (есть бесплатная Community версия).

Основная идея – создание простого drag and drop UI, с которым могут работать все пользователи. А вся «магия» остается «под капотом».

А что вы думаете по этому поводу? Стоит ли оно того или лучше все-таки выучить REGO или иной аналогичный инструмент?
Supply-Chain Firewall

Всем привет!

Тематика безопасности цепочки поставки ПО набирает обороты. За последние годы было множество информации о различных атаках – от базовых typosquatting до более продвинутых *-jacking и манипуляций с пакетными индексами и менеджерами.

Чтобы хоть как-то упростить жизнь, команда Datadog выпустила новый open source инструмент – Supply-Chain Firewall.

Его принцип работы очень похож на аналогичный firewall-механизм, применяемый в композиционном анализе:
🍭 Supply-Chain Firewall «перехватывает» команду пакетного менеджера
🍭 Анализирует пакеты, которые хотят установить (используются собственные данные Datadog и OSV.dev)
🍭 Принимает решение (Block, Confirm, Allow)

На текущий момент поддерживается pip и npm. А если вы используете Datadog, то логи о срабатываниях firewall можно смотреть прямо в ней за счет реализованной интеграции.

Ссылка на GitHub Repo проекта, в котором описана его установка и использование с примерами, доступна вот тут.
Эксплуатация CSPT с использованием Evil Villain

Всем привет!

Недавно мы писали про Client Side Path Traversal (CSPT) – уязвимости, которая позволяет производить действия с файлами, используемыми клиентскими приложениями.

История закончилась на том, что команда Doyensec создала собственный playground, где можно познакомиться с уязвимостью поближе.

Сегодня предлагаем вашему вниманию продолжение! Небольшой guide от той же команды – как эксплуатировать CSPT с использованием Evil Villain.

В статье вы найдете:
🍭 Описание необходимого инструментария
🍭 Как идентифицировать и исследовать CSPT
🍭 Сбор дополнительной информации
🍭 Эксплуатация CSPT

Множество screenshots, примеров кода, комментариев и пояснений!

Кстати, очень рекомендуем блог Doyensec – там крайне много всего интересного 😊
Утилиты для валидации манифестов Kubernetes

Всем привет!

Одно из преимуществ IaC-подхода – возможность анализировать конфигурацию, которая будет применяться для реализации изменений.

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

Автор разбил материал на блоки:
🍭 Schema Validation – очепятки, ошибки с пробелами, несуществующие поля и т.д.
🍭 Custom Policies – утилиты, позволяющие проверять выполнение требований политик
🍭 Best Practices – анализ конфигурации на соответствие лучшим практикам
🍭 Dashboards – способы визуализации результатов, генерируемых некоторыми утилитами, описанными в статье

Получится такой вот «набор ссылок» на полезные утилиты, который разбавлен комментариями Автора и небольшими примерами (не для всех).
Большой обзор релиза 2.8 контейнерной платформы «Штурвал» — 17 декабря в 11:00

Всем привет!

Ну что, успели потестить бесплатную community-версию «Штурвала»?

Ребята из «Лаборатории Числитель» зовут на онлайн-обзор нового релиза 2.8. Расскажут про фичи последней версии и поделятся важной информацией для тех, кто собирается установить или уже начал использовать community-версию платформы, но не знает, с чего начать.

Что в программе:
🔵 Чем отличается community-версия от коммерческой платформы
🔵 Как создавать кластеры и управлять в них узлами
🔵 Как устроена архитектура решения: инсталлятор, управление через kubectl, IAC и GUI
🔵 Пользователи и доступы: как настроить подключение через Keycloak, Blitz, Login Plugin
🔵 Как управлять репозиторием, сервисами и ресурсами

Подробности и регистрация здесь, готовьте вопросы и подтягивайтесь онлайн!
Please open Telegram to view this post
VIEW IN TELEGRAM
Правила для Semgrep от Trail of Bits!

Всем привет!

Ребята из Trail of Bits выложили в открытый доступ еще 35 собственных правил для Semgrep. Всего их теперь 115, ознакомиться с ними можно здесь.

В новой подборке доступны правила для:
🍭 Ruby (большая часть – от Insecure SSL до проверок, связанных с десериализацией)
🍭 HCL (проверка TLS, поиск секретов, соответствие лучшим практикам)
🍭 YAML (большинство за поиск секретов)
🍭 Generic (проверка корректности использования криптографии)

Для каждого правила приводится небольшое описание.

А в завершении – краткий обзор функционала Semgrep (regex mode и поддержка HCL).
Почему Kubernetes не управляет пользователями?

Всем привет!

Впервые столкнувшись с Kubernetes многие немного удивятся тому, что в нем нет пользователей в «привычном» понимании.

Нет процедур «ввода пароля», нет вкладки «Пользователи», а есть только некий kubeconfig, в котором что-то написано.

Но почему это так? В статье ребята из Armo предлагают свою версию:
🍭 Гибкость, которую надо предоставлять пользователям для подключения удобных им механизмов аутентификации, которые уже есть в компании
🍭 Разные сценарии использования. Кто-то использует bare metal, кто-то облака, кто-то все вместе. И везде будут свои лучшие практики по аутентификации
🍭 Безопасность. Различные стандарты предъявляют много требований к управлению пользователями. В этом случае удобнее и проще воспользоваться чем-то уже существующим

Поэтому (как и всегда) целесообразней не изобретать велосипед, а использовать нечто готовое и проверенное. Главное - сделать "ручку", через которую можно настроить интеграцию.

В заключение статьи разбирается несколько примеров настройки интеграции Kubernetes с Auth-провайдерами и вопросы, связанные с ролевым управлением доступа (RBAC).
Kubernetes Spec: интерактивный режим

Всем привет!

Изучение спецификации (раздела spec) ресурсов Kubernetes может быть не самой простой задачей. Да, есть документация, есть kubectl explain, однако, это не всегда удобно и уж точно не наглядно.

Для того, чтобы решить эту проблему Автор создал Kubespec!

Он содержит:
🍭 Древовидную структуру раздела spec Kubernetes ресурсов
🍭 Описание каждого параметра
🍭 Тип данных параметра
🍭 Изменения в наличии/описании параметра, что происходили от версии к версии
🍭 Небольшие примеры использования
🍭 Ссылки на полезные ресурсы (документация Kubernetes, tutorials)

Все это доступно online и с материалом можно ознакомиться по ссылке выше. Поддерживаются версии Kubernetes: 1.12 – 1.32.

P.S. На текущий момент доступно описание не всех ресурсов, но «основные» - точно на месте 😊
Command Injection в Golang

Всем привет!

Еще одна обзорная статья от SNYK, посвященная вопросам анализа кода. На этот раз, в качестве примера используется Command Injection в Golang.

Статья может быть интересна тем, кто делает первые шаги в AppSec.

Внутри можно найти:
🍭 Что такое Command Injection и почему лучше не допускать его появления
🍭 Примеры реализации уязвимости в Golang
🍭 Способы устранения и контроля

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

Из приятного – все описано очень просто и понятно 😊
Package Analysis

Всем привет!

Еще один материал от команды OpenSSFPackage Analysis! Его задача – анализ пакетов с целью выявления чего-то вредоносного.

Для этого утилита ищет ответы на вопросы: с какими файлами пытается взаимодействовать пакет? Какие сетевые соединения он пытается создать? Какие команды он пытается запустить?

Работает он по следующему принципу:
🍭 Осуществляется мониторинг новых пакетов в repository
🍭 Постановка задачи на анализ пакета (scheduling)
🍭 Анализ пакета различными средствами
🍭 Помещение результатов в BigQuery

На текущий момент поддерживаются NPM, PyPi, RubyGems. Ознакомиться с результатами можно в общедоступном BigQuery DataSet.

«Локальный» запуск также возможен. Информацию о том, как это сделать, можно найти в GitHub Repo проекта.