사이버 공격과 방어의 실무
2020년 12월에 드러난 SolarWinds사 사건에서는 IT 관리용 소프트웨어의 빌드 환경에 공격자가 들어와 정규 업데이트 프로그램에 부정한 코드가 섞여 들어갔다. 이 업데이트는 개발사의 정규 코드 서명이 붙은 상태로 배포되었다. 이 사건에서 얻을 수 있는 교훈으로 가장 적절한 것은?
- A코드 서명이 올바른 업데이트 프로그램에는 부정한 코드가 포함되지 않으므로, 사용자는 서명을 확인하면 충분하다
- B업데이트 프로그램은 위험하므로 보안 수정을 포함하여 소프트웨어는 일절 업데이트하지 않도록 한다
- C코드 서명은 누가 서명했는지와 서명 후 변조 여부를 나타낼 뿐이므로, 개발사는 빌드 환경을 지키고 사용자는 신뢰하는 소프트웨어의 행위도 감시한다
정답과 해설 보기
정답: C. 코드 서명은 누가 서명했는지와 서명 후 변조 여부를 나타낼 뿐이므로, 개발사는 빌드 환경을 지키고 사용자는 신뢰하는 소프트웨어의 행위도 감시한다
코드 서명은 서명한 자가 누구인지와 서명 후에 내용이 바뀌지 않았음을 확인하는 구조로, 서명 전에 섞여 들어간 부정한 코드는 식별할 수 없습니다. 소프트웨어 공급망 공격의 대표적인 예인 SolarWinds사 사건에서는 빌드 도중에 부정한 코드가 추가되었기 때문에, 서명이 붙은 정규 업데이트로서 많은 조직에 전달되었습니다. 2024년 3월에 드러난 xz-utils의 백도어에서도 오랜 기간에 걸쳐 개발자로서 신뢰를 얻은 인물이 배포용 파일에 부정한 코드를 숨겨 넣었습니다. 개발사는 빌드 환경을 분리하여 지키고 소스부터 빌드까지의 출처 이력을 기록하여 검증하며, 사용자는 신뢰하는 소프트웨어라도 수상한 통신이나 행위를 EDR 등으로 감시하는 것이 중요합니다.