DongDD's IT

[정보보안 기사] 네트워크 보안 - 보안 본문

자격증/정보보안기사

[정보보안 기사] 네트워크 보안 - 보안

DongDD 2018. 4. 29. 14:01

[정보보안 기사] 네트워크 보안 - 보안



VPN


- 공중망을 이용해 사설망이 요구하는 서비스를 제공할 수 있도록 구축한 망

- 낮은 비용으로 전용선과 비슷한 서비스 제공

- 터널링 프로토콜 : 전송로에 외부로부터의 침입을 막기 위해 파이프를 구성(보안성 향상)

- 페이로드 : 터널링되는 데이터(터널링 프로토콜에 의해 캡슐화)


VPN Protocol


1. PPTP(Point to Point Tunnel Protocol) - MS사 설계

- Datalink Layer(Layer 2) Protocol

- PPP 패킷을 IP Packet으로 캡슐화해서 IP 네트워크에서 전송하기 위한 터널링 기법

- 하나의 터널에 하나의 연결만 가능(일대일 통신)


2. L2F(Layer 2 Forwarding) - Cisco사 설계

- Datalink Layer(Layer 2) Protocol

- ISP 장비에서 접근 서버의 터널 서버로 L2F 터널 생성, 이 터널은 Direct-dial PPP/RAS 세션 생성

- 하나의 터널에 여러 개의 연결 가능(다자간 통신)

- PPP 사용, 인증으로 RADIUS, TACACS+ 사용


3. L2TP(Layer 2 Tunneling Protocol) - MS사, Cisco사

- Datalink Layer(Layer 2) Protocol

- L2F을 기반으로 하고 PPTP와의 호환성을 고려해 만든 터널링 프로토콜

- IP, IPX 등 프로토콜에 대해 지원, WAN 기술도 지원


4. IPSec(IP Security Protocol) - IETF

- Network Layer(Layer 3) Protocol

- IP망에서 안전한 전송을 위해 표준화된 3계층 터널링 프로토콜

- 보안에 중점(IP 데이터그램의 인증, 무결성, 기밀성 등 제공)

- IP 계층에서 직접 서비스를 제공하기 때문에 상위 계층 변경 불필요

- 암호화된 패킷은 IP패킷과 동일한 형태로 되어있기 때문에 장비 변경 불필요



IPSec


- IETF에서 IP 보안을 위해 개방형 구조로 설계한 표준


보안 서비스


1. 기밀성

- 대칭 암호화를 통한 기밀성 제공

- ESP 프로토콜만 암호화 지원


2. 비연결형 무결성

- MAC을 통해 패킷별로 무결성 지원


3. 인증

- MAC을 통해 인증 제공


4. 재전송 공격 방지

- 송신측에서 sequence number를 전송하고 수신측에서 보안연관(SA)에 sequnce number를 보관해 이를 검증


5. 접근 제어

- 보안 정책(SP)를 통해 IP 패킷에 대한 시스템 접근 제어

- 제어 방식 : 허용(Bypass), 폐기(Discard), 보호(Protect) 등


6. 제한적 트래픽 흐름 기밀성

- ESP/터널모드의 경우 터널/보안 게이트웨이 구간의 트래픽 흐름은 노출되지만, 원본 IP헤더는 캡슐화/암호화되어있기 때문에 터널/보안 게이트웨이와 종단 노드 구간의 트래픽 흐름 기밀성은 보장


IPSec 동작 모드


1. 전송 모드(Transport Mode)

- IP Packet의 페이로드 부분을 보호하는 모드

- Payload만 IPSec으로 캡슐화하고 IP 헤더는 그대로 유지

- IP header는 보호하지 않으므로 트래픽 흐름이 분석될 수 있음

- 보호 구간 : 종단 노드 구간의 IP 패킷 보호


2. 터널 모드(Tunnel Mode)

- IP 패킷 전체를 보호하는 모드

- IP 패킷 전체를 IPSec으로 캡슐화하여 IP 헤더를 식별할 수 없기 때문에 패킷 전송이 불가능해서 주소 정보를 담은 New IP Header를 추가함

- 원본 IP header를 보호하기 때문에 트래픽 기밀성 보장(새로운 IP header는 노출되므로 제한적 트래픽 흐름 기밀성이라고 함)

- 보호 구간 : 터널/보안 게이트웨이 구간, 터널/보안 게이트웨이와 종단노드 구간


IPSec 세부 프로토콜


1. AH(Authentication Header) Protocol

- MAC을 이용해 무결성, 송신 인증을 제공하는 프로토콜(기밀성 X)

- MAC 알고리즘과 인증 키를 통해 인증 데이터를 계산해 전송, 수신 측에서 검증(인증 데이터 계산 : 변경 가능한 필드를 제외한 IP 패킷 전체)

- 변경 가능한 필드 : TTL, Checksum, NAT 환경에서의 Source IP

1) AH 헤더 필드

- SPI : 보안연관(SA) 식별자

- Sequence Number : 재전송 공격 방지

- Authentication data : 변경 가능한 필드 제외 IP 패킷 전체에 대한 MAC 값(ICV)

2) 동작 모드


- 전송 모드 : IP 헤더 전송 중 변경 가능한 필드를 제외한 IP 패킷 전체 인증

- 터널 모드 : New IP 헤더 전송 중 변경 가능한 필드를 제외한 New IP 패킷 전체 인증


2. ESP(Encapsultion Security Protocol) Protocol)

- MAC과 암호화를 이용하여 무결성, 송신 인증, 기밀성 제공

- 인증 or 인증+암호화 적용 가능

- ESP는 IP header를 인증하지 않음

1) ESP 헤더 필드

- SPI : 보안연관(SA) 식별자

- Sequence Number : 재전송 공격 방지

2) ESP trailer 필드

- 블록 암호를 위한 패딩 정보, Payload의 프로토콜 타입 정보

3) ESP Auth 필드

- 인증 데이터 정보

4) 동작 모드

- 전송 모드 : IP Payload와 ESP trailer를 암호화하고 암호화된 데이터와 ESP 헤더 인증

- 터널 모드 : 원본 IP Packet 전체와 ESP trailer를 암호화하고 암호화된 데이터와 ESP 헤더 인증


보안 연관(SA : Security Association), 보안 정책(SP : Security Policy)


1. 보안 연관(SA)

- 논리적인 연결 상태를 유지하는 동안 적용할 보안 설정 정보

- 보안 연관 일방향성을 갖기 때문에 송수신이 모두 필요하면 두개의 보안 연관이 필요

- SAD : 보안 연관들을 저장해놓은 데이터베이스

1) 주요 항목

- SPI : 보안 연관 식별자

- Sequence Number

- Anti-Replay Window : 재전송 공격을 막기 위한 window 값

- AH/ESP 정보 : 사용한 알고리즘, 키 등의 정보

- Lifetime : 세션 만료 기간

- Mode : Transport/Tunnel mode

- Path MTU : 경로의 MTU 값


2. 보안 정책(SP)

- 패킷 송수신시 적용할 보안의 종류 정의

- Bypass, Discard, Protect 등

- SPD : 보안 정책들을 저장해놓은 데이터베이스


IPSec 패킷 송수신 절차


1. 송신

1) SPD 검색

- 없으면 패킷 삭제

- 있으면 정책에 따라 처리

2) Protect -> SAD 검색

- 있으면 IPSec 처리

- 없으면 IKE 과정을 통해 SA 생성


2. 수신

1) Protocol 필드 검사

- IP 패킷 -> SPD 검색

- IPSec 패킷 -> SAD 검색

2) SPD(IP 패킷)

- Bypass : 상위 계층에 전달

- Discard/Protect : 패킷 삭제

3) SAD(IPSec 패킷)

- 있으면 IPSec 처리

- 없으면 패킷 삭제


IKE(Internet Key Exchange)


- 보안 관련 설정들을 생성, 협상, 관리하는 프로토콜

- UDP 500 포트 사용


1. IKE 1단계

- IKE 2단계에서 사용할 메시지들을 어떻게 보호할지 협상하는 단계(IKE용 마스터키 생성)

- 생성되는 보안 연관 : IKE SA(양방향성을 가짐)

1) 2가지 모드

- Main mode : 3쌍의 메시지를 교환하는 방식, 단계가 많지만 세션 ID를 암호화하기 때문에 보안성 향상

- Aggressive mode : 3개의 메시지를 교환하는 방식, 협상이 빠르지만 세션 ID를 암호화하지 않기 때문에 보안성 낮음


2. IKE 2단계

- 데이터를 어떻게 보호할지 협상하는 단계

- 생성되는 보안 연관 : IPSec SA

- 1단계 생성키로 메시지 보호, Quick mode로 구현

1) Quick mode

- 3번의 메시지 교환으로 IPSec 통신을 위한 SA, 키 협상

- SA는 일방향성(단방향성)을 가짐



SSL/TLS


- SSL : Netscape 사의 웹 브라우저를 위한 보안 프로토콜

- IETF에서 SSL 3.0을 기반으로 표준화시킨 TLS 발표

- 서버-클라이언트 환경에서 TCP 기반의 어플리케이션에 대한 종단 간 보안 서비스 제공

- TCP와 Application 계층 사이에서 동작

- SSL을 이용할 경우 well-known port 할당

-> https : TCP 443

-> smpts : TCP 465

-> ftps : TCP 990

-> telnets : TCP 992


보안 서비스


1. 기밀성

- 대칭 암호화를 통한 기밀성 제공

2. 무결성

- MAC을 통한 무결성 제공

3. 인증

- 공개키 인증서를 통한 상호 인증


구조


1. 2계층

1) 상위 계층

- Handshake : 종단 간 보안 파라미터를 협상

- Change Cipher Spec : 종단 간 협상된 보안 파라미터를 적용/변경함을 알림

- Alert : 통신 과정 중 발생하는 오류를 통보

- Application Data : Application 계층의 데이터 전달

2) 하위 계층

- Record : 적용/변경된 보안 파라미터를 이용해 암호화/복호화, 무결성, 압축/압축해제 등의 기능 제공

3) Stateful Protocol(상태 유지 프로토콜)

- 세션, 연결 기반 상태 유지 프로토콜

-> 완전 협상을 통해 세션 생성, 단축 협상을 통해 세션을 공유하는 다수의 연결 생성

- 세션 상태정보

-> 완전협상으로 생성, 세션이 유지되는 동안 다수의 연결에 사용되는 보안 파라미터 정보 관리

-> 필드 : Session ID, peer certificate(상대방 인증서), cipher spec(암호 명세), compression method(압축 방식), master secret(키 블록을 생성하기 위한 48바이트 비밀 값), is resumable(세션 재사용 여부)

- SSL/TLS 연결 상태 정보

-> 실제 통신 단위, 단축 협상을 통해 생성, 세션 상태 공유하며 통신

-> 필드 : server/client random(단축 협상을 통해 생성한 32바이트 난수 값), server/client write key(암호화에 사용되는 비밀키), server/client wirte MAC secret(MAC 생성 시 사용하는 인증키), server/client write IV(블록 암호 모드에 사용하는 초기 벡터), sequence number

- 키 생성 과정

-> 완전 협상으로 교환한 Premaster secret, Client random, Server random을 조합해 해시한 결과로 Master secret 생성

-> 다수의 연결이 이용하도록 Master secret을 세션 상태에 저장

-> 단축 협상으로 교환한 Client random, Server random과 저장되어있는 Master secret을 조합해 해시한 결과로 키 블록 생성

-> 키 블록으로 서버/클라이언트 각각 암호용 비밀키, MAC 인증키, IV 계산


완전 협상 과정(Full Handshake)


1. Client Hello 메시지(Client -> Server)

- 클라이언트가 지원가능한 SSL/TLS 버전, 암호 도구 목록, 압축 방식 등을 서버에 전달

1) Client random

- 클라이언트가 생성하는 32바이트 난수 값

- master secret, 키 블록 생성 시 salt 역할

2) Session ID

- 서버 세션을 식별하기 위한 ID

- 클라이언트가 처음으로 세션 생성 시 : 빈 값

- 클라이언트가 있던 세션 재사용 시 : 세션 ID

3) 암호 도구 목록(Cipher Suite)

- 클라이언트에서 지원 가능한 암호 도구 정보를 보냄

- Cipher spec : 키 교환 및 인증 알고리즘, 암호 명세로 구성

- 암호 명세(Cipher spec) : 대칭 암호 알고리즘, 암호키 길이, 블록 암호 모드, HMAC 해시 알고리즘 등으로 구성


2. Server Hello 메시지(Server -> Client)

- 서버가 사용할 SSL/TLS 버전, 암호 도구, 압축 방식 등을 클라이언트에 전달

1) Server random

- 서버가 생성하는 32바이트 난수 값

- master secret, 키 블록 생성 시 salt 역할

2) Session ID
- 새롭게 생성하거나 존재하는 Session ID

3. Server Certificate 메시지(Server -> Client)

- 필요 시 서버 인증서 목록을 클라이언트에 전달


4. Server Key Exchange 메시지(Server -> Client)

- 필요 시 키 교환에 필요한 정보 전달


5. Certificate Request 메시지(Server -> Client)

- 필요 시 client 인증을 위한 인증서를 요청(서버 측에서 인증 가능한 인증 기관 목록 제공)


6. Server Hello Done 메시지(Server -> Client)

- Server Hello 과정 종료를 알림


7. Client Certificate 메시지(Client -> Server)

- Request를 받았을 때 클라이언트 인증서 목록을 전달


8. Client Key Exchange 메시지(Client -> Server)

- 키 교환에 필요한 premaster secret을 생성해 서버에 전달

- RSA 방식 : Premaster key를 서버 인증서의 공개키로 암호화해 전달

- Diffie-Hellman 방식 : 클라이언트의 Diffie-Hellman 공개키를 생성해 서버에 전달


9. Certificate Verify 메시지(Client -> Server)

- Request를 받았을 때 클라이언트가 보낸 인증서에 대한 개인키를 클라이언트가 가지고 있음을 증명


10. Change Cipher Spec(Client -> Server)

- 협상한 Cipher Spec을 이후부터 적용함을 알림


11. Finished 메시지(Client -> Server)

- 협상 완료를 서버에 알림

- 패킷에서는 Encryted Hanshake Message로 표현


12. Change Cipher Spec 메시지(Server -> Client)

- 협상한 Cipher Spec을 이후부터 적용함을 알림


13. Finished 메시지(Server -> Client)

- 협상 완료를 클라이언트에 알림

- 패킷에서는 Encryted Hanshake Message로 표현


단축 협상 과정(Abbreviated Handshake)


1. Client Hello 메시지(Client -> Server)

- Session ID, Client random 전달


2. Server Hello 메시지(Server -> Client)

- Server random 전달


Record Protocol 동작


1. 단편화(Fragmentation)

- 어플리케이션 데이터를 일정 크기로 단편화


2. 압축 후 MAC 추가

- 협상을 통해 적용된 압축 알고리즘으로 단편화된 데이터를 압축 후 MAC 추가


3. 암호화

- 협상을 통해 적용된 암호 알고리즘으로 암호화


4. Record 헤더 추가

- 암호화된 데이터에 Record Header 추가


완전 순방향 비밀성(PFS : Perfect Forward Secrecy)


1.  서버 개인키 노출 시 문제점

- RSA 방식으로 키 교환을 수행할 경우, 중간자 공격을 통해 트래픽을 가로채 서버 개인키로 복호화할 수 있음

-> 이 문제를 해결하기 위해 PFS 등장


2. 완전 순방향 비밀성(PFS)

- 키 교환에 사용되는 서버 개인키가 노출되어도 이전 트래픽의 기밀성은 그대로 유지되어 내용을 알 수 없게하는 암호학적 성질


3. SSL/TLS 통신의 PFS 지원

- 키 교환시마다 새로운 Diffie-Hellman 개인키를 생성해 임시 Diffie-Hellman(Ephemeral Diffie-Helmlman) 키 교환을 통해 premaster secret을 생성하고 서버의 개인키는 서버 Diffie-Hellman 파라미터를 인증하는 목적으로만 사용

-> 개인키가 노출되어도 통신 내용의 기밀성 유지


4. 적용의 어려움

- Diffie-Hellman은 RSA 방식보다 처리 속도가 느림

- 특정 웹 브라우저에서 지원하지 않는 경우가 있음



라우터 자체 보안



- 라우터 접속 시, 처음에는 사용자 모드로 접속

- enable 명령어를 통해 모드를 바꿀 수 있음


Mode


1. User EXEC mode

- 한정된 명령어만 사용할 수 있음

- 라우터의 간단한 상태 조회

- 명령 프롬프트는 Router>으로 표시


2. Privileged EXEC mode

- 라우터의 모든 명령어 수행 가능

- 명령 프롬프트는 Router#으로 표시


3. Global Configuration mode

- Privileged EXEC 모드에서 설정 변경 시 사용하는 모드

- 명령 프롬프트는 Router(config)#으로 표시


4. Other Configuration mode

- 인터페이스, 라우팅 정보 등 세부적인 설정

- 명령 프롬프트는 Router(config-mode)을 표시


명령어


1. enable password X

- X라는 password를 평문으로 저장(type 0)

- service password-encryption 명령어로 암호화 수행

-> 역함수가 존재하는 암호화(평문 암호로 복호화 가능, type 7)


2. enable secret X

- X를 일방향 해시함수로 암호화해 저장(type5, MD5)



라우터 접근 제어(ACL)



- access-list를 이용해 패킷에 대한 접근 제어 설정


접근 제어 방법


1. Standard access-list

- source IP만으로 패킷 허용/차단

- access-list number : 1~99

- access-list acl번호 [permit | deny] [host source IP | wildcard | any]

-> 특정 ip 지정 시 host 명시

-> wildcard : ip 대역 지정(서브넷 마스크 반전)

-> any : 모든 주소


2. Extended access-list

- source IP, destination IP, port, protocol 등을 이용해 패킷 허용/차단

- access-list number : 100~199

- acess-list acl번호 [permit | deny] protocol host source IP source_wildcard host destination IP destination_wildcard

-> 특정 ip 지정 시 host 명시

-> range a b : port 범위를 a~b로 지정

-> eq a : 단일 포트 a 지정


3. Filtering 유형

1) Ingress Filtering

- 내부 네트워크로 유입되는 패킷 필터링

2) Egress Filtering

- 외부 네트워크로 나가는 패킷 필터링

3) Blackhole Filtering(Null routing)

- 특정 ip, ip 대역에 비정상 시도 감지 시 가상의 null 인터페이스로 보내 패킷 통신이 되지 않도록 함

4) Unicast RPF(Reverse-Path Forwarding) Filtering

- 일일이 지정하지 않고 비정상 트래픽을 효율적으로 필터링

- Source IP를 확인해 들어온 인터페이스로 다시 나가는지 확인하는 원리



라우터를 통한 네트워크 보안


콘솔, AUX, VTY 포트 패스워드 보안


1. 콘솔포트

- 케이블로 직접 터미널에 연결해 라우터  조작이 가능하게 해줌(장애 처리를 도와줌)

- 콘솔 포트에 패스워드 비설정 시 인증없이 라우터 설정 조회가 가능해짐

line console 0

login

password AA

end


2. VTY/AUX

- VTY : 텔넷 접속 시 사용되는 패스워드 설정

line aux 0(line vty 0 4)

login

password AA

end


Telnet 접근 제한


- VTY 포트는 외부로터의 연결 시도를 모두 수용

-> 많은 양의 공격 시도 가능

-> access-list를 이용해 접근 통제

-> 암호화 통신을 하는 ssh 사용 권장


SNMP 설정


- SNMP : TCP/IP 네트워크를 모니터링하고 관리하는 프로토콜

- 기본적으로 읽기 권한이 설정되어있음

-> 이를 이용한 공격이 가능

- access-list를 통해 접근 통제

- SNMP가 불필요할 경우 사용하지 않고 사용해야한다면 특정 사용자만 사용 가능하게 해야함

snmp-server community id ro 11


불필요 서비스 제거


1. ICMP

1) ICMP MTU Discovery

- ICMP 패킷을 차단하더라도 MTU discovery를 제공하는 패킷은 허용해야 네트워크가 제대로 동작할 수 있음

- ACL을 이용해 MTU discovery(type 3, code 4) 패킷만 허용

access-list n permit icmp any any 3 4

access-list n deny icmp any any

interface FastEthernet 0/0

ip access-group n

end


2) ICMP Redirect

- ICMP Redirect 메시지를 이용해 라우팅 테이블을 임의로 조작하는 것이 가능하기때문에 차단해야함

interface FastEthernet 0/0

no ip redirects

end


3) ICMP Directed Broadcast

- Smurf 공격을 막기 위해 차단해야함

interface FastEthernet 0/0

no ip directed-broadcast

end


4) ICMP Mask Reply

- 네트워크의 서브넷 마스크를 전송하게 하는 기능으로 악용기 가능하므로 차단해야함

interface FastEthernet 0/0

no ip mask-reply

end


5) ICMP Unreachable

- 포트 스캔에 사용되는 메시지로 공격을 어렵게 하기위해 차단해야함

interface FastEthernet 0/0

no ip unreachables

end


6) ICMP Timestamp and Information Requests

- 공격자가 네트워크 현황을 알 수 있게 하는 취약점이므로 차단해야함

access-list n icmp any any timestamp-request

access-list n icmp any nay information-request

interface FastEthernet 0/0

ip access-group n in 

end


2. Source Route

- 설정되어있는 라우팅 경로를 통하지 않고 송신자가 임의로 경로를 설정할 수 있으므로 차단해야함

no ip source-route

end


3. Small Service

- 특정 버전에서는 TCP, UDP Small Service가 자동으로 설정되어있음

- 중요한 역할은 하지 않기 때문에 차단

no service tcp-small-services

no service udp-small-services

end


4. Finger Service

- 원격 사용자가 라우터에 접속한 사용자의 목록을 알 수 있게 해줌

- 사용자 이름 등 중요 정보를 제공하므로 악용될 수 있기 때문에 차단해야함

no service finger

end


5. HTTP Server Service

- 라우터에 http 서비스가 설정되면 웹에서 라우터의 설정, 조회가 가능하고 악용될 수 있으므로 차단해야함

no ip http server

end


6. CDP Service

- LAN 구간에 직접 연결된 장비들이 서로의 정보를 얻기 위해 사용되는 프로토콜

- 장비의 종류, 설정 등 전체 네트워크 구성을 파악할 수 있으므로 차단해야함

no cdp run

interface FastEthernet

no cdp enable

end


7. proxy-arp Service

- 디폴트 라우터, 게이트웨이가 없는 호트스들에게 ARP 서비스 제공

- 호스트가 목적지 IP에 대한 MAC 주소 요청 시, 자신의 MAC 주소를 목적지 MAC 주소인것처럼 전송

- 패킷의 주소를 위조해 라우터에 요청해 라우터와 네트워크 정보를 획득할 수 있으므로 차단해야함

interface FastEthernet 0/0

no ip proxy-arp

end


입/출력 IP 보안 설정


- 내부로 유입되는 패킷의 source IP가 내부 네트워크 호스트의 IP라면 위조된 것으로 판단하여 차단

- 내부로 유입되는 IP 주소 중, 예약된 IP 주소가 있다면 차단

-> ex) 127.0.0.1, 255.255.255.255


주소 위/변조 방지


1. Unicast RPF

- 유입되는 source IP를 라우팅 정보를 이용해 점검하고 reverse-path가 존재하지 않는다면 위조된 패킷으로 판단하고 차단

interface FastEthernet 0/0

ip verify unicast reverse-path

end


Blackhole 보안 설정


- 특정 목적지로의 트래픽이 과도하게 발생할 경우, 해당 목적지 IP를 망내에서 통신할 수 없도록 차단

interface null 0

no ip unreachables

exit

ip route dest_ip wildcard null 0

end



Comments