Представлен эксплойт, способный блокировать работу любого SSL-сервера
Известная немецкая хакерская группа THC представила эксплойт, реализующий DoS-атаку против любого SSL-сервера с задействованием всего одной или нескольких атакующих машин. Уязвимость присутствует во всех известных реализациях SSL и не может быть устранена без переработки принципа работы сервера.
Идея, заложенная в эксплойт, очень проста и основана на том факте, что для установки SSL-соединения серверная сторона тратит в 15 раз больше ресурсов, чем клиентская. Фактически, все что делает эксплойт, это создает бесконечный поток подключений к серверу, что в конечном итоге приводит к исчерпанию ресурсов последнего. THC уверяет, что для введения среднестатистического сервера в состояние отказа в обслуживании понадобится всего 300 SSL-подключений в секунду, которые с легкостью обеспечит стандартный ноутбук, подключенный к сети с помощью DSL-канала. Большая ферма серверов, оснащенная балансировщиком нагрузки сможет выдержать натиск не более чем 20 таких ноутбуков, пропускной канал каждого из которых составляет всего 120 Кбит/с.
Надежной защиты от данного способа атаки пока не существует и вряд ли появится в ближайшем будущем. Максимум, что могут сделать системные администраторы, это отключить механизм SSL-Renegotiation или установить коммерческий SSL Accelerator, благодаря которым удастся повысить производительность SSL-сервера и защититься хотя бы от атак, производимых с одной машины. Разработчики эксплойта утверждают, что производители были поставлены в известность о наличии проблемы ещё в 2003 году, но с тех пор ни один из вендоров не предпринял попыток исправления сложившейся ситуации.
Получить код эксплойта можно с домашней страницы THC, на которой опубликована урезанная версия, которая не будет работать в отношении серверов с отключенным SSL-Renegotiation. При отключении SSL-Renegotiation для совершения атаки потребуется создавать новое TCP-соединение на каждый ресурсоёмкий SSL-handshake. Упрощённую функциональность эксплойта, работающего в ситуации отключения SSL-Renegotiation, можно повторить с помощью стандартного openssl-клиента (главное отличие эксплойта THC в том, что он инициирует серию SSL-handshake в рамках одного TCP-соединения, к чему серверы не подготовлены):
thc-ssl-dosit() {
while :; do
(while :; do echo R; done) |
openssl s_client -connect 127.0.0.1:443 2>/dev/null;
done
}