281. 프로세스·지속성 — C2 비컨(beacon) 통신 패턴 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
281/450

시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 31/50편 (전체 281/450)
학습 단계: 백도어·C2·은닉 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

현대 C2 프레임워크는 즉시 연결(리버스 셸) 대신 비컨(beacon) 방식을 씁니다. 피해가 주기적으로 공격자 서버에 "체크인"해 명령을 받아오고, 대기합니다. 짧고 규칙적인 통신이라 은밀하지만, 통신 패턴으로 탐지됩니다.

C2 비컨 통신 패턴
 주기적 체크인: N초/분마다 공격자 서버 연결(jitter 포함)
 짧은 통신: 명령 없으면 짧게 연결·종료
 규칙성: 일정 간격(sleep + jitter)
 위장: HTTP(S)·DNS로 정상 트래픽 흉내
 명령 수신 시: 트래픽 증가

탐지: 규칙적 주기 + 동일 목적지 + 소량 반복

비컨은 F15(단기·반복 실행)·E33(DNS)와 연계됩니다. 핵심은 규칙적 주기성과 동일 목적지 반복 연결입니다.

2. 왜 중요한가

  • 비컨은 주기 체크인 방식이라 즉시 연결보다 은밀하지만, 규칙적 주기가 탐지 단서입니다.
  • 동일 목적지로 일정 간격 반복 연결은 정상 트래픽과 구분되는 패턴입니다.
  • HTTP(S)·DNS 위장이 흔해, 통신 빈도·규칙성·크기로 탐지합니다.

3. 핵심 명령어 / 설정

비컨 지표패턴탐지
규칙적 주기일정 간격+jitter시계열 분석
동일 목적지 반복같은 IP/도메인집계
소량 반복 통신짧은 체크인크기·빈도
HTTP(S)/DNS 위장정상 흉내패턴 분석
정상 폴링업데이트·API정상

4. 실습 (실습 예시)

# 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'

5. 정상 상태

$ (목적지 반복 연결) 정상 폴링(업데이트·모니터링)만, 불규칙
$ (주기적 연결) (없음)

외부 연결이 정상 폴링(업데이트·API)에 그치고 불규칙하며, 규칙적 주기의 반복 연결이 없는 상태가 정상입니다.

6. 이상 상태

$ (목적지 반복 연결)
  288 192.0.2.88 (동일 IP로 반복, 5분 간격)
$ (주기적 연결)
04:00:02, 04:05:01, 04:10:03 ... (5분±2초 규칙 간격, jitter)
  • 동일 IP(192.0.2.88)로 5분±2초 간격 반복 연결 → C2 비컨(jitter 포함)
  • 짧은 통신·규칙적 주기 → 명령 대기 체크인
  • 규칙적 주기+동일 목적지 반복 → C2 비컨 → 정탐

7. 로그 분석 (분석 방법)

C2 비컨 통신 분석입니다(가상의 예시).

[비컨 루프]
04:00 피해 → C2(192.0.2.88) 체크인(명령 없음, 짧게 종료)
04:05 피해 → C2 체크인 (5분±jitter)
04:10 피해 → C2 체크인 ...
   ↓ (명령 수신 시)
04:15 C2 → "데이터 유출" 명령 → 트래픽 증가
 = 규칙적 주기(sleep+jitter) + 동일 목적지 = 비컨
지표정상비컨
목적지분산동일 반복
간격불규칙규칙+jitter
크기다양소량 반복
명령 시-트래픽 증가

규칙적 주기·동일 목적지가 비컨의 결정적 지표입니다.

8. SOC 관제 포인트

  • C2 비컨은 주기적 체크인으로 명령을 받아오는 은밀한 원격 제어입니다.
  • 규칙적 주기(sleep+jitter)·동일 목적지 반복·소량 통신이 핵심 지표입니다.
  • HTTP(S)·DNS 위장이 흔해 통신 빈도·규칙성·크기로 탐지합니다(F15·E33 연계).

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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 시계열·네트워크 분석으로 정밀 탐지합니다. 정상 폴링은 목적지·패턴으로 구분합니다.

10. 대응 방법

  1. 초기 확인 — 동일 목적지 반복 연결·간격 규칙성(jitter)·통신 크기를 확인합니다.
  2. 범위 확인 — 비컨 체크인·명령 수신 시 트래픽 증가·위장 채널을 확인합니다.
  3. 증거 확보 — 비컨 통신 패턴·목적지·프로세스를 보존합니다.
  4. 차단/조치 — C2 비컨 정탐이면 목적지 차단·비컨 프로세스 종료·지속성 점검을 진행합니다.
  5. 재발 방지 — 통신 패턴 기반 C2 비컨 탐지를 운영합니다.

11. 핵심 정리

비컨 지표패턴
규칙적 주기일정 간격+jitter
동일 목적지 반복같은 IP/도메인
소량 반복 통신짧은 체크인
HTTP(S)/DNS 위장정상 흉내
면접 포인트"C2 비컨은 규칙적 주기+동일 목적지 — 즉시 연결보다 은밀, 시계열로 탐지"

12. 다음 편 예고

다음 편 282. 프로세스·지속성 — 웹셸 실행 징후 탐지 에서는 웹셸 실행 징후를 다루는 웹셸 실행 징후 탐지를 다룹니다.


이전 편: 280. 프로세스·지속성 — 백도어 리스너(bind shell) 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글