러시아 Dr. Web은 소프트웨어 개발자를 노린 새로운 악성코드 정보를 공개했습니다.

Software developers are the target. New trojan attacks supply chains and inflicts multifaceted damage on infected PCs
https://news.drweb.com/show/?i=15276&lng=en&c=5
Software developers are the target. New trojan attacks supply chains and inflicts multifaceted damage on infected PCs
A new trojan engaging in supply chain attacks has recently come under the scrutiny of our antivirus laboratory. The malware primarily targets C++ and C# project files. This malicious sample is particularly dangerous as its payload incorporates multiple dam
news.drweb.com
이 악성코드는 단순히 정보를 훔치는 게 아니라, 여러분이 만든 실행파일과 소스코드 프로젝트 파일 자체를 감염시켜, 여러분도 모르는 사이 "감염 배포자"로 만들어 버립니다.
3단계 감염 체인
1단계 — 조용한 침투
악성코드가 포함된 프로그램이 실행되면, PEB walking이라는 기법으로 LoadLibrary, GetProcAddress 같은 흔적 남는 API 호출 없이 조용히 시스템 함수 주소를 확보합니다.
공격자는 main() 함수를 건드리지 않았습니다. 대신 C 런타임(CRT)이 main()을 호출하기 전에 자동으로 실행하는 초기화 루틴(initterm) 을 악용했습니다. 공격자는 이 테이블에 자기 악성 함수 주소를 하나 몰래 끼워 넣었습니다. initterm은 테이블에 있는 함수가 진짜인지 가짜인지 구분하지 않고 그냥 순서대로 다 호출하기 때문에, 악성 함수도 "정상 초기화 루틴"인 척 자동 실행됩니다.
2단계 — GitHub와 Steam 이용
이 단계에서 가장 눈에 띄는 특징은 C2 서버 주소를 얻는 방식입니다. 흥미롭게도 전용 C2 인프라를 직접 쓰는 대신, 공개 GitHub 저장소와 Steam 커뮤니티 프로필을 활용합니다.
Steam 계정 소개란에는 도메인이 평문으로 그대로 적혀 있고, GitHub에는 Base64+XOR로 암호화된 주소가 raw 파일 형태로 올라와 있습니다. 두 플랫폼 모두 정상적인 트래픽으로 보이기 때문에 네트워크 모니터링에서 걸러내기가 쉽지 않습니다.
3단계 — 본격적인 다기능 페이로드
이 단계에서 백도어가 활성화되며 다섯 가지 주요 기능이 동시에 작동합니다: 자격증명·크립토지갑 탈취, 클립보드 하이재킹(카드정보·크립토주소 실시간 치환), 원격 명령 실행 백도어, 유휴시간 감지형 채굴, 그리고 — 오늘 이야기의 핵심인 — 파일 감염입니다.
바이러스
3단계 페이로드는 로컬 디스크를 검사해 다음 파일들을 찾아 변조합니다:
- .exe 파일 — 발견되는 실행파일에 1단계의 감염 로직을 직접 이식. 사용자가 이 EXE를 실행하면 완전히 새로운 3단계 감염 체인 발생
- imgui_impl_win32.cpp — Dear ImGui 라이브러리 소스에 페이로드 코드 두 줄 삽입
- winnetwk.h — Windows SDK 헤더 파일에 코드 삽입
- .vcxproj / .csproj — Visual Studio 프로젝트 설정에 pre-build event를 추가해, 빌드할 때마다 자동 실행되도록 설정
- .suo — 원본을 C2에서 받아온 감염 버전으로 통째로 교체
.suo 교체
.suo(Solution User Options)는 Visual Studio가 솔루션을 열 때 자동으로 읽어들이는 개인화 캐시 파일입니다. 브레이크포인트 위치, 열려 있던 탭 같은 걸 저장할 뿐, 컴파일에는 전혀 관여하지 않습니다.
바로 이 점이 완벽한 은신처를 만듭니다:
- .gitignore에 관례적으로 포함되어 Git 히스토리에 흔적이 없음
- 사용자가 직접 열어볼 일이 없는 바이너리 캐시 파일
- .sln을 여는 순간 자동 로드되지만, 없어도 컴파일에 아무 영향 없음
- 감염되어 있어도 프로젝트는 평소처럼 정상 빌드됨 → 의심할 이유가 전혀 없음
"실행은 되지만, 없어도 티가 안 나고, 있어도 정상 작동을 방해하지 않는 파일" — 공격자 입장에서 이보다 이상적인 감염 벡터는 찾기 어렵습니다.
마치며
이 악성코드가 흥미로운 이유는 단순히 기능이 많아서가 아닙니다. 개발자의 신뢰 습관 — "내 프로젝트 파일은 안전하다", ".suo는 그냥 캐시일 뿐이다", "정상 실행파일은 믿을 수 있다" — 을 정확히 겨냥해 설계됐다는 점입니다.
공급망 공격이라고 하면 흔히 npm이나 PyPI 같은 패키지 레지스트리를 떠올리지만, 이번 사례는 레지스트리가 아니라 개발자의 로컬 빌드 환경 자체가 공급망의 약한 고리가 될 수 있다는 걸 보여줍니다.
아쉽게도 IOC가 공개되지 않아 실제 분석하지는 못했습니다.
과거 사례
과거에도 소스코드를 노린 악성코드는 존재했습니다.
이중 가장 유명한건 2009년 발견된 Induc 바이러스입니다. 발견된건 2009년 8월이지만, 실제 활동은 그 이전 부터였습니다. 개발자 시스템 외에서는 어떤 활동도 하지 않아, 일반 사용자는 의심하기 어려웠습니다.
덕분에 델파이 개발자를 대상으로 조용히 퍼졌습니다.
https://xcoolcat7.tistory.com/557
델파이 개발자를 노린 Induc 바이러스
2009년 8월 19일 Win32/Induc 바이러스가 발견되었습니다. 처음에는 그저그런 바이러스라고 생각했는데 감염 방식을 듣고 개념증명 형태로 생각했는데 각종 자료와 쏟아지는 샘플을 통해 델파이 제
xcoolcat7.tistory.com
'보안위협 (악성코드, 취약점) > 악성코드 (Malware)' 카테고리의 다른 글
| Megalodon 악성코드 - CI 인프라 자체를 공격 (0) | 2026.05.26 |
|---|---|
| (도구) Process Hacker ... Process Explorer보다 뛰어난 (0) | 2025.01.14 |
| VMMap ... 메모리 구조 보기 (1) | 2024.12.24 |
| 세계 최초 컴퓨터바이러스 중 하나인 Elk Cloner 바이러스 분석 (11) | 2017.04.01 |
| 내 tistory 블로그로 악성코드가 배포 ?! (2) 패킷 분석편 (7) | 2014.03.16 |