DevSecOps Talks
Ir al canal en Telegram
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Mostrar más8 070
Suscriptores
Sin datos24 horas
+47 días
+3330 días
Archivo de publicaciones
8 071
Управление уязвимостями в образах контейнеров
Всем привет!
В ИБ-мире средств контейнеризации и контейнерной оркестрации очень много интересных тем – от того, как правильно настроить кластер до обеспечения runtime-защиты запущенных контейнеров.
Зачастую, специалисты начинают свой путь в рассматриваемой сфере с управления уязвимостями (оставим за скобками насколько нужно на этом фокусироваться).
Для того, чтобы структурировать знания, предлагаем Вам обратить вниманием на статью. Сперва Авторы разбирают общую терминологию, а дальше углубляются в вопросы управления уязвимостями в образах контейнеров.
Рассматриваются:
🍭 Base Images
🍭 Enterprise Images
🍭 Application и Builder Images
🍭 Custom Of The Shelf (COTS), образы, получаемы от Vendor
Далее Авторы обращают внимание на вопросы, характерные для patch management. В завершении статьи рассматриваются лучшие «точки встраивания» сканеров для идентификации уязвимостей, а также потенциальные сложности, с которыми скорее всего придется столкнуться.
8 071
Безопасность CI/CD: обзор
Всем привет!
Легкая пятничная статья, посвященная безопасности CI/CD. Авторы, без погружения в детали, разбирают наиболее важные моменты.
В статье можно найти информацию:
🍭 О том, что такое CI/CD pipeline
🍭 Какие риски ИБ могут быть реализованы в случае недостаточного контроля
🍭 Почему безопасность CI/CD это важно
🍭 Какие есть лучшие практики, которые можно использовать
Хоть в статье и нет деталей, зато есть много ссылок на реальные инциденты или материалы, детализирующие вопросы обеспечения ИБ CI/CD
8 071
Анализ безопасности GitHub Actions
Всем привет!
Герой сегодняшнего поста – Raven – open source утилита, которая позволяет анализировать ИБ в GitHub Actions.
Работает по следующему алгоритму:
🍭 Скачивает данные о CI-конвейере
🍭 Обрабатывает полученные данные и помещает их в Neo4j базу данных
🍭 Обрабатывает полученные данные с использованием запросов. Ознакомиться с ними можно тут
🍭 Предоставляет отчет о проделанной работе
С его помощь можно идентифицировать уязвимости типа Injection, например: Issue, Pull Request, Workflow Run и CodeSee. По каждой из указанных уязвимостей в repo проекта можно ознакомиться с описанием, принципом работы и способами противодействия.
В завершении
readme.md можно найти Hall of Fame – перечень проектов, в которых были найдены недостатки, включая такие проекты как Docker-Slim и OpenSSF Scorecard8 071
Glasskube: пакетный менеджер для Kubernetes
Всем привет!
Недавно был представлен проект Glasskube, позиционирующий себя как пакетный менеджер для Kubernetes.
Основной задачей, которую он призван решить, является помощь в установке ПО и поддержании его в актуальном состоянии. Сделать это можно как с использованием GUI, так и с использованием CLI.
Пока что с использованием Glasskube можно установить 4 пакета:
🍭 Cert Manager
🍭 Ingress Nginx Controller
🍭 Kubernetes dashboard (кто бы знал зачем)
🍭 Cyclops
Из планов – добавление популярных инструментов: Prometheus, Velero, GitLab, KeyCloak, HashiCorp Vault и т.д. Если в голове сразу появился вопрос – «Хм, у меня есть Helm, зачем мне Glasskube?», то у ребят есть ответ на это.
С одной стороны выглядит интересно, с другой – не очень понятно зачем нужно подобное ПО в уже и без того плотной «экосистеме» Kubernetes. А что Вы думаете по этому поводу?
8 071
Kubernetes OWASP Top 10: Comprehensive Guide
Всем привет!
По ссылке доступен массивный разбор (~ 23 минуты чтения) практик обеспечения информационной безопасности Kubernetes, описанных в OWASP Top 10.
Рассматриваются такие области, как:
🍭 Misconfigurations
🍭 RBAC: control and audit
🍭 Network Segmentation
🍭 Logging and monitoring и не только
Каждый раздел детально описывается: приводятся примеры и лучшие практики, способы как можно выполнять рекомендации. Дополнительно Автор описывает утилиты, которые могут быть использованы для автоматизации. Например,
Kube-Bench, OPA, Prometheus, KubeView, RBAC Audit и еще много всего.
Материал может стать как отличным началом пути в обеспечении ИБ Kubernetes, так и источником «чего-то нового».8 071
Валидация API Token
Всем привет!
Leakey – bash скрипт, который позволит проверить валидность учетных данных (API Token), полученных, например, при проведении penetration test или при проведении reconnaissance.
«Внутри» уже есть проверки для:
🍭 Slack
🍭 GitHub
🍭 GitLab
🍭 Microsoft Azure и много чего еще
Если чего-то не хватает, то функционал можно просто расширить. Потребуется лишь дописать конфигурацию в файл
signatures.json8 071
Kubernetes: security-oriented scheduling стратегии
Всем привет!
Читая статьи про безопасность Kubernetes чаще всего можно встретить упоминание важности RBAC, сетевой изоляции и Network Policy, использования Admission Controller для анализа манифестов с целью дальнейшего принятия решения о возможности создания ресурса и много чего еще.
Однако, крайне редко где-то упоминается очень сильная возможность Kubernetes – контролируемый scheduling, который, в том числе, может быть полезен и ИБ. Самый простой пример – сокращение поверхности атаки (если критичное отделено от не критичного) и затруднение lateral movement.
Команда Doyensec в своей статье разбирает возможные способы управления выбором целевых узлов:
🍭 nodeSelector
🍭 nodeName
🍭 (Anti) Affinity
🍭 Taints and Tolerations
🍭 Создание собственного Scheduler
Для каждого из рассмотренных способов приводятся его сильные и слабые стороны, а также комментарии про то, кто «выиграет», если в конфигурации будет указано сразу несколько вариантов «фильтрации».
В завершении статьи предоставляются рекомендации о том, на что стоит обратить внимание при создании собственной security-oriented scheduling стратегии.
8 071
Обновление Testing Handbook и правил Semgrep
Всем привет!
Trail of Bits продолжают радовать своими наработками, которыми они делятся с сообществом. Testing Hanbook (о котором мы писали тут) был расширен разделом по CodeQL.
В нем можно найти:
🍭 Installation and first steps
🍭 Advanced usage
🍭 Continuous integration
🍭 Additional resources
Кроме этого, команда поделилась 30-ю правилами для Semgrep. Они позволяют анализировать
Ansible, Java, Kotlin, Shell-скрипты и не только. Например, можно искать попытки загрузки чего-либо через http`\`ftp, отключение проверки SSL и много всего еще.
Подробнее про правила можно почитать в статье, а ознакомиться с ними в GitHub Repo.8 071
Kubernetes: как усложнить себе жизнь?
Всем привет!
Статьи о том, как «делать не надо» иногда полезнее тех, в которых рассматриваются лучшие практики и советы о том, как и что лучше сделать.
В статье Автор предлагает рассмотреть следующие anti-patterns:
🍭 Отсутствие Request для ресурсов
🍭 Недостаток мониторинга и журналирования
🍭 Очень привилегированные контейнеры (когда зачастую этого не требуется, но так проще «стартовать»)
🍭 Использование namespace Default для создания ресурсов
🍭 Не использование
PodDisruptionBudget
🍭 Не использование podAntiAffinity и не только
Для каждого «вредного совета» Автор описывает почему так делать не стоит, а также приводит примеры того, «как правильно».
Если совсем просто – Kubernetes не волшебная технология и не делает все самостоятельно, очень во многом ему надо «помогать», чтобы он работал так, как хочется пользователям.8 071
В чем отличие между Docker контейнерами и подами в Kubernetes?
Всем привет!
Может показаться, что ответ на этот вопрос очевидный: мы привыкли к тому, что поды - это просто абстракция над контейнерами. Однако это не совсем так...
В этой интерактивной статье автор детально изучает что же на самом деле происходит при запуске контейнеров и подов, и отвечает на некоторые интересные вопросы:
🎹 Какие linux namespaces создаются при запуске Docker контейнеров и подов Kubernetes?
🎹 Как контейнеры и поды работают с Linux cgroups?
🎹 Можно ли запустить настоящий Kubernetes под без Kubernetes?
Статья будет интересна как начинающим DevOps инженерам, так и продвинутым специалистам, которые хотят детально знать, что же происходит в операционной системе "под капотом". А так же на сайте много других полезных обучающих статей!
8 071
Cvemap: обогащение информации об уязвимостях
Всем привет!
Год от года уязвимостей становится все больше и без того непростой процесс их устранения становится еще более сложным.
По этой причине появляются проекты, основная задача которых упростить процесс расстановки приоритетов в устранении уязвимостей. Реализуется это за счет консолидации информации из разных источников с целью предоставления пользователя достаточного (по возможности) количества данных для принятия решений.
Одним из таких проектов стал Cvemap. Он агрегирует информацию из таких источников как:
🍭 Known Exploited Vulnerability Catalog (KEVC). Информация о наличии exploit для уязвимости
🍭 Exploit Prediction Scoring System (EPSS). Оценка вероятности эксплуатации уязвимости
🍭 Proof of Concept (POCs). Примеры того, как можно эксплуатировать уязвимость
🍭 Nuclei Templates и не только. Наличие шаблонов поиска уязвимости с использованием Nuclei
Вся эта информация может упростить процесс управления уязвимостями. С исходным кодом проекта, а так же примерами его запуска можно ознакомиться в GitHub Repo.
8 071
Как найти 18 000 API Token в интернете?
Всем привет!
Команда Escape провела исследование 1 миллиона доменов в интернете, с целью поиска чувствительной информации. В итоге ребятам удалось найти 18 000 API Token, использование 41% которых могло нанести вред организациям (большинство из них было в JS коде).
Для этого ребята воспользовались алгоритмом:
🍭 Разработка специализированного web spider с использованием Golang
🍭 Анализ полученных данных осуществлялся с использованием собственной разработки Escape
🍭 Выбор целей для анализа на основе сведений от Majestic Million
🍭 Использование Kubernetes для управления нагрузкой на получившуюся системы – одновременно работали 150 instance’ов
🍭 69 часов на сбор информации, 189.466.870 URL, получение заветных API Token
Больше подробностей про исследование можно найти в отчете от Escape (~ 23 страницы), который мы направим в следующем посте.
8 071
Цепочка повышения привилегий в GKE
Всем привет!
Статья от Unit42 (Palo Alto) описывает сценарий повышения привилегий до уровня Cluster Admin в GKE.
Есть несколько допущений. Первое: злоумышленник уже обладает доступом к кластеру Kubernetes. Как именно? – ответ на этот вопрос не является частью статьи. Второе: на кластере установлен и используется Anthos (вариация Istio от Google).
Что дальше? Все достаточно просто! Сценарий, следующий:
🍭 Эксплуатация уязвимостей в контейнерах FluentBit. Это нужно, т.к. в GKE у него есть mount к
/var/lib/kubelet/pods и, как следствие, доступ к ServiceAccount Tokens
🍭 Поиск token’a Anthos и его дальнейшее использование для создания pod в namespace kube-system
🍭 Предоставление создаваемому pod роли clusterrole-aggregation-controller, обладающий повышенными привилегиями
🍭 Повтор «трюка» с FluentBit для получения token’a только что созданного pod
Завершает статью набор советов и рекомендаций, позволяющих запретить / сильно осложнить реализацию того, что написано выше. Все, как обычно – контроль доступа, контроль конфигураций, устранение избыточных полномочий и контроль изменений. Вроде бы просто, но на деле это не совсем так, особенно на большим масштабах 😊8 071
Получение образа из Dockerhub: как оно происходит?
Всем привет!
Еще одна обзорная статья, которая позволяет чуть глубже погрузиться в то, что «происходит под капотом». Допустим, была запущена команда
kubectl run pod –image=myimage.
Что произойдет дальше? Откуда образ появится на узле? Кто это делает? Что, помимо самого образа, хранится в реестре? Как работает layer cache и как определяются слои, которые уже есть?
Если вам интересно найти ответы – они есть в статье, включая удобные диаграммы последовательности между Runtime и Registry.
Завершает статью достаточно забавный разбор, связанный с ErrImagePull: Too Many Requests от Dockerhub. Чтобы такого не допустить, устанавливается Private Proxy Cache Registry. Количество запросов к Dockerhub замеряется снова.
Конечно, результат будет уже другой и понятно почему, но все равно интересно посмотреть на диаграммы взаимодействия и количество совершаемых запросов.8 071
Всем привет!
Рынок DevSecOps в РФ не стоит на месте и стремительно развивается!!!
В связи с этим у нас появился вопрос – «А чего, на Ваш взгляд, сейчас не хватает больше всего?» (если говорить по автоматизацию).
Поэтому мы сделали простой опрос, который просим пройти и сделать repost, чтобы получить более точные данные (насколько это возможно для статистики 😊)
8 071
Postgres-оператор с возможностью управления postgres extensions на лету.
Всем привет!👋
Сегодня мы хотим затронуть такую интересную тему, как базы данных в кластерах Kubernetes. Существует множество "За" и "Против" такого подхода, однако последнее время все чаще можно встретить статьи и записи докладов, в которых рассказаны реальные кейсы успешного использования баз данных в Kubernetes. Во многом это стало доступным благодаря операторам Kubernetes, которые упрощают процесс создания и управления инстансами БД в кластерах. И сегодня мы поговорим про еще один оператор:
Представляем вам Tembo - Postgres-оператор, написанный на Rust!
В основе оператора лежит другой, давно полюбившийся и считающийся одним из лучших CloudNativePG. Казалось бы, зачем писать еще один оператор, основанный на уже имеющемся?🤔 Но разработчики добавили несколько интересных концепций, которые, как нам кажется, многим будут полезны. А именно:
🎹 Концепция Stacks: заранее сконфигурированные и оптимизированные образы postgres для самых распространенных случаев
🎹 Возможность добавления postgres extensions на лету из репозитория Trunk! Вот уж, пожалуй, одна из самых полезных возможностей оператора! Теперь не нужно каждый раз пересобирать образ, если вдруг потребовалось добавить какое-то расширение!
Стоит ли использовать базы данных в Kubernetes для продакшена - вопрос по прежнему открытый, но в любом случае, рекомендуем подробнее почитать и может быть даже попробовать этот оператор!
8 071
CI/CD Goat: writeup!
Всем привет!
По ссылке можно найти подробный writeup на тему решения задач уровня «Easy» проекта CI/CD Goat.
Автор исследует следующие сценарии:
🍭 White Rabbit. Извлечение конфиденциальной информации через Direct Poisoned Pipeline Execution, D-PPE (с доступом на изменение конфигурационного файла конвейера).
🍭 Mad Hatter. Извлечение конфиденциальной информации через Indirect Poisoned Pipeline Execution, I-PPE (без доступа на изменение конфигурационного файла конвейера, но с доступом к файлам, которые им используются).
🍭 Duchess. Извлечение конфиденциальной информации из-за отсутствия «гигиены безопасности» при удалении информации из Git.
Скриншоты, комментарии, объяснения – все на месте! 😊
P.S. CI/CD Goat – уязвимое приложение, которое может быть использовано в обучающих целях для изучения OWASP Top-10 CI/CD Security. Подробнее про него мы писали вот в этом посте.
8 071
Хотите ли вы эпизодически видеть в нашем канале публикации с вакансиями из мира DevSecOps?
