Это действие GitHub позволяет вам использовать ведущий кодовый сканер Contrast Security (Contrast Scan), чтобы найти уязвимости в вашем коде. Действие сравнивает анализ сканирования кода PR с последним анализом сканирования кода филиала назначения. GitHub не выполняет проверку, если были введены новые уязвимости.
Если вы не знакомы с действиями GitHub, прочтите документацию по действию GitHub, чтобы узнать, что такое действия GitHub и как их настроить. После чего выполните следующие шаги:
Настройте следующие секреты Github contrast_api_key, contrast_organization_id, contrast_auth_header и contrast_api_url

CodeSec, в отличие от пользователей безопасности: извлечь детали аутентификации для секретов, используя CLI.
Инструкции по установке здесь: https://www.contrastsecurity.com/developer/codesec
Если вы новый пользователь, создайте учетную запись с командой «Contrast Auth»
Запустите команду «Contrast Config» в CLI, чтобы собрать необходимые учетные данные

Пользователи лицензионной контрастной безопасности: получите данные аутентификации для секретов из меню «Настройки пользователей» в контрастном веб -интерфейсе: вам понадобится следующее

Скопируйте образец рабочего процесса ниже и создайте ветвь вашего кода, чтобы добавить контрастное сканирование безопасности. Эта ветвь обычно расположена по адресу .github/workflows/build.yml
Обновите файл рабочего процесса, чтобы указать, когда должно быть выполнено действие (например, на pull_request, на push)
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]Обновите FilePath в файле рабочего процесса, чтобы определить местоположение встроенного артефакта или файла для сканирования
with :
artifact : mypath/target/myartifact.jar Потерпеть неудачу в зависимости от тяжести уязвимости, обнаруженной установленной тяжесть (критическая/высокая/средняя или низкая) и не в состоянии истинности
severity : high
fail : true Чтобы GitHub перечислил уязвимости на вкладке «Безопасность репо», контрастное действие должно сопровождаться этим действием GitHub
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Значением sarif_file должно быть results.sarif SARIF, которое является названием, которое контрастное действие сканирует, напишет сариф.
После совершения, создайте запрос на вытягивание (PR), чтобы объединить обновление до вашей основной филиала. Создание PR запускает сканирование для запуска. Проверка дополнительного «сканирования кода» появляется в PR
Поскольку, вероятно, появятся новые выводы при добавлении контрастного сканирования, мы не хотим провалиться и блокировать слияние PR, который добавляет контрастное сканирование, заставляя владельца PR теперь исправить все недавно выявленные уязвимости, которые уже существовали в базе кода.
После контрастного сканирования запускается на основной филиале, все новые PR, которые вы создаете, когда контрастное сканирование выполняется. Не удалось.
Все секреты учетной записи, связанные с контрастностью, должны быть настроены как секреты GitHub и будут переданы сканеру через переменные среды в бегуне GitHub. Простой рабочий процесс, чтобы начать, - это:
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Это действие GitHub и контрастный плагин Maven выполняют то же самое. Вы не можете использовать оба одновременно. Например, если вы используете Maven для построения своего кода и запускаете org.contrastsecurity.maven: сканирование во время сборки не используйте действие контрастного сканирования.