Архив автора: admin

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

GitBucket — система совместной разработки в стиле GitHub.

GitBucket — это веб-платформа Git, работающая на Scala.

Недавно анонсирован выход новой версии GitBucket 4.38, которая разрабатывает систему совместной работы с репозиториями Git с интерфейсом в стиле GitHub, GitLab или Bitbucket.

GitBucket поставляется с набором функций прицела который включает в себя поддержку GitLFS, проблемы, запросы на вытягивание, уведомления, систему плагинов, общедоступные и частные репозитории Git, а также также может быть легко интегрирован с LDAP для управления учетными записями и группами. Код GitBucket написан на Scala и лицензирован под Apache 2.0.



Читать

🐳 Популярные ошибки в конфигурации, которые делают контейнерные приложения уязвимыми для атак

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

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

Итак, мы продолжаем статью 🦊 Современное состояние безопасности CI/CD и как предотвратить распространенные ошибки

Среди них популярны контейнерные приложения, обычно использующие такие технологии, как Docker.

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

Контейнерные приложения позволяют DevOps-командам поддерживать контейнеры с определенными конфигурациями и версиями приложений.

Эта практика также позволяет командам DevOps реплицировать их столько раз, сколько необходимо, и все это в автоматическом режиме.

Сочетание таких технологий, как Kubernetes (которая сделала развертывание, масштабирование и обслуживание контейнерных приложений очень простым) и Docker, зарекомендовало себя как решение для удовлетворения требований современных приложений, что привело к значительному росту их популярности в последнее время.

Однако внедрение новых технологий всегда чревато новыми ошибками и уязвимостями.

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

Какие популярные ошибки в конфигурации делают контейнерные приложения уязвимыми для атак?

Наиболее распространенным источником уязвимостей в таких технологиях, как Docker, Kubernetes и других технологиях автоматизации, таких как SaltStack, Ansible и Puppet, являются устаревшие версии программного обеспечения, а также отсутствие процедур усиления безопасности и надлежащего анализа конфигурации.

Права

Одна из самых основных форм неправильной конфигурации в Docker связана с повышением прав пользователя.

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

🐳 Почему процессы в контейнерах Docker не должны запускаться от имени Root

Если контейнер запускается под пользователем root и существуют уязвимости безопасности для данной версии Docker, то, например, в прошлом существовали уязвимости, которые позволяли злоумышленникам проникнуть на хост через уязвимое или неправильно сконфигурированное программное обеспечение, запущенное в самом контейнере.

🐳 Что такое Docker без root (rootless)?

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

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

Docker поддерживает работу в режиме пользователя rootless/non-root, что позволяет значительно повысить уровень безопасности, конфигурацию которого можно увидеть в официальном руководстве по Docker.

Безопасность данных/конфигурации

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

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

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

Хранение учетных данных – еще одна частая ошибка конфигурации.

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

Монтирование данных вне контейнера легко выполняется с помощью Docker.

Рассмотрим следующую команду Docker run:

docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started

В этом примере данные хранятся вне контейнера по пути /etc/todos – таким образом, контейнер работает независимо, позволяя создавать, уничтожать или перемещать контейнер, сохраняя данные как есть и в отдельном пути.

Автоматизация безопасности

Такие технологии, как Ansible, SaltStack и Puppet, используются для автоматизации задач, которые необходимо выполнять на большом количестве серверов.

Эти технологии используют файлы конфигурации, называемые “плейбуки”, которые содержат информацию о том, что и где должно быть выполнено.

Для работы этих плейбуков необходим доступ к серверам через SSH или аналогичный доступ на уровне консоли.

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

Рассмотрим следующий пример.

Чтобы установить MySQL с помощью Ansible:

- hosts: webservers

  user: vagrant

  sudo: true

  vars_files:

    - vars.yml



  tasks:

    - name: Install MySQL

      action: apt pkg=$item state=installed

      with_items:

        - mysql-server-core-5.5

        - mysql-client-core-5.5

        - libmysqlclient-dev

        - python-mysqldb

        - mysql-server

        - mysql-client



    - name: Start the MySQL service

      action: service name=mysql state=started



    - name: Remove the test database

      mysql_db: name=test state=absent



    - name: Create deploy user for mysql

      mysql_user: user="deploy" host="%" password={{mysql_root_password}} priv=*.*:ALL,GRANT



    - name: Ensure anonymous users are not in the database

      mysql_user: user='' host=$item state=absent

      with_items:

        - 127.0.0.1

        - ::1

        - localhost



    - name: Copy .my.cnf file with root password credentials

      template: src=templates/.my.cnf dest=/etc/mysql/my.cnf owner=root mode=0600



    - name: Update mysql root password for all root accounts

      mysql_user: name=root host={{item}} password={{mysql_root_password}}

      with_items:

        - 127.0.0.1

        - ::1

        - localhost

Как показано выше, мы можем использовать Ansible для установки определенной версии MySQL (5.5), запуска службы, удаления всех тестовых баз данных, добавления пользователя, удаления всех анонимных пользователей, копирования существующего файла my.cnf и обновления пароля root.

Поскольку пароль root MySQL, различная другая конфиденциальная информация (например, версия MySQL) и имя развернутого пользователя MySQL хранятся прямо в конфигурационном файле, безопасность становится насущной проблемой.

Раскрытие конфигурации/файлов

Конфигурация/файлы Docker могут быть идеальной демонстрацией такого рода неправильной конфигурации.

Давайте рассмотрим пример базового официального файла Docker compose (docker-compose.yml), используемого для установки WordPress с MySQL:

version: "3.9"



services:

  db:

    image: mysql:5.7

    volumes:

      - db_data:/var/lib/mysql

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: somewordpress

      MYSQL_DATABASE: wordpress

      MYSQL_USER: wordpress

      MYSQL_PASSWORD: wordpress



  wordpress:

    depends_on:

      - db

    image: wordpress:latest

    volumes:

      - wordpress_data:/var/www/html

    ports:

      - "8000:80"

    restart: always

    environment:

      WORDPRESS_DB_HOST: db

      WORDPRESS_DB_USER: wordpress

      WORDPRESS_DB_PASSWORD: wordpress

      WORDPRESS_DB_NAME: wordpress

volumes:

  db_data: {}

  wordpress_data: {}

Здесь мы видим, что MySQL 5.7 установлен из последнего образа WordPress, доступного на Docker Hub, а также пароль корня MySQL, имя базы данных, имя пользователя и пароль пользователя.

Поскольку конфигурация контейнера Docker перечисляется в виде обычного/человекочитаемого текста, включая пароли к базе данных, пути к данным и файлам, необходимо убедиться не только в надежности хранения файлов, но и в том, что любая часть автоматизированных процессов развертывания обеззараживается при использовании для развертывания контейнеров.

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

Раскрытие Kubernetes

Rancher – это мультикластерная платформа оркестровки с открытым исходным кодом, которая позволяет операционным командам развертывать, управлять и обеспечивать безопасность корпоративных Kubernetes.

Это программное обеспечение для оркестрации часто становится жертвой неправильной конфигурации; например, учетные данные администратора по умолчанию часто полностью раскрываются, что, в свою очередь, используется злоумышленниками.

Раскрытие консоли Kubernetes

Консоль Kubernetes (или дашборд) является важной частью настройки Kubernetes.

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

Раскрытие этой консоли может привести к различным типам атак.

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

Раскрытие Kubernetes Kustomization

Инструмент Kubernetes Kustomization используется для настройки объектов Kubernetes с помощью файла “Kustomization”.

Со страницы проектов Kustomize позволяет настраивать необработанные, свободные от шаблонов YAML-файлы для различных целей, оставляя исходный YAML нетронутым и пригодным для использования как есть.

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

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

А как насчет уязвимостей программного обеспечения для оркестрации контейнеров?

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

В конце концов, недостатки безопасности в этих инструментах могут быть как простыми, например, приборная панель позволяет обходить аутентификацию, так и сложными, например, приборная панель имеет уязвимости безопасности, позволяющие проводить инъекционные атаки shell.

Учитывая  уязвимость CVE-2020-16846, затрагивающую SaltStack Salt, программное обеспечение для управления инфраструктурой и оркестровки контейнеров, CVE позволяла осуществлять атаки shell injection при отправке определенных веб-запросов к API SaltStack.

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

Заключение

Наряду с неизбежным переходом на контейнерные приложения, используемые в организациях для обеспечения более простого управления, быстрого развертывания и эффективного масштабирования веб-приложений, возникают определенные критические проблемы безопасности, которые часто упускаются из виду при рассмотрении различных преимуществ (а иногда и сложностей) управления этими кластерами контейнеров.

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

Это особенно актуально для конфигурационных файлов, содержащих детали, касающиеся каждого аспекта развертываемого программного обеспечения: пути к данным, пароли баз данных и другие учетные данные доступа.

 



2022-09-09T13:33:57
Закрытие уязвимостей

Платформа для проведения ретроспектив онлайн

Практика в сфере инженерно-технических разработок, имеющая целью улучшение процессов, включает методологии и инструменты анализа предыдущих достижений. Популярность ретроспектив, проводимых для команд онлайн, набирает популярность. Одной из причин выступает внедрение гибких (гибкий – agile, англ.) технологий усовершенствования. Проекты и их этапы становятся более эффективными при коллективном переосмысливании.

 

Структура и особенности

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

Ретроспективные обзоры и демонстрации последовательно отражают периоды наработок. Подробный анализ проводится с нахождением закономерностей. Это приводит к повышению эффективности. Каждая agile-команда активно решает свои проблемы. Пользу получают и коллективы, работающие по методологии управления проектами Scrum.

 

Платформа ретроспектив спринта

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

Участниками выступают все члены команды, а также другие активные деятели, связанные с работой. Их объединяет собрание и общая задача, что весьма важно относительно существенных инвестиций в человеко-часы. Длительность ретроспективы зависит от продолжительности самого спринта. Месячные периоды требуют трехчасового обсуждения. Более короткие могут быть проанализированы на протяжении встречи в 90 минут.

В ходе сессии уделяется время самоанализу команды Scrum. Обсуждение проводится в нескольких форматах. Размышления над процессами, поведением приводит к полному или частичному исправлению ситуации, что в итоге повышает эффективность очередного спринта. На повестке стоит три главных вопроса:

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

 

Так ретроспектива охватывает прошлое и будущее, составляя единую картину. Перед командой в наглядной форме предстает обзор лучших идей по усовершенствованию мозгового штурма, основанный на анализе предыдущих результатов. Ретроспективы спринта отличаются преимуществами в плане постоянного улучшения каждого этапа разработки. Подобное планирование роста дает доступ ко всем возможностям гибкого (agile) подхода. Последовательная самооценка, укрепление ответственности участников — составляющие анализа процессов. Члены команды, играющие роль в обсуждении, поддержат все будущие изменения. Пути гибкого повышения эффективности могут быть рассмотрены в любой момент разработки. Команды понимают, на что они тратят время при проведении ретроспективы спринта, какие будут получены гарантии.



2022-09-08T16:49:08
Программирование

Изучение SSH: параметры и параметры конфигурационного файла SSHD

Изучение SSH: параметры и параметры конфигурационного файла SSHD

Изучение SSH: параметры и параметры конфигурационного файла SSHD

в предыдущем (четвертая) часть из этой серии постов на Изучение SSH мы обращаемся к параметры, указанные в Конфигурационный файл OpenSSH которые обрабатываются на стороне SSH-клиент, то есть файл «SSHConfig» (ssh_config).

По этой причине сегодня мы продолжим в этом предпоследняя и пятая доставка, с параметрами, указанными в Конфигурационный файл OpenSSH которые обрабатываются на стороне ssh-сервер, то есть файл «Конфигурация SSHD» (sshd_config).



Читать

Переименовываем сетевые интерфейсы в Debian

Сегодня научимся переименовывать сетевые интерфейсы на операционной системе Debian.






Рассмотрим два способа для переименования наших интерфейсов.




  • Первый способ будет основан на редактировании файлов сервиса systemd и перезагрузки последнего – данный способ пригодится, если вы хотите переименовать интерфейсы без перезагрузки системы.
  • Второй способ подразумевает редактирования файла GRUB – при данном способе будет необходима перезагрузить ПК.




И так приступим!




Переименовываем сетевой интерфейс с помощью systemd




Для того чтобы переименовать сетевой интерфейс в Debian 10 воспользуемся сервисами systemd.




Создаем файл, например 01-eth0.link




sudo nano /etc/systemd/network/01-eth0.link




со следующей информацией:




[Match]
MACAddress=aa:bb:cc:dd:ee:ff

[Link]
Name=eth0




После этого создаем ещё один файл:




sudo nano/etc/systemd/network/02-eth0.network




со следующей информацией:




[Match] 
Name=eth0

[Network]
Address=192.168.1.1




Перезапускаем службу systemd-networkd:




sudo systemctl restart systemd-networkd




Наш файл 01-eth0.link обрабатываются с помощью systemd-udev-trigger, поэтому для перезагрузки *.link файлов воспользуемся командой ниже:




sudo systemctl restart systemd-udev-trigger.service




Переименовываем сетевой интерфейс с помощью GRUB




Для того чтобы переименовать сетевой интерфейс с помощью GRUB откроем его конфигурационный файл на редактирование:




sudo nano /etc/default/grub




Добавьте следующие параметры ядра в переменную GRUB_CMDLINE_LINUX:




GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"




Обновим GRUB и перезагрузим систему после внесения изменений.




sudo update-grub $ sudo reboot



[endtxt]




. . . .




2022-09-07T16:52:07
Network

Программа 1С МДЛП

Возможности, предоставляемые данным сервисом

Посредством применения данного сервиса может регистрироваться надлежащим образом исчезновение лекарств и медикаментов из привычного оборота подобных препаратов, а также их реализации, по факту предоставления покупателем выписанного ему врачом рецепта. Данное приложение, именуемое «1С МДЛП», подробнее по ссылке: https://pcs.ru/extras/industry-solutions/medical-institutions, представляет собой качественную разработку для последующего ее применения компаниями, характеризующимися наибольшим оборотом медикаментов.

Данное приложение не имеет возможности быть примененным, в качестве самостоятельного решения, принимаемого в процессе осуществления надлежащего учета не только складского, но и управленческого характера. Посредством грамотного применения приложения происходит полноценное сочетание всяческого ПО, в надлежащей степени внедренного в исполнение, при помощи 1С, а именно:

  • Управление сформированным медицинским центром.
  • Стоматология.
  • Аптечная деятельность в лечебном учреждении.
  • Аптечная деятельность в сфере оптовой и розничной торговли.
  • Грамотная реализация руководства сформированной сетью аптек.

 

Использование этого приложения предоставляет доступ к следующим действиям:

  • 1) Исполнение полноценного подключения к процессу сферы ФГИС МДЛП.
  • 2) Осуществление различных действий, связанных с процессом качественной упаковки лекарственных средств и возможность зафиксировать любое действие в специальном журнале.
  • 3) Осуществление приемки либо отгрузки лекарственных средств.
  • 4) Обеспечение сохранности сведений, касательно истории обмена, с целью их просмотра.
  • 5) Ведение надлежащего справочника, в соответствии с названиями и характеристиками лекарств.
  • 6) Перемещение соответствующих товаров внутри сети.
  • 7) Выдача соответствующих средств, согласно содержанию льготного рецепта.
  • 8) Обеспечение уничтожения лекарственных средств с истекшими сроками годности.

 

Стоимость поддерживаемого приложения

  • 3000 рублей – на 3 месяца;
  • 6000 рублей – на 6 месяцев;
  • 12000 рублей – на календарный год;
  • 1850 рублей – дополнительная поддержка на 3 месяца;
  • 3550 рублей – дополнительная поддержка на полгода;
  • 6800 рублей – дополнительная поддержка на год.

Кому может оптимально подходить приложение 1С МДЛП

  1. Различным учреждениям, ведущим аптечную деятельность, непрерывно проводящим реализацию соответствующих медикаментов посетителям.
  2. Разнообразным компаниям, имеющим отношение к медицинской активности, в том числе в собственных филиалах и представительствах.
  3. Компаниям, занимающимся врачебной практикой, помимо собственной деятельности, предусмотренной уставом, т.е.:

— учреждениям, в полной мере связанным со сферой образования;

— институтам социального сервиса;

— организациям, типа исправительных колоний различного режима;

— институтам, связанным с научной деятельностью;

— прочим подобным компаниям.

 

Каким образом устанавливается и настраивается приложение

  • 1) Первым делом осуществляется регистрация в ГИС МДЛП.
  • 2) Далее, в целях надлежащей маркировки настраиваются сканер и терминал, собирающий информацию.
  • 3) Происходит настройка ЭЦП (т.е. соответствующей УКЭП для маркировки препаратов).
  • 4) Надлежащим образом настраивается будущее осуществление обмена данными 1С маркировки с МДЛП.
  • 5) К 1С МДЛП происходит необходимое подключение регистрирующего устройства выбытия.
  • 6) Происходит надлежащее обучение сотрудников, в соответствии с инструкцией.



2022-09-07T15:24:52
Программное обеспечение