The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Необычная уязвимость в Apache mod_rewrite

14.05.2013 16:57

В модуле mod_rewrite популярного HTTP-сервера Apache серии 2.2.x обнаружена интересная уязвимость (CVE-2013-1862), позволяющая удаленному злоумышленнику выполнить произвольную команду в момент просмотра лог-файла администратором сервера.

Уязвимость обусловлена тем фактом, что mod_rewrite при записи в лог-файл не экранирует специальные символы, что позволяет удаленному злоумышленнику, при помощи специально оформленных запросов к веб-серверу, записать туда, например, управляющие последовательности для терминала. При правильном манипулировании такими последовательностями, можно добиться запуска произвольных команд с правами пользователя, осуществлявшего просмотр лога (как правило, подобные лог-файлы доступны для чтения только пользователю root).

Доступен патч, исправляющий данную уязвимость. К настоящему моменту проблема исправлена в RHEL и CentOS. Разработчики Debian в курсе наличия уязвимости, однако не считают возможность удаленного запуска команд с правами root серьезной угрозой безопасности («Such injection issues are not treated as security issues»). Разработчики Gentoo также осведомлены о наличии уязвимости, однако пока не предпринимали каких-либо шагов для ее исправления.

  1. Главная ссылка к новости (https://bugzilla.redhat.com/sh...)
  2. OpenNews: Концепция атаки по подмене копируемого в терминал текста с сайта
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/36932-security
Ключевые слова: security, apache, mod_rewrite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (72) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Sylvia (ok), 18:09, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    в nginx (и не только, хотя апача в том списке не было)
    тоже было 3 года назад )
    http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4487

     
     
  • 2.3, Аноним (-), 18:15, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Неоспоримое достоинство текстового формата лога - на одни и те же грабли можно наступать множество раз, потому что экранировать должен тот, кто пишет, а не тот, кто читает.
     
     
  • 3.8, jOKer (ok), 19:13, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не холивара ради, а ответа для: SQL-инъекции придумали куда раньше. Но еще раньше появились криворукие кодеры.... Так что я вряд ли почувствую себя таким дофига защищенным, если обще-системный лог у меня будет автоматом заливаться в СУБД.
     
     
  • 4.12, Аноним (-), 19:35, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что характерно - SQL-инъекции существуют именно из-за использования текста как п... большой текст свёрнут, показать
     
     
  • 5.28, Аноним (-), 00:52, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но гораздо проще - не убивать полезную информацию кривым дизайном.

    Не UNIX way.
    Настоящий UNIX way - создать себе трудности, а потом героически их преодолеть. Дополнительные бонусы начисляются, если трудности созданы при помощи комбайнов.

    Например, классический лог-файл - типичный комбайн as is: создан в расчете на то, что его должны легко читать как человек, так и машина. В результате, как обычно, ни одного зайца не догнали.

     
     
  • 6.32, Аноним (-), 01:01, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Например, классический лог-файл - типичный комбайн as is: создан в расчете на то, что его должны легко читать как человек, так и машина. В результате, как обычно, ни одного зайца не догнали.

    Впрочем, надо отметить, большинство форматов конфигов (INI и ему подобные) все-таки стали приятным исключением из этого "как обычно". Но применить этот полезный опыт на логах пока никто не попытался.

     
     
  • 7.39, анон (?), 01:32, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Например, классический лог-файл - типичный комбайн as is: создан в расчете на то, что его должны легко читать как человек, так и машина. В результате, как обычно, ни одного зайца не догнали.
    > Впрочем, надо отметить, большинство форматов конфигов (INI и ему подобные) все-таки стали
    > приятным исключением из этого "как обычно". Но применить этот полезный опыт
    > на логах пока никто не попытался.

    А как вы будите порсить логи в случае если хард посыпется или еще что случится с файлом бд?

    Если логи лежат вместе со всеми данными в базе? Ну, допустим, есть бэкапы, но логи все равно надо бы глянуть, чтобы иметь представление в какой момент все пошло не так.

    Просто в логи надо писать только необходимую инфу, которая понадобится при анализе.

    Плюс каким образом, без извращений, "грепнуть" логи из базы, особенно если демон бд в дауне?

     
     
  • 8.57, Аноним (-), 09:54, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Лучше скажи, как ты грепаешь в логе нагруженного сервака на хренадцать гигз все... текст свёрнут, показать
     
     
  • 9.58, Аноним (-), 11:19, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Увольняю админа нафиг Ротация неадекватная гигабайты в одном файле , выноса ло... текст свёрнут, показать
     
     
  • 10.74, Дмитрий (??), 11:36, 16/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    грепать тысячу файлов по мегабайту не легче чем грепать один на гигабайт иначе ... текст свёрнут, показать
     
     
  • 11.75, arisu (ok), 11:42, 16/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    если это действие одноразовое, да к тому же нужна информация за определённый пер... текст свёрнут, показать
     
  • 9.61, Crazy Alex (ok), 11:37, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот если у вас есть такие портянкии необходиомсть оперативно в них что-то иск... текст свёрнут, показать
     
  • 9.63, лох (?), 12:43, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1 сколько раз в минуту ты смотришь в лог 2 сколько раз в минуту лог пишется ... текст свёрнут, показать
     
  • 9.67, arisu (ok), 16:12, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    это занимает примерно столько времени, сколько надо, чтобы написать приказ об ув... текст свёрнут, показать
     
  • 6.56, Аноним (-), 09:51, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не UNIX way.

    Unix way ничего не говорит о формате данных.

     
  • 5.50, Michael Shigorin (ok), 03:37, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +12 +/
    > Но гораздо проще - не убивать полезную информацию кривым дизайном.

    Удивлён текстовым представлением Ваших бесценных комментариев.

     
  • 2.4, anonymous (??), 18:17, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Отстает апач, отстает...
     
     
  • 3.24, Аноним (-), 00:45, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда ждем обнаружения в апаче аналога http://www.opennet.ru/opennews/art.shtml?num=36875
     

  • 1.2, Аноним (-), 18:10, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    >>

    Разработчики Debian в курсе наличия уязвимости, однако не считают возможность удаленного запуска команд с правами root серьезной угрозой безопасности

    я фигею без баяна !

     
     
  • 2.17, arisu (ok), 20:55, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > я фигею без баяна !

    это просто «пиривотчек» дегенерат.

     
     
  • 3.23, Аноним (-), 00:43, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > это просто «пиривотчек» дегенерат.

    Кто о чем, а arisu о своем :)

     
     
  • 4.27, arisu (ok), 00:52, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет, не о своём, об опеннетовском.
     
  • 2.54, Archer73 (ok), 09:05, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Разработчики Debian считают, что настоящая уязвимость - это удаленная запись управляющих последовательностей для терминала.

    Добавьте к новости, что разработчики Debian изнасиловали переводчика.

     
  • 2.73, АнониМ (?), 23:14, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >я фигею без баяна !

    я фигею с Петросяна переводчика.

     

  • 1.5, Нанобот (?), 18:19, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    а можна пример escape-последовательности, которая при выводе в терминал через cat/tail выполняет команды?
     
     
  • 2.7, Аноним (-), 18:37, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Присоединяюсь к вопросу
     
     
  • 3.37, Xasd (ok), 01:08, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Присоединяюсь к вопросу

    добавляю дополнительный вопрос!:

    существуют ли esc-последовательности, которые при выводе на экран -- переключают терминал в режим доминирования над человеком?...

    [ну тоесть человек, прочитавший текст, написанный в этом режиме доминирования, -- выполняет беспрекословно то что прочитал...]

    * * * * * * * * *

    и ещё хочу выяснить такие esc-последовательности, напечатав которые компьютер ВЗРЫВАЕТСЯ БАБАХ!!! (что-то такое точно должно быть!).. и даже в случае если esc-последоватености посылаются удалённо на терминал компьютера, компьютера который в данный момент отключён от питания (но включена батарейка на материнской плате).

    # P.S.: вот кстате почему батарейку на материнской плате -- нужно тоже вынимать -- после отключения питания компьютера..

     
  • 2.10, Аноним (-), 19:18, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сдаётся мне, что при таком поведении терминала уязвимость не в mod_rewrite, а в терминале.
     
     
  • 3.13, Аноним (-), 19:35, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Сдаётся мне, что при таком поведении терминала уязвимость не в mod_rewrite, а в терминале.

    Уязвимость терминала в том, что он выполняет функции терминала? Вот так новость.

     
     
  • 4.20, vitalif (?), 22:57, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Херассе функции.

    Так полсистемы уязвимо будет - даже специально сформированным word документом, пропустив его через catdoc, можно будет rm -rf / сделать.

     
     
  • 5.22, Аноним (-), 00:41, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Только при наличии уязвимости в catdoc, разумеется.
     
     
  • 6.36, Аноним (-), 01:07, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и всетаки, если по делу, - кто может показать пример, а не пустописанием заниматься?
     
  • 3.41, Аноним (-), 03:11, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Безусловно.

    Непонятно, в чем смысл эмулировать эти функции алфавитно-цифровых терминалов сегодня.

     
  • 2.21, anonymous (??), 23:32, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Присоединяюсь к вопросу. Подобные ескейп-комманды - это явная дыра в терминале.
     
  • 2.38, Ordu (ok), 01:18, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу дать законченного ответа, но имею предположение. По-крайней мере в urxvt есть т.н. perl-extensions, к которым можно обращаться через esc-seqs. Как подсказывает ман надо делать так:

    echo -en '\e]EXT:PARAMS\a'

    Вместо EXT пишем имя extension'а, вместо PARAMS его параметры. Но к чему это приведёт -- я не знаю, просто когда-то, выясняя зачем urxvt тянет perl промеж прочих bdeps, выяснил наличие такой esc-последовательности.
     

  • 1.6, Аноним (-), 18:23, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот как (
     
  • 1.9, тоже Аноним (ok), 19:16, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > как правило, подобные лог-файлы доступны для чтения только пользователю root

    Это где такие правила? На шаредах, например, админу логи апача нахрен не нужны, в отличие от клиентов.

     
     
  • 2.15, Аноним (-), 19:38, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это где такие правила? На шаредах, например, админу логи апача нахрен не нужны, в отличие от клиентов.

    На шаредах клиентов к ним и не подпускают. В классическом случае, ими занимается техподдержка - студенты на полставки. Как правило, с рутовым доступом.

     
     
  • 3.33, Xasd (ok), 01:02, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > На шаредах клиентов к ним и не подпускают.

    они прям в домашней директории лежат у клиента среднестатистического шаред-хостинга :) ...туда сразу и пишутся

     

  • 1.11, Buy (ok), 19:31, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > не считают возможность удаленного запуска команд с правами root серьезной угрозой безопасности

    Это вообще-то передергивание и личное мнение автора.

     
     
  • 2.14, Аноним (-), 19:36, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> не считают возможность удаленного запуска команд с правами root серьезной угрозой безопасности
    > Это вообще-то передергивание и личное мнение автора.

    Не передергивайте. Это личное мнение разработчиков Debian.

     
  • 2.18, arisu (ok), 20:57, 14/05/2013 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Это вообще-то передергивание и личное мнение автора.

    на опеннете это считается нормальным. тут нормальным считается даже написание «пиривотчиком» МегаПеревода со смыслом, противоположным оригиналу.

     
     
  • 3.25, Аноним (-), 00:47, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > на опеннете это считается нормальным. тут нормальным считается даже написание «пиривотчиком»
    > МегаПеревода со смыслом, противоположным оригиналу.

    Эээ... в оригинале разработчики дебиана очень переживали, сокрушались, и спешили срочно исправить? Переведите правильно, голубчик, будьте так добры!

     
     
  • 4.29, arisu (ok), 00:52, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Rasch abkochen, dann Vormarsch nach Sokal.
     
     
  • 5.31, Аноним (-), 00:55, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Rasch abkochen, dann Vormarsch nach Sokal.

    Вы таки полагаете, что новости на опеннете должны быть написаны в таком стиле?

     

  • 1.16, Anonim (??), 20:14, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Не читай логи - спи спокойно =)
     
     
  • 2.26, Аноним (-), 00:49, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не читай логи - спи спокойно =)

    Тогда так и не узнаешь, как тебя взломали. Хотя, не знать об этом - тоже важно для спокойного сна.

     

  • 1.19, Статс (?), 22:21, 14/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Sieve
     
  • 1.40, Аноним (-), 03:08, 15/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    В Советской России логи читают администратора.
     
  • 1.42, Аноним (-), 03:15, 15/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/



    $ cat >tmp
    ^[[A^[[D^[[B^[[C
    $ less tmp
    ESC[AESC[DESC[BESC[C
    tmp (END)


    Расходимся?

     
     
  • 2.43, Аноним (-), 03:17, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    там в виде байтов а не символов
     
     
  • 3.45, Аноним (-), 03:19, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > там в виде байтов а не символов

    В Юникоде нет байтов.

     
     
  • 4.46, Аноним (-), 03:20, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> там в виде байтов а не символов
    > В Юникоде нет байтов.

    ты записал тупо текст, такое не сработает

     
     
  • 5.48, Аноним (-), 03:21, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ты записал тупо текст, такое не сработает

    Внимательнее. Я тупо нажал четыре стрелки, которые загнали в файл esc-последовательности, что и показал less.

     
  • 2.44, Аноним (-), 03:18, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/


    $tail tmp

    ?
     
     
  • 3.47, Аноним (-), 03:20, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    ССЗБ
     
  • 3.49, Аноним (-), 03:33, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > $tail tmp



    $less +G tmp

    !

    Вообще, что за детский сад для админов локалхостов? Читайте маны, они рулят.

     
     
  • 4.51, Аноним (-), 03:38, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    $ man man
     

  • 1.52, Аноним (-), 08:00, 15/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > пользователю root

    Одна проблема. Во многих дистрибутивах, говоря формально, нет пользователя root.

     
     
  • 2.53, pavel_simple (ok), 08:07, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> пользователю root
    > Одна проблема. Во многих дистрибутивах, говоря формально, нет пользователя root.

    в каких? насколько формально? куда он делся?

     
  • 2.55, ваноним (?), 09:22, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    еще один вендузятник о своем болоте запел
     
  • 2.59, Аноним (-), 11:25, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Одна проблема. Во многих дистрибутивах, говоря формально, нет пользователя root.

    "Только гиена и павиан" (с)

     
     
  • 3.60, Аноним (-), 11:30, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Одна проблема. Во многих дистрибутивах, говоря формально, нет пользователя root.
    > "Только гиена и павиан" (с)

    $ grep root </etc/passwd
    $

     
     
  • 4.62, Аноним (-), 11:40, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > $ grep root </etc/passwd



    $ grep -G hyena </etc/passwd
    hyena:x:1000:1000:Hyaena Brunnea,,,:/home/hyena:/bin/bash

     
  • 2.68, arisu (ok), 16:16, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    ну так не пользуйся бубунтой.
     

  • 1.64, Аноним (-), 14:25, 15/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Господа, но нельзя же так.

    cat(1), tail(1), head(1) и классическая more(1) небезопасны при выводе на текстовый терминал.

    Об этом говорят в любом курсе по администрированию, начиная с появления VT52, VT100 и иже с ними (так называемых "smart terminals", англ. "хитрожопых терминалов").

    Если не умеете termcap(5) или аналоги, пользуйтесь less(1). Изучите ее ключи. "GNU less" хорошая программа с разумными умолчаниями, люди старались.

     
     
  • 2.65, Аноним (-), 15:45, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    less != tail
     
     
  • 3.66, Аноним (-), 15:49, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    "less +G" лучше, чем "tail".
     
     
  • 4.69, arisu (ok), 16:23, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > «less +G» лучше, чем «tail».

    а чем заменить «tail -f»?

     
     
  • 5.70, Аноним (-), 16:37, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    less +F
     
     
  • 6.71, arisu (ok), 16:42, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    вот хитрые какие, умеют маны читать…
     
     
  • 7.72, Аноним (-), 16:51, 15/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    man man
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру