Skip to main content

리포지토리 보안 공지 작성 모범 사례

보안 공지를 만들거나 편집하는 경우 표준 형식을 사용하여 에코시스템, 패키지 이름 및 영향을 받는 버전을 지정하면 제공받는 정보를 다른 사용자가 더 쉽게 이해할 수 있습니다.

사용 중단 참고: GitHub은(는) 프라이빗 리포지토리에서 리포지토리 보안 공지를 더 이상 사용하지 않습니다. 2024년 5월 15일부터, 프라이빗 리포지토리에서 더 이상 보안 공지를 생성할 수 없습니다.

이 사용 중단은 퍼블릭 리포지토리에 게시된 보안 공지에는 영향을 주지 않습니다.

프라이빗 리포지토리에 이전에 게시된 공지는 사라집니다. 이전에 게시된 공지를 저장해야 하는 경우 GitHub REST API를 사용하여 다운로드할 수 있습니다. 자세한 내용은 "리포지토리 보안 권고에 대한 REST API 엔드포인트"을(를) 참조하세요.

리포지토리에 대한 관리자 권한이 있는 모든 사용자가 보안 공지를 만들고 수정할 수 있습니다.

참고: 보안 연구원인 경우 관리자에게 직접 연락하여 관리하지 않는 리포지토리에서 보안 권고를 만들거나 CVE를 대신 발급하도록 요청해야 합니다. 그러나 리포지토리에 대해 프라이빗 취약성 보고를 사용하도록 설정한 경우 취약성을 비공개로 직접 보고할 수 있습니다. 자세한 내용은 "보안 취약성 비공개 보고"을(를) 참조하세요.

리포지토리에 대한 보안 공지 정보

리포지토리 보안 공지를 사용하면 리포지토리 유지 관리자가 프로젝트의 보안 취약성을 비공개로 논의하고 수정할 수 있습니다. 수정 사항을 공동으로 수행한 후 리포지토리 관리자는 보안 공지를 게시하여 보안 취약성을 프로젝트 커뮤니티에 공개적으로 공개할 수 있습니다. 리포지토리 관리자는 보안 공지를 게시하여 커뮤니티가 더 쉽게 패키지 종속성을 업데이트하고 보안 취약성의 영향을 조사할 수 있습니다. 자세한 내용은 "리포지토리 보안 공지 정보"을 참조하세요.

모범 사례

리포지토리 보안 공지를 작성하거나 글로벌 보안 공지에 커뮤니티 기여를 할 때 GitHub Advisory Database에 사용되는 구문, 특히 버전 서식을 사용하는 것이 좋습니다.

특히 영향을 받는 버전을 정의할 때 GitHub Advisory Database에 대한 구문을 따르는 경우:

  • 리포지토리 공지를 게시할 때 추가 정보를 요청하지 않고도 GitHub Advisory Database에 공지를 "GitHub-검토 완료" 공지로 추가할 수 있습니다.
  • Dependabot에는 영향을 받는 리포지토리를 정확하게 식별하고 Dependabot alerts을(를) 보내 알림을 보내는 정보가 있습니다.
  • 커뮤니티 구성원은 누락되거나 잘못된 정보를 수정하기 위해 공지 대한 편집을 제안할 가능성이 적습니다.

보안 공지 초안 양식을 사용하여 리포지토리 공지를 추가하거나 편집합니다. 자세한 내용은 "리포지토리 보안 공지 만들기"을(를) 참조하세요.

보안 공지 개선 양식을 사용하여 기존 글로벌 공지를 개선할 것을 제안합니다. 자세한 내용은 "GitHub Advisory Database에서 보안 권고 편집"을(를) 참조하세요.

에코시스템

에코시스템 필드를 사용하여 지원되는 에코시스템 중 하나에 공지를 할당해야 합니다. 지원하는 에코시스템에 대한 자세한 내용은 "GitHub Advisory Database에서 보안 권고 탐색"을(를) 참조하세요.

보안 공지 양식에 있는 "영향을 받는 제품" 영역의 스크린샷. "에코 시스템" 필드는 진한 주황색 윤곽선으로 강조 표시됩니다.

패키지 이름

GitHub Advisory Database의 "GitHub-검토 완료" 공지에 패키지 정보가 필요하기 때문에 패키지 이름 필드를 사용하여 영향을 받는 패키지를 지정하는 것이 좋습니다. 패키지 정보는 리포지토리 수준 보안 공지에서 선택 사항이지만 이 정보를 조기에 포함하면 보안 공지를 게시할 때 검토 프로세스가 간소화됩니다.

영향을 받는 버전

이 정보는 GitHub Advisory Database의 "GitHub-검토 완료" 공지에 필요하기 때문에 영향을 받는 버전 필드를 사용하여 영향을 받는 버전을 지정하는 것이 좋습니다. 버전 정보는 리포지토리 수준 보안 공지에서 선택 사항이지만 이 정보를 조기에 포함하면 보안 공지를 게시할 때 검토 프로세스가 간소화됩니다.

  • 영향을 받는 버전에 대한 유효한 문자열은 다음 중 하나로 구성됩니다.

    • 하한 연산자 시퀀스
    • 상한 연산자 시퀀스
    • 상한 및 하한 연산자 시퀀스
    • 같음(=) 연산자를 사용하는 특정 버전 시퀀스
  • 각 연산자 시퀀스를 연산자, 단일 공백 및 버전으로 지정해야 합니다.

    • 유효한 연산자는 =, <, <=, > 또는 >=입니다.
    • 버전은 숫자와 숫자, 문자, 점, 대시 또는 밑줄(공백 또는 쉼표 이외의 항목)으로 시작해야 합니다
    • 상한 시퀀스와 하한 시퀀스를 모두 지정하는 경우 하한이 먼저 와야 하고, 그 다음에는 쉼표와 단일 공백, 상한이 와야 합니다.

    참고: 영향을 받는 버전 문자열은 선행 또는 후행 공백을 포함할 수 없습니다.

  • 상한 연산자는 각각 포함 또는 배타적(예: <= 또는 <)일 수 있습니다.

  • 하한 연산자는 각각 포함 또는 배타적(예: >= 또는 >)일 수 있습니다. 그러나 리포지토리 공지를 게시하고 해당 리포지토리 공지를 글로벌 공지로 사용하는 경우 다른 규칙이 적용됩니다. 하한 문자열은 포함적(예: >=)일 수만 있습니다. 배타적 하한 연산자(>)는 버전이 0일 때만 가능합니다(예 > 0).

    참고: 하한 제한은:

    • OSV(오픈 소스 취약성) 스키마와의 비호환성 때문에 사용합니다..
    • GitHub Advisory Database의 기존 공지에 대한 제안을 할 때만 적용됩니다.
  • > 2.0, < 2.3, > 3.0, < 3.2과(와) 같이 동일한 필드에 영향을 받는 버전 범위를 여러 개 지정할 수 없습니다. 둘 이상의 범위를 지정하려면 + 영향을 받는 다른 제품 추가 단추를 클릭하여 각 범위에 대해 영향을 받는 제품 섹션을 새로 만들어야 합니다.

    보안 공지 양식에 있는 "영향을 받는 제품" 영역의 스크린샷. "다른 영향을 받는 제품 추가" 링크가 진한 주황색 윤곽선으로 강조 표시됩니다.

  • 영향을 받는 버전 범위에 상한 또는 하한이 하나만 포함된 경우:

    • 하한이 명시적으로 지정되지 않은 경우 암시적 값은 항상 > 0입니다.
    • 상한이 명시적으로 지정되지 않은 경우 암시적 값은 항상 무한대입니다.

GitHub Advisory Database에 대한 자세한 내용은 https://github.com/github/advisory-database을(를) 참조하세요.