본문 바로가기
  • AI (Artificial Intelligence)
Security/Monitoring

[Monitoring] Netflow 와 분석도구의 활용

by 로샤스 2014. 11. 28.

네트워크 와 시스템은 정보화 사회의 중추적인 역할을 담당하고 있으며 그 중요성은 날로 커지고 있다.
이에 따라 안전하고 효율적인 네트워크 환경을 위한 관리의 개념이 중요하게 대두되고 있다. 

이 연재를 통해 네트워크 모니터링 툴로 현재 가장 많이 쓰고 있는 MRTG의 한계를 벗어나 특정한
내부의 네트워크 트래픽(Layer4) 모니터링을 사용할 수 있는 내용을 살펴보도록 하겠습니다.



Cisco NetFlow기반의 라우터가 인터넷 패킷 흐름을 Flow 정보로 가공하여 다양한 트래픽을 분석하게 됩니다. Flow 정보는 Network-layer 와 Transport-layer 계층의 7 가지의 필드(Source IP address , Destination IP address, Source port number, Destination port number, Layer 3 protocol type, Type of service (ToS), Input logical interface ) 의 값을 가집니다.


[그림1] Flow Cache 정보


Cisco NetFlow 에서는 라우터의 입/출력 인터페이스 번호를 덧붙혀 Flow 규격을 정의 했으며 일정시간 내에 패킷이 도착하지 않으면 Flow 종료를 선언하고, Flow 데이터를 외부 측정서버로 전송하도록 되어있습니다.

Flow 규격은 현재 v1 부터 시작하여 v9 까지 존재하는데 그 중 라우터에서 BGP AS가
지원되기 시작한 v5가 현재 가장 많이 사용되고 있습니다. Version 9 기반은 IPv6, MPLS, Multicast 등의 다양한 Flow 포맷들을 실어 보낼 수 있게 하고 있습니다.

또한 기존의 UDP 기반의 전송을 TCP 또는 SCTP 전송계층을 이용하도록 하여 신뢰성을
강화 시켰습니다.

NetFlow 는 1996년 Cisco Systems. 개발이 되어 사용되고 있지만 현재는 다른 벤더 Enterasys, Juniper, extreme등 에서도 도입하여 사용되고 있습니다.



▶ 우선 Cisco NetFlow 가 설치 되어 있는 Router/Switch 를 찾아야 합니다. 어떤 장비가
   NetFlow를 지원하는 지는 다음 URL를 참조 할 수 있습니다.
http://www.cisco.com/warp/public/732/Tech/nmp/docs/netflowoverview.pdf 

네트워크 장비에서 Capture 및 Export 를 수행할 때 모든 패킷에 대해 실시간으로 모니터링을 추가하는 것이므로 CPU 및 메모리 부하를 어느 정도 줄 수 밖에 없으므로 정확한 장비의 성능에 미치는 영향에 대한 정보를 확인해야 하며, 해당 정보는 다음 URL를 참조 할 수 있습니다.
http://www.cisco.com/en/US/tech/tk812/technologies_white_paper0900aecd802a0eb9.shtml

▶ Configuring NetFlow to Capture


Capture 방법은 측정하고자 하는 인터페이스에 Config-Mode 에서 sh ip cache flow 를 입력하면 됩니다.

[ 참고 ]
Protocol : 06 = 0*16^1 + 6*16^0 = 6 (TCP)
목적지포트 : 0089 = 16^3*0 + 16^2*0 + 16^1*8 + 16^0 = 137

▶ Configuring NetFlow to Export Network Traffic Data
NetfFlow 는 Data flow 정보를 메모리에 임시 저장을 하게 됩니다. 만약 기본사이즈로 정해져 있는 메모리 저장한계를 넘어서게 될 경우 처음 저장되어 있던 flow 정보는 삭제하게 되며 만약 15sec flow 가 Inactive 하게 되거나 30분 이상 변화 없이 멈쳐있는 경우 에도 flow 가 삭제됩니다.

이러한 불편한 점을 보안하기 위해 NetFlow Data 를 외부로 Exporting 할 수가 있습니다.



라우터/스위치의 NetFlow가 Enable 되어 있다면, 자동으로 분석서버로 보낼때는 일반적으로 적정 회선용량의 1.5% 대역폭을 점유하게 됩니다.



다음은 라우터/스위치에서 지원하는 NetFlow Data flow 정보를 가공 및 분석하여 웹을 통해 상시적으로 모니터링을 할 수 있는 공개 분석 도구 및 상용도구에 대해서 알아보겠습니다.


[그림2] NetFlow exporting 및 분석도구

NetFlow의 데이터를 분석하여 웹이나 응용프로그램을 모니터링을 할 수 있는 프로그램으로는 아래와 같이 사용이 가능한 대표적인 프로그램들이 있습니다.

1) Caida( Cooperative Association for Internet Data Analysis) (오픈소스)
2) Arbor Networks 사의 PeakFlow (상용)
3) Hewlett Packard (상용)
4) 그 외의 프로그램이나 벤더주소는 아래의 URL 에서 확인 하실 수가 있습니다.
http://www.cisco.com/warp/public/732/Tech/nmp/netflow/partners/

위의 분석도구를 이용한다면 현재의 전체 트래픽 중 TCP , ICMP , UDP가 어느정도 인지, 즉 프로토콜 유형별를 알 수 있다. 또한 트래픽 중에 정상적인 트래픽과 유해트래픽을 판별하여 침해사고 대응 및 비정상적인 다량의 패킷 유입이 된다면 사전에 발견하여 신속한 대처가 이루어 질 수 있을 것입니다.

[그림3] Flowscan 과 RRD를 통한 프로토콜유형별 입/출력 패턴


[그림3] 을 보시면 백본트래픽이 양방향 최대 150Mbbs 정도로 전송되고 있다. In/Out 트래픽들의 프로토콜 유형 형태를 보면 잘 알려진 P2P과 같은 데이터는 특별히 많이 나타나지 않았습니다.

또한 잘 알려진 포트를 사용하는 TELNET, SSH 등 응용 프로토콜의 트래픽 양보다 잘 알려지지 않은 포트를 사용하는 트래픽의 점유율이 훨씬 크다는 것을 알 수 있습니다. 이는 다양한 사용자 응용프로그램의 확산과 함께 동적인 포트번호를 사용하는 것들이 많기 때문입니다.

[그림3] 의 왼쪽하단 표를 보시면 웹과 같은 응용프로그램들은 플로우 지속시간이 짧은 작은 플로우들이 많습니다. 하지만 Flow 수는 작은 반면에 Octets 과 Packets 큰 응용(9553,8403)들도 많이 나타나고 있다. 이러한 응용들은 대개 파일 공유 프로그램 패킷으로 추정됩니다.

[그림4] DoS Traffic Flood Detected by FlowScan

[그림4]를 보시면 In/Out 트래픽이 40Byte 이하로 급격하게 증가한 현상을 볼 수 있을것입니다. Dos Attack 은 32Byte 내외의 작은패킷으로 구성되는게 일반적이므로 서비스거부공격으로 판단되어 집니다.

Inbound 요청이 약 40Byte TCP ACK packets 이며 이 요청을 받은 서버 및 시스템들은 응답으로 약 30Byte TCP RST packets 보내는 수치를 보여주고 있습니다.



[그림5] Top 10 origin ASNs by bytes out


[그림5]는 Routing Protocol(BGP)를 사용하는 네트워크 장비에서 서로 연결되어 있는AS 구간끼리 가장 많은 트래픽 유발하는 AS Number 별로 분류한 것을 보여주고 있습니다.

패킷(웜바이러스)으로 인하여 서버나 네트워크에 불필요한 트래픽이 발생하여 전체 네트워크를 자원의 효율성을 심각하게 저하되는 상황을 방지 할 수 있습니다.  

이와 같이 라우터/스위치에서 제공하는 NetFlow Flow Date 를 이용하여 분석도구를 활용하면 네트워크 장비의 영향을 최소화 하면서 네트워크 관리를 효율적으로 할 수 있는 유용한 관리 시스템을 구축을 할 수 있을 것입니다.

아울러 갑작스런 과다 트래픽이나 비정상적인 트래픽이 발생할 경우에도 굳이 전문적인 지식이 없어도 이 그래프를 통해서 트래픽의 특성 및 원인 규명하는 것이 그리 어렵지 않을 것입니다.

상용 툴은 공개형 툴보다는 쿼리기능 및 다양한 리포트 기능을 가지고 있으며 사용자가 쉽게 사용할 수 있는 장점을 가지고 있습니다. 하지만 이 모든 툴은 침입탐지시스템(IDS)의 기능을 가지고 있는 것이 아니라 단지 네트워크 모니터링 툴에 불가하다는 것을 인지해야 합니다.












출처 : http://www.coconut.co.kr/

         http://blog.pages.kr/198











댓글