2002년 OpenSSH 트로이 목마 사건의 전말

by DD
2일 전
조회수 0

2002년 OpenSSH 소스 코드 아카이브가 트로이 목마(Trojan Horse)에 감염되어 배포된 사건을 다룸

CVS 서버(CVS Server) 계정 탈취를 통해 악성 코드가 삽입된 정황 포착

신속한 대응 및 포렌식 분석으로 피해 확산 방지 및 원인 규명 노력

사건 이후 공급망 공격(Supply Chain Attack) 방지를 위한 OpenBSD의 보안 강화 조치 소개

트로이 목마 삽입 방식 및 백도어 메커니즘

감염된 OpenSSH 소스 코드에는 `bf-test.c`라는 이름의 파일이 추가되었으며, 컴파일 과정에서 실행되어 특정 IP 주소(203.62.158.32)의 6667번 포트로 네트워크 연결(Network Connection)을 시도하는 백도어가 포함되었습니다. 이 백도어는 임의의 명령어 실행(Arbitrary Command Execution) 권한을 탈취할 수 있어 심각한 보안 위협으로 간주되었습니다. 빌드 타임 트로이 목마(Build-time Trojan)라는 점에서 당시로서는 새로운 공격 기법이었습니다.

CVS 계정 탈취 및 소스 코드 무결성 위협

사건의 발단은 OpenBSD의 CVS(Concurrent Versions System) 서버 계정 탈취로 추정됩니다. `dev1`과 `dev2` 계정이 패스워드 인증(Password Authentication)공개키 인증(Public Key Authentication)을 통해 침해되었으며, 이를 통해 소스 코드 아카이브 디렉토리에 악성 코드가 삽입되었습니다. 소스 코드 무결성(Source Code Integrity)이 심각하게 훼손되었으며, PGP 서명 및 MD5 체크섬 검증이 없었다면 피해가 더욱 컸을 것이라는 분석이 커뮤니티에서 나왔습니다.

사건 대응 및 포렌식 분석 과정

OpenBSD 개발팀은 사건 인지 후 신속하게 감염된 파일 제거 및 네트워크 격리 조치를 취했습니다. 이후 개발자들은 침해된 계정의 접속 로그를 분석하여 침입 경로 및 시점을 파악하는 데 집중했습니다. `dev1` 계정은 6월 중순부터, `dev2` 계정은 7월 말부터 침해된 정황이 포착되었으며, 공급망 공격(Supply Chain Attack)의 가능성이 제기되었습니다. 포렌식 분석 결과, Usenix 2002 컨퍼런스 기간 중 계정 정보가 유출되었을 가능성이 높다고 추정되었습니다.

커뮤니티의 백도어 분석 및 비판

개발자 커뮤니티에서는 삽입된 백도어의 단순함과 탐지 용이성에 대한 비판이 있었습니다. 일부에서는 이를 스크립트 키디(Script Kiddie)의 소행으로 추정했으나, 다른 한편에서는 이러한 공격 방식이 오히려 고의적인 주의 끌기일 수 있다는 의견도 제시되었습니다. 빌드 과정에서의 악성 코드 실행이라는 점은 당시로서는 새로운 공격 벡터였으며, 보안 감사(Security Audit)의 중요성이 강조되었습니다.

사건 이후 OpenBSD의 보안 강화 조치

이 사건을 계기로 OpenBSD는 공급망 공격(Supply Chain Attack) 방지를 위해 여러 보안 강화 조치를 도입했습니다. 포트 컬렉션(Ports Collection) 컴파일 환경 강화, 최소 권한 원칙(Least Privilege Model) 적용, 암호화 서명(Cryptographic Signing) 도구 `signify` 도입, CVS 접근 권한 세분화 등이 대표적입니다. 또한, 버전 관리 시스템(Version Control System)의 무결성 검증에 대한 논의가 활발해졌습니다.

Trojaned OpenSSH (in 2002)