비밀 및 자격 증명
비밀은 API 키, 암호, 인증 토큰, 인증서 및 암호화 키를 포함하여 중요한 시스템 및 데이터에 대한 액세스 권한을 부여하는 자격 증명입니다. 비밀이 리포지토리에 커밋되면 Git 기록의 일부가 되며 최신 커밋에서 제거된 후에도 계속 액세스할 수 있습니다.
코드 리포지토리의 비밀은 자동화된 검사 도구 및 권한이 없는 사용자가 검색할 수 있습니다. 공용 리포지토리는 특히 취약하지만 프라이빗 리포지토리에서 유출된 자격 증명은 포크, CI/CD 로그 또는 타사 통합을 통해 확산될 수도 있습니다.
노출된 비밀의 보안 영향
노출된 비밀은 다음과 같은 여러 유형의 보안 인시던트로 이어질 수 있습니다.
**무단 액세스 및 사용**
-
유출된 클라우드 공급자 자격 증명을 사용하여 계정에 인프라 또는 서비스를 프로비전할 수 있습니다.
-
데이터베이스 자격 증명을 통해 중요한 고객 또는 조직 데이터에 액세스할 수 있습니다.
-
서비스 계정 토큰은 프로덕션 시스템에 진입점을 제공합니다.
**운영 및 규정 준수 문제** -
유출된 자격 증명을 사용하여 인프라를 수정하거나 삭제할 수 있습니다.
-
노출된 비밀의 데이터 위반으로 인해 GDPR, CCPA 및 기타 프레임워크에 따라 규제 처벌이 발생할 수 있습니다.
-
조직은 인시던트 대응, 자격 증명 회전 및 시스템 수정에 대한 비용을 부담합니다.
**조직 위험** -
유출된 비밀의 공개는 고객 신뢰와 조직의 평판에 영향을 줍니다.
-
노출된 패키지 레지스트리 토큰을 사용하여 악성 버전의 소프트웨어를 게시할 수 있습니다.
-
독점 API 키 또는 서비스 자격 증명이 악용될 수 있음
노출된 비밀의 재정적 영향
비밀 유출로 인해 즉각적인 비용에서 장기적인 비즈니스 결과에 이르기까지 조직에 직접 및 간접 비용이 발생할 수 있습니다.
**즉각적인 비용**
-
유출된 API 키에서 무단 클라우드 리소스를 사용하면 컴퓨팅 인스턴스, 스토리지 또는 데이터 전송에 대한 요금이 발생할 수 있습니다.
-
손상된 계정에 대한 암호화 마이닝 작업으로 인해 상당한 인프라 요금이 발생할 수 있습니다.
-
긴급 인시던트 대응을 위해서는 포렌식 조사, 보안 감사 및 시스템 간 자격 증명 회전을 위한 리소스가 필요합니다.
**데이터 위반 비용** -
데이터 보호 위반에 대한 규제 벌금은 GDPR, CCPA 및 산업별 규정에 따라 수백만 달러에 이를 수 있습니다.
-
법적 비용에는 조사, 알림 요구 사항 및 잠재적 소송이 포함됩니다.
-
영향을 받는 고객을 위한 신용 모니터링 및 ID 보호 서비스
**운영 영향** -
손상된 인프라로 인한 서비스 중단으로 인해 수익 및 생산성 손실
-
보안 인시던트에 대응하는 데 소요된 엔지니어링 시간은 제품 개발에서 리소스를 전환합니다.
-
인시던트 이후 보안 도구 및 모니터링 비용 증가
**장기적인 비즈니스 영향** -
보안 인시던트 공개 후 고객 변동
-
사이버 책임 보험에 대한 보험료 증가
-
실패한 보안 평가 또는 규정 준수 감사로 인해 비즈니스 기회 손실
일반적인 비밀 유출 시나리오
비밀은 일반적으로 다음과 같은 몇 가지 일반적인 패턴을 통해 리포지토리를 입력합니다.
**개발 워크플로**
-
로컬 테스트 중에 하드 코딩되고 실수로 커밋된 자격 증명
-
파일 또는 코드 기반 인프라 템플릿과 같은
.env구성 파일의 비밀 -
설명서, wiki 또는 추가 정보 파일에 실제 토큰이 포함된 자격 증명 예제
**리포지토리 관리** -
잊어버렸지만 여전히 활성 상태인 자격 증명을 포함하는 레거시 리포지토리
-
GitHub 문제, 끌어오기 요청 주석, 토론 또는 gists에서 공유되는 비밀
-
외부 기여자 또는 계약자가 도입한 자격 증명
**버전 제어 문제** -
비밀은 현재 코드에서 제거된 후에도 Git 기록에 유지됩니다.
-
자격 증명이 포크된 리포지토리, 백업 시스템 및 로그에 전파됨
-
노출된 비밀이 있는 공용 리포지토리는 검색 엔진 및 특수 검사 서비스에 의해 인덱싱됩니다.
비밀 보안을 유지하기 위한 GitHub
GitHub 에서는 비밀 누출을 방지, 감지 및 수정하는 데 도움이 되는 도구를 제공합니다.
1. 새 비밀이 유출되지 않도록 방지
**리포지토리에 대한 푸시 보호를** 사용하도록 설정하여 작업 중에 `git push` 코드를 검사하고 검색된 비밀을 포함하는 커밋을 차단합니다. 이렇게 하면 개발자에게 실시간 피드백을 제공하면서 자격 증명이 리포지토리에 들어가지 못하게 됩니다.
기여자가 자신의 개인 계정에 대한 푸시 보호를 사용하도록 권장합니다(이 기능은 "사용자에 대한 푸시 보호"라고 함). 이 기능은 리포지토리, 포크 및 해당 사용자가 기여하는 모든 리포지토리에 대한 모든 푸시를 보호합니다 GitHub. 이를 통해 개별 개발자는 조직 수준 정책을 기다리지 않고 비밀 유출을 방지할 수 있습니다.
2. 기존 비밀 검색
커밋된 비밀에 대한 리포지토리를 지속적으로 모니터링하고 자격 증명이 검색되면 경고를 수신하는 데 사용합니다 secret scanning . 이렇게 하면 손상된 자격 증명을 신속하게 해지하고 회전할 수 있습니다.
다음 단계
비밀 누출로부터 조직을 보호하려면 다음을 수행합니다.
- 푸시 보호를 사용하도록 설정하여 새 비밀이 커밋되지 않도록 합니다.
- 클릭 한 번으로 secret scanning 을 활성화하여 비밀 누출 감지를 시작합니다.
- 개발 팀에 대한 보안 자격 증명 관리 사례를 설정합니다.