GitHub는 전 세계 개발자들이 프로젝트 코드를 저장하고 공유하기 위해 사용하는 플랫폼입니다. 개발자들은 공개 저장소를 생성하고 다양한 프로젝트에서 협업할 수 있습니다. 2008년에 설립된 GitHub는 호스팅 기능을 제공하는 클라우드 기반 서비스로, 2018년에 Microsoft에 인수되었습니다.
GitHub는 소프트웨어 요청 발행, 버그 추적, 작업 관리 등의 기능을 제공하는 버전 관리 시스템을 갖추고 있습니다. 오픈 소스이며 접근성이 뛰어나고 3억 7,200만 개 이상의 저장소를 보유하고 있습니다. 그러나 GitHub의 제작자들은 보안을 고려했어야 했으며, 때로는 보안이 취약해질 수 있습니다. 비밀번호가 도난당할 수 있으며 GitHub 비밀 정보는 상대적으로 안전하게 보관되지 않을 수 있습니다.
GitHub는 비밀 토큰 형식을 분석하고 의도치 않은 커밋을 검색하기 위한 비밀 스캔 파트너 프로그램을 운영합니다. 이 스캔 결과를 클라우드 서비스 제공업체에 전송하여 엔드포인트를 검증할 수 있습니다. GitHub 스캔은 또한 자격 증명의 부정 사용을 방지하며 공개 npm 패키지에 적용될 수 있습니다. 조직은 비공개 저장소를 스캔하고, 시크릿 스캔을 확인 및 관리하는 등의 작업을 수행할 수 있습니다. GitHub에는 시크릿 스캔 메시지 페이로드를 포함하는 것으로 알려진 GitHub의 웹훅을 수신하는 시크릿 알림 서비스도 있습니다.
이 가이드는 GitHub 비밀 스캔에 대해 알아야 할 모든 것을 다루고 세부 사항을 살펴볼 것입니다.
GitHub 시크릿 스캐닝이란 무엇인가요?
GitHub 시크릿 스캐닝은 조직 내에서 비밀을 안전하게 보호하는 다양한 보안 기능을 포함합니다. 일부 기능은 도구 형태로 제공되며, GitHub의 고급 보안 솔루션을 도입한 기업은 독보적인 이점을 누릴 수 있습니다.
GitHub 비밀 스캐닝은 GitHub 저장소의 모든 브랜치에 걸쳐 전체 Git 기록에서 비밀 정보를 추출합니다.
GitHub 시크릿 스캐닝이 중요한 이유는 무엇인가요?
GitHub 시크릿 스캐닝은 잠재적인 인증 정보 유출을 방지하고 개발자의 정규식 패턴을 정의하는 데 도움이 되기 때문에 필요합니다. 저장소가 민감한 데이터 노출 위험에 처해 있다는 것은 누구나 알고 있으며, 소스 코드에 비밀 정보를 하드코딩하는 것은 좋지 않습니다. DevOps 팀은 GitHub 액션을 사용하여 워크플로를 자동화하고 애플리케이션을 배포하며, '비밀 정보(secrets)'라는 강력한 내장 기능을 보유하고 있습니다. 이 기능은 사용자가 소스 코드 내에서 값을 안전하게 저장하고 사용할 수 있게 하지만, 전문가들은 적절한 보안을 위해 도구 사용 이상의 조치가 필요하다고 믿습니다.
제3자 비밀번호 스캐닝 도구는 외부 서비스로, DevOps 워크플로우 내에서 비밀을 관리하고 저장하는 안전하고 보안이 강화된 중앙 집중식 방법을 제공합니다. GitHub Actions 비밀보다 더 큰 유연성을 제공하며, 더 큰 저장 용량, 더 높은 저장 한도, 비밀 키 회전, 접근 제어 관리, 감사, 버전 관리 등과 같은 추가 기능을 제공합니다.
GitHub에서 시크릿 스캐닝에 사용 가능한 기능
- GitHub Actions 비밀 정보는 GitHub Actions에서만 볼 수 있으며 출력 로그나 웹 인터페이스에는 표시되지 않습니다.
- GitHub 비밀 정보 스캔은 SSH 인증서 같은 암호화된 데이터 파일을 저장하는 데 사용할 수 있으며 언제든지 업데이트하거나 삭제할 수 있습니다.
- GitHub Actions 시크릿은 특정 보안 정책 및 암호화 프로토콜을 따르며, 권한이 부여된 사용자만 조회 및 접근할 수 있습니다
그러나 기본 GitHub 시크릿 스캐너에는 다음과 같은 여러 제한 사항이 있습니다:
- 첫째, 시크릿당 최대 크기 제한이 64KB이며, 저장소에 저장할 수 있는 시크릿은 100개로 제한됩니다.
- 조직은 1,000개 이상의 시크릿을 저장할 수 없으며, 시크릿 키 회전, 감사, 버전 관리 등과 같은 고급 보안 기능이 부족합니다.
- 크로스 리포지토리 지원이 제공되지 않으며, 조직은 여러 워크플로우나 프로젝트 간에 시크릿을 동시에 동기화, 공유, 구성 또는 업데이트할 수 없습니다.
GitHub 시크릿 스캐닝 작동 방식
사용자는 저장소에서 유출된 시크릿을 스캔할 때 실시간 알림을 받는 방식을 구성할 수 있습니다. GitHub 시크릿 스캐닝 기능은 사용자가 소유한 모든 공개 저장소에서 활성화할 수 있습니다. 활성화되면 GitHub는 해당 저장소 내 모든 브랜치의 전체 Git 히스토리를 대상으로 시크릿을 스캔합니다.
시크릿 스캐닝은 동일 조직 내 여러 저장소에서 작동합니다. GitHub 시크릿 스캐닝은 조직이 시크릿의 부정 사용을 방지하고 실수로 커밋되는 것을 차단하는 데 도움이 됩니다.
GitHub 비밀 스캔 설정 방법?
- GitHub.com을 방문하여 저장소의 메인 페이지로 이동합니다.
- 설정 탭을 클릭하여 드롭다운 메뉴를 표시합니다. 사이드바에 있는 보안 섹션에서 코드 보안 및 분석을 클릭하세요.
- GitHub 고급 보안이 활성화되어 있는지 확인하세요. 활성화되어 있지 않은 경우 활성화를 클릭하세요.
- 이 저장소에 대해 GitHub 고급 보안을 활성화하세요.
- 이 작업이 완료되면 조직의 공개 저장소에 대해 비밀 스캔이 자동으로 활성화됩니다. '비밀 스캔' 기능 옆에 '활성화' 버튼이 있는 경우, 해당 버튼을 클릭해야 합니다. '비활성화' 버튼을 클릭하면 비밀 스캔을 끌 수 있습니다.
- GitHub 비밀 스캔은 지원되는 비밀을 포함하는 커밋을 차단하며 Push Protection 기능을 제공합니다. 푸시를 수동으로 검토하려면 해당 기능의 Enable을 클릭하세요.
GitHub 비밀 스캔 모범 사례는 무엇인가요?
GitHub 비밀 스캔과 관련하여 몇 가지 모범 사례는 다음과 같습니다:
- 새 시크릿 우선순위 지정
신규 제출된 자격 증명을 시크릿 저장 전에 검토하는 것이 필수적입니다. 이는 조직의 시크릿 수를 낮게 유지하는 데 도움이 되며, 웹훅을 활용해 새 시크릿 알림을 관련 팀에 전달합니다. 개발자는 새로운 시크릿을 커밋하기 전에 충분한 교육 문서와 배포 절차를 받아야 합니다. 모든 시크릿 유형에 대해 경고를 추적하고 고급 수정 프로세스를 구현하는 것이 중요합니다.
- 커밋된 시크릿 처리
가장 중요한 커밋된 비밀을 처리하고 오래된 비밀 검토를 시작하는 것이 중요합니다. 각 비밀 유형을 식별한 후 개발자는 수정 프로세스를 정의하고 문서화해야 합니다. 또한 변경 사항을 신규 사용자에게 전달하고 영향을 받는 저장소 관리 지침을 수립해야 합니다.
- 고급 보안 스캔 실행
GitHub Enterprise Cloud를 사용하여 고급 보안 스캔을 설정할 수 있습니다. 조직에는 GitHub Advanced Security 라이선스가 필요하며, GitHub는 모든 공개 저장소에 대해 파트너 패턴 스캔을 자동으로 실행할 수 있습니다.
GitHub 비밀 스캔의 장단점
Git 비밀 스캔의 장점
비밀 스캔은 조직이 민감한 정보를 식별하고 이를 보호하기 위한 조치를 취하는 데 도움이 되는 유용한 기능입니다. 시크릿 스캐닝 도구를 사용하면 기업이 전체 클라우드 보안 태세를 강화하는 데 도움이 됩니다. GitHub는 모든 공개 저장소에서 시크릿 스캐닝을 무료로 제공하며, 시크릿 스캐닝 파트너 프로그램을 통해 클라우드 기반 서비스 제공업체와 협력하여 유출된 자격 증명을 표시합니다.
오픈 소스 개발자는 코드에서 유출된 시크릿에 대한 경고를 무료로 받고, 변경 사항을 추적하며, 적절한 조치를 취할 수 있습니다. GitHub는 또한 2022년 4월부터 모든 GitHub Advanced Security 고객을 대상으로 비밀 정보를 사전 스캔하고 커밋 전에 유출을 방지하는 푸시 보호 기능을 추가했습니다. 사용자 정의 패턴에 대한 푸시 보호는 패턴별로 구성 및 적용됩니다.
GitHub 비밀 스캐닝의 장점은 다음과 같습니다:
- 모든 규모의 조직에서 무료로 이용 가능하며 공개 저장소에 대한 접근 권한을 부여합니다
- 추가적인 보안을 제공하며 공개 저장소에 저장된 모든 비밀 정보를 추적하는 데 매우 편리합니다
- GitHub 시크릿 스캐닝은 개별 코드 라인을 수동으로 검토하는 것보다 훨씬 빠릅니다.
- 의료, 금융, 소매 산업은 민감한 정보를 암호화하고 관련 표준 및 규정 준수를 보장할 수 있습니다.
Git 비밀 스캐닝의 단점
다음은 GitHub 비밀 스캐닝의 단점입니다:
- 위협 분석에 시간이 너무 오래 걸릴 수 있음
- 비밀 탐지 과정에서 오탐지(False positive) 및 누락(False negative) 발생 가능성
- 개발 속도 저하 가능성
- 자동 빌드 실패 가능성
- 타사 GitHub 비밀번호 스캔 도구 대비 스캔되는 라인 수가 적음
- 데이터베이스 추출 오류 및 생성된 코드 내 경고 발생
- 공개 저장소의 파트너 패턴에 대한 비밀번호 스캔 구성 변경 불가
SentinelOne이 GitHub 비밀번호 스캔에 어떻게 도움이 될까요?
도난된 인증 정보는 전체 사이버 보안 공격의 거의 절반을 차지합니다. GitHub는 공개 저장소에서 100만 건 이상의 유출된 비밀 정보를 탐지했으며, 매분마다 10여 건 이상의 우발적 유출이 발생하고 있습니다.
API, 토큰 및 기타 비밀 정보의 우발적 유출은 클라우드 데이터 유출 위험과 평판 손상을 증가시키며 법적 책임을 초래합니다. 기본 GitHub 비밀번호 스캐너는 알려진 공격 패턴과 시그니처를 기반으로 자격 증명 오용을 탐지합니다. 조직은 이러한 비밀 정보가 어떻게 접근되는지 조사할 실질적인 방법이 없으며, 인적 요소를 간과합니다.
이때 센티넬원(SentinelOne)이 해결책으로 나섭니다.
SentinelOne은 클라우드 설정 오류, 자격 증명 유출을 식별하고 인프라스트럭처 코드(IaC) 템플릿을 검토합니다. 보안 팀이 관리되지 않는 인스턴스, 쿠버네티스 클러스터 및 다양한 클라우드 서비스를 추적할 수 있도록 지원합니다.
SentinelOne의 포괄적인 CNAPP는 한 걸음 더 나아가 왼쪽 이동(shift-left) 보안을 구현합니다. 공격적 보안 엔진(Offensive Security Engine)은 모든 잠재적 악용 가능성을 식별하고 알려지지 않거나 숨겨진 취약점을 해결합니다. SentinelOne CNAPP는 퍼블릭 및 프라이빗 클라우드 저장소를 스캔하고 미션 크리티컬 워크로드를 보호합니다. 조직의 클라우드 보안 태세를 즉시 개선할 수 있는 보안 자동화를 제공합니다. 이 플랫폼은 750종 이상의 다양한 유형의 비밀 정보를 탐지하고 클라우드 자격 증명 유출도 방지합니다.
정적 머신 러닝 분석과 동적 행동 분석을 결합하여 보안 팀은 시크릿 관련 문제를 실시간으로 스캔하고 해결할 수 있습니다. SentinelOne CNAPP 비밀 키를 정기적으로 교체하여 비밀 정보 유출 위험을 줄입니다. 플랫폼은 AES, DES, 3DES와 같은 대칭 암호화 알고리즘을 구현하여 보호 기능을 강화합니다. Purple AI는 개인 보안 분석가 역할을 하며, 통합된 AI 기반 제어 평면을 통해 SecOps를 가속화합니다. 평균 대응 시간(Mean Time to Respond)을 단축하고 비밀 정보 조사를 간소화합니다.
결론
GitHub 비밀 스캔은 많은 리소스를 소모할 수 있지만, 조직은 이에 주의를 기울여야 합니다. 좋은 GitHub 비밀 스캔 기술은 데이터 침해를 방지하고, 고객을 보호하며, 운영 장애를 최소화하는 데 도움이 될 수 있습니다.
GitHub 시크릿 스캐닝은 필수적인 클라우드 보안 구성 요소이며 코드 저장소의 결함을 식별하는 데 도움이 됩니다. GitHub 비밀 스캔 도구 없이는 조직이 취약한 상태로 방치되어 심각한 결과를 초래할 수 있습니다.
FAQs
GitHub 비밀 스캔은 공개 및 비공개 저장소 전반에 걸쳐 비밀 정보를 스캔하기 위한 도구와 프로세스를 활용하는 것입니다. 코드 내 비밀 정보를 스캔하여 결함을 찾고, 구성 변경이나 편차를 감지하며, 효과적인 조치 및 위협 완화를 위한 계획을 수립합니다.
사용자는 기본 GitHub 비밀 스캔 기능을 사용하여 코드 내 비밀을 스캔할 수 있습니다. 또는 SentinelOne과 같은 포괄적인 GitHub 비밀 스캔 도구를 사용하여 종합적인 보안 및 보호를 구현할 수도 있습니다.
GitHub에서 제공하는 GitHub 시크릿 스캐닝은 완전히 무료입니다. CNAPP에 포함된 SentinelOne GitHub 스캐닝 도구는 스타터 플랜 기준으로 월 2000달러부터 시작합니다.
GitHub 코드 스캐닝은 기본적으로 GitHub 사용자에게 무료로 제공됩니다. 그러나 SentinelOne과 같은 유료 프리미엄 도구로 해결할 수 있는 다양한 제한 사항이 존재할 수 있습니다.
