📄 2025.11.28 (Day 25) [TCP/IP 네트워크 보안: IPv4 프로토콜 & Wireshark 패킷 분석]
1. 핵심 개념 정리 (Concepts & Theory)
| # | 핵심 개념 | 간결한 설명 |
|---|---|---|
| 1 | OSI 7계층 vs TCP/IP 모델 | OSI는 7계층(물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용)으로 이론적 모델이며, TCP/IP는 4계층(네트워크 접근, 인터넷, 전송, 응용)으로 실제 인터넷 프로토콜 스택입니다. 각 계층은 **캡슐화(Encapsulation)**를 통해 상위 계층 데이터를 하위 계층 헤더로 감쌉니다. |
| 2 | IPv4 주소 체계 | 32비트 주소(8비트씩 4개 옥텟)로 구성되며, 네트워크부와 호스트부로 나뉩니다. 클래스(A, B, C, D, E)와 서브넷 마스크를 통해 네트워크를 구분합니다. 사설 IP(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)는 NAT를 통해 공인 IP로 변환됩니다. |
| 3 | IPv4 헤더 구조 | Version(4bit), Header Length(4bit), TOS(8bit), Total Length(16bit), Identification(16bit), Flags(3bit), Fragment Offset(13bit), TTL(8bit), Protocol(8bit), Header Checksum(16bit), Source IP(32bit), Destination IP(32bit), Options(가변) 필드로 구성됩니다. |
| 4 | Wireshark 패킷 분석 | Wireshark는 네트워크 패킷을 실시간으로 캡처하고 분석하는 도구입니다. 캡처 필터(BPF 문법)로 원하는 패킷만 수집하고, 디스플레이 필터로 캡처된 패킷에서 특정 조건을 검색합니다. 각 계층별 헤더를 시각적으로 확인할 수 있습니다. |
2. 실습 코드 & 응용 (Practice & Code Walkthrough)
(A) 핵심 개념 실습
IPv4 주소 계산 실습:
Wireshark 캡처 필터 (BPF 문법):
Wireshark 디스플레이 필터:
리눅스에서 네트워크 명령어:
# 네트워크 인터페이스 확인
ip addr show
ifconfig
# 네트워크 연결 상태 확인
netstat -tunap
ss -tunap
# 패킷 캡처 (tcpdump)
tcpdump -i eth0 # eth0 인터페이스 모니터링
tcpdump -i eth0 port 80 # 80번 포트만
tcpdump -i eth0 -w capture.pcap # 파일로 저장
tcpdump -r capture.pcap # 캡처 파일 읽기
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0' # SYN 패킷만
(B) 실습 결과 및 분석
IPv4 헤더 분석 (Wireshark에서 확인한 내용):
주요 필드 분석:
- TTL (Time to Live): 64 → 일반적으로 Linux/Unix는 64, Windows는 128로 설정. 비정상적으로 낮은 TTL 값은 루프나 변조를 의심할 수 있습니다.
- Flags - Don’t Fragment: 설정 시 패킷이 MTU보다 크면 ICMP “Fragmentation Needed” 메시지를 받습니다. Path MTU Discovery에 사용됩니다.
- Protocol: 6 = TCP, 17 = UDP, 1 = ICMP. 상위 계층 프로토콜을 식별합니다.
비정상 패킷 탐지 예시:
3. 실무/보안 관점 분석 (Insight & Scenario Mapping)
| 분야 | 적용 시나리오 |
|---|---|
| SOC / 관제 | 실시간 트래픽 모니터링: IDS/IPS에서 Wireshark와 유사한 패킷 분석 엔진(Suricata, Snort)을 사용하여 비정상 패턴을 탐지합니다. 베이스라인 트래픽을 설정하고, 통계적 이상(급증하는 SYN 패킷, 비정상 TTL, 알려지지 않은 프로토콜)을 자동 알림합니다. |
| CERT / 사고 대응 | 포렌식 패킷 분석: 침해 사고 시 네트워크 탭(SPAN/Mirror Port)이나 방화벽에서 수집한 PCAP 파일을 Wireshark로 분석합니다. 공격 타임라인 재구성: 초기 침투 패킷 식별 → C&C 통신 추적 → 데이터 유출 탐지. DNS 쿼리 분석(dns.qry.name)으로 DGA(Domain Generation Algorithm) 기반 멀웨어 탐지. |
| 네트워크 운영 | 성능 최적화 및 문제 해결: tcp.analysis.retransmission 필터로 재전송 패킷을 찾아 네트워크 품질 문제를 식별합니다. 서브넷 설계: 부서별/보안 등급별로 서브넷을 분리하여 VLAN과 결합, 방화벽 규칙으로 Micro-Segmentation 구현. (DMZ, Internal, Management 서브넷 분리로 측면 이동 차단) |
4. 개인 인사이트 및 다음 단계 (Reflection & Next Steps)
배운 점/느낀 점:
- 네트워크는 보안의 기초 중 기초입니다. 모든 통신은 네트워크를 통해 이루어지므로, IP 헤더와 TCP/UDP 헤더를 읽을 수 있는 능력은 공격과 방어 모두의 필수 역량입니다.
- Wireshark의 강력함: 교재에서 배운 이론적 개념(OSI 7계층, IPv4 헤더)을 실제 패킷으로 직접 확인하니 훨씬 명확하게 이해되었습니다. 특히 3-Way Handshake를 패킷 단위로 보면서 TCP의 연결 지향적 특성을 체감했습니다.
- 서브넷의 중요성: 단순히 IP 주소를 나누는 것이 아니라, 보안 경계를 만드는 것임을 깨달았습니다.
심화 방향:
- TCP/UDP 심화: TCP의 흐름 제어, 혼잡 제어, UDP의 특성과 활용 사례 학습
- 공격 시나리오 재현: 실습 환경에서 SYN Flood, ARP Spoofing, DNS Spoofing 등의 공격을 직접 재현하고 Wireshark로 탐지 시그니처 개발
- IDS/IPS 룰 작성: Suricata나 Snort 룰을 작성하여 특정 공격 패턴을 자동 탐지하는 시스템 구축