본문으로 바로가기

post by WHITEHATS

웹기반 정보보안 엔지니어 과정 160225 17번째 강의


2-3 IP (Internet Protocol)

•IP Header
     -Header 크기 → Option필드의 크기에 따라 가변적 → 최소 20byte ~ 최대 60byte
     


     


2-3 IP (Internet Protocol)

•Version(4bit)
     -IP의 version 정보
     -IPv6가 개발되면서 별도의 프로토콜을 발표 → version 4로 고정

•IHL(4bit)
     -IP Header Length
     -가변적인 IP heade의 크기를 명시 함
     -단위 → 4byte

•Different Service(8bit) DS
     -packet우선순위 지정 → Router에서 우선순위를 확인하고 Routing을 수행
          --우선순위(priority)(3bit) -> 값은 낮을수록 우선순위가 낮고 값이 높을수록 우선순위가 높다!
               ---000 → 일반(routine)
               ---001 → 우선적(priority)
               ---010 → 긴급(Immediate)
               ---011 → 높음(flash)
               ---100 → 매우 높음(Flash Override)
               ---101 → CRITIC/ECP
               ---110 → Internetwork control
               ---111 → Network Control
          --D →  지연
          --T → 처리율
          --R → 신뢰성


2-3 IP (Internet Protocol)

•Total Length(2byte = 16bit) - 페이로드의 사이즈를 이용하려고 사용
     -IP packet의 크기 → IP Header + Payload
     -최대 사이즈 → 네트워크 환경 별 MTU

•Identification(2byte = 16bit) - Identifier(식별자) 
     -IP 계층에서 단편화가 수행 되기 전 원본 Data의 식별 값 (재조립할때 정확하게 원본데이터를 유지하기 위해 식별값을 부여한다.)
     -통신의 시작 data는 Random Number로 할당되며 연속된 통신의 다음 데이터는 +1증가한 값을 할당 받음

•IP Flags(3bit)
     -단편화 및 단편화 조각의 마지막을 체크
          --X →  예약용
          --D → (Don’t Fragment) 단편화 여부를 알림 (안짤렸냐? -> 0 부정 1 긍정)
               ---0 → 단편화 됨
               ---1 → 단편화 안됨
          --M → (More Fragment) 단편화의 마지막을 알림 (네 뒤에 단편화 조각이 있냐? -> 0부정 1긍정)
               ---0 → 마지막 단편화 data, 단편화 되지 않음
               ---1 → 마지막 단편화 data가 아님

•Fragment Offset(13bit) (재조립할때 마찬가지로 순서 번호를 부여해서 원본데이터를 정확히 유지 하기 위한 것)
     -단편화 data의 순서를 알림
     -원본 data(Payload)의 단편 되었을 때 시작 크기를 순서번호로 사용 함

ex) ping ~~~~
     
     TCP/IP
         -ICMP (SDU: 3000)                 MTU = 1500 (= packet = ip header + SDU)
         -IP                                         I:100                                              1480
                                                      0 | 1480 | 2960 |  2999
                                                      단편화의 구역이 3개가 나온다!
                                                     
                                                      IHL: 20 TL:1500            
                                                      I : 100, D=0, M=1             -> 0~1479
                                                      FO(flagment offset) =0

                                                      IHL:20 TL:1500
                                                       I : 100, D=0, M=1            -> 1480~2959
                                                       FO = 1480

                                                       IHL=20 TL:60
                                                       I : 100, D=0, M=0            -> 2960~2999
                                                       FO = 2960

     실습
     
     www.wireshark.org 사이트에서 wireshark최신버전을 받는다!
     

     운영체제 버전 맞춰서 다운로드 !

     

     설치 창은 다 넥스트!~!@

     

     와이어 샤크 실행화면
     이더넷 더블클릭!
     
     

     첫번째 창 : 현재 서비스 되는 것을 실시간 보여준다.
     두번째 창 : TCP/IP 의 프로토콜 구조를 보여준다.
     세번째 창 : 실제 데이터 값을 보여준다.
     이 프로그램으로 단편화 되는 과정을 살펴보자!
     
     


     

     핑을 날려보자~ 근데 그냥 날리면 MTU 사이즈를 초과하지 않고 보내서 단편화가 이루어 지지 않는다..
     그래서 옵션 -l 을 이용해서 전송할 버퍼 크기를 조정해서 날려본다!
     
     

     
     

     새로고침이다. 누르고 바로 핑날리기!

     cmd엔터치고 바로 캡쳐 중지! (빨강색 네모)

     

     3번 클릭해보자!
     이더넷 2 프로트콜 확인 가능하다!
     단편화 되는것도 확인가능하다~

    

2-3 IP (Internet Protocol)

•Time to Live(8bit)
     -Network 환경에서 Packet이 생존할 수 있는 시간
     -Looping에 의한 Network Down을 회피
     -Router가 데이터를 내보낼 때 1씩 감소 됨 → 0으로 만든 장비에서 폐기 함
          --Default : 운영체제의 종류에 따라 정해져 있음
               ---Window → 128
               ---Linux → 64
               ---ECT.(router) → 255

•Protocol(8bit) = (ethernet 2 에 type 이랑 같다)
     -상위계층 프로토콜의 종류 → ICMP, UDP, TCP …

•Header Checksum(16bit)
     -IP header에 대한 오류 검출 (중간에 비트의 손상이 있으면 받았을때 checksum 이랑 보낼때 checksum 이랑 다르다.)
     -Header를 word 단위(2byte)로 checksum
     -header checksum이 약해서 보안성이 떨어진다. (실시간 변조가 가능하기 때문)

•Source IP Address(4byte = 32bit)
     -출발지 IP 주소

•Destination IP Address(4byte = 32bit)
     -목적지 IP 주소

•IP Options(0~40byte) -> 거의 안쓴다!
     -IP packet을 제어 및 관리하기 위한 추가 정보
          --Source Routing → 출발지 경로 지정 (loose(무조건 경로를 따르지 않아도 된다. 경로 지정된 연결에 문제가 생기면 우회해서 경로를 따른다.), strict(무조건 경로를 따라야 한다. 경로 지정된 연결에 문제가 생기면 폐기한다. ICMP에게 정보를 주고 출발지에게 알린다.))
          (공격자는 소스 라우팅을 이용해서 방화벽이 약한쪽으로 우회해서 공격할 수 있다, 하지만 요즘 라우터들은 소스 라우팅을 받아들이지 않기 때문에 ip옵션은 사용하지 않는다.)
          --Traceroute → 패킷 전송 경로 확인
          --Security → IP packe의 보안등급 지정
     -현재 대부분 사용되지 않음
     -Option 필드가 사용된 경우 IP Header의 전체 크기가 32bit 단위가 되지 않으면 폐기 됨
          --Padding → 쓰레기 값으로 32bit 단위를 맞춰 줌


2-3 ARP (Address Resolution Protocol)

3계층에서 무조건 ICMP랑 ARP 프로토콜이 붙는건 아니다.
특수한 경우에만 붙는다.
ex : ping
그리고 ARP 프로토콜에 IP프로토콜은 절대 붙지 않는다.

•ARP 특징
     -주소 재 해석
     -논리적인 주소(IP)에 해당하는 장비물리적인 주소(MAC)를 획득
     -주로 목적지 MAC 주소를 확인할 때 사용 됨
     -IP 하위에서 동작하는 Layer 3(Internet 계층) 프로토콜
     -특정 프로그램에 의해 호출되었을 때만 동작 함
     -다양한 네트워크 환경에서 동작할 수 있음
     -ARP 동작 (요청과, 응답을 기반으로 함)
          --Request → Broadcast
          --Reply → Unicast

•ARP 종류
     -ARP
          --논리적인 주소에 해당하는 장비의 물리적인 주소를 획득
     -RARP (Reverse)
          --물리적인 주소에 해당하는 장비의 논리적인 주소를 획득
     -Gratuitous ARP
          --IP 충돌 감지
          --Gateway 이중화
     -Proxy ARP
          --IP대역은 같지만 물리적인 장비로 분리된 네트워크 통신을 위해 사용 됨
     
•ARP Packet
     -Header 크기 → 28byte(Ethernet 환경에서 사용된 경우)
     -일반적으로 상위 계층이 존재하지 않으며 필요에 따라 운영체제에 의해 호출되어 사용 됨
     


•Hardware Type
     


•OPcode
     



2-3 ARP (Address Resolution Protocol)

•Hardware Type(16bit) -> 대부분 이더넷...
     -ARP가 동작할 Network 환경 정보
     -네트워크 종류를 통해 ARP통신에 사용할 물리적인 주소의 종류를 구별 함

•Protocol Type(16bit)
     -논리적인 주소의 종류
     -일반적으로 IP가 사용

•Hardware Address Length(8bit)
     -Hardware type을 통해 확인된 물리적인 주소의 크기를 byte 단위로 명시

•Protocol Address Length(8bit)
     -논리적인 주소의 크기를 byte 단위로 명시

•OPcode(16bit)
     -ARP packet의 종류
     -ARP packet이 수행하는 동작이 지정 됨
     15번 Frame Relay로 타입이 잡히면 OPcode는 8, 9 번을 이용

•Sender Hardware Address(48bit)
     -ARP를 송신하는 장비의 물리적인 주소
     -ARP reply → 획득하고자 하는 상대방의 물리적인 주소

•Sender Protocol Address(32bit)
     -ARP를 송신하는 장비의 논리적인 주소

•Target Hardware Address(48bit)
     -ARP를 수신 할 장비의 물리적인 주소
     -일반적인 ARP가 획득해야 할 정보
          --ARP Request(요청-> 이 맥주소를 모르겠어요~) → 00:00:00:00:00:00

•Target Protocol Address(32bit)
     -ARP를 수신 할 장비의 논리적인 주소


2-3 ARP 동작과정


목적지의 맥주소를 몰라서 데이터가 폐기...


     2계층 헤더 붙여준당 목적지 모르니까 다 뿌려준다 (브로드 캐스팅 ) FF 값을 붙여준다

3계층에서 ip 확인해보니까 다르다. 그래서 폐기한다.


응답은 유니캐스트로 바로 들어간다.












2-3 ARP Cache

•ARP Cache
     -시스템에서 사용할 IP에 해당하는 MAC주소를 일시적으로 저장하는 기능
     -통신 속도의 향상을 위해 사용 됨

•ARP Cache Table
     -ARP Cache 정보를 기억하는 저장 공간 → Memory

•ARP Cache 종류
     -동적(dynamic) → ARP에 의해 획득된 정보
     -정적(Static) → 시스템에 의해 미리 지정된 정보 ( 보안기법 )

   


2-3 ARP Cache 관리

•ARP 명령어
     -운영체제에서 기본적으로 지원되는 ARP관리 프로그램
     


•Netsh 명령어
     -Windows에서 네트워크의 전반적인 관리를 지원하는 프로그램
     -Windows 7부터 기존의 ARP를 이용한 관리가 제한 됨
     

     맨 아래 show 오타 -> delete로 수정




2-3 ICMP (Internet Control Message Protocol)

•ICMP(Internet Control Message Protocol)
     -네트워크 관리 및 오류 보고을 위해 사용 됨
     -IP의 비 신뢰성, 비 연결성의 단점을 보완하고자 사용되는 IP Supported Protocol
     -IP보다 상위에서 동작하는 Layer 3 Protocol
     -특정 프로그램에 의해 호출되었을 때만 동작 함
     -Message 형식으로 정보를 알림

•Message 종류
     -Type 필드의 값을 통해 구분 됨
     -정보 교환 및 관리 메시지
          --echo 요청/응답(한쌍), Router 광고/응답, Timestamp 요청/응답, 정보 요청/응답, mask 요청/응답, 경로 추적
     -오류 보고 메시지
          --목적지 접근불가, 송신 속도 낮춤, 경로 재설정, 시간초과, 인자문제


2-3 ICMP 메시지 종류

     

    3번타입 코드 메세지
     0, 1, 3, 5번이 자주보게 될 값..
     0번 : ip패킷이 출발지를 출발해서 목적지에는 도착을 못해서 죽었다는 뜻..(목적지 네트워크 몰라서->경로설정 잘못한 문제)
     1번 : 보낸 네트워크까진 갔는데 컴퓨터를 못찾았다. (아이피를 잘못 입력했다는것.. , 시스템아이피 문제)
     3번 : 메세지를 받을 프로그램이 실행되지 않을 때 - 서버 동작여부 확인
     5번 :  출발지 경로 설정 실패 - 엄격한 소스 라우트 결과 보고 & 소스 라우트 기술 제한

     5번타입 코드 메세지
     1, 3 번사용한다. 0, 2번사용 안한다.
 
     11번 코드 메세지 -> 시간 초과 될때 날아옴..
     

     결론은 ICMP 메세지는 오류메세지라고 알면된다..





2-3 ICMP 필수 헤더

•ICMP Header
     -필수 헤더(8byte) + 메시지 종류에 따른 data
     -메시지 종류에 따라 선택적 필드의 구성이 달라짐

•ICMP 필수 Header
     



2-3 ARP (Address Resolution Protocol)

•Type(8bit)
     -ICMP Message를 종류를 구분
          --정보 교환 및 관리 메시지 → 0/8, 9/10, 13/14, 15/16, 17/18, 30
          --오류 보고 메시지 → 3, 4, 5, 11, 12

•Code(8bit)
     -메시지 종류 따른 세부 종류 및 정보
     -code가 사용되지 않는 type에서는 0으로 지정되며 null값을 의미 함

•CheckSum
     -ICMP header의 오류검사 값
     -IP의 오류검사 방식과 동일 함

•Other Message Specific Information …
     -선택적 추가 정보가 부여되는 필드
     -메시지 종류에 따라 필드 구성이 달라지며 추가로 필요한 정보가 지정 됨
     -예
          --정보 교환 및 관리 메시지(Echo)
               ---연속적으로 발생하는 echo 메시지의 식별 값 또는 순서번호 정보
     -오류 보고 메시지(redirect)
          --경로 재설정을 위한 정보


2-3 ICMP (Internet Control Message Protocol)

•정보 교환 및 관리 메시지 형식
     


•오류 보고 메시지 형식
     -오류를 발생시킨 원본의 정보를 알리기 위해 오류의 원본인 IP packet의 헤더와 payload의 8byte값을 ICMP data값으로 추가하여 메시지를 생성 함
      




2-3 Layer 3 장비

•Router
     -Routing을 통해 결정된 경로로 Switching을 수행하는 장비
     -다른 종류의 네트워크를 연결
     -WAN을 구성하는 주요 장비
     -Broadcast Domain을 분리하는 장비 → 물리적으로 네트워크를 분리 함

•Broadcast Domain
     -하나의 네트워크 영역
     -브로드캐스트 데이터가 전달될 수 있는 영역
     -Router → Broadcast Domain 분리
          --목적지 IP가 Broadcast인 데이터를 차단하므로 Router에 의해 Broadcast 데이터가 전달될 수 있는 영역이 분리 됨
     -Switch, Hub → Broadcast Domain 확장

•ETC.
     -L3 Switch
     -공유기 …

     


2-3 Layer 3 장비

•Routing
     -최종 목적지 네트워크로 향하는 최적의 경로를 결정하는 일련의 과정
     -최적의 경로 학습하여 Routing Table에 기록
     -전달 받은 Packet 방향을 결정하여 Switching이 수행 됨 → 방향정보가 없으면 packet을 폐기 함
     




     



whitehat 하얀모자 정보보안


'▶ 웹기반 정보보안 과정 > Network' 카테고리의 다른 글

160226 18번째 강의 - 2  (0) 2016.02.27
160226 18번째 강의 - 1  (0) 2016.02.27
160224 16번째 강의  (0) 2016.02.25
160223 15번째 강의  (0) 2016.02.24
160222 14번째 강의  (0) 2016.02.24

}