반응형
정보보안기사 필기 3-2. 네트워크 보안(ARP/RARP, IP 프로토콜, IPv6)
1. ARP / RARP 프로토콜
1) ARP 및 RAPR 프로토콜 특징
- 논리적인 주소(Logical Address)와 물리적인 주소(Physical Address) 사이의 변환을 담당하는 프로토콜
- ARP(Address Resolution Protocol) : 논리적인 IP주소를 물리적인 MAC 주소로 변환해주는 역할을 수행
- RARP(Revers ARP) : 물리적인 MAC 주소를 논리적인 IP주소로 변환해주는 역할을 수행
2) ARP 동작방식
- 최초 상대방의 MAC 주소를 알지 못하고 IP 주소만 알고있는 상태이기 때문에 ARP Request 패킷을 만들어 로컬 네트워크에 브로드캐스트 한다.
- 대상 호스트에서는 ARP Reply 패킷을 만들어서 응답하며, 대상 호스트가 아닌 호스트들은 수신한 브로드캐스트 패킷을 폐기한다.
- 각 시스템은 ARP Cache Table이 있고 여기에 MAC 주소정보를 보관해둔다.
A 호스트가 다른 네트워크의 B 호스트의 MAC을 직접 ARP Request 패킷을 요청할 수 있는가?
- ARP, RARP는 IP를 이용하지 않기 때문에 다른 네트워크로 전달이 불가능하다.
- 따라서 인접한 노드, 로컬 네트워크 내에서만 ARP, RARP 쿼리 질의가 가능하다.
ARP와 Ping 의 동작관계(다른 네트워크의 경우)
- A 호스트가 다른 네트워크에 존재하는 B 호스트에게 ICMP Request 패킷을 전송하게 된다.
- A 호스트는 B 호스트와 통신하기 원하지만 서로의 네트워크 대역이 다르므로 A 호스트는 게이트웨이에게 보내야한다.
- A 호스트는 게이트웨이의 MAC 주소를 모르기 때문에 최초 ICMP Request 패킷을 전송한 후 ARP Request 패킷을 이용하여 게이트웨이의 MAC 주소를 찾게된다.
- 출발지 IP : A 호스트 IP | 목적지 IP : 게이트웨이 IP
- 출발지 MAC : A 호스트 MAC | 목적지 MAC : ?
- A 호스트는 ARP Request를 로컬 네트워크에 브로드캐스트 하게되고 ARP Request 패킷을 수신한 게이트웨이는 ARP Request 패킷안에 IP가 자신인것을 확인한 후 ARP Reply 패킷안에 게이트웨이의 MAC 주소를 첨부하여 A 호스트에게 보낸다.
- A 호스트는 ARP Reply 패킷을 응답받고 해당 정보를 참조하여 두 번째 ICMP Request 패킷을 B 호스트에게 보낸다.
- 게이트웨이가 ICMP Request 패킷을 수신받고, 해당 패킷 내 IP 헤더를 참고한다.
- 게이트웨이는 B 호스트의 IP가 다른 네트워크 대역인 것을 확인 후, Routing Table을 참조한다.
- 게이트웨이는 B 호스트의 MAC 주소를 확인하기 위하여 ARP Request 패킷을 만들어 브로드캐스트한다.
- 출발지 IP : 게이트웨이 IP | 목적지 IP : B 호스트 IP
- 출발지 MAC : 게이트웨이 MAC | 목적지 MAC : ?
- B 호스트가 ARP Request 패킷을 수신받아 MAC 주소를 담은 ARP Reply 패킷을 게이트웨이로 응답해준다.
- 게이트웨이는 ARP Reply 패킷을 받아 정보를 자신의 ARP Cache Table에 업데이트 한 후 ICMP Request 패킷을 ARP Cache Table을 참조하여 B 호스트에게 Forwarding 한다.
- 출발지 IP : A 호스트 IP | 목적지 IP : B 호스트 IP
- 출발지 MAC : 게이트웨이 MAC | 목적지 MAC : B 호스트 MAC
- B 호스트는 ICMP Request 패킷을 받아 확인 후 ICMP Reply 패킷을 응답한다.
- 게이트웨이는 ICMP Reply 패킷을 받아 IP 헤더에 IP 정보를 확인 한 후 목적지가 A 호스트인 것을 확인하여 자신의 ARP Cache Table을 참조하여 Forwarding 진행한다.
- A 호스트는 ICMP Request 패킷에 대한 ICMP Reply 패킷을 받아보게 된다.
- 네트워크에서 통신하기 위해서는 IP 주소전에 MAC 주소를 먼저 알고 있어야 한다.
- ARP Cache Table을 참조하여 해당 MAC 주소가 저장되어 있지 않다면 ARP 프로토콜로 MAC 주소를 확인한다.
- 게이트웨이 MAC 주소를 ARP Cache Table에 맵핑하는 과정을 먼저 거친 후 다른 네트워크 대역과 통신한다.
- 3 계층 이상의 장비를 거치게 된다면 프레임 헤더의 MAC 주소가 변경되고, IP 헤더의 IP 주소는 그대로 유지된다.
3) 3계층 브로드캐스트 주소
3-1) Local(Limited) Broadcast 주소
- 동일 네트워크 내에서의 모든 노드로 브로드캐스트 패킷 전달
- 255.255.255.255
3-2) Directed Broadcast 주소
- 다른 대역의 네트워크에 브로드캐스트 패킷 전달
- IP 주소의 Network ID를 제외한 Host ID를 모두 1로 지정한 IP주소를 입력
- EX) 192.168.0.0/24의 Directed Broadcast 주소는 192.168.0.255이다.
4) ARP Cache Table
4-1) 'arp -a' 명령을 통해 ARP Cache Table을 확인가능하다.
- dynamic으로 설정된 것은 ARP에 의해 동적으로 설정된 MAC 주소이다.
- static으로 설정된 것은 관리자에 의해 정적으로 설정된 MAC 주소이며, 시스템 종료 전까지 유지된다.
4-2) 'arp -d' 명령을 통해 ARP Cache Table 캐시 내용 삭제가능하다.
- 윈도우의 경우 MAC 주소의 구분자로 "-"을 사용한다.
- 유닉스/리눅스의 경우 MAC 주소의 구분자로 ":"을 사용하며, IP를 명시해주어야 한다.
4-3) 'arp -s' 명령을 통해 static으로 MAC 주소를 설정가능하다.
- 유닉스/리눅스의 경우 'PERM(Permanent)'으로 설정된 정보가 보인다.
5) ARP Spoofing 공격(ARP Cache Poisoning)
- L2 스위치 환경에서 스니핑하기 위한 목적으로 사용되는 공격이다.
5-1) ARP Spoofing 공격방식
- 공격자가 A, B 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 패킷을 만들어 지속적으로 A, B 호스트에게 전송한다.
- ARP Cache Table의 동적인 정보는 일시적이기 때문에 공격자는 지속적으로 ARP Reply 패킷을 전송해야한다.
- ARP 프로토콜 특성 상 인증과정이 없기 때문에 A, B 호스트의 ARP Cache Table의 MAC 주소정보가 공격자의 MAC 정보로 변경된다.
- 공격자는 A, B 호스트가 ARP Spoofing 공격을 눈치채지 못하도록 IP Forward 기능을 활성화 시킨다.
- 이를 통해 A, B 호스트간 송수신되는 패킷을 공격자는 스니핑할 수 있게 된다.
- ARP Spoofing은 2계층 주소인 MAC 주소를 위조하여 트래픽을 스니핑하는 것으로 서로 다른 네트워크로 라우팅되지 않기 때문에 공격 대상도 동일 네트워크 대역에 있어야한다.
5-2) 실습
- 공격자 PC(Kali) ARP Spoofing을 위한 프로그램 설치
- #apt-get install dsniff
- #apt-get install fragrouter
- 공격자 PC(Kali)에서 A, B 호스트에게 각 변조된 ARP Reply 패킷을 지속적으로 전송 및 IP Forward 기능 활성화
- #arpspoof -i [인터페이스] -t [A 호스트 IP] [B 호스트 IP] : A 호스트에게 B 호스트의 MAC 주소를 공격자의 MAC 주소로 ARP Reply를 보낸다.
- #arpspoof -i [인터페이스] -t [B 호스트 IP] [A 호스트 IP] : B 호스트에게 A 호스트의 MAC 주소를 공격자의 MAC 주소로 ARP Reply를 보낸다.
- #fragrouter -B1 : IP Forward 기능 활성화
- A 호스트의 ARP Cache Table 및 와이어샤크 모습
2. IP(IPv4) 프로토콜
1) 개요
- 비연결형과 연결형의 구분은 가상/논리적인 연결통로를 맺어 통신하는지에 따라 구분된다.
- IP 프로토콜은 비연결형 프로토콜로 연결상태를 유지하지 않기 때문에 패킷 전송 순서를 보장하지 않는다.
- IP는 목적지 주소를 기반으로 라우팅을 담당하는 인터넷 계층의 대표 프로토콜이며, 라우팅은 라우팅 알고리즘을 통해 최적의 경로를 설정하여 목적지로 찾아가게 해주는 기술을 말한다.
2) IP 프로토콜 구조
- VER(4 bits) : IP의 버전정보, 일반적으로 IPv4 사용
- HLEN(4 bits) : 헤더의 길이, 4 bytes 단위로 표현, 즉 4 bits = 2⁴ = 16 X 4 bytes = 60 bytes로 최대길이 표현가능
- Service Type(8 bits) : 서비스 품질을 위한 용도, 현재 사용하지 않음
- Total Length(16 bits) : 헤더부와 데이터부를 포함한 전체 IP Packet의 길이
- Identification(16 bits) : 단편화 / 재조합 관련 필드
- IP 데이터그램을 여러조각으로 분할하는 것을 단편화(Fragmentation)이라하고 분할된 단편(Fragment)들을 조합하여 원본 IP 데이터그램을 완성시키는 것을 재조합(Reassembly)이라 한다.
- 단편화 전 원본 IP 데이터그램(Original Datagram)을 식별하기 위한 IP
- Flags(3 bits) : 단편화 / 재조합 관련 필드
- 첫 번째 필드 : 사용안함
- 두 번째 필드 : Don't Fragment bit
- 세 번째 필드 : More Fragment bit
- Fragmentation offset(13 bits) : 단편화 / 재조합 관련 필드
- IP의 특성상 원본 IP 데이터그램의 단편들이 순서대로 전송되는것이 아니므로 이를 순서대로 조합하기 위한 현재 단편의 상대위치(offset)를 저장한 필드
- 8 bytes 단위로 표현한다.
- Time To Live(8 bits) : IP 패킷의 생존시간을 지정하는 필드
- 패킷이 라우터/L3 스위치에 도착하면 TTL 값을 1 감소시키고 그 값이 0이 되면 해당 패킷을 폐기한다.
- 라우터/L3 스위치를 통해 패킷 라우팅을 하던 중 라우팅 테이블 오류 및 네트워크 장애로 무한 루핑(Looping)이 발생하여 목적지에 도달할 수 없는 패킷이 생존하여 네트워크 대역을 차지하는 상태를 방지하기 위함
- 일반적으로 Linux는 64, Window는 128, Unix는 255로 선정된다.
- Protocol(8 bits) : 상위 프로토콜을 식별하기 위한 프로토콜 번호를 저장하는 필드
- 상위 프로토콜과 다중화, 역다중화를 위한 식별값
- ICMP(1), TCP(6), UDP(17) 등이 있다.
3) IP 단편화(Fragmentation)
3-1) 개요
- IP 패킷/데이터그램은 MTU에 따른 단편화(Fragmentation)가 발생한다.
IP 단편화와 재조합이 발생하는 이유
- 데이터 링크 계층 프로토콜을 물리적인 네트워크 프로토콜이라고 하는데, 이는 물리적인 네트워크와 직접적인 연관이 있기 때문이다.
- 이러한 데이터 링크 계층의 프로토콜이 가진 물리적인 특성으로 인해 한 번에 데이터 전송을 할 수 있는 크기가 제한되어 있다. 이러한 제한을 MTU(Maximum Transmission Unit)라 한다.
- IP 프로토콜은 하위 물리적인 네트워크 프로토콜의 크기제한인 MTU 크기에 맞춰서 전달되어야 하기 때문에 IP 단편화와 재조합 기능이 존재하게 된다.
- IP 패킷이 LAN 또는 WAN의 다양한 프로토콜의 상위 프로토콜을 사용할 수 있는 이유가 이런 단편화를 이용한 패킷크기 조절이 가능하기 때문이다.
- 단편화는 최초 출발지뿐만 아니라 라우터/L3 스위치 중계구간의 MTU에 따라 추가적으로 발생하지만 패킷의 통신 효율을 위해 중계구간의 MTU가 달라진다고 해도 재조합되지 않으며 최종 목적지에서만 재조합된다.
3-2) 동작방식
4) IP 라우팅(Routing)
4-1) 라우팅 규칙
- 첫 번째 목적지 주소가 자신과 동일한 네트워크에 있다면 직접 호스트가 전송한다.
- 두 번째 목적지 주소가 자신과 동일한 네트워크에 속하지 않는다면 직접 전송이 불가하기 때문에 1차 경유지(Gateway) 주소를 라우팅 테이블에서 참조하여 찾는다.
- 라우팅 테이블은 임의의 목적지로 가기위한 경로 정보를 저장하고 있는 자료구조이다.
- "netstat -rn" 명령을 통해 호스트의 라우팅 테이블의 정보를 확인할 수 있다.
4-2) 라우팅 테이블 검색 방식 및 우선순위
- 검색방식 : IP 패킷의 목적지 IP와 라우팅 테이블의 netmask/genmask를 bit and(&)연산을 수행 후 라우팅 테이블의 destination 필드와 비교, 일치하는 경로를 선택하여 패킷을 전송한다.
- 패킷의 목적지 IP와 netmask/genmask를 bit and(&)연산 하는 이유는 목적지 IP에서 네트워크 ID 부분을 추출하기 위한 과정이다.
- 검색우선 순위
- 먼저 목적지 IP와 일치하는 경로를 찾는다.
- 일치하는 경로가 없으면 목적지 네트워크 주소와 일치하는 경로를 찾는다.
- 일치하는 경로가 없으면 default gateway(0.0.0.0)으로 보낸다.
4-3) 실습
- 라우팅 테이블("netstat -rn" OR "route")
- Destination : 목적지 호스트 또는 네트워크 주소
- Gateway : 목적지로 전송하기 위한 Gateway 주소
- Genmask : 범용(General) 목적의 마스크로 다음과 같은 역할을 수행한다.
- 목적지 호스트를 식별하기 위한 마스크 : 255.255.255.255
- 목적지 네트워크 ID를 식별하기 위한 마스크 : Netmask를 의미
- default gateway를 식별하기 위한 마스크 : 0.0.0.0
- Flags : 해당 경로에 대한 상태정보를 플래그
- U(Route is UP) : 경로가 활성화 되어있음(직접 송신가능)
- G(Use Gateway) : gateway를 사용함
- H(Target is a Host) : 목적지가 호스트를 의미
5) IP Spoofing
5-1) 개요
- IP 스푸핑(Spoofing)은 IP를 속이고 통신하는 공격으로 1995년 캐빈 미트닉이 이를 이용하여 실제 해킹을 시도하여 널리 알려진 공격방식이다.
- 시스템간 트러스트(Trust)관계를 이용, 트러스트 관계가 맺어진 서버와 클라이언트를 확인한 후 신뢰관계가 있는 클라이언트를 연결 불가능한 상태로 만들고 공격자가 클라이언트의 IP로 위조하여 접속하는 방식이다.
- 트러스트 관계 설정은 ID, PW기반의 로그인이 아닌 신뢰관계에 있는 IP를 등록하여 해당 IP로 접근하는 것을 허용해주는 방식이다.
- IP주소로 인증하고 로그인 없이 접속이 가능하도록 해주는 방식이다.
- 트러스트 설정은 다수의 시스템을 관리하는 관리자의 입장에서 ID, PW를 관리해야하는 어려움을 해결하고 접속과정에서 ID, PW가 스니핑되는것을 차단하지만, IP 스푸핑에는 매우 취약하다.
- 유닉스, 리눅스 시스템에서 트러스트 관계 설정파일로 '/etc/hosts.equiv'와 '$HOME/.rhosts' 파일이 있다.
5-2) 대응책
- 시스템 간 트러스트 설정을 사용하지 않는다. r계열 서비스 사용 X
- 반드시 사용해야할 경우 트러스트 된 시스템의 MAC 주소를 정적(static)으로 구성하여 단순히 IP만을 위조한 접속을 차단한다.
5-3) $HOME/.rhosts, /etc/hosts.equiv 사용금지
- r계열 서비스(rlogin, rsh, rexec 등)를 통한 원격 접속은 보안상 매우 취약하여 서비스 포트가 열려 있을 경우 중요 정보 유출 등 침해사고의 원인이 될 수 있다.
- /etc/hosts.equiv 및 $HOME/.rhosts 파일 소유자를 root 또는 해당 계정으로 변경한다.
- chown root /etc/hosts.equiv
- /etc/hosts.equiv 및 $HOME/.rhosts 파일 권한을 600이하로 변경한다.
- chmod 600 /etc/hosts.equiv
- /etc/hosts.equiv 및 $HOME/.rhosts 파일에서 "+"를 제거하고 반드시 필요한 호스트 및 계정만 등록한다.
6) IPv6
6-1) 개요
- IPv6는 IPv4 주소가 고갈되는 문제를 해결하기 위하여 새로운 128비트 체계로 2¹²⁸개의 주소를 갖는 인터넷 프로토콜 주소를 말한다.
- IPv6 주소는 16비트 단위로 구분하며 각 단위는 16진수로 변환되어 콜론(:)으로 구분하여 표기한다.
- 128비트의 앞에 64비트는 네트워크 주소를 의미하고 뒤에 64비트는 호스트 주소를 의미한다.\
6-2) 장점
- 확대된 주소 공간
- 단순해진 헤더 포맷
- Pv4 주소 헤더의 불필요한 필드를 제거하여 보다 빠른 처리가 가능
- 간편해진 주소 설정 기능
- IPv6 프로토콜에 내장된 주소 자동 설정 기능(네트워크 대역정보 + MAC 주소)을 이용하여 플러그 앤 플레이 설치가 가능
- 강화된 보안성 및 개선된 모바일 IP
6-3) IPv6 전환기술
- 듀얼스택(Dual Stack)
- IPv4와 IPv6 프로토콜을 동시에 설정하여 통신 상대에 따라 선택적으로 사용할 수 있도록 하는 방식
- 호스트, 라우터 등에 듀얼스택을 적용하여 IPv4와 IPv6 패킷을 모두 처리할 수 있도록 해준다.
- 장기적으로 보았을 때 가장 추천되는 방식이다.
- 터널링(Tunneling)
- IPv4 네트워크를 경유하여 IPv6 네트워크 간 통신을 위한 방식으로 IPv4 네트워크를 통과하는 가상의 경로를 만들어 통신하는 방식을 말한다.
- 터널링 기술은 호스트와 라우터에서 IPv6 패킷을 IPv4 패킷으로 캡슐화하여 전송함으로써 캡슐화된 IPv6 패킷이 IPv4 네트워크를 통과하게 하는 기술이다.
- 주소 변환(Address Transmission) 또는 헤더 변환
- 주소 변환 방식은 IPv4 주소를 IPv6 주소로 변환하거나 IPv6 주소를 IPv4 주소로 변환하여 통신하는 방식을 말한다.
- 패킷의 앞부분에 변환 헤더를 추가함으로써 주소를 변환하여 송신하고 수신측에서 변환 헤더를 제거하는 방식으로 통신한다.
- 소수의 IPv6 사이트가 대규모의 IPv4 인터넷에 연결되는 전환의 초기 단계와 소수의 IPv4 사이트가 대규모의 IPv6 인터넷에 연결되는 전환의 마지막 단계에서 사용할 수 있다.
반응형
'정보보안기사 필기 > 1. 정보보안 일반' 카테고리의 다른 글
정보보안기사 필기 3-4. 네트워크 보안(네트워크 관리 명령어) (0) | 2022.04.19 |
---|---|
정보보안기사 필기 3-3. 네트워크 보안(ICMP, TCP, UDP 프로토콜) (0) | 2022.04.19 |
정보보안기사 필기 3-1. 네트워크 보안(OSI 7 Layer, 캡슐화, 다중화) (0) | 2022.04.19 |
정보보안기사 필기 1-6. 정보보호 일반 요점 정리(2) (0) | 2022.04.19 |
정보보안기사 필기 1-5. 정보보호 일반 요점 정리(1) (0) | 2022.04.19 |