이 GitHub 조치를 사용하면 Contrast Security의 업계 최고의 코드 스캐너 (Contrast Scan)를 사용하여 코드에서 취약점을 찾을 수 있습니다. 이 작업은 PR의 코드 스캔 분석을 대상 지점의 마지막 코드 스캔 분석과 비교합니다. Github는 새로운 취약점이 도입되었는지 확인하지 못합니다.
GitHub 액션에 익숙하지 않은 경우 GitHub 작업 문서를 읽고 GitHub 작업이 무엇인지, 설정 방법을 배우십시오. 그 후 다음 단계를 완료하십시오.
다음 github 비밀을 구성하여 crastrast_api_key, clotrast_organization_id, clotrast_auth_header 및 crontrast_api_url을 구성하십시오.

CODESEC의 대조 보안 사용자 : CLI를 사용한 비밀에 대한 인증 세부 사항을 검색합니다.
설치 지침은 https://www.contrastsecurity.com/developer/codesec
새 사용자 인 경우 'Contrast Auth'명령으로 계정을 만듭니다.
필요한 자격 증명을 수집하려면 CLI에서 'Contrast Config'명령을 실행하십시오.

라이센스가있는 대비 보안 사용자 : 대비 웹 인터페이스의 '사용자 설정'메뉴에서 비밀에 대한 인증 세부 정보를 얻으십시오. 다음이 필요합니다.

아래 샘플 워크 플로를 복사하고 대비 보안 스캔을 추가하기 위해 코드의 지점을 만듭니다. 이 분기는 일반적으로 .github/workflows/build.yml 에 있습니다
작업이 실행되는시기를 지정하도록 워크 플로 파일을 업데이트하십시오 (예 : PUTL_REQUEST, 푸시시)
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]워크 플로 파일의 Fielepath를 구축 된 아티팩트 또는 파일의 위치를 세우려면 스캔 할 수 있습니다.
with :
artifact : mypath/target/myartifact.jar 취약성의 심각성에 따라 실패하기 위해 세트 심각도 (Critical/High/Medium 또는 Low)가 발견되고 사실 실패
severity : high
fail : true github가 Repo의 보안 탭에 취약점을 나열하려면 대비 조치 에이 Github 조치를 동반해야합니다.
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif sarif_file 의 값은 results.sarif 여야 합니다 .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 : 빌드 중에 스캔하는 경우 대비 스캔 GitHub 작업을 사용하지 마십시오.