개발학과 브리핑
소스 코드가 깨끗해도, 당신의 컴파일러는 거짓말을 할 수 있습니다
우리는 소스 코드를 믿지만, 정작 그 코드를 만드는 도구가 우리를 속이고 있다면 어떻게 될까요?
사실
2026년 9월 7일, GNU strip 유틸리티를 이용해 Linux 배포판 전체에 Trusting-Trust 공격이 가능하다는 사실이 보고되었습니다. 이 공격은 소스 코드 검토 없이 ELF 파일만 변환하여 감염을 전파할 수 있습니다. 출처는 2곳이며, 중요도는 4점으로 평가되었습니다. GNU strip은 실행 파일에서 불필요한 심볼을 제거하는 표준 도구이며, 이 공격은 그 도구의 동작 방식을 악용합니다.
풀이
Trusting-Trust 공격은 원래 컴파일러를 감염시켜, 그 컴파일러가 만든 모든 프로그램에 백도어를 심는 기법입니다. 이번 사건은 그 원리를 GNU strip에 적용한 것입니다. strip은 배포판 빌드 과정에서 흔히 사용되므로, 한 번 감염된 strip이 다른 ELF 파일을 처리할 때 악성 코드를 삽입할 수 있습니다. 중요한 점은 소스 코드를 아무리 검토해도 이 공격을 발견하기 어렵다는 것입니다. 왜냐하면 감염된 도구가 생성한 결과물은 정상 소스에서 나온 것처럼 보이기 때문입니다. 이 공격은 배포판 전체로 퍼질 수 있는 잠재력을 지닙니다.
교수의 해석
교수의 해석: 이 사건은 '신뢰할 수 있는 도구'에 대한 우리의 가정이 얼마나 취약한지를 보여줍니다. 현장에서는 대부분의 보안 검토가 소스 코드와 네트워크 트래픽에 집중하지만, 빌드 도구와 유틸리티는 '신뢰의 뿌리'로 간주되어 간과되곤 합니다. 이번 공격이 실제로 대규모 배포판에 적용되었는지는 확인되지 않았지만, 개념 증명만으로도 위협 모델을 재고해야 합니다. 저는 이 공격이 실제 현장에서 작동할 가능성이 높다고 봅니다. 왜냐하면 strip은 거의 모든 배포판에서 자동화된 빌드 과정에 포함되며, 이에 대한 무결성 검증은 드물기 때문입니다. 다만, 이 공격이 실제로 발생했다는 증거는 아직 없으므로, 우리는 '가능성'과 '실제 발생'을 구분해서 접근해야 합니다.
생각해보기
만약 여러분이 리눅스 배포판의 보안 책임자라면, 소스 코드가 아닌 빌드 도구의 무결성을 어떻게 검증하시겠습니까?
260908_07