Надежное случайное раннее обнаружение
Надежное случайное раннее обнаружение ( 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 .