*데이터 전송 프로토콜

 

1) TCP (Transmission Control Protocol)

 

- Layer 4 계층 프로토콜

 

- 연결 지향성 프로토콜 : 상대방과 통신 수립 연결을 실시하고 난 이후 데이터 요청 및 응답 실시

 

- 3-Way 핸드 쉐이킹 동작 실시 (syn,ack로 3번교환)

 

- 정상적으로 TCP연결이 되는지 알수있어야 함 (공격인지 아닌지 확인할수있어야 함)

 

 

  A(클라이언트)                                            B(서버)

데이터 서비스 요청                               데이터/서비스 응답

   Syn ->
                                                           <- Syn, Ack
   Ack -> 
                            통신 수립 완료 
                            (ESTABLISHED)

 

 

 

*TCP Control Flag (6bit)*

 

 - urg (1.....) : 긴급한 데이터 표기


 - ack (.1....) : 확인 응답/승인


 - psh (..1...) : 수신처리 이후, 상위 프로세스로 처리


 - rst (...1..) : 강제 종료


 - syn (....1.) : 통신 개시


 - fin (.....1) : 정상적인 종료

 

 

                  URG             ACK            PUSH           RESET           SYN             FIN

2^7             2^6             2^5             2^4              2^3            2^2             2^1

128              64              32                16                8                 4                2

 

 

 

[참고]공격자의 공격 방법 (보안 쪽에서 자세히 다룸)

 

공격 유형

 

0. 정보 수집

 

- 사회 공학적 기법 : 사람 , 장소 , 사물적으로 정보 수집
  90%의 정보유출은 사회 공학적 기법으로 유출됨

 

- 풋 프린팅 : 기술적으로 정보 수집

 


1. 스푸핑 공격 (Spoofing atk)

 

- 변조 공격

 

- 공격자의 위치 및 주소 노출 방지

 

- 공격자에게 돌아오는 패켓 수신 방지

 

- 정보 유출 및 해킹

 

Ex) IP 스푸핑 , MAC 스푸핑 , ARP 스푸핑 , DHCP 스푸핑

 


2. 플러딩 공격 (Flooding atk)

 

- 대량 패켓 전송 공격

 

- 시스템 부하 , 다운 , 재부팅 발생 , 서비스 거부(DOS)

 

Ex) TCP Syn Flooding , ICMP Flooding , UDP Flooding

 

 

#서버 부화 , 플러딩 공격


TCP SYN Flooding (DOS공격)

 

                공격자                                          웹-서버

           SYN(초당 1만개) ->

                                                                 서버 부화

 

 

 

 

 

#데이터 스트림 서비스 : 전송효율과 수신효율을 극대화 하기 위해 사용
                                데이터 단위 : 세그먼트

 

 

 

 

 

#흐름 제어 기능 : stop & wait 기법 -> 슬라이딩 윈도우 기법 

 

- 슬라이딩 기법이 나온이후 stop&wait보다 많이 사용됨

 

 

 

*stop & wait : 송신한 세그먼트에 대한 Ack를 수신해야지만, 그 다음 세그먼트 전송
                   (다음 세그먼트 송신 처리 지연 발생 및 Ack 양 많음)

 

 

                              Stop & wait

                  A                                    B

 

                 1 ->
                                                  <- Ack 1

                 2 ->
                                                  <- Ack 2

                 3 ->
                                                  <- Ack 3

 

 

 

 

 

*슬라이딩 윈도우 : 수신측 세그먼트 처리양에 맞게 송신측에서 세그먼트 다수 전송
                         (세그먼트 송신 지연 발생 및 Ack 양 최소함)

 

 

 

 

                                슬라이딩 윈도우

                   윈도우 : 송수신 할 수 있는 세그먼트 양


                    A                                       B

 

                   1->
                                                        <- Ack 2


                 2,3,4,5->                                                       

                                                         <- Ack 6


              6,7,8,9,10,11,12->

                                                        

 

 

 

 

*혼잡 제어 기능 : 혼잡 발생시 전송률을 최소화하는 기능

 

 

 

*오류 검사 : 수신한 세그먼트 손상 여부 판단
                (손상된 세그먼트는 드랍 처리 실시)

 

 

*재전송 기능 : 송신한 세그먼트에 대한 Ack를 수신하지 못하면, 해당 세그먼트를 재전송 실시

 

 

*Window Size : 송수신할 수 있는 세그먼트양

 

 

*HTTP(80), HTTPs(443), Telnet(23), SSH(22), FTP(21), FTP-Data(20), SMTP(25), POP3(110)

 

 

 

 

 

2) UDP(User Datagram Protocol)

 

- Layer 4 계층 프로토콜

 

- 비연결 지향성 프로토콜

 

 

- 3-Way 핸드 쉐이킹 동작 실시 X
- 데이터 스트림 서비스  X
- 혼잡 제어 기능   X
- 재전송 기능   X
- Window Size   X

 

- 오류 검사

 

- DNS(53), TFTP(69), DHCP Server(67), DHCP Client(68), SNMP(161), NTP(123)

 

 

 

*TCP : 연결이 필요한 서비스에 사용
        (신뢰성이 높다 , 신속성이 낮다.)

 

 

*UDP : 연결이 불필요한 서비스에 사용
         (신뢰성이 낮다 , 신속성이 높다)

 

 

 

 

3) IP(Internet Protocol)

 

- Layer 3 계층 프로토콜

 

- 비연결 지향성 프로토콜

 

- 로컬 환경에서 리모트 환경으로 데이터 전송 담당

  (현재 내 네트워크에서 다른 네트워크로 데이터 전송)

 

- TTL(Time to Live) : 8bit(0~255), 거리 측정 및 패켓 루프 방지 기능

 

 

*운영 체제 TTL 기본값

 

- Cisco  255
- Window 128
- Linux  64

 

 

거리측정

win7-----------------------R1---------------------R2---------------------R3----------------Linux

 

TTL=128      ->      TTL = 127     ->      TTL = 126     ->      TTL = 125    ->      TTL = 125

 

TTL = 61             <- TTL = 61           <- TTL = 62         <-    TTL = 63          <-  TTL = 64

 

 

 

 

*루프방지

 

- 데이터가 루프현상이 일어나 TTL값이 0이되면 데이터를 drop

 

 

 

 

*Ethernet : Layer 2계층 프로토콜

 

- ETH 환경 내에서 데이터 전송을 담당한다.

 

 

Layer 4            TCP ㅣ HTTP   세그먼트


Layer 3            IP ㅣ TCP ㅣ HTTP    패켓


Layer 2           ETH ㅣ IP ㅣ TCP ㅣ HTTP   프레임


Layer 1          전기 신호 입출력         0,1         bit

 

 

 

 

4) ICMP(Internet Control Message Protocol)

 

- IP 프로토콜을 이용한 데이터 전송 여부 가능 테스트 프로토콜

 

- ping , tracert 명령어

 

 

                                 A                                          B


                         192.168.14.14                           192.168.14.11

 

                     ping 192.168.14.11

 

                   ICMP Echo-Request ->                 <- ICMP Echo-Reply


                     SA 192.168.14.14                         SA 192.168.14.11
                     DA 192.168.14.11                        DA 192.168.14.14

 

 

*tracert : 경로 추적 테스트 목적

 

 

#naver , daum : 방화벽으로 ICMP공격 방지

 

#google : 데이터 전송량이 많아지면 자동적으로 드랍 ICMP공격 방지

 

 

 

 

5) ARP(Address Resolution Protocol)

 

- 주소 변환 프로토콜

 

- 목적지 IP 주소에 대한 MAC 주소를 설정하는 프로토콜

 

- 만약 , 목적지 IP 주소에 대한 MAC 주소가 없을 경우 다음과 같이 ARP 요청 및 응답 실시

 

 

                                A                                      B


                       192.168.14.11                        192.168.14.14


                    90-9F-33-EB-34-98                 90-9f-33-eb-36-ff

 

         ARP Reqeust(192.168.14.14, MAC ?) -> 


                 SA 90-9F-33-EB-34-98
                 DA FF-FF-FF-FF-FF-FF


                                                    <- ARP Response(192.168.14.14


                                                          MAC 90-9f-33-eb-36-ff)
                                                           SA 90-9f-33-eb-36-ff
                                                           DA 90-9F-33-EB-34-98 

 

 

 

  

Ex) A - > ARP 요청 메세지

 

        cmd -> arp

 

- arp -d : arp 삭제

- arp -a : arp테이블 열기
- arp -s : 수동으로 주소 등록

 

영구적으로 등록되는 것은 아니다.

 

"13.13.10.3의 MAC주소 ? "
---------------------------------ARP 요청 메세지

SA 00de.584c.1278
DA FFFF.FFFF.FFFF   <- 브로드 캐스트로 설정되는 MAC주소

---------------------------------ETH

 

*A PC에서 ARP요청을 하면브로드캐스트로 B,C PC에 ARP요청을
 보내게 되면 C PC에 자동으로 A에 MAC주소를 할당(학습)된다.


"13.13.10.3"의 MAC은 0010.115C.81E2

 

 

 

 

[참고] 프로토콜을 이용한 공격 유형

 

 

프로토콜                       공격유형

 

TCP                             TCP Syn Flooding
UDP                            UDP Flooding
IP                                IP Spoofing
ICMP                           ICMP Flooding(ICMP Land , ICMP Smurf)
ARP                            ARP Flooding , ARP Spoofing

+ Recent posts