Skip to main content

비밀 검사를 위한 사용자 지정 패턴 정의

하나 이상의 정규식을 생성하여 secret scanning 기능을 확장하도록 사용자 고유의 사용자 지정 패턴을 정의할 수 있습니다.

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

Repository owners, organization owners, security managers, enterprise administrators, and users with the admin role

Custom patterns for secret scanning is available for the following repositories:

  • Public, private, and internal repositories in organizations using GitHub Enterprise Cloud with GitHub Advanced Security enabled

secret scanning에 대한 사용자 지정 패턴 정보

사용자 지정 패턴을 정의하여 secret scanning에서 지원하는 기본 패턴으로 검색되지 않는 비밀을 식별할 수 있습니다. 예를 들어 조직 내부에 비밀 패턴이 있을 수 있습니다. 지원하는 비밀 및 서비스 공급자에 대한 개요는 "‭‬AUTOTITLE‭‬" 항목을 참조하세요.

엔터프라이즈, 조직 또는 리포지토리에 대한 사용자 지정 패턴을 정의할 수 있습니다. Secret scanning은(는) 각 조직 또는 기업 계정에 대해 최대 500개의 사용자 지정 패턴과 리포지토리당 최대 100개의 사용자 지정 패턴을 지원합니다.

사용자 지정 패턴에 대한 푸시 보호를 사용하도록 설정할 수도 있습니다. 푸시 보호에 대한 자세한 내용은 "푸시 보호 정보" 항목을 참조하세요.

사용자 지정 패턴에 정규식 사용하기 정보

secret scanning에 대한 사용자 지정 패턴을 하나 이상의 정규식으로 지정할 수 있습니다.

Secret scanning는 Hyperscan 라이브러리를 사용하며, PCRE 구문의 하위 집합인 Hyperscan 정규식 구문만 지원합니다. Hyperscan 옵션 한정자는 지원되지 않습니다. Hyperscan 패턴 구문에 대한 자세한 내용은 Hyperscan 설명서의 "패턴 지원"을 참조하세요.

UI의 추가 옵션 섹션을 사용하면 정규식을 수동으로 작성할 수 있습니다.

  • 비밀 형식: 비밀 자체의 형식을 설명하는 식입니다.
  • 비밀 앞: 비밀 앞에 오는 문자를 설명하는 식입니다. 기본적으로 \A|[^0-9A-Za-z]로 설정되며, 이는 비밀이 줄의 시작 부분에 있거나 영숫자가 아닌 문자가 앞에 있어야 함을 의미합니다.
  • 비밀 뒤: 비밀 뒤에 오는 문자를 설명하는 식입니다. 기본적으로 \z|[^0-9A-Za-z]로 설정되며, 이는 비밀 뒤에 줄 바꿈 문자 또는 영숫자가 아닌 문자가 있어야 함을 의미합니다.
  • 추가 일치 요구 사항: 비밀 자체가 일치해야 하거나 일치하지 않아야 하는 하나 이상의 선택적 식입니다.

단순 토큰의 경우 일반적으로 비밀 형식만 지정하면 됩니다. 다른 필드는 복잡한 정규식을 만들지 않고도 더 복잡한 비밀을 지정할 수 있도록 유연성을 제공합니다. 사용자 지정 패턴의 예는 아래의 "추가 요구 사항을 사용하여 지정된 사용자 지정 패턴의 예"를 참조하세요.

리포지토리에 대한 사용자 지정 패턴 정의

사용자 지정 패턴을 정의하려면 먼저 리포지토리에서 secret scanning을 사용하도록 설정해야 합니다. 자세한 내용은 "리포지토리에 대한 비밀 검색 사용"을(를) 참조하세요.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings(설정)를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 사이드바의 "보안" 섹션에서 코드 보안 및 분석을 클릭합니다.

  4. “Code security and analysis”(코드 보안 및 분석)에서 “GitHub Advanced Security”를 찾습니다.

  5. "Secret scanning"의 "사용자 지정 패턴"에서 새 패턴을 클릭합니다.

  6. 새 사용자 지정 패턴에 대한 세부 정보를 입력합니다. 적어도 패턴의 이름과 비밀 패턴 형식에 대한 정규식을 제공해야 합니다.

    1. "패턴 이름" 필드에 패턴 이름을 입력합니다.
    2. "비밀 형식" 필드에 비밀 패턴 형식의 정규식을 입력합니다.
    3. 기타 옵션 아이콘을 클릭하여 다른 주변 콘텐츠 또는 비밀 형식에 대한 추가 일치 요구 사항을 제공할 수 있습니다.
    4. 구성이 예상하는 패턴과 일치하는지 확인하는 샘플 테스트 문자열을 제공합니다.

    채워진 사용자 지정 secret scanning 패턴 양식의 스크린샷

  7. 새 사용자 지정 패턴을 테스트할 준비가 되면 경고를 만들지 않고 리포지토리에서 일치 항목을 식별하기 위해 저장 및 시험 실행을 클릭합니다.

  8. 시험 실행이 완료되면 결과 샘플(최대 1,000개)이 표시됩니다. 결과를 검토하고 가양성 결과를 식별합니다.

    시험 실행의 결과를 보여 주는 스크린샷

  9. 새 사용자 지정 패턴을 편집하여 결과와 관련한 문제를 해결합니다. 변경 내용을 테스트하려면 저장 및 시험 실행을 클릭합니다.

  10. 새 사용자 지정 패턴에 만족하면 게시 패턴을 클릭합니다.

  11. 필요에 따라 사용자 지정 패턴에 대한 푸시 보호를 사용하도록 설정하려면 사용을 클릭합니다.

    참고 사항: 드라이 런이 성공하고 패턴을 게시할 때까지 "사용" 버튼을 사용할 수 없습니다.

    푸시 보호에 대한 자세한 내용은 "푸시 보호 정보" 항목을 참조하세요.

패턴을 만든 후 secret scanning은 GitHub 리포지토리에 있는 모든 분기에서 전체 Git 기록의 비밀을 검색합니다. 비밀 검사 경고을(를) 보는 방법에 대한 자세한 내용은 "비밀 검사에서 경고 관리" 항목을 참조하세요.

추가 요구 사항을 사용하여 지정된 사용자 지정 패턴의 예

회사에는 5가지 특성이 있는 내부 토큰이 있습니다. 다른 필드를 사용하여 다음과 같이 토큰을 식별하는 방법을 지정합니다.

특성필드 및 정규식
5~10자의 길이비밀 형식: [$#%@AA-Za-z0-9]{5,10}
.로 끝나지 않음비밀 뒤: [^\.]
숫자 및 대문자 포함추가 요구 사항: 비밀은 [A-Z][0-9]와 일치해야 합니다.
한 행에 둘 이상의 소문자를 포함하지 않음추가 요구 사항: 비밀은 [a-z]{2,}와 일치하지 않아야 합니다.
$%@! 중 하나 포함추가 요구 사항: 비밀은 [$%@!]와 일치해야 합니다.

다음 토큰은 위에서 설명한 사용자 지정 패턴과 일치합니다.

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

다음 문자열은 위에서 설명한 사용자 지정 패턴과 일치하지 않습니다.

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

조직에 대한 사용자 지정 패턴 정의

사용자 지정 패턴을 정의하려면 먼저 secret scanning을 조직에서 검사하려는 리포지토리에 사용하도록 설정해야 합니다. 조직의 모든 리포지토리에서 secret scanning을(를) 사용하도록 설정하려면 "조직의 보안 및 분석 설정 관리" 항목을 참조하세요.

  1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 선택하고 조직을 클릭합니다.

  2. 조직 옆에 있는 설정을 클릭합니다.

  3. 사이드바의 "보안" 섹션에서 코드 보안 및 분석을 클릭합니다.

  4. “Code security and analysis”(코드 보안 및 분석)에서 “GitHub Advanced Security”를 찾습니다.

  5. “비밀 검사”의 "사용자 지정 패턴"에서 새 패턴을 클릭합니다.

  6. 새 사용자 지정 패턴에 대한 세부 정보를 입력합니다. 적어도 패턴의 이름과 비밀 패턴 형식에 대한 정규식을 제공해야 합니다.

    1. "패턴 이름" 필드에 패턴 이름을 입력합니다.
    2. "비밀 형식" 필드에 비밀 패턴 형식의 정규식을 입력합니다.
    3. 기타 옵션 아이콘을 클릭하여 다른 주변 콘텐츠 또는 비밀 형식에 대한 추가 일치 요구 사항을 제공할 수 있습니다.
    4. 구성이 예상하는 패턴과 일치하는지 확인하는 샘플 테스트 문자열을 제공합니다.

    채워진 사용자 지정 secret scanning 패턴 양식의 스크린샷

  7. 새 사용자 지정 패턴을 테스트할 준비가 되면 경고를 만들지 않고 선택한 리포지토리에서 일치 항목을 식별하기 위해 저장 및 시험 실행을 클릭합니다.

  8. 시험 실행을 수행할 리포지토리를 선택합니다.

    • 전체 조직에서 시험 실행을 수행하려면 조직의 모든 리포지토리를 선택합니다.
    • 시험 실행을 수행할 리포지토리를 지정하려면 선택한 리포지토리를 선택한 다음 최대 10개의 리포지토리를 검색하여 선택합니다.
  9. 새 사용자 지정 패턴을 테스트할 준비가 되면 실행을 클릭합니다.

  10. 시험 실행이 완료되면 결과 샘플(최대 1,000개)이 표시됩니다. 결과를 검토하고 가양성 결과를 식별합니다.

    시험 실행의 결과를 보여 주는 스크린샷

  11. 새 사용자 지정 패턴을 편집하여 결과와 관련한 문제를 해결합니다. 변경 내용을 테스트하려면 저장 및 시험 실행을 클릭합니다.

  12. 새 사용자 지정 패턴에 만족하면 게시 패턴을 클릭합니다.

  13. 필요에 따라 사용자 지정 패턴에 대한 푸시 보호를 사용하도록 설정하려면 사용을 클릭합니다. 자세한 내용은 "푸시 보호 정보"을(를) 참조하세요.

    참고:

    • 푸시 보호를 사용하는 옵션은 게시된 패턴에 대해서만 표시됩니다.
    • 사용자 지정 패턴에 대한 푸시 보호는 푸시 보호가 사용하도록 설정된 secret scanning이(가) 있는 조직의 리포지토리에만 적용됩니다. 자세한 내용은 "푸시 보호 정보"을(를) 참조하세요.
    • 일반적으로 발견되는 사용자 지정 패턴에 푸시 보호를 사용하도록 설정하면 기여자에 방해가 될 수 있습니다.

패턴이 만들어지면 secret scanning에서 모든 분기의 전체 Git 기록을 포함하여 조직의 리포지토리에 있는 모든 비밀을 검사합니다. 조직 소유자와 리포지토리 관리자는 검색된 모든 비밀에 대해 경고를 받고 비밀이 검색된 리포지토리에서 경고를 검토할 수 있습니다. 비밀 검사 경고을(를) 보는 방법에 대한 자세한 내용은 "비밀 검사에서 경고 관리" 항목을 참조하세요.

엔터프라이즈 계정에 대한 사용자 지정 패턴 정의

사용자 지정 패턴을 정의하려면 먼저 비밀 검사를 엔터프라이즈 계정에 사용하도록 설정해야 합니다. 자세한 내용은 "엔터프라이즈에 GitHub Advanced Security 사용"을 참조하세요.

참고 사항:

  • 엔터프라이즈 수준에서 사용자 지정 패턴의 작성자만 패턴을 편집하고 시험 실행에서 사용할 수 있습니다.
  • 관리 액세스 권한이 있는 리포지토리에서만 시험 실행을 수행할 수 있습니다. 엔터프라이즈 소유자가 조직의 모든 리포지토리에서 시험 실행을 수행하려는 경우 조직 소유자 역할이 할당되어야 합니다. 자세한 내용은 "엔터프라이즈가 소유한 조직 내 역할 관리"을(를) 참조하세요.
  1. GitHub Enterprise Server의 오른쪽 위 모서리에서 프로필 사진과 엔터프라이즈 설정을 차례로 클릭합니다.

    GitHub Enterprise Server에서 프로필 사진 클릭할 때 나타나는 드롭다운 메뉴의 스크린샷 "엔터프라이즈 설정" 옵션이 진한 주황색 윤곽선으로 강조 표시됩니다.

  2. 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다. 1. "정책"에서 코드 보안 및 분석을 클릭합니다.

  3. "코드 보안 및 분석"에서 보안 기능을 클릭합니다.

  4. "비밀 검사 사용자 지정 패턴"에서 새 패턴을 클릭합니다.

  5. 새 사용자 지정 패턴에 대한 세부 정보를 입력합니다. 적어도 패턴의 이름과 비밀 패턴 형식에 대한 정규식을 제공해야 합니다.

    1. "패턴 이름" 필드에 패턴 이름을 입력합니다.
    2. "비밀 형식" 필드에 비밀 패턴 형식의 정규식을 입력합니다.
    3. 기타 옵션 아이콘을 클릭하여 다른 주변 콘텐츠 또는 비밀 형식에 대한 추가 일치 요구 사항을 제공할 수 있습니다.
    4. 구성이 예상하는 패턴과 일치하는지 확인하는 샘플 테스트 문자열을 제공합니다.

    채워진 사용자 지정 secret scanning 패턴 양식의 스크린샷

  6. 새 사용자 지정 패턴을 테스트할 준비가 되면 경고를 만들지 않고 엔터프라이즈에서 일치 항목을 식별하기 위해 저장 및 시험 실행을 클릭합니다.

  7. 시험 실행을 수행할 리포지토리를 최대 10개까지 검색하여 선택합니다.

  8. 새 사용자 지정 패턴을 테스트할 준비가 되면 실행을 클릭합니다.

  9. 시험 실행이 완료되면 결과 샘플(최대 1,000개)이 표시됩니다. 결과를 검토하고 가양성 결과를 식별합니다.

    시험 실행의 결과를 보여 주는 스크린샷

  10. 새 사용자 지정 패턴을 편집하여 결과와 관련한 문제를 해결합니다. 변경 내용을 테스트하려면 저장 및 시험 실행을 클릭합니다.

  11. 새 사용자 지정 패턴에 만족하면 게시 패턴을 클릭합니다.

  12. 필요에 따라 사용자 지정 패턴에 대한 푸시 보호를 사용하도록 설정하려면 사용을 클릭합니다. 자세한 내용은 "푸시 보호 정보"을(를) 참조하세요.

    참고:

    • 사용자 지정 패턴에 푸시 보호를 사용하도록 설정하려면 엔터프라이즈 수준에서 푸시 보호로 secret scanning을(를) 사용하도록 설정해야 합니다. 자세한 내용은 "푸시 보호 정보"을(를) 참조하세요.
    • 일반적으로 발견되는 사용자 지정 패턴에 푸시 보호를 사용하도록 설정하면 기여자에 방해가 될 수 있습니다.

패턴이 만들어지면 secret scanning에서 모든 분기의 전체 Git 기록을 포함하여 GitHub Advanced Security가 사용하도록 설정된 엔터프라이즈 조직 내의 리포지토리에 있는 모든 비밀을 검사합니다. 조직 소유자와 리포지토리 관리자는 검색된 모든 비밀에 대해 경고를 받고 비밀이 검색된 리포지토리에서 경고를 검토할 수 있습니다. 비밀 검사 경고을(를) 보는 방법에 대한 자세한 내용은 "비밀 검사에서 경고 관리" 항목을 참조하세요.

추가 참고 자료