GoSec 스캔 구성

검색한 리포지토리에서 Golang 소스 코드를 검사하려면 gosec을 사용하세요.

필수 매개변수

파이프라인은 Gosec 스캔을 실행하기 위해 표 1의 매개변수가 필요합니다. 파이프라인 매개변수의 전체 목록은 파이프라인 매개변수 를 참조하십시오.

gOSEC 스캔 매개변수
이름 유형 설명 필수 또는 선택사항
opt-in-gosec text gosec 스캔을 활성화하려면 속성을 비어 있지 않은 값으로 설정합니다. 스캔을 비활성화하려면 빈 값으로 설정하거나 속성을 완전히 제거하세요. (기본값은 비어 있음) 필수

개인용 Git 저장소에 대해 gosec 스캔 사용

프로젝트가 개인용 Git 저장소에 있어서 SSH 기반 인증이 필요한 종속 항목을 필요로 하는 경우 파이프라인이 선택적 매개변수를 제공하여 종속 항목을 검색하도록 설정할 수 있습니다. 자세한 정보는 개인용 저장소에 대한 종속 항목 다운로드 사용 을 참조하십시오.

종속성 검색을 위해 프록시를 지정해야 하는 경우 파이프라인 매개변수를 사용하여 자격 증명(사용자 이름 및 토큰)과 함께 URL 을 지정할 수 있습니다. 자세한 정보는 GOPROXY 사용 을 참조하십시오.

개인용 저장소에 대한 종속 항목 다운로드 사용

저장소에 대한 종속 항목 다운로드는 다음 모든 파이프라인 매개변수를 제공하여 사용으로 설정할 수 있습니다.

파이프라인 매개변수
이름 유형 설명 필수 또는 선택적
gosec-private-repository-url 텍스트 (사용 중단됨) 비공개 리포지토리 기반 URL. 선택 사항
gosec-private-repository-host 텍스트 비공개 리포지토리 호스트. 선택 사항
gosec-private-repository-ssh-key 비밀 비공개 리포지토리의 SSH 키 선택 사항
gosec-private-repository-user 텍스트 https 액세스 권한이 있는 비공개 리포지토리의 사용자(기본값은 x-oauth-basic) 옵션
gosec-private-repository-token 비밀 비공개 리포지토리에 대한 https 액세스에 사용되는 토큰(리포지토리 URL 가 gosec-private-repository-host 의 값에 호스팅되는 툴체인의 첫 번째 git 통합에 구성된 토큰이 기본값) 선택 사항

GOPROXY 사용

GOPROXY를 지정해야 하는 경우 다음 매개변수를 모두 제공해야 합니다.

고폭시 매개변수
이름 유형 설명 필수 또는 선택적
gosec-proxy-virtual-repository-user text gosec 프록시에 대한 가상 저장소 사용자 선택적
gosec-proxy-virtual-repository-token secret gosec 프록시의 가상 저장소 토큰 선택사항
gosec-proxy-virtual-repository-url text gosec 프록시의 가상 저장소 URL 선택사항

선택적 매개변수

gosec-scan-image 매개변수를 사용하여 사용할 다른 gosec 이미지 (예: 사용자 정의 이미지 또는 특정 버전의 공식 gosec 이미지) 를 지정할 수 있습니다.

gosec-additional-flags 플래그의 사용법은 예제 섹션에 나와 있습니다

gOSEC 옵션 매개변수
매개변수 이름 기본값 설명
gosec-additional-flags text gosec 명령의 시작에 추가될 추가 플래그입니다.
gosec-scan-image text 사용자 정의 이미지 또는 공식 이미지의 특정 버전을 포함하여 대체 gosec 이미지를 지정합니다.
gosec-repo-path-$repo_owner-$repo_name 텍스트 Go 모듈 루트가 있는 리포지토리 내의 하위 디렉터리 경로입니다. go.mod 이 리포지토리 루트에 있지 않을 때 리포지토리별로 사용합니다.

예제

gosec-additional-flags 의 값을 -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true 로 정의하면 gosec 명령 실행이 다음과 같이 업데이트됩니다.

./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...

하위 디렉터리에 있는 Go 모듈을 스캔하려면 gosec-repo-path-$repo_owner-$repo_name 매개변수를 설정하세요. 예를 들어 리포지토리 소유자가 myorg, 리포지토리 이름이 myrepo 이고 Go 모듈이 cmd/myapp 디렉토리에 있는 경우 매개 변수를 다음과 같이 정의합니다:

  • 매개변수 이름:gosec-repo-path-myorg-myrepo
  • 매개변수 값: cmd/myapp

그러면 리포지토리 루트 대신 cmd/myapp 경로에서 시작하는 Go 코드가 스캔됩니다.

고유의 구성 파일 사용

기본 구성을 수정하려면 대상 저장소에 config.json 파일을 작성하십시오. 구성 파일의 분석 매개변수에 대한 자세한 정보는 gosec 구성을 참조하십시오.

다른 정적 스캔 구현 사용

사용자 고유의 정적 스캔 구현을 사용하려면 .pipeline-config.yaml 파일을 수정하고 사용자 고유의 사용자 정의 스크립트를 static-scan 단계에 추가하십시오. 자세한 정보는 사용자 정의 스크립트 를 참조하십시오.