MITRE ATT&CK: T1195.002 (Compromise Software Supply Chain) | 전술: Initial Access | 플랫폼: Linux, macOS, Windows
도입: 왜 이 공격이 중요한가
2023년 3월, 전 세계 60만 개 기업이 사용하는 3CX 통신 소프트웨어가 해킹당했습니다. 놀라운 건 이 공격의 시작점이었어요. 공격자는 먼저 다른 소프트웨어 회사를 침해한 뒤, 그 악성코드를 통해 3CX를 감염시켰거든요. 공급망 공격이 또 다른 공급망 공격을 낳은 최초 사례였죠.
Compromise Software Supply Chain 은 공격자가 정상적인 소프트웨어 개발·배포 과정에 악성코드를 삽입해서, 사용자들이 신뢰하는 프로그램을 통해 대규모 감염을 일으키는 기법입니다.
💡 쉬운 비유: 정수기 제조사가 물탱크에 독을 넣고 출하하는 것과 같아요. 사용자는 깨끗한 물이라고 믿고 마시지만, 실제로는 독이 들어있는 거죠.
1. 공격자 관점
왜 이 기법을 사용하는가
- 대규모 감염: 한 번의 침해로 수십만~수백만 명의 사용자를 동시에 감염시킬 수 있다
- 신뢰성 악용: 사용자들이 정상적인 업데이트나 설치로 인식해서 의심하지 않는다
- 탐지 우회: 정상적인 디지털 서명과 인증서를 가진 파일이라서 보안 솔루션이 허용한다
동작 흐름
공급망 침해는 크게 3단계로 진행됩니다.
| 단계 | 설명 | 공격자 행동 |
|---|---|---|
| 1. 침입 | 소프트웨어 개발사 네트워크 침해 | 개발 환경이나 빌드 서버에 접근 권한 확보 |
| 2. 주입 | 정상 소프트웨어에 악성코드 삽입 | 소스코드 수정, 컴파일된 바이너리 교체, 업데이트 메커니즘 조작 |
| 3. 배포 | 감염된 소프트웨어를 정상 경로로 유통 | 공식 웹사이트, 자동 업데이트, 앱스토어를 통해 배포 |
공격자는 개발사의 코드 서명 인증서까지 탈취해서 악성코드에 정상적인 디지털 서명을 붙일 수 있어요. 이렇게 되면 운영체제나 보안 프로그램이 "신뢰할 수 있는 소프트웨어"로 인식하게 되죠.
2. 실제 공격 사례
📌 AppleJeus (UNC4736) - 3CX 공급망 공격 (2023)
배경: 북한 연계 해킹그룹 UNC4736이 암호화폐 거래소를 타겟으로 한 정교한 이중 공급망 공격을 감행했습니다. 전 세계 60만 개 기업이 사용하는 3CX Desktop App이 감염 경로로 악용됐어요.
공격 과정:
- 공격자가 먼저 Trading Technologies의 X_TRADER 소프트웨어를 감염시켜 배포
- 3CX 직원이 감염된 X_TRADER를 다운로드해서 실행, 3CX 내부 네트워크 침해
- 3CX DesktopApp 18.12.416 빌드 환경에 SUDDENICON 다운로더 삽입
- 감염된 3CX 소프트웨어가 정상 업데이트로 전 세계 배포
피해 규모: 60만 개 기업의 PC에서 악성코드 실행, GitHub 호스팅 아이콘 파일을 통해 추가 페이로드 다운로드
📌 CCBkdr - CCleaner 공급망 침해 (2017)
배경: 전 세계적으로 인기 있는 PC 최적화 도구 CCleaner의 정상 버전에 백도어가 삽입된 채로 한 달간 배포된 사건입니다. 사용자들은 평소처럼 CCleaner를 업데이트했을 뿐인데 악성코드에 감염됐어요.
공격 과정:
- 공격자가 Avast(CCleaner 개발사) 빌드 환경에 침입
- CCleaner 5.33 버전 컴파일 과정에서 CCBkdr 백도어 코드 삽입
- 정상적인 디지털 서명이 적용된 채로 공식 웹사이트에서 배포
- 감염된 CCleaner가 DGA(Domain Generation Algorithm)로 C&C 서버와 통신
피해 규모: 약 227만 명이 감염된 CCleaner를 다운로드, 그중 4만여 명이 2차 페이로드 전송 대상으로 선별
출처: CCleanup: A Vast Number of Machines at Risk
📌 APT41 - 정상 파일 서명 위조 (2019)
배경: 중국 연계 APT41 그룹이 이중 목적(사이버 스파이+금전적 이득)으로 활동하면서 다양한 소프트웨어 공급망을 침해했습니다. 이들의 특징은 프로덕션 환경까지 완전히 장악해서 정상 서명이 적용된 악성코드를 배포했다는 점이에요.
공격 과정:
- 여러 소프트웨어 개발사의 프로덕션 환경에 침입
- 정상적인 빌드 프로세스에 악성코드 주입
- 개발사의 코드 서명 인증서로 악성 파일에 정상 서명 적용
- 공식 배포 채널을 통해 광범위하게 유통
피해 규모: 다수의 소프트웨어 공급업체와 최종 사용자가 피해, 정확한 감염 규모는 공개되지 않음
출처: Double DragonAPT41, a dual espionage and cyber crime operation APT41
3. 왜 탐지가 어려운가?
공식 탐지 방법
DET0309 Compromised software/update chain (installer/write → first-run/child → egress/signature anomaly) - AN0862: 공격자가 변조된 애플리케이션이나 업데이트를 배포하는 경우, 설치/업데이트 프로그램(msiexec/setup/update.exe/벤더 서비스)이 바이너리를 쓰거나 교체하고, 첫 실행 시 스크립트/셸이나 서명되지 않은 DLL을 생성하며 승인되지 않은 업데이트 CDN/호스트로 통신하는 패턴을 탐지합니다. 탐지는 다음 요소들을 연관 분석합니다: (1) 설치/업데이트 프로그램의 프로세스 생성 → (2) 프로그램 경로의 파일 메타데이터 변경 → (3) 첫 실행 시 자식 프로세스와 모듈/서명 이상 → (4) 짧은 시간 내 예상치 못한 호스트로의 아웃바운드 연결
공격자가 이 기법을 선호하는 이유
정상 프로세스 위장: 감염된 소프트웨어는 정상적인 설치/업데이트 과정을 거치기 때문에, 사용자나 보안 시스템이 의심하지 않아요. 특히 자동 업데이트 기능을 통해 배포되면 사용자 개입 없이 조용히 설치됩니다.
디지털 서명 신뢰성: 공격자가 개발사의 코드 서명 인증서를 탈취하면, 악성코드도 정상적인 디지털 서명을 가지게 돼요. 이렇게 되면 Windows의 SmartScreen이나 대부분의 보안 솔루션이 "신뢰할 수 있는 파일"로 분류합니다.
대규모 확산: 한 번의 성공적인 공급망 침해로 수백만 명을 동시에 감염시킬 수 있어서, 공격자 입장에서는 투자 대비 효과가 엄청나죠.
탐지의 현실적 한계
정상 행위와 구분 어려움: 소프트웨어 업데이트나 새 설치는 일상적인 작업이라서, 이상 징후를 구분하기가 쉽지 않아요. 특히 대기업 환경에서는 하루에 수백 개의 소프트웨어 설치/업데이트가 발생하거든요.
서명 검증의 한계: 디지털 서명이 유효하다고 해서 파일이 안전하다고 보장할 수는 없어요. 개발사 자체가 침해당했다면 정상 서명이 적용된 악성코드가 나올 수 있거든요.
네트워크 모니터링 우회: 감염된 소프트웨어가 정상적인 업데이트 서버나 CDN과 통신하는 것처럼 보이기 때문에, 네트워크 기반 탐지도 어려워요. 3CX 사례에서는 GitHub를 C&C 서버로 활용했는데, GitHub는 대부분 기업에서 허용하는 도메인이잖아요.
4. 나도 위험할까? 자가 진단
이 공격이 나와 관련 있는지 확인해보세요.
이런 환경이라면 주의가 필요합니다
- 업무용 PC에서 다양한 서드파티 소프트웨어(통신 도구, 개발 도구, 유틸리티 등)를 정기적으로 업데이트한다
- 자동 업데이트 기능을 활성화해둔 소프트웨어가 많다
- 소프트웨어 설치 시 디지털 서명만 확인하고 추가 검증은 하지 않는다
- 개발자나 IT 관련 업무로 인해 다양한 개발 도구나 전문 소프트웨어를 사용한다
공식 대응 방안
M1051 Update Software (소프트웨어 업데이트): 사용하지 않는 애플리케이션, 유지보수되지 않는 소프트웨어, 이전에 취약점이 있었던 소프트웨어, 불필요한 기능, 구성요소, 파일, 문서 등을 점검하는 패치 관리 프로세스를 구현해야 합니다.
M1016 Vulnerability Scanning (취약점 스캐닝): 취약점 소스에 대한 지속적인 모니터링과 자동·수동 코드 리뷰 도구 사용도 함께 구현해야 합니다.
당장 할 수 있는 것
- 소프트웨어 업데이트 전에 개발사 공식 웹사이트에서 릴리즈 노트나 보안 공지사항을 확인하기
- 중요한 업무용 소프트웨어는 자동 업데이트를 비활성화하고 수동으로 검증 후 업데이트하기
- 🏢 보안 담당자: 소프트웨어 설치/업데이트 후 비정상적인 네트워크 통신이나 프로세스 생성을 모니터링하는 EDR 규칙 구성
5. 관련 기술
| 기법 | 설명 | 링크 |
|---|---|---|
| T1195.001 Compromise Software Dependencies and Development Tools | 개발 도구나 라이브러리 자체를 침해해서 개발자 환경부터 감염시키는 기법으로, 공급망 공격의 또 다른 접근 방식 | NPM 패키지 위조 공격: 개발 도구가 백도어가 되는 원리 |
| T1036.001 Invalid Code Signature | 공급망 침해와 함께 자주 사용되는 기법으로, 가짜 인증서나 도난당한 인증서로 악성코드를 정상 소프트웨어로 위장 | 가짜 인증서 서명으로 악성코드를 위장하는 APT 공격 원리 |
| T1562.001 Disable or Modify Tools | 공급망 공격으로 시스템에 침투한 후 보안 도구를 무력화해서 지속적인 은닉 상태를 유지하는 후속 기법 | EDR 우회 공격: 보안 도구를 무력화하는 첫 번째 단계 |
참고 자료
- [MITRE ATT&CK - T1195.002](https://attack.mitre.org/techniques/T1195/002/)
관련 글 더 보기
- NPM 패키지 위조 공격: 개발 도구가 백도어가 되는 원리 | T1195.001
- 공급망 침해 공격: 왜 가장 효과적인 침투 방법인가 (3가지 기법) | T1195
- 매직 바이트 조작: .exe를 .jpg로 위장하는 파일 헤더 공격 | T1036.008
- 이중 확장자 공격: report.pdf.exe가 문서로 보이는 이유 | T1036.007
- 파일명 공백 위장: 확장자를 숨겨 탐지를 우회하는 원리 | T1036.006
- 정상 프로세스 위장: svchost.exe 이름을 도용하는 공격 원리 | T1036.005
- 프로세스 트리 조작: 공격자가 부모 프로세스 추적을 차단하는 원리 | T1036.009
- 프로세스 인수 덮어쓰기: 공격자가 정상 데몬으로 위장하는 원리 | T1036.011
- 브라우저 핑거프린트 위조: 공격자가 네트워크 탐지를 우회하는 원리 | T1036.012
- Kerberos 티켓 탈취·위조: 도메인 인증을 우회하는 5가지 기법 | T1558
안내 및 법적 고지
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었으며, MITRE ATT&CK (최신 버전) 기준 정보를 포함합니다. 기술적 내용은 MITRE ATT&CK 공식 데이터를 기반으로 하며, 보안 교육 목적으로 제공됩니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.
COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.