377. 방어 회피·흔적 삭제 — 네트워크 연결 은닉 탐지

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
377/450

시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 27/50편 (전체 377/450)
학습 단계: 보안 기능 무력화·은닉
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

공격자는 C2·데이터 유출 연결 자체를 숨깁니다. 루트킷으로 ss·netstat 결과에서 연결을 제거하거나, 정상 포트(443)·암호화·포트 노킹으로 위장합니다. 호스트 도구가 못 봐도 네트워크 관점(흐름 로그)에서는 드러납니다.

네트워크 연결 은닉 기법
 루트킷 은닉: ss/netstat에서 연결 제거(H24·H25)
 정상 포트 위장: C2를 443/53으로 — 정상 트래픽 흉내
 포트 노킹: 특정 시퀀스로만 포트 개방(평소엔 닫힘)
 암호화 터널: 내용 은폐(TLS·SSH 터널)
 특징: 호스트 도구 은닉 vs 네트워크 흐름엔 존재

탐지: /proc/net 교차·흐름 로그·비정상 장기 연결

핵심은 "호스트에서 안 보여도 네트워크엔 흐름이 남는다"입니다. ss와 /proc/net/tcp 교차, 흐름 로그(NetFlow)로 은닉 연결을 포착합니다.

2. 왜 중요한가

  • 연결 은닉은 C2·유출 통신을 감춰 호스트 기반 탐지를 회피합니다.
  • 루트킷이 ss를 조작해도 /proc/net 직접 조회·흐름 로그엔 연결이 남습니다.
  • 정상 포트(443) 위장은 포트가 아닌 행위(장기 연결·비정상 목적지)로 판별합니다.

3. 핵심 명령어 / 설정

은닉방식탐지
루트킷 은닉ss 조작/proc/net 교차
정상 포트 위장443/53 사용목적지·행위
포트 노킹시퀀스 개방방화벽 로그
암호화 터널TLS·SSH흐름 메타·크기
흐름 교차NetFlow호스트 사각 보완

4. 실습 (실습 예시)

# 네트워크 연결 은닉 탐지 (분석 방법)
# ss vs /proc/net 교차(루트킷 은닉)
ss -tnp 2>/dev/null | wc -l; cat /proc/net/tcp /proc/net/tcp6 2>/dev/null | wc -l
# 외부 연결의 프로세스·목적지
sudo ausearch -k net_conn -i --start recent 2>/dev/null | grep -vE 'addr=(10\.|192\.168\.|127\.)' | tail
# 장기 지속 외부 연결(C2 의심)
ss -tnpo 2>/dev/null | grep -E 'ESTAB' | grep -vE '10\.|192\.168\.|127\.' | head

5. 정상 상태

$ (ss vs /proc/net) 일치
$ (외부 연결) 정상 서비스 목적지만

ss와 /proc/net 결과가 일치하고, 외부 연결이 정상 서비스 목적지에 그치는(은닉·C2 없음) 상태가 정상입니다.

6. 이상 상태

$ (ss vs /proc/net 불일치)
ss: 203.0.113 연결 안 보임 / /proc/net/tcp: 존재
→ 루트킷이 ss에서 C2 연결 은닉
$ (외부 연결)
443 포트지만 목적지 203.0.113.50(미확인), 48시간 지속 연결
→ 정상 HTTPS 위장한 장기 C2
  • ss엔 없고 /proc/net엔 있는 연결 → 루트킷 연결 은닉
  • 443 포트지만 비정상 목적지·장기 지속 → 정상 포트 위장 C2
  • 연결 은닉·위장 → C2·유출 은폐 → 정탐(흐름 로그로 보완)

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

네트워크 연결 은닉 분석입니다(가상의 예시).

[공격자 C2] web01 → 203.0.113.50:443
   ↓ (은닉)
① 루트킷으로 ss/netstat에서 연결 제거
② 443 포트로 정상 HTTPS 위장
      ↕ (교차 탐지)
[호스트] /proc/net/tcp 직접 조회 → 연결 존재(ss 불일치)
[네트워크] NetFlow → web01→203.0.113.50 흐름 존재
   → 포트는 443이나 목적지·지속시간 비정상
   ↓
= 호스트 은닉해도 /proc·흐름 로그로 포착 → 정탐
관점은닉 뚫기
/proc/netss 불일치
흐름 로그호스트 사각
행위 분석포트 위장 간파

/proc/net 교차 + 흐름 로그가 연결 은닉 탐지의 핵심입니다.

8. SOC 관제 포인트

  • 네트워크 연결 은닉은 루트킷·정상 포트 위장·포트 노킹·암호화로 C2·유출을 감춥니다.
  • 호스트 도구(ss)가 못 봐도 /proc/net 직접 조회·흐름 로그엔 연결이 남습니다.
  • 정상 포트 위장은 포트가 아닌 목적지·지속시간·행위로 판별합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,network,">
  <rule id="107260" level="12">
    <if_sid>107000</if_sid>
    <field name="audit.key">net_conn</field>
    <field name="audit.addr" type="pcre2">^(?!10\.|192\.168\.|172\.1[6-9]|127\.)</field>
    <description>비정상 외부 연결(연결 은닉·정상 포트 위장 C2 후보)</description>
    <mitre><id>T1562</id><id>T1071</id></mitre>
  </rule>
</group>

ss와 /proc/net 교차 점검을 주기화하고, 흐름 로그(NetFlow)와 상관해 호스트 은닉 연결을 포착합니다. 장기 외부 연결은 행위로 판별합니다.

10. 대응 방법

  1. 초기 확인 — ss와 /proc/net 교차·외부 연결 목적지·지속시간을 확인합니다.
  2. 범위 확인 — 루트킷 은닉·정상 포트 위장·포트 노킹·암호화 터널을 확인합니다.
  3. 증거 확보 — 연결 정보·/proc/net·흐름 로그를 보존합니다.
  4. 차단/조치 — 연결 은닉 정탐이면 연결 차단·C2 목적지 조사·흐름 로그 전수 분석을 진행합니다.
  5. 재발 방지 — 네트워크 연결 은닉 탐지를 운영합니다.

11. 핵심 정리

은닉방식
루트킷 은닉ss 조작
정상 포트 위장443/53 사용
포트 노킹시퀀스 개방
암호화 터널TLS·SSH
면접 포인트"연결은 호스트서 숨겨도 흐름엔 남음 — /proc/net+NetFlow 교차로 탐지"

12. 다음 편 예고

다음 편 378. 방어 회피·흔적 삭제 — 보안 기능 무력화 종합 분석 에서는 보안 기능 무력화를 종합하는 보안 기능 무력화 종합 분석을 다룹니다.


이전 편: 376. 방어 회피·흔적 삭제 — 프로세스·파일 은닉 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글