Denial of Service Detection on SIP-based VoIP

Page 1

SIP 기반 VoIP 단말에서 서비스 거부 공격 탐지 방안 *정윤호, *양광모, **박재우, *김기천 *건국대학교, **KT㈜ *jyh07@konkuk.ac.kr, *eagle@konkuk.ac.kr, **pjw@kt.com, *kckim@konkuk.ac.kr

Denial of Service Detection on SIP-based VoIP Client *Yun-Ho Jung, *Kwang-Mo Yang, **Jae-Woo Park, *Kee-Cheon Kim *Konkuk Univ., **KT Cooperation.

인터넷 IP 프로토콜을 사용하는 전화 서비스인 VoIP 는 IP 망 경유를 통한 저렴한 통신 비용 및 거리에 무관한 요금제 적용, IP 망을 통한 다양한 부가서비스 제공이라는 많은 장점을 가지고 있음에도 불구하고, 공유되는 인터넷 방을 이용하는 문제로 인해 발생되는 수 많은 보안 위협으로 시장이 위축되는 현상을 보이고 있다. 기존에 이러한 문제점을 해결하기 위한 많은 표준들이 수립되고 있는 실정이기는 하지만, 제안된 솔루션들은 이미 서비스를 제공하는 사업자 입장에서 채용하기 어려운 호환성의 문제를 가지고 있다. 이러한 사실에 기반하여 본 논문에서는 SIP 프로토콜을 이용하는 VoIP 시스템에서 가장 치명적인 문제점의 하나로 떠오르고 있는 SIP 기반의 서비스 거부공격을 탐지하여 이로 인한 VoIP 단말의 성능 감소 및 오작동을 사전에 방지 할 수 있는 방안을 제안하고 있다.

1. 서론 전화망에서의 보안 위협들은 VoIP[8]가 나타나기 이전까지는 큰 문제점으로 부각 되지 않았다. 그 이유는 PSTN(Public Switched Telephone Network)과 같은 공중 전화망은 네트워크 자체가 폐쇄적이기 때문에 공격자가 물리적으로 독립되어 있는 네트워크를 공격하기가 쉽지 않았기 때문이다. 즉, PSTN 과 같은 기존 전화망은 음성의 전달만을 목적으로 구축된 Closed 환경이기 때문에 보안에 대한 집중이 크게 요구되지는 않았다. 반면에 VoIP 시스템은 공유된 인터넷이라는 공간을 이용하여 음성을 전달하기 때문에 구축하는 과정에서부터 보안이 큰 이슈로 부각되었다[1]. 특히 최근 VoIP 시스템에서 사용도가 증가하고 있는 SIP(Session Initiation Protocol)[2]의 경우 텍스트 기반 프로토콜이기 때문에 바이너리 기반 프로토콜을 이용하는 다른 시스템 들에 비해 공격자가 이해하기 쉬운 구조로 구성되어 있다. VoIP 시스템에 대한 공격으로는 수 많은 방식이 존재하는데 그 중에서도 사업자에게 가장 치명적인 공격은 서비스 거부 공격(Denial Of Service)이다. 서비스 거부공격은 VoIP 단말기의 오작동을 유발하거나 아예 단말기 자체를 무력화 시켜 서비스에 대한 품질을 크게 감소시킨다. 특히 서비스 거부 공격 중에서도 SIP 기반의 플러딩 공격들은 단말기의 어플리케이션 레벨에서 수행되는 공격 메시지를 전송하기 때문에 방비가 어렵고, 치명적인 성능 감소를 유발한다. VoIP 단말에 시행할 수 있는 서비스 거부 공격 중에 플러딩 공격은 4 계층 공격인 UDP 플러딩과 5 계층 공격인 RTP[10] 플러딩, SIP[1] 플러딩이 존재한다. 이중에서도 SIP 플러딩 공격은 UDP 플러딩 및 RTP 플러딩 공격에 비해 상대적으로 더욱 치명적인 성능 감소를 유발한다는 사실을 본 논문에서 실험을 통해 확인하였다. 이러한 사실에 기반하여 본 논문에서는 SIP 기반의

VoIP 시스템에서 방비가 어렵고, 치명적인 보안 위협중의 하나인 Flooding 공격을 사전에 탐지 할 수 있는 방안을 연구하였다.

2. Background 2.1 SIP-Based IP Telephony SIP (Session Initiation Protocol)[1]는 멀티미디어 화상 회의나 Internet telephony 등의 호 설정이나 해제, 수정 등을 수행할 수 있는 응용 계층의 제어 프로토콜이다. IP 망을 통해 음성데이터를 전송하려는 VoIP 기술의 발달에 따라 이에 필요한 signaling 기술이 발전되었는데, SIP 는 이를 위한 IETF(internet engineering task force)에서 표준으로 제정되었다[3]. VoIP 에서 SIP 는 멀티미디어 통신연결의 설정과 해제를 위해 user location, user capability, user capability, call setup, call handling 의 다섯 가지 요소를 통해 단말의 위치를 파악하고 통신할 미디어와 미디어 파라미터들을 정하고 호 설정과 해제, 전송 등의 기능을 수행한다.

2.2 SIP 특징 SIP 는 IETF 의 Toolkit 개념에 충실히 부합되게 설계되었다. 그래서 인터넷에서 사용되는 다른 많은 프로토콜과 결합하여 다양한 서비스들을 만들 수 있는 유연성과 확장성을 제공한다. 일반적인 예로서 SAP(Session Advertise Protocol)[9]로 세션에 대한 정보를 관심있는 그룹에 제공하고 SIP 를 통해 대화를 원하는 상대가 세션에 참가하도록 INVITE 하며 SDP(Session Description Protocol)를 통해 열고자 하는 media type 에 대한 정보를 교환한다. 또한 SDP 에 기술된 RTP 등을 이용해서 실시간 Multimedia 서비스를 제공할 수 있게 한다. SIP 는 응용계층 protocol 로서 TCP 와 UDP 모두 사용할 수 있으며 request / response 구조이다. 또한


HTTP 와 SMTP 의 syntax 와 semantics 의 많은 부분을 그대로 사용하며 HTTP 와 유사한 transaction 을 한다. text-based 이기 때문에 H. 323[9]에 비해 구현이 용이한 장점도 있다. SIP 는 각 사용자들을 구분하기 위해 e-mail address 와 비슷한 SIP URL 을 사용하여 사용자는 IP 주소에 종속되지 않고 서비스를 제공받을 수 있다.

2.3 SIP Call Setup Flow and Weakness

RTP Flooding 공격의 경우 RTP 미디어 세션이 수립된 이후 구축된 RTP 세션으로 무의미한 RTP 패킷을 플러딩 하는 방식으로 공격하는 방식이다. RTP Flooding 공격에 VoIP 단말기가 노출될 경우 실제 공격하는 RTP 패킷이 통화 내용에 영향을 미치지는 않지만, 통화의 품질을 저하시키는 것이 가능하다.

3. 위협 모델 이번 장에서는 상용 VoIP 서비스가 향후 노출 될 수 있는 플러딩 위협 모델을 기술한다. 플러딩 위협 모델은 전송 계층 모델과 응용 계층 모델로 이루어진다.

3.1 Transport Layer Floods 전송 계층에서 플러딩 공격은 TCP, SCTP 혹은 UDP 레벨에서 이루어 진다. 이러한 전송계층에서의 플러딩 공격은 응용계층에서 패킷을 처리하는 것에 상관없이 VoIP 단말의 열린 포트로 DoS(Denial Of Service) 공격을 하여 단말기의 콜 셋업에 대한 지연시간을 증가시키거나, 통화 품질을 저하시키는 목적으로 이루어지게 된다. 대표적으로 brute-force UDP flooding 공격이 있다.

3.1.1 UDP Flooding [7]

그림 1 SIP Call Setup Flow

...

SIP 콜 셋업 초기화는 기본적으로 Invite 메시지를 통해 시작된다. 최초에 VoIP 단말기 1 은 INVITE request 를 Proxy server 로 보낸다. Proxy server 는 location server 에 user 의 위치를 요청하고, Location server 로부터 좀더 정확한 user 의 위치정보를 획득한다. Proxy server 는 location server 로부터 받은 새로운 user 의 주소로 SIP INVITE request 를 직접 보내게 되고, 착신 VoIP 단말기 2 는 Proxy server 로 response 를 보내게 되는데, 이때 Proxy server 는 response 를 원래 발신자 client 로 call 성공에 대한 response 를 돌려 보낸다. VoIP 단말기 1 은 response 를 제대로 수신했음을 ACK Request 를 보내서 알리게 되고, ACK 를 받은 VoIP 단말기 2 와 ACK 를 보낸 VoIP 단말기 1 사이에 RTP 세션이 수립되어 통화가 이루어지게 된다. 이러한 과정 속에서 단말기는 SIP Flooding 공격과 RTP 플러딩 공격에 노출된다. 모든 단말을 초기화 된 후 Invite 메시지에 대한 대기 상태에 빠지게 되는데, 여기에서 가장 문제가 되는 것은 현재의 국내 VoIP 시스템에서는 Invite 메시지에 대한 무결성을 입증 할 수 있는 메커니즘을 없다는 사실이다, 누구라도 쉽게 Inviteflood 라는 Tool 을 인터넷에서 쉽게 구할 수 있고, 이 툴을 이용하여 Invite 메시지를 구축, 단말로 전송 하는 것이 가능하다. 그리하여 Invite Flooding 공격에 노출된 단말기들은 오작동을 일으키고, 공격하는 패킷의 숫자가 증가 할 시 단말기 시스템이 다운되는 현상을 가진다.

UDP Flooding 공격은 VoIP 단말의 개방된 포트로 시스템 자원을 고갈시키기 위해 무의미한 더미 패킷을 전송하는 공격으로 공격절차는 다음과 같다. ① 공격자는 사전에 VoIP 단말의 공격 가능 포트를 확인한다. ② 확인된 VoIP 단말의 열려 있는 포트로 다량의 Dummy UDP 패킷을 전송한다(일반적으로 5060 포트).

그림 2 UDP Flooding 공격 구상도

3.2 Application Layer Floods RTP 및 SIP 는 실제로는 5 계층 프로토콜이지만 실제로는 VoIP 가 TCP/IP 상에서 동작되기 때문에 응용계층 공격으로 정의 하였다. 이러한 응용계층상에서의 공격은 크게 SIP 기반 공격 및 RTP 기반 공격으로 나뉘어진다[4]. SIP 기반의 플러딩 공격은 수많은 SIP 트래픽을 단말로 전송하여 단말기의 리소스를 고갈시키기 위해 사용하는데, 주로 SIP 의 Invite 메시지를 이용하여 공격이 이루어진다. 전송계층에서의 공격과는 차이는 전송계층 공격이 응용계층에서 처리되지 않는 반면, 응용계층 공격은 응용계층에서 패킷을 처리하기 때문에


성능 감소 정도가 크고, 응용계층에서 단말의 오작동을 유발할 수 있다는 것이다. VoIP 의 경우 PSTN 과는 다르게 IP 폰이 동시에 여러 개의 Call Request 를 생성 할 수 있도록 정의하고 있기 때문에 이러한 공격이 가능하게 된다. RTP 기반의 플러딩 공격은 RTP 세션이 구축된 단말기에게 RTP 패킷을 플러딩 하는 공격으로 사전에 수립될 RTP 세션에 대한 포트 정보를 공격자가 취득함으로써 공격이 가능하게 된다. RTP 플러딩 공격에 노출되면 단말의 통화 품질이 떨어지게 된다.

탐지 할 수 있는 기술을 제안한다. 기본적으로 Flooding 과 같은 유형의 시스템 자원을 고갈 시키는 것을 목적으로 하는 DoS 공격들은 사전에 탐지만 가능하다면, 해당 탐지된 공격지에 대해 필터링 기술을 적용시켜 방어가 가능하다[5][6]. 그렇기 때문에 본 논문에서는 Flooding 공격을 탐지 할 수 있는 방안에 집중한다. 특히 각종 VoIP 단말을 타깃으로 하는 플러딩 공격들 중 가장 심각한 성능 저하를 초래하는 SIP 기반의 플러딩 공격을 탐지 할 수 있는 방안을 제시한다.

4.1 임계값 기반의 플러딩 공격 탐지 방안

3.2.1 SIP Flooding [7] SIP 메시지를 대량으로 보내어 VoIP 사용자나 사업자가 정상적인 서비스를 이용 혹은 제공하지 못하게 하는 것으로, 일반 네트워크에서 DoS(Denial of Service)와 비슷한 개념이라고 볼 수 있다. 하지만 연결 요청, 즉 INVITE 메시지 Flooding 인 경우 서비스 거부 공격 패킷이 응용 계층까지 올라가 처리되기 때문에 자원 고갈의 정도가 심각하고, 단말기의 오작동을 유발하기 때문에 그 심각성이 높다. 특히 Invite Flooding 같은 경우 단말기의 응답이 요구되기 때문에 시스템 리소스 고갈이 더욱 심각하다. 공격 절차는 다음과 같다. ① 공격자는 짧은 시간내에 다수의 조작된 인커밍 콜(Incoming call) 패킷을 만들어 낸다. ② 공격대상인 VoIP 단말기는 CPU 자원을 많이 소비시키는 다수의 인커밍 콜(Incoming call)을 처리한다.

SIP 기반의 VoIP 단말에 대한 공격을 탐지하기 위해 본 논문에서는 임계값 기반의 플러딩 공격 탐지 방안을 제안한다. 임계값 기반의 플러딩 공격 탐지 방안은 각 단말에 수용 가능한 SIP 시그널 패킷에 대한 임계치를 설정하고, 해당 임계치를 넘어서는 SIP 트래픽이 단말로 전송 될 경우 이를 플러딩 공격이라고 판단하여, 이를 차단하는 것을 기본 아이디어로 한다.

... 그림 4 Flooding Detection Sequence Diagram 그림 3 SIP Flooding 공격 구상도 3.2.2 RTP Flooding [7] 미디어 스트림을 대량으로 수신자에게 전송시켜 정상적인 서비스 이용을 방해하는 공격으로 공격 절차는 다음과 같다. ① 공격자는 사전에 대상 가입자 단말(UAS)로 보내는 호를 발생시킨다. 이때, 공격자는 Sniffing 툴이나 패킷 Analyzer 를 통하여 RTP 신호를 모니터링 한다. ② 공격자는 이를 통하여 공격 대상자가 사용하는 UDP 포트번호를 확인한다. ③ 확인된 UDP 포트를 기반으로 향후 호에 쓰이게 될 UDP 포트번호를 Guessing 할 수 있다. ④ Guessing 된 포트번호를 기반으로 유효하지 않은 RTP 패킷을 다량으로 보냄으로써 통화 품질 감소를 유발한다.

4. Flooding 공격 탐지 방안

본 아이디어에서 요구되는 사항은 다음과 같다. -

-

단말 혹은 단말이 연결된 게이트웨이는 SIP Session Management Table 을 가진다. Session Management Table 는 Session ID 와 Count 횟수를 가지고 단말기로 전달되는 세션 연결 요청을 모니터링 한다. 임계치를 초과하는 Count 값을 가지는 세션은 차단하고, 차단 기간에 대한 Timeout 을 설정한다.

세션 ID 는 세션을 요청하는 근원지 IP 주소와 세션을 요청하는 Call ID 필드를 XOR 한 결과값을 MD5 해시함수를 통해 구한다. 여기서 XOR 를 하는 이유는 유일한 Session ID 를 구하기 위함이고, MD5 해시 함수를 거치는 이유는 모든 Session ID 값들이 128 비트의 일정한 길이를 가지게 되어 빠른 비교 연산을 수행하는 것이 가능해 지기 때문이다. 식으로 나타내면 다음과 같다.

본 장에서는 본 논문에서 제시하는 Flooding 공격을


Session ID = MD5(Source IP address ^ Call ID) 다음과 같이 생성된 Session 은 128 비트의 값을 가지게 된다. SIP 세션을 관리 할 수 있는 테이블이 하는 역할은 단말에 전송되는 SIP 시그널 패킷을 모니터링 하여, 내역을 저장하는 것이다. 이러한 SIP 세션 관리 테이블을 이용하여 플러딩 공격을 탐지하는 방식은 그림 4 의 순서도에 나타난다. 그림 4 의 순서도를 보면, VoIP 단말 혹은 단말이 속한 네트워크의 게이트웨이에 현재 연결되어 있는 SIP Session 에 대한 내역을 탐색할 수 있는 기능을 수행 할 수 있도록 SIP Session 저장 table 을 유지시킨다. 이 후, 해당 네트워크에 SIP 메시지가 탐지되면, 해당 메시지에 대한 Session 정보가 SIP Session Table 에 있는지 탐색한다. 만약 해당 메시지에 대한 Session 정보가 없을 경우, 이에 대한 Session 정보(ID, 세션 연결 수)를 Table 에 등록하게 된다. 이때, 해당 Session 에 대한 정보가 있다면, 현재 연결 요청에 대한 세션 요청 수가 연결 한계(Signal threshold)가 넘었는지 체크한다. 연결 한계 이상의 Session 요청이 왔다면, 이에 대한 세션 연결 요청 메시지를 차단 하는 방식으로 제안된 방식을 이용하여 플러딩 공격을 방비할 수 있게 된다. 물론 위에 세션을 처리할 수 있는 연결한계(Signal threshold)는 VoIP 단말의 성능에 따라 상이할 수 있다.

5. Evaluation 제시된 Flooding 공격 탐지 방안에 대한 성능 분석을 하기 위해 본 논문에서는 SIP 플러딩 공격의 주기를 초당 3000~30000 pkt/s 로 전송 하여 제안된 보안 기법의 우수성을 증명하였다. 그림 5 는 기존의 VoIP 소프트 폰에 매 초당 전송되는 패킷의 수를 각각 다르게 설정하여 Invite Flooding 공격을 하였을 때, 컴퓨터의 CPU 사용률을 측정한 결과이다.

그림 5 기존 소프트 폰에 대한 공격 그림 5 에서와 같이 비교적 CPU 성능이 우수한 PC 환경에 설치된 소프트 단말기로 DoS 공격을 실행 했음에도 불구하고, 초당 공격 패킷 전송률이 15000 을 상회하게 되면, CPU 자원이 고갈되어 소프트 단말기가 오작동을 일으키게 되는 것을 확인하였다. 본 논문에서는 제안된 기법을 증명하기 위해 커널 2.6 버전의 리눅스 OS 를 PC 에 설치하여, 허브 모드로 동작 시키고, 이를 VoIP 소프트 단말기에 연결 시켰다. 허브모드로 동작하는 리눅스에는 제안된 솔루션이 채용되어 트래픽을 모니터링 하고, 공격 패킷을 탐지하여, SIP Flooding 공격 패킷이 VoIP 폰으로 전송되지 않도록

중간에서 차단 해주는 역할을 수행 하였다. 그리고 Session ID 에 대한 가용 Count 에 대한 임계값을 20 으로 설정 하였다. 임계값을 20 으로 설정한 이유는 서버에서 단말기로 전송되는 invite 메시지의 경우 UDP 임을 감안 여러 차례 전송이 될 수 있고, 희박한 확률로 XOR 에서 Session ID 가 중복되어 Count 가 올라가는 것을 방지하기 위함이다. 또한 Count 값에 대한 초기화 Timeout 은 60 초로 설정하였다. 그림 6 은 제안된 기술을 사용 했을 때와 사용 하지 않았을 때를 비교한 그래프이다.

그림 6 제안된 기법을 사용 했을 때 CPU 사용량 비교 그림 6 과 같이 본 논문에서 제안된 기술은 SIP 플러딩 공격을 효과적으로 탐지하여 공격을 충분히 방어하는 한다는 사실을 확인하였다.

6. 결론 본 논문에서는 VoIP 의 보안 위협 중 가장 높은 성능 감소의 원인이며, 사업자 입장에서 가장 치명적인 공격인 SIP 플러딩 공격에 대한 해결책을 제시하였다. 물론 VoIP 에 대한 플러딩 공격으로는 UDP 플러딩과 RTP 플러딩이 존재하지만, UDP 플러딩과 RTP 플러딩이 치명적인 공격이 되기 위해서는 여러 개의 호스트가 동시에 공격을 해야 하기 때문에, 아직은 단말에 대한 큰 위협으로는 떠오르지 않는다. 그렇기 때문에 본 논문에서는 단 하나의 호스트로만 공격해도 단말에 치명적인 성능 감소를 초래하고, 다른 종류의 플러딩 공격에는 존재하지 않는 단말의 오작동을 유발하는 SIP 플러딩에 집중하여 이를 방어할 수 있는 기술을 제안하였다. 본 논문에서 제안한 방법은 구현이 간편하고, 다른 기술들과 같은 호환성 문제가 적다는 장점이 존재한다. 또한 시뮬레이션 결과에 따르면 본 논문에서 제안된 기술을 SIP 기반의 플러딩 공격들을 효과적으로 방어 하는 것이 가능하다.

참 고 문 헌 [1] J. Mirkovic, S. Dietrich, D. Dittrich, P. Reiher, Internet Denial of Service: Attack and Defense Mechanisms, Prentice Hall, Upper Saddle River, NJ, 2005. [2] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Spark, M. Handley, E. Schooler, Session Initiation Protocol, 2002, RFC 3261 [3] KISA (Korea Information Security Agency), VoIP 정보보호 가이드, 2005, 12


[4] S. Ehlert, G. Zhang, D. Geneiatakis, G. Kambourakis, T. Dagiuklas, J. Markl, D. Sisalem "Two Layer Denial of Service Prevention on SIP VoIP Infrastructures", Computer Communication Journal, Vol 31, No. 10, Jun 2008 [5] Eric Y. Chen, "Detecting DoS Attacks on SIP System", 1st IEEE Workshop on VoIP Management and Security, 2006, April 2006. [6] 임채훈, “VoIP 시스템에서의 보안기술”, 2004 [7] Voice over IP Security Alliance, http://www.voipsa.org/ [8] J. Rosenberg, H. Schulzrinne et al., “SIP: Session Initiation Protocol”, RFC 3261, IETF, June 2002. [9] K. Singh, H. Schulzrinne, "Interworking Between SIP/SDP and H.323". Proc. of the 1st IP-Telephony Workshop (IPTel'2000), April 2000.

[10] H. Schulzrinne et al., “RTP: a transport protocol for real-time applications”, RFC 1889, IETF, Jan. 1996.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.