Skip to main content

시크릿 탐지 문제 해결

리포지토리에서 시크릿을 탐지하거나 리포지토리에 커밋되기 직전의 시크릿을 탐지하기 위해 secret scanning을 사용하는 경우, 예상치 못한 문제가 발생하여 문제 해결이 필요할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Secret scanning은 다음 리포지토리 유형에 사용할 수 있습니다.

  • GitHub.com에 대한 퍼블릭 리포지토리
  • GitHub Secret Protection이 활성화된 GitHub Team 또는 GitHub Enterprise Cloud의 조직 소유 리포지토리
  • Enterprise Managed Users가 있는 GitHub Enterprise Cloud에 대한 사용자 소유 리포지토리

이 문서의 내용

패턴 쌍 탐지

AWS 액세스 키와 시크릿과 같은 패턴 쌍의 경우, Secret scanning은 ID와 시크릿이 동일한 파일에 존재하고 두 항목 모두가 리포지토리에 푸시된 경우에만 탐지합니다. 패턴 쌍 매칭은 리소스에 접근하기 위해 쌍을 이루는 두 요소(ID와 시크릿)가 함께 사용되어야 하므로 가양성을 줄이는 데 도움이 됩니다.

서로 다른 파일에 푸시되었거나 동일한 리포지토리에 푸시되지 않은 패턴 쌍은 경고를 생성하지 않습니다. 지원되는 패턴 쌍에 대한 자세한 내용은 지원되는 비밀 검사 패턴 문서의 표를 참조하세요.

레거시 GitHub 토큰에 대하여

GitHub 토큰의 경우, 활성 상태인지 비활성 상태인지를 판단하기 위해 시크릿의 유효성을 확인합니다. 이는 레거시 토큰의 경우 secret scanning이 GitHub Enterprise Cloud에서 GitHub Enterprise Server personal access token을 탐지하지 못함을 의미합니다. 마찬가지로 GitHub Enterprise Server에서는 GitHub Enterprise Cloud personal access token이 탐지되지 않습니다.

푸시 보호 제한 사항

푸시 보호가 탐지되었어야 한다고 판단되는 시크릿을 탐지하지 못한 경우, 먼저 해당 시크릿이 푸시 보호가 지원되는 시크릿 유형 목록에 포함되어 있는지 확인하세요. 자세한 내용은 지원되는 비밀 검사 패턴을 참조하세요.

시크릿이 지원 목록에 포함되어 있더라도, 푸시 보호가 이를 탐지하지 못하는 데에는 여러 가지 이유가 있을 수 있습니다.

  • 푸시 보호는 식별 가능성이 가장 높은 일부 사용자 경고 패턴에 대해서만 유출된 시크릿을 차단합니다. 이러한 패턴은 가양성 발생 가능성이 가장 낮으므로, 기여자는 차단이 발생한 경우 보안 방어 체계를 신뢰할 수 있습니다.
  • 사용 중인 시크릿의 버전이 오래되었을 수 있습니다. 이전 버전의 특정 토큰은 최신 버전보다 더 많은 가양성(false positive) 수를 생성할 수 있기 때문에 푸시 보호에서 지원되지 않을 수 있습니다. 푸시 보호는 레거시 토큰에도 적용되지 않을 수 있습니다. Azure Storage 키와 같은 토큰의 경우 GitHub은(는) 레거시 패턴과 일치하는 토큰이 아니라 최근에 만든 토큰만 지원합니다.
  • 수천 개의 대용량 파일을 푸시하는 경우와 같이 푸시 크기가 과도할 수 있습니다. 푸시 크기가 과도한 경우, 푸시 보호 스캔이 시간 초과되어 사용자를 차단하지 못할 수 있습니다. GitHub은 이 경우에도 푸시 이후 스캔을 수행하며 필요 시 경고를 생성합니다.
  • 푸시 과정에서 5개를 초과하는 새로운 시크릿이 탐지되면 처음 5개만 표시됩니다(한 번에 최대 5개의 시크릿만 표시됩니다).
  • 푸시에 이미 경고가 생성된 기존 시크릿이 1,000개를 초과하여 포함된 경우, 푸시 보호는 해당 푸시를 차단하지 않습니다.
  • 퍼블릭 리포지토리의 푸시가 50MB보다 큰 경우 푸시 보호는 건너뛰고 검사하지 않습니다.
  • 커밋 또는 파일 경로 세부 정보 없이 바이패스 요청이 표시된다면 이는 푸시 보호 시간이 초과되었음을 의미합니다. 푸시가 너무 크거나 기록이 너무 복잡하여 비밀을 도입한 커밋을 찾을 수 없었습니다.