The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от opennews (??) on 19-Июл-16, 10:51 
Опубликована (https://www.kb.cert.org/vuls/id/797896) информация об уязвимости под кодовым названием Httpoxy (https://httpoxy.org/), которая охватывает достаточно большой пласт http-серверов, но может применяться для ограниченного набора серверных web-приложений, осуществляющих обращение к внешним Web API. Уязвимость вызвана дублированием назначения переменной окружения HTTP_PROXY, которая может быть выставлена как для определения системных настроек прокси-сервера, так и на основе трансляции переданного клиентом HTTP-заголовка "Proxy:"  в соответствии с требованиями RFC 3875.


Создание системной переменной окружения HTTP_PROXY является достаточно простым способ для организации работы http-клиентов через прокси. Суть проблемы в том, что существует пласт полагающихся на переменную окружения HTTP_PROXY библиотек, которые могут использоваться в работающих на стороне сервера web-приложениях для обращения к внешним ресурсам, например, для отправки запросов к различным Web API, загрузки файлов или выполнения проверок (проверка наличия введённого URL, обращение к внешним службам аутентификации и т.п.). В случае передачи HTTP-заголовка "Proxy:" http-сервер также создаст переменную окружения HTTP_PROXY, но уже на основании данных пользователя, что позволяет направить все сетевые запросы уязвимого web-приложения через определённый прокси-сервер.


Предположим, что имеется CGI-скрипт, отправляющий запрос к внешнему Web API для проверки параметров аутентификации клиента и использующий для отправки этого запроса библиотеку, распознающую переменную окружения HTTP_PROXY. Обращение к этому скрипту с подставным HTTP-заголовком "Proxy:"  приведёт к установке переменной окружения HTTP_PROXY и запрос будет сделан не на прямую, а через IP, указанный атакующим через заголовок "Proxy:". Направив таким способом скрипт на фиктивный обработчик API, атакующий может симулировать успешную проверку или подсмотреть приватные данные, отправляемые в составе внутреннего запроса к API.


Проблема касается только web-приложений, выполняющих внешние запросы и использующих для отправки запроса проблемные HTTP-клиенты. Например, уязвимость проявляется в программах на PHP (php-fpm, mod_php - CVE-2016-5385), использующих библиотеки Guzzle 4+ (https://github.com/guzzle/guzzle) и Artax (https://github.com/amphp/artax), в CGI-скриптах на Python (wsgiref.handlers.CGIHandler, twisted.web.twcgi.CGIScript - CVE-2016-1000110), использующих библиотеку Requests (http://www.python-requests.org/en/master/), в Apache Tomcat (https://www.apache.org/security/asf-httpoxy-response.txt) (CVE-2016-5388) и в программах на языке Go (net, http, cgi - CVE-2016-5386), применяющих модуль net/http. В Curl и Perl (libwww-perl) проблема была устранена ещё в 2001 году. В Ruby аналогичная  уязвимость в Net::HTTP была исправлена в 2012 году.


Наиболее простым способом устранения уязвимости является блокирование обработки HTTP-заголовка Proxy на стороне http-сервера. Например, в Apache httpd достаточно (https://www.apache.org/security/asf-httpoxy-response.txt) воспользоваться модулем mod_headers.so и добавить директиву "RequestHeader unset Proxy early", а в nginx (https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerabil.../) принудительно очистить переменную HTTP_PROXY директивой  "fastcgi_param HTTP_PROXY ''".

URL: http://openwall.com/lists/oss-security/2016/07/18/5
Новость: https://www.opennet.ru/opennews/art.shtml?num=44809

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Alex_K (??) on 19-Июл-16, 10:51 
Каким образом mod_php уязвим?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 11:05 
В mod_php эмулируется установка переменных окружения CGI.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

31. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 23:07 
Неправда.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

2. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –7 +/
Сообщение от Аноним11677 (ok) on 19-Июл-16, 10:54 
Все существующие технологии IT, библиотеки, программы — это одно большее решето и свалка. Начиная от самих процессоров, которые уже исполняют не точно необходимый для выполнения конкретной задачи код, а черте что, месиво из инструкций, порожденных абстракциями на абстракциях (как с вебом с его песочницами), так, что никаких гигагерц не хватает.

Вот так и здесь, кто-то когда-то, в лохматых бородатых годах добавил какую-то сиюминутную фичу, не оттестировав/не продумав до конца — и она живёт и ждет своего часа, чтобы взорваться, потому что КОД НИКТО НЕ ЧИТАЕТ (как бы не заверяли в обратном особо ярые сторонники OSS).

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +3 +/
Сообщение от Аноним (??) on 19-Июл-16, 11:12 
Вообще-то теми кто читает код проблема была исправлена ещё 15 лет назад.

Проблема не в аудите кода, а в том, одни умники назвали переменную окружения одинаково с CGI-переменной, уже до этого определённой в RFС, а другие не подумав добавили поддержку этой переменной окружения в свои библиотеки. В библиотеках вообще через переменные окружения ничего не должно настраиваться, это изначально огромная потенциальная дыра.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –4 +/
Сообщение от fdsa (ok) on 19-Июл-16, 11:25 
С каких пор RFC стал спецификацией ?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

17. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +2 +/
Сообщение от Sw00p aka Jerom on 19-Июл-16, 12:27 
)) вот почему все протоколы в Ж?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

36. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от XoRe (ok) on 20-Июл-16, 23:45 
> С каких пор RFC стал спецификацией ?

Уже лет 20-25 как.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

7. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +8 +/
Сообщение от Аноним (??) on 19-Июл-16, 11:20 
Ну покажете свой, недырявый уже 30 лет, добротный код - мы тут все поаплодируем!
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

12. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –2 +/
Сообщение от Аноним (??) on 19-Июл-16, 11:45 
клоун: программы продаются не за аплодисменты.

И почему 30 лет? Ты сам то используешь хоть одну программу 30-летней давности?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

19. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +3 +/
Сообщение от pkdr (ok) on 19-Июл-16, 13:02 
Ты как обычно тупой бот от мелкомягких демонстрируешь своё отвратительное качество, то что твои криворукие создатели-индусы ничего не умеют, кроме того, чтобы щёлкать мышкой ещё не значит, что здоровые люди не пользуются таким софтом.

Навскидку, ls, grep, ed, sed, vi, dd, cp, rm, cat ... десятки их, а то и сотни.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

32. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –1 +/
Сообщение от Аноним (??) on 20-Июл-16, 07:16 
>ls, grep, ed, sed, vi, dd, cp, rm, cat

Примеры не канают. Это, если угодно, элементы кровеносной системы ОС, выполняющие свои **маленькие узкие** (привет юникс вей) обязанности, пускай и очень важные. Даже говоря о гнутых binutils/coreutils, эти существуют чёрти знает сколько времени, а помножив на размер кода, они должны быть не просто отшлифованы, а отполированы до ослепительного блеска.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

20. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +3 +/
Сообщение от Andrey Mitrofanov on 19-Июл-16, 13:04 
>Ты сам то используешь хоть одну программу 30-летней давности?

GNU Emacs.

А ты?

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

22. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +2 +/
Сообщение от Аноним (??) on 19-Июл-16, 14:12 
А он MS DOS :-))
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

15. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –1 +/
Сообщение от Аноним (??) on 19-Июл-16, 12:02 
Согласен. Хотелось бы как в математике. Сейчас полный разброд, шатание и костыли в этом IT. До сих пор есть разные ОС, компьютерные ресурсы не объединены, нет единых стандартов..
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

18. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –1 +/
Сообщение от Sw00p aka Jerom on 19-Июл-16, 12:33 
соглашусь только с этим КОД НИКТО НЕ ЧИТАЕТ.

пс: по сей день используем бородатый код.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

23. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от _ (??) on 19-Июл-16, 16:20 
>соглашусь только с этим КОД НИКТО НЕ ЧИТАЕТ.

Ну и ты, скорее уже съешь этих хрустяших французких булок!
Ведь как только ТЫ прочьтешь код всё наладится! Да?

>пс: по сей день используем бородатый код.

И снова - скорее уже съешь этих хрустяших французких булок!
Бородатый код это СКАЛА! А где ты видел скалы без трещинок? :)
Впрочем желаю тебе пользовать только новодел ... это изощрённая китайская  пытка :)

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

27. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Sw00p aka Jerom on 19-Июл-16, 17:04 
>>Ведь как только ТЫ прочьтешь код всё наладится! Да?

как бы выразиться правильнее, как только Я читаю код (имеется ввиду гитхабный опенсорс), повеситься хочется!!! (не принимайте это предложение как инструкция к самоубийству).

Качество КОДа за последние 10 лет опустилось ниже плинтуса.

>>Бородатый код это СКАЛА! А где ты видел скалы без трещинок? :)

А вот и нет, по мне это асм.

>>Впрочем желаю тебе пользовать только новодел

что есть новодел, уточните!

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

24. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +1 +/
Сообщение от _ (??) on 19-Июл-16, 16:27 
>пс: по сей день используем бородатый код.

Я думаю с одного раза до тебя не дойдёт. Поэтому:
Бородатый Перл - пофиксили в 2001 году.
Рябе - через ___11___ лет :)
Пых - смотри новость, но его невозможно пофиксить, место проклятое :)

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

4. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Володя (??) on 19-Июл-16, 11:10 
В guzzle уже пофиксили https://github.com/guzzle/guzzle/commit/9d521b23146cb6cedd77...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 11:14 
Это называется исправили?

+        if (php_sapi_name() == 'cli' && getenv('HTTP_PROXY')) {
+            $defaults['proxy']['http'] = getenv('HTTP_PROXY');

Убрали проявление дыры при работе через mod_php, но оставили при запуске в режиме CGI.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Володя (??) on 19-Июл-16, 11:24 
Будь так добр, отправь им PR!
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

16. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  –1 +/
Сообщение от пох on 19-Июл-16, 12:11 
> Это называется исправили?

учитывая невозможность оторвать руки изобретателям env var HTTP_PROXY (где дерьмово все - начиная от самой идеи и заканчивая названием) - да, исправили единственным доступным способом.

> Убрали проявление дыры при работе через mod_php, но оставили при запуске в режиме CGI.

малыш, иди обратно в песочницу лепить куличики.

Взрослый человек сперва бы подумал, что такое php_sapi_name()

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 11:43 
Я что-то не понял каким образом это можно в Go проэксплуатировать. Если запустить приложение с переменной окружения HTTP_PROXY=192.168.0.1:3128, то оно будет обращаться к адресу через proxy. Если же в go приложение передать заголовок curl -H "Proxy: 192.168.0.1:3128" http://mygoapp, то оно огнорирует заголовок.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 11:48 
Похоже не всё так страшно. https://golang.org/src/net/http/transport.go#L212
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Сиромант on 19-Июл-16, 11:51 
Если у тебя Go запускается как классическое приложение CGI, по процессу на запрос (если так кто-то ещё делает, конечно), то веб-сервер может помещать в переменную среды HTTP_PROXY содержимое заголовка Proxy.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

21. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +4 +/
Сообщение от непонятно on 19-Июл-16, 13:57 
> В Curl и Perl (libwww-perl) проблема была устранена ещё в 2001 году.

Ахахах, олдскул vs хипсторы — 1:0

:D

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +1 +/
Сообщение от DimasiQ on 19-Июл-16, 20:06 
А при чем тут хипстеры?
Что-то не вижу в списке уязвимых node.js.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

33. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +1 +/
Сообщение от Аноним (??) on 20-Июл-16, 08:07 
Не мешай алтфакам воевать с воображаемыми хипсторами.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

25. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +2 +/
Сообщение от Аноним (??) on 19-Июл-16, 16:35 
И в чём беда? Прокси пользователя ничем не лучше и не хуже любого друго хоста на пути трафика.
Хотите безопасности - https.
Можно разве что сделать сервер недоступным (в рамках сессии одного пользователя) и тем самым обойти какую-нибудь проверку по чёрному списку.
Но ведь в этом слуае отсутствие ответа не должно восприниматься как пустой ответ. Иначе при недоступности сервера все пройдут проверку.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июл-16, 16:39 
> И в чём беда? Прокси пользователя ничем не лучше и не хуже
> любого друго хоста на пути трафика.

Вы не поняли, пытайтесь.

> Хотите безопасности - https.

Адресочек для трененровки паранойи подсказать, или тебе не надо, ты здоров?

> ответ. Иначе при недоступности сервера все пройдут проверку.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

29. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Аноним (??) on 19-Июл-16, 18:53 
>> И в чём беда? Прокси пользователя ничем не лучше и не хуже
>> любого друго хоста на пути трафика.
> Вы не поняли, пытайтесь.

Тот самый крайне редкий случай, когда Митрофанов относительно адекватен.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

34. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Andrey Mitrofanov on 20-Июл-16, 10:05 
>>> И в чём беда? Прокси пользователя ничем не лучше и не хуже
>>> любого друго хоста на пути трафика.
>> Вы не поняли, пытайтесь.
> Тот самый крайне редкий случай, когда Митрофанов относительно адекватен.

//На такое оскорбленеие я не могу не ответить

Может, он имел в виду того МИТМ-атакера под "пользователем прокси"? Тогда, да, ошибочка -- он точно не хуже, не лучше других.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

28. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Ilya Indigo (ok) on 19-Июл-16, 17:34 
>php-fpm, mod_php

А в php-fastcgi проблема отсутствует?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +1 +/
Сообщение от Аноним (??) on 20-Июл-16, 23:19 
Для nginx лучше закрываться на уровне хттп, а не фастцги.

В контексте server:

if ( $http_proxy ) { return 403 ; }

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "Уязвимость, позволяющая совершить MITM-атаку через манипуляц..."  +/
Сообщение от Володя (??) on 21-Июл-16, 18:39 
В PHP оперативненько пофиксили https://bugs.php.net/bug.php?id=72573
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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