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 탐지 ③패킷의 유실과 재전송 증가 탐지 ④예상치 못한 접속 리셋 탐지