23. OSI 7계층과 TCP/IP 4계층 — 계층으로 읽는 패킷

changseop lee·2026년 9월 26일

📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 23편
이전 글: 22. TCP/IP 4계층 · 다음 글: 24. Encapsulation
선행 글(리눅스 시스템 기초): Linux 네트워크 구조 · IP / TCP / UDP / Port

1. 왜 알아야 하는가

보안관제에서 보는 모든 증거는 특정 계층의 정보입니다.

  • 방화벽 로그 → 주로 L3·L4 (IP, 포트, 허용/차단)
  • IDS Alert → L3~L7 (헤더 + 페이로드 시그니처)
  • Wireshark/tcpdump → L2~L7 전체 (단, 암호화된 내용은 제외)
  • 웹서버·DNS 로그 → L7

계층을 모르면 "이 로그로 무엇을 알 수 있고, 무엇은 알 수 없는가"를 판단할 수 없습니다.
예를 들어 방화벽 로그에 외부 IP → 내부 서버:443 허용이 찍혀 있어도, 그 안에서 어떤 요청이 오갔는지는 방화벽 로그만으로 알 수 없습니다. 다음 계층의 증거(웹 로그, IDS, 패킷)를 찾아야 합니다.

이 글은 이후 모든 시리즈(포트·프로토콜 → Wireshark → 장비 → 스캔 → 방화벽 → IDS → 관제 통합)의 공통 지도 역할을 합니다.


2. 핵심 개념

2-1. OSI 7계층과 TCP/IP 4계층 대응

OSI 7계층TCP/IP 4계층데이터 단위(PDU)식별자대표 프로토콜관제에서 보는 곳
7 응용 · 6 표현 · 5 세션응용데이터(메시지)URL, 도메인, 계정HTTP, DNS, SSH, TLS, SMTP웹·DNS 로그, IDS 페이로드
4 전송전송세그먼트(TCP) / 데이터그램(UDP)포트TCP, UDP방화벽 로그, ss
3 네트워크인터넷패킷IP 주소IP, ICMP방화벽·라우터 로그
2 데이터링크 · 1 물리네트워크 접근프레임 / 비트MAC 주소Ethernet, ARPARP 테이블, 스위치 MAC 테이블

TLS는 교재에 따라 표현·세션 계층 역할로 설명되기도 합니다. TCP/IP 모델에서는 응용 계층에 묶어 보는 것이 일반적입니다.

2-2. 두 모델을 왜 같이 쓰는가

구분OSI 7계층TCP/IP 4계층
성격설명·표준화를 위한 참조 모델실제 인터넷이 동작하는 구현 모델
실무 사용장비·공격 분류 용어 (L2 스위치, L3 라우터, L4 방화벽, L7 WAF)패킷 구조 해석, 프로토콜 동작

실무에서는 "몇 계층 장비/공격인가"는 OSI 번호로 말하고, 실제 패킷은 TCP/IP 구조로 읽는다고 생각하면 됩니다.


3. 동작 원리 — 캡슐화와 역캡슐화

보내는 쪽은 위에서 아래로 헤더를 붙이고(캡슐화), 받는 쪽은 아래에서 위로 헤더를 떼어냅니다(역캡슐화).

[송신 측]
응용   : GET / HTTP/1.1 ...                       ← 데이터
   ↓  + TCP 헤더 (Src Port 51544 → Dst Port 80)
전송   : [TCP | 데이터]                          ← Segment
   ↓  + IP 헤더 (192.168.10.20 → 서버 IP)
인터넷 : [IP | TCP | 데이터]                     ← Packet
   ↓  + Ethernet 헤더 (내 MAC → 게이트웨이 MAC) + FCS
링크   : [Eth | IP | TCP | 데이터 | FCS]         ← Frame
   ↓
물리   : 0101… (전기/광 신호)

[수신 측] 물리 → 링크 → 인터넷 → 전송 → 응용 (헤더를 하나씩 제거)

꼭 기억할 세 가지:

  1. MAC 주소는 구간(hop)마다 바뀌고, IP 주소는 목적지까지 유지됩니다. (NAT 구간 제외)
    → 외부 서버로 가는 프레임의 목적지 MAC은 서버가 아니라 게이트웨이의 MAC입니다.
  2. 포트는 "어느 프로세스(서비스)로 전달할지"를 정합니다. → 02. 포트 · 프로토콜 분석에서 다룹니다.
  3. 장비는 자기 계층까지의 헤더만 봅니다.
스위치(L2)        : Ethernet 헤더(MAC)까지
라우터(L3)        : + IP 헤더
Stateful 방화벽   : + TCP/UDP 헤더(포트, 연결 상태)
IDS/IPS · WAF(L7) : + 페이로드(애플리케이션 데이터)

→ 이것이 "방화벽 로그에는 없고 IDS Alert에는 있는 정보"가 생기는 이유입니다.


4. 실제 명령어 / 실습

실습 환경: Linux VM 1대 (Rocky Linux 또는 Ubuntu), 인터넷 연결.
ens33은 예시 인터페이스 이름입니다. ip -br link로 확인한 본인 인터페이스 이름으로 바꿔서 실행하세요.

4-1. 계층별 내 정보 확인

# L2 : 인터페이스와 MAC 주소
ip -br link

# L3 : IP 주소와 서브넷
ip -br addr

# L3 : 외부(8.8.8.8)로 가려면 어떤 게이트웨이를 거치는가
ip route get 8.8.8.8

# L2 : 게이트웨이의 MAC 주소 (ARP 캐시)
ip neigh

📷 [실습 화면 삽입] ip -br addr, ip route get 8.8.8.8, ip neigh 실행 결과

4-2. 한 번의 HTTP 요청을 계층별로 캡처

# 터미널 1 : -e 옵션으로 L2(MAC) 헤더까지 출력, 6개만 캡처
sudo tcpdump -i ens33 -nn -e -c 6 'tcp port 80'

# 터미널 2 : 평문 HTTP 요청 발생
curl -s -o /dev/null http://example.com

4-3. 같은 트래픽을 Wireshark로 저장해 계층 구조 확인

sudo tcpdump -i ens33 -nn -w layers.pcap 'tcp port 80'
# 다른 터미널에서 curl 실행 후 Ctrl+C

layers.pcap을 Wireshark로 열고 HTTP 요청 패킷(GET /)을 선택합니다.

📷 [실습 화면 삽입] Wireshark Packet Details 창 — Frame / Ethernet II / Internet Protocol Version 4 / Transmission Control Protocol / Hypertext Transfer Protocol 5단 구조가 보이는 화면


5. 결과 확인

tcpdump -e 출력 한 줄은 대략 아래 형식입니다. (주소·포트는 예시 값이며, 실제 값은 환경마다 다릅니다.)

00:0c:29:aa:bb:cc > 00:50:56:dd:ee:ff, ethertype IPv4 (0x0800), length 74:
192.168.10.20.51544 > 93.184.215.14.80: Flags [S], seq 1234567890, win 64240, length 0
출력 부분계층의미
00:0c:29:aa:bb:cc > 00:50:56:dd:ee:ffL2출발지 MAC → 목적지 MAC
ethertype IPv4 (0x0800)L2→L3프레임 안에 IPv4 패킷이 들어 있음
192.168.10.20 > 93.184.215.14L3출발지 IP → 목적지 IP
.51544 > .80L4출발지 포트(임시 포트) → 목적지 포트(HTTP)
Flags [S]L4TCP SYN — 연결 시작 (3-Way Handshake 첫 단계)

확인 체크리스트

  • tcpdump의 목적지 MAC이 ip neigh에 나온 게이트웨이 MAC과 같은가? (같다면 1번 원리 확인)
  • 목적지 IP는 외부 서버 IP인가?
  • 출발지 포트는 매 연결마다 바뀌고, 목적지 포트는 80으로 고정인가?
  • Wireshark에서 5단 계층 구조를 펼쳐 각 헤더 필드를 확인했는가?

6. 패킷 / 로그 분석 — 같은 통신, 계층별로 다른 증거

하나의 통신을 여러 장비가 각자 볼 수 있는 계층만큼 기록합니다.

증거 출처주 계층알 수 있는 것알 수 없는 것
ARP 테이블 / 스위치 MAC 테이블L2같은 네트워크 안의 어떤 장비(MAC)인지외부 공격자의 실제 위치
방화벽 로그L3~L4Src/Dst IP, Port, 허용·차단요청 내용(URL, 페이로드)
tcpdump / WiresharkL2~L7헤더 전체 + 평문 페이로드TLS로 암호화된 내용
IDS/IPS Alert (Snort, Suricata)L3~L7룰(시그니처)과 일치한 패턴룰에 없는 행위
웹서버 / DNS 로그L7URL, 상태코드, 질의 도메인네트워크 경로, 차단 여부

분석 흐름 예시

방화벽 로그: 외부 IP → 내부 웹서버:80 허용       (L3~L4 확인)
   ↓  "무엇을 요청했는가?" → 방화벽 로그로는 알 수 없음
IDS Alert / 웹 로그: 요청 URL·페이로드 확인      (L7 확인)
   ↓  "실제로 어떤 패킷이 오갔는가?"
패킷(pcap): 요청·응답 전체 확인                  (L2~L7 검증)

7. 보안관제 관점

7-1. 계층별 대표 공격 (이후 시리즈에서 하나씩 다룸)

계층공격 예시주로 보는 증거
L2ARP SpoofingARP 테이블, 패킷
L3ICMP 스윕, IP 스푸핑방화벽 로그, 패킷
L4포트 스캔, SYN Flood방화벽 로그, IDS Alert
L7SQL Injection, 웹셸, DNS 터널링웹·DNS 로그, IDS Alert, 패킷

7-2. Alert를 받았을 때 스스로 던질 질문

  1. 이 증거는 몇 계층 정보인가?
  2. 이 계층에서 보이지 않는 정보는 무엇인가?
  3. 그 정보는 어느 장비·로그에서 확인할 수 있는가?

7-3. 주의할 점

  • NAT 구간이 있으면 방화벽 로그의 IP와 내부 서버 로그의 IP가 다를 수 있습니다. → 04. 네트워크 장비 실습에서 확인
  • TLS 트래픽은 패킷을 잡아도 내용이 보이지 않습니다. 이때는 SNI, 인증서, 접속 패턴 같은 메타데이터를 봅니다. → 03. Wireshark 패킷 분석에서 확인

8. 핵심 정리

  • OSI 7계층은 분류 용어로, TCP/IP 4계층은 실제 패킷 구조로 사용한다.
  • 데이터는 데이터 → 세그먼트 → 패킷 → 프레임 순서로 캡슐화된다.
  • MAC은 구간마다 바뀌고, IP는 목적지까지 유지된다. (NAT 제외)
  • 장비는 자기 계층까지만 보므로, 로그마다 보이는 정보가 다르다.
  • 관제 분석은 "이 증거는 몇 계층인가 → 부족한 계층의 증거는 어디 있는가"를 따라가는 과정이다.

다음 글: 02. Ethernet 프레임과 MAC 주소 · ARP 동작 원리

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

0개의 댓글