GitHub은 소프트웨어 개발 주기 전반에 걸친 보안을 강화합니다.
How 1. 먼저 의존성 부터 확인 합니다. : Dependabot
-
프로젝트가 의존하고 있는 의존성은 어떤것이 있지? 🤔 : Dependency Graph
- 의존성에 알람이 뜨면 알람을 발생시킵니다. 🔊 : Dependabot alert
- Dependabot alert를 볼 수 있는 권한은 Org owner/저장소 admin이 추가/삭제
-
발생된 의존성 알람에 대해 자동 패치를 수행합니다. : Dependabot security update
- 보안 데이터베이스
- GitHub의 전체 보안 데이터 베이스 : GitHub Advisory Database
- GitHub은 CVE를 직접 발행할 수 있는 인증기관 (CNA: CVE Numbering Authority)
- NVD(National Vulnerability Database), Community Sources
How 2. Code를 작성할 때 들어갈 수 있는 위협요소를 분석합니다. : Code Scanning
-
GitHub + Semmle
- Codeql 저장소, Codeql-action 저장소에 지속적으로 Query들이 업데이트 됩니다.
- GitHub Connect 설정을 이용해 자동으로 업데이트된 CodeQL 쿼리들 사용가능
-
순수 온프렘에서도 사용가능합니다: Codeql-action-sync-tool을 이용해 인터넷 연결이 없는 상황에서도 수동으로 sync가능
-
저장소의 읽기 권한이 있으면, Pull Request상에 Code Scanning 결과 볼 수 있고, 저장소에 ‘쓰기’ 권한이 있으면 ‘Security’ 탭에서 전체 결과 확인 가능 (설명)
- CodeQL 쿼리 스위트 설명
-
3rd 도구와 유연하게 연동하여, Upload SARIF를 통해 결과를 함께 확인할 수 있습니다.
- CodeQL은 Microsoft, Google, Uber등에서 분석을 위해 사용됩니다.
How 3. Code 작성시 실수로 Push되는 Credential을 자동으로 검출합니다 : Secret Scanning
-
GitHub.com상에 Public 저장소들은 이전부터 default로 자동 ON되어 있어왔습니다. GitHub.com상의 Private 저장소는 Organization 소속의 저장소만 지원
-
GHES는 Organization 소속의 저장소만 지원
-
User Defiend 패턴까지 지원 예정
-
Secret Scanning alert를 볼 수 있는 권한은 Org의 Owner/저장소의 Admin이 추가/삭제 가능
How 4. 전체적인 보안 상태를 확인할 수 있습니다.
- Org Owner는 Security Center에서 조직 레벨의 전체 상태를 확인할 수 있습니다 (currently beta on GHEC)