|
GitHub은 실수로 노출된 PyPI, RubyGems의 secret을 스캔한다 침해사고분석팀 2021.06.10 |
|
|
GitHub는 최근 secret 스캔 기능을 PyPI와 RubyGems 레지스트리로 확장했다.
이러한 움직임은 Ruby와 Python 개발자들이 구축한 수백만 개의 애플리케이션을 보호하는 데 도움이 된다.
GitHub는 이제 PyPI, RubyGems의 secret을 스캔한다
GitHub는 자격 증명과 API 토큰과 같은 PyPI 및 RubyGems secret을 노출하는 리포지토리를 자동으로 스캔할 것이라고 발표했다.
이 기능을 사용하려면 개발자는 리포지토리에 대해 GitHub 고급 보안(GitHub Advanced Security)이 활성화되어 있는지 확인해야 한다.
GitHub는 "GitHub.com의 공공 저장소의 경우 이러한 기능은 영구적으로 켜져 있으며 코드가 더 이상 공개되지 않도록 프로젝트의 가시성을 변경하는 경우에만 비활성화할 수 있다."고 말한다.
사용자 이름 및 암호와 유사하게, secret 또는 토큰은 서비스를 사용하는 동안 자신을 인증하는 데 사용할 수 있는 문자열이다.
타사 API에 의존하는 애플리케이션은 API 서비스에 대한 액세스를 얻기 위해 코드에서 secret(개인 API 키)을 자주 사용한다.
따라서 광범위한 소프트웨어 공급망에 영향을 미치는 공격으로 이어질 수 있으므로 기밀이 침해되지 않도록 주의해야 한다.
이에 앞서 GitHub은 실수로 커밋된 npm, NuGet 및 Clojars secret을 검색했다.
GitHub Advanced Security가 현재 지원하는 70가지 이상의 다양한 유형의 secret 목록이 있다.
여기에는 오픈 소스 레지스트리(npm, PyPI, RubyGems, Nuget, Clojars 등)와 Adobe, OpenAI와 같은 비패키지 관리 서비스에 대한 secret이 포함된다.
[그림1. GitHub Advanced Security에서 지원하는 secret 유형]
secret이 식별이 되면 어떻게 되는가?
GitHub가 공용 리포지토리에 노출된 패스워드, API 토큰, 개인 SSH 키 또는 지원되는 다른 secret를 발견하면 레지스트리 유지 관리자에게 알린다.
예를 들어, PyPI와 RubyGems를 추가한 레지스트리 관리자들은 노출된 자격 증명을 해지하고 개발자에게 다음과 같은 이메일을 보내 이유를 설명한다.
[그림2. 개발자에게 해지된 자격 증명을 알리는 이메일 샘플]
"각 경우에, 우리는 공공 저장소 또는 gist에 대한 모든 커밋을 자동으로 검사하여 잠재적으로 유출될 수 있는 자격 증명을 찾는다."
GitHub 소프트웨어 엔지니어 Annie Gesellchen은 어제 블로그 게시물에서 "만약 우리가 그것을 발견하면 우리는 레지스트리에 알리고, 자동적으로 손상된 모든 secret을 취소하고 그들의 소유자에게 통보한다."고 설명했다.
여기서 GitHub와 RubyGems 및 PyPI의 파트너십의 장점은 노출된 secret을 개발자가 수동 조치를 취할 때까지 기다리지 않고 몇 초 내에 자동으로 취소된다는 점이다.
이와 같이 자동화된 secret 스캔 기능은 우발적인 유출로부터 개발자 인프라를 보호하고 공급망 보안을 강화하는 데 한 걸음 더 다가간다.
출처 |


