Надежное случайное раннее обнаружение
Надежное случайное раннее обнаружение ( RRED ) — это дисциплина организации очередей для сетевого планировщика . Существующий алгоритм случайного раннего обнаружения (RED) и его варианты оказываются уязвимыми для новых атак, особенно для низкочастотных атак типа «отказ в обслуживании» (LDoS). Эксперименты подтвердили, что существующие алгоритмы, подобные RED, особенно уязвимы для атак LDoS из-за колеблющегося размера очереди TCP, вызванного атаками. [1]
Алгоритм Robust RED (RRED) был предложен для повышения пропускной способности TCP против атак LDoS. Основная идея RRED заключается в обнаружении и фильтрации атакующих пакетов до того, как к входящим потокам будет применен обычный алгоритм RED. Алгоритм RRED может значительно улучшить производительность TCP при низкочастотных атаках типа «отказ в обслуживании». [1]
Конструкция Robust RED (RRED)
[ редактировать ]Блок обнаружения и фильтрации добавляется перед обычным RED-блоком на маршрутизаторе. Основная идея RRED заключается в обнаружении и фильтрации пакетов LDoS-атак из входящих потоков до того, как они передадутся алгоритму RED. То, как отличить атакующий пакет от обычных TCP-пакетов, имеет решающее значение в конструкции RRED.
В рамках безопасного потока TCP отправитель задерживает отправку новых пакетов, если обнаружена потеря (например, пакет отброшен). Следовательно, пакет считается атакующим, если он отправлен на короткое расстояние после того, как пакет был отброшен. Это основная идея алгоритма обнаружения Robust RED (RRED). [1]
Алгоритм Robust RED (RRED)
[ редактировать ]algorithm RRED-ENQUE(pkt) 01 f ← RRED-FLOWHASH(pkt) 02 Tmax ← MAX(Flow[f].T1, T2) 03 if pkt.arrivaltime is within [Tmax, Tmax+T*] then 04 reduce local indicator by 1 for each bin corresponding to f 05 else 06 increase local indicator by 1 for each bin of f 07 Flow[f].I ← maximum of local indicators from bins of f 08 if Flow[f].I ≥ 0 then 09 RED-ENQUE(pkt) // pass pkt to the RED block 10 if RED drops pkt then 11 T2 ← pkt.arrivaltime 12 else 13 Flow[f].T1 ← pkt.arrivaltime 14 drop(pkt) 15 return
- f.T1 — время прибытия последнего пакета из потока f , который отбрасывается блоком обнаружения и фильтрации.
- T2 — время прибытия последнего пакета из любого потока, отброшенного блоком случайного раннего обнаружения (RED).
- Тмакс = макс(f.T1, T2) .
- T* — это короткий период времени, который эмпирически выбран равным 10 мс в алгоритме RRED по умолчанию. [1]
Код моделирования Robust RED (RRED)
[ редактировать ]Код моделирования алгоритма RRED опубликован как платформа моделирования активного управления очередью и атак типа «отказ в обслуживании» (AQM&DoS). Платформа моделирования AQM&DoS способна моделировать различные DoS-атаки (распределенный DoS, спуфинг DoS, низкоскоростной DoS и т. д.) и алгоритмы активного управления очередью (AQM) ( RED , RRED, SFB и т. д.). Он автоматически вычисляет и записывает среднюю пропускную способность обычных потоков TCP до и после DoS-атак, чтобы облегчить анализ влияния DoS-атак на обычные потоки TCP и алгоритмы AQM.
Ссылки
[ редактировать ]- ^ Jump up to: а б с д Чжан, К.; Инь, Дж.; Кай, З.; Чен, В. (май 2010 г.). «RRED: надежный алгоритм RED для противодействия низкочастотным атакам типа «отказ в обслуживании» (PDF) . Коммуникационные письма IEEE . 14 (5): 489–491. дои : 10.1109/LCOMM.2010.05.091407 . S2CID 1121461 .