네트워크 및 정보 보안
3단계: 침공은 이미 내부에서 시작되었다 — 엔터프라이즈 보안의 심장부
1부. 이론적 기초 — "믿는다"는 것이 어떻게 무기가 되는가
1단계에서 우리는 패킷이 어떻게 전 세계를 여행하는지 배웠다. TCP의 3-way handshake(SYN → SYN-ACK → ACK)는 두 호스트 사이에 맺어지는 일종의 "신뢰 계약"이고, OSI 7계층은 각 레이어가 아래 레이어를 묵묵히 신뢰하는 구조로 작동했다. 2단계에서는 Raft 합의 알고리즘을 배우며, 분산된 노드들이 어떻게 리더를 선출하고 그 리더를 신뢰하는지 이해했다. 그리고 침투 테스트를 통해 이 신뢰를 악용하는 방법까지 탐구했다. 이 모든 배경 위에서 3단계의 핵심 질문이 등장한다: "기업 내부 네트워크에 있다는 사실 하나만으로, 그 사용자를 신뢰해도 괜찮을까?"
2000년대까지 대부분의 기업 보안은 **성벽 모델(Castle-and-Moat Perimeter Security)**에 기반했다. 방화벽이라는 성벽을 세우고, 그 안에 들어온 모든 것은 안전하다고 간주했다. VPN이라는 성문을 통과한 직원은 내부 서버에 자유롭게 접근할 수 있었고, 논리는 단순했다: 성벽 밖의 것은 위험하고, 안은 안전하다. 이 패러다임은 물리적 사무실에 직원들이 모여 있고, 서버는 회사 지하실에 있던 시절에는 어느 정도 통했다.
그러나 2010년, 이 모델의 근본적인 한계를 세계에 알린 사건이 발생한다. 구글, 어도비, 인텔을 포함한 20개 이상의 미국 대기업이 동시에 해킹당했다. **"오퍼레이션 오로라(Operation Aurora)"**라고 불리는 이 사건에서, 공격자는 외부에서 성벽을 정면 돌파하지 않았다. 대신 내부 직원을 속여 악성코드를 설치하게 만든 뒤, 내부 네트워크에서 조용히 **횡이동(Lateral Movement)**하며 목표 시스템에 접근했다. 성벽이 아무리 높아도, 성안의 내부자가 이미 적의 도구가 되어 있다면 소용이 없다는 것을 증명한 것이다.
[노트 기록] APT(Advanced Persistent Threat, 지능형 지속 공격): 특정 목표를 향해 장기간에 걸쳐 정교하게 수행되는 사이버 공격. 단순한 일회성 해킹과 달리 '침투 → 잠복 → 횡이동 → 목표 달성'의 단계를 밟는다. 국가 지원을 받는 경우도 많으며, 오퍼레이션 오로라의 배후는 중국 기반 APT 그룹으로 지목되었다.
구글은 이 사건 이후 보안 패러다임을 전면 재설계했다. 2011년 발표된 "BeyondCorp" 프로젝트의 핵심 아이디어는 충격적으로 단순했다: "회사 내부 네트워크도 인터넷과 동일하게 위험하다고 간주하자." VPN을 없애고, 모든 접근은 사용자의 신원과 디바이스의 현재 상태를 기반으로 매번 검증받도록 했다. 같은 해, 포레스터 리서치의 분석가 **존 킨더배그(John Kindervag)**는 이 원칙을 공식 개념으로 정립했다: "Zero Trust — Never trust, always verify." 그리고 2020년, 미국 국립표준기술원(NIST)은 NIST SP 800-207이라는 문서로 이를 국제 표준에 준하는 수준으로 정리했다.
잠깐 생각해보자. 1단계에서 배운 OSI 모델은 각 레이어가 아래 레이어를 "신뢰"하는 구조라고 했다. ARP 스푸핑이나 IP 스푸핑이 가능한 이유가 바로 이 "묵시적 신뢰" 때문이었다. 제로 트러스트는 이 묵시적 신뢰 자체를 설계에서 제거하겠다는 선언이다.
악성코드의 역사도 제로 트러스트가 왜 필요한지를 설명해준다. 1988년 **모리스 웜(Morris Worm)**은 인터넷을 통해 자기 복제하며 확산된 최초의 웜으로, 당시 인터넷에 연결된 컴퓨터 약 10%를 감염시켰다. 2단계에서 배운 P2P 네트워크의 분산 전파 특성이 실제 공격에 악용된 사례다. 2010년 등장한 **스턱스넷(Stuxnet)**은 더 충격적이었다. 이란의 핵 원심분리기를 물리적으로 파괴하기 위해 설계된 이 악성코드는 산업 제어 시스템(ICS/SCADA)을 타겟으로 한 최초의 사이버 무기였고, 사이버 공격이 디지털 세계를 넘어 물리적 파괴를 유발할 수 있음을 최초로 증명했다. 2017년의 **워너크라이(WannaCry)**는 3일 만에 150개국 23만 대를 감염시킨 랜섬웨어로, NSA에서 개발한 이터널블루(EternalBlue) 익스플로잇이 해킹 그룹에 의해 유출·남용된 것이었다. 공격 도구의 공급망 자체가 위협이 되는 세상이 된 것이다.
이렇게 복잡하고 내부에서 시작되는 공격 환경에서, 방어자들은 단순히 막는 것을 넘어 "공격자를 이해하고 예측하는" 접근이 필요하다는 것을 깨달았다. 이것이 **위협 인텔리전스(Threat Intelligence)**의 핵심이다. 손자병법의 "지피지기 백전불태(知彼知己 百戰不殆)"가 현대 사이버 보안에 그대로 적용된 개념이다. 이 배경지식 위에서, 이제 세 가지 핵심 주제로 들어가보자.
2부. 제로 트러스트 아키텍처 — 의심이 곧 방패다
NIST SP 800-207이 정의하는 **제로 트러스트 아키텍처(ZTA)**의 세 원칙을 먼저 이해해야 한다.
[노트 기록] Zero Trust 3원칙 (NIST SP 800-207): ① Verify Explicitly (명시적 검증): 위치와 네트워크에 관계없이, 모든 접근 요청을 항상 인증하고 인가하라. 신원(Identity), 디바이스 상태, 위치, 시간대, 요청의 맥락을 모두 종합하라. ② Use Least Privilege (최소 권한): 필요한 최소한의 권한만 부여하라. JIT(Just-In-Time)/JEA(Just-Enough-Access) 접근 방식을 사용하라. ③ Assume Breach (침해 가정): 내부 네트워크가 이미 침해되었다고 가정하고 설계하라. 피해 반경(Blast Radius)을 최소화하고, 엔드-투-엔드 암호화를 적용하고, 모든 행위에 대한 가시성을 확보하라.
이 세 원칙을 2단계에서 배운 Raft 알고리즘에 연결해보면 흥미롭다. Raft에서 팔로워 노드는 리더의 로그 항목을 받을 때 term 번호와 인덱스를 검증하고 불일치하면 거부했다. 그것이 분산 시스템에서의 "Verify Explicitly"였다. 제로 트러스트는 이 검증 논리를 네트워크 접근의 모든 순간에 확장한 것이다.
ZTA의 핵심 컴포넌트를 이해하려면, "정책(Policy)"이 시스템의 중심축이라는 것을 먼저 파악해야 한다.
[노트 기록] ZTA 핵심 컴포넌트:
- 정책 엔진(Policy Engine, PE): 접근 허가/거부를 결정하는 두뇌. 신원, 디바이스 상태, 위치, 시간대, 행동 패턴 등 수십 가지 신호를 종합해 동적으로 신뢰 점수(Trust Score)를 산출한다.
- 정책 관리자(Policy Administrator, PA): PE의 결정을 PEP에게 전달하고 세션 인증 토큰을 발급하거나 취소한다.
- 정책 집행 포인트(Policy Enforcement Point, PEP): 실제 트래픽을 허용/차단하는 경찰. 모든 접근 요청은 PEP를 반드시 통과해야 한다.
- Identity Provider (IdP): 사용자 신원 관리. SAML 2.0, OAuth 2.0/OIDC 표준 기반.
- Device Management: MDM(Mobile Device Management) 연동으로 접근하는 디바이스의 패치 수준, 암호화 상태, 악성코드 감염 여부를 실시간 체크.
1단계에서 만든 고성능 프록시 서버를 기억하는가? PEP는 그 프록시 서버의 개념을 확장한 것이다. 단순히 트래픽을 중계하는 것이 아니라, 매 요청마다 정책 엔진의 판단을 받아와 통행증을 검사하는 스마트 프록시다.
**마이크로세그멘테이션(Microsegmentation)**은 "Assume Breach" 원칙의 핵심 구현 기술이다. 기존의 VLAN 기반 세그멘테이션이 네트워크를 몇 개의 큰 구역으로 나누는 것이었다면, 마이크로세그멘테이션은 각각의 워크로드(서버 하나, 컨테이너 하나, VM 하나)를 개별 보안 구역으로 분리한다. 이것은 선박의 격실(Bulkhead) 구조와 동일한 원리다. 한 칸에 물이 들어와도 배 전체가 침몰하지 않도록, 공격자가 서버 A를 침해해도 서버 B로의 이동이 명시적인 정책 없이는 원천 차단된다. 기술적으로 쿠버네티스 환경에서는 NetworkPolicy 리소스, 서비스 메시(Istio, Linkerd)로 구현하며, 온프레미스에서는 소프트웨어 정의 네트워킹(SDN)과 차세대 방화벽(NGFW)을 활용한다.
기술적 구현에서 반드시 이해해야 할 두 가지가 있다. 첫째는 **mTLS(Mutual TLS)**다. 1단계에서 TLS를 배울 때, 서버가 클라이언트에게 인증서를 제시하는 단방향 인증을 배웠다. mTLS는 클라이언트도 서버에게 자신의 인증서를 제시하는 상호 인증이다. "나는 네가 진짜 서버인지 확인하고, 너도 내가 진짜 클라이언트인지 확인해야 한다." 마이크로서비스 환경에서 서비스 A가 서비스 B를 호출할 때 mTLS를 적용하면, 내부 네트워크에서도 신원 위조가 불가능해진다. 둘째는 **RBAC(Role-Based Access Control)**와 **ABAC(Attribute-Based Access Control)**의 차이다. RBAC는 사용자에게 직접 권한을 부여하는 대신 역할에 권한을 부여하고 사용자를 역할에 할당한다. "개발자" 역할은 개발 서버 접근 가능, 프로덕션 DB는 불가. ABAC는 여기서 더 나아가 **접근 허가 = f(사용자 속성 ∩ 리소스 속성 ∩ 환경 속성)**으로 표현되는 방식으로, 시간대, 위치, 디바이스 신뢰 수준 등을 동적으로 조합해 결정을 내린다. ABAC가 ZTA에서 더 선호되는 이유가 여기에 있다.
3부. 악성코드 분석과 리버스 엔지니어링 — 적의 언어로 적을 읽다
2단계에서 우리는 침투 테스트를 통해 공격자의 시각을 배웠다. 이제 방어자의 시각에서, 공격자가 만든 무기 자체를 해부하는 법을 배울 차례다. 악성코드는 대부분 컴파일된 바이너리 형태로 배포된다. 소스코드를 보여주지 않는다. 따라서 방어자는 바이너리를 분석해 "이 프로그램이 무엇을 하는가"를 역으로 파악해야 한다. 이것이 **리버스 엔지니어링(Reverse Engineering)**의 본질이다. 악성코드 분석은 크게 두 접근법으로 나뉜다.
**정적 분석(Static Analysis)**은 악성코드를 실행하지 않고 분석하는 방법이다. 폭탄을 터뜨리지 않고 설계도를 분석하는 것과 같다. 첫 단계는 파일 메타데이터 파악이다. 파일의 해시값(MD5, SHA-256)을 계산해 이미 알려진 악성코드 데이터베이스(VirusTotal)와 대조하고, 파일 형식을 확인한다. 윈도우 실행 파일은 PE(Portable Executable) 형식을 따르는데, PE 헤더에는 이 프로그램이 어떤 외부 함수(API)를 가져다 쓰는지(Import Table), 어떤 섹션들로 구성되는지(.text: 코드, .data: 초기화 데이터, .rdata: 읽기 전용 데이터)가 명시되어 있다.
[노트 기록] Import Table 분석 시 의심해야 할 Windows API:
VirtualAllocEx(다른 프로세스 메모리 할당), WriteProcessMemory(다른 프로세스 메모리에 쓰기), CreateRemoteThread(다른 프로세스에서 스레드 생성) → 프로세스 인젝션(Process Injection) 의심. RegSetValueEx(레지스트리 값 설정) → 지속성(Persistence) 확보 의심. InternetOpen / HttpSendRequest → C2(Command & Control) 통신 의심. 문서 편집기인데 위 API들을 import한다면? 그건 강력한 악성 징후다.
다음 단계는 strings 도구로 바이너리에서 읽을 수 있는 문자열을 추출하는 것이다. 하드코딩된 IP 주소, 도메인, URL, 레지스트리 키 경로는 악성코드 동작의 귀중한 단서가 된다. 물론 정교한 악성코드는 이 문자열을 XOR 인코딩이나 Base64로 숨기기도 한다. 그 경우에는 그 숨기기 루틴 자체를 분석해야 한다.
정적 분석의 정점은 **디스어셈블리(Disassembly)**다. 바이너리를 어셈블리 코드로 변환해 직접 읽는 것이다. Ghidra(미 NSA가 오픈소스로 공개, 무료)나 IDA Pro(업계 표준 상용 도구)가 핵심 도구다. 어셈블리를 읽기 위해서는 기본 개념이 필요하다. CPU는 **레지스터(Register)**라는 고속 저장공간을 가지며, 64비트 환경에서 주요 레지스터는 RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP다. 함수에 인자를 전달하는 **호출 규약(Calling Convention)**에 따라, Linux x64(System V ABI)에서는 첫 번째 인자가 RDI, 두 번째가 RSI, 세 번째가 RDX 순서다. Windows x64에서는 RCX, RDX, R8, R9 순서다. 이 지식이 있으면 mov rdi, rax 이후 call CreateFile을 보았을 때, "rax에 들어있는 경로로 파일을 열고 있다"고 해석할 수 있다. 리버스 엔지니어링은 이런 작은 해석을 쌓아가며 전체 악성코드의 행동 흐름 지도를 그리는 과정이다.
**동적 분석(Dynamic Analysis)**은 실제로 악성코드를 실행하고 그 행동을 관찰하는 방법이다. 당연히 격리된 샌드박스 환경(외부 네트워크와 완전히 차단된 가상 머신)에서 수행해야 한다. 실행 전후의 시스템 상태를 비교하여 생성/수정/삭제된 파일, 레지스트리 변경(지속성 메커니즘), 새로 생성된 프로세스와 부모-자식 관계, 외부 네트워크 연결(C2 서버 주소, 포트, 프로토콜)을 기록한다. Windows 환경에서는 Process Monitor(Sysinternals Suite), Process Hacker, Wireshark가 핵심 도구다. 자동화된 동적 분석 플랫폼으로는 Cuckoo Sandbox(오픈소스)가 널리 사용된다.
분석을 통해 파악한 악성코드의 특징을 정형화한 것이 **IoC(Indicators of Compromise, 침해 지표)**다. 파일 해시, C2 서버 도메인/IP, 특정 레지스트리 키 경로, 네트워크 패턴 등이 포함된다. 이 IoC를 탐지 규칙으로 표현하는 언어가 YARA다. 예를 들어 자격증명 덤핑 도구인 Mimikatz를 탐지하는 YARA 규칙은 아래와 같다:
rule Detect_Mimikatz {
meta:
description = "Detects Mimikatz credential dumper"
strings:
$s1 = "sekurlsa::logonpasswords" wide ascii
$s2 = "mimikatz" wide ascii nocase
$hex1 = {60 BA 4B 00 00 00 8B}
condition:
any of ($s1, $s2, $hex1)
}
문자열이나 바이트 패턴 중 하나라도 파일 안에 존재하면 탐지한다. 보안 커뮤니티에서는 YARA 규칙을 공개적으로 공유해 집단 방어를 구현한다.
4부. 위협 인텔리전스와 SOC 운영 — 조직의 면역 시스템
개별 악성코드를 분석하는 것도 중요하지만, 더 큰 그림을 봐야 한다. **"공격자는 어떤 단계를 거쳐 목표를 달성하는가?"**를 이해하는 프레임워크가 방어의 전략을 결정한다.
2011년 록히드 마틴이 발표한 **사이버 킬 체인(Cyber Kill Chain)**은 공격의 7단계를 정의한다: ①정찰(Reconnaissance) → ②무기화(Weaponization) → ③전달(Delivery) → ④익스플로잇(Exploitation) → ⑤설치(Installation) → ⑥명령 및 제어(C2) → ⑦목표 달성(Actions on Objectives). 이 프레임워크의 전략적 핵심은 단순하다: 공격자는 이 7단계를 모두 완료해야 목표를 달성한다. 따라서 방어자가 어느 한 단계에서라도 공격을 차단하면 공격은 실패한다. 이것이 다층 방어(Defense in Depth)의 논리적 근거다.
더 현대적이고 세밀한 프레임워크는 **MITRE ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)**다. 14개의 전술(Tactic) 카테고리 아래 수백 개의 구체적인 기법(Technique)과 하위 기법(Sub-technique)이 카탈로그화되어 있다. 예를 들어 "지속성(Persistence)" 전술 아래에 "예약 작업(Scheduled Task)", "부팅 자동실행(Boot Autostart Execution)" 등의 기법이 세분화된다. 공격 그룹의 TTPs(Tactics, Techniques, Procedures)를 ATT&CK 매트릭스에 매핑하면, 어떤 그룹이 어떤 전술을 즐겨 쓰는지 빠르게 파악하고 그에 맞는 방어를 집중할 수 있다.
[노트 기록] MITRE ATT&CK 주요 전술 카테고리 (14개 중 핵심):
- Initial Access: 피싱, 공개 애플리케이션 취약점 익스플로잇을 통한 최초 진입
- Execution: 악성코드 실행 방법 (PowerShell, WMI, 스크립트 인터프리터)
- Persistence: 재부팅 후에도 접근 유지 (레지스트리 Run 키, 예약 작업)
- Privilege Escalation: 더 높은 권한 획득 (커널 익스플로잇, 토큰 조작)
- Lateral Movement: 내부 네트워크에서 다른 시스템으로 이동 (Pass-the-Hash, RDP)
- Exfiltration: 데이터 외부 유출 (암호화된 채널로 C2 서버에 전송)
이제 이 모든 것을 실시간으로 탐지하고 대응하는 조직과 도구로 넘어가자. **SIEM(Security Information and Event Management)**은 네트워크 장비, 서버, 엔드포인트, 애플리케이션의 보안 이벤트 로그를 중앙 집중적으로 수집하고, **상관 분석(Correlation)**을 통해 위협을 탐지하는 플랫폼이다. 상관 분석의 힘은 개별 이벤트로는 아무것도 아닌 것들을 연결할 때 드러난다. 새벽 3시에 사용자 A가 VPN 로그인 + 동시에 싱가포르에서 같은 계정으로 로그인 실패 + 이후 파일 서버에서 대량 파일 접근 — 이 세 이벤트를 연결하면 "자격증명 도용 후 내부 정찰 시도"라는 시나리오가 탐지된다. 개별 이벤트를 쳐다보는 보안 담당자는 이것을 놓치지만, 상관 규칙을 탑재한 SIEM은 수백만 개의 이벤트 중에서 이 패턴을 실시간으로 찾아낸다.
**SOC(Security Operations Center)**는 SIEM을 운용하는 조직이다. Tier 1 애널리스트는 SIEM 알림을 1차 분류(Triage)하며 명백한 오탐(False Positive)을 걸러낸다. Tier 2 애널리스트는 Tier 1이 에스컬레이션한 복잡한 사건을 심층 분석하고 침해 범위를 파악한다. **Tier 3 애널리스트(Threat Hunter)**는 알림을 기다리지 않고 능동적으로 네트워크를 수색(Threat Hunting)하며 잠복한 위협을 발굴한다.
SIEM이 탐지한 위협에 대한 대응을 자동화하는 것이 **SOAR(Security Orchestration, Automation and Response)**다. SOAR는 반복적인 대응 절차를 **플레이북(Playbook)**으로 코드화해 자동 실행한다. 예를 들어 피싱 이메일 탐지 플레이북은: ①이메일 격리 → ②첨부파일 자동 샌드박스 분석 → ③발신 도메인 평판 조회 → ④동일 발신자 이메일 전사 차단 → ⑤피해 사용자 비밀번호 변경 알림 → ⑥분석 리포트 자동 생성까지 수 분 내에 처리한다. SOC 애널리스트는 반복 작업에서 해방되어 복잡한 위협 분석에 집중할 수 있게 된다.
마지막으로, 위협 인텔리전스는 형태에 따라 세 단계로 나뉜다. **전략적 인텔리전스(Strategic)**는 경영진을 위한 트렌드 분석이다("최근 의료 섹터를 타겟한 APT 그룹 증가"). **작전적 인텔리전스(Operational)**는 특정 공격 캠페인의 상세 정보다("그룹 XYZ가 현재 이 이메일 제목으로 피싱 캠페인을 실행 중"). **전술적 인텔리전스(Tactical)**는 방어 도구에 즉시 적용 가능한 IoC들이다("이 IP/도메인/해시를 차단하라"). 이 인텔리전스를 기계가 읽을 수 있는 형식으로 표준화한 것이 **STIX(Structured Threat Information Expression)**이고, 자동 배포 프로토콜이 TAXII다. 2단계에서 배운 P2P 분산 정보 공유 시스템의 개념이 위협 인텔리전스 생태계에도 그대로 적용됨을 눈치챘는가?
5부. 프로젝트 — 이론을 실전으로
아래 세 프로젝트는 이 단계의 세 학습목표에 각각 대응한다. 정답은 없다. 스스로 고민하고, 위에서 배운 개념들을 연결해 설계하라. 막히는 지점이 어디인지 파악하는 것 자체가 학습이다.
프로젝트 1. ZTA 설계 — "핀테크 스타트업 SecurePay의 제로 트러스트 전환"
시나리오: SecurePay는 직원 150명 규모의 핀테크 스타트업이다. 결제 처리 API 서버, 고객 데이터베이스, 내부 대시보드, 개발팀용 CI/CD 파이프라인이 AWS에서 운영되고 있다. 현재 보안 구조는 VPN 기반의 성벽 모델이다. 최근 한 직원의 노트북이 피싱으로 감염되어 내부 Slack, GitHub, Jira에 무단 접근이 발생했다. CTO가 Zero Trust 전환을 지시했다.
너의 과제: 다음 요소들을 포함하는 ZTA 설계 문서를 작성하라.
- ①이 환경에서 존재하는 **신뢰 경계(Trust Boundary)**를 모두 식별하고, 각각이 현재 어떤 방식으로 "암묵적 신뢰"를 부여받고 있는지 서술하라.
- ②NIST SP 800-207 모델 기반으로 PE, PA, PEP를 이 환경의 어디에 배치할지 설명하라. 결제 API 서버에 접근하는 시나리오를 예로 들어, 한 번의 접근 요청이 어떤 흐름으로 처리되는지 단계별로 서술하라.
- ③세 가지 보호 대상 — 결제 API, 고객 DB, CI/CD 파이프라인 — 에 대한 마이크로세그멘테이션 정책을 설계하라. "개발자가 프로덕션 DB에 직접 접근 요청 시"와 "새벽 2시 해외 IP에서 관리자 계정으로 API 서버 접근 요청 시" 두 가지 시나리오에서 정책 엔진이 어떤 결정을 내려야 하며 그 근거는 무엇인지 설명하라.
- ④기존 VPN 기반 구조에서 ZTA로 전환할 때 예상되는 저항과 부작용은 무엇이고, 어떻게 단계적으로 마이그레이션할 것인가?
프로젝트 2. 악성코드 분석 보고서 — "의문의 실행 파일 X.exe"
시나리오: SOC Tier 2 애널리스트인 너는 엔드포인트 보안 솔루션이 격리한 파일 update_helper.exe를 받았다. 이 파일에 대해 아래 분석 정보가 수집되었다.
[정적 분석 결과]
- 파일 크기: 248KB. 컴파일 타임스탬프: 2024-01-15 03:22 UTC (새벽 3시 컴파일은 흔치 않다. 왜 의심스러운가?)
- Import Table 주요 항목:
VirtualAllocEx,WriteProcessMemory,CreateRemoteThread,RegSetValueEx,InternetOpenA,HttpSendRequestA,CryptEncrypt - Strings 추출 결과 (주요 항목):
SOFTWARE\Microsoft\Windows\CurrentVersion\Run update_helper /api/v2/checkin Mozilla/5.0 (compatible; MSIE 9.0) %APPDATA%\Microsoft\Windows\update_helper.exe cmd.exe /c whoami cmd.exe /c ipconfig /all - 섹션 분석:
.text섹션의 엔트로피값이 7.8 (정상 실행 파일은 보통 6.0 이하. 높은 엔트로피는 무엇을 의미하는가?)
[동적 분석 결과] (Cuckoo Sandbox, Windows 10 VM에서 실행)
- 실행 직후
explorer.exe에CreateRemoteThread를 통해 코드 인젝션 발생 - 레지스트리 키 생성:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\update_helper→%APPDATA%\Microsoft\Windows\update_helper.exe로 지속성 확보 - 네트워크 연결:
203.0.113.47:443으로 HTTPS 연결 시도 (연결 실패, 네트워크 격리 상태) - 연결 실패 후 10초 간격으로 동일 IP 재시도 반복 (총 6회)
- 파일 생성:
%TEMP%\svchost32.dll(정상 svchost.exe와 이름이 유사하다는 점에 주목) cmd.exe자식 프로세스 실행 →whoami,ipconfig /all,net user,net localgroup administrators실행
너의 과제: 위 분석 결과를 바탕으로 전문적인 악성코드 분석 보고서를 작성하라. 보고서에는 다음이 포함되어야 한다.
- ①이 악성코드가 수행하는 행동을 킬 체인의 단계에 매핑하라. 각 관찰된 행동이 킬 체인의 어느 단계에 해당하는가?
- ②Import Table의 각 API 함수가 이 악성코드의 동작에서 어떤 역할을 하는지 추론하라.
CryptEncrypt가 import된 이유는 무엇이라고 생각하는가? - ③이 악성코드의 유형을 분류하라 (트로이목마? 백도어? 드로퍼? 복합?). 분류의 근거를 설명하라.
- ④섹션 엔트로피가 7.8이라는 것의 의미를 설명하고, 이것이 탐지 회피(Detection Evasion)와 어떤 관련이 있는지 추론하라.
- ⑤이 악성코드로부터 도출할 수 있는 IoC 목록을 작성하고, 각 IoC 타입(해시, IP, 레지스트리 키, 파일 경로, 네트워크 패턴)으로 분류하라.
- ⑥이 악성코드를 탐지하기 위한 YARA 규칙을 하나 작성하라. 어떤 특징을 기반으로 규칙을 작성했는지 근거를 설명하라.
프로젝트 3. SOC 인시던트 대응 — "Operation MidnightFox 대응 플레이북"
시나리오: 금융 기업 KoreaFinance의 SOC Tier 2 애널리스트인 너는 오늘 새벽 Tier 1으로부터 에스컬레이션을 받았다. SIEM에서 다음 이벤트들이 상관 분석 규칙에 의해 하나의 인시던트로 묶여 알림이 발생했다.
[SIEM 상관 이벤트 타임라인]
[02:14:33] INFO | MAIL-GW-01 | 수신 이메일: 발신자=hr_update@koreafinance-notice.com,
수신자=finance_team@koreafinance.com (13명),
제목="2024년 연봉 협상 안내 - 첨부파일 확인 요망"
첨부파일: "2024_salary_negotiation.docx.exe" (245KB)
[02:31:07] WARN | EDR-WS-047 | 프로세스 생성: Word.exe → cmd.exe → powershell.exe
PowerShell 인코딩 커맨드 실행 감지
[02:31:09] WARN | EDR-WS-047 | 네트워크 연결: WS-047 → 203.0.113.92:443
[02:31:11] WARN | FW-CORE-01 | 아웃바운드 허용: WS-047(192.168.10.47) → 203.0.113.92:443
[02:33:45] CRIT | EDR-WS-047 | LSASS 프로세스 메모리 접근 시도 탐지
(소스: powershell.exe PID 4821)
[02:41:22] WARN | DC-AUTH-01 | 계정 잠금: user=jkim (5회 연속 실패 후 잠금)
[02:41:55] WARN | DC-AUTH-01 | 인증 성공: user=slee, src_ip=192.168.10.47
(평소 접속 IP와 다름: 평소 192.168.20.x 대역)
[02:44:10] WARN | FILE-SRV-01 | 대량 파일 열기: user=slee, 5분간 847개 파일 접근
(평소 일평균 12개)
[02:44:30] WARN | DLP-01 | 이상 데이터 전송 탐지: WS-047 → 203.0.113.92
전송 크기: 847MB (임계치: 100MB)
[02:45:00] INFO | PROXY-01 | DNS 질의: update-cdn-koreafinance.ddns.net → 203.0.113.92
너의 과제:
- ①위 타임라인을 분석해 이 공격의 킬 체인 단계 매핑을 수행하라. 각 타임스탬프 이벤트가 킬 체인의 어느 단계에 해당하는지, 그리고 MITRE ATT&CK의 어떤 기법(Technique ID 포함)에 해당하는지 매핑하라.
- ②이 공격에서 **초기 감염 벡터(Initial Access Vector)**는 무엇이고, 어떻게 탐지가 더 빨리 이루어질 수 있었는지 설명하라. 메일 게이트웨이 단계에서 어떤 추가 보안 통제가 있었다면 이 공격을 막을 수 있었는가?
- ③
LSASS 프로세스 메모리 접근 시도의 의미를 설명하고, 이것이 킬 체인에서 어떤 목적을 위한 행동인지, 2단계에서 배운 침투 테스트 도구 중 어떤 것이 연관될 수 있는지 추론하라. - ④
update-cdn-koreafinance.ddns.net이라는 도메인이 DDNS(Dynamic DNS)를 사용하는 이유가 무엇인지, 공격자의 관점에서 설명하라. - ⑤이 인시던트에 대한 SOAR 자동화 플레이북을 설계하라. 초기 탐지 시점부터 격리, 분석, 복구, 재발 방지까지의 단계를 순서도 형태로 작성하되, 각 단계에서 어떤 시스템(SIEM, EDR, 방화벽, ITSM 티켓 시스템, 이메일)이 어떤 자동화 액션을 수행하는지 명시하라.
- ⑥이 사건에서 제로 트러스트 아키텍처가 구축되어 있었다면, 어떤 단계에서 공격의 피해가 차단되거나 축소되었을 것인지 분석하라. (힌트:
slee계정을 통한 파일 서버 접근 시나리오를 ZTA 정책 엔진의 관점에서 다시 생각해보라.)
세 프로젝트를 모두 완료했다면, 각 프로젝트의 설계 결과물을 10분씩 발표할 수 있는 형태로 정리해보라. 단순한 답을 쓰는 것이 아니라, 왜 그 결정을 내렸는지 근거를 설명할 수 있어야 한다. 보안 아키텍처의 세계에서는 "정답"보다 "논리적으로 방어 가능한 설계"가 더 중요하다.