2015. 12. 11. 18:47 :: 네트워크 보안

1장. 네트워크 기초

 

1. OSI 7 계층

 - 표준화된 네트워크 구조를 제시한 기본 모델

 - 실제 인터넷에서 사용되는 TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 현실화의 과정에서 채택된 모형

 

 

 

1) 물리 계층

- 비트, 네트워크의 두 노드를 물리적으로 연결

- 네트워크 장비 : 허브, 리피터

- 전송매체 : UTP, STP, 동축, 광

- 인터넷이 원하는 속도가 나오지 않으면 카테고리, 랜카드, 서비스 확인

2) 데이터링크 계층

- 프레임, MAC주소 이용하여 정확한 장치로 정보 전달

- 네트워크 장비 : 브리지, 스위치, L2

- MAC : 48비트, 전세계적으로 유일, 물리주소

- 앞24비트OUI(제조사코드), 뒤24비트NIC

3) 네트워크 계층

- 패킷, 라우터가 경로를 결정하는 일(라우팅)
- 네트워크 장비 : 라우터, L3 스위치

4) 전송 계층

- 세그먼트(TCP), 데이터그램(UDP)
- 종단 간의 투명한 데이터 전송을 양방향으로 행함
- 오류 복구, 흐름 제어
- 네트워크 장비 : L4 스위치

5) 세션 계층

- 데이터, 접속을 관리하는 역할
- 포트, 서비스 주소

6) 표현 계층

- 데이터, 네트워크로 보내질 데이터의 형식을 결정
- 압축, 인코딩, 암호화

7) 응용 계층

- 데이터, 사용자 인터페이스 역할, 서비스를 네트워크에 접속시키는 역할, 여러가지 서비스 제공

 

2. TCP/IP 계층

 - DOD : 미 국방성

 

3. 네트워크 장비

1)  리피터(신호증폭기)

- LAN영역에서 다른 LAN영역을 서로 연결하기 위한 목적으로 사용
- 신호 증폭시에 잡음 동반

2) 허브

- 패킷을 연결된 모든 호스트에 보냄

- 1차선, CSMA/CD 방식
- 더미허브
- 리피터의 잡음을 처리하기 위해 나옴
- 충돌도메인 = 1, 브로드캐스트 도메인 = 1

3) 브리지

- 네트워크 세그먼트를 2개 이상으로 나누어서 관리하기 위한 장비

4) 스위치

- 지정된 호스트에게만 보냄
- 칩셋방식(고속화), 비CPU기반으로 동작, 저렴
- MAC주소를 이용하여 어느 세그먼트로 패킷을 보내야할지 결정 가능
- 맥 테이블을 만들어 기능 수행(캐쉬에 저장되어 휘발성)
- 충돌도메인 = 4, 브로드캐스트 도메인 = 1

5) 라우터

- 서로 다른 네트워크를 연결해주는 장비

- CPU기반으로 동작
- 라우팅 테이블은 관리자가 직접 만듬

- 충돌도메인 = 4, 브로드캐스트 도메인 = 4

  


 

2장. TCP/IP 기본

 

1. MAC 주소

- 랜카드의 고유넘버를 의미, 물리적 주소

- 컴퓨터가 네트워크 상에서 서로를 구분해서 인직하기 위해 필요

- ARP : IP 주소로 MAC 주소를 찾음

- RARP : MAC 주소로 IP 주소를 찾음

- 48비트, 전세계에서 유일한 주소

- 앞 24비트 : OUI, 제조사 코드

- 뒤 24비트 : NIC, 시리얼 넘버

 

2. IP 주소

- 논리적 주소체계

- 32비트

 2^7

 2^6

 2^5

 2^4

 2^3

 2^2

 2^1

 2^0

 128

 64

 32

 16

 8

 4

 2

 1

- IP 주소 = 네트워크 ID + Host ID

- 네트워크 ID, Host ID 구분은 서브넷마스크로 구분

- IP 주소 Class (Class 주소체계를 사용하는 것을 Classful)

1) A Class

- 0 ~ 127

- 실제 1~1266까지 사용가능

- 0 (ALL, ANY), 127 (LOCALHOST, Loopback) 으로 사용되어 제외

- 사설 : 10.0.0.0 ~ 10.255.255.255

- 기본 서브넷 마스크 : 255.0.0.0

2) B Class

- 128 ~ 191

- 사설 : 172.16.0.0 ~ 172.31.255.255

- 기본 서브넷 마스크 : 255.255.0.0

3) C Class

- 192 ~ 223

- 사설 : 192.168.0.0 ~ 192.168.255.255

- 기본 서브넷 마스크 : 255.255.255.0

4) D Class

- 224 ~ 239

- EIGRP : 224.0.0.10

- OSPF : 224.0.0.5 ~ 6

- RIPv2 : 224.0.0.9

5) E Class

- 240 ~ 255

 

3. 서브넷팅

- Classful한 주소를 나누는 것

- 네트워크 개수가 조건일 경우 : 좌 -> 우 이동하여 계산

- 호스트 개수가 조건 : 우 -> 좌 이동하여 계산

 

4. CIDR

- 부족한 IP 주소를 해결하기 위해 새로운 주소 지정시스템

- 기존 Class 개념 무시(Classless)

 

5. VLSM

- IP를 효율적으로 할당하기 위한 방법

- 서브넷팅한 네트워크를 다시 서브넷팅 하는것

 

6. 클라이언트/서버 모델

- 클라이언트 : 서비스를 요청하는 프로세스

- 서버 : 요청을 처리하고 결과를 반환하는 프로세스

 

7. 포트

- 서비스 주소

 MAC

 IP

 Port

 기기주소

 논리주소

 서비스주소

- 특정 프로세스를 인식하기 위한 방법

- 서비스마다 사용되는 포트 다름

- Well Known Port : 0 ~ 1023

- 대표적인 포트 번호 

 TCP 20, 21

 FTP

 TCP 22

 SSH (보안기능)

 TCP 23

 Telnet (보안기능 없음)

 TCP 80

 HTTP

 TCP 443

 HTTPS

 UDP 53

 DNS

- TCP 80, 443, UDP 53 : 네트워크 3총사(?)

 

8. 전송방식

- 유니캐스트 : 하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식 (1:1)

- 브로드캐스트 : 하나의 송신자가 같은 서브네트워크 상의 모든 수신자에게 데이터를 전속하는 방식 (1:전체)

- 멀티캐스트 : 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식 (1:N, N:N)

 


 

3장 TCP/IP 프로토콜

 

1. 이더넷(Ethernet)

- CSMA/CD 사용

- IEEE 802.3

- 데이터링크 계층의 기능을 LLC와 MAC 2개의 부계층으로 구분한다.

1) 상위계층 : LLC(네트워크 소프트웨어와 하드웨어인 하위 계층과 통신을 다룸), NIC을 동작시키는 드라이버 소프트웨어

2) 하위계층 : MAC(데이터링크 계층의 하위 이더넷부 계층)

- 이더넷, IEEE 802.3 헤더 

1) Preamble, SOF : 전송과 수신장치 동기화를 위해 사용

2) DMAC : 수신측 MAC 주소

3) SMAC : 송신측 MAC 주소

4) 길이/유형 : 데이터 필드의 길이

5) 데이터

6) FCS : 프레임에서 에러를 찾기 위해 사용, CRC 사용

 

2. CSMA/CD

- PC or Server 가 네트워크상에 통신이 일어나는지 확인, Carrier Sense

- 동시에 네트워크상에 데이터를 보내는 경우, Multiple Access

- 두 개 이상의 노드가 데이터 전송시 부딪치는 경우, Collision Detection

- 충돌 발생하면 데이터 전송했던 노드는 랜덤한 시간 동안 기다린 다음 다시 전송한다.

- CSMA/CA

 

3. ARP

- 논리적인 IP주소를 데이터링크 계층의 물리적인 MAC 주소로 바꾸어주는 주소 해석 프로토콜

- MAC Table은 캐쉬에 저장 

 

4. RARP

- MAC 주소로 IP 주소를 가져오는 것을 의미

 

5. GARP

- 같은 네트워크에서 IP 주소가 중복되는지 확인, 다른 장치들에게 자신의 IP주소를 갱신하도록 주기적으로 IP주소를 알려주는 역할

 

6. IP

 

1) 버전 : 주소의 버전(IPv4)

2) IHL : 옵션값을 제외한 길이, 헤더의 길이

3) TOS : 서비스의 품질을 나타냄, QOS

4) Total Len : 데이터를 포함한 전체 길이

5) ID : 식별자, 단편화된 IP 패킷을 재조립할 때 사요ㅗㅇ

6) IP플래그

- x : 미사용, 항상 0

- D : Don't frag, 0(단편화 가능), 1(단편화 불가능)

- M : More frag, 0(마지막 조각을 의미), 1(뒤에 더 올것이 있음을 의미)

7) Fragmentation Offset : 순서 번호, 몇번까지 받았다를 의미

ex) 3080

0 - 1479

1480 - 2959

2960 - 3079

- ID, IP플래그, FragOffset 이 3개는 재배열과 관련된 필드

8) TTL : OS마다 값이 다름, 패킷의 수명, 라우터 지날때마다 소모

9) protocol : 프로토콜의 종류 알려줌

- 1 : ICMP

- 2 : IGMP

- 4 : IP

- 6 : TCP

- 17 : UDP

- ....

10) 체크섬 : 헤더에 대한 오류검출을 한다.

11) SIP : 송신측 IP주소

12) DIP : 수신측 IP주소

 

7. ICMP

 

- 목적 : IP는 목적지에 대한 확인을 하지 않는다. 보증하기 위해 사용

- 정상 종작의 예

1) 8번이 가면 0번이 응답해야함 / 둘다 코드는 0 이어야함

- traceroute (tracert)

1) 경로 추적

2) windows 환경에서는 # pathping [ip] 가 유용

3) TTL 값을 1부터 증가 시키면서 응답을 받고 다시 TTL값을 1씩 증가 시키며 목적지 보내여 경로를 확인하는 방식

 

8. IGMP

- IP 멀티캐스트 그룹에서 호스트 맴버를 관리하는 프로토콜

- 유로 TV, 인터넷 방송 은 특정 그룹 관리하는 방식으로 운용

 

9. TCP

- 신뢰할 수 있고, 연결 지향의 전달 서비스

- 세그먼트 단위로 전송

- 특징

1) 신뢰성, 전이중 방식, 연결지향, 바이트스트림, 흐름제어, 세션관리

2) 핸드쉐이킹

- 헤더 구조

1) SP : 송신측 포트번호, 4계층에서 사용

2) DP : 수신측 포트번호

3) 시퀀스 넘버 : 자신이 전송하는 데이터의 고유번호, 순서제어를 하기 때문에 신뢰성

4) ACK 넘버 : 송신측으로부터 받은 데이터의 응답번호(받은 순차번호 1을 더해서 보낸다)

5) Offset(헤더길이) : 헤더의 길이

6) Reserved(예약)

7) TCP 플래그

- C, E안씀

- U : 응급, 긴급 시 사용

- A : 확인 응답 번호

- P : 넣다. 보내고 있다

- R : 강제 종료, 비 정상종료

- S : TCP 연결을 위한 요청

- F : 정상 종료, 더이상 보낼 데이터 없음

- 종료할때에는 4번의 패킷을 주고 받음 : 4-way 핸드쉐이킹

8) Window : 윈도우 크기, 수신자 입장에서 자신의 가용 버퍼의 크기

9) 체크섬 : 오류 검출

10) Urgent Pointer : TCP 플래그의 URG 플래그가 설정되어있을 경우 사용

11) 옵션

- MSS(Maximum Segment Size)

① 목적지에서 수신가능한 최대 크기이다.

② MSS = MTU - TCP/IP헤더크기(40)

- MTU(Maximum Transmission Unit)

① 네트워크 인터페이스에서 세그먼트 없이 보낼수 있는 최대 데이터그램 크기 값

② 일반적으로 1500바이트

③ MTU = MSS + TCP/IP헤더크기

- TCP 연결 및 종료 과정

1) 연결 시 3-way, 종료 시 4-way

2) 연결 상태 변화

- Closed : 소켓을 사용하지 않은 상태

- Listen : 소켓 접속 대기 상태, 연결 기다림, 열려있음

- SYN SENT : 소켓 접속을 시도

- SYN RECVD : 접속 초기화 중

- ESTABLIESHED : 접속 상태, 연결됨

- FIN WAIT-1 : 접속 종료 중

- FIN WAIT-2 : 접속 종료 후 원격측으로부터 닫기 지시 대기중

- Closeing : 소켓을 종료되었으나 모든 데이터가 도착하지 않음

- TIME WAIT : 소켓은 종료되었으며 원격지로부터 닫기 지시가 재전송되기를 기다리는 상태, 클라측에서 연결 끊음

- CLOSE WAIT : 원격측이 닫혔으므로 소켓이 종료되는 것을 기다림

- LAST ACK : 원격측이 닫히고 소켓도 종료되고 있음, ACK기다림

 


 

4장. 서비스 프로토콜

 

1. DNS 서비스

- 도메인 이름을 IP주소로 매핑해주는 서비스

- # nslookup

- DNS 질의 과정

1) www.naver.com

2) 클라이언트에서 로컬DNS에게 물어본다.

3) 로컬DNS는 root에게 물어본다.

4) 다음은 com이름서버에 물어본다.

5) 다음은 naver이름서버에 물어본다.

6) 다 물어보고 받은 IP주소를 로컬DNS에서 클라이언트에게 알려준다.

7) 클라이언트는 받은 IP를 가지고 접속한다.

 

2. DHCP 서비스

- 호스트 IP 구성관리를 단순화하는 IP표준

- UDP 67, 68 사용

- 동작 과정

1) 발견(DISCOVER)단계 : DHCP서버를 찾아 IP요청을 위해 발견패킷 뿌림

2) 제안(OFFER)단계 : 발견패킷을 받은 서버는 임대가능 IP주소를 제안

3) 요청(REQUEST)단계 : IP제안받은 클라이언트는 가장 먼저 받은 서버에게 해당 주소에 대한 요청을 보냄, 다른 서버에게는 안보냄

4) 응답(ACK)단계 : 요청패킷을 받은 서버는 응답패킷을 발송하여 IP주소를 임대한다.

- DHCP 서버로 임대 받을때 DNS, NTP 같이 받음

- BOOTP

 

3. SNMP 서비스

- 네트워크 관리 프로토콜

- UDP 161 사용

- 시스템이나 네트워크 관리자로 하여금 원격으로 네트워크 장비를 모니터링하고 환경설정 등의 운영을 할 수 있게 한다.

- 구성 요소

1) MIB

2) 관리시스템(Manager)

3) 관리대상(Agent)

 

4. Telnet 서비스

- 클라이언트가 서버에 연결/구동된 것처럼 상호작용하도록 하는 서비스

- 할 수 있는것

1) 피요한 유닉스 명령어

2) 네트워크 사용

3) 각종 CGI 프로그램 사용

- # telnet [ip] [portnum]

- 전부 평문으로 보인다. 보안에 취약

- SSH는 암호화 되어 보인다.

 

5. FTP 서비스

- 파일을 업로드하고 다운로드 할 수 있도록 해주는 프로토콜

- 파일 교환

- 평문으로 보이는 단점

- 명령어와 응답이 오가는 Conmmand Port : 21

- 실제 데이터가 오가는 Data Port : 20

- Avtive Mode

1) 클라이언트에서 서버의 21번 포트로 접속 후 클라이언트가 사용할 두번째 포트를 서버에 알려준다.

2) 서버는 21번 포트에서 클라이언트에게 ACK로 응답

3) 서버의 20번 포트는 클라이언트가 알려준 두번째 포트로 접속을 시도한다.

4) 클라이언트의 두번째 포트에서 ACK로 응답

- Passive Mode

1) 클라이언트에서 서버의 21번 포트로 접속, 두번째 포트 질의

2) 서버는 21번 포트에서 서버가 사용할 두번째 포트를 알려준다.

3) 클라이언트는 새로운 포트는 열고 서버가 알려준 두번째 포트로 접속을 시도한다.

4) 서버의 두번째 포트(20아님, 1024이상의 새로운 포트)에서 ACK로 응답

- 공격 유형

1) bounce attack : 익명의 FTP서버를 이용해 경유해서 호스트를 스캔한다.

2) TFTP : UDP통신, 인증절차를 요구하지 않는다.

3) Anonymous FTP 공격 : 특정 디렉토리에 권한을 걸어서 아무나 접근 못하게 대책가능

4) 스니핑 : 평문으로 보이기 때문에 위험

5) Brute force : 무작위 대입법 공격

 

6. MAIL 프로토콜

- SMTP : 메일을 주고 받기 위한 프로토콜

- 포트번호 25 사용

- # telnet [ip] [25]   =>   접속   =>   SMTP 세부 명령으로 메일 전송 가능

- MIME : 단순 텍스트를 넘어 이미지, 오디오, 비디오, 어플, 멀티 파트 전송 가능

- POP3 : TCP 110, 메일 서버에서 메일 다운로드, 서버에서 해당 메일 지움, 오프라인에서도 볼 수 있음

- IMAP, IMAP3 : POP와 달리 메일을 받아도 서버에 원본 남아 있음, 서버에 계속 접속 필요

 

 

 

 

참고서적 : 원리를 중심으로 한 네트워크 개론 (INTEK)

posted by Red_Seek