Study/Security

[정보보안기사 필기/실기] 네트워크 보안

NOredstone 2023. 7. 2. 23:01

1. 네트워크 개요

1) 프로토콜(Protocol)

- 컴퓨터 네트워크상에서 컴퓨터간의 통신을 원활하게 하기 위해 기본적으로 정해둔 규칙

- 전송하는 데이터의 형식, 전송속도, 암호화 방식 등을 기준으로 분류

- Ex) TCP/IP 프로토콜, HTTP 프로토콜, FTP 프로토콜 등

2) OSI(Open Systems Interconnection) 모델

- 다양한 하드웨어 및 소프트웨어 시스템들이 서로 통신을 원활하게 할 수 있도록 표준화된 규약을 제공하는 모델

- 각 계층은 서로 독립적으로 동작하기 때문에 이전 계층의 하드웨어나 소프트웨어와 관계없이 독립적으로 동작 가능

계층 데이터 종류 특징
7 응용
(Application)
메시지
(Message)
①사용자의 요청에 따라 응용 프로그램 구현 FTP, TFTP, SNMP, SMTP, Telnet, HTTP, DNS, DHCP
6 표현
(Presentation)
데이터의 형식 변환 수행
데이터 압축/해제, 포맷 변환, 암호화, 해독
ASC2, Mpeg, jpg, MIME
5 세션
(Session)
컴퓨터 간 연결 유지 및 종료 관련
소켓 프로그램, 동기화, 세션 연결/관리/종료/재연결 시도 등
SQL, RPC
4 전송
(Transport)
세그먼트
(Segment)
데이터의 전송과 무결성 보장
흐름제어, Quality Of Service(QOS)
TCP, UDP
3 네트워크
(Network)
패킷
(Packet)
각 기기의 IP주소 등을 통해 다른 네트워크로 데이터 전송
통신경로 설정, 중계기능, 라우팅
IP, ICMP, IGMP, ARP, RARP, NAT, RIP, BGP
2 데이터 링크
(Data Link)
프레임
(Frame)
물리계층에서 전송한 데이터를 프레임으로 분리하여 오류없는 전송 보장
②MAC주소 사용, 매체제어, 에러검출, 에러정정, 흐름제어
Ethernet, PPP, SLIP, WLAN
1 물리
(Physical)
비트 스트림
(Bit Stream)
전송되는 데이터를 전기적, 기계적, 물리적 신호로 바꾸어 전송 케이블, 리피터, 허브, 네트워크 어댑터

* 종단간(End-to-End) 제어 담당하는 것은 전송 계층, 지점 간(link-to-link) 오류없는 데이터 전송 담당하는 것은 데이터링크 계층

3) TCP/IP 프로토콜

- 컴퓨터 네트워크상에서 데이터를 주고받는 데 기본으로 사용되는 프로토콜

- OSI 7계층 모델을 기반으로 설계

계층 특징
4 응용
(Application)
①여러 서비스 및 응용 프로그램 구현 HTTP, FTP, SMTP, SSH, DNS 등
3 전송
(Transport)
①종단간 통신을 위한 계층
②데이터 나누기, 흐름제어, 오류제어
TCP, UDP
2 인터넷
(Internet)
①데이터를 패킷 형태로 분해하여 전송 IP
1 링크
(Link)
①네트워크 매체에 대한 물리적 및 논리적 연결
MAC 주소를 사용하여 데이터 전송
Ethernet, Wifi, PPP

* 링크 계층은 네트워크 접속 계층, 네트워크 인터페이스 계층으로도 불림

 

2. 계층별 프로토콜

(1) MAC 주소 

- ①Ethernet의 물리적인 주소 ②48비트로 구성(8비트 6개) ③데이터링크 계층에서 사용

  > 00:00:00:00:00:00

※ 여러 통신 유형

구분 설명
유니캐스트 통신 네트워크에서 특정 장치의 고유한 인터페이스를 식별하는 IP 주소로, 일대일 통신
애니캐스트 통신 여러 장치 또는 인터페이스에 할당된 IP 주소
애니캐스트 주소로 전송된 데이터는 동일한 애니캐스트 주소를 공유하는 가장 가까운(라우팅 측면에서) 장치 또는 인터페이스로 전달
멀티캐스트 통신 단일 발신자가 여러 수신자에게 동시에 데이터를 보낼 수 있는 일대다 통신에 사용되는 IP 주소
브로드캐스트 통신 특정 네트워크 또는 서브넷 내의 모든 장치로 전송하는 일대다 통신

 

(2) 라우팅(Routing)

1) 개요

- 출발지에서 목적지까지의 경로를 결정하는 것(네트워크 계층에서 사용)

- 라우팅 프로토콜: 네트워크의 정보를 생성·교환·제어하는 프로토콜을 총칭

- 라우팅 테이블:  대상 IP 주소를 기반으로 네트워크 트래픽을 전달하기 위해 다음 홉 또는 나가는 인터페이스를 결정하기 위해 라우터에서 사용하는 DB

- Default Route: 경로를 찾아내지 못한 모든 네트워크들이 향하는 경로

2) 정적 및 동적 라우팅

구분 정적 라우팅 동적 라우팅
라우팅 테이블 관리 수동
(네트워크 변화에 대한 자동인지 불가)
자동
(네트워크 변화 자동인지하여 전송경로 재구성)
* 처리 부하 증가 및 지연 발생 가능
인터페이스 변경이 적을 때 유리 변경 많을 때 유리
노드 추가/변경 운영 요원이 라우팅 작업 대처 용이
중간 경로 단일 경로에 적합 다중 경로에 적합
보안 보안 중요한 곳에서 사용 전체 네트워크에 대한 정보 유출 가능성

3) 라우팅 알고리즘

거리벡터 알고리즘: 인접한 라우터 정보를 통한 거리를 계산하여 경로를 결정

링크상태 알고리즘: 각 라우터는 네트워크의 모든 라우터에 링크 상태 정보를 플러딩하여 네트워크의 전체 맵을 계산(최단경로)

경로벡터 알고리즘: 주로 도메인 간 라우팅에 사용

4) 유니캐스트 라우팅 프로토콜

◆ RIP(Routing Information Protocol)

- 거리벡터 알고리즘을 사용

- 최대 홉 수는 15 제한(초과 시 도달할 수 없는 것으로 간주)

- 라우팅 테이블: 첫번째 열(목적지 네트워크 주소), 두번째 열(패킷의 다음 라우터 주소), 세번째 열(비용)

- 문제점: ①느림 수렴 ②라우팅 루프 ③무한 세기 ④작은 무한값

- 개선방안: ①Triggered update(홉수 변경되면 즉시 통보) ②Hold down(매트릭이 무한대인 경로에 대해서는 일정시간 경로 갱신하지 않고 전체 네트워크 경로 갱신될때까지 대기) ③Split horizon(전송한 쪽으로 다시 되돌아가는것 막기) ④Route Poisoning(회신 고장을 감지하면 즉시 해당경로 매트릭을 16으로 지정하여 도달불가능 알리기)

◆ RIPv2

- RIPv1의 예약필드를 사용하여 기능을 대폭 확장

- 비교: ①CIDR과 VLSM의 지원 ②메시지 전달(v1은 브로드캐스팅만 이용하지만 v2는 브로드캐스팅과 멀티캐스팅 지원) ③인증(메시지마다 인증가능) ④호환성(v1과 v2는 동일한 메시지 포맷사용)

◆ IGRP(Interior Gateway Routing Protocol)

- 다섯 가지 네트워크 파라미터를 이용하여 거리벡터를 계산, 네트워크 상황에 맞게 변형 가능

- 매트릭 계산요소: ①대역폭 ②지연 ③신뢰도 ④부하 ⑤MTU

◆ EIGRP(Enhanced)

- 수렴속도 빠르며, 부분적 갱신 지원하기 때문에 적은 대역폭을 필요로 함

- VLSM 지원하며 DUAL 알고리즘을 이용하여 네트워크 구성 변화 발생시 패킷 손실없이 재라우팅 가능

◆ OSPF(Open Shortest Path First)

- RIP와 마찬가지로 인트라 도메인 라우팅 프로토콜

- 링크상태 알고리즘을 기반으로 최적경로 계산을 위해 다익스트라 알고리즘 사용

- 네트워크 변화가 생겼을 경우에만 전체 네트워크에 플러딩 과정을 수행함으로써 라우팅 정보 신속하게 갱신하여 수렴시간과 라우팅 트래픽 양을 줄임

- 인증·IP 주소 형태의 클래스 단위·서브넷 단위·CIDR 지원

구분 거리벡터 라우팅 프로토콜(RIP) 링크상태 라우팅 프로토콜(OSPF)
정보 수집 인접한 이웃으로부터 망 정보 수집
* 자신과 직접 이웃
모든 라우터로부터 망 정보 수집
비용 이웃 라우터와의 거리비용 더해서 구함 최단거리 알고리즘으로 모든 라우터에 대한 비용 계산
정보 교환 주기적인 라우팅 정보교환 링크상태 변화시에만 라우팅 정보교환
수렴시간 느린 수렴시간 빠른 수렴시간
변경 시 모든 라우팅 테이블 값을 이웃에게 전달 자신에게 직접 연결된 망 정보만 전달
광고 브로드캐스트 방식으로 라우팅 광고 멀티캐스트 방식으로 라우팅 광고

◆ BGP(Border Gateway Protocol)

- 대규모 네트워크에서 AS 간 라우팅 정보 교환 시 사용

- 경로벡터 알고리즘을 기반으로 하며 인터넷에서 네트워크 접근성에 대한 정보 제공에 알맞음

5) AS, IGP, EGP

- AS(자율 시스템): 단일 관리 도메인 아래의 네트워크 및 라우터 모음

IGP(내부 게이트웨이 프로토콜): AS 내 라우팅에 사용되어 동일한 AS 내 라우터가 라우팅 정보를 교환할 수 있도록 함

EGP(외부 게이트웨이 프로토콜): 서로 다른 AS 간의 라우팅에 사용되어 서로 다른 관리 도메인의 경계에 있는 라우터 간에 라우팅 정보를 교환할 수 있도록 함

6) 모드

- User EXEC 모드: 라우터에 엑세스할 때 기본 모드

Privileged EXEC 모드: 권한 있는 명령 실행 가능

  > enable password(평문 저장시) 또는 enable secret(암호화 저장시) 입력하여 Prvileged EXEC 모드로 변환

7) 기타

Egress 필터링: 내부에서 외부로 나가는 패킷의 소스 IP 체크하여 필터링

Ingress 필터링: 라우터 내부로 유입되는 패킷 소스 IP나 목적지 포트 등 필터링

Null Routing(Blackhole 필터링): 특정 IP 또는 대역에 대해 가상의 쓰레기 인터페이스로 보내는 방식

Unicast RPF: ①패킷의 소스 IP가 들어온 인터페이스로 다시 나가는지 확인하는 방식 ②일일이 IP나 대역 지정하지 않고도 비정상 트래픽 효율적으로 필터링 가능(IP Spoofing 방지)

※ 포워딩(Forwarding): 각 홉에서 내린 라우팅 결정에 따라 한 네트워크 장치에서 다른 네트워크 장치로 패킷을 이동하는 프로세스

 

(3) IP(Internet Protocol)

- 네트워크를 통해 데이터 패킷을 라우팅하고 전달하는 네트워크 계층 프로토콜

- 비신뢰적, 비연결형, 최선형 특징을 가지고 있으므로 신뢰성 필요시 TCP 등 전송 계층 프로토콜 함께 사용

1) IPv4

- 주소 공간 할당하기 위해 클래스를 정의함

- 서브넷팅(Subnetting): 주소고갈을 완화하기 위해 여러 서브넷으로 나누는 프로세스

- 슈퍼네팅(Supernetting): 주소고갈을 완화하기 위해 여러 네트워크를 하나의 네트워크로 합치는 프로세스

CIDR: 클래스 시스템 대체하기 위해 도입됨(슬래시 / 사용)

- CIDR 계산법: ①y = 2^x - 2 ②n = 32 - x

  > IP 주소 갯수: 2^x, CIDR: n, 서브넷 마스크: 256 - 2^x

  > Ex1) 192.168.0.0/24에서 사용자 60명이 사용하고자 함

  > x=6일때 y=62로 60명 커버 가능  32-x=26  192.168.0.0/26으로 서브네팅하면 됨

  > Ex2) 210.210.210.210에서 PC 30대로 네트워크 나누고자 함

  > x=5, IP 주소 갯수는 32, n=27, CIDR는 /27, 서브넷 마스크는 256-32=224(255.255.255.224)

CIDR 서브넷 마스크 IP 주소 갯수
/32 255.255.255.255 1
/31 255.255.255.254 2
/30 255.255.255.252 4
/29 255.255.255.248 8
/28 255.255.255.240 16
/27 255.255.255.224 32
/26 255.255.255.192 64
/29 255.255.255.248 8
/28 255.255.255.240 16
/27 255.255.255.224 32
/26 255.255.255.192 64
/25 255.255.255.128 128
/24 255.255.255.0 256
/16 255.255.0.0 65536
/8 255.0.0.0 16777216
/0 0.0.0.0 4294967296

VLSM(가변 길이 서브넷 마스킹): 서브네팅을 여러번 반복하여 크기가 다른 여러 계층으로 구분

구분 설명
클래스 A 첫번째 비트가 0
범위: 1.0.0.0~126.0.0.0
첫번째 옥텟은 네트워크 부분을 의미, 나머지 옥텟은 호스트 부분을 의미
큰 규모의 호스트를 갖는 기관에서 사용
2^24 - 2개의 호스트 수용가능
클래스 B 처음 두 비트가 10
범위: 128.0.0.0~191.255.0.0
처음 두 옥텟은 네트워크 부분을 의미, 나머지 옥텟은 호스트 부분을 의미
2^16 - 2개의 호스트 수용가능
클래스 C 처음 세 비트가 110
범위: 192.0.0.0~223.255.255.0
처음 세 옥텟은 네트워크 부분을 의미, 마지막 옥텟은 호스트 부분을 의미
작은 규모의 호스트에서 사용
네트워크마다 2^8 - 2개의 호스트 수용가능
클래스 D 범위: 224.0.0.0~239.255.255.255
멀티캐스트 주소 지정을 위해 예약되어 있음
네트워크 주소와 호스트 주소의 구분이 없음
클래스 E 범위: 240.0.0.0~255.255.255.254
실험적 또는 향후 사용을 위해 예약되어 있음(일반 주소X)

2) IPv6

구분 IPv4 IPv6
주소 공간 32비트(약 43억개 고유 주소) 128비트(약 2^128개 고유 주소)
주소 형식 8비트 4부분, 10진수
192.168.0.1
16비트 8부분, 16진수
2001:0db8:85a3:0000:0000:8a2e:0370:7334
주소 지정 클래스 단위 비순차 할당, CIDR 네트워크 규모, 단말기 수에 따라 순차할당
통신 방식 유니캐스트, 애니캐스트,
멀티캐스트, 브로드캐스트
유니캐스트, 애니캐스트,
멀티캐스트(브로드캐스트 기능 포함)
헤더 크기 가변 불변
보안 IPSec 등 별도 설치 IPSec 자체지원, 네트워크 계층에서의 종단간 암호화 제공
서비스 품질(QoS) 제한적 품질 보장(미흡) 향상된 품질 보장(플로우 레이블 필드)

※ IPv4 에서 IPv6으로 변환

- 이중 스택: 모든 인터넷이 IPv6를 사용하기 전까지 시스템은 IPv4, IPv6 둘다 지원

- 터널링: IPv4 지역으로 들어서면 IPv6 패킷은 IPv4 패킷으로 캡슐화되고, 이 지역 벗어날 때 역캡슐화

헤더 변환: 인터넷의 대부분이 IPv6로 변경되고 일부만 IPv4사용할 경우, 헤더 변환을 통해 헤더의 형태를 완전히 변경

 

(4) IPSec(IP Security)

1) 개요

- 네트워크 계층에서 데이터를 보호하는 프로토콜

- IP패킷을 암호화하고 인증하여 안전한 통신 채널을 제공하는 것이 목적

2) 모드

- IP의 내용(payload)만을 보호하는가, 또는 헤더까지 모두 보호하는가에 따라 모드가 나뉨

◆ 전송 모드(Transport Mode)

- 종단 간(End-to-End) 데이터 보호가 필요할 때 사용

- 터널 모드에 비해 개별 사용자 설정 부담이 큼

- 전송 계층과 네트워크 계층 사이에 전달되는 payload를 보호함

◆ 터널 모드(Tunnel Mode)

- 라우터간, 호스트와 라우터간 등 송수신자 양쪽 모두가 호스트는 아닌 경우에 사용됨

- IP헤더를 포함한 IP계층의 모든 것을 보호함

3) 프로토콜

- IPSec은 두가지 보안 프로토콜을 제공

◆ AH(Authentication Header)

- 발신지 호스트를 인증하고 IP패킷의 무결성을 보장

- 다만, AH는 인증과 무결성은 보장하지만 비밀은 보장하지 않음

◆ ESP(Encapsulation Security Payload)

- 페이로드 전체를 보호하여 인증, 무결성, 기밀성 제공

4) 기능 [기무인재접]

- 기밀성(ESP 대칭키 암호화): 암호화된 트래픽을 통해 데이터 노출 방지

- 무결성(AH 메시지 인증 코드 MAC): 메시지 위변조되지 않음을 보장

- 인증(AH 메시지 인증 코드 MAC): 정상 사용자로부터 송신된 데이터임을 보장

- 재전송 공격 방지(보안 연관 순서번호): 순서번호를 유지하여 재전송 공격 방지

- 접근제어(보안정책): 패킷의 허용, 폐기 보호 등 적용

5) IPSec VPN의 주요 구성요소

- AH: IP패킷에 무결성 및 인증 제공

- ESP: IP패킷 무결성·인증 제공하고 암호화하여 기밀성 제공

- SA: ①두 IPSec 장치 간 통신을 보호하는데 사용되는 보안 매개변수 집합 단방향이기 때문에 양쪽 통신이 필요한 경우 각 방향에 대해 하나씩 SA 정의 필요 ③SPI, 순서번호, 목적지 주소, AH/ESP 정보, 프로토콜, Lifetime, 모드 정보 등 포함

- IKE: 키 관리 프로토콜 UDP 500포트 사용

- SPD: 보안 정책 데이터베이스 보호할 트래픽과 보호 방법을 결정

6) 전송 예시

- AH는 전송되는 필드와 인증되는 필드 동일, 암호화 기능 없음

- ESP는 전송, 암호화, 인증 필드가 다름

- TCP 헤더와 데이터를 합쳐서 IP Payload로 이해하기

6-1) AH 전송모드

- 기본: [IP 헤더] [TCP 헤더] [데이터]

- 전송시: [IP 헤더] [AH 헤더] [TCP 헤더] [데이터]

- 암호화 기능 없음

- 인증되는 필드: [IP 헤더] [AH 헤더] [TCP 헤더] [데이터]

6-2) AH 터널모드

- 기본: [IP 헤더] [TCP 헤더] [데이터]

- 전송시: [New IP 헤더] [AH 헤더] [IP헤더] [TCP헤더] [데이터]

- 암호화 기능 없음

- 인증되는 필드: [New IP 헤더] [AH 헤더] [IP헤더] [TCP헤더] [데이터]

6-3) ESP 전송모드

- 기본: [IP 헤더] [TCP 헤더] [데이터]

- 전송시: [IP 헤더] [ESP 헤더] [TCP 헤더] [데이터] [ESP Trailer] [ESP Auth]

- 암호화되는 필드: [TCP 헤더] [데이터] [ESP Trailer]

- 인증되는 필드: [ESP 헤더] [TCP 헤더] [데이터] [ESP Trailer]

6-4) ESP 터널모드

- 기본: [IP 헤더] [TCP 헤더] [데이터]

- 전송 시: [New IP 헤더] [ESP헤더] [IP헤더] [TCP헤더] [데이터] [ESP Trailer] [ESP Auth]

- 암호화되는 필드: [IP 헤더] [TCP 헤더] [데이터] [ESP Trailer]

- 인증되는 필드: [ESP헤더] [IP헤더] [TCP헤더] [데이터] [ESP Trailer]

 

(5) 그 외 네트워크 계층

1) ARP(Address Resolution Protocol)

- 논리적인 주소(IP주소)를 물리적인 주소(MAC주소)로 변환하는 프로토콜

- 반대로 MAC주소를 IP주소로 변환하는 것은 RARP

- 획득한 목적지 MAC주소를 ARP cache에 저장

- ARP Request 메시지: ①특정 IP 주소에 대한 MAC 주소를 요구 ②수신자측 MAC 주소를 모르기에 브로드캐스트(FF:FF:FF:FF:FF:FF)로 전송

- ARP Reply 메시지: MAC 주소를 알림(유니캐스트로 전송)

- RARP(Reverse): ①MAC 주소의 IP 주소를 얻고자 할 때 사용 ②디스크와 같은 저장장치가 없는 호스트에서 주로 사용

- GARP(Gratuitous): 자신의 MAC 정보를 동일 네트워크상의 다른 장비들에게 알려 ARP Cache 갱신 목적·IP 충돌감지

2) ICMP(Internet Control Message Protocol)

- IP와 함께 작동하는 네트워크 계층 프로토콜이며 주로 진단 및 오류 보고 목적으로 사용

- ICMP 유형 코드번호

  > Echo Request: Type 8

  > Echo Reply: Type 0

  > Destination Unreachable: Type 3

  > Redirect: Type 5

  > Time Exceeded: Type 11

3) IGMP(Internet Group Management Protocol)

- 멀티캐스트 그룹 구성원 관리하기 위한 통신 프로토콜

4) NAT(Network Address Translation)

- 개인 네트워크와 공용 네트워크 간의 통신을 허용하는 주소 변환 기능을 제공

- Static NAT: 하나의 내부 IP 주소와 외부 IP 주소를 일대일 매핑

- Dynamic NAT: 여러 개의 내부 IP 주소와 여러 개의 외부 IP 주소를 동적으로 매핑

- PAT(Port Address Translation): 하나의 공인 IP를 다수의 사설 IP가 포트번호로 구분하여 주소 매핑

- Policy NAT: ACL을 사용하여 출발지 및 목적지에 따라 주소변환 제공

 

(6) 전송 계층

1) UDP(User Datagram Protocol)

- IP주소와 포트번호 결합인 소켓주소를 이용하여 통신 제공, 순서번호X

- 특징:

  > ①비신뢰성: ACK를 보내지 않으며 패킷이 목적지에 도달하는 것을 보장하지 않음 

  > ②비연결형: 독립된 데이터그램이라는 것을 의미, 핸드셰이킹X

  > ③흐름제어: 없음

  > ④오류제어: 검사합을 제외하고는 오류제어 없음

  > ⑤혼잡제어: 없음

- 스트리밍 비디오나 브로드캐스트 등 신뢰성 불필요한 전송에서 사용 

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

2) TCP(Transmission Control Protocol)

- UDP처럼 포트번호 사용하여 통신제공, 순서번호 사용하여 순차적으로 수신되도록 함

- 특징:

  > ①신뢰성: 패킷이 목적지 도달할 때마다 ACK 수신하여 확인

  > ②연결성: 연결지향적이며, 핸드쉐이킹 과정을 수행, 목적지 컴퓨터와 가상연결을 형성

  > ③전이중 통신: 데이터는 동시에 양방향으로 전달될 수 있음

  > ④송신 및 수신 버퍼: 흐름 및 오류제어

  > ⑤혼잡제어: 목적지 컴퓨터가 처리 어렵거나 전송속도 느려질 경우 통보

- 신뢰성 있는 전송이 필요할 때 사용

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

- 혼잡제어: 네트워크 혼잡을 방지하기 위해 송신측에서 보내는 데이터 전송 속도 제어

  > AIMD: 문제없을때 윈도우 사이즈 증가, 문제 발생 시 윈도우 사이즈 절반으로 줄이기

  > Slow Start: 윈도우 사이즈 2배씩 증가, 혼잡 발생 시 윈도우 사이즈 1로 줄이기

3) Port Number

- 네트워킹에서 장치 내의 특정 통신 끝점을 식별하는 데 사용

- 범위는 0-65535 이며, TCP 및 UDP 프로토콜에 각각 부여됨

- 잘 알려진 포트(0-1023)는 서버측 응용에 주로 배정되며, 클라이언트는 임시 포트(49152-66535) 사용

- TCP: FTP(20,21), SSH(22), TELNET(23), SMTP(25), DNS(53), HTTP(80), HTTPS(443), POP3(110), Rlogin(513), RDP(3389)

- UDP: DNS(53), DHCP(67,68), NTP(123), SNMP(161,162)

 

(7) 응용 계층 -> 애플리케이션 보안 파트에서 자세히 다룸

1) HTTP(Hypertext Transfer Protocol)

- 웹으로부터 웹페이지를 가져오기 위해 어떻게 클라이언트-서버 프로그램을 작성할지를 정의하는데 사용

- HTTP 클라이언트는 요청하고, HTTP 서버는 응답

- 서버는 80번 포트를 사용하고 클라이언트는 임시번호 포트 사용

2) FTP(File Transfer Protocol)

- 하나의 호스트에서 다른 호스트로 파일 복사하기 위해 TCP/IP가 제공하는 표준 프로토콜

- 20번 포트(TCP): 파일 데이터 전송을 위해 사용

- 21번 포트(TCP): 명령 및 제어를 위해 사용

- 21번만 허용된 경우 FTP 서비스 연결은 가능하나 데이터 전송 안될 수 있음

3) TELNET

- 최초의 원격 로그인 프로토콜 중 하나

- 암호를 비롯한 모든 데이터를 암호화하지 않은 평문으로 전송하기에 해킹에 취약  SSH로 대체됨

4) Rlogin(Remote login)

- TELNET과 같이 원격 로그인을 지원하는 프로토콜

- 주로 Unix 계열에서 사용하고자 설계되었으나 해킹에 취약  SSH로 대체됨

- 접속방법: ①원격지 .rhosts 파일 또는 /etc/hosts.equiv 파일 존재 ②호스트 등록

5) SSH(Secure Shell)

- 안전한 시스템 관리 및 파일 전송에 널리 사용되는 안전하고 암호화(공개키)된 원격 접속 프로토콜

- 기능: ①기밀성(암호화) ②무결성(MAC) ③인증 ④압축 ⑤포트 포워딩(안전한 터널링)

- 비교적 구현하기 쉽고 저렴

6) DNS(Domain Name System)

- 사람이 이해하기 쉬운 도메인 이름과 IP 주소를 변환하는 데 사용되는 프로토콜

- 53번 포트(UDP): 일반적으로 사용하며 패킷 크기 제한(512Byte 이하)

- 53번 포트(TCP): 더 큰 메시지 전송 가능

7) Smaba

- Unix/Linux에서 Windows 클라이언트를 위한 파일 및 프린터 서비스 제공하는 오픈소스 소프트웨어

8) SCP

- SSH를 통해 작동하는 안전한 파일 전송 프로토콜

- SSH의 암호화 및 인증 기능 활용

9) SNMP(Simple Network Management Protocol)

- 네트워크에 있는 장비들을 관리하기 위한 프로토콜

- 구성요소

  > Manager: 162/UDP 사용, Manager가 Agent에게 필요한 정보를 요청하는 역할

  > Agent: 161/UDP 사용, Agent가 Manager에게 주기적으로 보고(설치된 시스템의 정보나 네트워크 정보)

  > MIB(관리 정보 베이스): 관리 장치에 대한 조직화된 정보 저장하는 데이터베이스

  > SMI(관리 정보 구조): SNMP 내에서 사용되는 관리 정보의 구조와 구성을 정의하는 규칙

  > Trap: 에이전트가 매니저에게 보고하는 과정(비동기 알림)

- 라우터에서 snmp 프로토콜 비활성화 명령어

  > Router# configure terminal

  > Router(config)# no snmp-server

10) RADIUS(Remote Authentication Dial-In User Service)

- AAA(Authentication, Authorization, Accounting) 기능 중점 프로토콜(분산 보안 시스템)

- 중앙 집중식 인증, 권한 부여 및 회계 관리를 위해 사용되는 프로토콜

- 사용자가 유선 또는 원격 인증 요청 → ISP의 RADIUS 서버로 전송됨 → RADIUS서버에서 사용자 인증 및 인가 제공

11) SSL/TLS

- 기밀성, 무결성, 인증 기능을 제공하는 웹 브라우저 보안 프로토콜

- 전송 계층 위에 TLS 계층을따로 두어 동작함

- TLS 사용하는 애플리케이션 프로토콜은 끝에 S가 붙게됨(HTTP > HTTPS)

- SSL과 TLS의 차이는 버전과 암호화 알고리즘을 처리하는 방식에 있다.

- 보안 제공 방법

  > 사용자가 SSL로 보호되는 웹 사이트 접속하면 브라우저와 웹 사이트 서버는 SSL 핸드쉐이크를 통해 보안 연결 협상

  > 세션 키 합의함으로서 전송되는 데이터 암호화하고 무결성 보장하는 보안 채널 제공

 

3. 네트워크 장비

(1) 네트워크 장비

1) LAN 카드(NIC)

- 물리 계층에서 작동

- 컴퓨터나 장치를 근거리 통신망(LAN)에 연결할 수 있게 해주는 하드웨어 장치

- 기능: ①전송될 데이터를 병렬에서 직렬로 전환 ②빠른 전송을 위해 데이터 코딩 및 압축 ③목적지 장비 NIC은 데이터 수신/CPU로 데이터 전달 ④PC에서 전송 요구 발생하면 일단 해당 정보를 버퍼에 저장

2) 허브(Hub)

- 물리 계층에서 작동

- LAN에서 여러 장치를 연결하는 데 사용되는 기본 네트워크 장치

3) 리피터(Repeater)

- 물리 계층에서 작동

- 네트워크 신호를 재생성하고 증폭하여 네트워크 범위를 장거리로 확장하는 데 사용되는 장치

4) 브리지(Bridge)

- 데이터링크 계층에서 작동

- MAC 주소를 사용하여 서로 다른 세그먼트 간에 데이터 패킷을 필터링하고 전달

5) 스위치(Switch)

- 데이터링크 계층에서 작동

- 들어오는 패킷의 MAC 주소를 분석하고 이를 적절한 대상 장치로 선택적으로 전달(리피터와 브리지 기능 결합)

- 허브와 달리 데이터를 모든 포트에 전달하지 않기 때문에 스위치에 흐르는 데이터 분석 시에는 Port Mirroring 기능 사용해야 함

- 종류

구분 설명
L2 스위치(2계층) MAC 주소 기반 스위칭
L3 스위치(3계층) IP 주소 기반 트래픽 조절 가능
L4 ~ L7 스위치 포트번호 또는 패킷 내용을 분석 및 판단하여 패킷 경로 설정·변환·필터링 동작 수행
L4: 로드밸런싱 기능(부하분산, 상태확인, 세션유지)
차이점: 4는 TCP/UDP 포트정보를 분석, 7은 트래픽 내용을 분석

- 방법

구분 설명
Store-and-Forward 방식 들어오는 프레임을 전부 받아들인 다음에 처리를 시작하는 방식
에러발견시 프레임 버리고 재전송 요구하기 때문에 에러복구능력 뛰어남
Cut-Through 방식 앞에 들어오는 목적지 주소만을 보고 바로 목적지로 전송(처음 48비트만 본다)
처리가 빠름, 에러복구능력 떨어짐
Fragment-Free 방식 위 두 방식을 결합, 512비트를 보고 목적지로 전송

6) 라우터(Router)

- 네트워크 계층에서 작동

- 서로 다른 네트워크 또는 서브넷 간의 데이터 패킷 라우팅을 담당

- 브리지와의 비교

구분 브리지 라우터
헤더 헤더정보를 읽지만 변경불가 각 프레임에 새로운 헤더 생성
테이블 MAC 주소에 근거하여 전송 테이블 작성,
트래픽 필터링
IP 주소에 근거하여 라우팅 테이블 작성,
트래픽 필터링
포트 모든 포트에 대해 동일한 네트워크 주소 사용 포트마다 서로 다른 네트워크 주소 지정
브로드캐스트 브로드캐스트 패킷 전달 브로드캐스트 패킷 전달하지 않음
목적지 브리지에게 알려지지 않은 목적지 주소를 가진
트래픽도 전달
라우터에 알려지지 않은 목적지 주소 가진
트래픽 전달X

7) 게이트웨이(Gateway)

- 응용 계층 등에서 작동

- 서로 다른 프로토콜이나 기술을 사용하여 서로 다른 네트워크 간에 연결을 제공하는 네트워크 장치 또는 소프트웨어 구성 요소(프로토콜 전환)

 

(2) 무선랜(WLAN)

1) 개요

- 무선 근거리 통신망

- 장점: ①주변환경 깔끔하게 정리(케이블 불필요) ②이동이 자유로움 ③네트워크 구축비용 절감 ④네트워크 유지보수 용이

- 단점: ①전파를 사용하는 다른 기기의 간섭 받음 ②유선랜에 비해 상대적으로 느린 전송속도 ③숨겨진 터미널 문제가 발생

- 구성: ①Infrastructure network ②Ad-hoc network

  > Infrastructure network: AP 기반으로 구성되는 네트워크로 모든 노드들은 AP에 접속하여 통신 수행

  > Ad-hoc network: 노드에 의해 자율적으로 구성되는 네트워크로 AP 불필요, Peer to Peer

- 구축시 고려사항: ①SSID 숨김모드로 사용 ②관리자용 초기 ID/PW변경 ③무선 단말기 MAC 인증 수행

2) 프로토콜

프로토콜 시기 주요사항 비고
IEEE 802.11 1997.7 2.4GHz/2Mbps 최초의 무선랜 프로토콜
IEEE 802.11b 1999.9 2.4GHz/11Mbps WEP 방식 보안 구현가능
IEEE 802.11a 5GHz/54Mbps b와 호환X
IEEE 802.11g 2003.6 2.4GHz/54Mbps b와 호환, 속도 향상
IEEE 802.11i 2004.6 2.4GHz/11Mbps b에 보안성 강화
IEEE 802.11n 2007 5GHz, 2.4GHz 최대 600Mbps 속도

※ IEEE 프로토콜 

구분 설명
IEEE 802.3 (이더넷) 10Mbps, 100Mbps, 1Gbps 등과 같은 다양한 속도를 포함하여 유선 LAN에 대한 물리적 및 데이터 링크 계층 프로토콜
IEEE 802.11 (Wi-Fi) 무선 통신을 위한 물리적 및 MAC(Media Access Control) 계층 프로토콜을 정의
IEEE 802.1x (포트) 네트워크 인증 및 포트 기반 네트워크 액세스 제어를 위한 표준
  > 구성요소: Supplicant(스마트폰, 노트북 등), Authenticator(무선 공유기, AP, 허브 등), Authentication Server(RADIUS 서버 등)

3) 취약점

- 물리적 취약점: ①도난 및 파손 ②무선 AP 리셋버튼을 통한 구성설정 초기화 ③전원 차단 ④LAN 차단

- 기술적 취약점: ①무선 전파 전송 방해 ②불법 AP(Rogue AP)를 통한 전송 데이터 수집 ③암호화 되지 않은 통신 데이터 도청

- 관리적 취약점: ①무선랜 장비 관리 미흡 ②사용자의 보안의식 결여

4) 인증 기술

◆ PSK(Pre Shared Key)

- 별도의 인증서버 없는 소규모 망에서 사용되며, 초기 인증에 사용되는 PSK값을 이용해 4웨이 핸드쉐이킹 과정을 통해 무선AP와 무선단말기가 동일한 값 가지고 있는지 확인

◆ EAP(Extensible Authentication Protocol)

- 초기에는 PPP에서의 사용을 위해 개발되었으나 현재는 무선랜 표준인 IEEE 802.1x에서 사용자 인증 방법으로 사용되며, 어떤 링크에도 접속 가능함

5) 보안 기술

◆ WEP(Wired Equivalent Privacy)

- 초기 무선랜 보안 기술

- RC4 알고리즘(PSK)을 사용하여 인증 및 암호화

◆ WPA(Wifi Protection Access)

- EAP를 통해 인증을 수행하고 RC4-TKIP 알고리즘으로 암호화

◆ WPA2

- EAP를 통해 인증을 수행하고 AES-CCMP 알고리즘으로 암호화 지원

◆ WPA3

- 순방향 기밀성 지원(현재 사용되는 키 노출되더라도 예전 암호화된 트래픽 기밀성에 영향X)

 

(3) IDS/IPS/FW

1) 개요

- IDS(Intrusion Detection System): 침입 탐지 시스템

- IPS(Intrusion Prevention System): 침입 방지 시스템

  > 네트워크에 대한 위협과 공격 탐지하고 방지(세션 기반 탐지 가능)

- FW(Firewall): 침입 차단 시스템

  > 기능: ①정책에 의한 접근제어 ②로깅 및 감사 추적 ③인증 ④무결성 ⑤트래픽 암호화

  > 패킷 분석 및 공격 탐지는 IDS 기능이고, FW는 분석과 탐지하지 않고 차단

2) IDS 종류

- NIDS(네트워크 기반 IDS): ①네트워크 트래픽 모니터링 및 패킷 분석 ②라우터, 스위치 등을 통해 흐르는 트래픽 검사 ③외부 위협 감지 ④암호화된 트래픽 탐지 어려움

- HIDS(호스트 기반 IDS): ①호스트 또는 시스템 활동 모니터링 ②외부 및 내부 위협 감지 ③암호화된 트래픽 탐지 가능

3) IDS 작동순서 등

- 작동순서: 데이터 수집 → 데이터 가공 및 축약 → 침입 분석 및 탐지 → 보고 및 대응

- 구현방법: ①사후 감사추적에 의한 분석 기술 ②실시간 패킷 분석 기술 ③실시간 행위감시 및 분석 기술

- 스텔스 모드: IDS 존재를 숨기기 위하여 감시용 인터페이스가 IP 주소 갖지 않도록 구성(노출 방지)

3) 탐지결과

오탐(False Positive): 정상적인 행위를 이상행위로 판단하여 탐지하는 상황

미탐(False Negative): 이상행위를 탐지하지 못하는 상황

4) 탐지기법

◆ 오용탐지(지식기반 탐지)

- 잘 알려져 있는 공격패턴을 룰로 등록하고, 패턴과 일치여부에 따라 침입여부를 판단하는 방식

- 등록된 공격패턴에 의하여 탐지되므로 오탐률 낮음

- 새로운 공격은 탐지 불가하며, 지속적으로 패턴 업데이트 필요

- 이전 사용패턴과 달라진 것을 탐지

- Ex) 시그니처 분석, 페트리넷, 상태전이 분석 등

◆ 이상탐지(비정상행위 탐지)

- 정상행위와 이상행위 분석하고, 통계적 분석을 통하여 침입여부를 판단하는 방식

- ①합법적 사용자의 행동에 대한 데이터 기반으로 다음 행동에 대한 합법 여부 결정 ②사용자와 무관하게 다양한 사건들의 발생빈도를 임계값으로 정의 ③각 사용자의 동작에 대한 프로파일 구성하고 개인별 행동 변화 감지

- 따라서 사용자 시스템 자원 사용 패턴 등을 수집(시스템에 대한 침입행위 패턴은 오용탐지에서 사용됨)

- Ex) 통계적 분석, 데이터 마이닝 등

5) FW 종류

네트워크 계층(패킷 필터링) FW: ①네트워크 계층에서 작동 ②출발지 및 목적지 IP 주소, 프로토콜 유형(TCP/UDP) 및 포트번호 기준 정책

애플리케이션 계층(프록시) FW: ①응용 계층에서 동작 ②클라이언트와 서버간 중개자 역할하며 패킷 전체 검사, 사용자 인증 및 프로토콜 유효성 검사 수행 ③속도 느리고 투명성 저하

상태 저장 패킷 검사(SPI) FW: ①네트워크 연결 상태 추적을 위한 상태 테이블 관리(투명성 제공) ②출발지 및 목적지 IP 주소, 프로토콜 유형(TCP/UDP) 및 포트번호 등 패킷 헤더 기준 정책 ③Stateful FW에 해당

심층 패킷 검사(DPI) FW: 패킷의 페이로드 부분에 포함된 바이러스 등 악성코드 검사 가능

6) 기타

FDS(Fraud Detection System, 이상금융거래 탐지시스템): 전자금융거래에서 실시간으로 탐지 기능을 제공

- Bastion Host: 내외부 네트워크 사이에서 게이트웨이 역할을 수행하며 보안기능(침입차단 S/W) 구축되어 있는 컴퓨터시스템

- NGFW(Next Generation Firewall): 애플리케이션을 기반으로 패킷 필터링하고 IP 헤더 및 패킷 데이터 검사하는 기능 제공

- SOAR(Security Orchestration, Automation and Response): 보안 위협에 대한 대응 프로세스를 자동화해 낮은 수준 이벤트는 자동 처리하고 사고 발생시 담당자가 쉽게 대응할 수 있도록 제공

 

(4) Snort

1) 개요

- 실시간 트래픽 분석과 네트워크 패킷 처리가 가능한 오픈소스 NIDS SW

- 리눅스에 Snort 설치 시 /etc/snort 디렉터리 밑에 설정 파일 등이 위치함

- 작동순서: Packet capture Packet decoder Detection engine Logger Alerter

2) Snort Rule

- 크게 헤더(Header)와 바디(Body)로 구성됨

◆ Header

- Header 구조: [action]+[Protocol]+[IP주소]+[Port번호]

- Ex) alert udp 0.0.0.0/0 any 192.168.10.0/24 any

- action 유형

구분 설명
alert 알람 발생, 패킷을 로그에 기록
log 패킷 로그에만 기록
pass 아무런 처리없이 통과
activate 알람 발생, dynamic 룰 동작
dynamic activate 룰에 의해 트리거, 패킷 로그에만 기록
drop 패킷 차단하고 로그 기록
reject 패킷 차단하고 로그 기록하며 Reset or ICMP port unreachable 메시지 전송
sdrop 패킷 차단만 하고 로그 기록하지 않음

◆ Body

- 패킷 검출을 위한 다양한 옵션 설정 가능

구분 설명
msg 룰 타이틀 명으로 이벤트 발생 시 로그에 기록되는 항목
content 패킷의 payload에서 검사할 문자열 지정(헤더가 아님!!)
nocase
payload 검사 시 대소문자 구분안함
offset
payload에서 패턴 매칭할 시작 위치(0 부터 시작), offset 바이트만큼 띄우고 검사 시작
depth
payload에서 패턴 매칭할 끝 위치(0+offset 시작), depth 바이트만큼 검사
distance
이전 검색 마친 위치에서 해당 숫자만큼 띄우고 검사 시작
flow flow: <established|to_server|to_client>
  > established: TCP 세션 연결되어 있는 트래픽만 검사
  > to_server: 클라이언트에서 서버 패킷일 때 검사
  > to_client: 서버에서 클라이언트 패킷일 때 검사
threshold type <limit|threshold|both>, track <by_src|by_dst>, count <c>, seconds <s>
  > limit: 매 s초 동안 c번째 이벤트까지 트리거
  > threshold: 매 s초 동안 c번째 이벤트마다 트리거
  > both: 매 s초 동안 c번째 이벤트 시 한번 트리거
  > by_src: 출발지 IP 기준 추적
  > by_dst: 목적지 IP 기준 추적

3) Suricata

- 오픈소스 IDS/IPS로, 기존의 Snort의 장점을 수용하고, 대용량 트래픽을 실시간으로 처리하는데 특화된 소프트웨어

 

(5) IPtables

1) 정의

- 리눅스 OS 방화벽

- 네트워크 방화벽과 동일하게 IP/Port 기반으로 패킷 차단/허용 가능

2) 구조

- iptables [테이블명] [체인명] [룰] [타겟]

2-1) 테이블 종류

- Filter: default, 패킷 필터링 담당

- Nat: IP 주소 변환 처리(SNAT, DNAT)

- Mangle: 성능 향상을 위한 TOS 설정

2-2) 체인 종류(Filter TABLE일 경우)

- INPUT: 외부에서 들어오는 패킷 담당

- OUTPUT: 외부로 나가는 패킷 담당

- FORWARD: 방화벽을 경유하여 외부에서 다른 시스템으로 전달되는 패킷

2-3) 룰

- 프로토콜: -p TCP, -p UDP

- SYN 플래그: --syn

- IP 주소: -s IP주소, -d IP주소

- Port 번호: --sport 포트번호, --dport 포트번호

2-4) 타겟

- -j: ACCEPT(허용), DROP(차단), REJECT(차단 후 ICMP 에러 전송), LOG(탐지 로그만 남김)

3) 명령어 예시

- service iptables stop  #iptables 끄기

- service iptables start  #iptables 켜기

4) 차단 룰 예시

- iptables -A INPUT -s 아이피 -j DROP

- iptables -A INPUT -p TCP --syn --dport 80 -m recent --update --seconds 2 --hitcount 30 --name SYN_DROP -j DROP

5) 룰 저장 및 복원 방법

- iptables -save > iptables-rules.txt  #파일이름은 변경해서 사용 가능

- iptables -restore > iptables-rules.txt

 

(6) 기타

1) 공개 인증(OAuth, Open Authorization)

- 인터넷 애플리케이션에서 사용자 인증에 사용되는 공개 API로 구현된 표준 인증 방법

- SNS 서비스를 다른 애플리케이션에서 사용자 정보 접근할 때 사용할 수 있도록 함

2) 스크린드 서브넷 구조(Screened Subnet Architecture)

- 인터넷과 내부 네트워크 사이 DMZ 운영하는 방식

- 스크리닝 라우터 사이 호스트가 위치하는 구조

- 장점: 유연하고 높은 보안 제공

- 단점: ①설치 및 관리 어려움 ②고가의 비용 ③속도가 느림

3) SIEM

- IT 시스템에서 발생하는 모든 로그정보를 분석해 위협 탐지하는 시스템

- Ex) Qradar, Arcsight, Envision, Splunk

4) ESM

- 기업 보안 정책 반영하고 다양한 보안 시스템 관리하여 보안 효율적 실현

5) UTM

- 다양한 보안 솔루션을 하나의 장비에 탑재하여 운영하는 통합보안 솔루션

6) PMS

- 중앙관리형 소프트웨어 관리 프로그램

7) NFV

- 네트워크 기능 가상화로 기존 하드웨어에서 실행되었던 라우터, 방화벽, 로드밸런서 등 네트워크 서비스를 가상화하는 방식

8) SDN

- 네트워크 자원의 개방화 및 가상화를 통해 네트워크 설정을 소프트웨어적으로 제어할 수 있도록 하는 기술

9) MDM(Mobile Device Management)

- IT 부서가 기기를 완전히 제어할 수 있도록 직원의 스마트패드와 스마트폰에 잠금·제어·암호화·보안정책을 실행할 수 있는 기능 제공

- MDM 적용된 스마트폰에는 기업 보안정책에 위반하는 앱 설치 및 구동불가

10) MAM(Mobile Application Management)

- 스마트 기기 전체가 아니라 기기에 설치된 업무 관련 앱에만 보안 및 관리 기능을 적용

11) NAC(Network Access Control)

- 사용자 기기가 기업 내부 네트워크 접근 전 보안정책을 준수했는지 여부를 검사하여 비정상 접근여부에 따라 네트워크 접속을 통제하는 기술

- 주요 기능: ①접근제어 ②PC 및 네트워크 장치 통제(무결성 체크) ③유해 트래픽 탐지 및 차단

12) BYOD 보안

- MDM, MAM, NAC, 컨테이너화(암호화된 별도 공간에 업무용 데이터와 개인용 데이터를 분리하고 관리), 모바일 가상화(하나의 모바일 기기에 개인용과 업무용 운영체제를 동시에 담아 개인과 사무 정보를 완전히 분리)

 

4. 네트워크 기술

(1) VLAN

1) 개요

- 물리적 네트워크 내의 장치를 논리적으로 그룹화한 것

- 데이터링크 및 네트워크 계층에서 작동

- 네트워크 내 브로드캐스트 트래픽 범위 제한하여 네트워크 성능 향상

- 장점: ①보안 강화 ②성능 향상 ③유연성 및 확장성 

2) 종류

- Port 기반: 스위치 포트를 각 VLAN에 할당하는 것, 같은 VLAN에 속한 포트에 연결된 호스트들간에만 통신가능

- MAC 기반: 각 호스트들의 MAC주소를 VLAN에 등록, 같은 VLAN에 속한 MAC주소들간에만 통신가능

- IP 기반: IP 주소별로 VLAN을 구성, 같은 네트워크 속한 호스트들간에만 통신가능

- 프로토콜 기반: 같은 통신 프로토콜(TCP/IP, IPX/SPX등)을 가진 호스트들간에만 통신가능

 

(2) VPN

1) 개요

- Public Network를 사설망처럼 사용할 수 있게 해주는 기술

- 기능: ①데이터 기밀성 ②데이터 무결성 ③데이터 송신자 인증 ④접근통제

2) 프로토콜

- 2계층: L2F, L2TP, PPTP, MPLS

- 3계층: IPSec, OpenVPN, MPLS

- 4계층: SSL, SSTP

◆ L2F(Layer 2 Forwarding)

- CISCO사에서 개발한 터널링 프로토콜로 데이터 링크 계층에서 캡슐화를 지원

◆ PPTP

- 마이크로소프트社와 3Com社 등 여러 회사가 공동개발한 터널링 프로토콜로 RFC 2637으로 표준화됨

◆ L2TP

- 장점을 결합한 프로토콜로, 기밀성과 인증 기능의 부족으로 IPSec 프로토콜과 함께 사용되는 경우 많음

◆ IPSec VPN

- 인터넷 계층에서 동작하는 대표적인 VPN 프로토콜

◆ SSL VPN

- 패킷 단위로 암호화하는 IPSec VPN과 달리 SSL VPN은 메시지 단위로 데이터 암호화

- 웹브라우저만 있으면 언제 어디서나 사용 가능

- 다만 IPSec VPN에 비해서 속도 느림

 

(3) Port Scan

1) 개요

- 해당 호스트에서 어떤 포트가 열려있는지 확인하는 것

- 이를 통해 해당 네트워크가 사용하고 있는 시스템과 서비스 등을 알 수 있음

2) 종류

◆ TCP Open Scan(=TCP Full Open Scan=TCP SYN/ACK Scan)

- 완전한 TCP 연결 맺어서 포트 활성화 여부 판단

- 신뢰성 있는 결과 얻지만 속도 느리고 로그 남음

- 포트 열려있는 경우: 공격자가 SYN 패킷 송신, 대상으로부터 SYN/ACK 패킷 수신, 공격자가 ACK 송신, 공격자가 RST/ACK 송신

- 포트 닫혀있는 경우: 공격자가 SYN 패킷 송신하면 대상으로부터 RST/ACK 패킷 받음

◆ TCP SYN Scan(=TCP Half Open Scan)

- 세션을 완전히 연결하지 않고 포트 활성화 여부 판단(로그 안남김)

- 포트 열려있는 경우: 공격자가 SYN 패킷 송신, 대상으로부터 SYN/ACK 패킷 수신, 공격자가 RST 패킷 송신

- 포트 닫혀있는 경우: 공격자가 SYN패킷 보내면 대상으로부터 RST/ACK 패킷받음

- 응답이 없는 경우 포트 사용 중이나 보안장비 등에 의하여 필터링

◆ TCP FIN/NULL/XMAS Scan

- TCP 헤더 조작하여 특수한 패킷 보내고 응답받아 포트 활성화 여부 판단(로그 안남김)

  > NULL 패킷: TCP 헤더 내 플래그 값을 설정하지 않고 전송하는 패킷

  > XMAS 패킷: TCP 헤더 내 ACK, FIN, RST, SYN, URG 플래그를 모두 설정하여 전송하는 패킷

- 포트 열려있는 경우: 공격대상으로부터 응답 없음

- 포트 닫혀있는 경우: RST 패킷 받음

◆ TCP ACK Scan

- 포트의 오픈 여부를 판단하는 것이 아닌, 방화벽과 같은 보안장비의 필터링을 확인하기 위함

- 필터링되고 있으면 응답이 없거나 ICMP 메시지 받고, 필터링 없다면 RST 응답 받음

◆ UDP Scan

- 각 포트에 UDP 패킷을 보내고 응답 수신되면 포트 열린 것으로 간주, 응답 수신되지 않는 경우 불확실함

- TCP 스캔보다 빠름

 

(4) 디바이스 인증 기술

1) 개요

- 네트워크 또는 시스템에 연결하는 장치의 신원 및 진위를 확인하는 데 사용되는 기술

- 장점: ①보안성 ②경제성 ③상호연동성

2) 인증 기술

◆ ID/PW 기반

- 장점: ID·PW만 있으면 어느 기기에서나 인증 가능

- 단점: ①접속을 위한 별도 앱이나 프로토콜 필요 ②ID·PW 유출 위험 ③부인방지 불가능

◆ MAC 주소 기반

- 장점: ①접속 용이 ②추가 앱이나 프로토콜 불필요 ③추가 연산이나 지연 없음

- 단점: ①기기 바뀌면 MAC 주소 재등록 필요 ②새로운 사용자 추가·삭제에 따라 MAC 주소 관리 필요 ③사용자 본인 기기만을 사용하여야 함 ④MAC 주소 유출 위험 ⑤부인방지 불가능

◆ 암호 프로토콜 활용

- 장점: ①다양한 인증방식 ②부인방지 가능

- 단점: 안전성이 암호 및 인증 알고리즘에 의존

◆ Challenge/Response

- 장점: ①패스워드만으로 어느 기기에서든 쉽게 인증가능 ②사용자가 패스워드 바꾸지 않아도 매번 다른 형태로 네트워크 상에서 이동하기에 안전

◆ PKI 기반

- 장점: ①매우 높은 안정성 ②ID·PW 유출 위험 감소 ③확실한 기기 식별 가능 ④부인방지 가능

- 단점: ①인증서 관리필요 ②CRL리스트 관리필요 ③많은 계산량에 의한 처리시간 지연

 

(5) RFID(Radio-Frequency IDentification)

1) 개요

- 무선 주파수를 이용해 ID를 식별하는 방식으로 일명 전자태크라고 불림

2) 공격 유형

- ①도청 ②트래픽 분석 ③위조 ④DoS

3) 보안 기술

- 암호기술 사용: ①해시 락 기법 ②XOR기반 원타임 패드 기법

- 그 외 방법: ①Kill 명령어 ②Sleep 명령어와 Wake 명령어 기법 ③블로커 태그 기법 ④Faraday Cage(금속박막으로 태그 막기) ⑤Jamming(강한 방해신호)

 

(6) 역추적 기술

◆ IP Traceback

Proactive 방식: 패킷이 전송되는 과정에서 사전에 역추적 경로정보를 생성하여 패킷에 삽입하거나 목적지로 전달하여 주기적으로 관리

Reactive 방식: 해킹 발생시 피해 시스템에서 해킹 트래픽 연결에 대한 공격경로를 홉 단계로 추적하는 방식

◆ TCP Traceback

Network-based Connection 방식(Router 기반 추적): 공격자를 chain of connection을 통해 추적하는 방식

Host-based Connection 방식(Host Server 기반 추적): 호스트 PC를 기반으로 하며 사용자 로그인 및 connection 경로 추적

◆ Application Traceback

 

5. 네트워크 관련 OS 명령어

(1) ping

- 네트워크 호스트 또는 IP 주소의 도달 가능성 및 왕복 시간(RTT)을 테스트할 때 사용하는 명령어

- 대부분의 운영체제에서 사용 가능

- ICMP 프로토콜을 사용하여 Echo Request 메시지를 대상 호스트에게 보내고 Echo Reply 메시지를 수신

- 패킷 IP 헤더에 TTL(Time-to-Live) 값 포함

  > 패킷이 폐기되기 전에 통과할 수 있는 최대 네트워크 홉 수

  > 패킷이 네트워크에서 무한 순환되는 것 방지하기 위함

  > 유닉스 계열 225, 윈도우 계열 128이며 TTL 값이 라우터 지날때 마다 1씩 감소

- 호스트 사이 거리 구하기

  > (윈도우의 경우)128 - TTL = 라우터 개수

  >  라우터 개수가 적은 곳이 더 가깝다는 걸 알수 있음

 

(2) traceroute

- 패킷이 목적지까지 도달하는 동안 거치는 라우터 IP 확인할 때 사용하는 명령어

- 네트워크 문제 해결, 네트워크 정체 진단, 네트워크 성능 문제 식별 가능

- 다양한 운영체제에서 사용 가능

  > Unix 계열에서는 traceroute(UDP 사용), Windows에서는 tracert(ICMP 사용)

- 응답시간이 *로 표시되는 경우 IPS 등에서 UDP 패킷 차단됨

- 우연히 도달하는 것 방지하기 위해 3번 통신 시도

- 결과로 출력되는 첫번째 숫자는 TTL 값 의미

- 옵션: -m(최대 홉 수 또는 TTL 값 지정)

 

(3) netstat

- PC의 네트워크 상태를 다양하게 보여주는 명령어

- 네트워크 연결 상태, 라우팅 테이블, 네트워크 통계 등 정보 확인 가능

- 다양한 운영체제에서 사용 가능

- 옵션: -a(모든 연결 및 수신 대기 포트 출력), -f(외부 주소 FQDN 형태로 출력), -e(이더넷 통계 출력), -i(도움말), -n(주소 및 포트번호를 숫자로 출력), -r(라우팅 정보·경로 테이블 출력), -s(프로토콜별 통계 출력)

 

(4) ifconfig

- 네트워크 인터페이스 정보 확인 명령어

- 다양한 운영체제에서 사용 가능

  > Windows에서는 ipconfig

- ipconfig 옵션: /all(여러 정보 출력), /release(지정한 인터페이스 DHCP 임대 종료), /renew(지정한 인터페이스 DHCP 수동 갱신), /flushdns(호스트 DNS 캐시 테이블 삭제), /displaydns(호스트 DNS 캐시 테이블 출력), /registerdns(모든 DHCP 임대 갱신하고 호스트와 연관된 모든 DNS 이름 재등록)

 

(5) tcpdump

- 네트워크 모니터링 및 분석에 사용되는 패킷 캡처 명령어

- 다양한 운영체제에서 사용 가능

  > Windows에서는 windump

- 구조 : tcpdump [옵션] [expression] [host]

- 옵션 :  -A(패킷 내용을 ASCII로 출력), -c(주어진 수의 패킷 받은 후 종료), -D(가능한 인터페이스 목록 출력), -i(인터페이스 지정), -w(캡쳐한 패킷을 분석하여 출력하는 대신 파일에 저장)

- 출력 결과: <패킷 수집 시간> <출발지 IP 및 포트번호> <목적지 IP 및 포트번호> <flag> <윈도우 사이즈> ...

 

6. 네트워크 기반 공격

(1) DOS

1) 개요

- 공격 대상 시스템이 정상적인 서비스를 할 수 없도록 만드는 공격

2) DDoS

- 여러 대의 컴퓨터를 동작시켜 특정 사이트나 시스템을 공격하여 정상적인 서비스를 할 수 없도록 하는 공격

- DoS는 공격자가 단일 컴퓨터를 통해 공격하는 경우, DDoS는 공격자가 물리적으로 분산된 다수의 컴퓨터(좀비 PC)를 이용하여 공격하는 형태

3) DRDoS

- 공격 원리: 공격자는 Source IP를 공격대상의 IP로 위조하여 다수의 반사서버로 요청을 보내고, 공격대상 서버는 반사서버로 부터 다수의 응답을 받아 서비스 장애

- 기존 DoS와의 차이점

  > 출발지 IP가 위조되고, 반사서버를 통해 공격이 수행되므로 공격의 출처를 파악하기 어려움

  > 다수의 좀비 PC를 동원하지 않더라도 대량의 공격 패킷을 만들어 낼수 있어 효율이 높음 

 

(2) DoS 주요 공격

1) Smurf Attack

- DDoS 공격의 하나로, ICMP 특성을 이용한 공격

- 공격 대상자의 IP로 스푸핑된 IP를 Source로 하여 브로드캐스트 도메인으로 ICMP 메세지를 전송하는 공격

- 대응방안: ①패킷 필터링을 통해 Echo Reply message의 rate-limit 설정하여 한꺼번에 동일한 ICMP Echo Reply message 들어오는 것을 막기 ②라우터에서 Direct Broadcast를 Disable 시키기

- Ex1) 신뢰할 수 있는 네트워크 범위에 대해서만 ip direct broadcast 활성화하기

  > (config)# access-list 100 permit udp [신뢰할 수 있는 네트워크 범위] any

  > (config)# interface FastEthernet 0/0

  > (config-if)# ip directed-broadcast 100 

- Ex2) ip direct broadcast 비활성화하기

  > no ip directed-broadcast

2) LAND Attack(Local Area Network Denial Attack)

- DDoS 공격의 하나로, IP 스푸핑을 이용한 SYN 공격

- 출발지와 목적지의 IP 주소를 공격대상의 IP주소와 동일하게 설정하여 보내는 공격

- 대응방안: 네트워크로 유입되는 패킷 중 source IP가 내부 IP인 패킷 차단

3) Slow HTTP Post DOS Attack(RUDY)

- 헤더 필드의 Content-Length를 비정상적으로 크게 설정한 후, 매우 작은 데이터를 천천히 웹 서버에 전송하여 연결 상태를 유지하여 웹 서버의 가용량을 침해하는 공격

- Ex) HTTP Request 메시지 내 Content-Length는 매우 크나, 패킷 분석 도구(Wireshark Pachet)에서는 Length가 작게 보이는 경우

- 대응방안: ①Connection Timeout 설정 ②Read Timeout ③방화벽 설정을 통한 단일 Source IP에서 동시 연결 임계값 설정

4) Slow HTTP Header DoS Attack(Slowloris)

- HTTP 관련 공격 중 헤더의 CRLF(개행문자) 필드 부분을 조작함으로써 웹서버로 조작된 HTTP 헤더를 지속적으로 보내 서비스의 가용성을 떨어뜨리는 공격

- Ex) 헤더 끝을 알리는 개행 문자열 \r\n\r\n (Hex: 0d 0a 0d 0a)을 포함하지 않고 전송

- 대응방안: 방화벽 설정을 통한 단일 Source IP에서 동시 연결 임계값 설정

5) TCP SYN Flooding Attack

- DDoS 공격의 하나로, TCP 핸드쉐이크를 이용한 공격

- 다수의 SYN 패킷을 전송하여 다수의 SYN RECEIVED 상태를 발생시키는 공격

- 대응방안: ①SYN Cookie 설정 ②방화벽을 통해 동일 클라이언트 IP에 대해 SYN 임계치 설정

6) TCP Connection Flooding Attack

- 다량의 SYN 패킷을 공격 대상에게 전송하여 다수의 ESTABLISHED 상태를 발생시키는 공격

- SYN Flooding은 해당 공격의 일종

7) UDP/ICMP Flooding Attack

- 공격자가 대량의 UDP/ICMP 패킷을 공격대상 서버로 전송하는 공격

8) HTTP Flooding Attack

- 공격자가 핸드쉐이크 후 HTTP GET 또는 POST 요청을 대량 반복 수행함으로서 이루어지는 공격

- 좀비 PC의 IP를 변조하지 않고, 적은 개수의 패킷으로 효과적인 공격 가능

9) SSDP DRDoS Attack

- UPnP 프로토콜을 이용하여 IoT 시스템 공격

- UPnP: 네트워크 장치들이 서로 연동될 수 있도록 하는 프로토콜

- SSDP: 네트워크 서비스나 정보 찾기 위하여 사용하는 네트워크 프로토콜
- Reflection 공격의 일종으로 1900번 포트를 사용하여 IoT 시스템을 공격하는 기법
- 대응방안: ①방화벽을 통해 1900번 포트 트래픽 차단 ②노출된 SSDP 장치가 있는지 확인

10) Hash DoS Attack

- 다수의 매개변수(&)를 이용하여 컴퓨팅 리소스를 고갈시키는 공격

11) SlowRead Attack

- Window Size를 줄여서 서버의 데이터를 적게 받는 공격

※ 혼동주의!! HTTP 응답 분할 공격은 DoS가 아님

  > HTTP Request에 있는 파라미터가 HTTP Response의 응답헤더로 다시 전달되는 경우 파라미터 내 개행문자 CR(Carriage Return, %0D) 혹은 LF(Line Feed %0A)가 존재하면 HTTP 여러개로 나누어질 수 있음

  > 응답 메시지에 악의적인 코드를 주입함으로써 XSS 및 캐시를 훼손하는 취약점

12) Bonk Attack

- 패킷을 fragment한 후 패킷 조작하여 공격 대상자에게 시스템 부하 증가시키는 공격

- 처음 패킷을 1번으로 보내고 다음 패킷도 순서번호를 모두 1로 조작하여 보내서 순서 맞지 않도록 만듬

- Inconsistent Fragmentation Attack의 일종

13) Boink Attack

- Bonk를 수정한 공격으로 불완전한 IP 단편 처리 로직을 악용

- 처음 패킷을 1번으로 보내고 다음을 100, 200으로 정상적으로 보내다가 2002, 100, 2002로 보내 중간에 순서번호를 비정상적으로 보내는 공격

14) Ping of Death

- ping을 이용하여 ICMP 패킷을 정상 크기보다 아주 크게 만들어 공격 대상 시스템에 부하를 주는 공격

- 크게 만들어진 패킷은 라우팅되는 과정에서 아주 작은 조각으로 쪼개지고 공격 대상은 작게 조각된 패킷 모두 처리해야 하므로 부하가 걸림

15) Teardrop Attack

- IP 단편화 과정을 이용하는 공격

- 의도적으로 형식이 잘못된 IP 패킷을 보내 공격 대상이 패킷 재조합 과정을 어렵게 하여 부하를 주는 공격

 

(3) DoS 대응방법

1) DNS 싱크홀(DNS Sinkhole)

- 악성 봇 조종하는 조종자 탐지하고 감염된 PC와 조종자 간 접속을 차단하는 시스템

- DDoS 차단 방법 중 하나

- 감염된 PC에서 특정 주소로 연결하고자 하는 경우 실제 해당 주소로 데이터 전송되지 않고 싱크홀 네트워크가 대신 응답하여 패킷이 외부로 전달되지 않도록 처리

2) DRDoS 대응방법

- 네트워크 단계: IP 주소가 위조된 패킷이 인터넷망에 들어오지 못하도록 ISP에서 직접 차단(Ingress 필터링)

- 반사서버 단계: ICMP 프로토콜 사용할 필요 없는 시스템에서는 해당 프로토콜 차단

- 공격대상 서버 단계: DNS 서버가 악용되지 않도록 점검

 

(4) 기타 공격

1) Promiscuous Mode

- 자신의 MAC 주소 외 인터페이스가 연결된 모든 네트워크 패킷 캡처하고 수신 가능(sniffing)

- 대응방법: 패킷 확인하는 인증

2) Sniffing

- 대응방법: 주요 데이터 전송구간에 VPN 사용(장비 간 암호화)

3) ARP Spoofing

- 피해자의 MAC 주소로 위조

- 피해자에게 전달되는 데이터를 중간에서 가로채는 공격

- Ex) 서로 다른 IP가 같은 MAC주소를 가지고 있는 경우

- 대응방법: ARP cache 테이블 정보를 정적(static)으로 설정하여 ARP 프로토콜을 통한 변조 발생하지 않도록 함

  > arp -s [게이트웨이 IP] [게이트웨이 MAC]

- 절차: 공격자가 피해자에게 자신의 MAC주소를 게이트웨이(서버 등)의 주소인 것처럼 속임 → 공격자가 게이트웨이에게 자신의 MAC주소를 피해자의 MAC주소인 것처럼 속임 → 공격자는 피해자 및 게이트웨이로부터 메시지를 받게 되고, 이를 정상적으로 보내주면 통신은 정상적으로 이루어지면서 공격자는 모든 메시지를 읽기 가능

4) ARP Redirect

- Gateway로 위조하는 공격

- 공격자가 피해자들에게 자신이 라우터라고 속여서 피해자들의 패킷이 자신에게 한번 거친 후 라우터로 가도록 하는 공격

- Ex) 공격 전 후 비교

  > (공격 전) 게이트웨이 IP: 192.168.0.1

  > (공격 전) 게이트웨이 MAC: AA:AA:AA:AA:AA:AA(실제 게이트웨이 MAC 주소)

  > (공격 후) 게이트웨이 IP: 192.168.0.1

  > (공격 후) 게이트웨이 MAC: BB:BB:BB:BB:BB:BB(공격자 MAC 주소)

5) Swich Jamming

- 스위치의 MAC 주소 테이블 내 버퍼를 overflow시켜서 스위치가 허브처럼 동작하게 만드는 공격

- 연결된 모든 노드에게 패킷 전송하게 되어 sniffing 가능

6) DNS Spoofing

- 공격대상이 잘못된 IP 주소로 웹 접속하도록 유도하는 공격

- 대응방법: 중요 사이트 IP 주소 확인하여 hosts 파일에 등록하기

7) TCP 세션 하이재킹

- 공격자가 TCP 세션을 가로채서 제어하는 공격

- 절차: 클라이언트와 서버는 Established 상태 → 스니핑을 통해 시퀸스 넘버 획득 → 공격자가 RST 패킷을 서버로 전송하여 연결 끊기(Closed) → 공격자는 새로운 시퀸스 넘버 생성하여 서버로 전송 → 서버는 새로운 시퀸스 넘버 받아들이고 응답 전송 → 공격자는 정상적인 연결처럼 서버와 시퀸스 넘버 교환하고 Established 상태가 됨

- 대응방법: ①비동기화 상태 탐지 ②ACK Storm 탐지 ③패킷의 유실과 재전송 증가 탐지 ④예상치 못한 접속 리셋 탐지