Ⅰ. 서 론
최근 7.7 DDoS와 3.4 DDoS 대란과 같이 대규모 봇 넷을 이용한 대규모 DDoS의 위협이 점차 증가 하고 있다. 따라서 대규모 DDoS 공격에 빠르게 대 처할 수 있는 고속의 DDoS 방어 도구에 대한 연구 가 절실히 필요한 상황이며, 이에 따라 최근 한국 전자통신연구원에서는 고속의 DDoS 방어 도구로 40G bps급 Aladdin 시스템을 개발하고 있다.
본 연구에서는 Aladdin 시스템 중에서 핵심요소 인 loadbalancer와 Anti-DDos엔진 사이의 동작을 패 트리네트로 모델링하여 입력 트래픽에 대한 시스템 의 성능을 분석하고자 한다.
본 논문의 구성은 다음과 같다. 2장에서는 Aladdin 시스템의 성능 평가 연구와 시스템의 구조 효율성 분석에 대한 연구를 위하여 Aladdin 시스템을 모델 링 할 수 있는 패트리네트에 대해 살펴보고, 3장에서 는 Aladdin 시스템을 패트리네트를 이용하여 모델링 하여 시뮬레이션하고, 4장에서는 시뮬레이션 결과 및 성능 분석을 한 후, 5장에서 결론을 내린다.
Ⅱ. 관련 연구
1. 패트리 네트[9]
패트리 네트[9] 이론은 1962년 Carl. Adam. Petri가 통신 시스템을 모델링하고 해석하기 위해서 네트이 론 방법을 개발한 것으로, 동시성, 비동기적인 요소 들 간의 상호 교류에 대한 특징을 갖는 시스템에 대해서 아주 유용하다.
패트리 네트는 현재 많은 이산적 사건 시스템 분 야에 매우 적극적으로 사용되고 있으며, 패트리 네 트는 시스템에서의 비동기적이고 불확실한 이산적 인 사건을 모델링하고, 모니터하고 분석하는데 매 우 유용하다. 따라서, 병렬 시스템이나 통신 프로토 콜, 유연 생산 시스템과 같이 병행으로 일어나는 시 스템을 모델링하고 분석하는데 사용될 수 있다.
패트리 네트는 많은 시스템의 모델링에 사용되 는 그래픽 형이면서 수학적인 모델링 도구로 수학 적인 면으로는, 상태방정식이나, 산술적 방정식, 또 는 기타 다른 수학적인 형태를 이용하여 시스템의 상태를 검증하거나 분석 할 수가 있다. 그래픽 형으 로 패트리 네트는 플로우 차트나, 블록 다이어 그램 이나, 네트워크 형태로 표현되어 사용되고 있다. 무 엇보다도, 이러한 모델링에서 토큰의 흐름을 통하 여 생동적이고 병행적인 시스템의 흐름을 시뮬레이 션 할 수 있는 장점을 갖는다.
패트리 네트의 장점 중의 하나는 모델을 통하여 시스템의 성질을 분석할 수 있다는 것이다. 이러한 성질 중에는 패트리 네트가 가지는 독특한 성질, 즉 도달성(Reachability), 안전성(Boundedness)과 생존성 (Liveness)등을 이용하여 시스템의 분석 및 검증이 가능하다. 이러한 패트리 네트에 트랜지션과 플레 이스, 점화시간이라는 개념을 부가하여서 처리 시 간을 분석 하는 형태를 타임 패트리 네트(Time Petri nets)이라고 부르며, 이는 스케쥴링 분석을 시작으 로 각종 병행 처리나, 동시 처리성이 있는 모델링 분석 및 검증에 적극적으로 활용 되고 있다.
패트리 네트는 다양한 시스템에 적용할 수 있는 수학적이며 그래프 개념을 이용하여 그 흐름 활동 을 표현하고 분석 할 수 있는 하나의 그림형태로 표현한 모델링 도구이다. 패트리 네트는 병행적, 비 동기적, 분산적, 병렬적 또는 확률적 성질을 지닌 정보처리 시스템의 성능 분석, 통신 프로토콜의 설 계 검증 및 FMS등 다양한 분야에 이용되고 있다.
그림 형태로 표현한 모델링 도구 측면에서 볼 때 패트리 네트는 플로 차트나 블록 다이아그램과 유 사하다. 패트리 네트는 시스템의 상태(state) 혹은 조건(condition)을 나타내는 플레이스(place), 행동 (event)을 나타내는 트랜지션(transition), 흐름을 나타 내는 아크(arc) 및 플레이스 조건의 진위 또는 시스 템의 가용 자원을 나타내는 토큰(token)으로 구성되 어 있으며, 토큰은 시스템의 동적이며 병행적 동작 특성을 나타내기 위해 사용된다. 패트리 네트의 분 석은 패트리 네트의 특성인 생존성(liveness), 유한성 (boundedness), 보존성(persistence) 및 발달가능성 (reachability)과 행렬방정식(matrix equation)등으로 시스템을 분석 할 수 있다.
Ⅲ. Aladdin 시스템 모델링
1. 패트리 네트를 사용한 Aladdin 시스템 모델링
Aladdin 시스템[1,2]은 한국 전자통신연구소에서 실 시간 트래픽 분석 및 처리를 통해 DDoS 공격을 탐지 및 대응하는 시스템으로 개발되었다. 개발된 Aladdin 시스템의 내부 구조는 다음 <그림 1>과 같다.
<그림 1>과 같은 Aladdin 시스템의 구조 효율성 분석을 위하여 Aladdin 시스템의 구조에 대한 성능 평가 연구가 반드시 수반되어야 한다. 본 연구에서 는 Aladdin 시스템 중에서 핵심요소인 loadbalancer 와 Anti-DDos엔진 사이의 동작을 패트리 네트로 모 델링하여 입력 트래픽에 대한 시스템의 성능을 분 석하고자 한다.
패트리 네트를 사용하여 Aladdin 시스템의 성능을 분석하기 위하여 먼저 Aladdin 시스템의 loadbalancer 와 Anti-DDos 엔진의 동작을 시간 패트리 네트의 플레이스와 트랜지션으로 모델링한다.
본 논문에서는 패트리 네트로 모델링하기 위하여 위 <그림 1>의 Aladdin 시스템의 내부 구조를 다음 <그림 2>와 같이 블록 다이어그램으로 표현하였다.
입력 트래픽은 64byte ~1,508byte 사이의 크기로 랜덤하게 수신되고, 입력되는 트래픽은 4byte 패킷 으로 16개 ~377개의 패킷단위로 수신된다.
Load balancer 는 입력 트래픽을 1클럭당 1개의 패킷(4byte)을 버퍼로 전송하고 버퍼에 저장된 패킷 은 4클럭 당 1개의 패킷을 Anti-DDoS로 전송한다.
2. 패트리 네트를 사용한 Aladdin 시스템 시뮬레이션
본 논문에서는 한국 전자통신 연구소에서 개발 하고 DDoS 대응 및 탐지 시스템인 40G bps급 Aladdin 시스템의 모델링 및 성능 분석을 위하여 Aladdin 시스템의 핵심 구조인 loadbalancer 와 Anti-DDos 엔진의 동작을 패트리 네트로 모델링하 고 시뮬레이션을 수행한다. Aladdin 시스템의 내부 요소들을 패트리 네트의 플레이스와 트랜지션으로 모델링하고 입력 트래픽을 토큰으로 모델링하여 시 뮬레이션을 하였다.
위 <그림 1>의 Aladdin 시스템의 내부구조를 위 <그림 2>와 같이 블록 다이어그램으로 표현 할 수 있고, 이 블록 다이어그램을 이용하여 다음 <그림 3>과 같은 패트리 네트를 모델링 할 수 있다.
다음 <그림 3>의 각 부분에 대한 설명은 다음과 같다.
-
➀ 입력 트래픽을 생성하고 버퍼로 분배하는 generator 서브 네트 : Aladdin 시스템의 loadbalancer에 해당 한다.
-
➁ 입력된 패킷이 저장되는 버퍼 서브 네트 : Aladdin 시스템 내부의 4개 Anti-DDoS 엔진에 연결된 각 버퍼에 해당 한다.
-
➂ 버퍼에 저장된 패킷의 개수를 확인하는 플레 이스
-
➃ Anti-DDoS 시스템을 의미하는 플레이스
위 <그림 3>의 패트리 네트는 다음과 같이 동작 한다.
-
1) 위 <그림 3>에서 ①의 generator 서브 네트에서 랜덤한 크기(64byte ~1508byte : 16packet ~377packet) 의 패킷을 생성한다.
-
2) 생성된 트래픽은 1클럭당 1패킷(4Byte)의 단위 로 플레이스로 전송된다.
-
3) 각 플레이스로 전송된 입력 트래픽은 ②의 버 퍼 서브네트에 저장된다.
-
4) ③의 플레이스에서 ②의 버퍼 서브네트에 저 장된 패킷의 개수를 확인한다.
-
5) 버퍼에 저장된 패킷은 4클럭 당 1 패킷의 단 위로 ④의 플레이스에 해당하는 Anti-DDoS 시 스템으로 전송된다.
본 논문에서는 다양한 환경에서 동작해야할 Aladdin 시스템 성능을 분석하기 위하여 가상 보안 존을 적용하여 load balancer가 입력 트래픽을 버퍼 로 전송할 때 전송될 버퍼를 선정하는 방법에 따라 다음의 세 가지 방법을 패트리 네트로 모델링하여 시험하였다.
-
1) 트래픽이 수신되면 버퍼를 랜덤하게 선택하여 전송.
-
2) 트래픽이 수신되면 각 버퍼에 저장되어 있는 데이터의 양을 비교하여 가장 작은 데이터가 저장되어 있는 버퍼로 전송.
-
3) 트래픽이 수신되면 그 시점까지 각 버퍼에 전 송된 패킷의 개수가 가장 작은 버퍼로 전송.
위 세 가지 방법을 적용한 패트리 네트 모델을 비교하면, 입력 트래픽을 어떤 버퍼로 전송할 것인 지 버퍼를 선택하는 부분만이 다르고 패킷 생성, 버 퍼 등은 모두 동일하다.
따라서, 본 연구에서는 서브 네트를 모델링하여 패트리 네트를 구성하였고, 입력 트래픽의 생성, 버 퍼로의 분배를 하는 generator 서브 네트와 수신된 패킷을 저장하는 버퍼 서브 네트를 모델링하였다.
위 세 가지 시험 방법에 모두 적용이 되는 메인 패트리 네트 모델은 위 <그림 3>과 같다.
다음 <그림 4>는 세가지 시험 방법에 따른 패트 리 네트 모델에 모두 사용되는 버퍼 서브 네트이다.
버퍼는 FIFO (First In First Out) 구조로 이루어져 있으며, 현재 버퍼에 저장된 패킷의 개수를 count 한다. Aladdin 시스템에서 버퍼는 16k byte 크기를 가지므로, 버퍼에 저장된 패킷(4byte)의 갯수가 4,000개가 넘어가면 버퍼 오버플로우가 발생한 것 으로 간주한다.
서브 네트 중 generator 서브 네트에 따라 위 세 가지 시험 방법을 적용할 수 있다. 시험 방법에 따 른 세가지 generator 서브 네트는 다음과 같다.
1) 버퍼를 랜덤하게 선택
Aladdin 시스템의 loadbalancer 가 입력된 트래픽 을 전송할 버퍼를 랜덤하게 선택하여 전송하는 generator 서브 네트는 <그림 5>와 같다.
<그림 5>의 generator 서브 네트 동작 과정은 다 음과 같다.
-
1) 입력 트래픽이 전송될 버퍼를 1부터 4중 랜덤하 게 생성하여 선택하고, 버퍼로 전송될 입력 트 래픽을 16 ~377 패킷의 크기로 랜덤하게 생성
-
2) 1)에서 생성된 입력 트래픽 데이터를 1클럭 당 1패킷의 단위로 전송
-
3) 1)에서 선택된 버퍼로 수신된 패킷을 전송
-
4) 패킷을 전송하기 전 패킷 전송 속도 제어.
-
5) 패킷을 버퍼로 전송.
본 연구에서는 패트리 네트 모델을 다양한 환경 에서 시험하기 위하여 입력되는 패킷의 속도를 조 절한다. 속도는 패킷이 실시간으로 연속적으로 입 력되는 경우를 100%로 설정하고 10 ~100%까지 10% 단위로 시험하였다.
2) 버퍼에 저장된 패킷의 개수가 가장 작은 버퍼를 선택
Aladdin 시스템의 loadbalancer 가 버퍼에 저장된 패킷의 개수를 비교하여 가장 작은 개수의 패킷이 저장된 버퍼를 선택하여 입력 트래픽을 전송하는 generator 서브 네트는 <그림 6>과 같다.
<그림 6>의 저장된 패킷 개수가 가장 작은 버퍼를 선택하는generator 서브 네트와 <그림 5>의 버퍼를 랜덤하게 선택하는 generator 서브 네트의 차이는 <그림 6>의 ①부분이다.
①에서 네개의 플레이스를 이용하여 각 버퍼로 부터 저장된 패킷의 수를 가져오고 비교하여 저장 된 패킷의 수가 가장 작은 버퍼를 선택한 다음, 입 력되는 트래픽을 생성하여 버퍼로 전송한다.
입력 트래픽이 전송되어야 하는 버퍼를 선택하 는 과정을 제외한 나머지 과정은 위의 버퍼를 랜덤 하게 선택하는 패트리 네트와 동일하다.
3) 버퍼로 전송된 패킷의 개수가 가장 작은 버퍼를 선택
Aladdin 시스템의 loadbalancer 가 각 버퍼로 전송한 패킷의 개수를 비교하여 가장 작은 개수의 패킷이 전송된 버퍼를 선택하여 입력 트래픽을 전송하는 generator 서브 네트는 <그림 7>과 같다.
<그림 7>의 버퍼로 전송된 패킷 개수가 가장 작 은 버퍼를 선택하는generator 서브 네트와 <그림 5> 의 버퍼를 랜덤하게 선택하는 generator 서브 네트 의 차이는 <그림 7>의 ①부분이다. ①에서 네개의 플레이스를 이용하여 각 버퍼로 전송된 패킷의 수 를 가져오고 비교하여 전송된 패킷의 수가 가장 작 은 버퍼를 선택한 다음, 입력되는 트래픽을 생성하 여 버퍼로 전송한다.
입력 트래픽이 전송되어야 하는 버퍼를 선택하 는 과정을 제외한 나머지 과정은 위의 버퍼를 랜덤 하게 선택하는 패트리 네트와 동일하다.
Ⅳ. 시뮬레이션 결과 및 성능 분석
본 논문에서는 한국 전자통신 연구소에서 개발한 DDoS 대응 및 탐지 시스템인 40G bps급 Aladdin 시 스템의 모델링 및 성능 분석을 위하여 Aladdin 시스 템의 핵심 구조인 loadbalancer 와 Anti-DDos 엔진의 동작을 패트리 네트로 모델링하고 시뮬레이션을 수 행하였다. Aladdin 시스템의 내부 요소들을 패트리 네트의 플레이스와 트랜지션으로 모델링하고 입력 트래픽을 토큰으로 모델링하여 시뮬레이션을 수행 하여 전체 시스템을 모델링하였으며, 성능을 분석 하였다. 그리고 이를 바탕으로 40G bps급 Aladdin 시스템의 성능을 개선하기 위하여 다양한 환경에서 시스템의 성능을 분석하였다.
Load balancer의 성능을 분석하기 위하여 입력 트 래픽이 실시간으로 발생하고 전송되는 경우를 100% 의 속도로 가정하고 이 속도를 점차 낮추어 10% ~100% 까지(10% 단위로 증가)의 속도로 시험 을 수행하였다.
패트리 네트에서 입력 트래픽을 발생시킬 때 정 확한 속도로 발생 시킬 수가 없으므로, 입력 트래픽 생성에 아무런 조건이 없는 경우를 100%의 속도로 하였고, 입력 트래픽 생성에 조건을 부가하여 10개 생성하여 1개 사용 시 10%의 속도(10% 단위로 증 가)로 하였다.
다음 <그림 8>은 버퍼의 랜덤 선택 패트리 네트의 속도별 시험 결과이다.
위 <그림 8>의 세로축은 버퍼에 저장된 패킷의 개수이고, 가로축은 입력 트래픽이 전송되는 속도 이고, 시험은 20,000,000 msec 동안 수행하였다.
다음 <그림 8>을 보면 속도가 증가 할수록 버퍼에 쌓이는 패킷의 개수가 증가함을 알 수 있다.
위 <표 1>에서와 같이 속도 100%(입력 트래픽이 실시간으로 발생하는 상태)에서는 버퍼 오버플로우를 확인할 수 있었으나, 10 ~90%의 속도에서는 버퍼 오버플로우를 쉽게 확인할 수가 없었다.
다음 <표 2>는 시험 결과를 이용하여 버퍼 오버 플로우에 도달할 step을 예상하였다.
다음 <그림 9>는 버퍼에 저장된 패킷의 수를 비 교하여 가장 작은 수의 패킷이 저장된 버퍼로 패킷 을 분배하는 모델의 시험 결과이다.
다음 <표 3>은 위 <그림 9>의 시험 결과를 이용 하여 버퍼 오버플로우에 도달할 시간을 예상하였 다. 위 표 2와 마찬가지로 속도가 증가할수록 버퍼 에 저장되는 패킷의 수가 증가함을 알 수 있다.
다음 <그림 10>은 버퍼로 전송된 패킷의 수를 비 교하여 가장 작은 수의 패킷이 전송된 버퍼로 패킷 을 분배하는 모델의 시험 결과이다.
다음 <표 4>는 시험 결과를 이용하여 버퍼 오버 플로우에 도달할 step을 예상하였다. 위 <표 2, 3>과 마찬가지로 속도가 증가할수록 버퍼에 저장되는 패 킷의 수가 증가함을 알 수 있다.
위 세 가지 패트리 네트 모델의 시험 결과로, 패 킷이 전송될 버퍼를 랜덤으로 선택하여 패킷을 분 배하는 시험 결과가 제일 좋지 않음을 알 수 있었 고, 세 가지 패트리 네트 모델 중 가장 좋은 성능을 보인 모델은 버퍼에 저장되어 있는 패킷의 수를 비 교하여 가장 작은 수가 저장되어있는 버퍼로 패킷 을 우선 분배하는 모델이다.
버퍼로 전송된 패킷의 수를 비교하여 가장 작은 수가 전송된 버퍼로 패킷을 우선 분배하는 모델은 4개의 버퍼로 균등하게 패킷이 분배되지 못하는 단 점이 있다.
Ⅴ. 결 론
한국 전자통신연구소에서는 최근 빈번하게 발생 하고 있는 각종 네트워크 피해 사고에 대응하기 위 하여 실시간 트래픽 분석 및 처리를 통해 DDoS 공 격을 탐지 및 대응하는 Aladdin을 개발하였고 현재 40G bps급 초고속 시스템을 개발하고 있는 중이다.
개발 중인 Aladdin은 성능 평가 연구를 통하여 시스템의 구조 효율성 분석에 대한 연구가 수반되 어야 한다. 이를 위하여 본 연구에서는 loadbalancer 와 Anti-DDos엔진 사이의 동작을 패트리 네트로 모 델링하여 입력 트래픽에 대한 시스템의 성능을 연 구하고 이를 기반으로 Aladdin 시스템의 구조에 대 한 효율성 분석을 수행하였다.
4장에서 입력된 트래픽이 전송될 버퍼를 랜덤하 게 선택하는 모델, 버퍼에 저장된 패킷의 수를 비교 하여 가장 작은 수가 저장된 버퍼를 선택하는 모델 과 버퍼로 전송된 패킷의 수를 비교하여 가장 작은 수가 전송된 버퍼를 선택하는 모델을 패트리 네트 로 모델링하여 성능을 분석하였다. 또한 이 세 가지 모델 중 버퍼에 저장된 패킷의 수를 비교하여 가장 작은 수가 저장된 버퍼를 선택하는 모델이 가장 좋 은 성능을 보임을 알 수 있었다.
이러한 연구 결과를 바탕으로 virtual security zone 을 구성하여 load balancing에 적용하면 보다 높은 성능 향상이 있을 것으로 예상되며, 이에 따라 지속 적인 연구가 필요할 것으로 사료된다.