본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(18일차)

by Challenge programmers 2023. 11. 15.

오늘 학습 주제

1. ICMP

2. Ethernet Frame 구조

3. ARP(Address Resolution Protocol)

4. Wireshark Tools

5. 그외 기능들

6. Tshark

 

 

 

 

ICMP


- 개요 -

ICMP(Internet control Message Protocol)
정의 인터넷 프로토콜 스위트(IP 스위트)에 속하는 네트워크 계층의 프로토콜 중 하나로
네트워크에서 발생하는 여러 제어 메시지와 오류 메시지를 전송하는 데 사용
특징 • IP Protocol은 송신시스템과 수신시스템 사이의 패킷을 최적의 경로를 통해 전달하는 것이 주된 목적

• IP Protocol은 신뢰성이 없고 비연결형 Protocol

• IP Protocol은 에러 발생 원인이나 진단 기능 및 상황 정보를 지원하지 않음


↳ ICMP Protocol Support (IP의 단점 보완)

 

 

< ICMP 메시지 종류 >

오류 보고 메시지 (Error Reporting Massage)

- IP 패킷 처리 도중 발생한 문제 보고

 

질의 메시지 (Query Massage)

- 다른 호스트로부터 특정 정보 획득

- 네트워크 문제 진단

 

 

< ICMP Header >

 

ICMP Header
정의 인터넷 프로토콜 스위트(IP 스위트)에 속하는 네트워크 계층의 프로토콜 중 하나로
네트워크에서 발생하는 여러 제어 메시지와 오류 메시지를 전송하는 데 사용
특징 • 총 8Byte로 구성

Type : ICMP의 업무, 즉 어떠한 용도로 사용되는 ICMP를 나타냄

Code: ICMP Type의 세부 내용을 나타내며 Type과 조합을 이루어 ICMP 메시지의 목적과 용도를 나타냄

Checksum: ICMP 메시지의 이상 유무 판단

 

 

< ICMP Code>

 

 

 

 

Ethernet Frame 구조


Ethernet Frame
정의 네트워크에서 데이터를 전송하는 데 사용되는 기본적인 단위
특징
  1. 프리앰블(Preamble): 8바이트로 구성된 특별한 비트 시퀀스로, 프레임의 시작을 나타냄

  2. 목적지 MAC 주소(Destination MAC Address): 6바이트로 구성된 이더넷 프레임의 목적지
    네트워크 인터페이스 카드의 물리적인 주소를 나타냄

  3. 출발지 MAC 주소(Source MAC Address): 6바이트로 구성된 이더넷 프레임을 전송하는
    네트워크 인터페이스 카드의 물리적인 주소를 나타냄

  4. 유형/길이 필드(Type/Length Field): 데이터 필드의 유형이나 길이를 나타내는 필드로, 프레임이
    어떤 종류의 프로토콜 데이터를 포함하는지를 지정

  5. 데이터(Data): 이더넷 프레임에 실제로 전송되는 데이터 부분으로 최소 크기는 46바이트이며,
    최대 크기는 1500바이트

  6. FCS (Frame Check Sequence): CRC (Cyclic Redundancy Check)를 사용하여 프레임의
    오류를 감지하는 데 사용되는 체크섬 값

 

 

 

 

ARP(Address Resolution Protocol)


ARP(Address Resolution Protocol)
정의 네트워크 상에서 두 장치 간에 물리적인 MAC 주소와 논리적인 IP 주소를 매핑하는 역할의 프로토콜
특징
  1. 하드웨어 타입 (Hardware Type): 2바이트로 이루어진 필드로, 사용되는 네트워크의 하드웨어 종류를 지정하며
    이더넷을 사용하는 경우 1(0x0001)로 설정
  2. 프로토콜 타입 (Protocol Type): 2바이트로 이루어진 필드로, 상위 계층 프로토콜의 종류를 지정하며
    주로 IPv4를 사용하므로 0x0800으로 설정
  3. 하드웨어 주소 길이 (Hardware Address Length): 1바이트로 이루어진 필드로, 하드웨어 주소의 길이를
    바이트 단위로 지정하며 이더넷 MAC 주소의 길이는 6바이트이므로 6으로 설정
  4. 프로토콜 주소 길이 (Protocol Address Length): 1바이트로 이루어진 필드로, 논리적인 주소의 길이를
    바이트 단위로 지정하며 IPv4 주소의 길이는 4바이트이므로 4로 설정
  5. 오퍼레이션 코드 (Operation Code): 2바이트로 이루어진 필드로, ARP 메시지의 종류를 나타냄
    주요 값은 다음과 같다

    • 1 (Request): MAC 주소를 IP 주소로 매핑하기 위한 요청 메시지
    • 2 (Reply): MAC 주소를 IP 주소로 매핑하기 위한 응답 메시지
  6. 출발지 MAC 주소 (Sender Hardware Address): 6바이트로 이루어진 필드로, ARP 메시지를
    전송한 장치의 MAC 주소를 나타냄
  7. 출발지 IP 주소 (Sender Protocol Address): 4바이트로 이루어진 필드로, ARP 메시지를 전송한 장치의
    IP 주소를 나타냄
  8. 목적지 MAC 주소 (Target Hardware Address): 6바이트로 이루어진 필드로, ARP Request 메시지에서는
    0으로 채워지고, ARP Reply 메시지에서는 목적지 장치의 MAC 주소를 나타냄
  9. 목적지 IP 주소 (Target Protocol Address): 4바이트로 이루어진 필드로, ARP 메시지의 목적지 장치의
    IP 주소를 나타냄

 

- ARP Request -

ARP Request
정의 ARP 프로토콜을 사용하는 장치가 다른 장치의 MAC 주소를 알고자 할 때 발생
과정
  1. ARP Request 생성:
    • Client가 Server와 통신하려고 할 때, Client는 목적지 IP 주소(Server의 IP 주소)를 가지고
      ARP Request 메시지를 생성
    • ARP Request 메시지에는 출발지 MAC 주소, 출발지 IP 주소, 목적지 MAC 주소(0으로 설정),
      목적지 IP 주소가 포함
  2. ARP Request 브로드캐스트:
    • Client는 ARP Request 메시지를 로컬 네트워크 상에 브로드캐스트
    • 브로드캐스트는 로컬 네트워크에 있는 모든 호스트에게 전송되며, Server도 이 ARP Request
      메시지를 수신

 

 

- ARP Reply -

ARP Reply
정의 ARP Request 메시지에 대한 응답으로, 특정 IP 주소에 해당하는 물리적인 MAC 주소를 제공
특징
  1. 목적지 호스트의 응답:
    • Server는 ARP Request 메시지를 수신하고, 자신의 IP 주소와 매칭되는 MAC 주소를 포함한
      ARP Reply 메시지를 생성
    • ARP Reply 메시지에는 출발지 MAC 주소, 출발지 IP 주소, 목적지 MAC 주소(Server의 MAC 주소),
      목적지 IP 주소가 포함
  2. ARP Reply 전송:
    • Server는 ARP Reply 메시지를 Client로 전송
    • 이때 ARP Reply는 직접적으로 Client로 전송되며, 브로드캐스트가 아님
  3. 목적지 호스트의 ARP 캐시 업데이트:
    • Clinet는 ARP Reply 메시지를 수신하고, 자신의 ARP 캐시 테이블을 업데이트하여 Server의
      MAC 주소를 저장
    • 이후 Clinet는 목적지 Server와 직접적으로 통신 가능

 

 

 

 

Wireshark Tools


- Filter -

   캡처 필터(Capture Filter) 디스플레이 필터(Display Filter)
특징 - 패킷이 캡처될 때 지정

- 지정된 표현식에 포함/제외된 패킷만 캡처
- 캡쳐 후 원하지 않는 패킷을 숨김

- 지정된 표현식을 기반으로 원하는 패킷을 보기

 

 

- Capture Filter  -

수집방법 예시
특정 IP 주소에서 /로 오는 트래픽 수집 • host 10.3.1.1
• host 2406:da00:ff00::6b16:f02d
• not host 10.3.1.1
• src host 10.3.1.1
• dst host 10.3.1.1
• host 10.3.1.1 or host 10.3.1.2
• host www.espn.com
IP 주소 범위에서/로 오는 트래픽 수집 • net 10.3.0.0/16
• net 10.3.0.0 mask 255.255.0.0
• ipv6 net 2406:da00:ff00::/64
• not dst net 10.3.0.0/16
• dst net 10.3.0.0/16
• src net 10.3.0.0/16
브로드캐스트 또는 멀티캐스트 트래픽 수집 • ip broadcast
• ip multicast
• dst host ff02::1
• dst host ff02::2
MAC 주소 기반의 트래픽 수집 • ether host 00:08:15:00:08:15
• ether src 00:08:15:00:08:15
• ether dst 00:08:15:00:08:15
• not ether host 00:08:15:00:08:15
특정 애플리케이션에 대한 트래픽 수집 • port 53
• not port 53
• port 80
• udp port 67
• tcp port 21
• portrange 1-80
• tcp portrange 1-80
• port 20 or port 21
• host 10.3.1.1 and port 80
• host 10.3.1.1 and not port 80
• udp src port 68 and udp dst port 67

 

 

- Display Filter -

Display Filter
적절한 디스플레이
필터 문법 사용
• 대소문자 구분

• 적색 배경 - 문법 검사 실패
- 동작하지 않음

• 녹색 배경
- 문법 이상 없음
- ‘논리 검사’는 하지 않음
  (예) http && udp

• 황색 배경
- 필터가 원하는 대로 동작하지 않는 것을 경고
  (예) ip.addr != 10.1.1.1
디스플레이 필터 문법 • arp

ip

ipv6

tcp
연산자 비교 ==(eq)
ip.src == 10.2.2.2

!=(ne)
tcp.srcport != 80

>(gt)
frame.time_relative > 1

< (lt)
tcp.window_size < 1460

>=(ge)
dns.count.answers >=10

<=(le)
ip.ttl <= 10
수집방법 예시
단순 IP 주소 호스트에게/부터의
트래픽 필터링
• ip.addr == 10.3.1.1
• !ip.addr ==10.3.1.1
• ipv6.addr == 2406:da00:ff00::6b16:f02d
• ip.src==10.3.1.1
• ip.dst == 10.3.1.1
• ip.host == www.wireshark.org
주소 범위에게/부터의 트래픽 필터링 • ip.addr > 10.3.0.1 && ip.addr < 10.3.0.5
• (ip.addr >= 10.3.0.1 && ip.addr <= 10.3.0.6) && !ip.addr ==10.3.0.3
• ipv6.addr == fe80:: && ipv6.addr < fec0::
IP 서브넷에서/으로부터 트래픽 필터링 • ip.addr == 10.3.0.0/16
• ip.addr == 10.3.0.0/16 && !ip.addr ==10.3.0.3
• !ip.addr == 10.3.0.0/16 && !ip.addr ==10.2.0.0/16

 

 

- Capture Filter VS Display Filter -

  Capture Filter Display Filter
구문 예제 host 172.16.1.1 ip.host == 172.16.1.1
src host 172.16.1.1 ip.src ==172.16.1.1
dst host 172.16.1.1 ip.dst ==172.16.1.1
port 8080 tcp.port == 8080
!port 8080 !tcp.port = 8080

 

 

- Conversation Filter -

Conversation Filter
정의 네트워크 트래픽을 분석하고 필터링하여 원하는 특정한 대화 또는 통신을 감지하거나 차단하는 기능
특징 • 관심 있는 데이터를 빠르게 분석 가능

• 필터 방법 2가지
- Conversation
- Stream Follow

 

 

 

 

그외 기능들


- 흐름 그래프 -

 

흐름 그래프
정의 호스트 간의 연결에 대한 열-기반 보기를 포함
방법 dns_recursivequery_server.pacpng 열기
> 두번째 패킷 선택

> Statistics
> TCP Stream Graphs
> Round Trip Time Graph

 

 

- 전문가 정보 -

전문가 정보
정의 프로토콜 패킷 내의 특정 상태나 캡처 파일 문제 해결 시 유용
특징 - Chat : 통신에 대한 기본 정보

- Note : 정상적인 통신의 일부 일수 있는 비정상적인 패킷

- Warning : 대부분 정상 통신이 아닌 비정상적인 패킷

- Error : 패킷 또는 분석기가 해석하는 중 오류 발생
방법 Download_slow.pacpng 열기
> Analyze
> Expert Information

 

 

- 트래픽 통계 -

트래픽 통계
정의 대용량 캡처 파일의 구성을 이해하고자 할 때 유용
특징 길이에 따라 패킷 분포를 확인
방법 Statistics
>Packet Lengths

 

 

 

 

Tshark


  LINUX MS-Window
패킷수집 TCPdump TShark
패킷분석 Wireshark

 

Wireshark는 라인별 분석 > 캡쳐율이 낮다(수집율이 낮다) = 수집한 데이터의 신뢰도가 낮다

 

  Wireshark Tshark
인터페이스 그래픽 사용자 인터페이스(GUI) 명령줄 인터페이스(CLI)
리소스 GUI를 통해 풍부한 기능을 제공하기에
많은 시스템 리소스 필요
명령줄로 실행되기에
리소스 사용이 적음
자동화 스크립트 또는 추가 도구가 필요 자세한 네트워크 분석을
자동으로 수행 가능