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

* 네트워크 발전사

- 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