강력한 무작위 조기 감지
Robust random early detection강력한 RRED(Random Random Early Detection)는 네트워크 스케줄러용 공개 대기열이다. 기존의 RED(Random Early Detection) 알고리즘과 그 변형은 새롭게 발생하는 공격, 특히 저율 서비스 거부 공격(LDoS)에 취약하다는 것이 발견된다. 실험 결과, 기존 RED와 유사한 알고리즘은 공격에 의해 발생하는 진동 TCP 대기열 크기 때문에 LDoS 공격 시 특히 취약하다는 것이 확인되었다.[1]
LDoS 공격에 대한 TCP 처리량을 개선하기 위해 RRED(Rothous RED) 알고리즘이 제안되었다. RRED의 기본 아이디어는 들어오는 흐름에 정상적인 RED 알고리즘이 적용되기 전에 공격 패킷을 감지하고 걸러내는 것이다. RRED 알고리즘은 저율 서비스 거부 공격 시 TCP의 성능을 크게 향상시킬 수 있다.[1]
강인한 빨간색 (RRED
라우터의 일반 적색 블록 앞에 검출 및 필터 블록이 추가된다. RRED의 기본 아이디어는 LDoS 공격 패킷이 RED 알고리즘에 공급되기 전에 유입되는 흐름에서 이를 감지하고 걸러내는 것이다. 공격 패킷과 일반 TCP 패킷을 구별하는 방법은 RRED 설계에서 매우 중요하다.
정상적인 TCP 흐름 내에서, 송신자는 손실이 감지될 경우(예: 패킷이 삭제됨) 새로운 패킷 전송을 지연시킨다. 따라서 패킷이 떨어진 후 단거리 내에서 전송되는 패킷은 공격 패킷으로 의심된다. 이것은 RRED(Rothous RED)의 검출 알고리즘의 기본 개념이다.[1]
RRED 알고리즘
알고리즘 RRED-ENQU(pkt) 01 f ← RRED-FLOWHASH(pkt) 02 Tmax ← MAX[f]T1, T2) 03 만약 pkt.arrival time이 [Tmax, Tmax+T*] 이내에 있다면, 04는 f 05에 해당하는 bin 각각에 대해 1씩 국소 지표를 감소시킨다. 그렇지 않으면 f 07 Flow[f]의 bin마다 06이 1씩 증가한다.I ← Flow[f]일 경우 f08의 bin에서 최대 지역 지표I ≥ 09 이후 09 RED-ENQU(pkt) // RED 블록 10에 패킷을 전달한다. 만약 RED가 패킷을 떨어뜨리면 11 T2 ← pkt.arrivaltime 12 other 13 Flow[f.T1 ← pkt.arrivatetime 14 drop(pkt) 15 return
- f.T1은 flow f에서 검출 및 필터 블록에 의해 삭제된 마지막 패킷의 도착 시간이다.
- T2는 무작위 조기 감지(RED) 블록에 의해 삭제된 모든 흐름에서 마지막 패킷의 도착 시간이다.
- Tmax = max(f)T1, T2).
- T*는 짧은 기간으로, 경험적으로 기본 RRED 알고리즘에서 10 ms로 선택된다.[1]
RRED의 시뮬레이션 코드
RRED 알고리즘의 시뮬레이션 코드는 능동 대기열 관리 및 서비스 거부 공격(AQM&DoS) 시뮬레이션 플랫폼으로 발행된다. AQM&DoS 시뮬레이션 플랫폼은 다양한 DoS 공격(분산 DoS, 스푸핑 DoS, 저율 DoS 등)과 액티브 큐 관리(AQM) 알고리즘(RED, RRED, SFB 등)을 시뮬레이션할 수 있다. DoS 공격 전후의 정상 TCP 흐름의 평균 처리량을 자동으로 계산하고 기록하여 정상 TCP 흐름과 AQM 알고리즘에 대한 DoS 공격의 영향을 분석하는 것을 용이하게 한다.
참조
- ^ a b c d Zhang, C.; Yin, J.; Cai, Z.; Chen, W. (May 2010). "RRED: Robust RED algorithm to counter low-rate denial-of-service attacks" (PDF). IEEE Communications Letters. 14 (5): 489–491. doi:10.1109/LCOMM.2010.05.091407. S2CID 1121461.