연습 샘플 분석

 

1. 2015-08-31 - TRAFFIC ANALYSIS EXERCISE - WHAT'S THE EK? - WHAT'S THE PAYLOAD?

 

- xplico

 

 

- sguil

 

 

클라이언트 ip : 192.168.137.239

site : 64.20.39.203 <- 가장 먼저 감염 시작

redirection : 46.108.156.181

C&C : 72.55.148.19

악용 도구 키트의 이름 : Neutrino

페이로드 : AlphaCrypt

 

- networkminor

 

 

NetworkMinor로 위와 같이 감염된 windows 컴퓨터의 ip주소, MAC주소, 호스트 이름 확인 가능

 

 

감염 체인 시작한 웹사이트 : vitaminsthatrock.com

 

- 감염 사이트 확인

 

 

 

사이트 이름 확인 : vclphjybj.ioxbpjgtqvwqfzmwhn.ga / tpfnmvg.ioxbpjgtqvwqfzmwhn.ga

 

 

 

iframe 사용하여 바로 보이는 것을 와이어샤크로도 확인 가능

 

- NBNS란?

NetBIOS에서 네트워크 자원에 대한 명칭의 등록, 검색, 해제 등을 수행하는 서비스

-> 와이어샤크로 필터링하여 확인 가능

 

 

2. 2016-07-07 - TRAFFIC ANALYSIS EXERCISE - EMAIL ROULETTE

 

1) 감염을 일으킨 메일은 무엇인가?

 

감염을 일으킨 메일

 

 

zip 파일에 포함되어 있는 악의적인 파일 발견 -> 자바스크립트 난독화되어 읽기 어렵게 나와 있음

eval( ) 함수 : t42를 실행하는 함수 -> document.write( )로 바꾸기 & 이 파일을 <script></script>로 묶어 실행

 

 

네모친 부분 : 악의적인 사이트명이 나와 있음

-> 도메인 주소 : 5개 (리스트에 나와 있는 주소들)

 

 

위와 같이 NetworkMiner로 확인 가능

 

2) 감염된 날짜와 시간은 언제인가?

 

 

위와 같이 Xplico 이용하여 확인 가능

 

3) 감염된 IP주소, MAC주소, 호스트 이름, 사용자 이름은 무엇인가?

 

 

- IP 주소 : 172.16.1.126

- MAC 주소 : 00508BAB2E3C

- 호스트 이름 : Chevotarevich

 

 

- 사용자 이름 : Nick (이메일에서 발견함)

 

 

3. TRAFFIC ANALYSIS EXERCISE - CRYBABY BUSINESSMAN

 

 

위와 같이 NetworkMiner로 악성코드 사이트 확인

 

 

위와 같이 악성코드가 활동한 날짜와 시간을 확인할 수 있다.

위 사이트에 접속해보면 구글에서 멀웨어 감지 경고를 해주지만 이를 무시하고 열면 rew.KAGHAAN.COM 사이트로 연결된다.

 

 

코드를 확인해보면 iframe으로 rew.KAGHAAN.COM이라는 악성사이트에 접속하도록 되어 있는 것을 확인할 수 있다.

 

 

위와 같이 rew.kaghaan.com IP 확인

 

 

rew.KAGHAAN.COM에 들어가보면 아무런 내용도 뜨지 않음

소스코드 보기를 누르면 위와 같이 자바스크립트 난독화가 된 내용을 확인할 수 있음

eval함수가 있는 것으로 보아 무언가 악성코드를 실행할 것임을 유추할 수 있음

 

따라서 이 문제를 정리해보면 피해자는 unwrappedphotos.com 사이트에 접속을 했고 악성코드 경고창이 떴음에도 불구하고 무시하고 접속함 -> 랜섬웨어가 다운로드 되었고, 이 랜섬웨어가 모든 파일을 암호화시킨 것이다.

 

 

자바스크립트

 

1. 네트워크 트래픽 분석에 자바스크립트가 필요한 이유


- 홈페이지를 통한 악성코드 유포
- 페이지 내부에 이상한 코드 삽입
    : 피싱/파밍이 아닌 경우
    : 브라우저 exploit 공격 등이 가능
-> 자바스크립트 난독화를 해결해야 정보 파악이 가능

 

 

2. 자바스크립트란?


- 객체 기반의 스크립트 프로그래밍 언어
- 주로 웹브라우저 내에서 사용
- 대부분의 프로그래밍 언어와 유사
- 라인 구분에 ‘;’ 사용
- html 내부 사용 시 -> <scirpt>내용</script>

 

 

3. 자바스크립트 동작 순서


-> <script> 발견

-> 렌더링 엔진 일시 중지

-> 자바스크립트 해석기 동작

-> 실시간 해석 실행

-> HTML인 경우 메모리에 저장

-> </script> 발견

-> 메모리에 저장된 HTML 코드를 렌더링 엔진에 전달
-> 자바스크립트 엔진 중지

-> 렌더링 엔진 재동작

 

 

4, 기초 문법


1) alert : 파라미터로 받은 문자열 팝업창 띄움 ex) <script>alert('Hello!');</script>


2) 문자열
- ‘ 또는 “를 사용하여 묶어서 나타냄
- 내부에 중복되는 따옴표 사용 시 \를 붙여주어야 함

\t

수평 탭

\n

즐바꿈

\‘

작은 따옴표

\“

큰 따옴표

\\

역슬래시

 

3) 변수 선언
- 따로 타입을 선언하지 않고 var로 선언
   ex) 숫자 -> var a = 1
        문자열 -> var b = “string”
        배열 -> var c = [1,2,3,4,5]
- 데이터 타입 확인 시 typeof() 함수 사용
   ex) alert(typeof(a))


4) 배열
- 괄호([ , ])를 사용하여 배열로 묶음
- 배열에는 다양한 형태의 데이터 선언 가능
   ex) 숫자, 문자열, 불린, 함수, 배열 등


5) 조건절
- ’a’ == ‘a’; -> True
- ‘a’ == ‘abc’; -> False
- 100 > 10; -> True
- “ == false; -> True
- “ == 0; -> True
※ 아무것도 없는 것은 0이나 False와 같다.

>=

좌변이 크거나 같다

<=

우변이 크거나 같다

>

좌변이 크다

<

우변이 크다

==

서로 같다

!=

서로 다르다

 

6) 논리 연산자
- ‘a’ == ‘a’ && 100 > 10;

!

논리 부정 연산자

&&

논리곱 연산자

||

논리합 연산자

 

7) replace()
- 문자열 치환 함수
- 문자열 일부를 교체해줌

 

 

5. 자바스크립트 난독화(JavaScript Obfuscation)


1) 개념
- 자바스크립트 코드를 읽기 어렵게 하는 기법


2) 필요성
- 소스를 알아볼 수 없게 감춤
- 소스를 분석하기 힘들게 하여 분석시간 늦춤 -> 악성코드 배포 기간 연장


3) 난독화 기법
- JavaScript Compress : 불필요한 값을 삭제하여 압축시킴
- JavaScript Fuction Expression : 함수 사용하여 데이터의 크기를 늘리고 흐름 방해
- JavaScript Data Split : 코드를 나누어서 저장하고 마지막에 실행
- JavaScript Data Replace : 쓰레기 코드 삽입하고 나중에 모두 제거
- JavaScript Data Encoding : 인코딩하여 알아볼 수 없는 데이터로 바꿈


4) 난독화 해제하기
- alert
- document.write()
- Chrome Terminal
- <xmp>

'2020 WINTER STUDY > Network' 카테고리의 다른 글

4주차  (0) 2021.02.12
2주차  (0) 2021.01.18
1주차  (0) 2021.01.11

프로토콜 분석

1. Telnet 프로토콜

1) 개요

- 텔넷은 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜(원격 제어 터미널)

- 프로토콜의 클라이언트 일부 기능이 추가된 소프트웨어

- 텔넷 클라이언트는 대부분의 유닉스 시스템에서 사용

- 최근 텔넷의 보안 문제로 사용률 감소 (SSH로 대체)

- 23번 포트를 주요 사용

2) 실습

 

2. FTP 프로토콜

1) 개요

- 파일 전송 프로토콜의 약자

- TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜

- 응용 계층에 속함

- 최초의 FTP 클라이언트 애플리케이션들은 운영 체제가 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 CUI 프로그램으로 현재 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 기본 포함

- 그 뒤로 수많은 FTP 클라이언트 및 오토메이션 유틸리티들이 데스크톱, 서버, 모바일 장치, 하드웨어용으로 개발되고 있으며, FTP는 웹 페이지 편집기와 같은 생산성 응용 프로그램들에 통합

명령/데이터 전송 연결

명령 연결

  - 서버 21번 포트

  - 명령을 위한 연결 생성 후 여기를 통해 클라이언트에서 지시하는 명령어 전달

데이터 전송용 연결

  - 실제 파일 전송은 필요할 때 새로운 연결

능동/수동 모드

능동 모드

  - 20번 포트에서 클라이언트가 지정한 지점으로 데이터 연결

  - 클라이언트가 방화벽, NAT 등을 사용하는 환경일 때 동작 X

수동 모드

  - 클라이언트가 서버의 지정한 포트로 연결

  - 보통 1023보다 큰 포트 사용

2) 실습

 

3. ARP/ICMP 프로토콜

1) 개요

ARP(주소 결정 프로토콜)

- 네트워크 상에서 ip 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜

 

- ARP 통신 방식

     : 호스트 A가 호스트 B에게 IP 패킷 전송

     : ARP 프로토콜 사용

     : 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷 수신

     : 자신의 물리 주소를 A에게 응답

- ARP Table

     : IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장

     : 패킷을 전송할 때 다시 사용

- ARP와 반대로 IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소는 모르는 경우 서버로부터 IP 주소를 요청하기 위해 RARP를 사용

 

ICMP(인터넷 제어 메시지 프로토콜)

- ICMP 필요성

     : IP는 최선형 전달 서비스만 지원하기 때문에 IP 패킷이 전송되는 목적지에 전달되지 못함

     : 전달되더라도 원하는 서비스 포트가 존재하지 않는 경우가 존재하지 않는 경우도 발생

     : 오류에 대한 보고 기능과 네트워크 상태 진단 기능을 통해 IP를 보조하는 기능을 수행

     : ICMPIP로 캡슐화되며 IP 헤더의 프로토콜 필드값을 1로 설정하여 ICMP 메시지임을 나타냄

ICMP 포맷

메시지 타입 필드 : ICMP 메시지 종류를 기술

코드 필드 : 메시지 타입에 따라 세분화가 필요할 때 사용

체크섬 필드 : ICMP메시지에 대해 체크섬을 계산한 값이 삽입

 

2) 실습

 

4. HTTP/DNS 프로토콜

1) 개요

HTTP

- HTTPWWW 상에서 정보를 주고받을 수 있는 프로토콜

- 주로 HTML 문서를 주고받는 데 쓰임

- HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜

- 전달되는 자료는 http:로 시작하는 URL로 조회

요청 메소드

설명

GET

URL에 해당하는 자료의 전송 요청

HEAD

GET과 같은 요청이지만 자료에 대한 정보만을 받음

POST

서버가 처리할 수 있는 자료 전송

PUT

해당 URL에 자료를 저장

DELETE

해당 URL의 자료를 삭제

TRACE

이전에 요청한 내용을 들을 것을 요청

OPTIONS

서버가 특정 URL에 대해 어떠한 HTTP Method를 지원하는지 확인

CONNECT

프록시가 사용하는 요청

PATCH

리소스에 대한 부분적인 수정을 적용

DNS(도메인 네임 시스템)

- 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행

- 특정 컴퓨터의 주소를 찾기 위해 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호로 변환

- IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템

- 전화번호부와 비슷한 기능

 

2) 실습

 

5. SMB 프로토콜

1) 개요

- 도스나 윈도우에서 파일이나 디렉터리 및 주변 장치들을 공유하는데 사용되는 메시지 형식
- NetBIOS는 SMB 형식에 기반을 두고 있으며, 많은 네트워크 제품들도 SMB를 사용
(랜매니저, 윈도우 포 워크그룹(Windows for Workgroups), 윈도우 NT, 그리고 랜 서버(Lan Server) 등)
- 서로 다른 운영체제 사이에 파일을 공유할 수 있도록 하기 위해 SMB를 사용
- SMB는 대부분 마이크로소프트 윈도우를 실행하고 있는 컴퓨터에서 이용
- 윈도우 2003, win7, vista 이상

 

 

[네트워크 분석 도구]

 

1. 시큐리티 오니언
- 침입 탐지, 네트워크 보안 모니터링 및 로그 관리를 위한 Linux 배포판
- Ubuntu를 기반
- Snort, Suricata, Bro, OSSEC, Sguil, Squert, ELSA, Xplico, NetworkMiner 및 기타 여러 보안
도구 포함
- 사용하기 쉬운 설치 마법사를 사용하면 몇 분 안에 기업의 분산 센서 군 구축


2. wireshark
- 세계에서 가장 널리 쓰이는 네트워크 분석 프로그램
- 네트워크상에서 캡처한 데이터에 대한 네트워크/상위 레이어 프로토콜의 정보를 제공
- 패킷을 캡처하기 위해 pcap 네트워크 라이브러리를 사용
- 장점 : 쉬운 설치, GUI를 이용한 간단한 사용법, 다양한 기능


3. xplico
- 목표 : 포함된 응용 프로그램 데이터를 인터넷 트래픽 캡처에서 추출
- pcap 파일에서 각 전자 메일, 모든 HTTP 내용, 각 VoIP 호출, FTP, TFTP 등을 추출
- 오픈 소스 네트워크 포렌식 분석 도구
- 지원되는 프로토콜 : HTTP, SIP, IMAP, POP, SMTP, TCP, UDP, IPv6 등
- 각 애플리케이션 프로토콜에 대한 PIPI
- SQLite 데이터베이스 또는 MySQL 데이터베이스 및 / 또는 파일에 데이터 및 정보 출력
- 재구성한 각 데이터에는 플로우를 고유하게 식별하는 XML 파일과 재구성된 데이터가 포함된 pcap 연결
- 외부 DNS 서버가 아닌 입력 파일에 포함된 DNS 패키지에서 역 DNS 조회
- 데이터 입력 또는 파일 입수 수에 제한 X
- 각 Xplico 구성 요소는 모듈 (모듈화)
- 가장 적절하고 유용하게 추출된 데이터를 구성하는 디스패처를 쉽게 생성할 수 있는 기능


4. networkminer
- Windows 용 Network Forensic Analysis Tool (NFAT)
- Linux / Mac OS X / FreeBSD에서도 호환
- 운영 체제, 세션, 호스트 이름, 열린 포트 등을 검색하기 위해 수동 네트워크 스니퍼/패킷 캡처 도구로 사용
- PCAP 파일에서 전송 된 파일 및 인증서를 다시 생성/재구성
- 직관적인 사용자 인터페이스에서 추출된 가공하여 고급 네트워크 트래픽 분석 (NTA)을 쉽게 수행
- YouTube와 같은 웹 사이트에서 네트워크를 통해 스트리밍되는 미디어 파일(예 : 오디오 또는 비디오 파일)
을 추출하고 저장하는 데 사용
- 파일 추출을 위해 지원되는 프로토콜 : FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 및 IMAP


5. captipper
- Python으로 제작된 악성 트래픽 분석 도구
- 디지털 포렌식 분석을 하기 위한 기본 기능을 제공
    : 트래픽 내에서 파일 추출
    : 트래픽 흐름 분석
    : 패킷 헤더, 내용 분석
    : 헥사 뷰어
    : 기타 기능 제공
- 패킷 캡쳐 파일 흐름 재구성 기능 제공
    : log 명령으로 페이지 탐색 모니터링 가능
- 통신을 오브젝트 단위로 구별하여 분석 기능 제공
- 분석 보고서 생성 기능 제공(--report 옵션)


6. IDS 장비
① 스구일(Sguil)
- 네트워크 보안 모니터링 및 탐지 이벤트 분석 도구
- 일반 GUI 응용 프로그램
- TCL/TK 를 지원하는 모든 운영 체제에서 실행 가능
- Linux, MacOS, Window 등
② Quick Query
- ST / Src IP / Sport / Dst IP / Dport 값을 기준으로 데이터 베이스 결과를 출력
- 사용 방법 : 마우스 오른쪽 클릭 후 사용
- ST 필드는 카테고리를 기준으로 데이터를 검색
- Src IP, Dst IP, Sport, Dport는 해당 값들을 기준으로 데이터를 검색
③ 스노트(Snort)
- 스니퍼 : 네트워크 패킷 수집
- 패킷 디코더 : 전처리기와 탐지 엔진이 파싱 할 수 있도록 정규화
- 전처리기 : 특정 행위가 발견된 패킷을 탐지 엔진으로 전송
- 탐지엔진 : 전달받은 패킷을 스노트 규칙에 매칭되는 지 확인
- 경고/로깅 : 스노트 규칙에 매칭된 경우 경고 출력 및 기록


7. 바이러스 토탈
- 대표 온라인 분석 사이트
- 기존에 동일한 샘플코드들이 존재했는지 빠르게 확인
- 하루에도 수많은 악성코드가 나타나는 위협에 빠르게 대응
- swf나 exe등의 다양한 악성코드 분석 시 주로 이용
- 다양한 기능
    : 파일 전송 및 검색
    : 이미 제출된 파일 재검색
    : 파일 검사 보고서 가져오기
    : URL 보내기 및 스캔
    : URL 스캔 리포트 가져오기
    : IP 주소 보고서 검색
    : 도메인 보고서 검색
    : 파일 및 URL에 대한 의견을 달기
    : 공용 API와 상호 작용하는 스크립트

'2020 WINTER STUDY > Network' 카테고리의 다른 글

4주차  (0) 2021.02.12
3주차  (0) 2021.01.25
1주차  (0) 2021.01.11

악성코드를 분석하는 데 네트워크 트래픽이 왜 필요할까?

* 네트워크 발전사

- 2차 세계전쟁 이후 군용, 연구용으로 쓰이다가 상업용, 민간용으로 퍼져 나감

- 현재는 한국이 인터넷 보급률이나 속도 면에서 최고의 자리를 차지하고 있음

* 악성코드 역사

- 1971년 경 등장, 1986년부터 개체 수와 종이 급격히 증가

- 악성코드의 배포가 네트워크 발전과 함께 급속도로 퍼짐

* 어베스트와 한국인터넷진흥원의 자료 해석

- 악성코드 출현 개수와 새로운 종의 출현이 급격히 증가

- 인터넷과 유사하게 증가하는 추세

- 보급속도보다 몇 년이 늦고 악성코드의 수도 꾸준히 증가하는 점에 다름

  (보급력이 충분히 확보된 후 악성코드가 꾸준히 증가함)

- 인터넷이라는 인프라가 구축된 후 악성코드는 급속도로 전파

 

악성코드 네트워크 트래픽 실제 사례

※ 악성코드는 대부분 네트워크 트래픽을 타고 이동한다.

1. 인터넷 브라우저를 통한 악성코드 유포

- 인터넷을 검색하는 것만으로 악성코드 유포 가능

- 인터넷 익스플로러의 다양한 버전과 Adobe Flash의 취약점 조합으로 악성코드가 유포되는 사례 급증

- 최신 버전의 프로그램들에서도 취약점 꾸준히 등장

- 최근 많이 등장하는 랜섬웨어가 이런 형태로 전파

- 보안 시스템이 있으나 수많은 연구를 거듭 -> 보안 시스템을 우회하여 악성코드 실행

2. 불법 크랙 프로그램을 사용한 악성코드 유포

- 웹하드, P2P 프로그램, 블로그 등을 통해 유포

- 불법 사용자는 디지털 컨텐츠를 값싸게 얻고자 사용

- 배포자가 백신 실시간 감시 기능을 끄고 프로그램을 실행하라는 경우도 있음

3. 피싱/파밍을 통한 악성코드 유포

- 공격자가 임의로 만든 사이트로 접속하게 한 뒤 개인정보를 입력하게 만드는 사회공학적 방법

- ex) 네이버 사이트로 접속한 것처럼 속여 각 은행으로 접속해 금융 정보를 입력하게 했던 사례

- ex) 허위의 페이스북 로그인 창을 만들어 페이스북 계정과 패스워드 입력

- ex) 방문자 추적 서비스로 계정과 패스워드 추출

4. 외부 문서의 매크로를 통한 악성코드 유포

- 이메일 스팸의 문서들에서 hwp, pdf, excel, word 파일 첨부

- 한글이나 pdf의 경우 취약점 이용, excelword의 경우 MS Office에서 제공하는 매크로로 악성코드 유포

 

네트워크 트래픽 분석의 장점

1. 악성코드의 정확한 행위를 파악

- 대부분의 악성코드는 네트워크를 주로 사용

- 악성코드의 직접적인 행위를 알아내기 위해서는 악성코드의 네트워크 트래픽의 정확한 분석 필요

2. 악성코드를 네트워크 흐름에서 탐지 및 차단

- 네트워크 패킷을 감시하는 데 필요

- 패킷에 악성코드 삽입이 확인 시 관제 센터에 위험을 알림

 

데이터 통신의 개요

1. 데이터 통신 시스템

1) 개념

- 컴퓨터와 원거리에 있는 터미널 또는 다른 컴퓨터를 통신 회선으로 결합하여 정보를 처리하는 시스템

- 기본요소 : 메시지, 송신자, 수신자. 전송매체, 프로토콜

2) 구성요소

- 데이터 단말장치(DTE : Data Terminal Equipment)

    : 데이터 수신장치 or 데이터 송신장치 or 송수신 장치

    : 링크 프로토콜에 따라 행해지는 데이터통신 제어 기능을 갖추고 있는 단말장치나 주 컴퓨터

- 데이터 통신장비(DCE : Data Communication Equipment)

    : DTE와 데이터 전송로 사이에서 접속을 설정, 유지, 해제하며 부호변환과 신호변환을 위한 장치

- 전송매체

    : 메시지가 전달되는 물리적인 경로

    : ex) 동축케이블, 트위스티드 페어, 광케이블 등

2. 프로토콜

1) 개념

- 정보의 송수신측 또는 네트워크 내에서 사전에 약속된 규약 또는 규범

- 연결과정, 통신회선에서 접속방식, 통신회선을 통해 전달되는 정보의 형태, 오류발생에 대한 제어, 송수신측 간의 동기 방식 등에 대한 약속

2) 주요요소

- 구문(Syntax) : 데이터의 형식, 부호화, 신호레벨 등이 어떠한 구조와 순서로 표현되어있는지

- 의미(Semantics) : 각 비트가 갖는 의미로 패턴에 대한 해석과 해석에 따른 전송제어, 오류수정 등에 관한 제어정보를 규정

- 타이밍(Timing) : 두 개체 간의 통신속도를 조정하거나 메시지의 전송시간 및 순서 등에 대한 특성

3. LAN(Local Area Network)

1) 개념

- 근거리에 있는 다수의 독립된 컴퓨터 기기들이 상호통신이 가능하게 하는 데이터 통신 시스템

- 하나의 건물, 지역적인 빌딩의 그룹 내에 위치하는 컴퓨터 기반

- DTE들이 상호 연결된 분산 공동체

2) 토폴로지(Topology)

네트워크에서 호스트들을 연결하는 케이블 구조 혹은 기하학적인 모양

구분

장점

단점

성형, 트리형

  - 유지보수 좋음
  - 확장 용이
  - 한 호스트의 고장이 전체 네트워크에 영향을 미치지 않음

  - 중앙전송 제어장치의 고장이 네트워크에 치명적
  - 케이블링 비용 큼
  - 통신량이 많으면 전송 지연 발생

버스형

  - 설치 용이
  - 케이블링 비용 적음
  -
한 호스트의 고장이 전체 네트워크에 영향을 미치지 않음

  - 재구성이나 결함분리가 어려움
  - 버스 케이블에 결함 발생 시 전체 호스트 통신 불가

링형

  - 단순하여 설치와 재구성 간편
  - 장애가 발생한 호스트 쉽게 찾을 수 있음
  - 호스트의 수가 늘어나도 네트워크 성능 좋음

  - 링을 제어하기 위한 절차가 복잡하여 기본적으로 지연됨
  -
단방향 전송이기 때문에 링에 결함 발생 시 통신 불가
  -
새 호스트 추가 시 물리적으로 링 절단 필요

 

OSI 7 Layer

1. 개요

1) 개념

- ISO에서는 개방형 시스템 간 상호접속을 위해 표준화된 네트워크 구조를 제공하는 기본 참조모델을 제정

- 다른 기종 간의 상호 접속을 위한 가이드라인 제시

- 상위 계층 : 사용자가 통신을 쉽게 이용할 수 있도록 도와주는 역할

- 하위 계층 : 효율적이고 정확한 전송과 관계된 일을 담당

2) 계층구조

- 7계층 구조는 비슷한 기능을 갖는 모듈을 동일 계층으로 분할

- 각 계층 간의 독립성 유지

- 한 모듈에 대한 변경이 다른 전체 모듈에 미치는 영향 최소화

- 2개의 그룹으로 분리 → 상위 3계층 : 이용자가 메시지를 교환할 때 사용, 하위 4계층 : 메시지가 호스트에서 사용

계층 특징 데이터 종류
7 응용계층 - 각종 응용서비스 제공
- 네트워크 관리
메시지
6 표현계층 - 네트워크 보안(암/복호화)
- 압축/압축해제, 포맷 변환 수행
5 세션계층 - 소켓 프로그램
- 동기화
- 세션 연결/관리/종료
4 전송계층 - 데이터 전송보장
- 흐름 제어
- Quality Of Services(QOS)
세그먼트
3 네트워크계층 - 통신경로 설정, 중계기능 담당
- 라우팅, 혼잡제어
- 데이터그램, 가상회선 방식
- IPv4, IPv6
패킷
2 데이터링크계층 - 오류제어, Frame화
- 매체제어(MAC)
- 에러검출, 에러정정, 흐름제어
프레임
1 물리계층 - 물리적 연결설정, 해제
- 전송방식, 전송매체
비트 스트림

3) 피어--피어(Peer-to-Peer) 간의 통신

- OSI 참조모델의 i번째 계층에서 다른 시스템의 i번째 계층과 통신하기 위해서는 상위계층의 메시지와 더불어 프로토콜 - 제어정보(PCI)를 이용

- 피어--피어 프로세스 : 임의의 계층에서 상대편 동일 계층의 모듈과 통신하는 프로세스

4) 캡슐화와 역캡슐화

- 캡슐화

    : 어떤 것을 다른 것에 포함시킴으로써 포함된 것이 외부에서 보이지 않도록 함

    : 프로토콜 데이터 단위를 다른 프로토콜 데이터 단위의 데이터 필드 부분에 위치시키는 기술

- 역캡슐화

    : 캡슐화 이전으로 복원시키거나 제거 

    : 캡슐화의 반대 동작

    : 프로토콜 데이터 필드에 위치하고 있는 데이터 단위를 추출

각 레벨의 데이터 PDU(Protocol Data Unit)

PDU 이름

계층

데이터(data)

응용 계층 PDU

세그먼트(segment)

전송 계층 PDU

패킷(packet)

인터페이스 계층 PDU

프레임(frame)

네트워크 접근 계층 PDU

비트(bit)

매체를 통해 이진 데이터로 물리적 전송을 위해 사용되는 PDU

 

2. 각 레이어의 기능 및 역할

1) 물리 계층

- 데이터를 물리 매체 상으로 전송하는 역할을 담당

- 물리적 링크의 설정/유지/해제 담당

- 상용자 장비와 네트워크 종단장비 사이의 물리적, 전기적 인터페이스 규정에 초점

- 전송 선로의 종류에 따른 전송 방식과 인코딩 방식 결정

- 송신 측 물리 계층은 데이터링크 계층으로부터 받은 데이터를 비트단위로 변환

- 수신 측 물리 계층은 전송 받은 비트를 데이터링크 계층의 데이터로 올림

2) 데이터링크 계층

- 물리 계층에서 전송하는 비트들의 동기 및 식별 기능, 원활한 데이터 전송을 위한 흐름제어 기능, 안전한 데이터 전송을 위한 오류제어 기능

- 헤더 : 데이터의 시작을 나타내는 표시와 목적지 주소 포함

- 트레일러 : 데이터에 발생한 전송 오류를 검출하기 위한 오류 검출 코드 포함

- 두 sub 계층으로 구성

    - LLC(Logical Link Control sublayer) : 논리적 연결제어

    - MAC(Media Access Control) : 장비와 장비 간의 물리적인 접속

3) 네트워크 계층

- 송신 측에서 수신 측까지 데이터를 안전하게 전달하기 위해 논리적 링크 설정

- 상위 계층 데이터를 작은 크기의 패킷으로 분할하여 전송

- 개방형 시스템 사이에서 네트워크의 연결을 관리하고 유지하며 해제

    - 스위칭 : 패킷의 수신 주소를 보고 정해진 방향으로 전송, 동작속도 빠름

    - 라우터 : 라우팅 테이블을 찾아 알고리즘으로 최단 경로 계산

                   -> 계산을 통해 전송경로를 결정 후 전송하여 스위치보다 동작 속도 느림

- 네트워크 주소는 발신지로부터 목적지까지 동일 (물리주소는 패킷이 이동될 때마다 변경)

4) 전송 계층

- 하위 계층의 첫 단계

- 세션을 맺고 있는 두 사용자 사이의 데이터 전송을 위한 종단간 제어

- 송신 컴퓨터의 응용프로그램(프로세스)에서 최종 수신 응용프로그램(프로세스)으로 전달

5) 세션 계층

- 세션이라 불리는 연결 확립 및 유지

- 효율적인 세션 관리를 위해 짧은 데이터 단위로 나눈 후 전송계층으로 내림

6) 표현 계층

- 송수신자가 공통으로 정보를 이해할 수 있도록 데이터 표현방식을 바꾸는 기능

- 데이터의 보안과 효율적인 전송을 위해 암호화와 압축을 수행하여 세션 계층으로 내림

7) 응용 계층

- 최상위 계층으로 응용 프로세스 네트워크 환경에 접근하는 수단을 제공

- 응용 프로세스들이 상호 간에 유용한 정보교환을 할 수 있도록 하는 창구 역할을 담당

 

TCP/IP 프로토콜

1. 개요

- 미국 국방부 고등 연구 계획국에서 만든 연구 네트워크의 일부로 설계 (ARPAnet)

- 현재는 TCPIP가 공식 표준

- 다양한 기종의 컴퓨터가 하나로 묶이는 인터네트워킹 구조를 만듦

2. TCP/IP 계층구조 및 계층관계

1) 개요

- 여러가지 프로토콜의 조합을 의미

- 4계층으로 구성 : 데이터링크, 네트워크, 전송, 응용계층

2) TCP/IP 프로토콜 계층 구조

데이터 링크 계층

- 데이터를 송수신하는 역할

② 네트워크 계층

- 주소 관리, 포장, 라우팅하는 역할

- IP(Internet Protocol) : 호스트들과 네트워크에서 주소 관리, 패킷 라우팅

- ARP(Address Resolution Protocol) : 같은 네트워크에 위치한 호스트들의 하드웨어 주소를 얻는 데 사용

- ICM(Internet Control Message Protocol) : 패킷 전송에 관한 에러 메시지 처리

전송 계층

- 호스트들 간의 통신 제공, 2개의 프로토콜 존재

- TCP(Transmission Control Protocol)

    : 연결지향

    : 데이터의 확실한 전송을 위해 수신 측으로 받았다는 확인 메시지 요구

- UDP(User Datagram Protocol)

    : 비연결지향

    : 실시간으로 패킷을 전송하여 빠르나 패킷의 정확한 전달을 보장하지 않음

응용 계층 

- 어플리케이션이 네트워크에 접근 가능하도록 한다.

3. 포트 주소의 의미와 할당 원칙

1) 포트 개요

- 포트 번호는 인터넷ㅇ나 기타 다른 네트워크 메시지가 서버에 도착했을 때 전달돼야 할 특정 프로세스를 인식하기 위한 방법

- TCPUDP에서 포트번호는 15비트 정수의 형태

2) 포트번호와 소켓

- 통신을 위해 TCP 헤더에 송수신자 포트 정보를 삽입하여 패킷 생성

- 패킷을 서버로 전달하여 프로세스와 연결되면 서비스 이용 가능

- 포트 번호는 16비트, 0~65535번까지 존재, 0~1023번은 가능하면 사용 X (웰 노운 포트)

- 주요 포트번호 : root의 권한이 필요한 포트

 

IPv4

1. IP

- 네트워크 계층

- 전송경로의 확립이나 네트워크 주소와 호스트 주소의 정의에 의한 네트워크 논리적 관리

- 모든 TCP/UDP,ICMP,IGMP 데이터는 IP 데이터그램을 사용하여 전송

- 특징 : 비신뢰성, 비접속형, 주소지정, 경로설정

※ IP 헤더 포맷

2. IPv4 패킷 구성

- 데이터 필드에는 상위 계층에서 전달된 PDU 삽입, 헤더 필드에는 IP계층에서 필요한 값 포함

- IP 헤더의 크기는 옵션 미적용 시 20바이트

- TCP/IP에서는 빅엔디안 바이트 순서를 기본으로 함 -> 네트워크 바이트 순서

3. IP 주소 관리 기법

1) IPv4 주소 체제

- 32비트의 IP 주소를 보기 쉽게 표시하기 위해 4바이트 단위로 나누고 10진수로 표시하는 표현 방식이 널리 사용

- IP 주소는 네트워크 식별자 필드와 호스트 식별자 필드의 두 부분으로 구성되며 각 필드에서 사용되는 비트 수에 따라 5개의 클래스로 나눔

- 클래스별 IP 주소 내용

클래스 A

  - 첫번째 비트가 0IP 주소
  - 상위 1바이트 : 네트워크 주소, 하위 3바이트 : 호스트 주소
  - 큰 규모의 호스트를 갖는 기관에 할당

클래스 B

  - 처음 두 비트의 값이 10인 주소 
  - 상위 2바이트 : 네트워크 주소, 하위 2바이트 : 호스트 주소

클래스 C

  - 처음 3비트의 값이 110인 주소
  - 상위 3바이트 : 네트워크 주소, 하위 1바이트 : 호스트 주소
  - 작은 규모의 네트워크에 할당

클래스 D

  - 처음 4비트의 값이 1110인 주소 
  - 전체 주소가 멀티캐스트용으로 사용

클래스 E

  - 처음 4비트의 값이 1111인 주소 
  - 추후 사용을 위해 예약된 주소

- 패킷의 전송방법

전송 방식

설명

유니캐스트

  - 하나의 송신자가 하나의 수신자에게 패킷을 보내는 방식

멀티캐스트

  - 하나의 송신자가 다수의 수신자에게 패킷을 보내는 방식 
  - 특정 다수에게 전송

브로드캐스트

  - 같은 네트워크에 잇는 모든 호스트에게 패킷을 보내는 방식
  - 호스트 주소를 모두 1로 설정
  -
불특정 다수에게 전송

 

2) IPv4 주소 관리방식

- 서브네팅 : 이진수로 1인 부분은 네트워크 부분, 0인 부분은 호스트

- 슈퍼네팅 : 부족한 IP를 효율적으로 사용하기 위해 여러 개의 C클래스 주소를 묶어 하나의 네트워크로 구성하는 방식

3) CIDR(Classes InterDomain Routing)

- 표기법

    : 비트마스크를 사용하여 점으로 구분된 10진 표기법 지정

    : 서브넷 마스크에서 연속된 1의 수가 몇개인지 지정, 연속된 1은 서브넷 마스크의 맨 왼쪽 비트부터 시작

    : IP 주소에서 네트워크 ID 구성, /x로 비트 수 표현

- 장점

    : IPv4의 주소 공간을 효율적으로 할당

    : 인터넷 라우팅 테이블의 비대화를 줄임

4) VLSM(Variable Length Subnet Mask)

- IP를 효율적으로 할당하여 활용

- 서로 다른 크기의 서브넷 지우너

- IP 주소 공간의 일부를 잘라서 사용, 한 기관에 이미 할당된 주소 공간을 나눔

5) 사설 네트워크를 위한 주소할당

공인 IP

  - 인터넷 상에 하나밖에 없는 IP로 유일
  - 각 나라의 관할 기관에서 할당

사설 IP

  - 인터넷 상에서 확인할 수 없으며 내부 네트워크에서만 활용
  - 홈 LAN이나 회사 내부에서 마음대로 할당

- 사설주소 영역

    : 사설 인터넷을 위해 IANA가 할당한 IP 주소 블록

클래스 IP 주소 블록 주소 범위
class A 24비트 블록 10.0.0.0 ~ 10.255.255.255
class B 20비트 블록 172.16.0.0 ~ 172.31.255.255
class C 16비트 블록 192.168.0.0 ~ 192.168.255.255

- NAT(Network Address Translation)

    : 사설 IP 주소를 공인 IP 주소로 변환하는 주소 변환기

4. IPv6

- 128비트 주소 길이를 사용

- 보안문제, 라우팅 효율성 문제, QoS 보장, 무선 인터넷 지원과 같은 다양한 기능 제공

5. IPv4와 IPv6 특징 비교

구분 IPv4 IPv6
주소 길이 32비트 128비트
표시 방법 8비트 4부분 10진수 표시 16비트 8부분 16진수 표시
주소 개수 약 43억개 2^128개
주소 할당방식 A, B, C, D 등의 클래스 단위 비순차 할당 네트워크 규모, 단말기 수에 따라 순차 할당
브로드캐스트 주소 있음 없음
헤더 크기 가변 고정
QoS 제공 미흡 제공
보안 IPSec 프로토콜 별도로 설치 IPSec 자체 지원
서비스 품질 제한적 품질 보장 확장된 품질 보장

 

TCP와 UDP

1. TCP(Transmission Control Protocol)

- 특징 : 접속형, 신뢰형. 흐름 제어. 혼잡 제어, 바이트 스트림 통신

- 플래그 비트 표

플래그

의미

URG

긴급 포인터가 있음을 표시

ACK

확인 응답번호가 기술돼 있음을 표시

PSH

데이터를 가능한 빨리 응용계층에 보내야 함을 표시

RST

연결을 재설정 하기를 원함을 표시

SYN

연결을 초기화하기 위해 순서번호 동기화

FIN

송신측이 데이터의 전송을 종료

※ tcp 헤더 포맷

2. TCP 연결 방식

1) TCP 연결 설정

- 능동적 열림 : 클라이언트는 서버가 열어 놓은 포트로 TCP 연결 요청, SYN을 보내는 쪽

- 수동적 열림 : 서버는 네트워크 응용을 수행하기 위해 정해진 포트를 열고 클라이언트의 요청을 기다림, SYN 메시지를 수신하는 쪽

- Three-way Handshake를 통해서 TCP 연결

2) TCP 연결 종료

- Four-way Handshake를 통해서 TCP 연결 종료

※ Three-way Handshake & Four-way Handshake

3. UDP(User Datagram Protocol)

- 특징 : 비연결형, 비상태정보, 경량의 오버헤드, 비정규적인 송신률, 최선의 서비스

※ UDP 헤더 포맷

4. TCPUDP의 차이점

서비스

TCP

UDP

신뢰성

  - 패킷이 목적지까지 도달했는지 확인
  - 패킷이 도달할 때마다 ACK를 수신
  -
신뢰성 있는 프로토콜

  - ACK를 사용하지 않음
  - 패킷이 그들의 목적지에 도달되는 것을 보장하지 않음
  -
신뢰성 없는 프로토콜

연결

  - 연결 지향적

  - 핸드쉐이킹 과정 수행

  - 비연결지향적

패킷 순서

  - 패킷 내에 순서 번호 사용

X

혼잡 제어

O

X

용도

  - 신뢰성 있는 전송

  - 스트리밍 비디오와 브로드캐스트 등 실시간 전송

속도의 오버헤드

  - 상당한 양의 자원을 사용하며 UDP보다 느림

  - 더 적은 자원을 사용하고 TCP보다 빠름

 

 

'2020 WINTER STUDY > Network' 카테고리의 다른 글

4주차  (0) 2021.02.12
3주차  (0) 2021.01.25
2주차  (0) 2021.01.18

+ Recent posts