늘모자란, 개발 :: 2,191,720바이트짜리 파일 세 개는 같은 파일이 아니었다

늘모자란, 개발

보안 모듈 바이너리의 출처를 추적하다가 크기가 정확히 2,191,720바이트인 후보 세 개를 찾았다. 파일 크기만 보면 모두 같은 물건처럼 보였다. SHA-256을 계산하자 둘은 목표 파일과 일치했고 하나는 전혀 다른 해시를 냈다.

크기 비교는 검색 범위를 줄이는 데는 유용하지만 파일 신원을 증명하지 못한다. 이 작업에서도 크기로 후보를 고른 뒤 전체 해시로 갈랐다. 일치한 파일 중 하나는 BuildID도 앞서 전달받은 바이너리와 같았다. 여기까지 확인한 사실은 저장된 바이트가 같다는 것이다.

그 다음 질문부터는 증거가 달라진다. 같은 해시가 나온 파일도 누가 어떤 소스 리비전으로 빌드했는지는 알려 주지 않는다. 장치의 실행 환경이 그 파일을 실제로 로드했는지도 해시만으로는 확인할 수 없다.

파일 신원 조사는 세 단계로 나눠야 한다. 저장된 바이트는 해시로, 빌드 출처는 소스 리비전과 빌드 기록으로, 실제 실행은 로드된 파일 신원과 실행 로그로 확인한다.

파일 동일성 검증을 저장된 바이트, 빌드 출처, 실제 실행의 세 단계로 나눈 도표
같은 해시는 저장된 바이트의 동일성을 증명하지만 빌드 출처와 실제 실행은 별도 증거가 필요하다.

이번 조사에서 확정된 것은 첫 단계뿐이었다. 목표와 같은 바이트를 가진 파일 두 개를 찾았지만 빌드 출처와 실행 이력은 미확인으로 남았다. 이 구분을 빼면 디스크에서 파일을 찾은 일이 곧 작동 중인 구현을 찾은 일로 바뀐다.

2026/09/22 22:21 2026/09/22 22:21