кто-нибудь рассматривал восприимчивость netty к oCERT-2011-003? - PullRequest
0 голосов
/ 11 января 2012

Отказ в обслуживании из-за множественных коллизий хеш-таблицы (http://www.nruns.com/_downloads/advisory28122011.pdf)

Я надеюсь, что у кого-то есть причина, по которой Netery QueryStringDecoder не подвержен этой атаке.

Из упомянутого .pdf

== Java == Java предлагает классы HashMap и Hashtable, которые используют хеш-функцию String.hashCode (). Она очень похожа на DJBX33A (вместо 33 она использует умножениеконстанта 31 и вместо начального значения 5381 используется 0). Таким образом, она также уязвима для эквивалентной атаки на подстроку. При хешировании строки Java также кэширует значение хеш-функции в атрибуте хеш-функции, но только если результат отличается от нуляТаким образом, целевое значение ноль особенно интересно для злоумышленника, так как оно предотвращает кэширование и вызывает повторное хэширование.

Различные веб-приложения анализируют данные POST по-разному, но проверенные (Tomcat, Geronima, Jetty, Glassfish).) все помещают данные формы POST в объект Hashtable или HashMap. Максимальные размеры POST такжеотличаются от сервера к серверу, причем 2 МБ являются наиболее распространенными.

Сервер Tomcat 6.0.32 анализирует строку 2 МБ конфликтующих ключей примерно за 44 минуты процессорного времени i7, поэтому злоумышленник с около 6 Кбит/ s может держать одно ядро ​​i7 постоянно занятым.Если у злоумышленника есть гигабитное соединение, он может поддерживать около 100 000 ядер i7.

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Похоже, Трастин уже обдумал это.

commit 521bf83d0f39896f3c87c54bebd1e8c06e86b60b
Author: Trustin Lee <trustin@gmail.com>
Date:   Fri Dec 30 17:58:51 2011 +0900

    Issue #141: hashdos security vulnerability in QueryStringDecoder and possibly other components

    * Limited maximum number of parameters to 1024 by default and made the
    limitation configurable
    * QueryStringDecoder is now able to handle an HTTP POST content

M       codec-http/src/main/java/io/netty/handler/codec/http/QueryStringDecoder.java
M       codec-http/src/test/java/io/netty/handler/codec/http/QueryStringDecoderTest.java
0 голосов
/ 11 января 2012

Да ...

На Netty это не влияет, так как мы уже ограничиваем размер заголовка. См. [1] для более подробной информации:

[1] https://github.com/netty/netty/issues/141

...