Git에 의도치 않게 실명이나 주소가 유출되는 것을 방지하는 방법
요약
코딩 에이전트의 발전으로 Git을 통한 개인 정보 유출 위험이 커지고 있습니다. 특히 이미지의 EXIF 데이터(GPS 포함)나 tar.gz 아카이브의 헤더 메타데이터 등은 버전 관리 과정에서 의도치 않게 외부로 노출될 수 있어 주의가 필요합니다.
핵심 포인트
- AI 에이전트 사용 시 개인 정보 유출 위험 증가
- 이미지 커밋 시 EXIF 데이터(GPS) 확인 필수
- tar.gz 아카이브는 OS 사용자명 등 메타데이터 포함 가능
- git footprint 같은 도구로 메타정보 탐지 및 관리 권장
최근 이런 종류의 글을 접할 기회가 늘고 있습니다.
코딩 에이전트(Coding Agent)가 발전함에 따라, 사람의 손을 거치지 않고 AI가 자율적으로 코드를 작성하고 커밋하게 되었습니다. 팀이나 사람에 따라서는 거의 검토 없이 이를 계속 실행하고 있을 것입니다.
개인용 리포지토리에서는 아직 허용될 수도 있습니다. 하지만 퍼블릭(public) 리포지토리의 경우 의도치 않게 개인 정보가 유출될 위험이 있습니다. 또한, 리포지토리가 프라이빗(private)하더라도 그 빌드 결과 등을 외부로 공개할 때(기업 웹사이트 등), 사적인 정보가 의도치 않게 공개될 가능성도 생각할 수 있습니다.
다양한 측면이 있지만, 개인 정보라는 관점에 한정하여 짚어보겠습니다.
바로 위 기사에서 경고하는 지점입니다!
클라우드 환경의 경우, author 정보가 어떻게 설정되는지는 불분명한 경우가 많으며, 로컬(local)의 경우에도 AI가 author 정보를 조용히 덮어쓰는 사례가 보고되었습니다. 어느 정도 경험을 쌓은 엔지니어라면 이 부분을 제대로 확인하고 있을 것이라 생각하지만, 특히 초보자들은 놓치는 경우가 상당히 많습니다.
특히 블로그를 Git으로 관리하는 경우 주의해야 할 점이라고 생각합니다.
주요 SNS 등에서는 이미지를 업로드하면 EXIF 정보는 대부분 삭제되므로, 크게 신경 쓰지 않아도 개인 정보가 유출되는 일은 없습니다. 하지만 Git은 그런 배려를 해주지 않기 때문에(어쨌든 내용을 깊이 파악하지 않는 버전 관리 도구이므로 당연합니다), 이미지를 커밋하면 EXIF 정보가 그대로 남습니다.
특히 문제가 되는 것이 GPS 정보입니다. 만약 집에서 찍은 사진을 블로그에 커밋할 경우, 의도치 않게 전 세계에 자신의 주소가 노출될 수 있습니다. 그리고 Git 상에서 삭제하더라도 이력에는 계속 남아있습니다. 완전히 지우려면 git filter-repo로 히스토리 변형(history change)을 하거나, GitHub 측에서 git gc를 돌리거나, 만약 포크(fork)되었다면 포크된 곳에 연락하는 등 매우 번거로운 작업이 필요합니다. 게다가 이렇게 해도 완전히 지우지 못할 가능성도 있습니다.
공개 리포지토리에서 다루는 경우는 비교적 드문 것 같지만, 기업 웹사이트를 Git으로 관리하는 경우 Office 문서에 작성자명 등이 남아 있으면 그것이 그대로 외부 공개되어 버립니다.
꽤 고전적이거나, 옛날부터 여러 번 화제가 되어 온 것이라 아시는 분도 많을지 모릅니다.
상당히 Git 관리를 많이 하기 때문에 조금 주의가 필요합니다. PDF에는 작성자명이 들어갈 수 있습니다. 그 외에 사용 소프트웨어명 등도 경우에 따라 들어갑니다.
이 부분은 거의 Office 문서와 같습니다.
이는 의외로 알려지지 않았을 수도 있지만, 사실 tar.gz 아카이브에도 OS의 사용자명 등이 기록될 수 있습니다.
정확히는 tar의 헤더 정보에 그렇습니다. 여기에는 파일 소유자명・그룹명・타임스탬프 등의 메타데이터가 기록될 수 있습니다. 놓치기 쉬운 포인트라고 생각하지만, tar를 커밋하는 경우가 일정 부분 존재하므로 이 점을 알고 있는 것이 좋습니다.
예전에는 이 부분을 커밋할 때마다 확인했었는데... 아무래도 번거롭고 수동으로는 실수가 생길 수 있어서, 겨우 마음먹고 도구로 만들었습니다.
go install github.com/tamiroh/git-footprint@latest
로 설치할 수 있습니다.
아직 알파 버전 같은 위치지만, 대략 위에서 언급한 것과 같은 메타 정보의 탐지를 중심으로 작동합니다. 경고가 있으면 CI(Continuous Integration)에서 실패 처리하는 등의 사용도 가능합니다.
git footprint --no-pager --fail-on warn
게다가,
git footprint --allow-identity 'Alex Rivera <[email protected]>'
와 같이 옵션으로 허용할 이름・이메일 주소를 지정하면, 그 외의 기여자에게는 경고가 발생합니다(Co-authored-by 등의 트레일러도 탐지 대상입니다).
많은 사람이 참여하는 OSS(Open Source Software)라면 솔직히 별로 쓸모없을 것 같지만, 거의 혼자 운영하는 블로그의 Git 리포지토리 같은 곳에는 사용할 수 있을 것이라 생각합니다. Codex 클라우드에서 실명이 유출된 사례에는 알아차리기 쉽습니다.
직접 만든 도구 홍보처럼 느껴지셨을 수도 있지만, 본질적으로 제가 말씀드리고 싶었던 것은 이런 내용이었습니다.
Git에는 무의식적으로 많은 정보가 축적되며, 파일을 삭제해도 기록에 계속 남아있습니다. 특히 author 정보나 파일 메타데이터에는 주의가 필요하며, 단순히 git diff만 살펴보는 것만으로는 이러한 경로를 통한 개인정보 유출을 막을 수 없습니다.
AI 코딩이 활발해지면서 인간 외의 주체에 의해 대량의 결과물이 발생하고, 의도치 않은 누출이 일어나기 쉬워지고 있습니다.
도구로 기계적으로 확인합시다!
위에 홍보한 도구는 자유롭게 사용해 주세요!
개인적으로 내부 레포지토리에서 시험 사용해 본 결과, 기본적인 작동은 물론 일정 수준의 유용성은 확실하다고 판단했기 때문에, 프라이버시가 신경 쓰이는 개발자분들께 추천드립니다. 피드백이나 풀 리퀘스트는 환영합니다. 잘 부탁드립니다~.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기