# GitHub에 실수로 공개된 인증 정보 54만 건 이상이 유효한 채로 방치된 사실이 밝혀짐

> https://bookfactory.kr/board/news/19953
> 게시판: 뉴스
> 작성자: tachikoma43
> 작성일: 2026-10-04T05:32:57.182Z

---

보안 기업 Truffle Security가 GitHub 공개 리포지토리를 대규모로 조사한 결과, API 키, 접근 토큰, 데이터베이스 연결 정보 등 54만 3699건의 인증 정보가 실제로 사용 가능한 상태로 계속해서 공개되고 있었던 것이 밝혀졌습니다. 인증 정보가 공개된 지 중앙값은 784일이며, 그 중에는 2009년부터 16년 이상 유효했던 것들도 확인되었습니다. GitHub Repos Exposed 543,699 Credentials. Nobody Revoked Them. ◆ Truffle Security Co. https://trufflesecurity.com/blog/github-repos-exposed-543699-credentials-nobody-revoked-them

또한, 유효한 인증 정보가 공개된 이후 경과된 기간은 중앙값이 784일이며, 전체의 10%는 6.3년 이상 전부터 공개된 상태였습니다. 가장 오래된 인증 정보는 2009년 6월에 업데이트된 파일에 포함된 데이터베이스용 인증 정보로, 조사 시에도 사용 가능했습니다. Truffle Security는 인증 정보가 유효하다는 점을 감안하여 해당 리포지토리 이름을 공개하지 않았습니다. 오래 전부터 GitHub에서 우연히 인증 정보를 공개하는 사례가 다수 발생했기 때문에 GitHub도 다양한 조치를 취하고 있습니다. 대표적인 것이 “Push Protection”으로, GitHub가 대응하고 있는 형식의 API 키나 접근 토큰을 포함하는 코드를 업로드하려고 할 때 인증 정보를 감지하여 전송을 중단하는 기능입니다. 공개 리포지토리에 대한 Push Protection은 2023년에 사용 가능하게 되었으며, 2024년 2월부터 전 사용자 대상으 로 기본적으로 활성화되었습니다. 아래 그림에서는 Push Protection이 기본적으로 활성화된 2024년 2월 29일 이후에 최종 업데이트된 파일을 주황색으로 표시하고 있습니다. Push Protection이 기본적으로 활성화된 이후 최종 업데이트된 파일에서도 다수의 유효한 인증 정보가 발견되었습니다.

한편, Push Protection의 보호 대상이 되는 인증 정보를 자세히 살펴보면, 기본 활성화 이전 및 이후 12개월 동안 파일 100만 건당 검출 수가 53% 감소했습니다. GitHub 측의 검출 및 방지 기능이 강화된 후에도 보호 대상 외의 인증 정보 등이 공개 리포지토리에 들어가고 지속적으로 있다는 의미입니다. 이번에 확인된 54만 3699건 중 19만 9843건은 Push Protection이 기본으로 활성화된 2024년 2월 이후에 공개된 것이었습니다. 또한, 유효한 인증 정보의 51.8%는 데이터베이스의 연결 문자열, Google API 키, 비밀 키 등 표준 설정의 Push Protection으로는 차단되지 않는 종류였습니다.

더욱이 Truffle Security가 지적하는 문제는 공개를 방지하는 메커니즘만으로는 이미 유출된 인증 정보를 무효화할 수 없다는 점입니다. GitHub의 시크릿 스캔은 대응하는 종류의 유출된 인증 정보를 감지할 수 있지만, 유효한 인증 정보가 발견된 경우에는 발행처에서 인증 정보를 취소하거나 새로운 인증 정보로 전환하는 작업이 필요합니다. 서비스별 차이도 크고, GitHub에 공개된 npm 토큰 101,886건 중 조사 시까지 유효했던 것은 무려 1건이며, GitHub 토큰 또한 73,048건 중 260건에 불과합니다. 반면, Google Cloud의 서비스 계정용 인증 정보는 126,963건 중 69,041건이 유효했습니다. Truffle Security는 발행처가 유출된 인증 정보를 감지하고 자동으로 취소시키는 메커니즘을 갖추고 있는지 여부가 큰 차이로 이어지고 있다고 분석합니다.

트러플 보안(Truffle Security)은 공개 저장소에 인증 정보를 실수로 커밋한 경우 유출 여부와 관계없이 유출된 것으로 취급해야 한다고 강조하고 있습니다. 실수로 커밋한 경우, 우선 인증 정보를 무효화하고 새로운 인증 정보로 전환한 후 Git 히스토리를 정리해야 한다고 조언합니다. 또한, 푸시 보호(Push Protection)가 기본적으로 활성화되지 않았던 시기에 이루어진 커밋에 대해서는 과거 히스토리를 직접 스캔하는 것이 권장됩니다. 가능한 한 만료 기간이 있는 인증 정보를 최대한 활용하는 것도 중요하다고 밝혔습니다.

[원문 보기](https://gigazine.net/news/20261002-github-credentials-not-revoked/) | 출처: Gigazine