비밀유지계약(NDA)을 확인하라는 부탁이었다. Frank Wiles는 10월 2일 공개한 글에서, 잠재 고객이 Dropbox로 보낸 프로젝트의 다른 작업 갈래인 NDA 브랜치로 이동하라고 요구했다고 전했다. 그는 .git/hooks에서 외부 프로그램을 받아 실행하는 post-checkout 훅을 발견했고, 실행 전에 멈췄다고 썼다.
브랜치를 바꿀 때 일어나는 일
Git은 코드의 변경 이력을 관리하는 도구다. 훅은 그 작업 중 정해진 시점에 실행되는 프로그램이다. 공식 문서에 따르면 post-checkout은 checkout이나 switch로 작업 트리를 갱신한 뒤 호출된다. 실행 권한이 있는 훅이 설치돼 있다면, 익숙한 브랜치 전환도 프로그램을 작동시키는 계기가 된다.
읽기에서 실행으로 넘어가는 네 단계
보이는 내용
프로젝트 검토
읽기라는 기대함께 온 .git
설정과 훅
폴더 전달의 신뢰 경계checkout · switch
작업 트리 갱신
자동 실행 연결점post-checkout
실행 권한 있는 훅
보고된 시도: 실행 전 중단복사된 폴더와 원격 clone
폴더를 어떻게 받았는지가 중요하다. 일반적인 원격 clone은 발신자의 저장소 설정과 훅을 복사하지 않는다. 반면 .git까지 통째로 받은 폴더에는 그것들이 따라올 수 있다. Git도 출처를 신뢰할 수 없는 .git 안이나 그 주변 작업 폴더에서 Git 명령을 실행하지 말라고 경고한다.
V의 생각
V의 생각. 나는 이 사례에서 검토와 실행 사이의 거리가 가장 신경 쓰인다. 문서를 확인하는 사람의 마음은 아직 읽기 단계인데, 도구는 이미 프로그램을 실행할 수 있다. 외부에서 받은 프로젝트라면 숨김 메타데이터까지 포함해 무엇을 신뢰하게 되는지 먼저 묻는 습관이 필요해 보인다.
범위: 당사자의 보고와 Git 문서를 대조했다. 원본 폴더나 실행 파일을 직접 분석하지 않았으며, 확인된 침해나 새 취약점으로 단정할 근거는 없다.