Очередной #дайджест инструментов для проверки безопасности образов Docker
🔰 Clair — предназначен для интеграции с системами оркестровки контейнеров, такими как Kubernetes.
🔰 Trivy — поддерживает сканирование изображений на наличие уязвимостей в пакетах ОС и зависимостях приложений.
🔰 Anchore — может быть интегрирован в конвейеры CI/CD для обеспечения соблюдения политик безопасности на ранних этапах процесса разработки.
🔰 Dagda — предоставляет как интерфейс командной строки, так и REST API для интеграции в конвейеры CI/CD.
🔰 Snyk — его можно использовать для поиска уязвимостей в образах Docker и отслеживания их на предмет новых проблем.
🔰 Docker Bench Security — сам по себе это не сканер уязвимостей, но он помогает обеспечить безопасную настройку сред Docker.
🔰 Clair — предназначен для интеграции с системами оркестровки контейнеров, такими как Kubernetes.
🔰 Trivy — поддерживает сканирование изображений на наличие уязвимостей в пакетах ОС и зависимостях приложений.
🔰 Anchore — может быть интегрирован в конвейеры CI/CD для обеспечения соблюдения политик безопасности на ранних этапах процесса разработки.
🔰 Dagda — предоставляет как интерфейс командной строки, так и REST API для интеграции в конвейеры CI/CD.
🔰 Snyk — его можно использовать для поиска уязвимостей в образах Docker и отслеживания их на предмет новых проблем.
🔰 Docker Bench Security — сам по себе это не сканер уязвимостей, но он помогает обеспечить безопасную настройку сред Docker.
❤4🔥1🥰1👏1
Сколько возможно хостов в сети с маской 255.255.248.0
Anonymous Quiz
16%
510
12%
126
51%
2046
14%
32766
8%
8190
👏6😁6🔥1🤔1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
kubectx
Это инструмент командной строки, который позволяет пользователям переключаться между контекстами (кластерами) и пространствами имен Kubernetes быстрее и проще, чем с помощью одних только команд kubectl.
Установка
Можно установить с помощью Krew:
После установки инструменты будут доступны в виде kubectl ctx и kubectl ns.
Еще можно установить так:
и так:
Это инструмент командной строки, который позволяет пользователям переключаться между контекстами (кластерами) и пространствами имен Kubernetes быстрее и проще, чем с помощью одних только команд kubectl.
# switch to another cluster that's in kubeconfig
$ kubectx minikube
Switched to context «minikube».
# switch back to previous cluster
$ kubectx -
Switched to context «oregon».
# rename context
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context «gke_ahmetb_europe-west1-b_dublin» renamed to «dublin».
# change the active namespace on kubectl
$ kubens kube-system
Context «test» set.
Active namespace is «kube-system».
# go back to the previous namespace
$ kubens -
Context «test» set.
Active namespace is «default».
Установка
Можно установить с помощью Krew:
kubectl krew install ctx
kubectl krew install ns
После установки инструменты будут доступны в виде kubectl ctx и kubectl ns.
Еще можно установить так:
brew install kubectx
и так:
sudo apt install kubectx
GitHub
GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl
Faster way to switch between clusters and namespaces in kubectl - ahmetb/kubectx
👍8🔥1
Как скрыть процессы в Linux от других пользователей.
Если запустить pstree, ps, htop можно увидеть процессы не только свои, но также системные и пользовательские. В левой колонке будут имена пользователей.
Чтобы скрыть свои процессы от других пользователей, нужно перемонтировать /proc с опцией hidepid.
Параметр hidepid определяет какую информацию о процессах мы ограничим для пользователей, которые не являются владельцами этих процессов.
Параметры которые можно задать:
hidepid=0 - Включена по умолчанию, все видят всё, полный доступ к /proc/PID/.
hidepid=1 - Разрешает обращаться к информации только о своих процессов. Часть файлов в каталоге /proc/PID/ защищена.
hidepid=2 - Это тот же самый hidepid=1 + всё в /proc/PID будет невидимо для других пользователей.
Запускаем от рута:
Естественно после ребута сервера, все это пропадет. Чтобы этого не произошло — монтируем /proc в fstab.
Вставляем в /etc/fstab
Значением gid параметра может быть имя группы в системе, членам которой доступ к процессам будет разрешён. И затем маунтить /proc таким образом:
Если запустить pstree, ps, htop можно увидеть процессы не только свои, но также системные и пользовательские. В левой колонке будут имена пользователей.
Чтобы скрыть свои процессы от других пользователей, нужно перемонтировать /proc с опцией hidepid.
Работает только с пользователями, рут будет по-прежнему в курсе запущенных процессов
Параметр hidepid определяет какую информацию о процессах мы ограничим для пользователей, которые не являются владельцами этих процессов.
Параметры которые можно задать:
hidepid=0 - Включена по умолчанию, все видят всё, полный доступ к /proc/PID/.
hidepid=1 - Разрешает обращаться к информации только о своих процессов. Часть файлов в каталоге /proc/PID/ защищена.
hidepid=2 - Это тот же самый hidepid=1 + всё в /proc/PID будет невидимо для других пользователей.
Запускаем от рута:
mount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /procТеперь снова запускаем от обычного пользователя htop и наблюдаем, что выборка процессов пропала, и осталось +- 2, bash и htop.
Естественно после ребута сервера, все это пропадет. Чтобы этого не произошло — монтируем /proc в fstab.
Вставляем в /etc/fstab
proc /proc proc defaults,nosuid, nodev, noexec,relatime,hidepid=2 0 0Встречаются приложения которые могут отвалиться. Для этого нужно зафиксить маунт с опцией gid=VALUE.
Значением gid параметра может быть имя группы в системе, членам которой доступ к процессам будет разрешён. И затем маунтить /proc таким образом:
proc /proc proc defaults, hidepid=2, gid=bashdays 0 0Добавляем пользователя от имени которого будет работать приложение/демон в эту группу и проверяем — если всё сделано верно, то приложение заработает как обычно.
🎉26❤🔥4👍4👏1
🎢💈 Автоматическая генерация CI/CD пайплайна для развёртывания инфраструктуры
Статья от DevOps-инженера о том, как они создали генератор джоб в GitLab CI/CD и навсегда забыли о ручном написании пайплайнов для развёртывания элементов инфраструктуры.
Читать статью
#туториал
Статья от DevOps-инженера о том, как они создали генератор джоб в GitLab CI/CD и навсегда забыли о ручном написании пайплайнов для развёртывания элементов инфраструктуры.
Читать статью
#туториал
🥱5👏3
Что будете делать если у команды chmod убрали права на исполнение?
💩 Используем утилиту setfacl. По умолчанию её может не быть в системе.
💩 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
💩 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod. Создаём пустой файл с правами утилиты ls.
Копируем содержимое утилиты chmod в созданный файл:
Можно использовать:
💩 Почти то же самое что и предыдущий вариант только проще:
или так:
💩 Если умеете программировать, то, пример с Python:
setfacl -m u::rwx,g::rx,o::x /usr/bin/chmod
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmod**
cp --attributes-only /usr/bin/ls ./new_chmod
Копируем содержимое утилиты chmod в созданный файл:
cat /usr/bin/chmod > ./new_chmod
Можно использовать:
/new_chmod +x /usr/bin/chmod
install -m 755 /usr/bin/chmod ./new_chmod
или так:
rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥8🤩8😁6👏4
🐳 10 практик безопасности Docker
💈 Предпочитайте минимальные базовые образы
💈 Выбирайте наименее привилегированного пользователя. Просто так root не нужен.
💈 Подписывайте и проверяйте образы для предотвращения MITM-атак
💈 Поиск, исправление и мониторинг уязвимостей с открытым исходным кодом
💈 Не допускайте утечки конфиденциальной информации. Иногда при создании приложения внутри образа Docker вам нужны секреты, такие как закрытый ключ SSH, чтобы извлекать код из частного репозитория, или вам нужны токены для установки частных пакетов. Если вы копируете их в промежуточный контейнер Docker, они кэшируются на том уровне, на который они были добавлены, даже если вы удалите их позже. Эти токены и ключи должны храниться за пределами Dockerfile.
💈 Используйте фиксированные теги для неизменности
💈 Используйте COPY вместо ADD (рекурсивно копирует локальные файлы, неявно создает каталог назначения)
💈 Используйте метки метаданных
💈 Используйте многоступенчатую сборку для небольших и конфиденциальных образов docker. Эта функция позволяет вам использовать несколько временных образов в процессе сборки, сохраняя только последний образ вместе с информацией, которую вы скопировали в него.
💈 Используйте линтер, чтобы избежать распространенных ошибок и разработать рекомендации по наилучшей практике, которым инженеры могут следовать автоматически.
Вот тут подробно описаны все нюансы
#гайд
💈 Предпочитайте минимальные базовые образы
💈 Выбирайте наименее привилегированного пользователя. Просто так root не нужен.
💈 Подписывайте и проверяйте образы для предотвращения MITM-атак
💈 Поиск, исправление и мониторинг уязвимостей с открытым исходным кодом
💈 Не допускайте утечки конфиденциальной информации. Иногда при создании приложения внутри образа Docker вам нужны секреты, такие как закрытый ключ SSH, чтобы извлекать код из частного репозитория, или вам нужны токены для установки частных пакетов. Если вы копируете их в промежуточный контейнер Docker, они кэшируются на том уровне, на который они были добавлены, даже если вы удалите их позже. Эти токены и ключи должны храниться за пределами Dockerfile.
💈 Используйте фиксированные теги для неизменности
💈 Используйте COPY вместо ADD (рекурсивно копирует локальные файлы, неявно создает каталог назначения)
💈 Используйте метки метаданных
💈 Используйте многоступенчатую сборку для небольших и конфиденциальных образов docker. Эта функция позволяет вам использовать несколько временных образов в процессе сборки, сохраняя только последний образ вместе с информацией, которую вы скопировали в него.
💈 Используйте линтер, чтобы избежать распространенных ошибок и разработать рекомендации по наилучшей практике, которым инженеры могут следовать автоматически.
Вот тут подробно описаны все нюансы
#гайд
❤🔥21👍7🥰2
This media is not supported in the widget
VIEW IN TELEGRAM
🎉6🔥3👍2❤1🤔1
🤔 Очередной #дайджест для DevOps-ов
🪀 GitOps с расширенным управлением кластерами для Kubernetes — как управлять несколькими кластерами с помощью Argo CD и Advanced Cluster Management for Kubernetes
🪀 Чем так крут язык Lua — как работает Lua, почему он такой быстрый и как работает трассирующий JIT-компилятор в этом языке
🪀 ContainerSSH — SSH-сервер, запускающий контейнеры в Kubernetes и Docker
🪀 Контейнеры и Mikrotik — чем еще можно нагрузить ваш девайс
🪀 Fast-Kubernetes — в репозитории подробно рассматриваются объекты и компоненты Kubernetes, а также возможные сценарии использования
🪀 GitOps с расширенным управлением кластерами для Kubernetes — как управлять несколькими кластерами с помощью Argo CD и Advanced Cluster Management for Kubernetes
🪀 Чем так крут язык Lua — как работает Lua, почему он такой быстрый и как работает трассирующий JIT-компилятор в этом языке
🪀 ContainerSSH — SSH-сервер, запускающий контейнеры в Kubernetes и Docker
🪀 Контейнеры и Mikrotik — чем еще можно нагрузить ваш девайс
🪀 Fast-Kubernetes — в репозитории подробно рассматриваются объекты и компоненты Kubernetes, а также возможные сценарии использования
🎉26🔥19👍2❤1
Материал основан на опыте работы автора с этой технологией с 2017 года. Существует множество сторонних инструментов и методик, но в статье используются те, которые можно найти практически на каждом компьютере, или на CLI, которые можно быстро загрузить для MacOS, Windows или Linux.
📌 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Alex Ellis' Blog
How to Troubleshoot Applications on Kubernetes
Learn how to troubleshoot applications on Kubernetes. Because if it's not working, wouldn't it be great if you could find out why and fix it yourself?
❤27🔥3👍1🥱1
👀 Ответьте на 3 вопроса, чтобы получить вводные занятия, познакомиться с преподавателями и форматом обучения, можно здесь – https://proglib.io/w/1aa5ed89
Вас ждут:
1. Лекции «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов
2. Лекции «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ
3. Практические задания после лекций
4. Ссылки на дополнительные материалы для самостоятельного изучения
⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/1aa5ed89
Вас ждут:
1. Лекции «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов
2. Лекции «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ
3. Практические задания после лекций
4. Ссылки на дополнительные материалы для самостоятельного изучения
⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/1aa5ed89
👍2❤🔥1
👮👮 Безопасность DevOps. Автоматизация и новые инструменты
Цикл популярности понятий из безопасности приложений за 2022 и 2023 год.
В процессе внедрения системы безопасности в DevOps можно использовать многие инструменты, которые уже применяются в компании. Какие-то будут плотно интегрированы в процесс, а другие использоваться периодически.
Кроме старых, внедряются новые инструменты, чтобы устранить пробелы в инструментарии и дополнить возможности для автоматизации. Ключевые инструменты и процессы безопасности показаны на схеме вверху.
Приступайте к рассмотрению каждого этапа автоматизации и внедрения новых инструментов в существующий рабочий процесс.
#почитать
Цикл популярности понятий из безопасности приложений за 2022 и 2023 год.
В процессе внедрения системы безопасности в DevOps можно использовать многие инструменты, которые уже применяются в компании. Какие-то будут плотно интегрированы в процесс, а другие использоваться периодически.
Кроме старых, внедряются новые инструменты, чтобы устранить пробелы в инструментарии и дополнить возможности для автоматизации. Ключевые инструменты и процессы безопасности показаны на схеме вверху.
Приступайте к рассмотрению каждого этапа автоматизации и внедрения новых инструментов в существующий рабочий процесс.
#почитать
❤3🥰1
Знаете, чем отличается [[ ]] от [ ] ?
Скрипты с двойными скобками будут работать нативно в bash и ksh. А в POSIX-оболочках таких, как например sh — выпадет ошибка.
А еще в двойных скобках можно использовать операторы: ||, &&, <, ==, =~. В sh такое провернуть не получится.
При использовании оператора < в двойных скобках, экранирование не нужно.
Примеры:
Если хотите, чтобы скрипты работали везде, используйте синтаксис с одинарными скобками. Но, в свою очередь, использование двойных скобок и связанных с ними фич, делают код более читаемым и ясным для понимания.
Скрипты с двойными скобками будут работать нативно в bash и ksh. А в POSIX-оболочках таких, как например sh — выпадет ошибка.
А еще в двойных скобках можно использовать операторы: ||, &&, <, ==, =~. В sh такое провернуть не получится.
При использовании оператора < в двойных скобках, экранирование не нужно.
#/bin/shГлавная фича двойных скобок — использование регулярок.
[ "$s < abc" ]
#/bin/bash
[[ abc < abc ]]
Примеры:
#/bin/bashЕсли заменить первую строчку на #/bin/sh, то после запуска вылетит ошибка [[: not found.
s="abc123"
[[ "$s" == abc* ]] # true (globbing)
[[ "$s" == "abc*" ]] # false (literal matching)
[[ "$s" =~ [abc]+[123]+ ]] # true (regular expression)
[[ "$s" =~ "abc*" ]] # false (literal matching)
Если хотите, чтобы скрипты работали везде, используйте синтаксис с одинарными скобками. Но, в свою очередь, использование двойных скобок и связанных с ними фич, делают код более читаемым и ясным для понимания.
👍12❤4🥰4🤩4😁2
Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.
👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3😁3
🤔❓ Grafana 10: на что стоит обратить внимание в новом релизе
На GrafanaCON 2023 объявили о выходе десятой версии Grafana — инструмента для мониторинга и визуализации данных. Десятая версия — это последний крупный релиз, в котором появилось множество новых функций.
Grafana 10 помогает: подробнее анализировать данные и приходить к надежным выводам, удобнее работать в команде и делать более красивые дашборды. Grafana 10 полезна как опытным аналитикам, так и тем, кто только начинает свой путь.
👉 Если у вас уже установлена предыдущая версия Grafana, обновите ее
👉 Если предыдущая версия не установлена, скачайте Grafana 10
👉 Если вы не хотите быстро изучить новые функции без установки, зарегистрируйтесь на Grafana Cloud — там есть бесплатный доступ и подписки для любого сценария использования
Полный видос GrafanaCON можно посмотреть здесь.
Читать статью
#почитать
На GrafanaCON 2023 объявили о выходе десятой версии Grafana — инструмента для мониторинга и визуализации данных. Десятая версия — это последний крупный релиз, в котором появилось множество новых функций.
Grafana 10 помогает: подробнее анализировать данные и приходить к надежным выводам, удобнее работать в команде и делать более красивые дашборды. Grafana 10 полезна как опытным аналитикам, так и тем, кто только начинает свой путь.
👉 Если у вас уже установлена предыдущая версия Grafana, обновите ее
👉 Если предыдущая версия не установлена, скачайте Grafana 10
👉 Если вы не хотите быстро изучить новые функции без установки, зарегистрируйтесь на Grafana Cloud — там есть бесплатный доступ и подписки для любого сценария использования
Полный видос GrafanaCON можно посмотреть здесь.
Читать статью
#почитать
❤🔥23👍5👏2