악성코드를 분석하는 데 네트워크 트래픽이 왜 필요할까?
* 네트워크 발전사
- 2차 세계전쟁 이후 군용, 연구용으로 쓰이다가 상업용, 민간용으로 퍼져 나감
- 현재는 한국이 인터넷 보급률이나 속도 면에서 최고의 자리를 차지하고 있음
* 악성코드 역사
- 1971년 경 등장, 1986년부터 개체 수와 종이 급격히 증가
- 악성코드의 배포가 네트워크 발전과 함께 급속도로 퍼짐
* 어베스트와 한국인터넷진흥원의 자료 해석
- 악성코드 출현 개수와 새로운 종의 출현이 급격히 증가
- 인터넷과 유사하게 증가하는 추세
- 보급속도보다 몇 년이 늦고 악성코드의 수도 꾸준히 증가하는 점에 다름
(보급력이 충분히 확보된 후 악성코드가 꾸준히 증가함)
- 인터넷이라는 인프라가 구축된 후 악성코드는 급속도로 전파
악성코드 네트워크 트래픽 실제 사례
※ 악성코드는 대부분 네트워크 트래픽을 타고 이동한다.
1. 인터넷 브라우저를 통한 악성코드 유포
- 인터넷을 검색하는 것만으로 악성코드 유포 가능
- 인터넷 익스플로러의 다양한 버전과 Adobe Flash의 취약점 조합으로 악성코드가 유포되는 사례 급증
- 최신 버전의 프로그램들에서도 취약점 꾸준히 등장
- 최근 많이 등장하는 랜섬웨어가 이런 형태로 전파
- 보안 시스템이 있으나 수많은 연구를 거듭 -> 보안 시스템을 우회하여 악성코드 실행
2. 불법 크랙 프로그램을 사용한 악성코드 유포
- 웹하드, P2P 프로그램, 블로그 등을 통해 유포
- 불법 사용자는 디지털 컨텐츠를 값싸게 얻고자 사용
- 배포자가 백신 실시간 감시 기능을 끄고 프로그램을 실행하라는 경우도 있음
3. 피싱/파밍을 통한 악성코드 유포
- 공격자가 임의로 만든 사이트로 접속하게 한 뒤 개인정보를 입력하게 만드는 사회공학적 방법
- ex) 네이버 사이트로 접속한 것처럼 속여 각 은행으로 접속해 금융 정보를 입력하게 했던 사례
- ex) 허위의 페이스북 로그인 창을 만들어 페이스북 계정과 패스워드 입력
- ex) 방문자 추적 서비스로 계정과 패스워드 추출
4. 외부 문서의 매크로를 통한 악성코드 유포
- 이메일 스팸의 문서들에서 hwp, pdf, excel, word 파일 첨부
- 한글이나 pdf의 경우 취약점 이용, excel과 word의 경우 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)
- 현재는 TCP와 IP가 공식 표준
- 다양한 기종의 컴퓨터가 하나로 묶이는 인터네트워킹 구조를 만듦
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) 포트 개요
- 포트 번호는 인터넷ㅇ나 기타 다른 네트워크 메시지가 서버에 도착했을 때 전달돼야 할 특정 프로세스를 인식하기 위한 방법
- TCP와 UDP에서 포트번호는 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 |
- 첫번째 비트가 0인 IP 주소 |
클래스 B |
- 처음 두 비트의 값이 10인 주소 |
클래스 C |
- 처음 3비트의 값이 110인 주소 |
클래스 D |
- 처음 4비트의 값이 1110인 주소 |
클래스 E |
- 처음 4비트의 값이 1111인 주소 |
- 패킷의 전송방법
전송 방식 |
설명 |
유니캐스트 |
- 하나의 송신자가 하나의 수신자에게 패킷을 보내는 방식 |
멀티캐스트 |
- 하나의 송신자가 다수의 수신자에게 패킷을 보내는 방식 |
브로드캐스트 |
- 같은 네트워크에 잇는 모든 호스트에게 패킷을 보내는 방식 |
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 |
- 인터넷 상에서 확인할 수 없으며 내부 네트워크에서만 활용 |
- 사설주소 영역
: 사설 인터넷을 위해 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. TCP와 UDP의 차이점
서비스 |
TCP |
UDP |
신뢰성 |
- 패킷이 목적지까지 도달했는지 확인 |
- 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 |