GitHub Advisory Database 정보
다음 원본에서 GitHub Advisory Database에 권고를 추가합니다.
- GitHub에 보고된 보안 공지
- 국가별 취약성 데이터베이스
- npm 보안 공지 데이터베이스
- FriendsOfPHP 데이터베이스
- Go Vulncheck 데이터베이스
- Python Packaging Advisory 데이터베이스
- Ruby Advisory 데이터베이스
- RustSec Advisory 데이터베이스
- 커뮤니티 기여 자세한 내용은 https://github.com/github/advisory-database/pulls를 참조하세요.
다른 데이터베이스를 알고 있는 경우 권고를 https://github.com/github/advisory-database에서 가져와야 합니다.
보안 공지는 OSV(오픈 소스 취약성) 형식의 JSON 파일로 게시됩니다. OSV 형식에 대한 자세한 내용은 "오픈 소스 취약성 형식"을 참조하세요.
보안 권고 유형 정보
GitHub Advisory Database의 각 권고는 오픈 소스 프로젝트의 취약성 또는 악의적인 오픈 소스 소프트웨어에 대한 것입니다.
취약성은 프로젝트 또는 해당 코드를 사용하는 기타 프로젝트의 기밀성, 무결성 또는 가용성을 손상시키기 위해 악용할 수 있는 프로젝트 코드의 문제입니다. 취약성은 공격 유형, 심각도 및 방법에 따라 다릅니다. 코드의 취약성은 일반적으로 우연히 발생하며 발견된 직후에 수정됩니다. 사용 가능한 즉시 수정된 버전의 종속성을 사용하도록 코드를 업데이트해야 합니다.
반면, 악성 소프트웨어 또는 맬웨어는 원치 않는 또는 유해한 기능을 수행하도록 의도적으로 설계된 코드입니다. 맬웨어는 맬웨어를 사용하는 애플리케이션의 하드웨어, 소프트웨어, 기밀 데이터 또는 사용자를 대상으로 할 수 있습니다. 프로젝트에서 맬웨어를 제거하고 종속성에 대한 보다 안전한 대체 방법을 찾아야 합니다.
GitHub에서 검토한 권고
GitHub에서 검토한 권고는 지원하는 에코시스템의 패키지에 매핑된 보안 취약성입니다. 당사는 각 권고의 유효성을 신중하게 검토하며 각각 전체 설명을 제공하고 에코시스템 및 패키지 정보가 모두 포함되도록 하고 있습니다.
일반적으로 지원되는 에코시스템은 소프트웨어 프로그래밍 언어의 연결된 패키지 레지스트리를 따라 명명됩니다. 지원되는 레지스트리에서 제공되는 패키지의 취약성에 대한 권고인 경우 당사에서 검토합니다.
- Composer(레지스트리: https://packagist.org/)
- Erlang(레지스트리: https://hex.pm/)
- Go(레지스트리: https://pkg.go.dev/)
- GitHub Actions (https://github.com/marketplace?type=actions/)
- Maven(레지스트리: https://repo.maven.apache.org/maven2)
- Npm(레지스트리: https://www.npmjs.com/)
- NuGet(레지스트리: https://www.nuget.org/)
- Pip(레지스트리: https://pypi.org/)
- Pub(레지스트리: https://pub.dev/packages/registry)
- RubyGems(레지스트리: https://rubygems.org/)
- Rust(레지스트리: https://crates.io/)
- Swift(레지스트리: 해당 없음)
지원해야 하는 새로운 에코시스템에 대한 제안이 있는 경우 토론을 위해 이슈를 개설해 주세요.
리포지토리에 Dependabot alerts을(를) 사용하도록 설정하면 GitHub에서 검토한 새 권고가 종속된 패키지의 취약성을 보고할 때 자동으로 알림을 받습니다. 자세한 내용은 "Dependabot 경고 정보"을(를) 참조하세요.
검토되지 않은 권고
검토되지 않은 권고는 국가별 취약성 데이터베이스 피드에서 직접 GitHub Advisory Database에 자동으로 게시하는 보안 취약성입니다.
Dependabot은 이 유형의 권고가 유효성 또는 완료 여부를 확인하지 않으므로 검토되지 않은 권고에 대해 Dependabot alerts를 만들지 않습니다.
맬웨어 권고
맬웨어 권고는 맬웨어로 인한 취약성과 관련이 있으며, GitHub에서 npm 보안 팀이 제공하는 정보로부터 직접 GitHub Advisory Database에 자동으로 게시하는 보안 권고입니다. 맬웨어 권고는 npm 에코시스템에만 적용됩니다. GitHub에서는 이러한 권고를 편집하거나 해당 권고에 대한 커뮤니티의 기여를 허용하지 않습니다.
대부분의 취약성은 다운스트림 사용자가 해결할 수 없으므로 Dependabot에서는 맬웨어가 감지되면 경고를 생성하지 않습니다. GitHub Advisory Database에서 type:malware
를 검색하여 맬웨어 권고를 볼 수 있습니다.
맬웨어 권고는 대부분 대체 공격에 관한 내용입니다. 이러한 유형의 공격 중에 공격자는 악성 버전이 이용되기를 바라며 사용자가 타사 또는 프라이빗 레지스트리에서 의존하는 종속성과 동일한 이름으로 퍼블릭 레지스트리에 패키지를 게시합니다. Dependabot에서는 패키지가 프라이빗 레지스트리에서 생성된 것인지 확인하기 위해 프로젝트 구성을 살펴보지 않으므로 사용하는 버전이 악성 버전인지, 아니면 정상 버전인지 확실하지 않습니다. 종속성의 범위를 적절히 지정한 사용자는 맬웨어의 영향을 받지 않습니다.
보안 권고 내 정보
이 섹션에서는 GitHub Advisory Database의 특정 데이터 특성에 대한 자세한 정보를 찾을 수 있습니다.
GHSA ID 정보
형식에 관계없이 각 보안 공지에는 GHSA ID라고 하는 고유 식별자가 있습니다. GHSA-ID
한정자는 GitHub에서 새 권고가 만들어지거나 지원되는 원본에서 GitHub Advisory Database에 추가될 때 할당됩니다.
GHSA ID의 구문은 GHSA-xxxx-xxxx-xxxx
형식을 따릅니다. 여기서
x
는23456789cfghjmpqrvwx
라는 세트의 문자 또는 숫자입니다.- 이름의
GHSA
부분 외부:- 숫자와 글자는 임의로 할당됩니다.
- 모든 글자는 소문자입니다.
정규식을 사용하여 GHSA ID를 확인할 수 있습니다.
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
CVSS 수준 정보
각 보안 권고에는 취약성 또는 맬웨어에 대한 정보가 포함되어 있으며, 여기에는 설명, 심각도, 영향을 받는 패키지, 패키지 에코시스템, 영향을 받는 버전 및 패치된 버전, 영향 및 선택적 정보(예: 참조, 해결 방법 및 크레딧)가 포함될 수 있습니다. 또한 국가별 취약성 데이터베이스 목록의 권고에는 취약성, CVSS 점수 및 정성적 심각도 수준에 대한 자세한 내용을 읽을 수 있는 CVE 레코드에 대한 링크가 포함되어 있습니다. 자세한 내용은 NIST(미국 국립표준기술원)의 "국가별 취약성 데이터베이스"를 참조하세요.
심각도 수준은 "CVSS(Common Vulnerability Scoring System), 섹션 5"에 정의된 4가지 가능한 수준 중 하나입니다.
- 낮음
- 중간/보통
- 높음
- 위험
GitHub Advisory Database는 위에서 설명한 CVSS 수준을 사용합니다. GitHub이(가) CVE를 가져오는 경우 GitHub Advisory Database은(는) 유지 관리자가 할당한 CVSS 버전을 사용합니다. 이 버전은 버전 3.1일 수 있습니다. CVE를 가져오는 경우 GitHub Advisory Database는 CVSS 버전 3.1 및 3.0을 지원합니다.
GitHub Security Lab에 참가하여 보안 관련 항목을 찾아보고 보안 도구 및 프로젝트에 기여할 수도 있습니다.
EPSS 점수 정보
EPSS(Exploit Prediction Scoring System)는 취약성 악용 가능성을 정량화하기 위해 글로벌 FIRST(Forum of Incident Response and Security Teams)에서 고안한 시스템입니다. 이 모델은 0에서 1(0~100%) 사이의 확률 점수를 생성합니다. 이 점수가 높을수록 취약성이 악용될 확률이 높아질 수 있습니다. FIRST에 대한 자세한 내용은 https://www.first.org/를 참조하세요.
GitHub Advisory Database에는 해당 EPSS 데이터가 포함된 CVE를 포함하는 권고에 대한 FIRST의 EPSS 점수가 포함됩니다. GitHub은(는) EPSS 점수 백분위수도 표시하며 이 비율은 EPSS 점수가 동일하거나 낮은 모든 점수 취약성의 비율입니다.
예를 들어 EPSS 모델에 따르면 권고에 95번째 백분위수에서 90.534%의 백분율을 가진 EPSS 점수가 있는 경우 다음을 의미합니다.
- 이 취약성이 향후 30일 동안 실제 악용될 확률은 90.534%입니다.
- 모델링된 전체 취약성의 95%는 이 취약성보다 향후 30일 이내에 악용될 가능성이 낮은 것으로 간주됩니다.
이 데이터를 해석하는 방법에 대한 확장 정보는 FIRST의 EPSS 사용자 가이드에서 찾을 수 있습니다. 이 정보는 FIRST의 모델에 따라 취약점이 실제 악용될 가능성을 해석하는 데 백분율과 백분위수 모두를 사용하는 방법을 이해하는 데 도움이 됩니다. 자세한 내용은 FIRST 웹 사이트의 FIRST의 EPSS 사용자 가이드를 참조하세요.
FIRST는 EPSS 데이터 배포에 대한 추가 정보도 제공합니다. 자세한 내용은 FIRST 웹 사이트의 EPSS 데이터 및 통계 설명서를 참조하세요.
Note
GitHub은(는) 매일 동기화 작업을 통해 EPSS 데이터를 최신 상태로 유지합니다. EPSS 점수 백분율은 항상 완전히 동기화되지만 점수 백분위수는 크게 다른 경우에만 업데이트됩니다.
GitHub에서는 이 데이터를 작성하지 않고 FIRST에서 원본으로 작성합니다. 즉, 커뮤니티 기여에서 이 데이터를 편집할 수 없습니다.
추가 참고 자료
- "Dependabot 경고 정보"
- CVE 프로그램의 "취약성" 정의