라우터의 보안기능과 필수보안요소

.

아래글은 zdnet에서 보았던글로 기억합니다…
정확한 출처는 기억이 잘….
여기저기 돌고있는 그런 글이죠..
네트웍에 관심있는 사람이라면.. [펌]질을 하는 그런….


현대인들에게 인터넷이란 이제 빠질 수 없는 존재가 되었다. 업무를 함에 있어서나 개인생활을 하는데 있어서 인터넷이란 존재가 많은 비중을 차지한다는 말에 이의를 달 사람은 많지 않을 것이다.
이러한 인터넷을 사용할 수 있게 된 주요한 부분 중에 하나가 바로 ‘라우터’ 장비의 등장이라고 할 수 있다. 라우터가 빠진 인터넷이란 생각할 수도 없을 것이다.
보안을 고려한 관점에서 바라 본다면 라우터에 대한 보안이 그 어느 네트워크 보안보다 중요하다고 말할 수 있다. 그런 중요성을 가지고 있는 라우터를 운영함에 있어 고려해야 할 필수적인 보안 요소를 살펴 보도록 하겠다.

1. Router 자체 보안
(1) Default password 보안
원격에서 라우터를 관리할 때 사용하는 패스워드를 장비의 초기 설정 그대로 사용할 경우, 누구라도 라우터에 접근을 할 수 있을 것이다.
이러한 기본 패스워드는 인터넷상에서 검색을 통해서 손쉽게 접할 수 있다. 이러한 점을 감안해서 패스워드는 반드시 변경하신 후에 사용해야 한다.
그리고 Cisco IOS의 enable secret과 같은 MD5 해싱 기능을 사용해서 보다 강력한 암호화 알고리즘을 사용하는 것이 바람직하다. 또한 service password-encryption과 같은 기능을 사용함으로써 암호 자체도 판독이 불가능하게 할 수 있다.

(2) SNMP community string 보안
관리자는 네트워크의 트래픽 분석이나 장비의 상태를 파악하기 위해서 MRTG, RRD 또는 ESM과 같은 도구를 사용할 수 있다. 이러한 기능은 일반적으로 snmp protocol을 사용한다.
기본 설정으로 되어 있는 snmp community을 이용할 시에 해당 장비(라우터, 스위치, 방화벽 등)의 중요한 정보(routing table, MAC address 등)를 외부로 노출시킬 가능성이 많다. 그러므로, SNMP를 사용할 경우에는 반드시 community strings을 변경한 후에 사용해야 한다.
또한 쓰기 권한 설정 시에 라우터 정보의 변경까지 가능하므로 매우 주의를 해야한다.

(3) AAA서버(TACACS/RADIUS)를 통한 사용자기반의 인증
인증을 위해서 사용되는 AAA(Authentication Authorization Account)서버를 활용함으로써 사용자기반의 인증을 좀 더 강화할 수 있다.
로컬인증이 아닌 별도의 인증 서버를 사용함으로써 사용자 기반의 인증을 좀 더 체계적으로 할 수 있다. OS에서 사용하는 인증제도와 유사하게 인증 및 권한 설정까지 가능하다.
물론, 인증서버 자체에 관한 보안을 다시 고려해야 한다는 점은 관리자에게 또 다른 이슈가 될 수도 있다.

(4) SSH를 통한 보안
라우터 및 기타 네트워크 장비를 접속할 때 SSH를 사용함으로써 sniffing으로 인한 정보 누출을 방지할 수 있다.
사용의 단순함 때문에 많이 사용되었던 telnet은 접근 ID와 password 및 실행한 내용까지 모두 sniffing될 수 있다. SSH의 암호화 기법을 사용함으로써 공격자에게 sniffing이 되더라도 해독하는데 어려움을 줄 수 있다.
또한 banner 문구를 사용해서 접속자에게 경각심을 일깨우는 것도 좋은 방법이다.

(5) SNMP, TELNET, SSH, HTTP의 접근 제어
SNMP 및 telnet, SSH, HTTP의 접근 설정 시 해당 장비에 접근을 허용할 호스트 IP를 지정함으로써 다른 IP에서의 접근 시도를 사전에 방지할 수 있다. 이렇게 함으로써 계정 정보가 누출되더라도 부당한 접근을 사전에 막을 수 있다.

(6) Logging 설정을 통한 보안
로그는 라우터 뿐만 아니라 모든 네트워크 장비 및 서버에서 장애 및 침입을 분석할 수 있는 기본적인 방법이다. 로그서버를 유지함으로써 해당 라우터로의 접근시도 및 이벤트 발생 등에 대해서 분석할 때 유용하게 사용될 수 있다.
또한, NTP 서버를 사용함으로써 해당 장비와 로그서버 사이의 시간을 동기화 시키는 부분도 중요하다. 이것은 장비들의 상이한 시간설정이 정확한 분석을 어렵게 만들 수 있기 때문이다.

(7) 사용하지 않는 서비스 off
기본적으로 설정되어 있는 finger, bootp, proxy-ary, http-server와 같은 서비스는 굳이 사용할 필요가 없으면 서비스를 내리는 것이 바람직하다. 이러한 서비스들의 취약점을 이용한 공격이 존재할 수 있으므로 불필요한 서비스는 반드시 내리는 것이 바람직하다.

(8) OOB(Out Of Band Management)
Out of Band 경로를 구성함으로써 DoS공격으로 인해서 원격에서 라우터로의 접근이 안될 경우를 대비하는 것도 좋은 방법일 것이다.

2. Router 보안 기능
(1) IP spoofing 방지
URPF(Unicast Reverse Path Forwarding) 기능을 사용함으로써 변조된 source IP를 가지고 접근하는 것을 차단할 수 있다.
이 기능을 설정 시 Cisco의 경우 CEF(Cisco Express Forwarding)의 FIB table(Forwarding Information Base)을 이용해서 Table에 없는 source IP가 유입 시 차단된다. 또한 ACL(Access Control List)을 사용해서도 IP spoofing을 방지할 수 있다.

(2) IP Address 필터링
ACL을 사용함으로써 사설 대역이나 Broadcast Address을 필터링 할 수 있다. 또한 BGP를 구성시 Prefix List 구성을 통해서 외부로부터의 불필요한 IP가 유입되는 것을 억제할 수 있다.

(3) Secure Routing
암호화를 지원하는 라우팅 프로토콜(BGP, IS-IS, OSPF, RIPv2, and EIGRP)을 사용함으로써 인증된 라우터간에만 라이팅 테이블의 업데이트가 가능하게 할 수 있다. 이 기능을 사용함으로써 라우팅 테이블이 유출되거나 조작되는 것을 막을 수 있다.

(4) IP Source Routing
공격자는 source route 기능이 활성화되어 있을 경우에, 이를 이용해서 routing 경로를 조작할 수 있다. 이를 방지하기 위해서는 라우터에서 필요성이 없을 경우에 반드시 source route 기능을 비활성화 시켜야 한다.

(5) Ping 공격 방어
Ping Fragmentation 공격 및 외부로부터의 Ping을 필터링할 수 있다. 또한 ICMP broadcast를 막음으로써 smurf공격과 같은 DoS공격을 방어할 수 있다.

(6) TCP/UDP flooding 공격 방어
ACL 확장 기능과 QoS – WFQ(Weighted Fair Queueing), CAR(Committed Access Rate), GTS(Generalized Traffic Shaping)를 통한 TCP Syn, UDP Flooding을 방어할 수 있다.

(7) QoS(CAR, CBWFQ, LLQ, WRED)
QoS 기능을 통해서 Traffic 유형별로 대역폭을 강제로 할당할 수 있다. 이러한 QoS를 설정함으로써 인터넷 정보 이용자의 품질 보장할 수 있을 뿐 아니라, 특정 포트를 통한 대량의 트래픽이 유입될 시에 강제로 억제할 수도 있다.

(8) Worm 필터링(NBAR, ACL, PBR)
ACL이나 PBR(Policy Base Routing) 기능을 통해서 CodeRed나 Nimda같은 웜을 차단할 수 있다.

3. 트래픽 모니터링
(1) Router resource 점검(네트워크 공격 당하기 전)
Router 내부의 CPU를 주기적으로 점검함으로써, 장비의 현재 상태를 파악하는 것은 장애 대처에 앞서 매우 중요하다. 또한, Router와 외부구간 또는 내부구간의 사용률을 점검함으로써 DoS공격이나 spoofing공격을 예측할 수도 있다.

→사용 Tool : Cisco IOS command, NMS , MRTG ,RDD

(2) Netflow를 통한 flow 점검(네트워크 공격이 의심이 갈 때)
네트워크 공격이 의심이 갈 경우, Router 또는 Switch의 Netflow 기능을 이용해서 트래픽의 흐름을 모니터링 할 수 있다. 또는 Netflow 관련 3rd-party tool을 이용한 분석도 가능하다. Netflow을 이용해서 다음의 7가지의 형태로 트래픽을 분석할 수 있다.

– Source Address
– Destination Address
– Source Port
– Destination Port
– Layer 3 Protocol
– TOS Byte(DSCP)
– Input Interface

이러한 기능을 이용함으로써 내부에서 트래픽이 많이 발생되는 대역, 가장 많이 사용되는 프로토콜, 패킷의 주 목적지 등을 분석할 수 있다.

→사용 Tool : Cisco IOS command, Cflowd/arts++, RRD/Flowscan

(3) Tracking 및 filtering(네트워크 공격 당한 후)

DoS나 Flooding과 같은 공격이 있은 후에 공격자 또는 타켓의 IP나 Port를 필터링함으로써 네트워크의 단절 현상을 막을 수 있다. 또한 내부구간의 IP일 경우 L2tarce를 통해서 추적이 가능하다. 이러한 추적을 통해서 라우터 하단에 위치하고 있는 해당 Switch에서 필터링을 할 수도 있다.

→사용 Tool : Cisco IOS command

3. 트래픽 제어 : Qos function
QoS 기능을 사용함으로써 잠재적으로 발생할 수 있는 네트워크의 위험요소를 감소할 수 있다. MQC(Modular QoS CLI)를 통해서 Worm을 차단할 수 있고, CAR(Commit Access Rate)룰을 통한 DoS공격 차단, NBAR을 통한 virus 필터링 등이 가능하다.

4. 맺음말
지금까지 살펴 본 바와 같이 기본적인 라우터의 설정만 가지고도 보안에 관련된 많은 기능을 할 수 있다. 특정 기능을 가진 3rd tools을 이용해서 효과적으로 대응할 수도 있겠지만, 무엇보다도 중요한 것은 관리자의 지속적인 모니터링일 것이다.
인터넷의 관문이라고 할 수 있는 라우터를 관리하는데 있어서 보안을 좀 더 고려한다면 네트워크의 전반적인 위험 요소를 감소시킬 수 있을 것이다.

[#M_ 참고(라우터 보안과 관련된 Cisco IOS Command List)
명령어 설명
more.. ” less=”참고(라우터 보안과 관련된 Cisco IOS Command List)
명령어 설명
less.. “> Access-list number action criteria log 해당 정책에 로그 설정
Access-list number action criteria log-input
Banner login 라우터 접근시 사용자에게 보여주는 메시지 설정
Enable secret 라우터 접근시 사용되는 암호 및 권한 설정
Distribute-list list in 잘못된 경로를 처리할 수 없게 라우팅 정보를 필터링하는 설정
Exec-timeout 원격에서의 접근시 사용되는 timeout을 설정
Ip access-class 원격에서의 접근 또는 로컬에서의 콘설 접속을 제한할 수 있는 설정
Ip access-group list in ACL 적용
Ip http access-class list HTTP 기능 설정시 특정 대역만 접근이 가능하도록 설정
Ip http authentication method HTTP 기능을 사용할 경우 HTTP connection request를 인증하는 설정
Ip route 0.0.0.0 0.0.0.0 null 0 255 해당되는 목적지가 없을 경우에 해당 패킷을 신속하게 차단시키는 설정
Ip verify unicast rpf IP spoofing 방지
Logging buffered buffer-size 로그에 사용되는 라우터 메모리 설정
No cdp enable 악의적으로 Cisco Router를 이용한 라우터 정보 누출 방지
No cdp running
No ip directed-broadcast Smurf 공격 방지
No ip mroute-cache Multicasting 트래픽 방지
No ip proxy-arp Proxy-arp 기능 방지
No ip redirects IP redirect 기능 방지
No ip source-route Spoofing된 패킷에서 사용되는 source routing 방지
No service finger Finger service off(사용자 정보의 누출 방지)
No service tcp-small-servers 사용하지 않는 tcp/udp service off(DoS나 취약점을 이용한 공격 방지)
No service udp-small-servers Ntp disable
NTP service의 취약점을 이용한 공격 방지 Scheduler-interval
Scheduler-interval 중요한 서비스를 다운시키는 Flooding 공격 방지
Scheduler allocate
Service password-encryption 설정된 암호를 판독할 수 없게 하는 설정
Service tcp-keepalives-in 사용되지 않는 터미널 삭제, 원격에서의 동일한 터미널 접속 방지
Snmp-server community something-inobvious ro list 해당되는 대역(list)에 대한 SNMP 설정
Snmp-server community something-inobvious ro list
Snmp-server party… authentication md5 secret … SNMP ver.2의 MD5 설정
Transport input 원격에서의 접근 또는 로컬에서의 콘설 접속을 제어할 수 있는 설정_M#]

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.