Обнаружена уязвимость, позволяющая совершить MITM-атаку

Обнаружена уязвимость, позволяющая совершить MITM-атаку

Обнаружена уязвимость, позволяющая совершить MITM-атаку

Опубликована информация об уязвимости под кодовым названием Httpoxy, которая охватывает достаточно большой пласт 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-приложения через определённый прокси-сервер, передает opennet.ru.

Предположим, что имеется 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+и Artax, в CGI-скриптах на Python (wsgiref.handlers.CGIHandler, twisted.web.twcgi.CGIScript - CVE-2016-1000110), использующих библиотекуRequests, в Apache Tomcat (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 достаточно воспользоваться модулем mod_headers.so и добавить директиву "RequestHeader unset Proxy early", а вnginx принудительно очистить переменную HTTP_PROXY директивой "fastcgi_param HTTP_PROXY ''". 

В сообществе Linux впервые появился план на случай ухода Линуса Торвальдса

Сообщество разработчиков ядра Linux впервые официально оформило план на случай, если Линус Торвальдс вдруг решит уйти на пенсию или если что-то пойдёт не так. Сам Торвальдс возглавляет разработку ядра с 1991 года, и за это время стал не просто мейнтейнером, а настоящей константой проекта.

Не так давно он и сам заметил, что сообщество «становится возрастным», но при этом подчеркнул: с точки зрения экспертизы всё в порядке — новые люди приходят, и через несколько лет вырастают в ключевых разработчиков.

Тем не менее вопрос «а что если?» всё же решили закрыть документально. Новый план — это сценарий, который будет задействован только в том случае, если не получится провести спокойную и заранее подготовленную передачу полномочий.

Если такой момент всё-таки настанет, первым делом сообщество назначит организатора. Им станет либо последний организатор Maintainers Summit, либо действующий председатель Технического консультативного совета Linux Foundation (TAB). После этого у него будет 72 часа, чтобы запустить обсуждение с участниками последнего саммита мейнтейнеров.

Если же с последнего Maintainers Summit прошло больше 15 месяцев, список участников определит TAB — с правом привлекать других мейнтейнеров по своему усмотрению. Дальше всё довольно по-деловому: у этой группы есть две недели, чтобы прийти к решению и объявить его сообществу через почтовые рассылки.

По сути, это аккуратно оформленный способ сказать: «Мы знаем, как договориться, но на всякий случай записали процесс на бумаге».

Ирония в том, что даже без такого плана Linux вряд ли оказался бы в кризисе. Как не раз отмечал сам Торвальдс, проектов с мейнтейнерами, которые работают над кодом более 30 лет подряд, в open source практически не существует. Сообщество ядра давно научилось самоорганизации — просто до сих пор у него был нулевой так называемый bus factor.

Bus factor — это количество людей, которые могут «выпасть» из проекта (по любой причине), прежде чем он окажется в серьёзной опасности. У Linux этот показатель формально равнялся нулю: без Торвальдса всё держалось, но официального плана не существовало.

RSS: Новости на портале Anti-Malware.ru