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

Всем привет!

Trivy – достаточно известный инструмент от Aqua Security, который используется для идентификации уязвимостей и некорректных конфигураций в образах контейнеров. Такой вот «швейцарский нож», который много чего умеет.

Многие уже знают, что это и как с этим работать. А если вы еще не пробовали, то рекомендуем вам вот эту статью. В ней Автор показывает, как работать с Trivy и Trivy Operator.

Например:
🍭 Сканирование образов на наличие уязвимостей
🍭 Сканирование конфигурационных файлов для идентификации проблем
🍭 Анализ файловой системы для поиска чувствительных данных
🍭 Запуск Trivy Operator для анализа образов, из которых запущены контейнеры в кластере Kubernetes
🍭 Отправка данных в Grafana и последующая визуализация

Ничего «сверхъестественного», просто хорошая обзорная статья, в которой рассматриваются разные режимы работы Trivy и «точки интеграции» в процессы безопасной разработки. А еще внутри можно найти наглядные и полезные sequence-диаграммы 😊
👍4🔥2
ChatGPT против Snyk!

Всем привет!

«Когда я впервые попросил написать ChatGPT *что-то* я был приятно удивлен результату! Казалось, что это может сэкономить кучу времени!» - так Автор начинает свою статью. Наверное, эта мысль отзывается многим.

Но так ли все хорошо на самом деле? Для ответа на этот вопрос Автор проделал простой эксперимент: он попросил ChatGPT написать ему конфигурацию для создания S3 Bucket при помощи Terraform.

Полученный результат Автор проанализировал с помощью Snyk и нашел достаточно много нюансов, связанных с ИБ. Да, впоследствии (согласно условиям эксперимента) скрипт был адаптирован силами того же ChatGPT и улучшен, но не факт, что ИБ-проблемы исчезли на 100%.

Из этого небольшого эксперимента можно сделать несколько выводов:
🍭 «Prompt engineering» - крайне важная вещь. ChatGPT не будет «додумывать» за вас что вам надо. Ему надо явно ставить задачу
🍭 AI/LLM – не панацея и все результаты, полученные с их помощью надо проверять. Поэтому не следует убирать проверки из ваших CI-конвейеров
🍭 Пока что AI/LLM могут выступать в качестве хорошего помощника, который может решить «проблему чистого листа», но не более

Вроде бы это и очевидно, но как соблазнительно все выглядит – хочется просто взять и скопировать результаты, запустить приложение и радоваться! Однако, доверяй, но проверяй.
👍5
Небольшие Kubernetes Quizzes!

Всем привет!

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

Например:
🍭 Counting endpoints (как и сколько endpoints будет у Service)
🍭 Waiting for miracle (как работает shutdown)
🍭 I said stop (как «оттянуть» время удаления Pod)
🍭 Designing shared clusters (какую архитектуру выбрать)
🍭Kernel panic (время паниковать? 😊)

На текущий момент доступно 19 таких «статей». Все приводить мы не стали, полный список можно найти по Автору – Daniele Polencic. Для каждого задания приводится условие, варианты ответов и непосредственно ответ с пояснениями.

Рекомендуем, прежде чем читать ответ, подумать, что именно будет происходить и почему 😊 Очень увлекательно!
👍7🔥51
Как контейнер устроен «внутри»?

Всем привет!

Сегодня хотим поделиться с вами еще одной теоретической статьей из цикла «как оно устроено». Такие статьи помогают лучше разобраться в технологии, в том, чего от нее ожидать и, как следствие, как ее можно защищать.

Если упростить, то контейнер это:
🍭 Один или несколько процессов, выполняемых пользователем (Processes)
🍭 Он изолирован от ОС, на которой запущен (Namespaces)
🍭 Также он ограничен в доступных ресурсах (Cgroups)
🍭 У него есть собственная файловая система, независимая от ОС, на которой он запущен (Chroot)

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

В статье Автор описывает что такое Processes, Namespaces, Cgroups и Chroot. Далее он предлагает создать «аналог контейнера» с использованием Golang: код и комментарии на месте.

Создание идет «по нарастающей» - от простого вывода в stdout до «изоляции и ограничения» с использованием Namespaces и Cgroups.
🔥9👍5
Безопасность Kubernetes: руководство новичка!

Всем привет!

Сегодня хотим предложить вам чтение на выходные! Статья про безопасность Kubernetes для начинающих, ~ 30 минут для прочтения.

Начинается все с постепенного погружения: что такое Kubernetes, из каких компонентов он состоит и зачем они нужны, какие задачи выполняют. Что такое ConfigMaps, Secrets, Volumes, Namespaces и т.д.

Дальше Автор углубляется в вопросы ИБ:
🍭 Общие концепты. Вопросы, связанные с AuthN/Z, использование Admission Controller, Pod Security, RBAC и т.д.
🍭 Векторы атак. Примеры тактик и техник, с «привязкой» к этапам kill chain
🍭 Реагирование и расследование. Набор рекомендаций для идентификации событий ИБ, характерных для сред контейнерной оркестрации

Таким образом статья представляет из себя отличный обзорный материал, в котором собрано все необходимое для того, чтобы начать погружаться в безопасность Kubernetes.
🔥61👍1
Контроль целостности образов в Kubernetes

Всем привет!

Контроль целостности образов, запускаемых в кластере Kubernetes – важный аспект безопасности цепочки поставки (Supply Chain Security).

В статье Автор предлагает реализовать его с использованием нескольких Open Source решений: Cosign, Kyverno и HashiCorp Vault.

Получается следующая схема:
🍭 Cosign подписывает образ в CI/CD
🍭 Ключ, используемый для подписи, хранится HashiCorp Vault
🍭 Kyverno проверяет наличие и валидность подписи перед тем, как запустить образ. Также она контролирует, что образ «извлекается» из доверенного источника

Как все это настроить, какие политики нужны для Vault и Kyverno, как это «соединить вместе» - очень детально описано в статье. С примерами и комментариями Автора 😊
👍7🔥41
Application Security Cheat Sheet!

Всем привет!

По ссылке можно найти «сборник cheat sheets», посвященных Application Security. Cheat sheet – это небольшая «шпаргалка», в которой содержится «выжимка» по некоторой теме.

Что есть внутри:
🍭 Контейнеры. Основные принципы технологии, способы «побега»
🍭 Linux. Немного про основы и bash tips
🍭 Мобильные приложения. iOs и Android
🍭 Web Application. Cookie Security, CORS, Race Condition и многое другое

Можно найти сведения как об атаках, так и о способах защиты. Из плюсов – cheat sheets, как правило, весьма «конкретные и явные», из минусов – теорию и понимание основ с них поиметь сложно (а это важно 😊).
🔥2👍1
Коммитить нельзя сканировать: как мы боремся с секретами в коде

Всем привет!

Да, мы обещали не беспокоить вас более новостями о CyberCamp 2024, но не могли «пройти мимо»! Буквально в последний момент к составу спикеров присоединился Александр Карпов из команды VK!

В докладе Александр расскажет захватывающую историю: «Поиск секретов в исходном коде в масштабах VK — непростая задача. Мы предлагаем вам послушать, как мы ее решали, чтобы при случае применить полученные знания на практике.

Что будет в докладе:
🛡 Выбор оптимальной точки «контроля» секретов — сравнение pre-commit, web и server side hook
🛡 Комплексная архитектура решения — описание основных компонентов, связь с AppSec-экосистемой VK
🛡 Доработка Gitleaks — почему нас не устраивал вариант «из коробки» и что мы доделали сами»

Приходите, будет интересно и полезно! CyberCamp 2024 начнется уже в четверг этой недели!

P.S. Напоминаем, что следить за CyberCamp «в прямом эфире» можно в официальном TG-канале. Никакой рекламы, только информация о мероприятии, заданиях и ИБ 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5🥰21
SCSTM.pdf
98 KB
Supply Chain Security: угрозы и способы защиты

Всем привет!

В статье Автор детально разбирает угрозы, связанные с цепочкой поставки ПО, и способы защиты от них.

Внутри прилагаемого файла можно найти информацию:
🍭 Атакуемый компонент, способ воздействия
🍭 Пример реализации (качественный)
«Требования» к атакующему (prerequisites)
🍭 Потенциальное воздействие (impact)
🍭 Способы предотвращения
🍭 Способы обнаружения и прослеживаемости (traceability)

Команда провела просто колоссальную работу по моделированию угроз на всех этапах: от Source Code Repository до Production Cluster.

Все разложено по полочкам и отлично структурировано, рекомендуем!

P.S. Материал от 2022 года, но не теряет актуальности. А если хочется получить чуть больше информации по некоторым аспектам – рекомендуем прочесть вот эту статью.
👍1
Git Undo: не совершая непоправимое!

Всем привет!

Легкий пятничный пост-шпаргалка для тех, кто только осваивается в git и «боится нажать что-то не то, чтобы это не сломалось».

Например, вы хотите «отменить» изменения сделанные локально, случайно сделали commit не в ту ветку, случайно удалили ветку… Всякое бывает! Особенно, когда вы только начинаете работать с этим мощным инструментом.

В статье приведены 13 команд, которые могут помочь:
🍭 «Отмена» всевозможных изменений (локальных, удаленных)
🍭 «Перенос» commit в другую ветку
🍭 Просмотр старых commits
🍭 Восстановление «чего-то» удаленного и не только

Да, для тех, кто знаком и хорошо владеет git - ничего нового, а новичкам может быть крайне полезно. Как минимум, чтобы «не бояться сделать что-то не так»
👍92🔥1
GitOps с использованием Argo Rollouts

Всем привет!

Argo Rollouts – проект, который позволяет реализовать blue/green или canary/progressive deployment в Kubernetes.

Он заменяет стандартный Kubernetes контроллер на свой собственный – Rollout – который как раз и упрощает некоторые процедуры и расширяет функционал Kubernetes.

В статье Автор рассматривает следующие варианты:
🍭 Автоматизация Blue/Green deployment
🍭 Анализ успешности обновления (например, с использованием Prometheus)

Помимо манифестов, в статье приведено пошаговое описание процесса обновления.

А для тестирования возможностей Argo Rollouts можно воспользоваться вот этим приложением.
❤‍🔥1
IDOR: где и как их можно найти?

Всем привет!

IDOR представляет из себя достаточно «популярную» уязвимость, которая встречается в WEB-приложениях и/или API. Грубо говоря IDOR, позволяет обращаться к некоему объекту (будь то файл или запись в базе данных) без надлежащей проверки возможности и прав доступа.

В статье собрана информация о том, где чаще всего можно встретить указанные уязвимости.

Например:
🍭 Parameter Pollution
🍭 «Модификация» передаваемых JSON-объектов
🍭 Изменение методов (например, с GET на POST)
🍭 Использование устаревших версий API
🍭 IDOR «второго порядка» и не только

В статье приводится краткое пояснение к каждому методу.

Это может быть полезно для того, чтобы понимать «откуда может прилететь» и, соответственно, удостовериться, что все проверено. Входные данные проверяются, неавторизованные запросы не реализуются, а сеансы пользователей находятся «под контролем».
👍4
DepFuzzer! И это не то, что вы думаете!

Всем привет!

Использование open source для разработки ПО – данность, с которой мало кто будет спорить. С этим согласны и Авторы статьи.

Сперва в ней разбирается «по верхам» управление пакетами для Golang, Python, Rust и Node.JS. Например, откуда «берутся» пакеты, рассматриваются форматы файлов, в которых содержится перечень используемых пакетов (package.json, requirements.txt и т.д.) с кратким описанием.

После этого кратко разбирается процесс установки пакетов на примере Node.JS. И зачем все это нужно?

Для того, чтобы лишний раз подсветить вопросы ИБ, характерные для Supply Chain Security 😊. Например – dependency confusion.

И именно для решения этой проблемы ребята сделали собственную утилиту – DepFuzzer. Нет, это не fuzzer в классическом понимании и можно «немного расслабиться» 😊

Его задача – искать те самые dependency confusion для рассматриваемых в посте языков программирования.

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

P.S. Утилита достаточно «свежая», поэтому многого от нее на текущий момент ожидать не стоит. Но интересно посмотреть, во что она может развиться 😊
👍71
Атаки на GitHub Workflows и способы защиты от них

Всем привет!

В очередном отличном материале от OpenSSF рассматриваются возможные векторы атак на GitHub Workflows и рекомендации по защите.

Авторы проанализировали сценарии:
🍭 Запуск недоверенного кода в привилегированных Workflows
🍭 Внедрение вредоносного кода
🍭 Выпуск вредоносных релизов
🍭 Небезопасное использование cache и не только

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

Далее для каждого вектора приводится его «логическое описание», примеры реализации и способы по устранению недостатков. С пояснениями, кодом и примерами
Как AppSec и разработке понять друг друга? И от чего предстоит защищаться?

Выясним на SafeCode Meetup №3 от конференции SafeCode и Positive Technologies

📆 22 октября в Москве, в 19:00.

Доклады в программе:

Юрий Паликшанов из Альфа-Банка поделится опытом перевода с AppSec-овского на разработческий — как договориться, чтобы исправить уязвимости и писать безопасный код в будущем.
Алексей Морозов из Samokat.Tech покажет примеры свежих нетривиальных уязвимостей и способы от них защититься.

После каждого доклада у вас будет возможность задать вопросы спикерам — за лучшие вопросы к каждому докладу подарим билеты на конференцию SafeCode 2024 Autumn.

Для участия нужно зарегистрироваться.

Добавляйте событие в календарь, чтобы ничего не пропустить.
5👍2🔥1🥰1
Application Security Handbook

Всем привет!

По ссылке можно найти Application Security Handbook, которая является «логическим продолжением» Application Security Cheat Sheet (о которой мы писали тут).

Внутри собрана информация о:
🍭 AuthN/Z
🍭 Cookie Security
🍭 File upload
🍭 Input validation
🍭 Session Management и не только

Handbook не «привязан» к какому-либо языку. Каждый раздел содержит набор рекомендаций о том, что стоит делать и о том, чего лучше избегать.

Например, перечень «точек входа», которые надо контролировать: параметры запросов, HTTP-заголовки, Cookies, тело запроса и т.д.

Материал минималистичен: в нем нет «воды», только набор рекомендаций по тематикам, описанным выше.

Может пригодиться при создании собственной базы знаний по безопасной разработке 😊
🔥9
Netfetch: анализ сетевых политик Kubernetes

Всем привет!

Netfetch – утилита, которая позволяет проанализировать контроль сетевого трафика в кластере Kubernetes при помощи Network Policies.

С использованием Netfetch можно:
🍭 Получить сведения о pods, на которые не распространяются сетевые политики
🍭 Визуализировать информацию о pods и network policies в интерактивной карте
🍭 Создать Network Policies в случае их отсутствия
🍭 Просканировать определенную политику, чтобы получить информацию о pods, на которые она «действует» и не только

Nefetch представляет из себя CLI-утилиту и интерактивный dashboard, который отображает информацию, описанную выше.

Утилита работает со следующими видами Network Policies: Native, Cilium и Calico.

Больше информации – примеры использования, демонстрация возможностей и внешний вид UI – все это можно найти в repo проекта.
👍7🔥1
Замена StatefulSets на Custom Operator: опыт Timescale

Всем привет!

На протяжении некоторого времени команда Timescale использовала StatefulSets для того, чтобы управлять клиентскими database pods и их volumes.

Однако, у StatefulSets есть ряд неудобств, например: «неизменность» VolumeClaimTemplate; нюансы, связанные с изменением размера Volume; особенности работы Rolling Update и не только (больше информации можно найти в статье).

Из-за вышеописанных причин команда решила заменить «стандартные» StatefulSets на собственные, которые они назвали PatroniSets. И, конечно же, не обошлось без собственного Kubernetes Operator’a.

Ребята определили набор требований:
🍭 Новый ресурс должен быть прямой заменой StatefulSets с «бесшовной миграцией»
🍭 Он должен понимать контекст PostgreSQL/Patroni: кто есть «главный»
🍭 CR должен быть полностью декларативен
🍭 Любые действия должны быть направлены на сокращение времени простоя. Например, в HA варианте реплика обновляется первой
🍭 Он должен управлять всеми изменения Volumes и не только

После определения требований команда начала разработку собственного оператора. Логика его работы и подводные камни, с которыми столкнулись в Timescale при его разработке - все это можно найти в статье.

В результате PatroniSets начали использовать для новых сервисов в феврале 2024 года. Спустя некоторое время команда убедилась в работоспособности концепта и готова переводить на него существующие сервисы.
🔥42💯1
ASPM for Dummies.pdf
2.5 MB
ASPM for Dummies

Всем привет!

Если вы хотите узнать чуть больше про такой класс решений, как Application Security Posture Management (ASPM), то книга в приложении может пригодиться.

В ней Автор рассказывает про:
🍭 Зачем нужны ASPM решения
🍭 Общий функционал, характерный для ASPM
🍭 Как понять, нужна ли вам подобная система
🍭 На что обращать внимание при выборе подходящей

Книга небольшая, ~ 35 страниц. Ответов на вопрос «Как?» вы не найдете, но «Что?» и «Зачем?» - вполне.

P.S. Материал хоть и «вендорский», но явный маркетинг в нем отсутствует и описываются общие вещи и принципы.
👍5🔥2
Kobs: observability для Kubernetes

Всем привет!

Kobs – open source проект, который позиционируется, как «application-centric observability platform for Kubernetes and Cloud workloads».

Его функционал достаточно обширен:
🍭 Возможность работы с ресурсами (например, edit)
🍭 Получение терминала до ресурсов
🍭 Сбор metrics, logs и traces
🍭 Отображение topology (визуализация взаимосвязи компонентов приложения)
🍭 «Интеграция» с Prometheus и Istio для взаимодействия с ними через Kobs и не только

Вся информация отображается в наглядном UI, примеры которого можно найти в repo проекта или на сайте.

Кроме того, Kobs можно «расширять» через plugins, часть из которых поставляется «уже из коробки» (Kiali,  Jaeger, Jira и т.д.).

Информацию об архитектуре, способе установке и первичной настройки решения можно найти по ссылке.
👍3💯1
Анализ исходного кода с CodeTotal

Всем привет!

CodeTotal – open source решение, которое позволяет анализировать code snippet, файл или репозиторий исходного кода на предмет наличия уязвимостей в коде и конфигурационных файлах.

Есть минималистичный UI, в который надо поместить вышеуказанное, нажать кнопку и «Готово»! Да, вот так просто 😊

Все потому, что CodeTotal – ни что иное, как графическая «обертка» над проектом MegaLinter, который включает в себя поддержку более 100 средств анализа.

Например:
🍭 Bandit
🍭 Checkov
🍭 GitLeaks
🍭 Semgrep
🍭 Syft и многое другое

Помимо ИБ-сканеров MegaLinter «поддерживает» анализаторы, связанные с качеством кода и корректностью написания конфигурационных файлов.

Нюанс в том, что CodeTotal не поддерживается разработчиком (последний release был в августе 2023), а вот MegaLinter – вполне!
👍3