📚 네트워크 · 패킷 분석 › 03. Wireshark 패킷 분석 — 146편
이전 글: 145. HTTP 메서드와 상태코드로 보는 이상징후 · 다음 글: 147. 외부 비정상 통신 분석

1. 개념

"비정상 TCP"는 두 가지로 나눠 봐야 합니다. 하나는 규격상 나올 수 없는 패킷(Flag 조합 등), 다른 하나는 규격에는 맞지만 양이나 흐름이 평소와 다른 트래픽입니다. 재전송·중복 ACK처럼 네트워크 품질 문제로 생기는 현상은 131. TCP Retransmission·132. Duplicate ACK에서, Flag 각각의 의미는 128. TCP Flag 분석에서 다뤘습니다.

분류예원인 가능성
규격 위반SYN+FIN 동시, Flag 없음, SYN에 RST 동시스캔·회피 시도, 조작된 패킷
흐름 이상완료되지 않은 SYN 대량, RST 폭주SYN Flood, 서비스 장애, 스캔
값 이상창 밖 시퀀스의 RST, 같은 연결 내 TTL 급변연결 강제 종료(주입) 시도, 경로 변경
품질 문제재전송, Zero Window대부분 네트워크·서버 성능 문제

2. 동작 원리

Wireshark는 TCP 연결을 추적하면서 예상과 다른 패킷에 Expert Info와 tcp.analysis.* 플래그를 붙입니다. 규격 위반 Flag는 Expert Info가 없어도 필드 조건으로 직접 찾습니다.

캡처 파일
   ↓
① Analyze → Expert Information  : Warning·Error 항목 수 확인
   ↓
② tcp.analysis.flags            : Wireshark가 문제로 표시한 패킷
   ↓
③ Flag 조합 필터               : 규격상 불가능한 조합 직접 검색
   ↓
④ Conversations / I/O Graphs    : 양·시간 분포로 흐름 이상 확인
   ↓
⑤ 품질 문제 vs 의도적 트래픽 구분 → 필요한 경우 05·06 영역 분석으로 연계

3. 주요 특징

규격 위반 Flag 조합 필터 (정상 통신에서는 거의 나오지 않음)

형태Display Filter참고
SYN + FINtcp.flags.syn == 1 && tcp.flags.fin == 1연결 시작과 종료를 동시에 요청
SYN + RSTtcp.flags.syn == 1 && tcp.flags.reset == 1모순된 조합
Flag 없음tcp.flags == 0x000Null 형태 (219. Null Scan)
FIN + PSH + URGtcp.flags.fin == 1 && tcp.flags.push == 1 && tcp.flags.urg == 1XMAS 형태 (220. XMAS Scan)
데이터가 실린 SYNtcp.flags.syn == 1 && tcp.len > 0TCP Fast Open 등 일부 정상 사례 존재

Wireshark 분석 플래그 (tcp.analysis.*)

필드뜻보안 관점 활용
tcp.analysis.retransmission재전송응답 없는 SYN 재전송 대량 → 필터링된 대상 또는 Flood 피해
tcp.analysis.zero_window수신 버퍼 가득 참서버 과부하, 느린 읽기형 자원 고갈
tcp.analysis.reused_ports이전 연결과 같은 포트 쌍으로 새 SYN스캔 도구의 고정 출발지 포트
tcp.analysis.out_of_order순서 뒤바뀜다중 경로, 드물게 조작 패킷
tcp.analysis.lost_segment이전 구간 누락대부분 캡처 누락 (센서 성능 확인)

4. 예시

분석 방법 예시 — 이미 확보한 캡처 파일에서 비정상 TCP를 유형별로 세어 봅니다. 명령과 출력은 예시(값은 환경마다 다름)입니다. 연습용 파일은 Wireshark Wiki SampleCaptures의 공개 샘플 중 TCP 관련 파일을 쓸 수 있으며, 결과는 파일마다 다릅니다.

# tshark는 Rocky: wireshark-cli, Ubuntu: tshark 패키지

# 1) Expert Info 요약 (심각도별 항목)
tshark -r sample.pcapng -q -z expert,warn

# 2) 규격 위반 Flag 조합 건수
for f in 'tcp.flags.syn==1 && tcp.flags.fin==1' \
         'tcp.flags.syn==1 && tcp.flags.reset==1' \
         'tcp.flags == 0x000' \
         'tcp.flags.fin==1 && tcp.flags.push==1 && tcp.flags.urg==1'; do
  printf '%-60s %s\n' "$f" "$(tshark -r sample.pcapng -Y "$f" | wc -l)"
done

# 3) 완료되지 않은 연결: SYN만 보인 연결(completeness 1)의 목적지별 수
tshark -r sample.pcapng -2 -Y 'tcp.flags.syn==1 && tcp.flags.ack==0 && tcp.completeness==1' \
  -T fields -e ip.dst -e tcp.dstport | sort | uniq -c | sort -rn | head

# 4) 같은 연결 안에서 TTL이 여러 값으로 나타나는 stream
tshark -r sample.pcapng -T fields -e tcp.stream -e ip.src -e ip.ttl \
  | sort -u | awk '{k=$1" "$2; n[k]++} END {for (k in n) if (n[k]>1) print k, n[k]}'

3)번 결과가 하나의 목적지·포트에 집중되고 출발지가 매우 다양하다면 SYN Flood 형태, 하나의 출발지가 여러 포트에 걸쳐 있다면 스캔 형태(142. Port Scan Packet 분석)로 먼저 분류할 수 있습니다. 4)번에서 TTL이 달라지는 연결은 경로 변경일 수도 있지만, 제3자가 주입한 RST가 섞인 경우에도 나타날 수 있어 해당 패킷의 시퀀스 번호가 창 안에 있는지 함께 확인합니다(129. Sequence Number 분석).

📷 [실습 화면 삽입 위치] Analyze → Expert Information 창에서 Warning/Note 항목을 펼쳐 해당 패킷으로 이동한 화면

📷 [실습 화면 삽입 위치] I/O Graph에 tcp.flags.syn==1 && tcp.flags.ack==0과 tcp.flags.syn==1 && tcp.flags.ack==1 두 그래프를 그려 SYN 대비 SYN/ACK 비율이 보이는 화면


5. 보안 관점

관찰정상·장애일 수 있는 경우의도적 트래픽을 의심할 경우
SYN 대량, SYN/ACK 적음서버 다운, 방화벽 차단다수 출발지 → 한 포트 집중 (SYN Flood)
RST 대량서비스 재시작, 로드밸런서 동작연결 중간에 창 밖 시퀀스 RST 반복
규격 위반 Flag거의 없음스캔·장비 회피 시도 (05 영역)
Zero Window 장시간느린 클라이언트, 서버 과부하연결을 붙잡아 자원을 고갈시키는 형태
체크섬 오류송신 측 캡처의 Checksum Offload수신 측 캡처에서도 반복되면 장비 이상

6. SOC 관점

흔적 위치확인할 수 있는 것
패킷 캡처Flag 조합, 분석 플래그, 시퀀스·TTL 값
방화벽 로그비정상 Flag 차단(invalid 상태), 반개방 세션 수
IDS/IPS비정상 Flag·Flood 이벤트 (294. 비정상 Network Traffic 탐지에서 다룸)
서버 지표반개방 연결 수(ss -tan state syn-recv), 연결 거부

관제자가 확인할 질문

  • 이상이 특정 출발지에서 오는가, 특정 목적지로 모이는가?
  • 같은 시간대에 서버·회선 장애 기록이 있는가?
  • 캡처 지점에서 양방향이 모두 보이는가?

오탐 주의: lost_segment, ack_lost_segment는 센서가 패킷을 놓친 경우에도 대량으로 표시됩니다. 송신 호스트에서 캡처하면 체크섬 오프로드 때문에 정상 패킷이 체크섬 오류로 보일 수 있습니다.


7. 핵심 정리

  • 비정상 TCP는 규격 위반·흐름 이상·값 이상·품질 문제로 나눠 봅니다.
  • 규격 위반 Flag는 필드 조건으로 직접 찾고, 흐름 이상은 tcp.completeness와 I/O Graph로 확인합니다.
  • Expert Information과 tcp.analysis.*는 출발점이며, 대부분은 네트워크·캡처 문제일 수 있습니다.
  • 창 밖 RST와 같은 연결 내 TTL 변화는 주입 트래픽 확인의 단서가 됩니다.
  • 스캔 해석은 05 영역, 탐지 규칙은 06 영역으로 연계합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글