GitHub 및 Azure DevOps에 대한 GitHub 고급 보안 구성
GitHub Advanced Security는 조직이 보안 취약성을 식별하고 완화하며 코드를 보호하고 소프트웨어 공급망을 보호할 수 있도록 GitHub에서 제공하는 보안 기능 모음입니다. 다음 주요 구성 요소로 구성됩니다.
- 코드 검색 CodeQL 또는 타사 도구에서 제공하는 정적 분석 기술을 사용하여 리포지토리의 코드를 자동으로 검색하여 보안 취약성 및 코딩 오류를 검색합니다. 오래된 종속성 및 약한 암호화와 관련된 보안 취약성을 포함하여 잠재적인 보안 취약성을 식별합니다.
- 비밀 검사 리포지토리 및 커밋에서 API 토큰 및 암호화 키와 같은 비밀의 존재를 감지하고 수정하는 데 도움이 됩니다. 리포지토리의 콘텐츠를 자동으로 검색하고 검색에 따라 경고를 생성합니다.
- 종속성 검토는 패키지 매니페스트 및 기타 구성 파일에서 검색된 직접 및 전이적 종속성을 기반으로 소프트웨어 프로젝트의 종속성을 식별하고 관리하는 데 도움이. 이를 통해 끌어오기 요청을 병합하기 전에 취약한 버전의 세부 정보를 포함하여 종속성에 대한 변경 내용의 전체 영향을 평가할 수 있습니다.
- 사용자 지정 자동 심사 규칙은 Dependabot 경고를 대규모로 관리하는 데 도움이 됩니다. 사용자 지정 자동 심사 규칙을 사용하면 무시할 수 있는 경고와 보안 업데이트를 적용해야 하는 경고를 제어할 수 있습니다.
- 보안 권고 오픈 소스 종속성에서 검색된 취약성에 대한 큐레이팅된 보안 권고 및 경고를 제공합니다.
GitHub Advanced Security는 기본적으로 GitHub 및 Azure DevOps와 통합됩니다.
GitHub
GitHub는 고급 보안 라이선스를 기반으로 프라이빗 리포지토리에서 고급 보안 기능을 사용할 수 있도록 합니다. 조직에 대한 GitHub Advanced Security 라이선스를 구매한 후에는 조직 또는 리포지토리 수준에서 이러한 기능을 사용하거나 사용하지 않도록 설정할 수 있습니다. 또한 이러한 기능은 라이선스 필수 구성 요소 없이 GitHub.com 공용 리포지토리에서 영구적으로 사용하도록 설정되며 프로젝트 표시 유형을 변경하는 경우에만 사용하지 않도록 설정할 수 있습니다.
조직에 대해 GitHub Advanced Security를 구성하려면 GitHub.com 오른쪽 위 모서리에서 프로필 아이콘을 선택한 다음 조직을 선택합니다. 다음으로 설정을 선택하고 사이드바의 보안 섹션에서 코드 보안 및 분석을 선택합니다. 그러면 조직의 리포지토리에 대한 모든 보안 및 분석 기능을 사용하거나 사용하지 않도록 설정할 수 있는 페이지가 표시됩니다.
구성 변경의 영향은 조직의 리포지토리 표시 유형에 따라 결정됩니다.
- 프라이빗 취약성 보고 - 공용 리포지토리에만 해당합니다.
- 종속성 그래프 - 기능이 항상 공용 리포지토리에 대해 사용하도록 설정되기 때문에 프라이빗 리포지토리에만 해당합니다.
- Dependabot 알림 - 모든 리포지토리.
- Dependabot 보안 업데이트 - 모든 리포지토리.
- GitHub Advanced Security - GitHub Advanced Security 및 관련 기능은 항상 공용 리포지토리에 대해 사용하도록 설정되므로 프라이빗 리포지토리만 가능합니다.
- 비밀 검사 - GitHub 고급 보안을 사용하도록 설정된 공용 및 프라이빗 리포지토리입니다. 이 옵션은 사용자에 대한 비밀 검색 경고를 사용할 수 있는지 여부를 제어합니다.
- 코드 검사 - GitHub Advanced Security를 사용하도록 설정된 공용 및 프라이빗 리포지토리입니다.
개별 프라이빗 리포지토리에 대한 보안 및 분석 기능을 관리할 수도 있습니다. 이렇게 하려면 GitHub.com 리포지토리의 기본 페이지로 이동하여 설정을 선택합니다. 사이드바의 보안 섹션에서 코드 보안 및 분석을 선택합니다. 코드 보안 및 분석 창에서 개별 기능을 사용하지 않도록 설정하거나 사용하도록 설정합니다. 엔터프라이즈에서 필수 라이선스를 구입하지 않은 경우 GitHub Advanced Security에 대한 컨트롤을 사용할 수 없습니다.
GitHub Advanced Security를 사용하지 않도록 설정하면 종속성 검토, 사용자 및 코드 검사에 대한 비밀 검색 경고가 효과적으로 비활성화됩니다. 따라서 코드 검색을 포함하는 모든 워크플로가 실패합니다.
사용하도록 설정하면 보안 기능이 GitHub 플랫폼에 직접 통합되어 GitHub 인터페이스 내에서 직접 지속적인 보안 모니터링 및 경고를 제공합니다. 리포지토리 관리자와 개발자는 보안 인사이트, 권장 사항 및 실행 가능한 단계에 액세스하여 식별된 보안 취약성을 해결하고 소프트웨어 프로젝트의 전반적인 보안 태세를 강화할 수 있습니다. 또한 조직은 보안 정책을 사용자 지정하고, 자동화된 워크플로를 구성하고, GitHub Advanced Security를 다른 보안 도구 및 서비스와 통합하여 특정 보안 요구 사항 및 규정 준수 요구 사항을 충족할 수 있습니다.
Azure DevOps
Azure DevOps용 GitHub Advanced Security는 Azure Repos를 대상으로 하며 다음을 포함합니다.
- 비밀 검색 푸시 보호 코드 푸시에 비밀을 노출하는 커밋이 포함되어 있는지 확인합니다.
- 비밀 검사 리포지토리 검색 리포지토리에서 노출된 비밀을 검색합니다.
- 종속성 검사 오픈 소스 종속성의 직접 및 전이적 취약성을 식별합니다.
- 코드 검색 CodeQL 정적 분석을 사용하여 SQL 삽입 및 인증 바이패스와 같은 코드 수준 애플리케이션 취약성을 식별합니다.
조직, 프로젝트 또는 리포지토리 수준에서 고급 보안을 설정할 수 있습니다. 이렇게 하면 비밀 검색 푸시 보호 및 리포지토리 검색이 자동으로 활성화됩니다. 실제로 비밀 검색이 백그라운드에서 실행되는 동안 비밀이 포함된 향후 푸시는 자동으로 차단됩니다.
종속성 검사는 파이프라인 기반 검사 도구입니다. 결과는 리포지토리당 집계됩니다. 검사하려는 모든 파이프라인에 종속성 검사 작업을 추가하는 것이 좋습니다. 가장 정확한 검색 결과를 얻으려면 검색하려는 코드를 빌드하는 파이프라인의 빌드 단계에 따라 종속성 검사 작업을 추가해야 합니다. 고급 보안 종속성 검사 작업(AdvancedSecurity-Dependency-Scanning@1)을 YAML 파이프라인 파일에 직접 추가하거나 작업 도우미에서 선택할 수 있습니다.
코드 검색은 리포지토리당 결과가 집계되는 파이프라인 기반 검색 도구이기도 합니다. 시간이 많이 걸리는 빌드 작업인 경향이 있으므로 코드 검색 작업을 주 프로덕션 파이프라인의 복제된 별도의 파이프라인에 추가하거나 새 파이프라인을 만드는 것이 좋습니다. 파이프라인 내에서 다음 순서로 작업을 추가합니다.
- Advanced Security Initialize CodeQL(AdvancedSecurity-Codeql-Init@1)
- 사용자 지정 빌드 단계
- 고급 보안 CodeQL 분석 수행 (AdvancedSecurity-Codeql-Analyze@1)
또한 Advanced Security Initialize CodeQL 작업을 사용하여 분석하는 언어의 쉼표로 구분된 목록을 포함해야 합니다. 지원되는 언어에는 csharp, cpp, go, java, JavaScript, python, ruby 및 swift가 포함됩니다.