SK Shieldus Rookies 19th/시스템 & 네트워크 보안 기술

[SK shieldus Rookies 19기][시스템 / 네트워크 보안] - DHCP, MAC Address, ARP, 패킷 전송, 통신 체계와 통신 규약, 전송 데이터 구성

En_Geon 2024. 4. 7. 18:04

1. dig(Domain Information Groper)

1) naver.com 도메인 정보 조회

dig

 

dig 사용법은 "dig 도메인이름 [레코드유형]" 이다.

QUESTION SECTION이 질의 내용인데, www.naver.com 도메인 이름으로 A 유형의 레코드를 질의한 것이다. 

ANSWER SECTION이 질의 결과로 1개의 CNAME과 4개의 A 레코드가 조회된 것이다.

 

2) blog.naver.com SOA 조회

dig SOA

 

  • gns1.nheos.com.
    • Primary Name Server
  • hostmaster.nheos.com.
    • 관리자 이메일 주소
    • hostmaster@nheos.com 의미
  • 2024040404
    • 시리얼 번호
  • 10800
    •  Refresh 값 
    • 3시간 주기로 Secondary DNS가 Zone Transfer 수행
  • 3600
    • Retry 값
    • Secondary DNS가 응답받지 못 하면 1시간 후 재시도
  • 604800
    • Expire 값
    • 7일 동안 Secondary DNS가 응답받지 못하면 더 이상 해당 Zone 파일을 Secondary DNS에서 사용하지 않음
  • 180
    • SOA 레코드 TTL(Time To Live) 값
    • DNS Resolver에서 캐시 되는 시간 (180초)

 

2. DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜)

  • 호스트의 IP 구성 관리를 단순화하는 IP 표준
  • IP 주소와 관련된 기타 구성 정보(Subnet mask, Gateway IP 주소, DNS 서버 IP 주소 등)를 DHCP 클라이언트에게 동적으로 할당하는 서비스
  • 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용
  • 서비스 포트
    • 서버 67(bootps)
    • 클라이언트 38(bootpc)

 

1) DHCP 동작(4단계)

DHCP 동작

 

  • Discover
    • 네트워크상에 DHCP 서버를 찾기 위해서 Broadcast 요청
  • Offer
    • DHCP 서버가 클라이언트에게 어떠한 IP 사용 제안
  • Request
    • 클라이언트가 서버로부터 제안받은 정보를 사용하겠다는 요청
  • Ack
    • Request에 대한 요청 수락

 

2) DHCP 갱신

  • DHCP 서버로부터 IP를 할당받은 후 임대 시간(Lease Time)의 50%가 지나면 DHCP 갱신 과정을 수행
  • 이미 사용 중인 IP 정보가 있으므로 DHCP Discover, DHCP Offer 과정은 생략
  • 첫 번째 갱신에 실패하면 남은 시간의 50%가 지난 시점(즉, 초기 임대 시간의 75%가 지난 시점)에 다시 갱신 시도
  • 두 번째 갱신에 실패하면 추가 생신 없이 임대 시간이 모두 지난 시점에 IP를 반납하고 처음부터 다시 IP를 할당받음

 

DHCP 갱신

 

3. MAC Address(Media Access Control Address, 물리적 주소)

  • 네트워크 세그먼트의 데이터 링크 계층(L2)에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자
  • LAN 카드(NIC)에 새겨진 주소(BIA, Burned-In Address)
  • 48bit
    • OUI(Organizationally unique identifier, 24bit)
      • IEEE가 제조사에 할당(제조사 코드)
    • UAA(Universally Administered Address, 24bit)
      • 각 제조사에서 네트워크 구성 요소에 할당(기기 고유 코드, 일련번호)
  • LAN 영역에서 내부 통신을 수행하기 위해 필요한 주소

 

1) MAC 주소 동작

MAC 주소 동작

 

데이터 링크 계층에서는 출발지 MAC 주소, 목적지 MAC 주소, DATA의 형태로 네트워크에 보낸다. 이때, 목적지 MAC 주소가 자신의 것이라면 들어오는 패킷을 읽어서 위 계층으로 전달한다. 목적지 주소가 자신의 것이 아니라면 없애버린다.

 

2) 무차별 모드(Promiscuous Mode)

  • 기본적으로 NIC는 패킷의 목적지 MAC 주소가 자신의 MAC 주소와 다르면 폐기
  • 무차별 모드로 NIC를 구성하면 자신의 MAC 주소와 상관없는 패킷이 들어와도 이를 분석할 수 있도록 메모리에 올려 처리할 수 있게 함
  • 네트워크 상태를 모니터링하거나 디버깅, 분석 용도로 네트워크 전체 패킷을 수집해야 하는 경우 사용

 

3) IP 주소와 MAC 주소

구분 구성 기능
IP 주소 32비트 = 네트워크 ID + 호스트 ID IP 주소 기반 라우팅
MAC 주소 48비트 = OUI + UAA MAC 주소 기반 라우팅

 

 

4. ARP(Address Resolution Protocol, 주소 결정 프로토콜)

  • 네트워크상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용되는 프로토콜
  • 상대방의 MAC 주소를 알아내기 위해 사용되는 프로토콜
  • 데이터 통신을 위해 2계층의 MAC 주소와 3계층 IP 주소 두 개를 사용
    • IP 주소 체계는 MAC 주소와 전혀 연관성이 없으므로 두 주로를 연계시켜 주는 메커니즘이 필요
    • 그 메커니즘이 APR

 

1) ARP 헤더

ARP 헤더

(1) Hardware Type

  • 하드웨어 주소(MAC) 유형을 나타내며, 이더넷 통신 시 항상 1로 설정

(2) Protocol Type

  • 맵핑 대상인 프로토콜 주소의 유형을 나타내며 IPv4의 경우 0x0800으로 설정

(3) Hardware Address Length

  • 하드웨어 주소(MAC)의 길이를 byte로 나타내고, 이더넷 상에서 6으로 설정

(4) Protocol Address Length

  • 프로토콜 주소의 길이를 byte로 나타내고, IPv4의 경우 4로 설정

(5) Operation Code(Opcode)

  • ARP의 구체적인 동작
  • 1 : ARP Request
  • 2 : ARP Reply
  • 3 : RARP Requet
  • 4: RARP Rely

(6) Source Hardware Address

  • 송신자의 MAC 주소

(7) Source Protocol Address

  • 송신자의 IP 주소

(8) Target Hardware Address

  • 수신자의 MAC 주소, ARP Request 동작 시 0으로 설정
  • 이더넷 헤더의 목적지 주소가 FF;FF;FF;FF;FF;FF로 설정되면 브로드캐스팅

(9) Target Protocol Address

  • 수신자의 IP 주소

 

2) ARP 동작

(1) 목적지 MAC 주소를 모르기 때문에 정상적인 패킷을 만들 수 없음

 

(2) ARP 요청을 네트워크에 브로드캐스트(ARP Request)

 

목적지 MAC 주소를 브로드캐스트(FF:FF:FF:FF:FF:FF)로, 대상 MAC 주소를 00-00-00-00-00-00으로 채워서 전달

앞 브로드캐스트는 이더넷 헤더, 뒤 MAC 주소는 ARP 헤더다.

 

브로드캐스트는 목적지가 정해져 있지 않은 것으로 해당하는 네트워크에 전체에게 보내는 것이다.

전송자 MAC부터는 ARP Request 패킷이다. 이때 대상자 MAC을 체크하는데 00으로 되어 있으면 ARP Request이므로 대상자 IP를 확인한다. 대상자 IP를 보고 자신의 MAC IP 주소와 일치하는지 아닌지를 판단해서 자신의 주소와 일치하면 유니캐스트 한다.

 

(3) 출발지로 ARP 응답을 유니캐스트(ARP Reply)

 

ARP 요청에 있는 대상자 IP 주소가 자신의 IP와 동일한 경우, 출발지로 ARP 응답을 유니캐스트 한다.

유니캐스트는 목적지가 하나로 정해져 있는 것이다.

이더넷 헤더의 출발지 MAC 주소가 자신의 것으로 설정하고 목적지 MAC 주소는 Request를 요청한 주소로 설정한다.

 

전송지 정보는 Request의 대상자 정보가 들어가고, 대상자 정보는 Request의 전송자 정보가 들어간다.

 

(4) ARP 캐시 테이블 갱신 후 패킷 전송

 

처음에는 목적지 MAC을 몰랐기 때문에 브로드캐스트 했다. 이제 로컬에 있는 캐시 테이블에 MAC 주소를 업데이트하고 패킷을 완성해서 데이터를 전송한다.

 

 

5. ARP 캐시 테이블 

패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하되므로 ARP Reply 정보를 메모리에 정보를 저장해서 재사용하도록 하는 것

 

 

 

 

  • arp -d
    • arp 캐시 테이블 삭제
  • ping 8.8.8.8
    • 구글 DNS
  • arp -a
    • ARP 캐시 테이블 확인
  • 192.168.150.130
    • 해당 호스트의 IP 주소
  • 192.168.150.2
    • 기본 게이트웨이의 NIC

 

6. ping 8.8.8.8 동작 순서

1) 출발지 IP와 목적지 IP의 네트워크 ID 비교

 

구분 출발지 IP 목적지 IP
IP 192.168.150.130 8.8.8.8
Subnet mask 255.255.255.0 255.255.255.0
Network ID 192.168.150. 8.8.8.

 

출발지의 Subnet mask를 적용해서 Network ID를 비교한다. 비교해서 서로 다르면 목적지 주소를 게이트웨이 주소로 변경한다.

 

2) 게이트웨이의 MAC 주소 확인을 위해 ARP Request 브로드캐스팅

브로드캐스팅 한다는 것은 목적지 MAC이 설정되지 않음을 뜻함

 

구분 출발지 IP 목적지 IP
IP 192.168.150.130 192.168.150.2
MAC 00-0C-29-7A-7E-B8 00-00-00-00-00-00

 

LAN 영역의 모든 호스트는 ARP 브로드캐스팅 질의를 수신 목적지 IP 주소가 일치하는 호스트가 ARP Reply를 전송한다.

 

출발지 MAC 목적지 MAC 출발지 IP 목적지 IP 출발지 MAC 목적지 MAC
00-0C-29-7A-7E-B8 FF-FF-FF-FF-FF-FF 192.168.150.130 192.168.150.2 00-0C-29-7A-7E-B8 00-00-00-00-00-00
브로드캐스팅 ARP Request

 

3) 게이트웨이가 자신의 MAC 주소 유니캐스트

 

구분 출발지 IP 목적지 IP
IP 192.168.150.2 192.168.150.130 
MAC 00-50-56-e7-01-21 00-0C-29-7A-7E-B8

 

 

출발지 MAC 목적지 MAC 출발지 IP 목적지 IP 출발지 MAC 목적지 MAC
00-50-56-e7-01-21 00-0C-29-7A-7E-B8 192.168.150.2 192.168.150.130 00-50-56-e7-01-21 00-0C-29-7A-7E-B8
유니캐스트 ARP Reply

 

4) 응답받은 출발지 호스트는 자신의 ARP 캐시 테이블 업데이트

 

ARP 캐시 테이블 업데이트

 

5) MAC 주소 이용해서 유니캐스팅

이후부터는 게이트웨이와 통신하기 위해서는 로컬 ARP 캐시 테이블에 MAC 주소를 이용해서 유니캐스팅

 

구분 출발지 IP 목적지 IP
IP 192.168.150.130  192.168.150.2
MAC 00-0C-29-7A-7E-B8 00-50-56-e7-01-21

 

 

7. ARP 영역

ARP 요청과 응답이 일어나는 영역

 

ARP 요청과 응답은 같은 네트워크에서 즉, LAN 영역 일어난다.

LAN 영역이란 동일한 네트워크 ID를 공유하는 호스트가 MAC 주소에 기반해서 스위칭 방식으로 내부 통신을 수행하면서 단일 ARP 영역을 생성하는 공간이다.

 

1) 데이터 전송할 때 사용하는 통신 방식

통신 방식

 

(1) 유니캐스트

  • 1 : 1
  • 출발지와 목적지가 1 : 1로 통신
  • 대부분의 통신은 유니캐스트 방식으로 진행
  • TCP, UDP 모두 지원

 

(2) 브로드캐스트

  • 1 : All
  • 동일 네트워크에 존재하는 모든 호스트가 목적지
  • 목적지 주소가 All(FF-FF-FF-FF-FF-FF)으로 표기된 통신 방식
  • 로커 네트워크에서 모든 호스트에 패킷을 전달해야 할 때 사용
  • 유니캐스트 통신전에 상대방의 MAC 주소를 취득하기 위해 사용 - ARP Request
  • UDP 지원

 

(3) 멀티캐스트

  • 1 : N (멀티캐스트 구독 호스트 = 그룹) 
  • 하나의 출발지에서 다수의 특정 목적지로 데이터를 전송
  • 멀티캐스트 그룹 주소를 이용해서 해당 그룹에 속한 다수의 목적지로 패킷을 전송하기 위한 통신 방식
  • IPTV와 같은 실시간 방송, 사내 방송, 증권 시세와 같은 단방향으로 다수에게 동일한 내용을 전달할 때 사용 
  • UDP 사용

 

(4) 애니캐스트

  • 1 : 1 (동일 그룹 내의 1개 호스트)
  • 다수의 동일 그룹 중 가장 가까운 호스트에서 응답
  • 애니캐스트 주소가 같은 호스트 중 가장 가깝거나 효율적으로 서비스할 수 있는 호스트와 통신하는 방식
  • 가장 가까운 DNS 서버를 찾을 때 사용

 

8. 계층(layer)

  • 비음성 통신에서 데이터를 전송하기 위한 일련의 좌정, 단계, 절차
  • 송신자 운영체제가 응용 계층에서 시작해 전송, 네트워크, 데이터 링크 계층 순으로 데이터를 전송
  • 수신자 운영체제가 역으로 물리 계층에서 시작해 데이터 링크, 네트워크, 전송, 응용 계층 순으로 데이터를 수신

 

1) ISO OSI 7 Layer

ISO(International Organization for Standardization, 국제 표준 기구)에서 서로 다른 시스템(개방형 시스템, Open System) 간 통신을 허용(상호 연결, Inter Connection)하기 위해 만든 모델 OSI(Open System Interconnection)

 

OSI 7 Layer

 

(1) L7 응용 계층

  • 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행
  • User Interface 제공
    • UI를 통해 데이터 생성
    • HTTP, FTP, Telnet, SMTP, SNMP, NFS 등

 

(2) L6 표현 계층

  • 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변화하는 기능
    • 코드 변환(encoding)
    • 압축(compression)
    • 암호화(encryption)

 

(3) L5 세션 계층

  • 응용 프로그램 간에 데이터 전송을 위한 동기화, 데이터의 오류검사 및 복구 기능 수행
  • 서비스 제공자와 요청자 간을 연결하고 대화를 개시하는 역할

 

(4) L4 전송 계층

  • 프로세스와 프로세스 간의 전달(Process-to-process segment delivery)
  • 가상 회선 설정, 유지, 해지
  • 상위 계층 프로세스에 신뢰성 있게 전달하는 역할
    • 신뢰성은 확인응답 등을 통해 오류 검사를 한다는 의미
  • 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할(미비점을 해소하기 위한 역할)
    • 시퀀스 번호 - 패킷을 보내는 순서 명시
    • ACK 번호 - 받는 순서 명시
  • 로드 밸런서, 방화벽
  • 주요 기능
    • 서비스 지점 주소 지정
    • 분할과 재조립
    • 연결 제어
    • 흐름 제어
    • 오류 제어

 

(5) L3 네트워크 계층

  • 호스트 간의 데이터 전송 기능(Host-to-host packet delivery)
  • 데이터의 전송 경로 설정
  • 최적 경로 결정(routing)
  • 라우터(router)
    • IP 주소를 사용해 최적의 경로를 찾아서 패킷을 전송하는 역할의 장비
  • 서로 다른 네트워크로 구성된 인터네트워킹을 통해 올바른 데이터 경로를 보장

 

(6) L2 데이터 링크 계층

  • 인접 노드 사이의 데이터 전송 기능 수행(Node-to-node frame delivery)
  • 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리
  • NIC, 스위치
  • 프레임을 생성하고 전송하는 방법을 규정
  • 주요 임무
    • 헤더와 트레일러를 붙여서 프레임 구성
    • 물리주소 지정
    • 흐름 제어
    • 오류 제어
    • 접속 제어
  • 대표적인 프로토콜
    • HDLC(High-level Data Link Control)
    • PPP(Point-to-Point Protocol)

 

(7) L1 물리 계층

  • 물리적인 전송로 제공
  • 전기적, 기계적, 기능적, 절차적 수단 제공
  • 주소 개념이 없기 때문에 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 신호를 전송
  • 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭

 

9. 네트워크 장비에서 패킷 전송 방법

  • Forwarding
    • 하나의 송신지 포트에서 하나의 수신지 포트로 트래픽 전달
  • Flooding
    • 송신지 포트를 제외한 나머지 포트들로 트래픽 전달

 

1) Hub

  • L1 물리 계층 장비
  • 주소가 없으므로 모든 포트로 Flooding 처리

Hub

 

 

2) Switch

  • L2 데이터 링크 계층
  • MAC Address Table을 이용해서 Forwarding 처리
  • MAC Address Table에 목적지 MAC 주소가 없는 경우 Flooding 처리

 

Switch Forwarding

 

 

Switch Flooding

 

 

3) Router

  • L3 네트워크 계층
  • Routing Table을 기반으로 Forwarding 처리
  • Routing Table에 없는 목적지 주소는 Drop 처리

Router Forwarding

 

Router Drop

 

 

10. 통신 체계와 통신 규약

 

통신체계 프로토콜 종류 용도
TCP/IP HTTP, Telnet, TCP, UDP 인터넷과 LAN에서 사용
IPX/SPX IPX, SPX, NPC 노벨사가 개발 및 판매하는 Netware 시스템에서 사용
Appltalk DDP, RTMP, ATP 애플사 제품의 LAN에서 사용
DECnet DPR, NSP, SCP 덱 사의 미니컴퓨터에서 사용
XNS IDP, SPP, PEP 제록스 사의 네트워크에서 사용

 

독점적 프로토콜(Vender Specific Protocol)

  • 특정 업체에서 개발한 프로토콜
  • 다른 프로토콜과 호환이 불가능

 

비독점적 프로토콜(Open Protocol)

  • 학교 또는 연구기관에서 개발
  • 이기종 장비 간 통신이 가능
  • TCP/IP, 802.3 등

 

1) TCP/IP

TCP/IP Protocol

 

TCP/IP는 총 4계층으로 OSI 7 Layer의 7~5계층을 묶어 Application으로 사용하고, Transport, Internet, 2~1계층을 묶어 Network Interface 구성으로 프로토콜을 정의하고 있다.

 

11. 전송 데이터 구성

헤더3 + 헤더2 + 헤더1 + 페이로드

 

  • 헤더
    • 보내는 호스트의 주소(출발지 주소)와 받는 호스트의 주소(목적지 주소)가 담긴 공간
  • payload
    • 사용자가 상대방에게 전송하고자 하는 실제 정보가 담긴 공간
  • 메시지
    • 페이로드만으로 이루어진 데이터 전송 단위

 

1) 인캡슐레이션 & 디캡슐레이션

 

(1) 인캡슐레이션

  • 페이로드 앞에 헤더를 붙이는 과정
  • 운영체제가 데이터를 송신하는 과정
  • 메시지 > 데이터그램/세그먼트 > 패킷 > 프레임 > 비트
  • 역할
    • 정보은닉
    • 라우터는 패킷 헤더만 읽을 수 있을 뿐 데이터그램/세그먼트 헤더 이하는 읽을 수 없음
    • 스위치는 프레임 헤더만 읽을 수 있을 뿐 패킷 헤더 이하는 읽을 수 없음

 

(2) 디캡슐레이션

  • 헤더를 떼는 과정
  • 데이터를 수신하는 과정
  • 비트 > 프레임 > 패킷 > 데이터그램/세그먼트 > 메시지

 

2) 데이터그램 또는 세그먼트

데이터그램 헤더 + UDP 페이로드 또는 세그먼트 헤더 + TCP 페이로드

 

  • 페이로드 앞에 붙는 첫 번째 헤더
  • 출발지, 목적지 포트 번호를 포함
  • 수신 측 운영체제에서는 데이터그램 또는 세그먼트 헤더에 담긴 포트 번호를 통해 페이로드의 내용이 어떤 종류의 서비스로 전달할지 판단
    • 송신 측 기준
      • 목적지 포트 - 일반적인 서비스 포트 번호를 사용
      • type C:\Windows|System32\drivers\etc\services 확인 가능
      • 출발지 포트 - 1024번 이후의 포트 번호 사용

 

3) 패킷

패킷 헤더 + 데이터그램 헤더 + UDP 페이로드 또는 패킷 헤더 + 세그먼트 헤더 + TCP 페이로드

 

(1) 패킷 헤더

  • 데이터그램/세그먼트 앞에 붙이는 두 번째 헤더
  • 출발지, 목적지 IP 주소 포함
  • 라우터 장비가 라우팅 기능을 수행할 때 참조하는 부분

 

4) 프레임

프레임 헤더 + 패킷 헤더 + 데이터그램 헤더 + UDP 페이로드 + 트레일
프레임 헤더 + 패킷 헤더 + 세그먼트 헤더 + TCP 페이로드 + 트레일

 

(1) 프레임 헤더

  • 패킷 앞에 붙이는 세 번째 헤더
  • LAN 영역인 경우 MAC 주소 포함
  • 스위치 장비가 스위칭 기능을 수행할 때 참조하는 부분
  • LAN 영역과 WAN 영역에 따라 상이하게 설정

 

구분 LAN 영역 WAN 영역
데이터그램/세그먼트 헤더 출발지/목적지 포트 번호 출발지/목적지 포트 번호
패킷 헤더 출발지/목적지 IP 주소 출발지/목적지 IP 주소
프레임 헤더 출발지/목적지 MAC 주소 WAN 영역에 대한 정보