Close

Как Snyk и Bitbucket Cloud создают условия для внедрения DevSecOps

Фотография Саймона Мейпла
Саймон Мейпл

Региональный технический директор, Snyk

Достижение целей DevSecOps путем интеграции Snyk с Bitbucket Cloud и Jira.

Интегрируйте платформу Snyk с несколькими продуктами Atlassian, чтобы усовершенствовать рабочие процессы и конвейеры команды DevSecOps. В этом учебном руководстве описаны шаблоны для обеспечения безопасности на более ранних стадиях жизненного цикла с помощью Atlassian Bitbucket и Snyk. Эти методы позволят команде сканировать рабочие нагрузки приложений и контейнеров со скоростью, которая в рамках концепции DevSecOps считается приемлемой. Вы узнаете, как эти шаблоны можно использовать для учета требований безопасности на каждом этапе конвейера.

Время

15 минут на прочтение.

Аудитория

  • Разработчики
  • Инженеры DevOps и DevSecOps
  • Команды по обеспечению безопасности и разработке приложений

Обязательные условия

У вас есть аккаунт Snyk. Войти можно здесь.

У вас есть аккаунт Atlassian Bitbucket. Войдите в систему или начните работу здесь.

Шаг 1. Настройте среду

Установка интерфейса командной строки (CLI) Snyk

CLI Snyk использует для аутентификации компьютера аккаунт Snyk. Этот инструмент помогает находить и устранять известные уязвимости в зависимостях как вручную, так и в рамках конвейера CI/CD. Подробные инструкции по установке интерфейса командной строки приведены на сайте Snyk в нескольких форматах, поддерживаемых популярными операционными системами и средами. Например, установить этот интерфейс в системе brew можно с помощью следующих команд:

brew tap snyk/tap
brew install snyk

После установки интерфейса CLI выполните следующую команду для аутентификации:

snyk auth

Откроется вкладка браузера, на которой можно завершить процесс аутентификации. После нажатия кнопки Authenticate (Аутентификация) вы сможете сканировать свой репозиторий. По завершении аутентификации можно вернуться в терминал и продолжить работу.

Дополнительные лабораторные ресурсы

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

Создание форка репозитория

Нажмите здесь, чтобы создать форк вышестоящего репозитория в своем аккаунте Bitbucket. Подробные инструкции по созданию форка репозитория см. в документации Atlassian.

Клонирование форка на локальный компьютер

После создания форка репозитория его необходимо клонировать. Подробные инструкции см. в документации Atlassian по клонированию репозитория.

Шаг 2. Подключите Snyk к Bitbucket

В этой части описывается процесс подключения Snyk к Bitbucket для сканирования приложения Bitbucket на наличие уязвимостей в открытом исходном коде.

Диаграмма процесса Bitbucket

Что такое анализ композиции программного обеспечения (SCA)?

Анализ композиции программного обеспечения (SCA) — это инструмент управления компонентами с открытым исходным кодом. Он создает отчет, в котором перечисляются все компоненты с открытым исходным кодом в приложении, включая прямые и косвенные зависимости. С помощью инструмента SCA команды разработчиков могут быстро отслеживать и анализировать компоненты с открытым исходным кодом в проекте.

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

Для чего нужен инструмент SCA?

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

1. Определить зависимости, используемые в приложениях.

2. Обеспечить соблюдение политик безопасности и соответствия требованиям на протяжении всего цикла разработки программного обеспечения (SDLC).

3. Заблаговременно устранить потенциальные уязвимости в исходном коде.

4. Улучшить эффективность команды и безопасность в компании.

3. Создайте пароль приложения

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

Чтобы создать пароль приложения, выполните следующие действия.

1. Нажмите свой аватар в левом нижнем углу и перейдите в раздел Personal settings (Личные настройки).

Окно Personal settings (Личные настройки)

2. В разделе Access management (Управление доступом) нажмите App passwords (Пароли приложений).

окно «управление доступом»

3. Нажмите Create app password (Создать пароль приложения).

окно «пароль приложения»

4. Укажите название пароля, связанное с приложением, для которого будет установлен пароль.

окно «пароль приложения»

5. Выберите права доступа для пароля приложения.

  • Account (Аккаунт): read (чтение)
  • Team membership (Членство в командах): read (чтение)
  • Projects (Проекты): read (чтение)
  • Repositories (Репозитории): read and write (чтение и запись)
  • Pull requests (Запросы pull): read and write (чтение и запись)
  • Webhooks (Веб-хуки): read and write (чтение и запись)

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

Шаг 4. Добавьте переменные репозитория

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

  • SNYK_TOKEN — токен API Snyk для аутентификации аккаунта Snyk. Это защищенная переменная.
  • IMAGE — имя образа контейнера. Эта переменная не является защищенной.

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

Окно настроек репозитория

Шаг 5. Получите токен API Snyk

1. Получите токен API Snyk

На консоли Snyk перейдите в меню Settings (Настройки) (на изображении обозначено значком шестеренки) и выберите General (Общие). Затем нажмите Copy (Копировать) в разделе Organization ID (Идентификатор организации).

Общие настройки Snyk

Скопировав токен, вернитесь в пользовательский интерфейс Bitbucket Cloud и определите переменную репозитория SNYK_TOKEN.

Шаг 6. Включите интеграцию с Bitbucket

На консоли Snyk перейдите в раздел Integrations (Интеграции) и выберите Bitbucket Cloud.

Окно интеграций Snyk

На странице интеграции Bitbucket Cloud введите имя пользователя Bitbucket в поле Username (Имя пользователя) и пароль приложения в Bitbucket из предыдущего шага в поле App password (Пароль приложения). Затем нажмите Save (Сохранить).

Settings (Настройки): окно интеграций

После успешного подключения Snyk к аккаунту Bitbucket появится сообщение подтверждения и возможность Add your Bitbucket Cloud repository to Snyk (Добавить репозиторий Bitbucket Cloud в Snyk).

Оставайтесь на этой странице. В следующем разделе вы узнаете, как импортировать репозиторий Bitbucket Cloud и сканировать его с помощью Snyk.

Сканирование и мониторинг приложения Bitbucket

миниатюра: сканирование и мониторинг bitbucket

Сканирование приложения на предмет уязвимостей в зависимостях с открытым исходным кодом начинается с исходного кода. В предыдущем разделе мы включили интеграцию Snyk с Bitbucket и теперь можем импортировать первый проект.

7. Добавьте репозитории Bitbucket Cloud в Snyk

На последнем экране из предыдущего раздела нажмите Add your Bitbucket Cloud repository to Snyk (Добавить репозиторий Bitbucket Cloud в Snyk).

Добавление репозиториев Bitbucket Cloud в Snyk

В модуле Configure Environment (Настройка среды) найдите созданный вами форк репозитория. Выберите его, установив флажок, и нажмите кнопку Add selected repository (Добавить выбранный репозиторий), чтобы импортировать проект.

Кнопка Add selected repositories (Добавить выбранные репозитории) в правом верхнем углу экрана

Шаг 8. Просмотрите отчет об уязвимостях

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

Отчет об уязвимостях
  • Fix this vulnerability (Исправить эту уязвимость) позволяет устранить уязвимости путем обновления прямых зависимостей или исправления уязвимостей.
  • Priority Score (Оценка приоритета) позволяет эффективно определить приоритет исправлений. Оценка варьируется от 1 до 1000 и рассчитывается с помощью фирменного алгоритма, который учитывает большое количество факторов, включая баллы CVSS, наличие исправлений известного вредоносного кода, новизну уязвимости и ее доступность.
  • Интеграция с Jira позволяет создавать задачи в Jira.
Simon Maple
Simon Maple

Simon Maple is the Field CTO at Snyk, a Java Champion since 2014, Virtual JUG founder, and London Java Community co-leader. He is an experienced speaker, with a passion for community. When not traveling, Simon enjoys spending quality time with his family, cooking and eating great food.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Семинар по моделированию

Рисунок схемы

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up