OSI 7계층, TCP/IP, 스니핑

김경윤·2025년 3월 28일

정보보안

목록 보기
4/10

1. OSI 7계층

  • OSI 7계층 모델
    • 네트워크의 동작 과정을 설명하는 가장 대표적인 모델
    • 국제표준화기구인 ISO(International Organization for Standardization)에서 제정
    • 실제 구현된 시스템이 아니라, 일종의 개념적 모델
      • TCP/IP는 실제 구현이 되어 실질적인 표준처럼 사용되는 네트워크 모델

• 통신 프로토콜(Protocol)

• 네트워크를 통해 데이터를 주고받는 과정에 대한 약속
• OSI 7계층 모델은 통신 프로토콜을 7개의 세부 프로토콜로 나누어 설명


• 7계층: 응용 계층

  • 응용 계층(Application Layer)
    • 사용자에게 인터페이스(UI: User Interface)를 제공하는 계층
      • 예1) 메일을 보내고 받는 MS사의 아웃룩(Outlook) 프로그램
      • 예2) 웹 브라우저, FTP 프로그램 등

6계층: 표현 계층(Presentation Layer)

  • 응용 계층(7계층)에서 다루는 데이터의 형식을 변환(Format Conversion)하는 계층
    • 암호화·복호화 혹은 인코딩·디코딩 등의 데이터 형식의 변환을 수행하는 계층
      - 예) 이메일 메시지: MIME(Multipurpose Internet Mail Extensions) 포맷으로 인코딩 (Encoding) 되어
      있음 → 일반 텍스트 포맷으로 변환


• 5계층: 세션 계층(Session Layer)

• 두 개의 응용 프로세스 사이에 통신(세션)을 관리하는 계층


• 4계층: 전송 계층(Transport Layer)

  • 데이터를 주고받을 때 데이터의 유실(Loss)이 없도록 보 장해주는 계층
  • 흐름 제어(Flow control)
    • 양 끝단(End-to-end)에서 전달받은 데이터의 오류를 검출
      • 만약 오류가 있다고 판단되면 재전송을 요청 → 데이터의 유실 방지


• 전송 계층의 상하 관계의 특성

  • 상위 계층 (5계층, L5)은 하위 계층 (4계층, L4)이 하는 일에 관여하지 않음
    • 전송 계층의 상하 관계
  • 5계층(L5)의 1개 메시지 → 2개의 4계층(L4) 세그먼트(Segment)로 쪼개짐
    • 세그먼트: 4계층에서 다루는 데이터의 단위
      • 네트워크 전송에 적절한 크기로 쪼갠 것 + 헤더(Header) 정보
        • 페이로드(Payload): 상위 계층의 데이터
  • 캡슐화(Encapsulation): 하위 계층에서 상위 계층의 페이로드에 헤더 정보를 붙이는 것
    • E.g. 상위 계층- 5계층, 하위 계층- 4계층
    • 4계층의 헤더: 흐름 제어를 위한 정보 포함
      • 데이터의 오류 검출, 만약 오류가 있다고 판단되면 재전송 요청


• 전송 계층의 대표적인 예: TCP vs. UDP

  • TCP(Transmission Control Protocol)
  • UDP(User Datagram Protocol)
  • 전송 계층에서 하는 역할인 흐름 제어를 TCP만 하고 UDP에서는 하지 않음
    • UDP는 신뢰성이 떨어지는 약점이 있지만 속도가 상대적으로 빠름
      • 예) 인터넷 실시간 영상 중계 등


• 3계층: 네트워크 계층(Network Layer)

  • 라우팅(Routing)을 처리하는 계층
    • 라우팅: 데이터를 전달할 때 어떤 경로로 데이터를 보낼지 경로를 선택하는 것
  • 여러 개의 노드가 복잡하게 연결된 네트워크에서 최적의 전달 경로가 정해질 수 있도록 여러 가지 기능을 제공

• 3계층: 네트워크 계층 (계속)

  • 3계층의 캡슐화
    • 세그먼트(4계층의 데이터)에 라우팅과 관련된 헤더 정 보가 추가
    • 패킷(Packet): 3계층의 데이터 단위
  • 패킷의 헤더: 최적의 경로 선택를 위한 기초 자료 저장
    • 각 노드 사이의 전송 속도를 저장: 노드 사이의 전송 비용에 대한 추정치
  • 기존에 구해진 경로 상의 노드가 고장이 발생 → 대체 경로를 찾아서 전송
    • 네트워크 계층의 대표적인 예: IP(Internet Protocol) 프로토콜


  • 단말 사이의 신뢰성 있는 전송을 보장하는 계층
  • 포인트 투 포인트(Point-to-Point) 간 신뢰성을 보장하는 계층
    • 1계층인 물리 계층에서 발생할 수 있는 오류를 찾아내고 이를 수정
  • 에러를 검출하는 기법: 패리티 검사 (Parity Check) 등의 기법이 사용
  • 2계층(L2)에서의 데이터 캡슐화
    • 프레임(Frame): 2계층에서 전달하는 데이터의 단위
      • 3계층의 페이로드인 패킷 앞·뒤에 헤더와 테일을 덧붙임
  • 2계층의 예: 이더넷(Ethernet), 토큰 링(Token Ring) 등


1계층: 물리 계층(Physical Layer)

  • 단말과 단말 사이를 실제 물리적으로 연결
    • 예) 광케이블, 구리 케이블 또는 무선 등
  • 단말(Terminal)
    • 네트워크 사이를 연결해주는 관문 역할을 하는 노드(3계층) + 네트워크에 참여한 모든 단말을 포함
    • 예) PC 또는 스마트폰 등


2. TCP/IP 프로토콜

• TCP/IP 개요

  • 인터넷을 움직이게 하는 핵심 통신 프로토콜
  • TCP/IP와 OSI 7계층 모델의 관계


• IP 프로토콜의 이해

  • IP: 네트워크 계층에 해당하는 통신 프로토콜, 라우팅(Routing) 담당

  • 각 노드(라우터)의 주소: 3계층의 IP 주소
  • 라우팅 테이블(Routing Table): 각 노드 사이의 연결 정보를 저장한 테이블
    • 두 연결 사이의 전송 비용(Cost) 저장
    • 전송 속도 or 단순히 거쳐야 하는 라우터 개수(Hop Count)
      • 윈도우 CMD에서 ‘route PRINT’로 확인

• IP 주소(Internet Protocol Address): 네트워크상에서 유일한 주소

  • IP 버전 4(IPv4, IP Version 4) 주소

    • 특별한 언급 없이 IP 주소라고 하면 IPv4
    • IP 주소의 크기 및 범위: 32비트(4바이트)
    • 8비트씩 온점(.)을 찍어 끊어서 표시: 0.0.0.0부터 255.255.255.255
    • 약 42억 개의 주소 할당이 ‘11년 2월 4일 종료 → 신규 주소 할당 중지
  • IP 버전 6(IPv6, IP Version 6) 주소

    • IP 주소의 크기: 128비트(16바이트) → IPv4 주소 개수의 296배의 크기

    • 유비쿼터스 환경에서 사물마다 주소를 부여할 수 있는 수준

    • 16진수 여덟 개를 쓰고 각각 쌍점( : ) 기호로 구분

      • 예) 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
    • IPv4와 IPv6는 호환이 되지 않음: IPv6 교체 비용이 높아서 적용이 더딘 상황


• IP 주소 (계속)

  • IP 주소의 클래스(Class)
    • A부터 E까지 모두 5개
    • 일반적으로 사용되는 클래스: A, B, C
    • 특수 목적 클래스 D와 E
      • D: 멀티 캐스팅(Multi-casting)용
      • E: 주로 연구용
  • IP주소 클래스에 따른 값의 범위


• IP 주소 (계속)

  • IP 주소 = 네트워크 주소 + 호스트 주소
    • IP 주소의 요청
    • TCP/IP를 관리하는 국제표준기구 IANA(Internet Assigned Numbers Authority)에 요청
      • IP 주소의 ‘네트워크 주소’에 해당하는 부분만을 할당 받음
      • 나머지 ‘호스트 주소’ 범위는 신청자가 자율적으로 관리하는 부분

• IP 주소 (계속)

  • 클래스 별 IP주소의 구성
    • 클래스 A: 네트워크 주소 개수 자체는 적지만, 포함하는 호스트 개수 많음
      • A의 네트워크 개수: 128개
      • A의 호스트 개수: 2563개 (16,777,216개)
    • 클래스 B와 C: 네트워크 주소가 많지만, 포함할 수 있는 호스트 개수 적음
      • C의 네트워크 개수: 25×256×256개 (2,097,152개)
      • C의 호스트 개수: 256개


• IP 주소 (계속)

  • 공인 IP 주소(Public IP Address) vs. 사설 IP 주소(Private IP Address)
  • 공인 IP 주소: IANA에 의해 할당받은 IP 주소
  • 사설 IP 주소: 사내 네트워크에서만 사용될 수 있는 IP 주소

    클래스 A 10.0.0.0 ~ 10.255.255.255
    클래스 B 172.16.0.0 ~ 172.31.255.255
    클래스 C 192.168.0.0 ~ 192.168.255.255


• TCP 프로토콜의 이해

  • TCP는 연결 지향적(Connection-oriented) 인 프로토콜
    • 송신자와 수신자가 통신을 시작되면 둘 사이에 연결 (Connection)이 맺어지고 통신이 끝날 때까지 연결이
      지속됨
  • TCP의 시작 과정: 3-way Handshaking
    • (1) 송신자: 연결을 맺자고 요청하는 SYN(Synchronize, 동기화) 패킷 보냄
    • (2) 수신자: 송신자 요청을 승인하는 SYN+ACK(Acknowledge, 수락) 패킷 보냄
    • (3) 송신자: 수신자의 승인 패킷을 확인했다는 의미로 ACK 패킷 보냄
      • 이러한 3단계를 거치면 연결 생성(Established) 상태가 됨


• TCP 프로토콜의 이해

  • 실제 메시지가 오고 가는 과정: 2-way 방식
    • 흐름 제어(Flow Control) : 수신자의 ACK 패킷을 송신자가 일정 시간 못 받은 경우
      • 송신자는 수신자에게 다시 메시지를 재전송
      • TCP 헤더 정보를 이용, 슬라이딩 윈도우(Sliding Window) 기법으로 처리


• TCP 프로토콜의 이해

  • TCP 헤더 정보
    • 순서 번호(Sequence Number)


• TCP 프로토콜의 이해

  • TCP의 종료 과정: 4-way
  • (1) 송신자 : 수신자에게 연결을 끊고자 FIN(Finish, 종료) 패킷 보냄
  • (2)(3) 수신자 : ACK 패킷과 FIN 패킷을 각각 보냄
    • 종료 요청에 대한 확인과 동시에 자신도 연결 종료를 요청하는 것
  • (4) 송신자 : 수신자의 종료 패킷에 대한 확인으로 ACK 패킷 보냄
    • 이렇게 연결이 끊어지게 되면 연결이 닫힘 상태(Closed)로 변경됨


• TCP의 포트(Port)

  • 포트(Port): 각 단말기 내에서 사용되는 주소

    • 수신자의 시스템 내에서 어떤 프로그램으로 메시지를 올려 보내줄지 결정


• TCP의 포트(Port)

  • 대표적으로 많이 사용되는 TCP 포트
    • 20, 21 – FTP, 원격 파일 전송을 위한 목적
    • 22 – SSH, 암호화된 원격 접속을 위한 목적
    • 23 – 텔넷(Telnet), 원격 접속을 위한 목적
    • 53 - DNS(Domain Name System), URL의 도메인 주소에서 IP 주소를 얻어올 때
    • 80 - HTTP, 웹 접속을 위한 목적
    • 110 - POP3(Post Office Protocol), 이메일 서버로부터 메일을 읽어올 때 사용
    • 443 – HTTPS, 암호화된 웹 접속을 위한 목적
  • TCP 포트 번호 범위
범위구분
0 ~ 1,023번잘 알려진 포트 (well-known port)
1,024 ~ 49,151번등록된 포트 (registered port)
49,152 ~ 65,535번동적 포트 (dynamic port)

보안 공격의 유형

  • 기준: 직접적인 피해가 발생하는지에 여부
    • 능동적 공격(Active Attack)
    • 수동적 공격(Passive Attack)
구분수동적 공격능동적 공격
특징직접적인 피해 없음직접적인 피해 있음
탐지 가능성어려움쉬움
대표적인 예스니핑(Sniffing) 혹은 도청(Eavesdrop)사회 공학(Social Engineering)
재사용 공격(Replay Attack)
변조
DoS / DDoS
세션 하이재킹(Session Hijacking)
  • 수동적 공격 탐지의 중요성
    • 수동적 공격을 통해서 보안 취약점 정보의 획득 → 능동적 공격을 실행
    • 능동적 공격 발생: 이미 수동적 공격도 상당 기간 동안 받았음을 의미

3. 스니핑

  • 개요
    • 스니핑(Sniffing)
      • sniff는 ‘냄새를 맡다’ 혹은 ‘코를 킁킁거리다’라는 뜻
      • 네트워크 보안에서는 송신자와 수신자가 주고받는 데이터를 중간에서 도청하는 것


• 스니핑 기법 1: 허브 환경에서의 스니핑

  • 허브: 더미 허브(Dummy Hub) 또는 수동 허브
    • 일종의 리피터(Repeater) 장비
      • 입력으로 전달받은 패킷을 나머지 모든 포트로 단순히 전달
    • 운영체제상 ‘다른 PC로 전달되는 패킷’을 무시
      • 네트워크 카드 (NIC, Network Interface Card) 의 셋팅
        • 자신의 MAC 주소가 아닌 패킷들은 필터링
  • 네트워크 카드: 무차별 모드(Promiscuous Mode)로 설정
    • 나의 MAC 주소가 아닌 패킷도 전달받는 모드
      → 허브 환경에서 스니핑 가능

• 스니핑 기법 2: 스위치 환경에서의 스니핑

  • 스위치(Switch)
    • MAC 주소 정보를 이용하여 패킷을 해당 목적지로만 전달 → 무차별 모드로 셋팅해도 스니핑이 불가능
  • 모니터링 포트 (Monitoring Port) 를 이용한 스니핑
    • 모니터링 포트: 스위치를 통과하는 모든 패킷의 내용을 전달하는 포트
      • 정상적인 관리 목적으로 사용하기 위해 네트워크 장비 자체가 제공
    • 물리적으로 스위치에 접근 가능 → 모니터링 포트를 통해 스니핑 가능


• 스니핑 기법 2: 스위치 환경에서의 스니핑(계속)

  • 스위치 재밍을 이용한 스니핑
    • 재밍(Jamming): 전파 방해
    • 매핑 테이블의 최대 저장 개수보다 더 많은 정보가 추가 → 브로드캐스팅(Broadcasting) 모드로 동작
      • 매핑 테이블(Mapping Table): IP 주소를 MAC 주소로 변환하기 위해 내부적으로 관리하는 테이블 (arp /a 로 확인)
      • 브로드캐스팅 모드: 자신이 전달받은 모든 패킷을 연결된 모든 단말기에 전달
    • 스위치 재밍 공격을 통해 스위치가 마치 더미 허브처럼 동작하게 되기 때문에 통신 속도가 느려짐


• 스니핑 기법 2: 스위치 환경에서의 스니핑 (계속)

  • 스푸핑 공격 기법을 이용
    • 스푸핑(Spoofing) 기법: 공격자가 마치 자신이 수신자인 것처럼 ‘위장’
      • 능동적 공격의 한 가지 방법
    • 예) ARP 스푸핑 등


• 스니핑 방지 대책

  • 암호화: 스니핑에 대한 가장 효과적인 대처 방안


• 스니핑 방지 대책

  • 웹 환경의 HTTPS (Hypertext Transfer Protocol over Secure Socket Layer)
    • 암호화된 통신 프로토콜: HTTP 웹 표준 프로토콜 + SSL/TLS(Secure Sockets Layer/Transport Layer Security)
      암호화 통신 프로토콜


• 스니핑 방지 대책

  • 이메일 환경의 PGP와 S/MIME(이메일 암호화)
    • PGP(Pretty Good Privacy): 사용하기 편하고 사용된 알고리즘의 안전성이 높기 때문에 대중적으로 널리 사용 (https://www.openpgp.org/)
      • 1991년 필립 짐머만(Phil Zimmermann)에 의해 개발
    • S/MIME(Secure MIME): 이메일의 내용을 저장하는 방식인 MIME(Multipurpose Internet Mail Extension)에 암호화기법을 추가
      • 이메일에 암호화 관련 보안성을 제공하는 가장 대표적인 방식 중 하나


• 스니핑 방지 대책

  • 원격 접속을 위한 SSH
    • SSH(Secure Shell): 암호화된 원격 접근 방식의 대표적인 예
    • 원격에서 텔넷이나 FTP 등을 이용 → 스니핑을 통해 사용자 ID와 암호가 유출될 수 있음


• 스니핑 방지 대책

  • VPN(Virtual Private Networks) : 사설망 혹은 사설 가상망
    • 일종의 네트워크 시스템 자체를 의미
      • 전용망과 VPN으로 구성된 회사 네트워크의 예

  • VPN 이용: 공개망을 사용하면서도 전용망을 사용하는 효과
    • 논리적으로는 전용선을 이용, 물리적으로는 인터넷을 이용
    • 터널링(Tunneling) 기술: 두 종단 사이(End-to-end)에 가상적인 터널 만듦

• 스니핑 방지 대책

  • VPN을 이용한 접근

    • 내부망 VPN(Intranet VPN): 두 종단 각각에서 VPN 장비로 접속

    • 외부접속 VPN Remote Access VPN : 인터넷에서 직접 VPN 장비로 접속하는 경우(=Dial-up VPN)

  • VPN 통신 프로토콜: PPTP/L2F/L2TP, IPSec, SOCKS V5 등


• 스니핑 방지 대책

  • 스위치의 정적 매핑 테이블 사용
    • 스위치의 매핑 테이블을 정적(Static)으로 설정
      • 연결된 PC의 MAC 주소를 미리 조사 → IP 주솟값 등을 고정(Static 혹은 Permanent)
    • 재밍 공격, 스푸핑 공격을 당하더라도 MAC/IP 주솟값이 바뀌지 않아 안전
    • 네트워크 관리자가 일일이 관리해야 하므로 높은 유지보수 비용 발생
포트MAC 주소IP 주소
100:23:69:62:26:09192.168.1.1
500:00:00:00:cc:10192.168.1.162
622:22:22:00:cc:01192.168.1.164

• 스니핑 탐지 방법

  • 명령어 ping을 이용하는 방법
    • 존재하지 않는 IP 주소에 대한 요청에도 응답이 오는지 확인
      • 무차별 모드가 켜져 있는 호스트가 있는 경우
        • 예) ping 172.16.115.133 → 응답이 없어야 하는데도, 응답이 온다면?
  • ping: 네트워크를 통해 특정한 호스트(Host)까지 접속 가능한지를 테스트하는 명령어


• 스니핑 탐지 방법

  • ARP를 이용하는 방법
    • ping을 이용한 방법과 유사한 방법
    • 존재하지 않는 IP 주소를 이용하여 ARP 요청을 보냄
      → 응답 여부를 통해 스니핑 중인지를 판단


• 스니핑 탐지 방법

  • DNS 방법
    • 존재하지 않는 IP를 대상으로 ping을 먼저 보낸 다음, 해당 IP에 대한 도메인 이름을 물어보는 요청(InverseDNS Lookup)이 오는지 확인
    • 원격 네트워크에서도 사용될 수 있음 ( vs. ping을 이용한 방법 – 로컬 네트워크 )
  • 테스트 대상 네트워크로부터 도메인 이름을 물어보는 요청이 오는가?
  • 유인 방법
    • 일부러 가짜 사용자 ID와 패스워드를 유출
      • 공격자가 이러한 ID와 패스워드를 사용하게 함
    • 이후 네트워크 감시 프로그램을 이용하여 유출된 ID가 사용되는지를 분석

• 스니핑 탐지 방법

  • 호스트 기반 탐지
  • 의심이 되는 PC 또는 서버에서 실제 명령을 실행
  • 리눅스나 유닉스에서 ifconfig 명령을 실행
  • "PROMISC": 현재 호스트가 무차별 모드로 설정되어 있고 스니핑 가능성 매우 큼


• 스니핑 탐지 방법

  • 호스트 기반 탐지
  • 윈도우에서 promiscdetect로 확인(전용 프로그램)


• 스니핑 탐지 방법

  • 네트워크 기반 탐지 도구: ARP watch
    • 현재 네트워크의 MAC 주소와 IP 주소에 대한 매핑 정보를 생성
    • 변경이 발생했는지 모니터링 → 변경 시 관리자에게 알림 메일 발송

0개의 댓글