발견 시크릿 스캔 구성
Detect-secrets는 시크릿 유출을 수정하고 방지하기 위해 코드 베이스 내에서 시크릿을 발견하는 클라이언트 측 보안 도구입니다.
자세한 정보는 IBM/detect - secrets를 참조하십시오.
발견-시크릿은 전체 현재 코드 베이스를 스캔하고 현재 식별된 시크릿의 스냅샷을 출력합니다. 그런 다음 시크릿 목록을 사용하여 식별된 시크릿을 참 양성 또는 거짓 양성으로 감사합니다. DevSecOps 도구 체인은 참 양성에 대한 Git 문제를 작성합니다.
기준선 파일 사용
기준선 파일은 발견 시크릿 스캔의 스냅샷입니다. 파일은 모든 실행에서 잠재적인 시크릿을 나열하고 후속 실행에서 문제로 플래그 지정되지 않은 거짓 긍정 (false positive) 을 표시합니다.
기준선 파일은 주기적으로 업데이트해야 합니다. 기준선 파일을 커미트하고 저장소로 다시 푸시하여 기준선 파일을 업데이트하고 감사하십시오. 기준선에 이러한 거짓 긍정 (false positive) 을 포함하면 향후 스캔 중에 이러한 기존 파일에 대해 문제가 작성되지 않습니다.
시크릿 분류
시크릿 발견 스캔이 완료되면 발견된 시크릿이 아직 실제 긍정 또는 거짓 긍정으로 분류되지 않습니다.
세 가지 조건은 잠재적으로 발견된 비밀 정보를 분류합니다.
- 감사되지 않음-감사 프로세스에서 검토해야 하는 잠재적 시크릿인 경우 시크릿은 감사되지 않음으로 분류됩니다.
- 실제로 감사됨-감사 중에 실제 긍정으로 표시되고 기준선 파일에 여전히 비밀이 포함되어 있는 경우 비밀은 실제로 감사됨으로 분류됩니다.
- 라이브-시크릿이 detect-secrets에서 사용되는 플러그인에 의해 라이브 시크릿으로 확인되는 경우 시크릿은 라이브로 분류됩니다.
기준선 관리
다음 명령은 시크릿 기준선을 관리합니다.
detect-secrets scan
명령은 기준선 파일을 생성하거나 기존 파일을 업데이트하여 실행의 발견된 모든 잠재적 시크릿의 스냅샷을 포함합니다.detect-secrets audit
명령은 마이그레이션할 시크릿 체크리스트를 좁힐 수 있도록 시크릿에 레이블을 지정합니다.
감사는 발견된 시크릿을 참 또는 거짓 긍정으로 식별합니다. 그런 다음, 거짓 긍정이 향후 스캔 실행에서 제외될 수 있도록 기준선 파일을 업데이트할 수 있습니다.
기준선 업데이트
기준선을 업데이트하려면 다음 단계를 수행하십시오.
-
로컬 컴퓨터에 detect-secrets를 설치하십시오.
pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets"
-
다음 명령을 실행하여 저장소에서 기준선 파일을 스캔, 생성 또는 업데이트하십시오.
-
다음 명령을 실행하여 저장소 폴더를 스캔하십시오.
detect-secrets scan --update .secrets.baseline
거짓 긍정 (false positive) 을 포함하는 것으로 알려진 특정 파일을 무시하거나 스캔이 필요하지 않은 경우
--exclude-files
플래그를 사용할 수 있습니다. 제외 규칙은 정규식 형식을 기반으로 합니다.파일 및 폴더 제외를 사용하여 스캔을 수행하려면 다음 명령을 사용하십시오.
detect-secrets scan --update .secrets.baseline --exclude-files '<folder_to_ignore>|<file_to_ignore>'
예:
detect-secrets scan --update .secrets.baseline --exclude-files "package-lock.json|go.sum"
제외된 파일의 목록은 기준선 파일에 기록됩니다.
후속 스캔에서
--exclude-files
옵션이 제공되지 않으면 시크릿 발견이 기준선 파일에서 기존 제외 목록을 자동으로 준수합니다.그러나
detect-secrets scan
중에 새 제외 목록을 지정하려는 경우 새 목록이 기준선 파일의 기존 제외 목록을 겹쳐씁니다. -
다음 명령을 실행하여 스캔 단계에서 작성된 기준선 파일을 검토하고 감사하십시오.
detect-secrets audit .secrets.baseline
이 명령은 거짓 긍정 (false positive) 을 표시하기 위해 대화식 터미널을 가져옵니다. 발견된 시크릿이 실제 시크릿인 경우 (y) es 를 표시하고, 거짓 긍정 (false positive) 인 경우 (n) o 를 표시할 수 있습니다.
-
.secrets.baseline
파일을 커미트하고 저장소로 다시 푸시하십시오. 프로세스는 주기적으로 로컬에서 수행되어야 합니다.
-
Detect-secrets 스캔 매개변수
기존 기준선 파일이 있는 경우 스캔은 기존 구성을 사용합니다. 이전 감사 결과 및 설정은 겹쳐쓰지 않습니다. 기준선 파일이 없는 경우 실행을 위해 임시 기준선이 자동으로 작성됩니다.
detect-secrets-baseline-filename
매개변수는 detect-secrets에서 사용되는 기준선 파일에 대한 사용자 정의 파일 이름을 지정합니다. 기본적으로 detect-secrets는 저장소 루트 디렉토리에서 .secrets.baseline
라는 파일을 찾습니다. 그러나 기준선 파일의 이름을 다르게 지정하는 경우 이 매개변수를 사용하여 해당 파일 이름을 제공할
수 있습니다.
detect-secrets-exclusion-list
매개변수는 기존 기준선 파일 없이 실행이 완료될 때 기본 제외 목록을 대체합니다. 이 매개변수는 무시할 파일을 식별하므로 해당 파일에 링크된 문제가 작성되지 않습니다.
detect-secrets-image
매개변수를 사용하여 사용할 다른 발견 시크릿 이미지 (예: 사용자 정의 이미지 또는 특정 버전의 공식 발견 시크릿 이미지) 를 지정할 수 있습니다.
detect-secrets-verbose
매개변수는 1로 설정되면 스캔 중인 현재 파일의 이름을 로그합니다.
이름 | 유형 | 설명 | 필수 또는 선택사항 |
---|---|---|---|
detect-secrets-baseline-filename |
문자열 | 앱 저장소에 있는 기준선 파일의 이름입니다. 기본값은 .secrets.baseline 입니다. |
기준선 파일이 기본 이름 .secrets.baseline 가 아닌 경우 필수입니다. |
detect-secrets-exclusion-list |
문자열 | detect-secrets 스캔에서 제외할 파일의 정규식 목록입니다. 기본값은 requirements.txt|go.mod|go.sum|pom.xml|build.gradle|package-lock.json 입니다. |
선택사항. 이 파일 목록은 .secrets.baseline 파일이 없는 경우에만 일반 제외 목록을 대체합니다. |
detect-secrets-image |
문자열 | 사용자 정의 이미지 또는 공식 이미지의 특정 버전을 포함하여 대체 발견 시크릿 이미지를 지정합니다. | 선택사항 |
detect-secrets-verbose |
문자열 | 현재 스캔 중인 파일의 이름을 출력합니다. 기본값은 0 입니다. |
선택사항, 디버그 플래그 0-off, 1-on. |