News Feed

깃허브에 숨은 함정…삭제한 파일도 여전히 위험하다

컨텐츠 정보

  • 조회 610

본문

공개 깃허브(GitHub) 리포지토리에서 파일을 삭제하더라도 공격자가 어디를 어떻게 찾아야 할지 알고 있다면 여전히 API 키, 토큰, 인증 정보 같은 민감한 정보가 노출될 수 있다.

최근 사이버보안 연구원 샤론 브리지노프는 깃(Git)의 버전 관리 기능을 활용해 삭제된 파일에서 노출된 민감 정보를 복구하는 데 성공했다. 개발자가 협업을 위해 사용하는 오픈소스 버전 관리 도구인 깃은 깃허브의 사용량 기반 유료 플랫폼을 통해 클라우드에서 운영된다.

브리지노프는 블로그 게시글에서 “수만 개의 공개 깃허브 리포지토리를 복제하고 스캔하는 자동화 도구를 만들었다. 각 리포지토리에서 삭제된 파일을 복구하고 연결이 끊긴 블롭을 찾았으며, .pack 파일을 풀어 그 안에 노출된 민감 정보를 검색했다”라고 설명했다.

브리지노프는 이런 방식으로 포춘 500대 기업이 보유한 수십 개의 리포지토리에서 수백 건의 민감 정보를 찾아내 총 6만 4,000달러의 버그 바운티 보상금을 받았다.

삭제해도 깃 히스토리에는 남는다

브리지노프의 발견에 따르면, 깃은 모든 변경 사항의 기록을 완전히 보존하기 때문에 파일을 삭제해도 해당 파일과 그 내용은 적절한 방법으로 완전히 제거하지 않는 한 여전히 접근 가능하다. 브리지노프는 “개발자는 작업 디렉토리에서 파일을 지웠더라도 깃 히스토리에 모든 것이 그대로 남아 있다는 사실을 종종 잊곤 한다”라고 지적했다.

깃에서 파일을 삭제하면 최신 버전에서는 사라지지만, 리포지토리 기록에는 종종 그대로 남는다. 깃은 삭제된 파일이 포함된 커밋을 포함해 모든 과거 커밋을 내부 객체 데이터베이스에 저장한다. 어떤 분기와도 연결되지 않은 경우에도 ‘연결이 끊긴(dangling)’ 데이터가 그대로 보관된다.

브리지노프가 개발한 자동화 툴은 이런 숨겨진 잔여 데이터를 찾아낸다. 커밋 간의 차이를 비교하고 깃 내부 파일을 풀어내며, 참조되지 않은 데이터를 스캔하는 방식으로 삭제된 파일을 복구했고 그 안에서 노출된 민감 정보를 찾아낸 것이다.

브리지노프는 “삭제된 모든 파일을 수집하기 위해 모든 커밋을 탐색했고 깃 디프(git diff)로 각 커밋을 상위 커밋과 비교해 파일 목록의 차이를 확인했다”라고 설명했다. 삭제된 파일을 복구한 뒤에는 별도의 자동화 툴을 통해 여전히 유효한 상태로 남아 있는 민감 정보를 간단히 검색했다.

AI로 쉬워진 취약점 악용

흥미롭게도 브리지노프는 이번 취약점 분석에서 여러 반복 작업을 AI에 맡겼다. 예를 들어, AI를 활용해 깃 저장소 내 파일 디렉토리의 변화를 시각적으로 분석할 수 있는 소규모 플랫폼을 구축했으며, 이를 통해 어떤 객체가 생성되고 변경되며, 삭제됐는지 한눈에 파악했다.

브리지노프는 “물론 이 프로젝트에 이런 작업은 과하긴 했지만, 바이브 코딩 덕분에 5분도 안 걸려서 만들 수 있었으니 굳이 마다할 이유가 없었다”라고 덧붙였다. 또한 목표로 삼은 기업과 연결된 공개 깃허브 계정을 찾는 데도 AI를 활용했다.

노출된 민감 정보는 종종 .pyc나 .pdb 같은 바이너리 파일에서 비롯된다. 이런 컴파일러가 자동 생성하는 파일은 개발 과정에서 실수로 커밋되는 경우가 많은데, 제대로 제외 처리하지 않으면 민감한 데이터가 노출될 수 있다.

깃허브는 브리지노프의 발견과 이에 따른 보안 위험 관리 방안에 대한 본지의 질의에 응답하지 않았다. 하지만 개발자는 깃허브가 제공하는 GHAS(GitHub Advanced Security)를 통해 민감 정보가 포함된 커밋을 탐지하고 차단할 수 있다. 대표적인 기능으로는 시크릿 스캐닝(Secret Scanning)과 푸시 보호(Push Protection)가 있다. 최근 깃허브는 이들 기능을 더 쉽게 도입할 수 있도록 개별 구독 형태로 분리했다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank