Когда вы проверяете уязвимость нового веб-приложения, вы получаете предупреждение и руководство о том, как это исправить? С новым 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. Для наших целей мы сосредоточимся на этих трех файлах:
Stackhawk.yml
— файл конфигурации HawkscanStackhawk-circleci.yml
— Дополнительный файл конфигурации Hawkscan, который мы будем использовать для настройки нашего сканирования для Circleci.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 - Местное
Отказ Орб имеет несколько необязательных параметров, и мы используем три из них.
Docker-Network
Рассказывает Hawkscan — local, чтобы запустить докерированный сканер, чтобы запустить по именованной сети Bridge под названиемScan_net
Отказapp-id
Устанавливает переменную среды,App_id.
что мы используем вStackhawk-circleci.yml
выше для динамического набораapp.applationationId
во время выполнения. Обязательно обновите это с помощью своего собственного идентификатора приложения!Шаги
Отправляет серию рабочих шагов в 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»