1 |
1
플로우 엔트리의 집합으로 구성되는 플로우 테이블을 구비하고, 유입되는 패킷을 처리하는 복수의 SDN(Software Defined Network) 스위치;상기 SDN 스위치로부터 모든 패킷을 수신하고, 상기 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하는 SDN 컨트롤러;상기 SDN 컨트롤러로부터 플로우 테이블을 수신하고, 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하는 상태 모듈;상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 2D 카운팅 블룸 필터; 및상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 각 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 타임아웃을 동적으로 조절하는 타임아웃 계산 모듈을 포함하고,상기 2D 카운팅 블룸 필터는 송신자 MAC(Media Access Control)과 수신자 MAC을 행과 열의 2차원으로 구성하여 플로우를 나타내고, 패킷 개수를 카운트하여 저장하기 위해 각각의 하나의 셀이 1bit 이상의 메모리로 형성하고,상기 2D 카운팅 블룸 필터는,네트워크 플로우에 대한 패킷 개수 기록을 저장하기 위해, k개의 해시 함수와 길이 m을 갖는 배열로 형성되며, 삽입 연산과 체크 연산을 포함하고,상기 삽입 연산은,상기 상태 모듈에서의 플로우에 포함된 송신자 MAC 주소와 수신자 MAC 주소를 해시함수의 입력으로 사용하여 상기 해시함수의 결과 값을 산출하고, 상기 해시함수의 결과 값을 이용하여 상기 2D 카운팅 블룸 필터의 셀을 특정하는 연산이고,상기 체크 연산은,상기 삽입 연산과 동일하게 주어진 플로우에 해당하는 상기 2D 카운팅 블룸 필터의 셀을 찾아 셀에 저장된 값을 읽는 연산인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
2 |
2
제1항에 있어서,상기 타임아웃은 절대 타임아웃(Hard Timeout) 또는 유휴 타임아웃(Idle Timeout)인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
3 |
3
삭제
|
4 |
4
제2항에 있어서,상기 타임아웃 계산 모듈은 상기 절대 타임아웃을 플로우 엔트리가 삭제되는 평균적인 타임아웃의 시간을 나타내는 평균 타임아웃 + ceil(log2(패킷 개수)) + 1로 설정하고, 상기 유휴 타임아웃을 ceil(log2(패킷 개수 / 평균 타임아웃)로 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
5 |
5
제4항에 있어서,상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하고, 상기 패킷 히스토리가 존재하지 않는 경우, 모든 플로우에 대하여 상기 절대 타임아웃을 평균 타임아웃으로 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
6 |
6
제4항에 있어서,상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하고, 상기 패킷 히스토리가 존재하는 경우, 해당 플로우를 평균 타임아웃 + 플로우 룰에 매칭된 패킷 개수(히스토리)에 비례한 값으로 절대 타임아웃을 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
7 |
7
제6항에 있어서,상기 타임아웃 계산 모듈은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 003e#= 1인 경우, 해당 플로우를 (플로우 룰에 매칭된 패킷 개수(히스토리)/평균 타임아웃)에 비례한 값으로 유휴 타임아웃을 설정하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 시스템
|
8 |
8
복수의 SDN(Software Defined Network) 스위치와 이를 제어하는 SDN 컨트롤러를 구비한 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법에 있어서,상기 SDN 컨트롤러는 상기 SDN 스위치로부터 모든 패킷을 수신하고, 플로우 엔트리를 생성하여 SDN 스위치에 전송하며, 상기 SDN 스위치로부터 패킷의 각 플로우의 플로우 테이블을 수신하여 상태 모듈로 전송하는 단계;상기 상태 모듈은 상기 수신한 플로우 테이블에서 플로우 엔트리의 스탯을 분석하여 그 분석 정보를 생성하여 2D 카운팅 블룸 필터로 전송하는 단계;상기 2D 카운팅 블룸 필터는 상기 상태 모듈로부터 수신한 분석 정보를 이용하여 각 플로우의 패킷 개수를 카운팅하는 단계; 및상기 카운팅한 패킷 개수인 히스토리를 기반으로 상기 각 플로우가 일정 시간동안 플로우 테이블에 잔류하는 시간인 절대 타임아웃(Hard Timeout) 또는 유휴 타임아웃(Idle Timeout)을 타임아웃 계산 모듈을 통해 동적으로 설정하는 단계를 포함하고,상기 2D 카운팅 블룸 필터는 송신자 MAC(Media Access Control)과 수신자 MAC을 행과 열의 2차원으로 구성하여 플로우를 나타내고, 패킷 개수를 카운트하여 저장하기 위해 각각의 하나의 셀이 1bit 이상의 메모리로 형성하고,상기 2D 카운팅 블룸 필터를 이용하여 패킷 개수인 히스토리를 저장하여 검색할 수 있는 단계를 더 포함하고,상기 2D 카운팅 블룸 필터는,네트워크 플로우에 대한 패킷 개수 기록을 저장하기 위해, k개의 해시 함수와 길이 m을 갖는 배열로 형성되며, 삽입 연산과 체크 연산을 포함하고,상기 삽입 연산은,상기 상태 모듈에서의 플로우에 포함된 송신자 MAC 주소와 수신자 MAC 주소를 해시함수의 입력으로 사용하여 상기 해시함수의 결과 값을 산출하고, 상기 해시함수의 결과 값을 이용하여 상기 2D 카운팅 블룸 필터의 셀을 특정하는 연산이고,상기 체크 연산은,상기 삽입 연산과 동일하게 주어진 플로우에 해당하는 상기 2D 카운팅 블룸 필터의 셀을 찾아 셀에 저장된 값을 읽는 연산인 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|
9 |
9
삭제
|
10 |
10
제8항에 있어서,상기 타임아웃 계산 모듈은 상기 절대 타임아웃을 플로우 엔트리가 삭제되는 평균적인 타임아웃의 시간을 나타내는 평균 타임아웃 + ceil(log2(패킷 개수)) + 1로 설정하고, 상기 유휴 타임아웃을 ceil(log2(패킷 개수 / 평균 타임아웃)로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|
11 |
11
제10항에 있어서,상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하는 단계; 및상기 패킷 히스토리가 존재하지 않는 경우, 모든 플로우에 대하여 상기 절대 타임아웃을 평균 타임아웃으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|
12 |
12
제10항에 있어서,상기 타임아웃 계산 모듈은 상기 2D 카운팅 블룸 필터에 저장된 플로우의 패킷 개수의 존재 유무에 따라 패킷 히스토리를 판단하는 단계; 및상기 패킷 히스토리가 존재하는 경우, 해당 플로우를 평균 타임아웃 + 플로우 룰에 매칭된 패킷 개수(히스토리)에 비례한 값으로 절대 타임아웃을 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|
13 |
13
제12항에 있어서,상기 타임아웃 계산 모듈은 플로우 룰에 매칭된 패킷 개수(히스토리)를 평균 타임아웃으로 나눈 값이 003e#= 1인 경우, 해당 플로우를 (플로우 룰에 매칭된 패킷 개수(히스토리)/평균 타임아웃)에 비례한 값으로 유휴 타임아웃을 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|
14 |
14
제10항에 있어서,상기 SDN 컨트롤러는 상기 평균 타임아웃이 존재하지 않는 경우, 해당 플로우를 상기 절대 타임아웃으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 SDN를 위한 플로우 테이블 오버플로우 공격 방어 방법
|