본문 바로가기

보안

보안기사 - TCP/IP 프로토콜, ARP/RARP 프로토콜

TCP/IP 프로토콜




* MTU(Maximum Transmission Unit) - L2에서 한번에 전송할 수 있는 데이터 크기 제한

Application Layer (응용 계층)

네트워크 서버/클라이언트 프로그램을 담당
사용자와의 인터페이스를 담당

  • 주요 프로토콜
    HTTP(80/tcp) : Hyper-Text Transfer Protocol
    FTP(20/21/tcp) : File Transfer Protocol, data port(20), control port(21)
    SSH(22/tcp) : Secure Shell, 암호화된 원격 터미널 접속 프로토콜
    SFTP(22/tcp) : SSH File Tranfer Protocol
    TELNET(23/tcp) : TELe NETwork, 암호화X 원격 터미널 접속 프로토콜
    SMTP(25/tcp) : Simple Mail Transfer Protocol, 메일 전송용 프로토콜
    POP3(110/tcp) : Post Office Protocol Version3, 메일 수신용 프로토콜
    IMAP(143/tcp) : Internet Message Access Protocol, 메일 수신용 프로토콜
    DNS(53/tcp,udp) : Domain Name System
    DHCP(67,68/udp) : Dynamic Host Configuration Protocol, 서버(67), 클라이언트(68)
    TFTP(69/udp) : Trivial FTP
    SNMP(161/udp) : Simple Network Management Protocol

Transport Layer (전송 계층)

Process-To-Process Communication, 프로세스간 신뢰성 있는 데이터 전송
'신뢰성 있는' = 전송 중 발생하는 오류, 누락 및 흐름제어, 혼잡제어 등을 적절히 수행하여 데이터의 안전한 전송을 보장
프로세스 식별을 위해 논리적 주소로 Port(16bit) 주소를 사용

  • 주요 프로토콜
    TCP (Transmission Control Protocol) : 신뢰성 있는 연결지향 프로토콜 (스트림 기반 전송)
    UDP (User Datagram Protocol) : 비신뢰적인 비연결형 프로토콜 (데이터그램 기반 전송)
    SCTP (Stream Control Transfer Protocol) : TCP와 UDP의 조합형

Internet Layer (인터넷 계층)

Host-To-Host Communication, 호스트간 라우팅
호스트 식별위해 논리적인 주소로 IP(v4:32big, v^:128bit) 주소 사용

  • 주요 프로토콜
    IP (Internet Protocol) : 비신뢰적 비연결형 데이터그램 프로토콜
    ICMP (Internet Control Message Protocol) : 에러 및 상태진단 메시지 프로토콜
    IGMP (Internet Group Management Protocol) : 멀티캐스트용 프로토콜
    ARP (Address Resolution Protocol) : IP 주소 -> MAC 주소
    RARP (Reverse Address Resolution Protocol) : MAC 주소 -> IP 주소

Network Interface Layer

Nodo-To-Node Delivery, 인접 노드 간 신뢰성 있는 데이터 전송
Node 식별위해 물리적 주소로 MAC(48bit) 주소 사용 (벤더 식별코드(24) + 일련번호(24))

  • 주요 프로토콜
    LAN (Local Area Network) : Ethernet, TokenRing, FDDI
    WAN (Wide Area Network) : X.25, Frame Relay, PPP, SLIP

ARP/RARP 프로토콜




논리적 주소와 물리적 주소 사이의 변환을 담당

ARP 동작방식


[ARP Request]



[ARP Reply]


상대방의 물리적 주소를 알지 못하고, 논리적 IP 주소만 알고 있는 상태

  1. ARP Request 메시지를 만들어 Broadcast
  2. Target 호스트에서는 ARP Reply 메시지를 만들어서 응답
    응답 메시지에는 Target 호스트의 MAC 주소 정보가 담겨 있으며, 요청자에게 unicast 방식으로 응답
    target이 아닌 호스트들은 수신한 broadcast request를 폐기
  3. 각 시스템은 ARP Cache 가 있고, 이 cache에 이 정보를 보관 (일정 시간 경과 후 삭제)

RARP 동작방식


[RARP Request]



[RARP Reply]


최초 자신의 논리적인 IP 주소를 알지 못하고, 물리적(MAC)주소만 알고 있는 상태

  1. 자신의 MAC 정보를 담고 있는 RARP Request 메시지를 만들어 Broadcast
  2. RARP 서버는 요청자의 IP 주소 정보를 담은 RARP Reply 메시지를 만들어서 unicast 방식으로 응답

ARP cache table

ARP 요청을 통해 알아낸 MAC 정보는 통상 1~2분 정도 메모리에 저장
dynamic 타입은 arp에 의해 동적으로 설정된 것으로 일정 시간 동안 유지
static 타입은 관리자에 의해 정적으로 설정된 것으로 관리자가 삭제하거나 시스템이 종료하기 전까지 유지

  • 관련 명령어
    arp -a   캐시 내용 보기
    arp -d   캐시 내용 삭제
    arp -s   캐시 정적 설정 (arp -s $IP주소 $MAC주소)

ARP Sppofing 공격 (ARP Cache Poisoning)

요청/응답 과정에서 인증과정이 없는 ARP의 구조적 취약점을 이용


  • 공격자(B)가 희생자(A, C)의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에 지속적으로 전송하면 희생자 ARP Cache Table의 MAC 정보가 공격자의 MAC 정보로 지속적으로 변경된다. 이를 통해서 희생자 간의 송수신 패킷을 공격자가 스니핑하는 기법
  • 공격자(B)는 희생자간에 정상적인 통신이 이루어질 수 있도록 (스니핑 눈치채지 못하도록) IP Forward 기능을 활성화
  • ARP Redirect 공격은 희생자 ARP Cache의 Gateway(Router) 주소를 공격자 MAC 주소로 변조시켜서 외부로 나가는 데이터를 스니핑
  • ARP Spoofing은 2계층 주소인 MAC 주소를 속여서 트래픽을 스니핑하는 것이므로 2계층에서 동작
    2계층 주소는 서로 다른 네트워크로 라우팅 되지 않기 때문에 공격대상도 동일 네트워크 대역에 있어야 한다

* ARP Cache에 중복된 MAC 주소를 통해 ARP Spoofing 짐작 가능
* 공격자는IP Forward를 하기 때문에 wireshark 에 패킷이 2개씩 찍힘 (들어온거, 내보낸거)

  • 대응방법
    ARP 캐시를 정적으로 설정하여 ARP Reply을 수신해도 캐시 정보를 갱신하지 않도록
    캐시정보는 시스템 종료 시 삭제되므로 시스템 기동시마다 ARP 캐시를 정적으로 구성
    네트워크 상의 ARP 트래픽을 실시간으로 모니터링하는 프로그램(ARPWatch 등)을 이용해 IP와 MAC 주소의 매핑을 감시, 변경 발생 시 즉시 확인

GARP (Gratuitous ARP)

gratuitous; 불필요한
GARP란, Sender IP와 Target IP가 동일한 ARP Request
ARP Request broadcast를 통해 다른 장비에게 NW에 있는 자신의 존재를 알리는 목적으로 사용되는 패킷 ~ ARP Cache를 갱신하도록

  • 목적
    1. IP 충돌 감지
      자신과 동일한 IP가 설정되어 있는 호스트가 있다면 해당 호스트로부터 ARP Reply이 오기 때문에 충돌여부를 확인
      일반적으로 호스트 IP를 변경하거나 재부팅 시에 GARP 패킷이 생성
    2. 상대방의 ARP Cache 정보 갱신
      GARP 메시지를 수신한 쪽에서는 자신의 ARP Cache에 Sender IP 정보를 갱신
      => 상대방을 인증하지 않고 Cache 정보를 갱신 ~ 악의적 목적의 공격자에 의해 MAC 정보가 위변조 될 수 있기 때문에 취약점이 될 수 있다

* MITM (Man In The Middle) 공격
네트워크 통신을 조작하여 통신 내용을 도청 및 조작하는 공격 기법 (중간자 공격) = 도청 + 조작 + 재전송