Несмотря на то, что DevOps способствует внедрению инноваций и упрощает совместную работу, он также сопряжён с определёнными рисками и уязвимостями. Разработчики используют для работы с кодом платформы на базе Git, такие как GitHub, Azure DevOps, Bitbucket или GitLab.
Репозитории обычно содержат критически важные данные, а по мере роста команды расширяются, и их рабочие процессы усложняются. Всё это приводит к увеличению потенциальных рисков, которые могут повлиять на ваши данные.
Модель общей ответственности
Распределение обязанностей по защите данных SaaS осуществляется с помощью моделей общей ответственности, разработанных для конкретных платформ. Вы, как клиент, несете ответственность за данные, хранящиеся в ваших аккаунтах SaaS. Такие платформы, как GitHub, не обязаны помогать вам в восстановлении данных.
Поставщик услуг несет ответственность за бесперебойную работу своего сервиса, а пользователи — за безопасность данных, аккаунтов и устройств.
Это означает, что пользователи должны внедрять строгий контроль доступа, защищать учётные данные и использовать автоматическое резервное копирование. Всё это необходимо для защиты данных от атак программ-вымогателей, человеческих ошибок, таких как случайное удаление, и сбоев в работе сервисов. Более того, сами платформы SaaS рекомендуют пользователям создавать собственные резервные копии.
Различия в безопасности между платформами
Ведущие платформы распределённых систем контроля версий, такие как GitLab, предлагают встроенные функции безопасности. Они могут помочь в разработке стратегии киберзащиты. Конкретные средства контроля и инструменты различаются в зависимости от платформы и варьируются от PAT до средств контроля доступа и регулярных проверок.
GitHub
В GitHub пользователи получают встроенные средства контроля, которые включают в себя сканирование секретов, защиту от отправки, функции безопасности кода, такие как проверка зависимостей, и оповещения Dependabot.
Защита от отправки по умолчанию включена для новых общедоступных репозиториев и блокирует известные секреты при отправке. Сканирование секретов также включено для всех общедоступных репозиториев и может быть расширено для частных репозиториев.
Рекомендуется использовать многофакторную аутентификацию и защиту веток во всех проектах.
Bitbucket
В Bitbucket есть иерархический доступ с контролем на уровне команд/групп. Кроме того, разрешения на уровне проекта применяются ко всем репозиториям в этом проекте, если они не ограничены.
Безопасность во многом зависит от того, насколько регулярно администраторы проверяют области действия групп и конфиденциальность репозиториев. Функция Bitbucket Secret Scanning помогает отслеживать коммиты и пуши на предмет раскрытия учетных данных.
Обязательно настройте переменные конвейера и не раскрывайте конфиденциальные данные. Стоит отметить, что Bitbucket интегрируется с набором инструментов и сервисов Atlassian, таких как Jira.
GitLab
GitLab представляет собой комплексную платформу DevSecOps, которая включает в себя управление исходным кодом, CI/CD и тестирование безопасности.
Риски в основном возникают при самостоятельном развертывании, когда администраторы отвечают за усиление защиты, установку исправлений и резервное копирование.
В документации GitLab указано, что установка исправлений и обеспечение безопасности хоста возлагаются на клиентов, которые управляют системой самостоятельно. Обязательно внедрите строгое разделение ролей и изолируйте исполнителей.
Azure DevOps
Azure DevOps от Microsoft интегрируется с системой управления идентификацией через Microsoft Entra ID (SSO, MFA, условный доступ).
Для надежной защиты данных Azure DevOps необходимо правильно настроить подключения к службам и многоуровневые разрешения для проектов/организаций.
Microsoft подчеркивает, что ответственность за конфигурацию Azure DevOps лежит на заказчике в соответствии с моделью общей ответственности.
Распространенные уязвимости и проблемы в системе безопасности DevOps
Данные и конфигурации, хранящиеся на таких платформах, как Bitbucket, необходимы для современной разработки программного обеспечения. Поэтому ваш исходный код может стать отличной мишенью для кибератак или инсайдерских угроз. Злоумышленники требуют выкуп за доступ к вашим данным, от которых зависит непрерывность бизнес-процессов и безопасность.
Важно обеспечить безопасность на всех этапах и устранить известные в отрасли уязвимости.
К распространённым уязвимостям относятся:
-
Слабый контроль доступа
-
Неправильные разрешения и настройки репозитория
-
Отсутствие многофакторной аутентификации (MFA) или единого входа (SSO)
-
Устаревшие системы и рабочие процессы
-
Отсутствие автоматического резервного копирования (или использование GitHub, GitLab, Azure DevOps или Bitbucket в качестве резервного хранилища)
-
Отсутствие проверенных стратегий аварийного восстановления
-
Несоблюдение отраслевых норм
Например, произошла атака на цепочку поставок, нацеленная на популярное действие GitHub под названием «tj-actions/changed-files». Злоумышленники опубликовали вредоносное обновление под тем же названием пакета, которое использовалось в тысячах репозиториев, что могло привести к раскрытию данных репозитория и секретов CI/CD.
Векторы атак
Злоумышленники могут использовать уязвимости разными способами, чтобы получить доступ к вашим данным. Это может быть как фишинг и кража учетных данных, так и атаки с использованием программ-вымогателей. Программы-вымогатели шифруют или удаляют ваши данные, но способ их работы зависит от платформы:
| Платформа | Как этим злоупотребляют | Почему это позволяет использовать программы-вымогатели | Превентивные меры |
| GitHub | Украденные PAT/токены OAuth, вредоносные GitHub Actions, скомпрометированные средства непрерывной интеграции | Токены и вредоносные действия могут приводить к созданию/удалению репозиториев, отправке вредоносных коммитов, отравлению зависимостей или шифрованию артефактов | Детализированные PAT, единый вход и многофакторная аутентификация, действия из списка разрешённых, эфемерные исполнители, секретное сканирование, неизменяемые резервные копии вне платформы |
| GitLab | Взломанные самонастраивающиеся раннеры или учётные записи администраторов, небезопасные раннеры выполняют произвольные задания | Эти скомпрометированные исполнители/администраторы позволяют злоумышленникам удалять или изменять репозитории, вносить изменения в CI или удалять локальные резервные копии, хранящиеся на тех же узлах | Эфемерность/изоляция для бегунов, ограничение круга лиц, которые могут регистрировать бегунов, строгое разделение ролей, своевременное обновление, внешние неизменяемые резервные копии (включая конфигурацию и метаданные) |
| Bitbucket | Чрезмерные права доступа к проекту, утечка переменных конвейера, злоупотребление интеграциями/сервисами | Облачные учётные данные или секреты конвейера позволяют злоумышленникам получать доступ к хранилищам артефактов, зеркалам или облачным резервным копиям для шифрования/удаления | Ограничьте права доступа к проекту/репозиторию, меняйте ключи, правильно используйте переменные, ограничьте доступ сторонних приложений, используйте внешние неизменяемые резервные копии |
| Azure DevOps | Взломанные учётные записи Entra (Azure AD), подключения к службам с избыточными привилегиями, неправильно настроенные конвейеры | Сервисные подключения и доступ к ресурсам Azure позволяют шифровать артефакты, удалять резервные копии и выполнять деструктивные задания конвейера в больших масштабах | Обеспечьте условный доступ и многофакторную аутентификацию, подключения с минимальными привилегиями, ограничьте идентификацию в конвейерах, разместите хранилище резервных копий за пределами арендатора |
Случайное удаление
Еще одним риском является возможность случайного удаления данных или нанесения ущерба инсайдерами из числа сотрудников организации. Это может быть связано с опечаткой в команде или избыточными привилегиями, которые приводят к удалению проекта, но в долгосрочной перспективе это может иметь катастрофические последствия при отсутствии резервного копирования или гибких возможностей восстановления.
Злонамеренные инсайдеры могут намеренно нарушить работу системы или отключить ведение журнала. В обоих случаях это может привести к потере истории репозитория, дорогостоящему восстановлению, удалению и потере данных, а также к приостановке бизнес-операций.
Сбои в работе сервисов
Команды разработчиков программного обеспечения сталкиваются со сбоями в работе критически важных платформ, от которых они зависят. Перебои в работе означают отсутствие доступа к важным репозиториям и конвейерам CI/CD, что может полностью остановить бизнес-процессы. Последствия варьируются от срыва сроков и потери доверия клиентов до напрасной траты ресурсов.
Как повысить безопасность данных DevOps
Чтобы устранить все вышеперечисленные риски и обеспечить безопасность данных на платформах для размещения Git, организациям необходимо обеспечить безопасность на ранних этапах и соблюдать требования соответствия отраслевым нормам. Важно помнить, что секретные данные ни в коем случае нельзя хранить в репозиториях.
Управление доступом
Строгий контроль доступа подразумевает внедрение RBAC (управление доступом на основе ролей) и соблюдение принципа наименьших привилегий.
Таким образом, права доступа настраиваются индивидуально для каждой роли и назначаются соответствующим образом, при этом ни один пользователь не получает чрезмерных прав. Все права доступа следует регулярно проверять, а неактивные учётные записи — удалять.
Резервное копирование и аварийное восстановление
Стороннее решение для резервного копирования и аварийного восстановления — это своего рода страховочная сетка. Выбирая решение, убедитесь, что оно полностью охватывает ваш стек DevOps (данные проекта, репозитории и все метаданные). В идеале резервные копии должны создаваться автоматически, быть зашифрованными, иметь географическую избыточность и храниться в неизменяемом формате, совместимом с WORM.
Это должно дополняться гибким набором инструментов для восстановления: детальным восстановлением, перекрестным восстановлением, восстановлением на определенный момент времени и полным восстановлением данных.
Когда решения для резервного копирования и аварийного восстановления устанавливают эти флажки, вы гарантируете защиту от программ-вымогателей, соответствие отраслевым стандартам и соблюдение правила резервного копирования 3-2-1. Другие важные аспекты включают мониторинг и готовность к аудиту, интуитивно понятный пользовательский интерфейс, а также оповещения, уведомления и понятные журналы.