[Malware] 악성코드 분석 입문: 목적과 분석 기법, 국가별 APT 사례
사이버 위협 행위자부터 악성코드의 정의·분류, 국가별 APT 사례, 분석 기법과 안전 원칙까지 학습 순서대로 정리합니다.
사이버보안과 악성코드
악성코드를 이해하려면 누가, 무엇을 노리고, 어떤 경로로 공격하는지 함께 살펴봐야 합니다.
- 핵심 요소: 위협 행위자, 내부·외부 네트워크, 공격 대상.
- 분석 관점: 악성코드가 만들어진 목적과 공격에서 맡는 역할.
사이버 위협 행위자
보편적으로 개인, 국가 지원 집단, 범죄 조직으로 나누어 볼 수 있습니다. 핵티비스트 등 다른 유형도 있으며 동기와 조직의 경계가 겹칠 수 있습니다.
- 개인: 개인의 동기와 역량에 따라 공격을 수행
- 국가 지원 집단: 정보 수집 등 국가의 목적을 지원. 장기간 접근을 유지하거나 맞춤형 악성코드를 활용할 수 있음
- 범죄 조직: 주로 금전적 이익을 추구. 랜섬웨어를 이용한 금전 요구가 대표적
APT(Advanced Persistent Threat)는 특정 표적에 지속적으로 접근하며 목적을 추구하는 위협입니다.
- 국가 지원 공격에서 자주 등장하지만 국가 자체를 뜻하지는 않습니다.
내부 침투와 엔드포인트
- 외부에 노출된 시스템을 공격하거나 사용자에게 악성코드를 전달해 내부로 침투
- PC·모바일을 거점으로 내부 서버·데이터베이스의 정보에 접근할 수 있음
- 외부에서 VPN으로 접속하는 사용자 단말도 보호 대상. 네트워크 경계와 함께 엔드포인트(PC·모바일 등 단말) 보안을 고려해야 함
- 코로나로 원격근무가 활성화되며 엔드포인트 보안 중요해짐
악성코드의 정의
- 악성코드(Malware): 시스템·데이터·사용자에게 해를 끼치는 기능을 수행하도록 만든 소프트웨어
- 침해사고와의 관계: 정보 탈취, 원격 제어, 시스템 파괴 등에 사용하는 주요 수단
- 침해사고가 발생하면 악성코드가 많은 부분을 차지
- 대표 유형: 바이러스, 트로이목마, 웜, 루트킷, 스케어웨어, 랜섬웨어, 스파이웨어
- 스케어웨어는 감염 경고 등으로 불안을 유발해 구매나 설치를 유도하는 유형
악성코드 분석은 세부적으로 나눠보면
- 동작: 어떤 기능을 수행하는가?
- 식별: 어떤 특징과 흔적으로 찾아낼 수 있는가?
- 대응·제거: 피해를 줄이려면 무엇을 차단하고 복구해야 하는가?
AI는 식별과 분석을 보조할 수 있지만 대응 판단에는 분석 근거와 담당자의 검토가 필요합니다.
악성코드 분석
컴퓨터 보안 사고를 대응하는 사람이라면 악성코드 분석은 필수적인 역량입니다.
- 필요 역량: 침해사고 대응을 위한 프로그램 동작 분석
- 관련 지식: 컴퓨터 아키텍처, 프로그래밍 언어, 공격 기법, 운영체제 구조
- 학습 대상: Windows의
.exe·.dll실행 파일과 스크립트 중심 - 학습 범위: 정적·동적 분석, 어셈블리어와 리버스 엔지니어링, Windows 동작, 패킹·언패킹
악성코드 분석의 목적
동작과 침해 행위를 파악해 사고 대응에 필요한 정보를 얻습니다.
- 악성 행위 파악: 파일 수집, 추가 실행, 외부 전송 등의 기능 확인.
- 침해 범위 식별: IOC(Indicators of Compromise, 침해 지표)를 활용해 관련 시스템 조사.
- 탐지 방법 개발: 호스트와 네트워크에서 찾을 수 있는 특징 정리.
- 피해 통제·대응: 피해 범위를 평가하고 확산을 차단.
예방과 함께 신속한 대응·복구 역량도 필요합니다. 사고의 영향을 줄이고 정상 업무로 돌아오는 역량을 **사이버 회복탄력성(Cyber Resilience)**이라고 합니다.
- 공격이 많아지며 피해를 받는 경우가 많아지고 있습니다.
- 회복 탄력성이 계속 대두되고 있습니다.
악성코드 분류
기능, 전달·실행, 전파, 은폐·회피, 공격 대상을 기준으로 구분합니다.
- 하나의 악성코드는 백도어·다운로더·루트킷 등 여러 기능을 함께 가질 수 있습니다.
시스템 접근과 원격 제어 - System Access & Remote Control Malware
- 백도어: 정상 접근 절차를 우회해 비인가 접근을 제공·유지.
- RAT(Remote Access Trojan): 감염된 컴퓨터를 원격 조작하는 트로이목마.
- 봇·봇넷: 공격자 지시로 작업하는 감염 프로그램과, 감염 장비를 집합적으로 운영하는 네트워크.
- C2(Command and Control): 공격자가 명령을 전달하고 결과를 받는 통신 체계.
악성코드 전달과 실행 - Malware Delivery & Execution
여러 단계로 악성코드를 전달·실행하는 흐름을 다단계 감염 체인(Multi-stage Infection Chain)이라고 합니다.
- 최신의 악성코드는 많이 모듈화되어 실행됩니다.
페이로드(Payload)는 각 단계에서 전달하거나 실행할 코드·프로그램입니다.
- 다운로더: 외부에서 추가 악성코드나 페이로드를 내려받음.
- 드로퍼: 내부에 포함한 페이로드를 꺼내 배치.
- 로더: 페이로드를 메모리·프로세스에 올려 실행을 준비하거나 시작.
정보 탈취와 금전 목적 - Information Theft & Financially Motivated Malware
- 인포스틸러: 크리덴셜(Credentials, 계정 인증 정보), 브라우저 쿠키·세션 데이터 등을 탈취.
- 스파이웨어: 사용자 활동을 지속적으로 감시하고 정보를 수집.
- 랜섬웨어: 데이터 암호화 등의 수단으로 금전을 요구.
전파·은폐·파괴 - Propagation, Concealment & Destruction
- 웜: 독립적으로 동작하며 다른 시스템으로 전파 가능.
- 바이러스: 다른 파일 등에 자신을 삽입해 감염·복제.
- 루트킷: 악성 활동이나 구성 요소를 숨김.
- 와이퍼(Wiper / Destructive Malware): 데이터 파괴나 시스템 사용 방해.
- 스팸 발송 악성코드: 감염 장비를 대량 메시지 발송에 이용.
악성코드 실행·회피 기법 - Modern Malware Techniques
- 파일리스(Fileless)·메모리 상주(Memory-Resident): 디스크 파일보다 메모리나 다른 실행 수단을 활용.
- LOTL(Living off the Land): 운영체제의 정상 도구 등을 공격에 악용.
- 패킹: 실행 코드를 압축·변형해 두었다가 실행 과정에서 풀어 쓰는 방식.
- 난독화: 문자열이나 제어 흐름을 알아보기 어렵게 바꾸는 기법.
- 분석 회피(Anti-Analysis): 가상 머신 탐지(Anti-VM)·디버거 탐지(Anti-Debugging) 등으로 동작을 숨기거나 멈춤.
정상 프로그램도 패킹·난독화를 사용할 수 있으므로, 사용 여부만으로 악성이라고 판단해서는 안 됩니다.
표적형 악성코드 - Target Malware
- 특정 기업·제품·환경을 겨냥해 개발하거나 배포.
- 공격 대상에 따른 분류로, 정보 탈취나 원격 제어 등의 기능 분류와 겹칠 수 있음.
국가 지원 사이버 공격: 중국
APT1
- Mandiant가 2013년 보고서에서 장기간의 정보 수집 활동과 중국 군 조직의 연관성을 제시.
- 피해 조직의 침해 흔적, 공격 인프라와 활동을 연결해 배후를 분석한 사례.
- 한 번쯤 읽어보는 것을 권장합니다. -> APT 보고서의 바이블
APT3
정부, 국방 첨단기술, 통신 등 전략적 분야를 대상으로 정보수집 및 사이버 스파이 활동
- 중국 연계 사이버 스파이 그룹.
- 보안 업체마다 식별명과 관찰 범위가 다를 수 있음
- 광저우 Boyu Information Technology로 확인되어 미국이 관련 기업을 기소
- 취약점 악용 뒤 PowerShell로 페이로드를 내려받아 실행하고 수집 데이터를 압축한 행위 등이 보고됨.
- 분석할 흐름: 초기 접근 → 악성코드 실행 → C2 통신 → 정보 수집.
- 초기 접근에 제로데이 취약점이 쓰일 수 있지만 모든 공격에 필요한 조건은 아님.
APT10 · Operation Cloud Hopper
- PwC와 BAE Systems가 공개한 사이버 스파이 캠페인.
- IT 운영 대행 업체인 **MSP(Managed Service Provider)**를 먼저 침해.
- MSP의 접근 권한과 신뢰 관계를 이용해 고객사 네트워크로 확장.
- 지식재산과 기업의 민감정보를 수집·탈취하는 것이 목적.
UNC6508
- Google Threat Intelligence Group(GTIG)이 공개한 중국 연계 위협 활동.
- 의료·AI·사이버·국방 등 연구 정보를 표적으로 삼음.
- REDCap 웹 애플리케이션 서버 침해 뒤 맞춤형 악성코드 INFINITERED 배포.
- 계정 정보 수집과 이메일 전달 규칙 악용도 보고됨. 정확한 최초 접근 방법은 확인되지 않음.
- Web Application을 침해하여 Initial Access를 확보 후 맞춤형 악성코드 배포
- 정상적인 것처럼 보이면서 배포
국가 지원 사이버 공격: 러시아
- 러시아는 사이버 공간을 군사/외교/정보전의 수단으로 적극 활용하는 나라
- FSB / SVR / GRU 등 여러 국가기관과 연계된 위협그룹을 통해 수행
- 사이버 활동을 정보 수집·영향력 행사·군사 목적 등에 활용.
- 대표 사례는 APT28·APT29. 그룹별 연계 기관과 활동을 구분해 살펴볼 필요가 있음.
- 백도어부터 파괴형까지 전 방위 악성코드를 모두 사용 중
APT28
- 러시아 군 정보기관 GRU와 연계된 것으로 알려진 사이버 스파이 그룹.
- 스텔스 기능이 굉장히 잘되어있으며 맞춤형 악성코드를 만듦
- 초기 접근(Initial Access): 스피어피싱(Spear Phishing, 표적형 피싱), 취약점 악용, 크리덴셜 탈취(Credential Theft) 등.
- 사용자 중심으로 Spear Phishing, 취약점 악용, Credential Theft로 초기 접근 권한 확보
- 후속 활동: 악성코드를 이용한 접근 유지, 정보 수집과 유출.
- CORESHELL: 추가 페이로드를 받는 다운로더. C2 메시지에서 인코딩·암호화 사용이 보고됨.
- 첫 번째 악성코드로 정상적인 역할을 수행(통신 내용 은폐)
- CHOPSTICK(X-Agent): APT28이 사용한 모듈형 백도어 계열.
- 상당히 모듈화되어 조직적임을 의심 가능
MITRE APT28 · CORESHELL · CHOPSTICK
통신 분석에서 볼 것
- 악성코드도 HTTP·HTTPS 등 웹 통신을 사용할 수 있음.
- Base64는 인코딩: 데이터를 다른 표현 형식으로 바꾸며 자체적으로 비밀을 보호하는 암호화는 아님.
- 별도 암호화가 적용됐다면 Base64를 풀어도 원문이 바로 나오지 않음.
- 필요한 경우 DLL 등 코드의 암호화 로직과 키 처리 방식을 확인해 통신 기록과 대조.
- 미국이 발원지를 알아냈으며 미국은 모든 네트워크를 감청 가능하다는 폭로 또한 존재
- 본체 DLL을 분석해야지만 암호화 키를 알 수 있음
GRIZZLY STEPPE
- 미국 정부가 러시아 사이버 활동을 설명하는 데 사용한 명칭.
- 관련 보고서는 APT28·APT29의 활동과 호스트·네트워크 탐지 자료를 제공.
- 그룹명·악성코드명·활동 명칭을 구분해 읽어야 함.
네트워크 인프라까지 넓어진 공격
- 라우터(Router)·Edge Device도 공격 대상이자 거점이 될 수 있음.
- APT28의 Cisco 라우터 취약점 악용과 악성코드 배포 사례가 보고됨.
- 악성 파일과 함께 엔드포인트, 계정, 네트워크, Edge Device, 클라우드 기록을 연계해 조사.
국가 지원 사이버 공격: 북한
- 주요 목적: 정보 수집, 시스템 파괴, 금융기관·가상자산 공격을 통한 자금 확보.
- 조직 연계: 정찰총국(RGB)과 연계된 것으로 분석되는 여러 그룹이 활동.
- Lazarus: 정보 탈취·파괴 활동과 함께 금융·가상자산 탈취 사례가 공개됨.
- 공격 대상: 가상자산·DeFi·핀테크 기업과 개발자. SaaS 공급자를 거친 공급망 공격 사례도 보고됨.
Mandiant 북한 조직 분석 · FBI 가상자산 탈취 발표 · Mandiant 공급망 공격 사례
참여형 조사: APT37
함께 공부한 사람들과 북한 연계 APT37의 공개 자료를 조사했습니다. 직접 악성코드를 실행·역분석한 결과는 아닙니다.
초기 침투 방식
- 악성 문서 이메일: HWP 등 문서로 실행을 유도.
- 문서 위장 바로가기:
.lnk파일 실행으로 악성코드를 전달·실행. 보이는 이름과 실제 파일 형식을 구분. - 취약점 악용: 문서나 웹 콘텐츠 처리 과정의 취약점을 이용.
- 워터링홀: 표적이 방문할 만한 정상 웹사이트를 침해해 공격 경로로 사용.
- 악성 광고: 악성 콘텐츠로 연결하거나 취약점 악용에 이용. 모두 무클릭 공격은 아니며 개별 실행 조건 확인이 필요.
조사할 때 정리한 침투 방식이며 위 목록 전체를 APT37의 모든 공격에 공통된 흐름으로 보지는 않습니다.
목적·역할·증거
- 목적: 사이버 첩보와 정보 수집.
- 표적: 대북 전문가, 탈북민, 북한 인권 활동가·기자, 외교·안보 분야 관계자 등.
- 범위: 한국 중심으로 알려졌으나 다른 국가의 표적도 공격한 것으로 정리됨.
- 악성코드 역할: 후속 코드 실행, 문서·녹음파일 수집, 외부 통신.
- 보고된 증거: 안랩의 매크로 실행·레지스트리 변경 사례, 지니언스의 위장 바로가기·RoKRAT 모듈·클라우드 API 통신 분석.
- 추가 질문: 정상 클라우드 사용과 악성 통신을 어떤 프로세스·접속 기록으로 구분할 수 있을까?
안랩 APT37 분석 · 지니언스 APT37 분석 · Malpedia APT37
악성코드 분석 및 조사의 목표
호스트 기반 시그니처와 지표
- 레지스트리 변경, 프로세스 실행, 파일·시스템 설정 변화 등 확인.
- EDR(Endpoint Detection and Response): 단말 활동을 수집하고 탐지·대응하는 체계.
네트워크 시그니처
- C2 통신, 악성 도메인·IP, 비정상적인 프로토콜·통신 패턴 확인.
- AI도 탐지를 보조할 수 있으며 분석한 행위의 특징을 탐지 규칙에 활용.
- 정상 행위와의 차이를 반영하고 오탐·누락을 검증해야 함.
IOC는 조사 단서이며 코드에 기능이 있다는 사실만으로 실행이나 피해까지 입증되지는 않습니다. 실행·통신 기록을 함께 확인해야 합니다.
악성코드 분석 기법
- 정적 분석: 대상 프로그램을 실행하지 않고 조사.
- 동적 분석: 대상 프로그램을 실행하며 관찰.
- 각 방법을 조사 깊이에 따라 기본·고급으로 구분.
기본 정적 분석
- 명령어를 깊이 해석하기 전, 실행 파일의 구조와 특징 조사.
- 확인 대상: 해시, 문자열, 도메인·IP, 파일 구조, 엔트로피 등.
- 해시: 동일 파일과 변경 여부를 비교하는 식별값.
- 엔트로피: 데이터의 불규칙성을 나타내는 값. 높다고 악성코드나 패킹을 확정할 수는 없음.
- 실행하지 않고 첫 단서와 IOC를 수집하는 과정.
기본 동적 분석
- 악성코드를 실행해 파일·프로세스·설정·통신 변화 관찰.
- 반드시 격리된 가상 머신이나 샌드박스에서 수행해야 함.
- 코드 전체를 해석하지 않아도 행위를 관찰할 수 있음.
- 실행 조건이나 분석 회피 때문에 동작하지 않을 수 있으므로, 조용하다고 안전하다고 판단해서는 안 됨.
고급 정적 분석
- 실행하지 않고 디스어셈블러·디컴파일러로 코드를 분석.
- 디스어셈블: 기계어를 어셈블리어로 표시.
- 디컴파일: 고수준 코드 형태의 슈도코드(Pseudocode)로 복원. 원래 소스와 같다고 보장할 수 없음.
- Ghidra·IDA 등의 분석 기능을 사용하며 어셈블리어·Windows API 지식이 필요.
- 디버거로 실행 상태를 관찰하는 작업과 구분.
고급 동적 분석
- 디버거로 실행을 추적하며 레지스터·메모리·스택·API 호출 확인.
- 언패킹(Unpacking)이나 문자열 복원 시점의 내부 상태를 조사.
- 분석 회피 기법을 식별하고 우회해 동작을 확인할 수 있지만 모든 회피를 해결하는 것은 아님.
- 흐름: 실행 → 내부 상태 추적 → 동작 원리 분석.
악성코드 분석의 기본 원칙
- 핵심 행위에 집중: 처음부터 모든 코드를 해석하기보다 분석 목적에 필요한 부분부터 확인.
- 방법·도구를 함께 활용: 한 가지 도구나 분석 방법에만 의존하지 않음.
- 격리된 환경에서 실행: 업무망·개인 환경으로 피해가 번지지 않도록 구성.
- 원본·증거 무결성 보존: 복사본으로 분석하고 해시, 수집 경로, 분석 과정과 변경 사항 기록. 증거를 누가 어떻게 다뤘는지 증거 관리 이력(Chain of Custody) 유지.
- 회피 기법 고려: 패킹·난독화·환경 탐지 때문에 보이지 않은 동작이 있을 수 있음.
- 법적·윤리적 범위 준수: 허용된 대상과 권한 안에서 분석.
- AI 결과 검증: 답변 자체는 증거가 아님. 분석 대상·기밀 자료를 승인 없이 외부 AI 서비스에 업로드하지 않아야 함.
안전한 악성코드 분석 환경
- 기본 구성: 호스트와 분리한 분석용 가상 머신, 격리된 네트워크.
- 격리 점검: 업무망 연결, 공유 폴더, 호스트 연동 기능.
- 관찰 도구: 파일·프로세스·네트워크 변화를 확인할 도구 준비.
- 외부 연결 모의: 통제된 DNS·HTTP 서비스로 인터넷 응답을 흉내 낼 수 있음.
가상 머신을 쓴다는 사실만으로 격리가 보장되지는 않습니다. 실행 전에 연결 경로를 확인해야 합니다.
AI 시대의 악성코드 분석
- 활용: 디컴파일 결과·어셈블리어 풀이, 분석 가설 정리.
- 검증: 설명을 코드와 관찰 기록으로 대조.
- 판단: AI는 분석을 지원하는 도구이며 최종 판단은 분석자가 근거를 확인해 내려야 함.
참고 자료
- Mandiant: APT1 공개 자료
- MITRE ATT&CK: APT3
- PwC·BAE Systems: Operation Cloud Hopper
- GTIG: UNC6508 분석
- MITRE ATT&CK: APT28
- MITRE ATT&CK: CORESHELL
- CISA: GRIZZLY STEPPE 분석
- MITRE ATT&CK: Lazarus Group
- FBI: 북한 연계 가상자산 탈취 발표
- MITRE ATT&CK: APT37
- 안랩: APT37 공격 사례
- 지니언스: APT37 위협 배후의 사이버 정찰 활동 분석
- Malpedia: APT37 자료 목록