Рубрики
Uncategorized

Добавить Appsec на ваш конвейер CIRCLECI с помощью Stackhawk ORB

Когда вы проверяете уязвимость нового веб-приложения, вы получаете предупреждение и руководство о том, как это исправить? Остроумие Теги с безопасностью, дежопами, тестированием.

Когда вы проверяете уязвимость нового веб-приложения, вы получаете предупреждение и руководство о том, как это исправить? С новым StackHawk Circleci ORB вы можете, и это легко.

Современная среда CI/CD щетина с автоматией. Когда вы проверяете в своем коде, невидимая армия роботов идет на рабочее льминальное, компиляция, тестирование подразделения и интеграцию вашего программного обеспечения.

Эти процессы помогают нам коду быстрее Поскольку вам не нужно проводить время вручную наращивание и тестирование, а Лучше Так как вы получаете быструю обратную связь и рекомендацию по качеству кода. Теперь вы можете добавить тестовый Безопасность к вашему трубопроводу с StackHawk.

В этом посте мы будем использовать Cackhawk Circleci Орб Чтобы построить приложение, уволить его в контейнере и сканировать его для уязвимостей, все в пределах среды сборки CIRCLECI. Приложение

Я буду строить и сканировать Vulny Django Отказ Это небольшое приложение для веб-опросов, который главный сотрудник по безопасности Kackhawk, Скотт Герлач, построенный из Учебник Django Отказ Мы часто используем его для проверки сканирования и трубопроводов, потому что это просто, быстро построить, и он имеет хороший набор маршрутов и потенциальных недостатков безопасности.

Орб

Circleci ORBS — это умный способ упаковать сложные биты кода, чтобы сделать код конфигурации конвейера чистым и сухим. Недавно мы запустили наш собственный ORB, что делает его простым для сканирования в свой трубопровод. Он предоставляет все особенности StackHawk, включая возможность сканирования любого веб-приложения, находить маршруты путем сокрушительности, проанализируют спецификацию OpenAPI и даже graphqcl.

Орб предоставляет две работы, Hawkscan-Remote и Hawkscan — местный Отказ У каждого есть преимущества, но, как правило, лучше подходит для удаленных сканов, а другой лучше всего подходит для запуска самостоятельной сканирования в среде сборки CIRCLECI.

Давайте посмотрим на два варианта.

Stackhawk/Hawkscan-Remote

Это самый быстрый и прощенный двух заданий сканирования, но для него требуется удаленный экземпляр вашего приложения, чтобы быть запущенным и запущенным. Это отлично, если у вас есть существующая среда интеграции, доступна для Circleci. Все, что вам нужно, это добавить действительный Stackhawk.yml Файл конфигурации в свой исходный репозиторий и добавьте ключ API StackHawk как секрет Переменная среды Hawk_api_key. .

Вот пример конфигурации CIRCLECI, чтобы использовать удаленное задание Hawkscan:

# .circleci/config.yml
orbs:
  stackhawk: stackhawk/stackhawk@x.y.z
version: 2.1
workflows:
  scan-remote:
    jobs:
      - stackhawk/hawkscan-remote

И вот пример конфигурации Stackhawk:

# stackhawk.yml
app:
  applicationId: xxXXXXXX-xXXX-xxXX-XXxX-xXXxxXXXXxXX
  host: http://example.com
  env: Development

Stackhawk/Hawkscan — местный

Эта работа позволяет вам вращать свою собственную эфемерную среду интеграции прямо в вашем трубопроводе Circleci.

Когда Hawkscan-Local работает, он запускает VM Build, проверяет ваш исходный код, запускает ряд шагов, которые вы предоставляете, а затем запускаете Stackhawk/Hawkscan контейнер. На этапах вы предоставляете, вы можете запустить локальные услуги или контейнеры, которые должны быть отсканированы, прямо в облаке Circleci.

Положить все вместе

Мы будем использовать вторую работу, Stackhawk/Hawkscan - Местное , чтобы продемонстрировать с помощью ORB для запуска теста интеграции в вашем трубопроводе Circleci. Давайте начнем!

Получить ключ API Stackhawk

Перейти к https://stackhawk.com Зарегистрироваться. Создайте учетную запись и получите ключ API. Обязательно сохраните копию в безопасном нераскрыженном месте. Вам понадобится позже.

Клонировать вуйнский репозиторий Django

Перейти к https://github.com/stackhawk/vuln_django_play и вилкой наш репозиторий. Вы также можете клонировать его и скопировать его в BitBucket, если хотите. Ключ состоит в том, чтобы иметь свою собственную копию для воспроизведения и настроить в качестве проекта в Circleci.

Возьмите взгляд на файлы в этом репозитории.

├── .circleci/
│   └── config.yml
├── .gitlab-ci.yml
├── Dockerfile
├── README.md
├── nginx.default
├── src/
├── stackhawk-circleci.yml
├── stackhawk-gitlab.yml
├── stackhawk.yml
└── start-server.sh

SRC каталог содержит сам приложение. И Dockerfile Файл будет использоваться для создания приложения и контейнеризации его. Есть и другие файлы, связанные с другими системами сборки, такие как .gitlab-ci.yml для gitlab. Для наших целей мы сосредоточимся на этих трех файлах:

  1. Stackhawk.yml — файл конфигурации Hawkscan
  2. Stackhawk-circleci.yml — Дополнительный файл конфигурации Hawkscan, который мы будем использовать для настройки нашего сканирования для Circleci
  3. .circleci/config.yml — Файл конфигурации проекта Circleci

Настроить Hawkscan

Проверьте основной файл конфигурации, Stackhawk.yml Отказ Мы используем этот проект для тестирования много сценариев командной строки и автоматизации, поэтому мы вкладываем все наши общие конфиги здесь, такие как параметры аутентификации ( app.authentication ) и глубина сканирования ( hawk.spider ).

Для моего трубопровода Circleci я хотел настроить несколько из этих параметров, поэтому я создал Stackhawk-circleci.yml и поставить мою переопределение там. Они будут объединены сверху основного файла конфигурации. Вот весь файл:

# stackhawk-circleci.yml
app:
  applicationId: ${APP_ID}
  host: http://vulny-django:8020

Это переопределит app.applationivationId и app.host Записи из основной конфигурации. Я настрою App_id Переменная среды в конфигурации Bircleci Build ниже, используя Stackhawk/Hawkscan - Местное Параметр, app-id Отказ

Настроить Circleci

Давайте посмотрим на файл конфигурации Circleci Build.

# .circleci/config.yml
version: 2.1

orbs:
  stackhawk: stackhawk/stackhawk@1.0.1

workflows:
  build-and-scan:
    jobs:
      - stackhawk/hawkscan-local:
          configuration-files: ./stackhawk.yml ./stackhawk-circleci.yml
          docker-network: scan_net
          app-id: 685847dd-0a74-4f02-b4d2-53f2396c93ed
          steps:
            - run:
                name: Build Vulny Django
                command: docker build -t vulny_django:latest .
            - run:
                name: Run Vulny Django
                command: |
                  docker network create scan_net
                  docker run --detach --network scan_net --name vulny-django --rm vulny_django:latest

Здесь мы тянуемся в ORB как StackHawk и используйте его в нашем простом рабочем процессе, Создание и сканирование Отказ Мы определяем одну работу в рабочем процессе, используя работу ORB, Stackhawk/Hawkscan - Местное Отказ Орб имеет несколько необязательных параметров, и мы используем три из них.

  1. Docker-Network Рассказывает Hawkscan — local, чтобы запустить докерированный сканер, чтобы запустить по именованной сети Bridge под названием Scan_net Отказ
  2. app-id Устанавливает переменную среды, App_id. что мы используем в Stackhawk-circleci.yml выше для динамического набора app.applationationId во время выполнения. Обязательно обновите это с помощью своего собственного идентификатора приложения!
  3. Шаги Отправляет серию рабочих шагов в ORB для запуска на VM до начала сканирования.

На наших трех рабочих шагах мы строим приложение, создайте сеть Docker Bridge, Scan_net И начните наш новый контейнер в этой сети.

Добавьте свой Vulny Django Project в Circleci

Перейти к Circleci И добавьте свой репо GitHub в качестве проекта в Circleci. В ваших настройках проекта добавьте ключ API StackHawk как секрет Переменная среды, Hawk_api_key. . Это автоматически забрать в Stackhawk/Hawkscan - Местное Работа и используется для отправки результатов сканирования на вашу консоль StackHawk.

Запускать трубопровод

Сделайте обязательство по вашему репо и подтолкните его к Github, чтобы вызвать прогон трубопровода. Затем посмотрите на работу в консоли Circleci. Вот что вы должны увидеть.

Когда работа закончена, проверьте ваши результаты сканирования в консоли StackHawk. Вы можете пойти прямо к нему, скопировав и вставляя ссылку в нижней части Run Hawkscan Step в Circleci. Это должно выглядеть так:

Вид на платформу Stackhawk: https://app.stackhawk.com/scans/xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

После выполнения этой ссылки на консоль Cackhawk вы должны увидеть результаты сканирования, аналогичные этому:

☝️. Это чувство, когда ваши сканирование работает. Опыть его сами, посетить https://www.stackhawk.com Чтобы подписаться на наш выпуск доступа до доступа. Начните в командной строке с нашими полезными Документы и обязательно проверьте нашу Гиды интеграции Для других популярных CI/CD платформ.

Спасибо, а спокойной ночи!

Первоначально опубликовано в Stackhawk.com Отказ

Оригинал: «https://dev.to/zconger/add-appsec-to-your-circleci-pipeline-with-the-stackhawk-orb-12pl»