GitHub Advanced Security란?
GitHub에는 코드의 품질을 개선하고 유지하는 데 도움이 되는 많은 기능이 있습니다. 이러한 기능 중 일부는 종속성 그래프 및 Dependabot 경고와 같은 모든 계획에 포함됩니다. 다른 기능은 공용 리포지토리에서 제한된 기능을 제공하지만 프라이빗 리포지토리에 대한 고급 기능에는 GitHub Code Security 및 GitHub Secret Protection이 필요합니다.
이 단원에서는 GitHub 고급 보안에 대해 자세히 알아보고 고급 보안 기능이 있는 프로젝트의 모양을 알아봅니다.
GitHub 고급 보안 개요
GitHub 고급 보안 기능은 이제 두 가지 주요 제품을 통해 제공됩니다.
- GitHub 코드 보안(취약성 검색 및 수정)
- GitHub 비밀 보호(비밀 검색 및 방지)
이러한 제품은 함께 원래 GitHub 고급 보안 기능 집합을 넘어 확장되는 더 광범위한 보안 플랫폼을 제공합니다.
기능 가용성
다음 표에는 리포지토리 유형 및 제품에서 GitHub 보안 기능의 가용성이 요약되어 있습니다.
| 특징 | 공용 리포지토리 | 프라이빗 리포지토리 | GitHub 코드 보안 | GitHub 비밀 보호 |
|---|---|---|---|---|
| 코드 검색(CodeQL) | 예 | 아니오 | 예 | 아니오 |
| Copilot Autofix | 예(제한적) | 아니오 | 예 | 아니오 |
| 종속성 검토 | 예 | 아니오 | 예 | 아니오 |
| Dependabot 경고 | 예 | 예 | 예 | 아니오 |
| Dependabot 자동 분류 규칙 | 아니오 | 아니오 | 예 | 아니오 |
| 보안 캠페인 | 아니오 | 아니오 | 예 | 아니오 |
| 보안 개요 | 아니오 | 아니오 | 예 | 아니오 |
| 비밀 검사 | 예(기본) | 아니오 | 아니오 | 예 |
| 푸시 보호 | 아니오 | 아니오 | 아니오 | 예 |
| 사용자 지정 비밀 패턴 | 아니오 | 아니오 | 아니오 | 예 |
앞의 표에 나와 있는 것처럼 코드 검색, 기본 비밀 검사, 종속성 검토 및 Dependabot 경고를 비롯한 많은 핵심 보안 기능은 기본적으로 GitHub.com 공용 리포지토리에 사용할 수 있습니다. 프라이빗 및 내부 리포지토리에 대한 고급 기능을 사용하려면 GitHub Code Security 및/또는 GitHub Secret Protection을 사용하도록 설정된 GitHub Enterprise Cloud 또는 GitHub 팀이 필요합니다.
GitHub Code Security 및 GitHub Secret Protection은 프라이빗 및 내부 리포지토리에 다음과 같은 향상된 기능을 제공합니다.
- 코드 검색(CodeQL): 취약성 및 코딩 오류를 자동으로 검색하고 Copilot Autofix(사용하도록 설정된 경우)를 통해 AI 지원 수정을 지원합니다.
- 비밀 검사: 코드에서 노출된 비밀을 검색하고, 푸시 보호를 사용하여 누출을 차단하고, 사용자 지정 비밀 패턴을 지원하며, 향상된 경고 및 수정 워크플로를 제공합니다.
- 종속성 검토: 종속성 변경의 영향을 표시하고 끌어오기 요청이 병합되기 전에 취약한 버전을 강조 표시합니다.
- 보안 개요: 보안 상태, 위험 및 리포지토리 수준 경고에 대한 조직 차원의 가시성을 제공합니다.
- 보안 캠페인: 조직에서 리포지토리 전체에서 여러 보안 경고를 그룹화, 우선 순위 지정 및 체계적으로 수정하여 팀이 취약성을 더 빠르고 대규모로 줄일 수 있도록 지원합니다.
주요 참고 사항
GitHub 단일 GitHub Advanced Security 번들에서 다음으로 구성된 모듈식 플랫폼으로 발전했습니다.
- GitHub 코드 보안
- GitHub 비밀 보호
다른 중요한 사항은 다음과 같습니다.
- 퍼블릭 리포지토리는 계속해서 무료 보안 기능의 강력한 기준을 받고 있습니다.
- 고급 기능은 방지(예: 푸시 보호), 자동화 및 AI 지원 수정에 중점을 줍니다.
소프트웨어 개발 수명 주기의 GitHub 고급 보안
GitHub 고급 보안 기능은 소프트웨어 개발 수명 주기에서 어떤 차이를 만들까요? 먼저 기본 보안 시나리오를 살펴보겠습니다.
이 예제에서는 품질 보증 단계에서 하나 이상의 보안 테스트가 수행되는 게이트 접근 방식 의 기존 보안을 보여 줍니다. 이 시나리오에서 보안은 종종 소프트웨어 배달을 지연시키는 병목 상태가 됩니다. 많은 조직에서 보안을 왼쪽으로 이동하여 이 문제를 해결합니다.
이제 GitHub Advanced Security와 동일한 소프트웨어 개발 수명 주기를 살펴보겠습니다.
이 시나리오에서는 프로젝트를 설정하는 동안 구성된 보안 정책을 통해 처음부터 보안이 통합됩니다. 개발자는 개발 프로세스 전체에서 보안 피드백을 받습니다.
- 코드 검색: 모든 커밋 및 병합에서 취약성 및 코딩 오류를 검사합니다.
- 비밀 검사: 모든 커밋 및 병합에서 실수로 커밋된 비밀(예: 토큰 및 프라이빗 키)을 검색합니다.
- 종속성 검토: 모든 끌어오기 요청 중에 매니페스트 파일을 알려진 취약성의 데이터베이스와 비교하여 종속성 변경을 모니터링하고 프로젝트 보안에 미치는 영향을 평가합니다.
또한 보안 개요 는 관리자에게 조직의 보안 상태를 개략적으로 볼 수 있습니다. 이 보기는 주의 또는 수정이 필요한 리포지토리를 식별하는 데 도움이 됩니다.
개발 수명 주기 동안 보안 검사가 수행되므로 잠재적인 문제가 식별되고 이전에 해결됩니다. 이 방법은 품질 보증 중 병목 상태를 줄이고 소프트웨어가 출시되기 전에 기술적인 문제를 최소화합니다.