Как heise Security сообщил вчера, имеется проблема в актуальный Apache2 веб-серверам версии 2.2. x, которая встречается при GET-Requests с несколькими "степенью Бт" и может использоваться, чтобы позволять переполнять RAM атакованной цели, что может вести к катастрофе веб-сервера или совсем всего сервера. Мои наблюдения, что не каждая инсталляция тотчас же восприимчива.Wie heise Security gestern vermeldet hat, gibt es ein Problem in aktuellen Apache2 Webservern der Version 2.2.x, welches bei GET-Requests mit mehreren “Byte-Ranges” auftritt und dazu genutzt werden kann, den RAM des angegriffenen Ziels überlaufen zu lassen, was zum Absturz des Webserver oder gar des ganzen Servers führen kann. Meine Beobachtungen sind, dass nicht jede Installation gleich anfällig ist.
Хотя кое-что сжигается при нападении с кодом Exploit в производительности CPU, потребление RAM растет вокруг нескольких hunder мегабайт, не хватает, однако, на системах под моим контролем, чтобы приводить ее из шага – по меньшей мере, не при помощи только одного утомительного компьютера и в 1000 + Threads.Zwar wird bei einem Angriff mit dem Exploit-Code einiges an CPU-Leistung verbrannt, der RAM Verbrauch steigt um ein paar hunder MB, reicht aber auf den Systemen unter meiner Kontrolle nicht aus, diese aus dem Tritt zu bringen – zumindest nicht mit nur einem angreifenden Rechner und 1000+ Threads.
Шаги к смягчению угрозы - это либо отключение степени Бт в Config Header модуля, что могло бы иметь, однако, наряду с полным деактивированием “resumable загрузок” еще более серьезные последствия, либо ограничивание числа Range-Requests через mod_rewrite. Я решился как, вероятно, наибольшие для второго решения.Schritte zum Dämpfen der Bedrohung sind entweder die Abschaltung des Byte-Ranges in der Config des Header Moduls, was aber neben dem kompletten Deaktivieren von “resumable Downloads” noch schwerwiegendere Folgen haben dürfte oder aber das Beschränken der Zahl der Range-Requests via mod_rewrite. Ich habe mich wie vermutlich die Meisten für die zweite Lösung entschieden.
Эти инструкции относятся к системе сервера с Debian Linux. При применении другого распределения должны идти при необходимости. Пути файла приспосабливаются.Diese Instruktionen beziehen sich auf ein Server-System mit Debian Linux. Bei Verwendung einer anderen Distribution müssen ggf. Dateipfade angepasst werden.
Для этого следующий код должен вводиться в каждом VHost (например, по директиве DocumentRoot): Dazu muss in jedem VHost folgender Code eingefügt werden (z. B. nach der DocumentRoot-Direktive):
# Apache2 Range-Request Rewrite Fix
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]
Так как у меня есть небольшое желание вводить вручную в каждый VHost, я эвакуирую в собственный файл в/etc/apache2/conf.d/antiapachekiller и ввожу Include/etc/apache2/conf.d/antiapachekiller в каждый VHost после DocumentRoot. Так как я должен делать при очень многих сторонах, я автоматизировал с этим Skiptchen. Он может лежать на любом месте, путь с определениями VHost твердо установлен (и должен был бы приспосабливаться при отклонениях), и Backup каталога хулигана раньше срочно рекомендуется!Da ich wenig Lust habe, das in jeden VHost manuell einzufügen, lagere ich das in eine eigene Datei in /etc/apache2/conf.d/antiapachekiller aus und füge ein Include /etc/apache2/conf.d/antiapachekiller in jeden VHost nach dem DocumentRoot ein. Weil ich das bei ziemlich vielen Seiten machen muss, habe ich das mit diesem Skiptchen automatisiert. Dieses kann an beliebiger Stelle liegen, der Pfad mit den VHost-Definitionen ist fest eingebaut (und müsste bei Abweichungen angepasst werden), und ein Backup des Apache-Verzeichnisses vorher wird dringend empfohlen!
#!/bin/bash
cp -rvp /etc/apache2/sites-available/ /tmp/
cd /tmp/sites-available/
FILES=`ls *.conf`
for FILE in $FILES
do
echo $FILE
cat $FILE | perl -ne 'print $_; print \
"Include /etc/apache2/conf.d/antiapachekiller\n" \
if ($_ =~ /DocumentRoot/ )' > /etc/apache2/sites-available/$FILE
done
Даже если никакой собственный Backup не вкладывался раньше, оригинальные файлы лежат после приложения рукописи еще в/tmp/sites-available/Selbst wenn kein eigenes Backup vorher angelegt wurde, liegen die Originaldateien nach der Anwendung des Skripts noch in /tmp/sites-available/
Затем VHosts должны были проверяться, по меньшей мере, еще подобно выборочным проверкам и тогда индеец по-новому приглашаться (/etc/init.d/apache2 reload). Danach sollten die VHosts zumindest noch stichprobenartig überprüft werden und dann der Indianer neu geladen werden (/etc/init.d/apache2 reload).