네트워크 보안 기초부터 실전까지 2편: OSI 모델과 TCP/IP 보안
Network Security Fundamentals Part 2: OSI Model and TCP/IP Security
서론: 계층별 보안의 중요성
네트워크 보안을 제대로 이해하기 위해서는 먼저 네트워크가 어떻게 동작하는지 알아야 합니다. OSI 7계층 모델과 TCP/IP 모델은 네트워크 통신을 이해하는 핵심 프레임워크이며, 각 계층마다 고유한 보안 위협과 방어 방법이 존재합니다.
이번 편에서는 OSI 모델을 복습하고, 각 계층에서 발생하는 대표적인 공격 기법과 그에 대한 대응 방법을 상세히 다루겠습니다. 또한 실제 네트워크 트래픽을 분석하는 데 필수적인 Wireshark 사용법도 함께 살펴봅니다.
1. OSI 7계층 모델 복습
OSI(Open Systems Interconnection) 모델은 네트워크 통신을 7개의 계층으로 나누어 설명하는 참조 모델입니다.
| 계층 | 이름 | 주요 기능 | 프로토콜/장비 | PDU |
|---|---|---|---|---|
| 7 | 응용 계층 (Application) | 사용자 인터페이스, 애플리케이션 서비스 | HTTP, FTP, SMTP, DNS | Data |
| 6 | 표현 계층 (Presentation) | 데이터 형식 변환, 암호화, 압축 | SSL/TLS, JPEG, ASCII | Data |
| 5 | 세션 계층 (Session) | 세션 설정, 유지, 종료 | NetBIOS, RPC | Data |
| 4 | 전송 계층 (Transport) | 종단 간 통신, 흐름 제어, 오류 복구 | TCP, UDP | Segment |
| 3 | 네트워크 계층 (Network) | 논리적 주소 지정, 라우팅 | IP, ICMP, 라우터 | Packet |
| 2 | 데이터 링크 계층 (Data Link) | 물리 주소 지정, 프레임 생성, 오류 검출 | Ethernet, ARP, 스위치 | Frame |
| 1 | 물리 계층 (Physical) | 비트 전송, 물리적 연결 | 케이블, 허브, 리피터 | Bit |
OSI vs TCP/IP 모델 비교
OSI 7계층 TCP/IP 4계층
+------------+ +------------+
| 응용 | | |
+------------+ | 응용 |
| 표현 | | |
+------------+ +------------+
| 세션 | | |
+------------+ +------------+
| 전송 | | 전송 |
+------------+ +------------+
| 네트워크 | | 인터넷 |
+------------+ +------------+
| 데이터링크 | | |
+------------+ | 네트워크 |
| 물리 | | 인터페이스|
+------------+ +------------+
2. 물리 계층 보안 (Layer 1)
물리 계층은 네트워크의 가장 기초가 되는 계층으로, 실제 하드웨어와 전기 신호를 다룹니다.
2.1 물리 계층의 위협
- 도청 (Wiretapping): 케이블에 물리적으로 접근하여 신호를 가로챔
- 장비 도난/손상: 서버, 라우터, 스위치 등의 물리적 탈취나 파손
- 전자기 간섭 (EMI): 케이블 신호를 방해하거나 도청
- 무선 도청: 무선 신호 수집 및 분석
2.2 물리 계층 보안 대책
- 물리적 접근 통제: 서버실 잠금장치, 출입 카드, CCTV 설치
- 케이블 보호: 차폐 케이블(STP) 사용, 케이블 덕트 설치
- 광섬유 사용: 전자기 간섭에 강하고 도청이 어려움
- 환경 모니터링: 온도, 습도, 침수 감지 센서
- 무선 보안: WPA3 암호화, 숨김 SSID, MAC 필터링
3. 데이터 링크 계층 보안 (Layer 2)
데이터 링크 계층은 같은 네트워크 세그먼트 내에서 노드 간 통신을 담당합니다. MAC 주소를 사용하며, 스위치가 이 계층에서 동작합니다.
3.1 ARP 스푸핑 (ARP Spoofing)
ARP(Address Resolution Protocol)는 IP 주소를 MAC 주소로 변환하는 프로토콜입니다. ARP 스푸핑은 이 프로토콜의 취약점을 악용하는 공격입니다.
공격 원리
정상적인 ARP 동작:
PC-A: "192.168.1.1의 MAC 주소가 뭐야?" (ARP Request - 브로드캐스트)
게이트웨이: "내 MAC 주소는 AA:BB:CC:DD:EE:FF야" (ARP Reply)
ARP 스푸핑 공격:
공격자: "192.168.1.1의 MAC 주소는 내 MAC(XX:XX:XX:XX:XX:XX)야!" (위조된 ARP Reply)
PC-A: 공격자의 MAC을 게이트웨이로 착각 → 모든 트래픽이 공격자에게 전송
공격 결과
- 중간자 공격(MITM) 가능
- 세션 하이재킹
- 트래픽 도청 및 변조
- 서비스 거부(DoS)
대응 방법
- 정적 ARP 테이블: 중요 장비의 MAC 주소를 수동으로 고정
- Dynamic ARP Inspection (DAI): 스위치에서 ARP 패킷 검증
- ARP 감시 도구: arpwatch, XArp 등으로 ARP 테이블 변경 모니터링
- 암호화 통신: HTTPS, VPN 사용으로 도청 시에도 내용 보호
3.2 MAC 플러딩 (MAC Flooding)
스위치의 MAC 주소 테이블(CAM 테이블)을 가짜 MAC 주소로 가득 채워 정상 동작을 방해하는 공격입니다.
공격 원리
정상 스위치 동작:
- MAC 주소 테이블에 학습된 MAC에 따라 특정 포트로만 프레임 전송
- 유니캐스트 통신으로 효율적인 네트워크 운영
MAC 플러딩 공격 시:
1. 공격자가 수천~수만 개의 가짜 MAC 주소 전송
2. 스위치의 CAM 테이블이 가득 참 (일반적으로 8K~32K 엔트리)
3. 스위치가 허브처럼 동작 (모든 포트로 프레임 브로드캐스트)
4. 공격자가 모든 네트워크 트래픽 수신 가능
대응 방법
- 포트 보안 (Port Security): 포트당 허용 MAC 주소 수 제한
- 802.1X 인증: 네트워크 접속 전 사용자/장비 인증
- VLAN 세분화: 브로드캐스트 도메인 분리
# Cisco 스위치 포트 보안 설정 예시
Switch(config)# interface FastEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security violation shutdown
Switch(config-if)# switchport port-security mac-address sticky
3.3 VLAN 호핑 (VLAN Hopping)
다른 VLAN으로 무단 접근하는 공격으로, 스위치 스푸핑과 더블 태깅 두 가지 방법이 있습니다.
- 스위치 스푸핑: 공격자가 스위치로 위장하여 트렁크 포트 연결 시도
- 더블 태깅: 두 개의 VLAN 태그를 사용하여 다른 VLAN으로 패킷 전송
대응 방법
- 사용하지 않는 포트 비활성화
- Access 포트에서 DTP(Dynamic Trunking Protocol) 비활성화
- Native VLAN을 사용하지 않는 VLAN으로 변경
- 명시적으로 트렁크 포트 구성
4. 네트워크 계층 보안 (Layer 3)
네트워크 계층은 IP 주소를 사용한 논리적 주소 지정과 라우팅을 담당합니다.
4.1 IP 스푸핑 (IP Spoofing)
발신지 IP 주소를 위조하여 자신의 신원을 숨기거나 다른 호스트로 위장하는 공격입니다.
공격 용도
- 익명성 확보: 공격 출처 은폐
- 인증 우회: IP 기반 접근 제어 우회
- DDoS 공격: 반사/증폭 공격에서 피해자 IP로 위장
- 세션 하이재킹: 기존 연결을 가로챔
IP 스푸핑 예시 (DDoS 반사 공격):
1. 공격자 → DNS 서버 (발신: 피해자 IP, 목적지: DNS 서버)
"DNS 조회 요청"
2. DNS 서버 → 피해자 (발신: DNS 서버, 목적지: 피해자 IP)
"DNS 응답 (요청보다 훨씬 큰 크기)"
결과: 피해자는 요청하지 않은 대량의 응답 트래픽 수신
대응 방법
- Ingress/Egress 필터링: 비정상 출발지 IP를 가진 패킷 차단
- BCP38/BCP84: ISP 레벨에서 스푸핑 방지 적용
- uRPF (Unicast Reverse Path Forwarding): 라우터에서 소스 IP 검증
- 암호화 인증: IP 주소가 아닌 암호학적 방법으로 인증
4.2 ICMP 공격
ICMP(Internet Control Message Protocol)는 네트워크 진단 및 오류 보고에 사용되지만, 공격에 악용될 수 있습니다.
주요 ICMP 공격 유형
| 공격 유형 | 설명 | 영향 |
|---|---|---|
| Ping Flood | 대량의 ICMP Echo Request 전송 | 대역폭 소진, DoS |
| Ping of Death | 비정상적으로 큰 ICMP 패킷 전송 | 시스템 충돌 (구형 시스템) |
| Smurf Attack | 브로드캐스트 주소로 스푸핑된 Ping | 증폭된 DDoS |
| ICMP Redirect | 악의적인 라우팅 정보 주입 | 트래픽 가로채기 |
| ICMP Tunneling | ICMP 패킷에 데이터 은닉 | 방화벽 우회, 데이터 유출 |
대응 방법
- ICMP 속도 제한: ICMP 트래픽에 rate limiting 적용
- 불필요한 ICMP 유형 차단: Redirect, Timestamp 등 차단
- 브로드캐스트 ping 비활성화: Smurf 공격 방지
- 심층 패킷 검사(DPI): ICMP 터널링 탐지
# Linux iptables를 이용한 ICMP 속도 제한
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# ICMP Redirect 무시 설정
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
5. 전송 계층 보안 (Layer 4)
전송 계층은 TCP와 UDP 프로토콜을 통해 종단 간 통신을 제공합니다.
5.1 TCP SYN Flood
TCP 3-way 핸드셰이크의 취약점을 악용한 대표적인 DoS 공격입니다.
TCP 3-Way Handshake 복습
정상적인 TCP 연결 수립:
클라이언트 서버
| |
|------- SYN ------->| (연결 요청)
| |
|<---- SYN-ACK ------| (연결 수락)
| |
|------- ACK ------->| (확인)
| |
|==== 연결 수립 =====|
SYN Flood 공격 원리
SYN Flood 공격:
공격자 서버
| |
|------- SYN ------->| (스푸핑된 IP로 SYN 전송)
|<---- SYN-ACK ------| (서버가 응답 대기 - Half-Open 연결)
|------- SYN ------->|
|<---- SYN-ACK ------|
|------- SYN ------->|
|<---- SYN-ACK ------|
...
(수천~수만 개의 Half-Open 연결 생성)
결과: 서버의 연결 테이블이 가득 참 → 정상 사용자 연결 불가
대응 방법
- SYN Cookies: SYN 큐를 사용하지 않고 암호화된 쿠키로 연결 관리
- SYN 프록시: 방화벽/로드밸런서에서 핸드셰이크 완료 후 서버에 전달
- Rate Limiting: IP당 SYN 패킷 수 제한
- 백로그 큐 증가: Half-Open 연결 허용 수 증가
- 타임아웃 감소: Half-Open 연결 유지 시간 단축
# Linux에서 SYN Cookies 활성화
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# SYN 백로그 큐 증가
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# SYN-ACK 재시도 횟수 감소
echo 2 > /proc/sys/net/ipv4/tcp_synack_retries
5.2 포트 스캔 (Port Scanning)
포트 스캔은 대상 시스템에서 열려 있는 포트와 실행 중인 서비스를 파악하는 기법입니다. 정찰 단계에서 주로 사용됩니다.
주요 스캔 유형
| 스캔 유형 | 방법 | 특징 |
|---|---|---|
| TCP Connect Scan | 완전한 TCP 연결 수립 | 정확하지만 로그에 기록됨 |
| SYN Scan (Half-Open) | SYN만 전송, ACK 대신 RST | 빠르고 은밀함 |
| FIN/NULL/Xmas Scan | 비정상 플래그 조합 사용 | 방화벽 우회 시도 |
| UDP Scan | UDP 패킷 전송 | 느리지만 UDP 서비스 탐지 |
| ACK Scan | ACK 플래그만 전송 | 방화벽 규칙 매핑 |
# Nmap을 이용한 다양한 스캔 예시
# TCP Connect 스캔
nmap -sT 192.168.1.100
# SYN 스캔 (관리자 권한 필요)
nmap -sS 192.168.1.100
# UDP 스캔
nmap -sU 192.168.1.100
# 서비스 버전 탐지
nmap -sV 192.168.1.100
# OS 탐지
nmap -O 192.168.1.100
# 전체 포트 스캔
nmap -p- 192.168.1.100
대응 방법
- 불필요한 포트 닫기: 사용하지 않는 서비스 비활성화
- 방화벽 규칙: 허용된 IP/포트만 통과
- IDS/IPS: 스캔 패턴 탐지 및 차단
- 포트 노킹: 특정 시퀀스로 포트 열기
- 허니팟: 가짜 서비스로 공격자 유인 및 분석
5.3 기타 전송 계층 공격
- 세션 하이재킹: TCP 시퀀스 번호를 예측하여 기존 세션 탈취
- TCP RST 공격: 위조된 RST 패킷으로 연결 강제 종료
- UDP Flood: 대량의 UDP 패킷으로 대역폭 소진
6. 응용 계층 보안 (Layer 7)
응용 계층은 사용자와 직접 상호작용하는 계층으로, 다양한 프로토콜과 애플리케이션이 동작합니다.
6.1 주요 응용 계층 위협
- SQL 인젝션: 데이터베이스 쿼리 조작
- XSS (Cross-Site Scripting): 악성 스크립트 삽입
- CSRF (Cross-Site Request Forgery): 사용자 권한 악용
- DNS 공격: DNS 스푸핑, DNS 증폭, 캐시 포이즈닝
- HTTP 공격: Slowloris, HTTP Flood
- 이메일 공격: 피싱, 스팸, 악성 첨부파일
6.2 대응 방법
- WAF (Web Application Firewall): 웹 애플리케이션 공격 차단
- 입력 검증: 모든 사용자 입력 검증 및 이스케이프
- DNSSEC: DNS 응답의 무결성 검증
- 이메일 보안: SPF, DKIM, DMARC 적용
- HTTPS 강제: 모든 통신 암호화
7. Wireshark를 이용한 패킷 분석 기초
Wireshark는 가장 널리 사용되는 오픈소스 패킷 분석 도구입니다. 네트워크 문제 해결, 보안 분석, 프로토콜 학습에 필수적인 도구입니다.
7.1 Wireshark 기본 인터페이스
Wireshark 메인 화면 구성:
+--------------------------------------------------+
| 메뉴 바 / 도구 바 |
+--------------------------------------------------+
| 필터 표시줄 (Display Filter) |
+--------------------------------------------------+
| |
| 패킷 목록 창 (Packet List Pane) |
| - 캡처된 모든 패킷의 요약 정보 |
| |
+--------------------------------------------------+
| |
| 패킷 상세 창 (Packet Details Pane) |
| - 선택된 패킷의 프로토콜 계층별 상세 정보 |
| |
+--------------------------------------------------+
| |
| 패킷 바이트 창 (Packet Bytes Pane) |
| - 선택된 패킷의 원시 데이터 (16진수) |
| |
+--------------------------------------------------+
7.2 기본 디스플레이 필터
| 필터 | 설명 |
|---|---|
ip.addr == 192.168.1.100 |
특정 IP 관련 패킷 |
tcp.port == 80 |
특정 TCP 포트 |
http |
HTTP 프로토콜만 |
dns |
DNS 트래픽만 |
tcp.flags.syn == 1 |
SYN 플래그가 설정된 패킷 |
arp |
ARP 패킷만 |
icmp |
ICMP 패킷만 |
!(arp or dns or icmp) |
ARP, DNS, ICMP 제외 |
tcp.analysis.flags |
TCP 분석 플래그 (재전송 등) |
frame contains "password" |
특정 문자열 포함 패킷 |
7.3 보안 분석 활용 예시
ARP 스푸핑 탐지
# ARP 패킷 필터링
필터: arp
# 의심스러운 패턴 찾기
- 같은 IP에 대해 다른 MAC 주소가 응답
- 비정상적으로 많은 ARP Reply
- Gratuitous ARP 패킷 다수 발생
# 유용한 필터
arp.duplicate-address-detected
arp.opcode == 2 # ARP Reply만
SYN Flood 탐지
# SYN 패킷 필터링
필터: tcp.flags.syn == 1 && tcp.flags.ack == 0
# 분석 포인트
- 동일 목적지로 대량의 SYN 패킷
- 다양한 출발지 IP (스푸핑 징후)
- SYN-ACK 없이 SYN만 지속
# 통계 확인
Statistics > Conversations > TCP 탭
Statistics > Endpoints
포트 스캔 탐지
# 다양한 포트로의 연결 시도 확인
필터: ip.src == [의심 IP] && tcp.flags.syn == 1
# 분석 포인트
- 짧은 시간 내 많은 포트로 SYN 전송
- 연속적인 포트 번호 패턴
- RST 응답이 많음 (닫힌 포트)
# 유용한 기능
Statistics > Conversations
Statistics > Protocol Hierarchy
7.4 실습 팁
- 캡처 필터 vs 디스플레이 필터: 캡처 필터는 저장 시 적용, 디스플레이 필터는 표시 시 적용
- Follow TCP Stream: 특정 연결의 전체 대화 내용 확인
- Expert Information: 자동 분석된 경고 및 오류 확인
- 프로토콜 통계: Statistics 메뉴에서 다양한 분석 가능
- 저장 및 공유: pcap/pcapng 형식으로 저장하여 분석 공유
주의: Wireshark를 이용한 패킷 캡처는 반드시 허가된 네트워크에서만 수행해야 합니다. 무단 패킷 캡처는 불법입니다.
8. 계층별 보안 요약
| 계층 | 주요 위협 | 핵심 대응 |
|---|---|---|
| 물리 (1) | 도청, 장비 손상 | 물리적 접근 통제, 차폐 케이블 |
| 데이터링크 (2) | ARP 스푸핑, MAC 플러딩 | DAI, 포트 보안, 802.1X |
| 네트워크 (3) | IP 스푸핑, ICMP 공격 | Ingress 필터링, uRPF, ICMP 제한 |
| 전송 (4) | SYN Flood, 포트 스캔 | SYN Cookies, IDS/IPS, 방화벽 |
| 응용 (7) | SQL 인젝션, XSS, 피싱 | WAF, 입력 검증, HTTPS |
결론 및 다음 편 예고
이번 편에서는 OSI 7계층 모델의 각 계층별 보안 위협과 대응 방법을 살펴보았습니다. 각 계층마다 고유한 취약점이 존재하며, 효과적인 보안을 위해서는 모든 계층에 대한 종합적인 방어가 필요합니다.
특히 ARP 스푸핑, IP 스푸핑, TCP SYN Flood와 같은 공격은 실제 현장에서 자주 발생하는 위협이므로, 원리를 정확히 이해하고 적절한 대응책을 마련하는 것이 중요합니다. Wireshark와 같은 패킷 분석 도구를 활용하면 이러한 공격을 탐지하고 분석하는 능력을 키울 수 있습니다.
다음 편에서는 방화벽의 종류와 구성, IDS/IPS 시스템, 그리고 네트워크 접근 제어(NAC)에 대해 다룰 예정입니다. 실제 네트워크 보안 장비들이 어떻게 동작하고 어떻게 구성해야 하는지 실전적인 내용을 다루겠습니다.
실습 권장: 가상 환경(VirtualBox, VMware)을 구성하여 Wireshark로 직접 패킷을 캡처하고 분석해보세요. 이론만으로는 얻을 수 없는 실전 감각을 키울 수 있습니다.