시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 31/50편 (전체 281/450)
학습 단계: 백도어·C2·은닉 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
현대 C2 프레임워크는 즉시 연결(리버스 셸) 대신 비컨(beacon) 방식을 씁니다. 피해가 주기적으로 공격자 서버에 "체크인"해 명령을 받아오고, 대기합니다. 짧고 규칙적인 통신이라 은밀하지만, 통신 패턴으로 탐지됩니다.
C2 비컨 통신 패턴
주기적 체크인: N초/분마다 공격자 서버 연결(jitter 포함)
짧은 통신: 명령 없으면 짧게 연결·종료
규칙성: 일정 간격(sleep + jitter)
위장: HTTP(S)·DNS로 정상 트래픽 흉내
명령 수신 시: 트래픽 증가
탐지: 규칙적 주기 + 동일 목적지 + 소량 반복
비컨은 F15(단기·반복 실행)·E33(DNS)와 연계됩니다. 핵심은 규칙적 주기성과 동일 목적지 반복 연결입니다.
| 비컨 지표 | 패턴 | 탐지 |
|---|---|---|
| 규칙적 주기 | 일정 간격+jitter | 시계열 분석 |
| 동일 목적지 반복 | 같은 IP/도메인 | 집계 |
| 소량 반복 통신 | 짧은 체크인 | 크기·빈도 |
| HTTP(S)/DNS 위장 | 정상 흉내 | 패턴 분석 |
| 정상 폴링 | 업데이트·API | 정상 |
# C2 비컨 통신 패턴 탐지 (분석 방법)
# 동일 목적지 반복 연결(비컨 체크인)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'connect' | grep -oE '192\.0\.2\.[0-9]+|203\.0\.113\.[0-9]+' | sort | uniq -c | sort -rn | head
# 프로세스별 주기적 외부 연결(F15 연계)
ss -tnp 2>/dev/null | grep -vE '127.0.0.1' | grep -E '/tmp/|python|\.beacon'
$ (목적지 반복 연결) 정상 폴링(업데이트·모니터링)만, 불규칙
$ (주기적 연결) (없음)
외부 연결이 정상 폴링(업데이트·API)에 그치고 불규칙하며, 규칙적 주기의 반복 연결이 없는 상태가 정상입니다.
$ (목적지 반복 연결)
288 192.0.2.88 (동일 IP로 반복, 5분 간격)
$ (주기적 연결)
04:00:02, 04:05:01, 04:10:03 ... (5분±2초 규칙 간격, jitter)
C2 비컨 통신 분석입니다(가상의 예시).
[비컨 루프]
04:00 피해 → C2(192.0.2.88) 체크인(명령 없음, 짧게 종료)
04:05 피해 → C2 체크인 (5분±jitter)
04:10 피해 → C2 체크인 ...
↓ (명령 수신 시)
04:15 C2 → "데이터 유출" 명령 → 트래픽 증가
= 규칙적 주기(sleep+jitter) + 동일 목적지 = 비컨
| 지표 | 정상 | 비컨 |
|---|---|---|
| 목적지 | 분산 | 동일 반복 |
| 간격 | 불규칙 | 규칙+jitter |
| 크기 | 다양 | 소량 반복 |
| 명령 시 | - | 트래픽 증가 |
규칙적 주기·동일 목적지가 비컨의 결정적 지표입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,c2,">
<!-- 동일 목적지로 규칙적 반복 연결(비컨) -->
<rule id="105300" level="12" frequency="10" timeframe="3600">
<if_matched_sid>105150</if_matched_sid>
<same_field>audit.dest_ip</same_field>
<description>C2 비컨 의심(동일 목적지 규칙적 반복 연결)</description>
<mitre><id>T1071</id><id>T1573</id></mitre>
</rule>
</group>
규칙적 주기(간격 일정성·jitter)는 ELK 시계열·네트워크 분석으로 정밀 탐지합니다. 정상 폴링은 목적지·패턴으로 구분합니다.
| 비컨 지표 | 패턴 |
|---|---|
| 규칙적 주기 | 일정 간격+jitter |
| 동일 목적지 반복 | 같은 IP/도메인 |
| 소량 반복 통신 | 짧은 체크인 |
| HTTP(S)/DNS 위장 | 정상 흉내 |
| 면접 포인트 | "C2 비컨은 규칙적 주기+동일 목적지 — 즉시 연결보다 은밀, 시계열로 탐지" |
다음 편 282. 프로세스·지속성 — 웹셸 실행 징후 탐지 에서는 웹셸 실행 징후를 다루는 웹셸 실행 징후 탐지를 다룹니다.
이전 편: 280. 프로세스·지속성 — 백도어 리스너(bind shell) 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점